@uicopilot/storybook-addon 0.5.34 → 0.5.36

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/manager.mjs CHANGED
@@ -1,47 +1,47 @@
1
- var ZF=Object.create;var Va=Object.defineProperty;var eE=Object.getOwnPropertyDescriptor;var tE=Object.getOwnPropertyNames;var nE=Object.getPrototypeOf,rE=Object.prototype.hasOwnProperty;var oE=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var U=(e,t)=>()=>(e&&(t=e(e=0)),t);var sr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ye=(e,t)=>{for(var n in t)Va(e,n,{get:t[n],enumerable:!0})},iE=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of tE(t))!rE.call(e,o)&&o!==n&&Va(e,o,{get:()=>t[o],enumerable:!(r=eE(t,o))||r.enumerable});return e};var Ga=(e,t,n)=>(n=e!=null?ZF(nE(e)):{},iE(t||!e||!e.__esModule?Va(n,"default",{value:e,enumerable:!0}):n,e));var ar=(e,t,n)=>oE(e,typeof t!="symbol"?t+"":t,n);function yy(){try{return typeof window<"u"&&localStorage.getItem(cE)==="true"}catch{return!1}}var cE,y,Ne=U(()=>{"use strict";cE="uicopilot:debug";y={debug:(...e)=>{yy()&&console.log(...e)},info:(...e)=>{yy()&&console.info(...e)},warn:(...e)=>console.warn(...e),error:(...e)=>console.error(...e)}});import uE,{createContext as pE,useContext as dE,useReducer as gE,useMemo as by}from"react";function fE(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"RESET_AUTH":return typeof localStorage<"u"&&Object.keys(localStorage).filter(n=>n.startsWith("uicopilot_")).forEach(n=>localStorage.removeItem(n)),typeof sessionStorage<"u"&&Object.keys(sessionStorage).filter(n=>n.startsWith("uicopilot_")||n.startsWith("uicopilot-")).forEach(n=>sessionStorage.removeItem(n)),typeof localStorage<"u"&&localStorage.setItem("uicopilot_force_sign_in","true"),y.debug("[AuthContext] resetAuth: Cleared uicopilot_* localStorage + sessionStorage keys"),{...e,isConnected:!1,sessionToken:null,apiKey:"",authMethod:"apikey",deviceCode:null,userCode:null,verificationUri:null,pollingInterval:null,usageData:null,usageLastFetched:null,authError:null};default:return e}}function vu({children:e}){let[t,n]=gE(fE,yE),r=by(()=>({setIsConnected:i=>n({type:"SET_STATE",payload:{isConnected:i}}),setSessionToken:i=>{y.debug("[AuthContext] setSessionToken:",i?i.substring(0,20)+"...":"null"),typeof localStorage<"u"&&(i?localStorage.setItem("uicopilot_session_token",i):localStorage.removeItem("uicopilot_session_token")),n({type:"SET_STATE",payload:{sessionToken:i,isConnected:!!i,...i?{authError:null}:{}}})},setApiKey:i=>{typeof localStorage<"u"&&localStorage.setItem("uicopilot_api_key",i),n({type:"SET_STATE",payload:{apiKey:i}})},setAuthMethod:i=>n({type:"SET_STATE",payload:{authMethod:i}}),setDeviceCode:i=>n({type:"SET_STATE",payload:{deviceCode:i}}),setUserCode:i=>n({type:"SET_STATE",payload:{userCode:i}}),setVerificationUri:i=>n({type:"SET_STATE",payload:{verificationUri:i}}),setPollingInterval:i=>n({type:"SET_STATE",payload:{pollingInterval:i}}),setUsageData:i=>n({type:"SET_STATE",payload:{usageData:i,usageLastFetched:Date.now()}}),setAuthError:i=>n({type:"SET_STATE",payload:{authError:i}}),resetAuth:()=>n({type:"RESET_AUTH"})}),[]),o=by(()=>({...t,...r}),[t,r]);return uE.createElement(wy.Provider,{value:o},e)}function Se(){let e=dE(wy);if(!e)throw new Error("useAuthStore must be used within an AuthProvider");return e}var mE,hE,xE,Sy,yE,wy,ku=U(()=>{"use strict";Ne();mE=()=>{if(typeof localStorage>"u")return;let e=localStorage.getItem("uicopilot-session-token");e&&!localStorage.getItem("uicopilot_session_token")&&(localStorage.setItem("uicopilot_session_token",e),localStorage.removeItem("uicopilot-session-token"));let t=localStorage.getItem("uicopilot-api-key");t&&!localStorage.getItem("uicopilot_api_key")&&(localStorage.setItem("uicopilot_api_key",t),localStorage.removeItem("uicopilot-api-key"))};mE();hE=()=>typeof localStorage>"u"?null:localStorage.getItem("uicopilot_session_token"),xE=()=>typeof localStorage>"u"?"":localStorage.getItem("uicopilot_api_key")||"",Sy=hE(),yE={isConnected:!!Sy,sessionToken:Sy,apiKey:xE(),authMethod:"apikey",deviceCode:null,userCode:null,verificationUri:null,pollingInterval:null,usageData:null,usageLastFetched:null,authError:null},wy=pE(null)});import bE,{createContext as SE,useContext as wE,useReducer as vE,useMemo as vy,useRef as kE,useEffect as CE}from"react";function TE(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"SET_PROJECTS":return{...e,projects:t.payload};case"ADD_PROJECT":return{...e,projects:[...e.projects,t.payload]};case"UPDATE_PROJECT":return{...e,projects:e.projects.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"DELETE_PROJECT":return{...e,projects:e.projects.filter(n=>n.id!==t.payload),selectedProjectId:e.selectedProjectId===t.payload?null:e.selectedProjectId};default:return e}}function Cu({children:e}){let[t,n]=vE(TE,FE),r=kE(t);CE(()=>{r.current=t},[t]);let o=vy(()=>({setProjects:s=>n({type:"SET_PROJECTS",payload:s}),setSelectedProjectId:s=>{typeof localStorage<"u"&&(s?localStorage.setItem("uicopilot_selected_project_id",s):localStorage.removeItem("uicopilot_selected_project_id")),n({type:"SET_STATE",payload:{selectedProjectId:s}})},setLoadingProjects:s=>n({type:"SET_STATE",payload:{loadingProjects:s}}),setCurrentStorybookPath:s=>n({type:"SET_STATE",payload:{currentStorybookPath:s}}),addProject:s=>n({type:"ADD_PROJECT",payload:s}),updateProject:(s,a)=>n({type:"UPDATE_PROJECT",payload:{id:s,updates:a}}),deleteProject:s=>n({type:"DELETE_PROJECT",payload:s}),getSelectedProject:()=>{let s=r.current;return s.projects.find(a=>a.id===s.selectedProjectId)},getMatchingProject:()=>{let s=r.current;if(s.currentStorybookPath)return s.projects.find(a=>a.storybookRoot===s.currentStorybookPath)}}),[]),i=vy(()=>({...t,...o}),[t,o]);return bE.createElement(ky.Provider,{value:i},e)}function Qe(){let e=wE(ky);if(!e)throw new Error("useProjectStore must be used within a ProjectProvider");return e}var IE,FE,ky,Tu=U(()=>{"use strict";IE=()=>typeof localStorage>"u"?null:localStorage.getItem("uicopilot_selected_project_id"),FE={projects:[],selectedProjectId:IE(),loadingProjects:!1,currentStorybookPath:null},ky=SE(null)});import EE,{createContext as AE,useContext as PE,useReducer as LE,useMemo as Cy}from"react";function ME(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"REFRESH_MAPPINGS":return{...e,mappingsRefreshKey:e.mappingsRefreshKey+1};case"UPDATE_FRAMES_THUMBNAILS":return e.framesCache?{...e,framesCache:{...e.framesCache,thumbnails:{...e.framesCache.thumbnails,...t.payload}}}:e;case"SET_VARIANT_THUMBNAILS":{let n={...e.variantThumbnailsCache,[t.payload.componentSetId]:t.payload.thumbnails},r=Object.keys(n);if(r.length>Ty)for(let o of r.slice(0,r.length-Ty))delete n[o];return{...e,variantThumbnailsCache:n}}case"CLEAR_VARIANT_THUMBNAILS_FOR_SET":{let{[t.payload]:n,...r}=e.variantThumbnailsCache;return{...e,variantThumbnailsCache:r}}case"CLEAR_ALL_VARIANT_THUMBNAILS":return{...e,variantThumbnailsCache:{}};default:return e}}function Iu({children:e}){let[t,n]=LE(ME,BE),r=Cy(()=>({setShowComponentBrowser:i=>n({type:"SET_STATE",payload:{showComponentBrowser:i}}),setFigmaFileUrl:i=>n({type:"SET_STATE",payload:{figmaFileUrl:i}}),setCurrentStoryId:i=>n({type:"SET_STATE",payload:{currentStoryId:i}}),setCurrentStoryName:i=>n({type:"SET_STATE",payload:{currentStoryName:i}}),setCurrentMapping:i=>{n({type:"SET_STATE",payload:{currentMapping:i}})},setMappingsByStoryId:i=>n({type:"SET_STATE",payload:{mappingsByStoryId:i}}),refreshMappings:()=>n({type:"REFRESH_MAPPINGS"}),setReviewFigmaUrl:i=>n({type:"SET_STATE",payload:{reviewFigmaUrl:i}}),setMappingSource:i=>n({type:"SET_STATE",payload:{mappingSource:i}}),setLoadingMapping:i=>n({type:"SET_STATE",payload:{loadingMapping:i}}),setShowFigmaQuality:i=>n({type:"SET_STATE",payload:{showFigmaQuality:i}}),setFramesCache:i=>n({type:"SET_STATE",payload:{framesCache:i}}),setIsLoadingFrames:i=>n({type:"SET_STATE",payload:{isLoadingFrames:i}}),updateFramesThumbnails:i=>n({type:"UPDATE_FRAMES_THUMBNAILS",payload:i}),setVariantThumbnails:(i,s)=>n({type:"SET_VARIANT_THUMBNAILS",payload:{componentSetId:i,thumbnails:s}}),clearVariantThumbnailsForSet:i=>n({type:"CLEAR_VARIANT_THUMBNAILS_FOR_SET",payload:i}),clearAllVariantThumbnails:()=>n({type:"CLEAR_ALL_VARIANT_THUMBNAILS"})}),[]),o=Cy(()=>({...t,...r}),[t,r]);return EE.createElement(Iy.Provider,{value:o},e)}function nt(){let e=PE(Iy);if(!e)throw new Error("useFigmaStore must be used within a FigmaProvider");return e}var Ty,BE,Iy,Fu=U(()=>{"use strict";Ty=200;BE={showComponentBrowser:!1,figmaFileUrl:"",currentStoryId:null,currentStoryName:"",currentMapping:null,mappingsRefreshKey:0,mappingsByStoryId:{},reviewFigmaUrl:"",mappingSource:null,loadingMapping:!1,showFigmaQuality:!1,framesCache:null,isLoadingFrames:!1,variantThumbnailsCache:{}},Iy=AE(null)});var Pt,Eu=U(()=>{"use strict";Pt={NAME:"UI Parity",SHORT:"Parity",DOMAIN:"uiparity.com",MARKETING_URL:"https://uiparity.com",APP_URL:"https://app.uiparity.com",API_URL:"https://api.uiparity.com",SUPPORT_EMAIL:"feedback@uiparity.com",TAGLINE:"Pixel-perfect isn't a feeling. It's a score."}});function DE(){if(typeof process<"u"&&process.env)return process.env.UICOPILOT_DEBUG==="1";if(typeof globalThis<"u"&&"localStorage"in globalThis)try{return globalThis.localStorage.getItem("uicopilot_debug")==="1"}catch{return!1}return!1}var Xa,Au,Fy=U(()=>{"use strict";Eu();Xa=`[${Pt.NAME}]`,Au={debug:(...e)=>{DE()&&console.log(Xa,...e)},info:(...e)=>{console.log(Xa,...e)},warn:(...e)=>{console.warn(Xa,...e)},error:(...e)=>{console.error(Xa,...e)}}});var Ey=U(()=>{"use strict"});var Pu=U(()=>{"use strict"});function Vt(e){return e>=48&&e<=57}function Nn(e){return Vt(e)||e>=65&&e<=70||e>=97&&e<=102}function Ja(e){return e>=65&&e<=90}function zE(e){return e>=97&&e<=122}function NE(e){return Ja(e)||zE(e)}function OE(e){return e>=128}function Qa(e){return NE(e)||OE(e)||e===95}function Za(e){return Qa(e)||Vt(e)||e===45}function _E(e){return e>=0&&e<=8||e===11||e>=14&&e<=31||e===127}function xs(e){return e===10||e===13||e===12}function _r(e){return xs(e)||e===32||e===9}function zn(e,t){return!(e!==92||xs(t)||t===0)}function Si(e,t,n){return e===45?Qa(t)||t===45||zn(t,n):Qa(e)?!0:e===92?zn(e,t):!1}function el(e,t,n){return e===43||e===45?Vt(t)?2:t===46&&Vt(n)?3:0:e===46?Vt(t)?2:0:Vt(e)?1:0}function tl(e){return e===65279||e===65534?1:0}function rl(e){return e<128?Lu[e]:nl}var Lu,$E,ys,Mu,nl,Bu,bs=U(()=>{"use strict";Lu=new Array(128),$E=128,ys=130,Mu=131,nl=132,Bu=133;for(let e=0;e<Lu.length;e++)Lu[e]=_r(e)&&ys||Vt(e)&&Mu||Qa(e)&&nl||_E(e)&&Bu||e||$E});function wi(e,t){return t<e.length?e.charCodeAt(t):0}function ol(e,t,n){return n===13&&wi(e,t+1)===10?2:1}function Qr(e,t,n){let r=e.charCodeAt(t);return Ja(r)&&(r=r|32),r===n}function Jr(e,t,n,r){if(n-t!==r.length||t<0||n>e.length)return!1;for(let o=t;o<n;o++){let i=r.charCodeAt(o-t),s=e.charCodeAt(o);if(Ja(s)&&(s=s|32),s!==i)return!1}return!0}function Ay(e,t){for(;t>=0&&_r(e.charCodeAt(t));t--);return t+1}function Ss(e,t){for(;t<e.length&&_r(e.charCodeAt(t));t++);return t}function Du(e,t){for(;t<e.length&&Vt(e.charCodeAt(t));t++);return t}function Zr(e,t){if(t+=2,Nn(wi(e,t-1))){for(let r=Math.min(e.length,t+5);t<r&&Nn(wi(e,t));t++);let n=wi(e,t);_r(n)&&(t+=ol(e,t,n))}return t}function ws(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(!Za(n)){if(zn(n,wi(e,t+1))){t=Zr(e,t)-1;continue}break}}return t}function Xo(e,t){let n=e.charCodeAt(t);if((n===43||n===45)&&(n=e.charCodeAt(t+=1)),Vt(n)&&(t=Du(e,t+1),n=e.charCodeAt(t)),n===46&&Vt(e.charCodeAt(t+1))&&(t+=2,t=Du(e,t)),Qr(e,t,101)){let r=0;n=e.charCodeAt(t+1),(n===45||n===43)&&(r=1,n=e.charCodeAt(t+2)),Vt(n)&&(t=Du(e,t+1+r+1))}return t}function il(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n===41){t++;break}zn(n,wi(e,t+1))&&(t=Zr(e,t))}return t}function sl(e){if(e.length===1&&!Nn(e.charCodeAt(0)))return e[0];let t=parseInt(e,16);return(t===0||t>=55296&&t<=57343||t>1114111)&&(t=65533),String.fromCodePoint(t)}var al=U(()=>{"use strict";bs()});var vi,Ru=U(()=>{"use strict";vi=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token","comment-token"]});function ki(e=null,t){return e===null||e.length<t?new Uint32Array(Math.max(t+1024,16384)):e}var zu=U(()=>{"use strict"});function My(e){let t=e.source,n=t.length,r=t.length>0?tl(t.charCodeAt(0)):0,o=ki(e.lines,n),i=ki(e.columns,n),s=e.startLine,a=e.startColumn;for(let u=r;u<n;u++){let c=t.charCodeAt(u);o[u]=s,i[u]=a++,(c===Py||c===Ly||c===UE)&&(c===Ly&&u+1<n&&t.charCodeAt(u+1)===Py&&(u++,o[u]=s,i[u]=a),s++,a=1)}o[n]=s,i[n]=a,e.lines=o,e.columns=i,e.computed=!0}var Py,UE,Ly,ll,By=U(()=>{"use strict";zu();bs();Py=10,UE=12,Ly=13;ll=class{constructor(t,n,r,o){this.setSource(t,n,r,o),this.lines=null,this.columns=null}setSource(t="",n=0,r=1,o=1){this.source=t,this.startOffset=n,this.startLine=r,this.startColumn=o,this.computed=!1}getLocation(t,n){return this.computed||My(this),{source:n,offset:this.startOffset+t,line:this.lines[t],column:this.columns[t]}}getLocationRange(t,n,r){return this.computed||My(this),{source:r,start:{offset:this.startOffset+t,line:this.lines[t],column:this.columns[t]},end:{offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]}}}}});function Dy(e,t,n){return e<t?t:e>n?n:e}var vr,kr,vs,ul,ko,Cr,cl,Ry=U(()=>{"use strict";zu();al();Ru();vr=16777215,kr=24,vs=1,ul=2,ko=new Uint8Array(32);ko[2]=22;ko[21]=22;ko[19]=20;ko[23]=24;Cr=new Uint8Array(32);Cr[2]=vs;Cr[21]=vs;Cr[19]=vs;Cr[23]=vs;Cr[22]=ul;Cr[20]=ul;Cr[24]=ul;cl=class{constructor(t,n){this.setSource(t,n)}reset(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset}setSource(t="",n=()=>{}){t=String(t||"");let r=t.length,o=ki(this.offsetAndType,t.length+1),i=ki(this.balance,t.length+1),s=0,a=-1,u=0,c=t.length;this.offsetAndType=null,this.balance=null,i.fill(0),n(t,(l,d,g)=>{let p=s++;if(o[p]=l<<kr|g,a===-1&&(a=d),i[p]=c,l===u){let m=i[c];i[c]=p,c=m,u=ko[o[m]>>kr]}else this.isBlockOpenerTokenType(l)&&(c=p,u=ko[l])}),o[s]=0<<kr|r,i[s]=s;for(let l=0;l<s;l++){let d=i[l];if(d<=l){let g=i[d];g!==l&&(i[l]=g)}else d>s&&(i[l]=s)}this.source=t,this.firstCharOffset=a===-1?0:a,this.tokenCount=s,this.offsetAndType=o,this.balance=i,this.reset(),this.next()}lookupType(t){return t+=this.tokenIndex,t<this.tokenCount?this.offsetAndType[t]>>kr:0}lookupTypeNonSC(t){for(let n=this.tokenIndex;n<this.tokenCount;n++){let r=this.offsetAndType[n]>>kr;if(r!==13&&r!==25&&t--===0)return r}return 0}lookupOffset(t){return t+=this.tokenIndex,t<this.tokenCount?this.offsetAndType[t-1]&vr:this.source.length}lookupOffsetNonSC(t){for(let n=this.tokenIndex;n<this.tokenCount;n++){let r=this.offsetAndType[n]>>kr;if(r!==13&&r!==25&&t--===0)return n-this.tokenIndex}return 0}lookupValue(t,n){return t+=this.tokenIndex,t<this.tokenCount?Jr(this.source,this.offsetAndType[t-1]&vr,this.offsetAndType[t]&vr,n):!1}getTokenStart(t){return t===this.tokenIndex?this.tokenStart:t>0?t<this.tokenCount?this.offsetAndType[t-1]&vr:this.offsetAndType[this.tokenCount]&vr:this.firstCharOffset}getTokenEnd(t){return t===this.tokenIndex?this.tokenEnd:this.offsetAndType[Dy(t,0,this.tokenCount)]&vr}getTokenType(t){return t===this.tokenIndex?this.tokenType:this.offsetAndType[Dy(t,0,this.tokenCount)]>>kr}substrToCursor(t){return this.source.substring(t,this.tokenStart)}isBlockOpenerTokenType(t){return Cr[t]===vs}isBlockCloserTokenType(t){return Cr[t]===ul}getBlockTokenPairIndex(t){let n=this.getTokenType(t);if(Cr[n]===1){let r=this.balance[t],o=this.getTokenType(r);return ko[n]===o?r:-1}else if(Cr[n]===2){let r=this.balance[t],o=this.getTokenType(r);return ko[o]===n?r:-1}return-1}isBalanceEdge(t){return this.balance[this.tokenIndex]<t}isDelim(t,n){return n?this.lookupType(n)===9&&this.source.charCodeAt(this.lookupOffset(n))===t:this.tokenType===9&&this.source.charCodeAt(this.tokenStart)===t}skip(t){let n=this.tokenIndex+t;n<this.tokenCount?(this.tokenIndex=n,this.tokenStart=this.offsetAndType[n-1]&vr,n=this.offsetAndType[n],this.tokenType=n>>kr,this.tokenEnd=n&vr):(this.tokenIndex=this.tokenCount,this.next())}next(){let t=this.tokenIndex+1;t<this.tokenCount?(this.tokenIndex=t,this.tokenStart=this.tokenEnd,t=this.offsetAndType[t],this.tokenType=t>>kr,this.tokenEnd=t&vr):(this.eof=!0,this.tokenIndex=this.tokenCount,this.tokenType=0,this.tokenStart=this.tokenEnd=this.source.length)}skipSC(){for(;this.tokenType===13||this.tokenType===25;)this.next()}skipUntilBalanced(t,n){let r=t,o=0,i=0;e:for(;r<this.tokenCount;r++){if(o=this.balance[r],o<t)break e;switch(i=r>0?this.offsetAndType[r-1]&vr:this.firstCharOffset,n(this.source.charCodeAt(i))){case 1:break e;case 2:r++;break e;default:this.isBlockOpenerTokenType(this.offsetAndType[r]>>kr)&&(r=o)}}this.skip(r-this.tokenIndex)}forEachToken(t){for(let n=0,r=this.firstCharOffset;n<this.tokenCount;n++){let o=r,i=this.offsetAndType[n],s=i&vr,a=i>>kr;r=s,t(a,o,s,n)}}dump(){let t=new Array(this.tokenCount);return this.forEachToken((n,r,o,i)=>{t[i]={idx:i,type:vi[n],chunk:this.source.substring(r,o),balance:this.balance[i]}}),t}}});function Co(e,t){function n(d){return d<a?e.charCodeAt(d):0}function r(){if(c=Xo(e,c),Si(n(c),n(c+1),n(c+2))){l=12,c=ws(e,c);return}if(n(c)===37){l=11,c++;return}l=10}function o(){let d=c;if(c=ws(e,c),Jr(e,d,c,"url")&&n(c)===40){if(c=Ss(e,c+1),n(c)===34||n(c)===39){l=2,c=d+4;return}s();return}if(n(c)===40){l=2,c++;return}l=1}function i(d){for(d||(d=n(c++)),l=5;c<e.length;c++){let g=e.charCodeAt(c);switch(rl(g)){case d:c++;return;case ys:if(xs(g)){c+=ol(e,c,g),l=6;return}break;case 92:if(c===e.length-1)break;let p=n(c+1);xs(p)?c+=ol(e,c+1,p):zn(g,p)&&(c=Zr(e,c)-1);break}}}function s(){for(l=7,c=Ss(e,c);c<e.length;c++){let d=e.charCodeAt(c);switch(rl(d)){case 41:c++;return;case ys:if(c=Ss(e,c),n(c)===41||c>=e.length){c<e.length&&c++;return}c=il(e,c),l=8;return;case 34:case 39:case 40:case Bu:c=il(e,c),l=8;return;case 92:if(zn(d,n(c+1))){c=Zr(e,c)-1;break}c=il(e,c),l=8;return}}}e=String(e||"");let a=e.length,u=tl(n(0)),c=u,l;for(;c<a;){let d=e.charCodeAt(c);switch(rl(d)){case ys:l=13,c=Ss(e,c+1);break;case 34:i();break;case 35:Za(n(c+1))||zn(n(c+1),n(c+2))?(l=4,c=ws(e,c+1)):(l=9,c++);break;case 39:i();break;case 40:l=21,c++;break;case 41:l=22,c++;break;case 43:el(d,n(c+1),n(c+2))?r():(l=9,c++);break;case 44:l=18,c++;break;case 45:el(d,n(c+1),n(c+2))?r():n(c+1)===45&&n(c+2)===62?(l=15,c=c+3):Si(d,n(c+1),n(c+2))?o():(l=9,c++);break;case 46:el(d,n(c+1),n(c+2))?r():(l=9,c++);break;case 47:n(c+1)===42?(l=25,c=e.indexOf("*/",c+2),c=c===-1?e.length:c+2):(l=9,c++);break;case 58:l=16,c++;break;case 59:l=17,c++;break;case 60:n(c+1)===33&&n(c+2)===45&&n(c+3)===45?(l=14,c=c+4):(l=9,c++);break;case 64:Si(n(c+1),n(c+2),n(c+3))?(l=3,c=ws(e,c+1)):(l=9,c++);break;case 91:l=19,c++;break;case 92:zn(d,n(c+1))?o():(l=9,c++);break;case 93:l=20,c++;break;case 123:l=23,c++;break;case 125:l=24,c++;break;case Mu:r();break;case nl:o();break;default:l=9,c++}t(l,u,u=c)}}var cr=U(()=>{"use strict";bs();al();Pu();Pu();Ru();bs();al();By();Ry()});var Ci,Zn,Cs=U(()=>{"use strict";Ci=null,Zn=class e{static createItem(t){return{prev:null,next:null,data:t}}constructor(){this.head=null,this.tail=null,this.cursor=null}createItem(t){return e.createItem(t)}allocateCursor(t,n){let r;return Ci!==null?(r=Ci,Ci=Ci.cursor,r.prev=t,r.next=n,r.cursor=this.cursor):r={prev:t,next:n,cursor:this.cursor},this.cursor=r,r}releaseCursor(){let{cursor:t}=this;this.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=Ci,Ci=t}updateCursors(t,n,r,o){let{cursor:i}=this;for(;i!==null;)i.prev===t&&(i.prev=n),i.next===r&&(i.next=o),i=i.cursor}*[Symbol.iterator](){for(let t=this.head;t!==null;t=t.next)yield t.data}get size(){let t=0;for(let n=this.head;n!==null;n=n.next)t++;return t}get isEmpty(){return this.head===null}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(t){let n=null;this.head=null;for(let r of t){let o=e.createItem(r);n!==null?n.next=o:this.head=o,o.prev=n,n=o}return this.tail=n,this}toArray(){return[...this]}toJSON(){return[...this]}forEach(t,n=this){let r=this.allocateCursor(null,this.head);for(;r.next!==null;){let o=r.next;r.next=o.next,t.call(n,o.data,o,this)}this.releaseCursor()}forEachRight(t,n=this){let r=this.allocateCursor(this.tail,null);for(;r.prev!==null;){let o=r.prev;r.prev=o.prev,t.call(n,o.data,o,this)}this.releaseCursor()}reduce(t,n,r=this){let o=this.allocateCursor(null,this.head),i=n,s;for(;o.next!==null;)s=o.next,o.next=s.next,i=t.call(r,i,s.data,s,this);return this.releaseCursor(),i}reduceRight(t,n,r=this){let o=this.allocateCursor(this.tail,null),i=n,s;for(;o.prev!==null;)s=o.prev,o.prev=s.prev,i=t.call(r,i,s.data,s,this);return this.releaseCursor(),i}some(t,n=this){for(let r=this.head;r!==null;r=r.next)if(t.call(n,r.data,r,this))return!0;return!1}map(t,n=this){let r=new e;for(let o=this.head;o!==null;o=o.next)r.appendData(t.call(n,o.data,o,this));return r}filter(t,n=this){let r=new e;for(let o=this.head;o!==null;o=o.next)t.call(n,o.data,o,this)&&r.appendData(o.data);return r}nextUntil(t,n,r=this){if(t===null)return;let o=this.allocateCursor(null,t);for(;o.next!==null;){let i=o.next;if(o.next=i.next,n.call(r,i.data,i,this))break}this.releaseCursor()}prevUntil(t,n,r=this){if(t===null)return;let o=this.allocateCursor(t,null);for(;o.prev!==null;){let i=o.prev;if(o.prev=i.prev,n.call(r,i.data,i,this))break}this.releaseCursor()}clear(){this.head=null,this.tail=null}copy(){let t=new e;for(let n of this)t.appendData(n);return t}prepend(t){return this.updateCursors(null,t,this.head,t),this.head!==null?(this.head.prev=t,t.next=this.head):this.tail=t,this.head=t,this}prependData(t){return this.prepend(e.createItem(t))}append(t){return this.insert(t)}appendData(t){return this.insert(e.createItem(t))}insert(t,n=null){if(n!==null)if(this.updateCursors(n.prev,t,n,t),n.prev===null){if(this.head!==n)throw new Error("before doesn't belong to list");this.head=t,n.prev=t,t.next=n,this.updateCursors(null,t)}else n.prev.next=t,t.prev=n.prev,n.prev=t,t.next=n;else this.updateCursors(this.tail,t,null,t),this.tail!==null?(this.tail.next=t,t.prev=this.tail):this.head=t,this.tail=t;return this}insertData(t,n){return this.insert(e.createItem(t),n)}remove(t){if(this.updateCursors(t,t.prev,t,t.next),t.prev!==null)t.prev.next=t.next;else{if(this.head!==t)throw new Error("item doesn't belong to list");this.head=t.next}if(t.next!==null)t.next.prev=t.prev;else{if(this.tail!==t)throw new Error("item doesn't belong to list");this.tail=t.prev}return t.prev=null,t.next=null,t}push(t){this.insert(e.createItem(t))}pop(){return this.tail!==null?this.remove(this.tail):null}unshift(t){this.prepend(e.createItem(t))}shift(){return this.head!==null?this.remove(this.head):null}prependList(t){return this.insertList(t,this.head)}appendList(t){return this.insertList(t)}insertList(t,n){return t.head===null?this:(n!=null?(this.updateCursors(n.prev,t.tail,n,t.head),n.prev!==null?(n.prev.next=t.head,t.head.prev=n.prev):this.head=t.head,n.prev=t.tail,t.tail.next=n):(this.updateCursors(this.tail,t.tail,null,t.head),this.tail!==null?(this.tail.next=t.head,t.head.prev=this.tail):this.head=t.head,this.tail=t.tail),t.head=null,t.tail=null,this)}replace(t,n){"head"in n?this.insertList(n,t):this.insert(n,t),this.remove(t)}}});function Jo(e,t){let n=Object.create(SyntaxError.prototype),r=new Error;return Object.assign(n,{name:e,message:t,get stack(){return(r.stack||"").replace(/^(.+\n){1,3}/,`${e}: ${t}
2
- `)}})}var dl=U(()=>{"use strict"});function Oy({source:e,line:t,column:n,baseLine:r,baseColumn:o},i){function s(m,b){return c.slice(m,b).map((F,E)=>String(m+E+1).padStart(g)+" |"+F).join(`
1
+ var pE=Object.create;var Ya=Object.defineProperty;var dE=Object.getOwnPropertyDescriptor;var gE=Object.getOwnPropertyNames;var fE=Object.getPrototypeOf,mE=Object.prototype.hasOwnProperty;var hE=(e,t,n)=>t in e?Ya(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var U=(e,t)=>()=>(e&&(t=e(e=0)),t);var ir=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ye=(e,t)=>{for(var n in t)Ya(e,n,{get:t[n],enumerable:!0})},xE=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of gE(t))!mE.call(e,o)&&o!==n&&Ya(e,o,{get:()=>t[o],enumerable:!(r=dE(t,o))||r.enumerable});return e};var Ka=(e,t,n)=>(n=e!=null?pE(fE(e)):{},xE(t||!e||!e.__esModule?Ya(n,"default",{value:e,enumerable:!0}):n,e));var sr=(e,t,n)=>hE(e,typeof t!="symbol"?t+"":t,n);function Iy(){try{return typeof window<"u"&&localStorage.getItem(wE)==="true"}catch{return!1}}var wE,y,Ne=U(()=>{"use strict";wE="uicopilot:debug";y={debug:(...e)=>{Iy()&&console.log(...e)},info:(...e)=>{Iy()&&console.info(...e)},warn:(...e)=>console.warn(...e),error:(...e)=>console.error(...e)}});import vE,{createContext as kE,useContext as CE,useReducer as TE,useMemo as Fy}from"react";function IE(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"RESET_AUTH":return typeof localStorage<"u"&&Object.keys(localStorage).filter(n=>n.startsWith("uicopilot_")).forEach(n=>localStorage.removeItem(n)),typeof sessionStorage<"u"&&Object.keys(sessionStorage).filter(n=>n.startsWith("uicopilot_")||n.startsWith("uicopilot-")).forEach(n=>sessionStorage.removeItem(n)),typeof localStorage<"u"&&localStorage.setItem("uicopilot_force_sign_in","true"),y.debug("[AuthContext] resetAuth: Cleared uicopilot_* localStorage + sessionStorage keys"),{...e,isConnected:!1,sessionToken:null,apiKey:"",authMethod:"apikey",deviceCode:null,userCode:null,verificationUri:null,pollingInterval:null,usageData:null,usageLastFetched:null,authError:null};default:return e}}function Au({children:e}){let[t,n]=TE(IE,PE),r=Fy(()=>({setIsConnected:i=>n({type:"SET_STATE",payload:{isConnected:i}}),setSessionToken:i=>{y.debug("[AuthContext] setSessionToken:",i?i.substring(0,20)+"...":"null"),typeof localStorage<"u"&&(i?localStorage.setItem("uicopilot_session_token",i):localStorage.removeItem("uicopilot_session_token")),n({type:"SET_STATE",payload:{sessionToken:i,isConnected:!!i,...i?{authError:null}:{}}})},setApiKey:i=>{typeof localStorage<"u"&&localStorage.setItem("uicopilot_api_key",i),n({type:"SET_STATE",payload:{apiKey:i}})},setAuthMethod:i=>n({type:"SET_STATE",payload:{authMethod:i}}),setDeviceCode:i=>n({type:"SET_STATE",payload:{deviceCode:i}}),setUserCode:i=>n({type:"SET_STATE",payload:{userCode:i}}),setVerificationUri:i=>n({type:"SET_STATE",payload:{verificationUri:i}}),setPollingInterval:i=>n({type:"SET_STATE",payload:{pollingInterval:i}}),setUsageData:i=>n({type:"SET_STATE",payload:{usageData:i,usageLastFetched:Date.now()}}),setAuthError:i=>n({type:"SET_STATE",payload:{authError:i}}),resetAuth:()=>n({type:"RESET_AUTH"})}),[]),o=Fy(()=>({...t,...r}),[t,r]);return vE.createElement(Ay.Provider,{value:o},e)}function Se(){let e=CE(Ay);if(!e)throw new Error("useAuthStore must be used within an AuthProvider");return e}var FE,EE,AE,Ey,PE,Ay,Pu=U(()=>{"use strict";Ne();FE=()=>{if(typeof localStorage>"u")return;let e=localStorage.getItem("uicopilot-session-token");e&&!localStorage.getItem("uicopilot_session_token")&&(localStorage.setItem("uicopilot_session_token",e),localStorage.removeItem("uicopilot-session-token"));let t=localStorage.getItem("uicopilot-api-key");t&&!localStorage.getItem("uicopilot_api_key")&&(localStorage.setItem("uicopilot_api_key",t),localStorage.removeItem("uicopilot-api-key"))};FE();EE=()=>typeof localStorage>"u"?null:localStorage.getItem("uicopilot_session_token"),AE=()=>typeof localStorage>"u"?"":localStorage.getItem("uicopilot_api_key")||"",Ey=EE(),PE={isConnected:!!Ey,sessionToken:Ey,apiKey:AE(),authMethod:"apikey",deviceCode:null,userCode:null,verificationUri:null,pollingInterval:null,usageData:null,usageLastFetched:null,authError:null},Ay=kE(null)});import LE,{createContext as ME,useContext as BE,useReducer as DE,useMemo as Py,useRef as RE,useEffect as zE}from"react";function NE(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"SET_PROJECTS":return{...e,projects:t.payload};case"ADD_PROJECT":return{...e,projects:[...e.projects,t.payload]};case"UPDATE_PROJECT":return{...e,projects:e.projects.map(n=>n.id===t.payload.id?{...n,...t.payload.updates}:n)};case"DELETE_PROJECT":return{...e,projects:e.projects.filter(n=>n.id!==t.payload),selectedProjectId:e.selectedProjectId===t.payload?null:e.selectedProjectId};default:return e}}function Lu({children:e}){let[t,n]=DE(NE,_E),r=RE(t);zE(()=>{r.current=t},[t]);let o=Py(()=>({setProjects:s=>n({type:"SET_PROJECTS",payload:s}),setSelectedProjectId:s=>{typeof localStorage<"u"&&(s?localStorage.setItem("uicopilot_selected_project_id",s):localStorage.removeItem("uicopilot_selected_project_id")),n({type:"SET_STATE",payload:{selectedProjectId:s}})},setLoadingProjects:s=>n({type:"SET_STATE",payload:{loadingProjects:s}}),setCurrentStorybookPath:s=>n({type:"SET_STATE",payload:{currentStorybookPath:s}}),addProject:s=>n({type:"ADD_PROJECT",payload:s}),updateProject:(s,a)=>n({type:"UPDATE_PROJECT",payload:{id:s,updates:a}}),deleteProject:s=>n({type:"DELETE_PROJECT",payload:s}),getSelectedProject:()=>{let s=r.current;return s.projects.find(a=>a.id===s.selectedProjectId)},getMatchingProject:()=>{let s=r.current;if(s.currentStorybookPath)return s.projects.find(a=>a.storybookRoot===s.currentStorybookPath)}}),[]),i=Py(()=>({...t,...o}),[t,o]);return LE.createElement(Ly.Provider,{value:i},e)}function Xe(){let e=BE(Ly);if(!e)throw new Error("useProjectStore must be used within a ProjectProvider");return e}var OE,_E,Ly,Mu=U(()=>{"use strict";OE=()=>typeof localStorage>"u"?null:localStorage.getItem("uicopilot_selected_project_id"),_E={projects:[],selectedProjectId:OE(),loadingProjects:!1,currentStorybookPath:null},Ly=ME(null)});import $E,{createContext as UE,useContext as jE,useReducer as HE,useMemo as My}from"react";function WE(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"REFRESH_MAPPINGS":return{...e,mappingsRefreshKey:e.mappingsRefreshKey+1};case"UPDATE_FRAMES_THUMBNAILS":return e.framesCache?{...e,framesCache:{...e.framesCache,thumbnails:{...e.framesCache.thumbnails,...t.payload}}}:e;case"SET_VARIANT_THUMBNAILS":{let n={...e.variantThumbnailsCache,[t.payload.componentSetId]:t.payload.thumbnails},r=Object.keys(n);if(r.length>By)for(let o of r.slice(0,r.length-By))delete n[o];return{...e,variantThumbnailsCache:n}}case"CLEAR_VARIANT_THUMBNAILS_FOR_SET":{let{[t.payload]:n,...r}=e.variantThumbnailsCache;return{...e,variantThumbnailsCache:r}}case"CLEAR_ALL_VARIANT_THUMBNAILS":return{...e,variantThumbnailsCache:{}};default:return e}}function Bu({children:e}){let[t,n]=HE(WE,VE),r=My(()=>({setShowComponentBrowser:i=>n({type:"SET_STATE",payload:{showComponentBrowser:i}}),setFigmaFileUrl:i=>n({type:"SET_STATE",payload:{figmaFileUrl:i}}),setCurrentStoryId:i=>n({type:"SET_STATE",payload:{currentStoryId:i}}),setCurrentStoryName:i=>n({type:"SET_STATE",payload:{currentStoryName:i}}),setCurrentMapping:i=>{n({type:"SET_STATE",payload:{currentMapping:i}})},setMappingsByStoryId:i=>n({type:"SET_STATE",payload:{mappingsByStoryId:i}}),refreshMappings:()=>n({type:"REFRESH_MAPPINGS"}),setReviewFigmaUrl:i=>n({type:"SET_STATE",payload:{reviewFigmaUrl:i}}),setMappingSource:i=>n({type:"SET_STATE",payload:{mappingSource:i}}),setLoadingMapping:i=>n({type:"SET_STATE",payload:{loadingMapping:i}}),setShowFigmaQuality:i=>n({type:"SET_STATE",payload:{showFigmaQuality:i}}),setFramesCache:i=>n({type:"SET_STATE",payload:{framesCache:i}}),setIsLoadingFrames:i=>n({type:"SET_STATE",payload:{isLoadingFrames:i}}),updateFramesThumbnails:i=>n({type:"UPDATE_FRAMES_THUMBNAILS",payload:i}),setVariantThumbnails:(i,s)=>n({type:"SET_VARIANT_THUMBNAILS",payload:{componentSetId:i,thumbnails:s}}),clearVariantThumbnailsForSet:i=>n({type:"CLEAR_VARIANT_THUMBNAILS_FOR_SET",payload:i}),clearAllVariantThumbnails:()=>n({type:"CLEAR_ALL_VARIANT_THUMBNAILS"})}),[]),o=My(()=>({...t,...r}),[t,r]);return $E.createElement(Dy.Provider,{value:o},e)}function tt(){let e=jE(Dy);if(!e)throw new Error("useFigmaStore must be used within a FigmaProvider");return e}var By,VE,Dy,Du=U(()=>{"use strict";By=200;VE={showComponentBrowser:!1,figmaFileUrl:"",currentStoryId:null,currentStoryName:"",currentMapping:null,mappingsRefreshKey:0,mappingsByStoryId:{},reviewFigmaUrl:"",mappingSource:null,loadingMapping:!1,showFigmaQuality:!1,framesCache:null,isLoadingFrames:!1,variantThumbnailsCache:{}},Dy=UE(null)});var Et,Ru=U(()=>{"use strict";Et={NAME:"UI Parity",SHORT:"Parity",DOMAIN:"uiparity.com",MARKETING_URL:"https://uiparity.com",APP_URL:"https://app.uiparity.com",API_URL:"https://api.uiparity.com",SUPPORT_EMAIL:"feedback@uiparity.com",TAGLINE:"Pixel-perfect isn't a feeling. It's a score."}});function GE(){if(typeof process<"u"&&process.env)return process.env.UICOPILOT_DEBUG==="1";if(typeof globalThis<"u"&&"localStorage"in globalThis)try{return globalThis.localStorage.getItem("uicopilot_debug")==="1"}catch{return!1}return!1}var Za,zu,Ry=U(()=>{"use strict";Ru();Za=`[${Et.NAME}]`,zu={debug:(...e)=>{GE()&&console.log(Za,...e)},info:(...e)=>{console.log(Za,...e)},warn:(...e)=>{console.warn(Za,...e)},error:(...e)=>{console.error(Za,...e)}}});var zy=U(()=>{"use strict"});var Nu=U(()=>{"use strict"});function Ht(e){return e>=48&&e<=57}function zn(e){return Ht(e)||e>=65&&e<=70||e>=97&&e<=102}function tl(e){return e>=65&&e<=90}function YE(e){return e>=97&&e<=122}function KE(e){return tl(e)||YE(e)}function XE(e){return e>=128}function el(e){return KE(e)||XE(e)||e===95}function nl(e){return el(e)||Ht(e)||e===45}function QE(e){return e>=0&&e<=8||e===11||e>=14&&e<=31||e===127}function ys(e){return e===10||e===13||e===12}function _r(e){return ys(e)||e===32||e===9}function Rn(e,t){return!(e!==92||ys(t)||t===0)}function wi(e,t,n){return e===45?el(t)||t===45||Rn(t,n):el(e)?!0:e===92?Rn(e,t):!1}function rl(e,t,n){return e===43||e===45?Ht(t)?2:t===46&&Ht(n)?3:0:e===46?Ht(t)?2:0:Ht(e)?1:0}function ol(e){return e===65279||e===65534?1:0}function sl(e){return e<128?Ou[e]:il}var Ou,JE,bs,_u,il,$u,Ss=U(()=>{"use strict";Ou=new Array(128),JE=128,bs=130,_u=131,il=132,$u=133;for(let e=0;e<Ou.length;e++)Ou[e]=_r(e)&&bs||Ht(e)&&_u||el(e)&&il||QE(e)&&$u||e||JE});function vi(e,t){return t<e.length?e.charCodeAt(t):0}function al(e,t,n){return n===13&&vi(e,t+1)===10?2:1}function Qr(e,t,n){let r=e.charCodeAt(t);return tl(r)&&(r=r|32),r===n}function Jr(e,t,n,r){if(n-t!==r.length||t<0||n>e.length)return!1;for(let o=t;o<n;o++){let i=r.charCodeAt(o-t),s=e.charCodeAt(o);if(tl(s)&&(s=s|32),s!==i)return!1}return!0}function Ny(e,t){for(;t>=0&&_r(e.charCodeAt(t));t--);return t+1}function ws(e,t){for(;t<e.length&&_r(e.charCodeAt(t));t++);return t}function Uu(e,t){for(;t<e.length&&Ht(e.charCodeAt(t));t++);return t}function Zr(e,t){if(t+=2,zn(vi(e,t-1))){for(let r=Math.min(e.length,t+5);t<r&&zn(vi(e,t));t++);let n=vi(e,t);_r(n)&&(t+=al(e,t,n))}return t}function vs(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(!nl(n)){if(Rn(n,vi(e,t+1))){t=Zr(e,t)-1;continue}break}}return t}function Qo(e,t){let n=e.charCodeAt(t);if((n===43||n===45)&&(n=e.charCodeAt(t+=1)),Ht(n)&&(t=Uu(e,t+1),n=e.charCodeAt(t)),n===46&&Ht(e.charCodeAt(t+1))&&(t+=2,t=Uu(e,t)),Qr(e,t,101)){let r=0;n=e.charCodeAt(t+1),(n===45||n===43)&&(r=1,n=e.charCodeAt(t+2)),Ht(n)&&(t=Uu(e,t+1+r+1))}return t}function ll(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n===41){t++;break}Rn(n,vi(e,t+1))&&(t=Zr(e,t))}return t}function cl(e){if(e.length===1&&!zn(e.charCodeAt(0)))return e[0];let t=parseInt(e,16);return(t===0||t>=55296&&t<=57343||t>1114111)&&(t=65533),String.fromCodePoint(t)}var ul=U(()=>{"use strict";Ss()});var ki,ju=U(()=>{"use strict";ki=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token","comment-token"]});function Ci(e=null,t){return e===null||e.length<t?new Uint32Array(Math.max(t+1024,16384)):e}var Hu=U(()=>{"use strict"});function $y(e){let t=e.source,n=t.length,r=t.length>0?ol(t.charCodeAt(0)):0,o=Ci(e.lines,n),i=Ci(e.columns,n),s=e.startLine,a=e.startColumn;for(let u=r;u<n;u++){let c=t.charCodeAt(u);o[u]=s,i[u]=a++,(c===Oy||c===_y||c===ZE)&&(c===_y&&u+1<n&&t.charCodeAt(u+1)===Oy&&(u++,o[u]=s,i[u]=a),s++,a=1)}o[n]=s,i[n]=a,e.lines=o,e.columns=i,e.computed=!0}var Oy,ZE,_y,pl,Uy=U(()=>{"use strict";Hu();Ss();Oy=10,ZE=12,_y=13;pl=class{constructor(t,n,r,o){this.setSource(t,n,r,o),this.lines=null,this.columns=null}setSource(t="",n=0,r=1,o=1){this.source=t,this.startOffset=n,this.startLine=r,this.startColumn=o,this.computed=!1}getLocation(t,n){return this.computed||$y(this),{source:n,offset:this.startOffset+t,line:this.lines[t],column:this.columns[t]}}getLocationRange(t,n,r){return this.computed||$y(this),{source:r,start:{offset:this.startOffset+t,line:this.lines[t],column:this.columns[t]},end:{offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]}}}}});function jy(e,t,n){return e<t?t:e>n?n:e}var vr,kr,ks,gl,To,Cr,dl,Hy=U(()=>{"use strict";Hu();ul();ju();vr=16777215,kr=24,ks=1,gl=2,To=new Uint8Array(32);To[2]=22;To[21]=22;To[19]=20;To[23]=24;Cr=new Uint8Array(32);Cr[2]=ks;Cr[21]=ks;Cr[19]=ks;Cr[23]=ks;Cr[22]=gl;Cr[20]=gl;Cr[24]=gl;dl=class{constructor(t,n){this.setSource(t,n)}reset(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset}setSource(t="",n=()=>{}){t=String(t||"");let r=t.length,o=Ci(this.offsetAndType,t.length+1),i=Ci(this.balance,t.length+1),s=0,a=-1,u=0,c=t.length;this.offsetAndType=null,this.balance=null,i.fill(0),n(t,(l,d,g)=>{let p=s++;if(o[p]=l<<kr|g,a===-1&&(a=d),i[p]=c,l===u){let m=i[c];i[c]=p,c=m,u=To[o[m]>>kr]}else this.isBlockOpenerTokenType(l)&&(c=p,u=To[l])}),o[s]=0<<kr|r,i[s]=s;for(let l=0;l<s;l++){let d=i[l];if(d<=l){let g=i[d];g!==l&&(i[l]=g)}else d>s&&(i[l]=s)}this.source=t,this.firstCharOffset=a===-1?0:a,this.tokenCount=s,this.offsetAndType=o,this.balance=i,this.reset(),this.next()}lookupType(t){return t+=this.tokenIndex,t<this.tokenCount?this.offsetAndType[t]>>kr:0}lookupTypeNonSC(t){for(let n=this.tokenIndex;n<this.tokenCount;n++){let r=this.offsetAndType[n]>>kr;if(r!==13&&r!==25&&t--===0)return r}return 0}lookupOffset(t){return t+=this.tokenIndex,t<this.tokenCount?this.offsetAndType[t-1]&vr:this.source.length}lookupOffsetNonSC(t){for(let n=this.tokenIndex;n<this.tokenCount;n++){let r=this.offsetAndType[n]>>kr;if(r!==13&&r!==25&&t--===0)return n-this.tokenIndex}return 0}lookupValue(t,n){return t+=this.tokenIndex,t<this.tokenCount?Jr(this.source,this.offsetAndType[t-1]&vr,this.offsetAndType[t]&vr,n):!1}getTokenStart(t){return t===this.tokenIndex?this.tokenStart:t>0?t<this.tokenCount?this.offsetAndType[t-1]&vr:this.offsetAndType[this.tokenCount]&vr:this.firstCharOffset}getTokenEnd(t){return t===this.tokenIndex?this.tokenEnd:this.offsetAndType[jy(t,0,this.tokenCount)]&vr}getTokenType(t){return t===this.tokenIndex?this.tokenType:this.offsetAndType[jy(t,0,this.tokenCount)]>>kr}substrToCursor(t){return this.source.substring(t,this.tokenStart)}isBlockOpenerTokenType(t){return Cr[t]===ks}isBlockCloserTokenType(t){return Cr[t]===gl}getBlockTokenPairIndex(t){let n=this.getTokenType(t);if(Cr[n]===1){let r=this.balance[t],o=this.getTokenType(r);return To[n]===o?r:-1}else if(Cr[n]===2){let r=this.balance[t],o=this.getTokenType(r);return To[o]===n?r:-1}return-1}isBalanceEdge(t){return this.balance[this.tokenIndex]<t}isDelim(t,n){return n?this.lookupType(n)===9&&this.source.charCodeAt(this.lookupOffset(n))===t:this.tokenType===9&&this.source.charCodeAt(this.tokenStart)===t}skip(t){let n=this.tokenIndex+t;n<this.tokenCount?(this.tokenIndex=n,this.tokenStart=this.offsetAndType[n-1]&vr,n=this.offsetAndType[n],this.tokenType=n>>kr,this.tokenEnd=n&vr):(this.tokenIndex=this.tokenCount,this.next())}next(){let t=this.tokenIndex+1;t<this.tokenCount?(this.tokenIndex=t,this.tokenStart=this.tokenEnd,t=this.offsetAndType[t],this.tokenType=t>>kr,this.tokenEnd=t&vr):(this.eof=!0,this.tokenIndex=this.tokenCount,this.tokenType=0,this.tokenStart=this.tokenEnd=this.source.length)}skipSC(){for(;this.tokenType===13||this.tokenType===25;)this.next()}skipUntilBalanced(t,n){let r=t,o=0,i=0;e:for(;r<this.tokenCount;r++){if(o=this.balance[r],o<t)break e;switch(i=r>0?this.offsetAndType[r-1]&vr:this.firstCharOffset,n(this.source.charCodeAt(i))){case 1:break e;case 2:r++;break e;default:this.isBlockOpenerTokenType(this.offsetAndType[r]>>kr)&&(r=o)}}this.skip(r-this.tokenIndex)}forEachToken(t){for(let n=0,r=this.firstCharOffset;n<this.tokenCount;n++){let o=r,i=this.offsetAndType[n],s=i&vr,a=i>>kr;r=s,t(a,o,s,n)}}dump(){let t=new Array(this.tokenCount);return this.forEachToken((n,r,o,i)=>{t[i]={idx:i,type:ki[n],chunk:this.source.substring(r,o),balance:this.balance[i]}}),t}}});function Io(e,t){function n(d){return d<a?e.charCodeAt(d):0}function r(){if(c=Qo(e,c),wi(n(c),n(c+1),n(c+2))){l=12,c=vs(e,c);return}if(n(c)===37){l=11,c++;return}l=10}function o(){let d=c;if(c=vs(e,c),Jr(e,d,c,"url")&&n(c)===40){if(c=ws(e,c+1),n(c)===34||n(c)===39){l=2,c=d+4;return}s();return}if(n(c)===40){l=2,c++;return}l=1}function i(d){for(d||(d=n(c++)),l=5;c<e.length;c++){let g=e.charCodeAt(c);switch(sl(g)){case d:c++;return;case bs:if(ys(g)){c+=al(e,c,g),l=6;return}break;case 92:if(c===e.length-1)break;let p=n(c+1);ys(p)?c+=al(e,c+1,p):Rn(g,p)&&(c=Zr(e,c)-1);break}}}function s(){for(l=7,c=ws(e,c);c<e.length;c++){let d=e.charCodeAt(c);switch(sl(d)){case 41:c++;return;case bs:if(c=ws(e,c),n(c)===41||c>=e.length){c<e.length&&c++;return}c=ll(e,c),l=8;return;case 34:case 39:case 40:case $u:c=ll(e,c),l=8;return;case 92:if(Rn(d,n(c+1))){c=Zr(e,c)-1;break}c=ll(e,c),l=8;return}}}e=String(e||"");let a=e.length,u=ol(n(0)),c=u,l;for(;c<a;){let d=e.charCodeAt(c);switch(sl(d)){case bs:l=13,c=ws(e,c+1);break;case 34:i();break;case 35:nl(n(c+1))||Rn(n(c+1),n(c+2))?(l=4,c=vs(e,c+1)):(l=9,c++);break;case 39:i();break;case 40:l=21,c++;break;case 41:l=22,c++;break;case 43:rl(d,n(c+1),n(c+2))?r():(l=9,c++);break;case 44:l=18,c++;break;case 45:rl(d,n(c+1),n(c+2))?r():n(c+1)===45&&n(c+2)===62?(l=15,c=c+3):wi(d,n(c+1),n(c+2))?o():(l=9,c++);break;case 46:rl(d,n(c+1),n(c+2))?r():(l=9,c++);break;case 47:n(c+1)===42?(l=25,c=e.indexOf("*/",c+2),c=c===-1?e.length:c+2):(l=9,c++);break;case 58:l=16,c++;break;case 59:l=17,c++;break;case 60:n(c+1)===33&&n(c+2)===45&&n(c+3)===45?(l=14,c=c+4):(l=9,c++);break;case 64:wi(n(c+1),n(c+2),n(c+3))?(l=3,c=vs(e,c+1)):(l=9,c++);break;case 91:l=19,c++;break;case 92:Rn(d,n(c+1))?o():(l=9,c++);break;case 93:l=20,c++;break;case 123:l=23,c++;break;case 125:l=24,c++;break;case _u:r();break;case il:o();break;default:l=9,c++}t(l,u,u=c)}}var lr=U(()=>{"use strict";Ss();ul();Nu();Nu();ju();Ss();ul();Uy();Hy()});var Ti,Qn,Ts=U(()=>{"use strict";Ti=null,Qn=class e{static createItem(t){return{prev:null,next:null,data:t}}constructor(){this.head=null,this.tail=null,this.cursor=null}createItem(t){return e.createItem(t)}allocateCursor(t,n){let r;return Ti!==null?(r=Ti,Ti=Ti.cursor,r.prev=t,r.next=n,r.cursor=this.cursor):r={prev:t,next:n,cursor:this.cursor},this.cursor=r,r}releaseCursor(){let{cursor:t}=this;this.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=Ti,Ti=t}updateCursors(t,n,r,o){let{cursor:i}=this;for(;i!==null;)i.prev===t&&(i.prev=n),i.next===r&&(i.next=o),i=i.cursor}*[Symbol.iterator](){for(let t=this.head;t!==null;t=t.next)yield t.data}get size(){let t=0;for(let n=this.head;n!==null;n=n.next)t++;return t}get isEmpty(){return this.head===null}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(t){let n=null;this.head=null;for(let r of t){let o=e.createItem(r);n!==null?n.next=o:this.head=o,o.prev=n,n=o}return this.tail=n,this}toArray(){return[...this]}toJSON(){return[...this]}forEach(t,n=this){let r=this.allocateCursor(null,this.head);for(;r.next!==null;){let o=r.next;r.next=o.next,t.call(n,o.data,o,this)}this.releaseCursor()}forEachRight(t,n=this){let r=this.allocateCursor(this.tail,null);for(;r.prev!==null;){let o=r.prev;r.prev=o.prev,t.call(n,o.data,o,this)}this.releaseCursor()}reduce(t,n,r=this){let o=this.allocateCursor(null,this.head),i=n,s;for(;o.next!==null;)s=o.next,o.next=s.next,i=t.call(r,i,s.data,s,this);return this.releaseCursor(),i}reduceRight(t,n,r=this){let o=this.allocateCursor(this.tail,null),i=n,s;for(;o.prev!==null;)s=o.prev,o.prev=s.prev,i=t.call(r,i,s.data,s,this);return this.releaseCursor(),i}some(t,n=this){for(let r=this.head;r!==null;r=r.next)if(t.call(n,r.data,r,this))return!0;return!1}map(t,n=this){let r=new e;for(let o=this.head;o!==null;o=o.next)r.appendData(t.call(n,o.data,o,this));return r}filter(t,n=this){let r=new e;for(let o=this.head;o!==null;o=o.next)t.call(n,o.data,o,this)&&r.appendData(o.data);return r}nextUntil(t,n,r=this){if(t===null)return;let o=this.allocateCursor(null,t);for(;o.next!==null;){let i=o.next;if(o.next=i.next,n.call(r,i.data,i,this))break}this.releaseCursor()}prevUntil(t,n,r=this){if(t===null)return;let o=this.allocateCursor(t,null);for(;o.prev!==null;){let i=o.prev;if(o.prev=i.prev,n.call(r,i.data,i,this))break}this.releaseCursor()}clear(){this.head=null,this.tail=null}copy(){let t=new e;for(let n of this)t.appendData(n);return t}prepend(t){return this.updateCursors(null,t,this.head,t),this.head!==null?(this.head.prev=t,t.next=this.head):this.tail=t,this.head=t,this}prependData(t){return this.prepend(e.createItem(t))}append(t){return this.insert(t)}appendData(t){return this.insert(e.createItem(t))}insert(t,n=null){if(n!==null)if(this.updateCursors(n.prev,t,n,t),n.prev===null){if(this.head!==n)throw new Error("before doesn't belong to list");this.head=t,n.prev=t,t.next=n,this.updateCursors(null,t)}else n.prev.next=t,t.prev=n.prev,n.prev=t,t.next=n;else this.updateCursors(this.tail,t,null,t),this.tail!==null?(this.tail.next=t,t.prev=this.tail):this.head=t,this.tail=t;return this}insertData(t,n){return this.insert(e.createItem(t),n)}remove(t){if(this.updateCursors(t,t.prev,t,t.next),t.prev!==null)t.prev.next=t.next;else{if(this.head!==t)throw new Error("item doesn't belong to list");this.head=t.next}if(t.next!==null)t.next.prev=t.prev;else{if(this.tail!==t)throw new Error("item doesn't belong to list");this.tail=t.prev}return t.prev=null,t.next=null,t}push(t){this.insert(e.createItem(t))}pop(){return this.tail!==null?this.remove(this.tail):null}unshift(t){this.prepend(e.createItem(t))}shift(){return this.head!==null?this.remove(this.head):null}prependList(t){return this.insertList(t,this.head)}appendList(t){return this.insertList(t)}insertList(t,n){return t.head===null?this:(n!=null?(this.updateCursors(n.prev,t.tail,n,t.head),n.prev!==null?(n.prev.next=t.head,t.head.prev=n.prev):this.head=t.head,n.prev=t.tail,t.tail.next=n):(this.updateCursors(this.tail,t.tail,null,t.head),this.tail!==null?(this.tail.next=t.head,t.head.prev=this.tail):this.head=t.head,this.tail=t.tail),t.head=null,t.tail=null,this)}replace(t,n){"head"in n?this.insertList(n,t):this.insert(n,t),this.remove(t)}}});function Zo(e,t){let n=Object.create(SyntaxError.prototype),r=new Error;return Object.assign(n,{name:e,message:t,get stack(){return(r.stack||"").replace(/^(.+\n){1,3}/,`${e}: ${t}
2
+ `)}})}var ml=U(()=>{"use strict"});function Gy({source:e,line:t,column:n,baseLine:r,baseColumn:o},i){function s(m,b){return c.slice(m,b).map((I,E)=>String(m+E+1).padStart(g)+" |"+I).join(`
3
3
  `)}let a=`
4
- `.repeat(Math.max(r-1,0)),u=" ".repeat(Math.max(o-1,0)),c=(a+u+e).split(/\r\n?|\n|\f/),l=Math.max(1,t-i)-1,d=Math.min(t+i,c.length+1),g=Math.max(4,String(d).length)+1,p=0;n+=(Ny.length-1)*(c[t-1].substr(0,n-1).match(/\t/g)||[]).length,n>Nu&&(p=n-zy+3,n=zy-2);for(let m=l;m<=d;m++)m>=0&&m<c.length&&(c[m]=c[m].replace(/\t/g,Ny),c[m]=(p>0&&c[m].length>p?"\u2026":"")+c[m].substr(p,Nu-2)+(c[m].length>p+Nu-1?"\u2026":""));return[s(l,t),new Array(n+g+2).join("-")+"^",s(t,d)].filter(Boolean).join(`
5
- `).replace(/^(\s+\d+\s+\|\n)+/,"").replace(/\n(\s+\d+\s+\|)+$/,"")}function Ou(e,t,n,r,o,i=1,s=1){return Object.assign(Jo("SyntaxError",e),{source:t,offset:n,line:r,column:o,sourceFragment(u){return Oy({source:t,line:r,column:o,baseLine:i,baseColumn:s},isNaN(u)?0:u)},get formattedMessage(){return`Parse error: ${e}
6
- `+Oy({source:t,line:r,column:o,baseLine:i,baseColumn:s},2)}})}var Nu,zy,Ny,_y=U(()=>{"use strict";dl();Nu=100,zy=60,Ny=" "});function $y(e){let t=this.createList(),n=!1,r={recognizer:e};for(;!this.eof;){switch(this.tokenType){case 25:this.next();continue;case 13:n=!0,this.next();continue}let o=e.getNode.call(this,r);if(o===void 0)break;n&&(e.onWhiteSpace&&e.onWhiteSpace.call(this,o,t,r),n=!1),t.push(o)}return n&&e.onWhiteSpace&&e.onWhiteSpace.call(this,null,t,r),t}var Uy=U(()=>{"use strict"});function GE(e){return function(){return this[e]()}}function $u(e){let t=Object.create(null);for(let n of Object.keys(e)){let r=e[n],o=r.parse||r;o&&(t[n]=o)}return t}function qE(e){let t={context:Object.create(null),features:Object.assign(Object.create(null),e.features),scope:Object.assign(Object.create(null),e.scope),atrule:$u(e.atrule),pseudo:$u(e.pseudo),node:$u(e.node)};for(let[n,r]of Object.entries(e.parseContext))switch(typeof r){case"function":t.context[n]=r;break;case"string":t.context[n]=GE(r);break}return{config:t,...t,...t.node}}function Wy(e){let t="",n="<unknown>",r=!1,o=Ti,i=!1,s=new ll,a=Object.assign(new cl,qE(e||{}),{parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:$y,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket(l){return l===jy?1:0},consumeUntilLeftCurlyBracketOrSemicolon(l){return l===jy||l===_u?1:0},consumeUntilExclamationMarkOrSemicolon(l){return l===jE||l===_u?1:0},consumeUntilSemicolonIncluded(l){return l===_u?2:0},createList:Ti,createSingleNodeList:Ti,getFirstListNode:Ti,getLastListNode:Ti,parseWithFallback(l,d){let g=this.tokenIndex;try{return l.call(this)}catch(p){if(i)throw p;this.skip(g-this.tokenIndex);let m=d.call(this);return i=!0,o(p,m),i=!1,m}},lookupNonWSType(l){let d;do if(d=this.lookupType(l++),d!==13&&d!==25)return d;while(d!==Hy);return Hy},charCodeAt(l){return l>=0&&l<t.length?t.charCodeAt(l):0},substring(l,d){return t.substring(l,d)},substrToCursor(l){return this.source.substring(l,this.tokenStart)},cmpChar(l,d){return Qr(t,l,d)},cmpStr(l,d,g){return Jr(t,l,d,g)},consume(l){let d=this.tokenStart;return this.eat(l),this.substrToCursor(d)},consumeFunctionName(){let l=t.substring(this.tokenStart,this.tokenEnd-1);return this.eat(2),l},consumeNumber(l){let d=t.substring(this.tokenStart,Xo(t,this.tokenStart));return this.eat(l),d},eat(l){if(this.tokenType!==l){let d=vi[l].slice(0,-6).replace(/-/g," ").replace(/^./,m=>m.toUpperCase()),g=`${/[[\](){}]/.test(d)?`"${d}"`:d} is expected`,p=this.tokenStart;switch(l){case 1:this.tokenType===2||this.tokenType===7?(p=this.tokenEnd-1,g="Identifier is expected but function found"):g="Identifier is expected";break;case 4:this.isDelim(HE)&&(this.next(),p++,g="Name is expected");break;case 11:this.tokenType===10&&(p=this.tokenEnd,g="Percent sign is expected");break}this.error(g,p)}this.next()},eatIdent(l){(this.tokenType!==1||this.lookupValue(0,l)===!1)&&this.error(`Identifier "${l}" is expected`),this.next()},eatDelim(l){this.isDelim(l)||this.error(`Delim "${String.fromCharCode(l)}" is expected`),this.next()},getLocation(l,d){return r?s.getLocationRange(l,d,n):null},getLocationFromList(l){if(r){let d=this.getFirstListNode(l),g=this.getLastListNode(l);return s.getLocationRange(d!==null?d.loc.start.offset-s.startOffset:this.tokenStart,g!==null?g.loc.end.offset-s.startOffset:this.tokenStart,n)}return null},error(l,d){let g=typeof d<"u"&&d<t.length?s.getLocation(d):this.eof?s.getLocation(Ay(t,t.length-1)):s.getLocation(this.tokenStart);throw new Ou(l||"Unexpected input",t,g.offset,g.line,g.column,s.startLine,s.startColumn)}}),u=()=>({filename:n,source:t,tokenCount:a.tokenCount,getTokenType:l=>a.getTokenType(l),getTokenTypeName:l=>vi[a.getTokenType(l)],getTokenStart:l=>a.getTokenStart(l),getTokenEnd:l=>a.getTokenEnd(l),getTokenValue:l=>a.source.substring(a.getTokenStart(l),a.getTokenEnd(l)),substring:(l,d)=>a.source.substring(l,d),balance:a.balance.subarray(0,a.tokenCount+1),isBlockOpenerTokenType:a.isBlockOpenerTokenType,isBlockCloserTokenType:a.isBlockCloserTokenType,getBlockTokenPairIndex:l=>a.getBlockTokenPairIndex(l),getLocation:l=>s.getLocation(l,n),getRangeLocation:(l,d)=>s.getLocationRange(l,d,n)});return Object.assign(function(l,d){t=l,d=d||{},a.setSource(t,Co),s.setSource(t,d.offset,d.line,d.column),n=d.filename||"<unknown>",r=!!d.positions,o=typeof d.onParseError=="function"?d.onParseError:Ti,i=!1,a.parseAtrulePrelude="parseAtrulePrelude"in d?!!d.parseAtrulePrelude:!0,a.parseRulePrelude="parseRulePrelude"in d?!!d.parseRulePrelude:!0,a.parseValue="parseValue"in d?!!d.parseValue:!0,a.parseCustomProperty="parseCustomProperty"in d?!!d.parseCustomProperty:!1;let{context:g="default",list:p=!0,onComment:m,onToken:b}=d;if(!(g in a.context))throw new Error("Unknown context `"+g+"`");Object.assign(a,p?VE:WE),Array.isArray(b)?a.forEachToken((E,v,D)=>{b.push({type:E,start:v,end:D})}):typeof b=="function"&&a.forEachToken(b.bind(u())),typeof m=="function"&&a.forEachToken((E,v,D)=>{if(E===25){let O=a.getLocation(v,D),$=Jr(t,D-2,D,"*/")?t.slice(v+2,D-2):t.slice(v+2,D);m($,O)}});let F=a.context[g].call(a,d);return a.eof||a.error(),F},{SyntaxError:Ou,config:a.config})}var Ti,jE,HE,_u,jy,Hy,WE,VE,Vy=U(()=>{"use strict";Cs();_y();cr();Uy();Ti=()=>{},jE=33,HE=35,_u=59,jy=123,Hy=0,WE={createList(){return[]},createSingleNodeList(e){return[e]},getFirstListNode(e){return e&&e[0]||null},getLastListNode(e){return e&&e.length>0?e[e.length-1]:null}},VE={createList(){return new Zn},createSingleNodeList(e){return new Zn().appendData(e)},getFirstListNode(e){return e&&e.first},getLastListNode(e){return e&&e.last}}});var qy=sr(Uu=>{"use strict";var Gy="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");Uu.encode=function(e){if(0<=e&&e<Gy.length)return Gy[e];throw new TypeError("Must be between 0 and 63: "+e)};Uu.decode=function(e){var t=65,n=90,r=97,o=122,i=48,s=57,a=43,u=47,c=26,l=52;return t<=e&&e<=n?e-t:r<=e&&e<=o?e-r+c:i<=e&&e<=s?e-i+l:e==a?62:e==u?63:-1}});var Jy=sr(Hu=>{"use strict";var Yy=qy(),ju=5,Ky=1<<ju,Xy=Ky-1,Qy=Ky;function YE(e){return e<0?(-e<<1)+1:(e<<1)+0}function KE(e){var t=(e&1)===1,n=e>>1;return t?-n:n}Hu.encode=function(t){var n="",r,o=YE(t);do r=o&Xy,o>>>=ju,o>0&&(r|=Qy),n+=Yy.encode(r);while(o>0);return n};Hu.decode=function(t,n,r){var o=t.length,i=0,s=0,a,u;do{if(n>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(u=Yy.decode(t.charCodeAt(n++)),u===-1)throw new Error("Invalid base64 digit: "+t.charAt(n-1));a=!!(u&Qy),u&=Xy,i=i+(u<<s),s+=ju}while(a);r.value=KE(i),r.rest=n}});var gl=sr(cn=>{"use strict";function XE(e,t,n){if(t in e)return e[t];if(arguments.length===3)return n;throw new Error('"'+t+'" is a required argument.')}cn.getArg=XE;var Zy=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,QE=/^data:.+\,.+$/;function Ts(e){var t=e.match(Zy);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}cn.urlParse=Ts;function Ii(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}cn.urlGenerate=Ii;var JE=32;function ZE(e){var t=[];return function(n){for(var r=0;r<t.length;r++)if(t[r].input===n){var o=t[0];return t[0]=t[r],t[r]=o,t[0].result}var i=e(n);return t.unshift({input:n,result:i}),t.length>JE&&t.pop(),i}}var Wu=ZE(function(t){var n=t,r=Ts(t);if(r){if(!r.path)return t;n=r.path}for(var o=cn.isAbsolute(n),i=[],s=0,a=0;;)if(s=a,a=n.indexOf("/",s),a===-1){i.push(n.slice(s));break}else for(i.push(n.slice(s,a));a<n.length&&n[a]==="/";)a++;for(var u,c=0,a=i.length-1;a>=0;a--)u=i[a],u==="."?i.splice(a,1):u===".."?c++:c>0&&(u===""?(i.splice(a+1,c),c=0):(i.splice(a,2),c--));return n=i.join("/"),n===""&&(n=o?"/":"."),r?(r.path=n,Ii(r)):n});cn.normalize=Wu;function eb(e,t){e===""&&(e="."),t===""&&(t=".");var n=Ts(t),r=Ts(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),Ii(n);if(n||t.match(QE))return t;if(r&&!r.host&&!r.path)return r.host=t,Ii(r);var o=t.charAt(0)==="/"?t:Wu(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=o,Ii(r)):o}cn.join=eb;cn.isAbsolute=function(e){return e.charAt(0)==="/"||Zy.test(e)};function eA(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");for(var n=0;t.indexOf(e+"/")!==0;){var r=e.lastIndexOf("/");if(r<0||(e=e.slice(0,r),e.match(/^([^\/]+:\/)?\/*$/)))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}cn.relative=eA;var tb=(function(){var e=Object.create(null);return!("__proto__"in e)})();function nb(e){return e}function tA(e){return rb(e)?"$"+e:e}cn.toSetString=tb?nb:tA;function nA(e){return rb(e)?e.slice(1):e}cn.fromSetString=tb?nb:nA;function rb(e){if(!e)return!1;var t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return!1;for(var n=t-10;n>=0;n--)if(e.charCodeAt(n)!==36)return!1;return!0}function rA(e,t,n){var r=eo(e.source,t.source);return r!==0||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0||n)||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=e.generatedLine-t.generatedLine,r!==0)?r:eo(e.name,t.name)}cn.compareByOriginalPositions=rA;function oA(e,t,n){var r;return r=e.originalLine-t.originalLine,r!==0||(r=e.originalColumn-t.originalColumn,r!==0||n)||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=e.generatedLine-t.generatedLine,r!==0)?r:eo(e.name,t.name)}cn.compareByOriginalPositionsNoSource=oA;function iA(e,t,n){var r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0||n)||(r=eo(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:eo(e.name,t.name)}cn.compareByGeneratedPositionsDeflated=iA;function sA(e,t,n){var r=e.generatedColumn-t.generatedColumn;return r!==0||n||(r=eo(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:eo(e.name,t.name)}cn.compareByGeneratedPositionsDeflatedNoLine=sA;function eo(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function aA(e,t){var n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=eo(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:eo(e.name,t.name)}cn.compareByGeneratedPositionsInflated=aA;function lA(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}cn.parseSourceMapInput=lA;function cA(e,t,n){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),n){var r=Ts(n);if(!r)throw new Error("sourceMapURL could not be parsed");if(r.path){var o=r.path.lastIndexOf("/");o>=0&&(r.path=r.path.substring(0,o+1))}t=eb(Ii(r),t)}return Wu(t)}cn.computeSourceURL=cA});var ib=sr(ob=>{"use strict";var Vu=gl(),Gu=Object.prototype.hasOwnProperty,Zo=typeof Map<"u";function to(){this._array=[],this._set=Zo?new Map:Object.create(null)}to.fromArray=function(t,n){for(var r=new to,o=0,i=t.length;o<i;o++)r.add(t[o],n);return r};to.prototype.size=function(){return Zo?this._set.size:Object.getOwnPropertyNames(this._set).length};to.prototype.add=function(t,n){var r=Zo?t:Vu.toSetString(t),o=Zo?this.has(t):Gu.call(this._set,r),i=this._array.length;(!o||n)&&this._array.push(t),o||(Zo?this._set.set(t,i):this._set[r]=i)};to.prototype.has=function(t){if(Zo)return this._set.has(t);var n=Vu.toSetString(t);return Gu.call(this._set,n)};to.prototype.indexOf=function(t){if(Zo){var n=this._set.get(t);if(n>=0)return n}else{var r=Vu.toSetString(t);if(Gu.call(this._set,r))return this._set[r]}throw new Error('"'+t+'" is not in the set.')};to.prototype.at=function(t){if(t>=0&&t<this._array.length)return this._array[t];throw new Error("No element indexed by "+t)};to.prototype.toArray=function(){return this._array.slice()};ob.ArraySet=to});var lb=sr(ab=>{"use strict";var sb=gl();function uA(e,t){var n=e.generatedLine,r=t.generatedLine,o=e.generatedColumn,i=t.generatedColumn;return r>n||r==n&&i>=o||sb.compareByGeneratedPositionsInflated(e,t)<=0}function fl(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}fl.prototype.unsortedForEach=function(t,n){this._array.forEach(t,n)};fl.prototype.add=function(t){uA(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))};fl.prototype.toArray=function(){return this._sorted||(this._array.sort(sb.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};ab.MappingList=fl});var ub=sr(cb=>{"use strict";var Is=Jy(),Gt=gl(),ml=ib().ArraySet,pA=lb().MappingList;function ur(e){e||(e={}),this._file=Gt.getArg(e,"file",null),this._sourceRoot=Gt.getArg(e,"sourceRoot",null),this._skipValidation=Gt.getArg(e,"skipValidation",!1),this._ignoreInvalidMapping=Gt.getArg(e,"ignoreInvalidMapping",!1),this._sources=new ml,this._names=new ml,this._mappings=new pA,this._sourcesContents=null}ur.prototype._version=3;ur.fromSourceMap=function(t,n){var r=t.sourceRoot,o=new ur(Object.assign(n||{},{file:t.file,sourceRoot:r}));return t.eachMapping(function(i){var s={generated:{line:i.generatedLine,column:i.generatedColumn}};i.source!=null&&(s.source=i.source,r!=null&&(s.source=Gt.relative(r,s.source)),s.original={line:i.originalLine,column:i.originalColumn},i.name!=null&&(s.name=i.name)),o.addMapping(s)}),t.sources.forEach(function(i){var s=i;r!==null&&(s=Gt.relative(r,i)),o._sources.has(s)||o._sources.add(s);var a=t.sourceContentFor(i);a!=null&&o.setSourceContent(i,a)}),o};ur.prototype.addMapping=function(t){var n=Gt.getArg(t,"generated"),r=Gt.getArg(t,"original",null),o=Gt.getArg(t,"source",null),i=Gt.getArg(t,"name",null);!this._skipValidation&&this._validateMapping(n,r,o,i)===!1||(o!=null&&(o=String(o),this._sources.has(o)||this._sources.add(o)),i!=null&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:r!=null&&r.line,originalColumn:r!=null&&r.column,source:o,name:i}))};ur.prototype.setSourceContent=function(t,n){var r=t;this._sourceRoot!=null&&(r=Gt.relative(this._sourceRoot,r)),n!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Gt.toSetString(r)]=n):this._sourcesContents&&(delete this._sourcesContents[Gt.toSetString(r)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))};ur.prototype.applySourceMap=function(t,n,r){var o=n;if(n==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);o=t.file}var i=this._sourceRoot;i!=null&&(o=Gt.relative(i,o));var s=new ml,a=new ml;this._mappings.unsortedForEach(function(u){if(u.source===o&&u.originalLine!=null){var c=t.originalPositionFor({line:u.originalLine,column:u.originalColumn});c.source!=null&&(u.source=c.source,r!=null&&(u.source=Gt.join(r,u.source)),i!=null&&(u.source=Gt.relative(i,u.source)),u.originalLine=c.line,u.originalColumn=c.column,c.name!=null&&(u.name=c.name))}var l=u.source;l!=null&&!s.has(l)&&s.add(l);var d=u.name;d!=null&&!a.has(d)&&a.add(d)},this),this._sources=s,this._names=a,t.sources.forEach(function(u){var c=t.sourceContentFor(u);c!=null&&(r!=null&&(u=Gt.join(r,u)),i!=null&&(u=Gt.relative(i,u)),this.setSourceContent(u,c))},this)};ur.prototype._validateMapping=function(t,n,r,o){if(n&&typeof n.line!="number"&&typeof n.column!="number"){var i="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!n&&!r&&!o)){if(t&&"line"in t&&"column"in t&&n&&"line"in n&&"column"in n&&t.line>0&&t.column>=0&&n.line>0&&n.column>=0&&r)return;var i="Invalid mapping: "+JSON.stringify({generated:t,source:r,original:n,name:o});if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}};ur.prototype._serializeMappings=function(){for(var t=0,n=1,r=0,o=0,i=0,s=0,a="",u,c,l,d,g=this._mappings.toArray(),p=0,m=g.length;p<m;p++){if(c=g[p],u="",c.generatedLine!==n)for(t=0;c.generatedLine!==n;)u+=";",n++;else if(p>0){if(!Gt.compareByGeneratedPositionsInflated(c,g[p-1]))continue;u+=","}u+=Is.encode(c.generatedColumn-t),t=c.generatedColumn,c.source!=null&&(d=this._sources.indexOf(c.source),u+=Is.encode(d-s),s=d,u+=Is.encode(c.originalLine-1-o),o=c.originalLine-1,u+=Is.encode(c.originalColumn-r),r=c.originalColumn,c.name!=null&&(l=this._names.indexOf(c.name),u+=Is.encode(l-i),i=l)),a+=u}return a};ur.prototype._generateSourcesContent=function(t,n){return t.map(function(r){if(!this._sourcesContents)return null;n!=null&&(r=Gt.relative(n,r));var o=Gt.toSetString(r);return Object.prototype.hasOwnProperty.call(this._sourcesContents,o)?this._sourcesContents[o]:null},this)};ur.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t};ur.prototype.toString=function(){return JSON.stringify(this.toJSON())};cb.SourceMapGenerator=ur});function gb(e){let t=new db.SourceMapGenerator,n={line:1,column:0},r={line:0,column:0},o={line:1,column:0},i={generated:o},s=1,a=0,u=!1,c=e.node;e.node=function(g){if(g.loc&&g.loc.start&&pb.has(g.type)){let p=g.loc.start.line,m=g.loc.start.column-1;(r.line!==p||r.column!==m)&&(r.line=p,r.column=m,n.line=s,n.column=a,u&&(u=!1,(n.line!==o.line||n.column!==o.column)&&t.addMapping(i)),u=!0,t.addMapping({source:g.loc.source,original:r,generated:n}))}c.call(this,g),u&&pb.has(g.type)&&(o.line=s,o.column=a)};let l=e.emit;e.emit=function(g,p,m){for(let b=0;b<g.length;b++)g.charCodeAt(b)===10?(s++,a=0):a++;l(g,p,m)};let d=e.result;return e.result=function(){return u&&t.addMapping(i),{css:d(),map:t}},e}var db,pb,fb=U(()=>{"use strict";db=Ga(ub(),1),pb=new Set(["Atrule","Selector","Declaration"])});var hl={};ye(hl,{safe:()=>Yu,spec:()=>mA});function hb(e){let t=new Set(e.map(([n,r])=>qu(n)<<16|qu(r)));return function(n,r,o){let i=qu(r,o),s=o.charCodeAt(0),a=s===gA&&r!==1&&r!==2&&r!==15||s===dA?t.has((n&65534)<<16|s<<7):t.has((n&65534)<<16|i);return i|a}}var dA,gA,qu,mb,fA,mA,Yu,xb=U(()=>{"use strict";dA=43,gA=45,qu=(e,t)=>(e===9&&(e=t),typeof e=="string"&&(e=Math.min(e.charCodeAt(0),128)<<6),e<<1),mb=[[1,1],[1,2],[1,7],[1,8],[1,"-"],[1,10],[1,11],[1,12],[1,15],[1,21],[3,1],[3,2],[3,7],[3,8],[3,"-"],[3,10],[3,11],[3,12],[3,15],[4,1],[4,2],[4,7],[4,8],[4,"-"],[4,10],[4,11],[4,12],[4,15],[12,1],[12,2],[12,7],[12,8],[12,"-"],[12,10],[12,11],[12,12],[12,15],["#",1],["#",2],["#",7],["#",8],["#","-"],["#",10],["#",11],["#",12],["#",15],["-",1],["-",2],["-",7],["-",8],["-","-"],["-",10],["-",11],["-",12],["-",15],[10,1],[10,2],[10,7],[10,8],[10,10],[10,11],[10,12],[10,"%"],[10,15],["@",1],["@",2],["@",7],["@",8],["@","-"],["@",15],[".",10],[".",11],[".",12],["+",10],["+",11],["+",12],["/","*"]],fA=mb.concat([[1,4],[12,4],[4,4],[3,21],[3,5],[3,16],[11,11],[11,12],[11,2],[11,"-"],[22,1],[22,2],[22,11],[22,12],[22,4],[22,"-"]]);mA=hb(mb),Yu=hb(fA)});function xA(e,t){if(typeof t=="function"){let n=null;e.children.forEach(r=>{n!==null&&t.call(this,n),this.node(r),n=r});return}e.children.forEach(this.node,this)}function yb(e){let t=new Map;for(let[n,r]of Object.entries(e.node))typeof(r.generate||r)=="function"&&t.set(n,r.generate||r);return function(n,r){let o="",i=0,s={node(u){if(t.has(u.type))t.get(u.type).call(a,u);else throw new Error("Unknown node type: "+u.type)},tokenBefore:Yu,token(u,c,l){i=this.tokenBefore(i,u,c),!l&&i&1&&this.emit(" ",13,!0),this.emit(c,u,!1),u===9&&c.charCodeAt(0)===hA&&this.emit(`
7
- `,13,!0)},emit(u){o+=u},result(){return o}};r&&(typeof r.decorator=="function"&&(s=r.decorator(s)),r.sourceMap&&(s=gb(s)),r.mode in hl&&(s.tokenBefore=hl[r.mode]));let a={node:u=>s.node(u),children:xA,token:(u,c)=>s.token(u,c),tokenize:u=>Co(u,(c,l,d)=>{s.token(c,u.slice(l,d),l!==0)})};return s.node(n),s.result()}}var hA,bb=U(()=>{"use strict";cr();fb();xb();hA=92});function Sb(e){return{fromPlainObject(t){return e(t,{enter(n){n.children&&!(n.children instanceof Zn)&&(n.children=new Zn().fromArray(n.children))}}),t},toPlainObject(t){return e(t,{leave(n){n.children&&n.children instanceof Zn&&(n.children=n.children.toArray())}}),t}}}var wb=U(()=>{"use strict";Cs()});function vb(e){return typeof e=="function"?e:Fs}function kb(e,t){return function(n,r,o){n.type===t&&e.call(this,n,r,o)}}function yA(e,t){let n=t.structure,r=[];for(let o in n){if(Ku.call(n,o)===!1)continue;let i=n[o],s={name:o,type:!1,nullable:!1};Array.isArray(i)||(i=[i]);for(let a of i)a===null?s.nullable=!0:typeof a=="string"?s.type="node":Array.isArray(a)&&(s.type="list");s.type&&r.push(s)}return r.length?{context:t.walkContext,fields:r}:null}function bA(e){let t={};for(let n in e.node)if(Ku.call(e.node,n)){let r=e.node[n];if(!r.structure)throw new Error("Missed `structure` field in `"+n+"` node type definition");t[n]=yA(n,r)}return t}function Cb(e,t){let n=e.fields.slice(),r=e.context,o=typeof r=="string";return t&&n.reverse(),function(i,s,a,u){let c;o&&(c=s[r],s[r]=i);for(let l of n){let d=i[l.name];if(!l.nullable||d){if(l.type==="list"){if(t?d.reduceRight(u,!1):d.reduce(u,!1))return!0}else if(a(d))return!0}}o&&(s[r]=c)}}function Tb({StyleSheet:e,Atrule:t,Rule:n,Block:r,DeclarationList:o}){return{Atrule:{StyleSheet:e,Atrule:t,Rule:n,Block:r},Rule:{StyleSheet:e,Atrule:t,Rule:n,Block:r},Declaration:{StyleSheet:e,Atrule:t,Rule:n,Block:r,DeclarationList:o}}}function Ib(e){let t=bA(e),n={},r={},o=Symbol("break-walk"),i=Symbol("skip-node");for(let c in t)Ku.call(t,c)&&t[c]!==null&&(n[c]=Cb(t[c],!1),r[c]=Cb(t[c],!0));let s=Tb(n),a=Tb(r),u=function(c,l){function d(E,v,D){let O=g.call(F,E,v,D);return O===o?!0:O===i?!1:!!(m.hasOwnProperty(E.type)&&m[E.type](E,F,d,b)||p.call(F,E,v,D)===o)}let g=Fs,p=Fs,m=n,b=(E,v,D,O)=>E||d(v,D,O),F={break:o,skip:i,root:c,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if(typeof l=="function")g=l;else if(l&&(g=vb(l.enter),p=vb(l.leave),l.reverse&&(m=r),l.visit)){if(s.hasOwnProperty(l.visit))m=l.reverse?a[l.visit]:s[l.visit];else if(!t.hasOwnProperty(l.visit))throw new Error("Bad value `"+l.visit+"` for `visit` option (should be: "+Object.keys(t).sort().join(", ")+")");g=kb(g,l.visit),p=kb(p,l.visit)}if(g===Fs&&p===Fs)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");d(c)};return u.break=o,u.skip=i,u.find=function(c,l){let d=null;return u(c,function(g,p,m){if(l.call(this,g,p,m))return d=g,o}),d},u.findLast=function(c,l){let d=null;return u(c,{reverse:!0,enter(g,p,m){if(l.call(this,g,p,m))return d=g,o}}),d},u.findAll=function(c,l){let d=[];return u(c,function(g,p,m){l.call(this,g,p,m)&&d.push(g)}),d},u}var Ku,Fs,Fb=U(()=>{"use strict";({hasOwnProperty:Ku}=Object.prototype),Fs=function(){}});function SA(e){return e}function wA(e){let{min:t,max:n,comma:r}=e;return t===0&&n===0?r?"#?":"*":t===0&&n===1?"?":t===1&&n===0?r?"#":"+":t===1&&n===1?"":(r?"#":"")+(t===n?"{"+t+"}":"{"+t+","+(n!==0?n:"")+"}")}function vA(e){if(e.type==="Range")return" ["+(e.min===null?"-\u221E":e.min)+","+(e.max===null?"\u221E":e.max)+"]";throw new Error("Unknown node type `"+e.type+"`")}function kA(e,t,n,r){let o=e.combinator===" "||r?e.combinator:" "+e.combinator+" ",i=e.terms.map(s=>xl(s,t,n,r)).join(o);return e.explicit||n?(r||i[0]===","?"[":"[ ")+i+(r?"]":" ]"):i}function xl(e,t,n,r){let o;switch(e.type){case"Group":o=kA(e,t,n,r)+(e.disallowEmpty?"!":"");break;case"Multiplier":return xl(e.term,t,n,r)+t(wA(e),e);case"Boolean":o="<boolean-expr["+xl(e.term,t,n,r)+"]>";break;case"Type":o="<"+e.name+(e.opts?t(vA(e.opts),e.opts):"")+">";break;case"Property":o="<'"+e.name+"'>";break;case"Keyword":o=e.name;break;case"AtKeyword":o="@"+e.name;break;case"Function":o=e.name+"(";break;case"String":case"Token":o=e.value;break;case"Comma":o=",";break;default:throw new Error("Unknown node type `"+e.type+"`")}return t(o,e)}function Fi(e,t){let n=SA,r=!1,o=!1;return typeof t=="function"?n=t:t&&(r=!!t.forceBraces,o=!!t.compact,typeof t.decorate=="function"&&(n=t.decorate)),xl(e,n,r,o)}var Xu=U(()=>{"use strict"});function CA(e,t){let n=e.tokens,r=e.longestMatch,o=r<n.length&&n[r].node||null,i=o!==t?o:null,s=0,a=0,u=0,c="",l,d;for(let g=0;g<n.length;g++){let p=n[g].value;g===r&&(a=p.length,s=c.length),i!==null&&n[g].node===i&&(g<=r?u++:u=0),c+=p}return r===n.length||u>1?(l=yl(i||t,"end")||Es(Eb,c),d=Es(l)):(l=yl(i,"start")||Es(yl(t,"start")||Eb,c.slice(0,s)),d=yl(i,"end")||Es(l,c.substr(s,a))),{css:c,mismatchOffset:s,mismatchLength:a,start:l,end:d}}function yl(e,t){let n=e&&e.loc&&e.loc[t];return n?"line"in n?Es(n):n:null}function Es({offset:e,line:t,column:n},r){let o={offset:e,line:t,column:n};if(r){let i=r.split(/\n|\r\n?|\f/);o.offset+=r.length,o.line+=i.length-1,o.column=i.length===1?o.column+r.length:i.pop().length+1}return o}var Eb,Ei,Ab,Pb=U(()=>{"use strict";dl();Xu();Eb={offset:0,line:1,column:1};Ei=function(e,t){let n=Jo("SyntaxReferenceError",e+(t?" `"+t+"`":""));return n.reference=t,n},Ab=function(e,t,n,r){let o=Jo("SyntaxMatchError",e),{css:i,mismatchOffset:s,mismatchLength:a,start:u,end:c}=CA(r,n);return o.rawMessage=e,o.syntax=t?Fi(t):"<generic>",o.css=i,o.mismatchOffset=s,o.mismatchLength=a,o.message=e+`
4
+ `.repeat(Math.max(r-1,0)),u=" ".repeat(Math.max(o-1,0)),c=(a+u+e).split(/\r\n?|\n|\f/),l=Math.max(1,t-i)-1,d=Math.min(t+i,c.length+1),g=Math.max(4,String(d).length)+1,p=0;n+=(Vy.length-1)*(c[t-1].substr(0,n-1).match(/\t/g)||[]).length,n>Wu&&(p=n-Wy+3,n=Wy-2);for(let m=l;m<=d;m++)m>=0&&m<c.length&&(c[m]=c[m].replace(/\t/g,Vy),c[m]=(p>0&&c[m].length>p?"\u2026":"")+c[m].substr(p,Wu-2)+(c[m].length>p+Wu-1?"\u2026":""));return[s(l,t),new Array(n+g+2).join("-")+"^",s(t,d)].filter(Boolean).join(`
5
+ `).replace(/^(\s+\d+\s+\|\n)+/,"").replace(/\n(\s+\d+\s+\|)+$/,"")}function Vu(e,t,n,r,o,i=1,s=1){return Object.assign(Zo("SyntaxError",e),{source:t,offset:n,line:r,column:o,sourceFragment(u){return Gy({source:t,line:r,column:o,baseLine:i,baseColumn:s},isNaN(u)?0:u)},get formattedMessage(){return`Parse error: ${e}
6
+ `+Gy({source:t,line:r,column:o,baseLine:i,baseColumn:s},2)}})}var Wu,Wy,Vy,qy=U(()=>{"use strict";ml();Wu=100,Wy=60,Vy=" "});function Yy(e){let t=this.createList(),n=!1,r={recognizer:e};for(;!this.eof;){switch(this.tokenType){case 25:this.next();continue;case 13:n=!0,this.next();continue}let o=e.getNode.call(this,r);if(o===void 0)break;n&&(e.onWhiteSpace&&e.onWhiteSpace.call(this,o,t,r),n=!1),t.push(o)}return n&&e.onWhiteSpace&&e.onWhiteSpace.call(this,null,t,r),t}var Ky=U(()=>{"use strict"});function oA(e){return function(){return this[e]()}}function qu(e){let t=Object.create(null);for(let n of Object.keys(e)){let r=e[n],o=r.parse||r;o&&(t[n]=o)}return t}function iA(e){let t={context:Object.create(null),features:Object.assign(Object.create(null),e.features),scope:Object.assign(Object.create(null),e.scope),atrule:qu(e.atrule),pseudo:qu(e.pseudo),node:qu(e.node)};for(let[n,r]of Object.entries(e.parseContext))switch(typeof r){case"function":t.context[n]=r;break;case"string":t.context[n]=oA(r);break}return{config:t,...t,...t.node}}function Jy(e){let t="",n="<unknown>",r=!1,o=Ii,i=!1,s=new pl,a=Object.assign(new dl,iA(e||{}),{parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:Yy,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket(l){return l===Xy?1:0},consumeUntilLeftCurlyBracketOrSemicolon(l){return l===Xy||l===Gu?1:0},consumeUntilExclamationMarkOrSemicolon(l){return l===eA||l===Gu?1:0},consumeUntilSemicolonIncluded(l){return l===Gu?2:0},createList:Ii,createSingleNodeList:Ii,getFirstListNode:Ii,getLastListNode:Ii,parseWithFallback(l,d){let g=this.tokenIndex;try{return l.call(this)}catch(p){if(i)throw p;this.skip(g-this.tokenIndex);let m=d.call(this);return i=!0,o(p,m),i=!1,m}},lookupNonWSType(l){let d;do if(d=this.lookupType(l++),d!==13&&d!==25)return d;while(d!==Qy);return Qy},charCodeAt(l){return l>=0&&l<t.length?t.charCodeAt(l):0},substring(l,d){return t.substring(l,d)},substrToCursor(l){return this.source.substring(l,this.tokenStart)},cmpChar(l,d){return Qr(t,l,d)},cmpStr(l,d,g){return Jr(t,l,d,g)},consume(l){let d=this.tokenStart;return this.eat(l),this.substrToCursor(d)},consumeFunctionName(){let l=t.substring(this.tokenStart,this.tokenEnd-1);return this.eat(2),l},consumeNumber(l){let d=t.substring(this.tokenStart,Qo(t,this.tokenStart));return this.eat(l),d},eat(l){if(this.tokenType!==l){let d=ki[l].slice(0,-6).replace(/-/g," ").replace(/^./,m=>m.toUpperCase()),g=`${/[[\](){}]/.test(d)?`"${d}"`:d} is expected`,p=this.tokenStart;switch(l){case 1:this.tokenType===2||this.tokenType===7?(p=this.tokenEnd-1,g="Identifier is expected but function found"):g="Identifier is expected";break;case 4:this.isDelim(tA)&&(this.next(),p++,g="Name is expected");break;case 11:this.tokenType===10&&(p=this.tokenEnd,g="Percent sign is expected");break}this.error(g,p)}this.next()},eatIdent(l){(this.tokenType!==1||this.lookupValue(0,l)===!1)&&this.error(`Identifier "${l}" is expected`),this.next()},eatDelim(l){this.isDelim(l)||this.error(`Delim "${String.fromCharCode(l)}" is expected`),this.next()},getLocation(l,d){return r?s.getLocationRange(l,d,n):null},getLocationFromList(l){if(r){let d=this.getFirstListNode(l),g=this.getLastListNode(l);return s.getLocationRange(d!==null?d.loc.start.offset-s.startOffset:this.tokenStart,g!==null?g.loc.end.offset-s.startOffset:this.tokenStart,n)}return null},error(l,d){let g=typeof d<"u"&&d<t.length?s.getLocation(d):this.eof?s.getLocation(Ny(t,t.length-1)):s.getLocation(this.tokenStart);throw new Vu(l||"Unexpected input",t,g.offset,g.line,g.column,s.startLine,s.startColumn)}}),u=()=>({filename:n,source:t,tokenCount:a.tokenCount,getTokenType:l=>a.getTokenType(l),getTokenTypeName:l=>ki[a.getTokenType(l)],getTokenStart:l=>a.getTokenStart(l),getTokenEnd:l=>a.getTokenEnd(l),getTokenValue:l=>a.source.substring(a.getTokenStart(l),a.getTokenEnd(l)),substring:(l,d)=>a.source.substring(l,d),balance:a.balance.subarray(0,a.tokenCount+1),isBlockOpenerTokenType:a.isBlockOpenerTokenType,isBlockCloserTokenType:a.isBlockCloserTokenType,getBlockTokenPairIndex:l=>a.getBlockTokenPairIndex(l),getLocation:l=>s.getLocation(l,n),getRangeLocation:(l,d)=>s.getLocationRange(l,d,n)});return Object.assign(function(l,d){t=l,d=d||{},a.setSource(t,Io),s.setSource(t,d.offset,d.line,d.column),n=d.filename||"<unknown>",r=!!d.positions,o=typeof d.onParseError=="function"?d.onParseError:Ii,i=!1,a.parseAtrulePrelude="parseAtrulePrelude"in d?!!d.parseAtrulePrelude:!0,a.parseRulePrelude="parseRulePrelude"in d?!!d.parseRulePrelude:!0,a.parseValue="parseValue"in d?!!d.parseValue:!0,a.parseCustomProperty="parseCustomProperty"in d?!!d.parseCustomProperty:!1;let{context:g="default",list:p=!0,onComment:m,onToken:b}=d;if(!(g in a.context))throw new Error("Unknown context `"+g+"`");Object.assign(a,p?rA:nA),Array.isArray(b)?a.forEachToken((E,k,D)=>{b.push({type:E,start:k,end:D})}):typeof b=="function"&&a.forEachToken(b.bind(u())),typeof m=="function"&&a.forEachToken((E,k,D)=>{if(E===25){let N=a.getLocation(k,D),$=Jr(t,D-2,D,"*/")?t.slice(k+2,D-2):t.slice(k+2,D);m($,N)}});let I=a.context[g].call(a,d);return a.eof||a.error(),I},{SyntaxError:Vu,config:a.config})}var Ii,eA,tA,Gu,Xy,Qy,nA,rA,Zy=U(()=>{"use strict";Ts();qy();lr();Ky();Ii=()=>{},eA=33,tA=35,Gu=59,Xy=123,Qy=0,nA={createList(){return[]},createSingleNodeList(e){return[e]},getFirstListNode(e){return e&&e[0]||null},getLastListNode(e){return e&&e.length>0?e[e.length-1]:null}},rA={createList(){return new Qn},createSingleNodeList(e){return new Qn().appendData(e)},getFirstListNode(e){return e&&e.first},getLastListNode(e){return e&&e.last}}});var tb=ir(Yu=>{"use strict";var eb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");Yu.encode=function(e){if(0<=e&&e<eb.length)return eb[e];throw new TypeError("Must be between 0 and 63: "+e)};Yu.decode=function(e){var t=65,n=90,r=97,o=122,i=48,s=57,a=43,u=47,c=26,l=52;return t<=e&&e<=n?e-t:r<=e&&e<=o?e-r+c:i<=e&&e<=s?e-i+l:e==a?62:e==u?63:-1}});var sb=ir(Xu=>{"use strict";var nb=tb(),Ku=5,rb=1<<Ku,ob=rb-1,ib=rb;function sA(e){return e<0?(-e<<1)+1:(e<<1)+0}function aA(e){var t=(e&1)===1,n=e>>1;return t?-n:n}Xu.encode=function(t){var n="",r,o=sA(t);do r=o&ob,o>>>=Ku,o>0&&(r|=ib),n+=nb.encode(r);while(o>0);return n};Xu.decode=function(t,n,r){var o=t.length,i=0,s=0,a,u;do{if(n>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(u=nb.decode(t.charCodeAt(n++)),u===-1)throw new Error("Invalid base64 digit: "+t.charAt(n-1));a=!!(u&ib),u&=ob,i=i+(u<<s),s+=Ku}while(a);r.value=aA(i),r.rest=n}});var hl=ir(an=>{"use strict";function lA(e,t,n){if(t in e)return e[t];if(arguments.length===3)return n;throw new Error('"'+t+'" is a required argument.')}an.getArg=lA;var ab=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,cA=/^data:.+\,.+$/;function Is(e){var t=e.match(ab);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}an.urlParse=Is;function Fi(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}an.urlGenerate=Fi;var uA=32;function pA(e){var t=[];return function(n){for(var r=0;r<t.length;r++)if(t[r].input===n){var o=t[0];return t[0]=t[r],t[r]=o,t[0].result}var i=e(n);return t.unshift({input:n,result:i}),t.length>uA&&t.pop(),i}}var Qu=pA(function(t){var n=t,r=Is(t);if(r){if(!r.path)return t;n=r.path}for(var o=an.isAbsolute(n),i=[],s=0,a=0;;)if(s=a,a=n.indexOf("/",s),a===-1){i.push(n.slice(s));break}else for(i.push(n.slice(s,a));a<n.length&&n[a]==="/";)a++;for(var u,c=0,a=i.length-1;a>=0;a--)u=i[a],u==="."?i.splice(a,1):u===".."?c++:c>0&&(u===""?(i.splice(a+1,c),c=0):(i.splice(a,2),c--));return n=i.join("/"),n===""&&(n=o?"/":"."),r?(r.path=n,Fi(r)):n});an.normalize=Qu;function lb(e,t){e===""&&(e="."),t===""&&(t=".");var n=Is(t),r=Is(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),Fi(n);if(n||t.match(cA))return t;if(r&&!r.host&&!r.path)return r.host=t,Fi(r);var o=t.charAt(0)==="/"?t:Qu(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=o,Fi(r)):o}an.join=lb;an.isAbsolute=function(e){return e.charAt(0)==="/"||ab.test(e)};function dA(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");for(var n=0;t.indexOf(e+"/")!==0;){var r=e.lastIndexOf("/");if(r<0||(e=e.slice(0,r),e.match(/^([^\/]+:\/)?\/*$/)))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}an.relative=dA;var cb=(function(){var e=Object.create(null);return!("__proto__"in e)})();function ub(e){return e}function gA(e){return pb(e)?"$"+e:e}an.toSetString=cb?ub:gA;function fA(e){return pb(e)?e.slice(1):e}an.fromSetString=cb?ub:fA;function pb(e){if(!e)return!1;var t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return!1;for(var n=t-10;n>=0;n--)if(e.charCodeAt(n)!==36)return!1;return!0}function mA(e,t,n){var r=eo(e.source,t.source);return r!==0||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0||n)||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=e.generatedLine-t.generatedLine,r!==0)?r:eo(e.name,t.name)}an.compareByOriginalPositions=mA;function hA(e,t,n){var r;return r=e.originalLine-t.originalLine,r!==0||(r=e.originalColumn-t.originalColumn,r!==0||n)||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=e.generatedLine-t.generatedLine,r!==0)?r:eo(e.name,t.name)}an.compareByOriginalPositionsNoSource=hA;function xA(e,t,n){var r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0||n)||(r=eo(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:eo(e.name,t.name)}an.compareByGeneratedPositionsDeflated=xA;function yA(e,t,n){var r=e.generatedColumn-t.generatedColumn;return r!==0||n||(r=eo(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:eo(e.name,t.name)}an.compareByGeneratedPositionsDeflatedNoLine=yA;function eo(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function bA(e,t){var n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=eo(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:eo(e.name,t.name)}an.compareByGeneratedPositionsInflated=bA;function SA(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}an.parseSourceMapInput=SA;function wA(e,t,n){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),n){var r=Is(n);if(!r)throw new Error("sourceMapURL could not be parsed");if(r.path){var o=r.path.lastIndexOf("/");o>=0&&(r.path=r.path.substring(0,o+1))}t=lb(Fi(r),t)}return Qu(t)}an.computeSourceURL=wA});var gb=ir(db=>{"use strict";var Ju=hl(),Zu=Object.prototype.hasOwnProperty,ei=typeof Map<"u";function to(){this._array=[],this._set=ei?new Map:Object.create(null)}to.fromArray=function(t,n){for(var r=new to,o=0,i=t.length;o<i;o++)r.add(t[o],n);return r};to.prototype.size=function(){return ei?this._set.size:Object.getOwnPropertyNames(this._set).length};to.prototype.add=function(t,n){var r=ei?t:Ju.toSetString(t),o=ei?this.has(t):Zu.call(this._set,r),i=this._array.length;(!o||n)&&this._array.push(t),o||(ei?this._set.set(t,i):this._set[r]=i)};to.prototype.has=function(t){if(ei)return this._set.has(t);var n=Ju.toSetString(t);return Zu.call(this._set,n)};to.prototype.indexOf=function(t){if(ei){var n=this._set.get(t);if(n>=0)return n}else{var r=Ju.toSetString(t);if(Zu.call(this._set,r))return this._set[r]}throw new Error('"'+t+'" is not in the set.')};to.prototype.at=function(t){if(t>=0&&t<this._array.length)return this._array[t];throw new Error("No element indexed by "+t)};to.prototype.toArray=function(){return this._array.slice()};db.ArraySet=to});var hb=ir(mb=>{"use strict";var fb=hl();function vA(e,t){var n=e.generatedLine,r=t.generatedLine,o=e.generatedColumn,i=t.generatedColumn;return r>n||r==n&&i>=o||fb.compareByGeneratedPositionsInflated(e,t)<=0}function xl(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}xl.prototype.unsortedForEach=function(t,n){this._array.forEach(t,n)};xl.prototype.add=function(t){vA(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))};xl.prototype.toArray=function(){return this._sorted||(this._array.sort(fb.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};mb.MappingList=xl});var yb=ir(xb=>{"use strict";var Fs=sb(),Wt=hl(),yl=gb().ArraySet,kA=hb().MappingList;function cr(e){e||(e={}),this._file=Wt.getArg(e,"file",null),this._sourceRoot=Wt.getArg(e,"sourceRoot",null),this._skipValidation=Wt.getArg(e,"skipValidation",!1),this._ignoreInvalidMapping=Wt.getArg(e,"ignoreInvalidMapping",!1),this._sources=new yl,this._names=new yl,this._mappings=new kA,this._sourcesContents=null}cr.prototype._version=3;cr.fromSourceMap=function(t,n){var r=t.sourceRoot,o=new cr(Object.assign(n||{},{file:t.file,sourceRoot:r}));return t.eachMapping(function(i){var s={generated:{line:i.generatedLine,column:i.generatedColumn}};i.source!=null&&(s.source=i.source,r!=null&&(s.source=Wt.relative(r,s.source)),s.original={line:i.originalLine,column:i.originalColumn},i.name!=null&&(s.name=i.name)),o.addMapping(s)}),t.sources.forEach(function(i){var s=i;r!==null&&(s=Wt.relative(r,i)),o._sources.has(s)||o._sources.add(s);var a=t.sourceContentFor(i);a!=null&&o.setSourceContent(i,a)}),o};cr.prototype.addMapping=function(t){var n=Wt.getArg(t,"generated"),r=Wt.getArg(t,"original",null),o=Wt.getArg(t,"source",null),i=Wt.getArg(t,"name",null);!this._skipValidation&&this._validateMapping(n,r,o,i)===!1||(o!=null&&(o=String(o),this._sources.has(o)||this._sources.add(o)),i!=null&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:r!=null&&r.line,originalColumn:r!=null&&r.column,source:o,name:i}))};cr.prototype.setSourceContent=function(t,n){var r=t;this._sourceRoot!=null&&(r=Wt.relative(this._sourceRoot,r)),n!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Wt.toSetString(r)]=n):this._sourcesContents&&(delete this._sourcesContents[Wt.toSetString(r)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))};cr.prototype.applySourceMap=function(t,n,r){var o=n;if(n==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);o=t.file}var i=this._sourceRoot;i!=null&&(o=Wt.relative(i,o));var s=new yl,a=new yl;this._mappings.unsortedForEach(function(u){if(u.source===o&&u.originalLine!=null){var c=t.originalPositionFor({line:u.originalLine,column:u.originalColumn});c.source!=null&&(u.source=c.source,r!=null&&(u.source=Wt.join(r,u.source)),i!=null&&(u.source=Wt.relative(i,u.source)),u.originalLine=c.line,u.originalColumn=c.column,c.name!=null&&(u.name=c.name))}var l=u.source;l!=null&&!s.has(l)&&s.add(l);var d=u.name;d!=null&&!a.has(d)&&a.add(d)},this),this._sources=s,this._names=a,t.sources.forEach(function(u){var c=t.sourceContentFor(u);c!=null&&(r!=null&&(u=Wt.join(r,u)),i!=null&&(u=Wt.relative(i,u)),this.setSourceContent(u,c))},this)};cr.prototype._validateMapping=function(t,n,r,o){if(n&&typeof n.line!="number"&&typeof n.column!="number"){var i="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!n&&!r&&!o)){if(t&&"line"in t&&"column"in t&&n&&"line"in n&&"column"in n&&t.line>0&&t.column>=0&&n.line>0&&n.column>=0&&r)return;var i="Invalid mapping: "+JSON.stringify({generated:t,source:r,original:n,name:o});if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}};cr.prototype._serializeMappings=function(){for(var t=0,n=1,r=0,o=0,i=0,s=0,a="",u,c,l,d,g=this._mappings.toArray(),p=0,m=g.length;p<m;p++){if(c=g[p],u="",c.generatedLine!==n)for(t=0;c.generatedLine!==n;)u+=";",n++;else if(p>0){if(!Wt.compareByGeneratedPositionsInflated(c,g[p-1]))continue;u+=","}u+=Fs.encode(c.generatedColumn-t),t=c.generatedColumn,c.source!=null&&(d=this._sources.indexOf(c.source),u+=Fs.encode(d-s),s=d,u+=Fs.encode(c.originalLine-1-o),o=c.originalLine-1,u+=Fs.encode(c.originalColumn-r),r=c.originalColumn,c.name!=null&&(l=this._names.indexOf(c.name),u+=Fs.encode(l-i),i=l)),a+=u}return a};cr.prototype._generateSourcesContent=function(t,n){return t.map(function(r){if(!this._sourcesContents)return null;n!=null&&(r=Wt.relative(n,r));var o=Wt.toSetString(r);return Object.prototype.hasOwnProperty.call(this._sourcesContents,o)?this._sourcesContents[o]:null},this)};cr.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t};cr.prototype.toString=function(){return JSON.stringify(this.toJSON())};xb.SourceMapGenerator=cr});function wb(e){let t=new Sb.SourceMapGenerator,n={line:1,column:0},r={line:0,column:0},o={line:1,column:0},i={generated:o},s=1,a=0,u=!1,c=e.node;e.node=function(g){if(g.loc&&g.loc.start&&bb.has(g.type)){let p=g.loc.start.line,m=g.loc.start.column-1;(r.line!==p||r.column!==m)&&(r.line=p,r.column=m,n.line=s,n.column=a,u&&(u=!1,(n.line!==o.line||n.column!==o.column)&&t.addMapping(i)),u=!0,t.addMapping({source:g.loc.source,original:r,generated:n}))}c.call(this,g),u&&bb.has(g.type)&&(o.line=s,o.column=a)};let l=e.emit;e.emit=function(g,p,m){for(let b=0;b<g.length;b++)g.charCodeAt(b)===10?(s++,a=0):a++;l(g,p,m)};let d=e.result;return e.result=function(){return u&&t.addMapping(i),{css:d(),map:t}},e}var Sb,bb,vb=U(()=>{"use strict";Sb=Ka(yb(),1),bb=new Set(["Atrule","Selector","Declaration"])});var bl={};ye(bl,{safe:()=>tp,spec:()=>FA});function Cb(e){let t=new Set(e.map(([n,r])=>ep(n)<<16|ep(r)));return function(n,r,o){let i=ep(r,o),s=o.charCodeAt(0),a=s===TA&&r!==1&&r!==2&&r!==15||s===CA?t.has((n&65534)<<16|s<<7):t.has((n&65534)<<16|i);return i|a}}var CA,TA,ep,kb,IA,FA,tp,Tb=U(()=>{"use strict";CA=43,TA=45,ep=(e,t)=>(e===9&&(e=t),typeof e=="string"&&(e=Math.min(e.charCodeAt(0),128)<<6),e<<1),kb=[[1,1],[1,2],[1,7],[1,8],[1,"-"],[1,10],[1,11],[1,12],[1,15],[1,21],[3,1],[3,2],[3,7],[3,8],[3,"-"],[3,10],[3,11],[3,12],[3,15],[4,1],[4,2],[4,7],[4,8],[4,"-"],[4,10],[4,11],[4,12],[4,15],[12,1],[12,2],[12,7],[12,8],[12,"-"],[12,10],[12,11],[12,12],[12,15],["#",1],["#",2],["#",7],["#",8],["#","-"],["#",10],["#",11],["#",12],["#",15],["-",1],["-",2],["-",7],["-",8],["-","-"],["-",10],["-",11],["-",12],["-",15],[10,1],[10,2],[10,7],[10,8],[10,10],[10,11],[10,12],[10,"%"],[10,15],["@",1],["@",2],["@",7],["@",8],["@","-"],["@",15],[".",10],[".",11],[".",12],["+",10],["+",11],["+",12],["/","*"]],IA=kb.concat([[1,4],[12,4],[4,4],[3,21],[3,5],[3,16],[11,11],[11,12],[11,2],[11,"-"],[22,1],[22,2],[22,11],[22,12],[22,4],[22,"-"]]);FA=Cb(kb),tp=Cb(IA)});function AA(e,t){if(typeof t=="function"){let n=null;e.children.forEach(r=>{n!==null&&t.call(this,n),this.node(r),n=r});return}e.children.forEach(this.node,this)}function Ib(e){let t=new Map;for(let[n,r]of Object.entries(e.node))typeof(r.generate||r)=="function"&&t.set(n,r.generate||r);return function(n,r){let o="",i=0,s={node(u){if(t.has(u.type))t.get(u.type).call(a,u);else throw new Error("Unknown node type: "+u.type)},tokenBefore:tp,token(u,c,l){i=this.tokenBefore(i,u,c),!l&&i&1&&this.emit(" ",13,!0),this.emit(c,u,!1),u===9&&c.charCodeAt(0)===EA&&this.emit(`
7
+ `,13,!0)},emit(u){o+=u},result(){return o}};r&&(typeof r.decorator=="function"&&(s=r.decorator(s)),r.sourceMap&&(s=wb(s)),r.mode in bl&&(s.tokenBefore=bl[r.mode]));let a={node:u=>s.node(u),children:AA,token:(u,c)=>s.token(u,c),tokenize:u=>Io(u,(c,l,d)=>{s.token(c,u.slice(l,d),l!==0)})};return s.node(n),s.result()}}var EA,Fb=U(()=>{"use strict";lr();vb();Tb();EA=92});function Eb(e){return{fromPlainObject(t){return e(t,{enter(n){n.children&&!(n.children instanceof Qn)&&(n.children=new Qn().fromArray(n.children))}}),t},toPlainObject(t){return e(t,{leave(n){n.children&&n.children instanceof Qn&&(n.children=n.children.toArray())}}),t}}}var Ab=U(()=>{"use strict";Ts()});function Pb(e){return typeof e=="function"?e:Es}function Lb(e,t){return function(n,r,o){n.type===t&&e.call(this,n,r,o)}}function PA(e,t){let n=t.structure,r=[];for(let o in n){if(np.call(n,o)===!1)continue;let i=n[o],s={name:o,type:!1,nullable:!1};Array.isArray(i)||(i=[i]);for(let a of i)a===null?s.nullable=!0:typeof a=="string"?s.type="node":Array.isArray(a)&&(s.type="list");s.type&&r.push(s)}return r.length?{context:t.walkContext,fields:r}:null}function LA(e){let t={};for(let n in e.node)if(np.call(e.node,n)){let r=e.node[n];if(!r.structure)throw new Error("Missed `structure` field in `"+n+"` node type definition");t[n]=PA(n,r)}return t}function Mb(e,t){let n=e.fields.slice(),r=e.context,o=typeof r=="string";return t&&n.reverse(),function(i,s,a,u){let c;o&&(c=s[r],s[r]=i);for(let l of n){let d=i[l.name];if(!l.nullable||d){if(l.type==="list"){if(t?d.reduceRight(u,!1):d.reduce(u,!1))return!0}else if(a(d))return!0}}o&&(s[r]=c)}}function Bb({StyleSheet:e,Atrule:t,Rule:n,Block:r,DeclarationList:o}){return{Atrule:{StyleSheet:e,Atrule:t,Rule:n,Block:r},Rule:{StyleSheet:e,Atrule:t,Rule:n,Block:r},Declaration:{StyleSheet:e,Atrule:t,Rule:n,Block:r,DeclarationList:o}}}function Db(e){let t=LA(e),n={},r={},o=Symbol("break-walk"),i=Symbol("skip-node");for(let c in t)np.call(t,c)&&t[c]!==null&&(n[c]=Mb(t[c],!1),r[c]=Mb(t[c],!0));let s=Bb(n),a=Bb(r),u=function(c,l){function d(E,k,D){let N=g.call(I,E,k,D);return N===o?!0:N===i?!1:!!(m.hasOwnProperty(E.type)&&m[E.type](E,I,d,b)||p.call(I,E,k,D)===o)}let g=Es,p=Es,m=n,b=(E,k,D,N)=>E||d(k,D,N),I={break:o,skip:i,root:c,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if(typeof l=="function")g=l;else if(l&&(g=Pb(l.enter),p=Pb(l.leave),l.reverse&&(m=r),l.visit)){if(s.hasOwnProperty(l.visit))m=l.reverse?a[l.visit]:s[l.visit];else if(!t.hasOwnProperty(l.visit))throw new Error("Bad value `"+l.visit+"` for `visit` option (should be: "+Object.keys(t).sort().join(", ")+")");g=Lb(g,l.visit),p=Lb(p,l.visit)}if(g===Es&&p===Es)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");d(c)};return u.break=o,u.skip=i,u.find=function(c,l){let d=null;return u(c,function(g,p,m){if(l.call(this,g,p,m))return d=g,o}),d},u.findLast=function(c,l){let d=null;return u(c,{reverse:!0,enter(g,p,m){if(l.call(this,g,p,m))return d=g,o}}),d},u.findAll=function(c,l){let d=[];return u(c,function(g,p,m){l.call(this,g,p,m)&&d.push(g)}),d},u}var np,Es,Rb=U(()=>{"use strict";({hasOwnProperty:np}=Object.prototype),Es=function(){}});function MA(e){return e}function BA(e){let{min:t,max:n,comma:r}=e;return t===0&&n===0?r?"#?":"*":t===0&&n===1?"?":t===1&&n===0?r?"#":"+":t===1&&n===1?"":(r?"#":"")+(t===n?"{"+t+"}":"{"+t+","+(n!==0?n:"")+"}")}function DA(e){if(e.type==="Range")return" ["+(e.min===null?"-\u221E":e.min)+","+(e.max===null?"\u221E":e.max)+"]";throw new Error("Unknown node type `"+e.type+"`")}function RA(e,t,n,r){let o=e.combinator===" "||r?e.combinator:" "+e.combinator+" ",i=e.terms.map(s=>Sl(s,t,n,r)).join(o);return e.explicit||n?(r||i[0]===","?"[":"[ ")+i+(r?"]":" ]"):i}function Sl(e,t,n,r){let o;switch(e.type){case"Group":o=RA(e,t,n,r)+(e.disallowEmpty?"!":"");break;case"Multiplier":return Sl(e.term,t,n,r)+t(BA(e),e);case"Boolean":o="<boolean-expr["+Sl(e.term,t,n,r)+"]>";break;case"Type":o="<"+e.name+(e.opts?t(DA(e.opts),e.opts):"")+">";break;case"Property":o="<'"+e.name+"'>";break;case"Keyword":o=e.name;break;case"AtKeyword":o="@"+e.name;break;case"Function":o=e.name+"(";break;case"String":case"Token":o=e.value;break;case"Comma":o=",";break;default:throw new Error("Unknown node type `"+e.type+"`")}return t(o,e)}function Ei(e,t){let n=MA,r=!1,o=!1;return typeof t=="function"?n=t:t&&(r=!!t.forceBraces,o=!!t.compact,typeof t.decorate=="function"&&(n=t.decorate)),Sl(e,n,r,o)}var rp=U(()=>{"use strict"});function zA(e,t){let n=e.tokens,r=e.longestMatch,o=r<n.length&&n[r].node||null,i=o!==t?o:null,s=0,a=0,u=0,c="",l,d;for(let g=0;g<n.length;g++){let p=n[g].value;g===r&&(a=p.length,s=c.length),i!==null&&n[g].node===i&&(g<=r?u++:u=0),c+=p}return r===n.length||u>1?(l=wl(i||t,"end")||As(zb,c),d=As(l)):(l=wl(i,"start")||As(wl(t,"start")||zb,c.slice(0,s)),d=wl(i,"end")||As(l,c.substr(s,a))),{css:c,mismatchOffset:s,mismatchLength:a,start:l,end:d}}function wl(e,t){let n=e&&e.loc&&e.loc[t];return n?"line"in n?As(n):n:null}function As({offset:e,line:t,column:n},r){let o={offset:e,line:t,column:n};if(r){let i=r.split(/\n|\r\n?|\f/);o.offset+=r.length,o.line+=i.length-1,o.column=i.length===1?o.column+r.length:i.pop().length+1}return o}var zb,Ai,Nb,Ob=U(()=>{"use strict";ml();rp();zb={offset:0,line:1,column:1};Ai=function(e,t){let n=Zo("SyntaxReferenceError",e+(t?" `"+t+"`":""));return n.reference=t,n},Nb=function(e,t,n,r){let o=Zo("SyntaxMatchError",e),{css:i,mismatchOffset:s,mismatchLength:a,start:u,end:c}=zA(r,n);return o.rawMessage=e,o.syntax=t?Ei(t):"<generic>",o.css=i,o.mismatchOffset=s,o.mismatchLength=a,o.message=e+`
8
8
  syntax: `+o.syntax+`
9
9
  value: `+(i||"<empty string>")+`
10
- --------`+new Array(o.mismatchOffset+1).join("-")+"^",Object.assign(o,u),o.loc={source:n&&n.loc&&n.loc.source||"<unknown>",start:u,end:c},o}});function vl(e,t){return t=t||0,e.length-t>=2&&e.charCodeAt(t)===Sl&&e.charCodeAt(t+1)===Sl}function Lb(e,t){if(t=t||0,e.length-t>=3&&e.charCodeAt(t)===Sl&&e.charCodeAt(t+1)!==Sl){let n=e.indexOf("-",t+2);if(n!==-1)return e.substring(t,n+1)}return""}function TA(e){if(bl.has(e))return bl.get(e);let t=e.toLowerCase(),n=bl.get(t);if(n===void 0){let r=vl(t,0),o=r?"":Lb(t,0);n=Object.freeze({basename:t.substr(o.length),name:t,prefix:o,vendor:o,custom:r})}return bl.set(e,n),n}function IA(e){if(Ai.has(e))return Ai.get(e);let t=e,n=e[0];n==="/"?n=e[1]==="/"?"//":"/":n!=="_"&&n!=="*"&&n!=="$"&&n!=="#"&&n!=="+"&&n!=="&"&&(n="");let r=vl(t,n.length);if(!r&&(t=t.toLowerCase(),Ai.has(t))){let a=Ai.get(t);return Ai.set(e,a),a}let o=r?"":Lb(t,n.length),i=t.substr(0,n.length+o.length),s=Object.freeze({basename:t.substr(i.length),name:t.substr(n.length),hack:n,vendor:o,prefix:i,custom:r});return Ai.set(e,s),s}var bl,Ai,Sl,wl,Qu,kl=U(()=>{"use strict";bl=new Map,Ai=new Map,Sl=45,wl=TA,Qu=IA});var Pi,Cl=U(()=>{"use strict";Pi=["initial","inherit","unset","revert","revert-layer"]});function ep(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function As(e,t,n){for(;e!==null&&(e.type===13||e.type===25);)e=n(++t);return t}function To(e,t,n,r){if(!e)return 0;let o=e.value.charCodeAt(t);if(o===Ps||o===$r){if(n)return 0;t++}for(;t<e.value.length;t++)if(!Vt(e.value.charCodeAt(t)))return 0;return r+1}function Zu(e,t,n){let r=!1,o=As(e,t,n);if(e=n(o),e===null)return t;if(e.type!==10)if(ep(e,Ps)||ep(e,$r)){if(r=!0,o=As(n(++o),o,n),e=n(o),e===null||e.type!==10)return 0}else return t;if(!r){let i=e.value.charCodeAt(0);if(i!==Ps&&i!==$r)return 0}return To(e,r?0:1,r,o)}function tp(e,t){let n=0;if(!e)return 0;if(e.type===10)return To(e,0,EA,n);if(e.type===1&&e.value.charCodeAt(0)===$r){if(!Qr(e.value,1,Ju))return 0;switch(e.value.length){case 2:return Zu(t(++n),n,t);case 3:return e.value.charCodeAt(2)!==$r?0:(n=As(t(++n),n,t),e=t(n),To(e,0,Li,n));default:return e.value.charCodeAt(2)!==$r?0:To(e,3,Li,n)}}else if(e.type===1||ep(e,Ps)&&t(n+1).type===1){if(e.type!==1&&(e=t(++n)),e===null||!Qr(e.value,0,Ju))return 0;switch(e.value.length){case 1:return Zu(t(++n),n,t);case 2:return e.value.charCodeAt(1)!==$r?0:(n=As(t(++n),n,t),e=t(n),To(e,0,Li,n));default:return e.value.charCodeAt(1)!==$r?0:To(e,2,Li,n)}}else if(e.type===12){let r=e.value.charCodeAt(0),o=r===Ps||r===$r?1:0,i=o;for(;i<e.value.length&&Vt(e.value.charCodeAt(i));i++);return i===o||!Qr(e.value,i,Ju)?0:i+1===e.value.length?Zu(t(++n),n,t):e.value.charCodeAt(i+1)!==$r?0:i+2===e.value.length?(n=As(t(++n),n,t),e=t(n),To(e,0,Li,n)):To(e,i+2,Li,n)}return 0}var Ps,$r,Ju,Li,EA,Mb=U(()=>{"use strict";cr();Ps=43,$r=45,Ju=110,Li=!0,EA=!1});function np(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function LA(e,t){return e.value.charCodeAt(0)===t}function Ls(e,t,n){let r=0;for(let o=t;o<e.value.length;o++){let i=e.value.charCodeAt(o);if(i===Bb&&n&&r!==0)return Ls(e,t+r+1,!1),6;if(!Nn(i)||++r>6)return 0}return r}function Tl(e,t,n){if(!e)return 0;for(;np(n(t),Db);){if(++e>6)return 0;t++}return t}function rp(e,t){let n=0;if(e===null||e.type!==1||!Qr(e.value,0,PA)||(e=t(++n),e===null))return 0;if(np(e,AA))return e=t(++n),e===null?0:e.type===1?Tl(Ls(e,0,!0),++n,t):np(e,Db)?Tl(1,++n,t):0;if(e.type===10){let r=Ls(e,1,!0);return r===0?0:(e=t(++n),e===null?n:e.type===12||e.type===10?!LA(e,Bb)||!Ls(e,1,!1)?0:n+1:Tl(r,n,t))}return e.type===12?Tl(Ls(e,1,!0),++n,t):0}var AA,Bb,Db,PA,Rb=U(()=>{"use strict";cr();AA=43,Bb=45,Db=63,PA=117});function Ir(e,t){return t<e.length?e.charCodeAt(t):0}function Nb(e,t){return Jr(e,0,e.length,t)}function Ob(e,t){for(let n=0;n<t.length;n++)if(Nb(e,t[n]))return!0;return!1}function _b(e,t){return t!==e.length-2?!1:Ir(e,t)===92&&Vt(Ir(e,t+1))}function Il(e,t,n){if(e&&e.type==="Range"){let r=Number(n!==void 0&&n!==t.length?t.substr(0,n):t);if(isNaN(r)||e.min!==null&&r<e.min&&typeof e.min!="string"||e.max!==null&&r>e.max&&typeof e.max!="string")return!0}return!1}function zA(e,t){let n=0,r=[],o=0;e:do{switch(e.type){case 24:case 22:case 20:if(e.type!==n)break e;if(n=r.pop(),r.length===0){o++;break e}break;case 2:case 21:case 19:case 23:r.push(n),n=cp.get(e.type);break}o++}while(e=t(o));return o}function pr(e,t){return function(n,r,o){return n===null?0:n.type===2&&Ob(n.value,t)?zA(n,r):e(n,r,o)}}function Bt(e){return function(t){return t===null||t.type!==e?0:1}}function NA(e){if(e===null||e.type!==1)return 0;let t=e.value.toLowerCase();return Ob(t,Pi)||Nb(t,"default")?0:1}function $b(e){return e===null||e.type!==1||Ir(e.value,0)!==45||Ir(e.value,1)!==45?0:1}function OA(e){return!$b(e)||e.value==="--"?0:1}function _A(e){if(e===null||e.type!==4)return 0;let t=e.value.length;if(t!==4&&t!==5&&t!==7&&t!==9)return 0;for(let n=1;n<t;n++)if(!Nn(Ir(e.value,n)))return 0;return 1}function $A(e){return e===null||e.type!==4||!Si(Ir(e.value,1),Ir(e.value,2),Ir(e.value,3))?0:1}function UA(e,t){if(!e)return 0;let n=0,r=[],o=0;e:do{switch(e.type){case 6:case 8:break e;case 24:case 22:case 20:if(e.type!==n)break e;n=r.pop();break;case 17:if(n===0)break e;break;case 9:if(n===0&&e.value==="!")break e;break;case 2:case 21:case 19:case 23:r.push(n),n=cp.get(e.type);break}o++}while(e=t(o));return o}function jA(e,t){if(!e)return 0;let n=0,r=[],o=0;e:do{switch(e.type){case 6:case 8:break e;case 24:case 22:case 20:if(e.type!==n)break e;n=r.pop();break;case 2:case 21:case 19:case 23:r.push(n),n=cp.get(e.type);break}o++}while(e=t(o));return o}function ro(e){return e&&(e=new Set(e)),function(t,n,r){if(t===null||t.type!==12)return 0;let o=Xo(t.value,0);if(e!==null){let i=t.value.indexOf("\\",o),s=i===-1||!_b(t.value,i)?t.value.substr(o):t.value.substring(o,i);if(e.has(s.toLowerCase())===!1)return 0}return Il(r,t.value,o)?0:1}}function HA(e,t,n){return e===null||e.type!==11||Il(n,e.value,e.value.length-1)?0:1}function Ub(e){return typeof e!="function"&&(e=function(){return 0}),function(t,n,r){return t!==null&&t.type===10&&Number(t.value)===0?1:e(t,n,r)}}function WA(e,t,n){if(e===null)return 0;let r=Xo(e.value,0);return!(r===e.value.length)&&!_b(e.value,r)||Il(n,e.value,r)?0:1}function VA(e,t,n){if(e===null||e.type!==10)return 0;let r=Ir(e.value,0)===43||Ir(e.value,0)===45?1:0;for(;r<e.value.length;r++)if(!Vt(Ir(e.value,r)))return 0;return Il(n,e.value,r)?0:1}function KA(e){let{angle:t,decibel:n,frequency:r,flex:o,length:i,resolution:s,semitones:a,time:u}=e||{};return{dimension:pr(ro(null),no),angle:pr(ro(t),no),decibel:pr(ro(n),no),frequency:pr(ro(r),no),flex:pr(ro(o),no),length:pr(Ub(ro(i)),no),resolution:pr(ro(s),no),semitones:pr(ro(a),no),time:pr(ro(u),no)}}function XA(e){let t=new Set;for(let n of YA)if(Array.isArray(e[n]))for(let r of e[n])t.add(r.toLowerCase());return function(r){return r===null?0:r.type===9&&r.value==="%"||r.type===1&&t.has(r.value.toLowerCase())?1:0}}function jb(e){return{...GA,...qA,...KA(e),"attr-unit":XA(e)}}var op,ip,sp,MA,BA,DA,ap,lp,zb,RA,no,cp,GA,qA,YA,Hb=U(()=>{"use strict";Cl();Mb();Rb();cr();op=["calc(","-moz-calc(","-webkit-calc("],ip=["min(","max(","clamp("],sp=["round(","mod(","rem("],MA=["sin(","cos(","tan("],BA=["asin(","acos(","atan(","atan2("],DA=["pow(","sqrt(","log(","exp(","sign("],ap=["hypot("],lp=["abs("],zb=[...op,...ip,...sp,...MA,...DA,...ap,...lp],RA=[...op,...ip,...sp,...ap,...lp],no=[...op,...ip,...sp,...BA,...ap,...lp],cp=new Map([[2,22],[21,22],[19,20],[23,24]]);GA={"ident-token":Bt(1),"function-token":Bt(2),"at-keyword-token":Bt(3),"hash-token":Bt(4),"string-token":Bt(5),"bad-string-token":Bt(6),"url-token":Bt(7),"bad-url-token":Bt(8),"delim-token":Bt(9),"number-token":Bt(10),"percentage-token":Bt(11),"dimension-token":Bt(12),"whitespace-token":Bt(13),"CDO-token":Bt(14),"CDC-token":Bt(15),"colon-token":Bt(16),"semicolon-token":Bt(17),"comma-token":Bt(18),"[-token":Bt(19),"]-token":Bt(20),"(-token":Bt(21),")-token":Bt(22),"{-token":Bt(23),"}-token":Bt(24)},qA={string:Bt(5),ident:Bt(1),percentage:pr(HA,RA),zero:Ub(),number:pr(WA,zb),integer:pr(VA,zb),"custom-ident":NA,"dashed-ident":$b,"custom-property-name":OA,"hex-color":_A,"id-selector":$A,"an-plus-b":tp,urange:rp,"declaration-value":UA,"any-value":jA},YA=["length","angle","time","frequency","resolution","flex","decibel","semitones"]});var Fl={};ye(Fl,{angle:()=>JA,decibel:()=>r2,flex:()=>n2,frequency:()=>e2,length:()=>QA,resolution:()=>t2,semitones:()=>o2,time:()=>ZA});var QA,JA,ZA,e2,t2,n2,r2,o2,Wb=U(()=>{"use strict";QA=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],JA=["deg","grad","rad","turn"],ZA=["s","ms"],e2=["hz","khz"],t2=["dpi","dpcm","dppx","x"],n2=["fr"],r2=["db"],o2=["st"]});function Vb(e,t,n){return Object.assign(Jo("SyntaxError",e),{input:t,offset:n,rawMessage:e,message:e+`
10
+ --------`+new Array(o.mismatchOffset+1).join("-")+"^",Object.assign(o,u),o.loc={source:n&&n.loc&&n.loc.source||"<unknown>",start:u,end:c},o}});function Tl(e,t){return t=t||0,e.length-t>=2&&e.charCodeAt(t)===kl&&e.charCodeAt(t+1)===kl}function _b(e,t){if(t=t||0,e.length-t>=3&&e.charCodeAt(t)===kl&&e.charCodeAt(t+1)!==kl){let n=e.indexOf("-",t+2);if(n!==-1)return e.substring(t,n+1)}return""}function NA(e){if(vl.has(e))return vl.get(e);let t=e.toLowerCase(),n=vl.get(t);if(n===void 0){let r=Tl(t,0),o=r?"":_b(t,0);n=Object.freeze({basename:t.substr(o.length),name:t,prefix:o,vendor:o,custom:r})}return vl.set(e,n),n}function OA(e){if(Pi.has(e))return Pi.get(e);let t=e,n=e[0];n==="/"?n=e[1]==="/"?"//":"/":n!=="_"&&n!=="*"&&n!=="$"&&n!=="#"&&n!=="+"&&n!=="&"&&(n="");let r=Tl(t,n.length);if(!r&&(t=t.toLowerCase(),Pi.has(t))){let a=Pi.get(t);return Pi.set(e,a),a}let o=r?"":_b(t,n.length),i=t.substr(0,n.length+o.length),s=Object.freeze({basename:t.substr(i.length),name:t.substr(n.length),hack:n,vendor:o,prefix:i,custom:r});return Pi.set(e,s),s}var vl,Pi,kl,Cl,op,Il=U(()=>{"use strict";vl=new Map,Pi=new Map,kl=45,Cl=NA,op=OA});var Li,Fl=U(()=>{"use strict";Li=["initial","inherit","unset","revert","revert-layer"]});function ap(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function Ps(e,t,n){for(;e!==null&&(e.type===13||e.type===25);)e=n(++t);return t}function Fo(e,t,n,r){if(!e)return 0;let o=e.value.charCodeAt(t);if(o===Ls||o===$r){if(n)return 0;t++}for(;t<e.value.length;t++)if(!Ht(e.value.charCodeAt(t)))return 0;return r+1}function sp(e,t,n){let r=!1,o=Ps(e,t,n);if(e=n(o),e===null)return t;if(e.type!==10)if(ap(e,Ls)||ap(e,$r)){if(r=!0,o=Ps(n(++o),o,n),e=n(o),e===null||e.type!==10)return 0}else return t;if(!r){let i=e.value.charCodeAt(0);if(i!==Ls&&i!==$r)return 0}return Fo(e,r?0:1,r,o)}function lp(e,t){let n=0;if(!e)return 0;if(e.type===10)return Fo(e,0,$A,n);if(e.type===1&&e.value.charCodeAt(0)===$r){if(!Qr(e.value,1,ip))return 0;switch(e.value.length){case 2:return sp(t(++n),n,t);case 3:return e.value.charCodeAt(2)!==$r?0:(n=Ps(t(++n),n,t),e=t(n),Fo(e,0,Mi,n));default:return e.value.charCodeAt(2)!==$r?0:Fo(e,3,Mi,n)}}else if(e.type===1||ap(e,Ls)&&t(n+1).type===1){if(e.type!==1&&(e=t(++n)),e===null||!Qr(e.value,0,ip))return 0;switch(e.value.length){case 1:return sp(t(++n),n,t);case 2:return e.value.charCodeAt(1)!==$r?0:(n=Ps(t(++n),n,t),e=t(n),Fo(e,0,Mi,n));default:return e.value.charCodeAt(1)!==$r?0:Fo(e,2,Mi,n)}}else if(e.type===12){let r=e.value.charCodeAt(0),o=r===Ls||r===$r?1:0,i=o;for(;i<e.value.length&&Ht(e.value.charCodeAt(i));i++);return i===o||!Qr(e.value,i,ip)?0:i+1===e.value.length?sp(t(++n),n,t):e.value.charCodeAt(i+1)!==$r?0:i+2===e.value.length?(n=Ps(t(++n),n,t),e=t(n),Fo(e,0,Mi,n)):Fo(e,i+2,Mi,n)}return 0}var Ls,$r,ip,Mi,$A,$b=U(()=>{"use strict";lr();Ls=43,$r=45,ip=110,Mi=!0,$A=!1});function cp(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function HA(e,t){return e.value.charCodeAt(0)===t}function Ms(e,t,n){let r=0;for(let o=t;o<e.value.length;o++){let i=e.value.charCodeAt(o);if(i===Ub&&n&&r!==0)return Ms(e,t+r+1,!1),6;if(!zn(i)||++r>6)return 0}return r}function El(e,t,n){if(!e)return 0;for(;cp(n(t),jb);){if(++e>6)return 0;t++}return t}function up(e,t){let n=0;if(e===null||e.type!==1||!Qr(e.value,0,jA)||(e=t(++n),e===null))return 0;if(cp(e,UA))return e=t(++n),e===null?0:e.type===1?El(Ms(e,0,!0),++n,t):cp(e,jb)?El(1,++n,t):0;if(e.type===10){let r=Ms(e,1,!0);return r===0?0:(e=t(++n),e===null?n:e.type===12||e.type===10?!HA(e,Ub)||!Ms(e,1,!1)?0:n+1:El(r,n,t))}return e.type===12?El(Ms(e,1,!0),++n,t):0}var UA,Ub,jb,jA,Hb=U(()=>{"use strict";lr();UA=43,Ub=45,jb=63,jA=117});function Ir(e,t){return t<e.length?e.charCodeAt(t):0}function Vb(e,t){return Jr(e,0,e.length,t)}function Gb(e,t){for(let n=0;n<t.length;n++)if(Vb(e,t[n]))return!0;return!1}function qb(e,t){return t!==e.length-2?!1:Ir(e,t)===92&&Ht(Ir(e,t+1))}function Al(e,t,n){if(e&&e.type==="Range"){let r=Number(n!==void 0&&n!==t.length?t.substr(0,n):t);if(isNaN(r)||e.min!==null&&r<e.min&&typeof e.min!="string"||e.max!==null&&r>e.max&&typeof e.max!="string")return!0}return!1}function YA(e,t){let n=0,r=[],o=0;e:do{switch(e.type){case 24:case 22:case 20:if(e.type!==n)break e;if(n=r.pop(),r.length===0){o++;break e}break;case 2:case 21:case 19:case 23:r.push(n),n=hp.get(e.type);break}o++}while(e=t(o));return o}function ur(e,t){return function(n,r,o){return n===null?0:n.type===2&&Gb(n.value,t)?YA(n,r):e(n,r,o)}}function Lt(e){return function(t){return t===null||t.type!==e?0:1}}function KA(e){if(e===null||e.type!==1)return 0;let t=e.value.toLowerCase();return Gb(t,Li)||Vb(t,"default")?0:1}function Yb(e){return e===null||e.type!==1||Ir(e.value,0)!==45||Ir(e.value,1)!==45?0:1}function XA(e){return!Yb(e)||e.value==="--"?0:1}function QA(e){if(e===null||e.type!==4)return 0;let t=e.value.length;if(t!==4&&t!==5&&t!==7&&t!==9)return 0;for(let n=1;n<t;n++)if(!zn(Ir(e.value,n)))return 0;return 1}function JA(e){return e===null||e.type!==4||!wi(Ir(e.value,1),Ir(e.value,2),Ir(e.value,3))?0:1}function ZA(e,t){if(!e)return 0;let n=0,r=[],o=0;e:do{switch(e.type){case 6:case 8:break e;case 24:case 22:case 20:if(e.type!==n)break e;n=r.pop();break;case 17:if(n===0)break e;break;case 9:if(n===0&&e.value==="!")break e;break;case 2:case 21:case 19:case 23:r.push(n),n=hp.get(e.type);break}o++}while(e=t(o));return o}function e2(e,t){if(!e)return 0;let n=0,r=[],o=0;e:do{switch(e.type){case 6:case 8:break e;case 24:case 22:case 20:if(e.type!==n)break e;n=r.pop();break;case 2:case 21:case 19:case 23:r.push(n),n=hp.get(e.type);break}o++}while(e=t(o));return o}function ro(e){return e&&(e=new Set(e)),function(t,n,r){if(t===null||t.type!==12)return 0;let o=Qo(t.value,0);if(e!==null){let i=t.value.indexOf("\\",o),s=i===-1||!qb(t.value,i)?t.value.substr(o):t.value.substring(o,i);if(e.has(s.toLowerCase())===!1)return 0}return Al(r,t.value,o)?0:1}}function t2(e,t,n){return e===null||e.type!==11||Al(n,e.value,e.value.length-1)?0:1}function Kb(e){return typeof e!="function"&&(e=function(){return 0}),function(t,n,r){return t!==null&&t.type===10&&Number(t.value)===0?1:e(t,n,r)}}function n2(e,t,n){if(e===null)return 0;let r=Qo(e.value,0);return!(r===e.value.length)&&!qb(e.value,r)||Al(n,e.value,r)?0:1}function r2(e,t,n){if(e===null||e.type!==10)return 0;let r=Ir(e.value,0)===43||Ir(e.value,0)===45?1:0;for(;r<e.value.length;r++)if(!Ht(Ir(e.value,r)))return 0;return Al(n,e.value,r)?0:1}function a2(e){let{angle:t,decibel:n,frequency:r,flex:o,length:i,resolution:s,semitones:a,time:u}=e||{};return{dimension:ur(ro(null),no),angle:ur(ro(t),no),decibel:ur(ro(n),no),frequency:ur(ro(r),no),flex:ur(ro(o),no),length:ur(Kb(ro(i)),no),resolution:ur(ro(s),no),semitones:ur(ro(a),no),time:ur(ro(u),no)}}function l2(e){let t=new Set;for(let n of s2)if(Array.isArray(e[n]))for(let r of e[n])t.add(r.toLowerCase());return function(r){return r===null?0:r.type===9&&r.value==="%"||r.type===1&&t.has(r.value.toLowerCase())?1:0}}function Xb(e){return{...o2,...i2,...a2(e),"attr-unit":l2(e)}}var pp,dp,gp,WA,VA,GA,fp,mp,Wb,qA,no,hp,o2,i2,s2,Qb=U(()=>{"use strict";Fl();$b();Hb();lr();pp=["calc(","-moz-calc(","-webkit-calc("],dp=["min(","max(","clamp("],gp=["round(","mod(","rem("],WA=["sin(","cos(","tan("],VA=["asin(","acos(","atan(","atan2("],GA=["pow(","sqrt(","log(","exp(","sign("],fp=["hypot("],mp=["abs("],Wb=[...pp,...dp,...gp,...WA,...GA,...fp,...mp],qA=[...pp,...dp,...gp,...fp,...mp],no=[...pp,...dp,...gp,...VA,...fp,...mp],hp=new Map([[2,22],[21,22],[19,20],[23,24]]);o2={"ident-token":Lt(1),"function-token":Lt(2),"at-keyword-token":Lt(3),"hash-token":Lt(4),"string-token":Lt(5),"bad-string-token":Lt(6),"url-token":Lt(7),"bad-url-token":Lt(8),"delim-token":Lt(9),"number-token":Lt(10),"percentage-token":Lt(11),"dimension-token":Lt(12),"whitespace-token":Lt(13),"CDO-token":Lt(14),"CDC-token":Lt(15),"colon-token":Lt(16),"semicolon-token":Lt(17),"comma-token":Lt(18),"[-token":Lt(19),"]-token":Lt(20),"(-token":Lt(21),")-token":Lt(22),"{-token":Lt(23),"}-token":Lt(24)},i2={string:Lt(5),ident:Lt(1),percentage:ur(t2,qA),zero:Kb(),number:ur(n2,Wb),integer:ur(r2,Wb),"custom-ident":KA,"dashed-ident":Yb,"custom-property-name":XA,"hex-color":QA,"id-selector":JA,"an-plus-b":lp,urange:up,"declaration-value":ZA,"any-value":e2},s2=["length","angle","time","frequency","resolution","flex","decibel","semitones"]});var Pl={};ye(Pl,{angle:()=>u2,decibel:()=>m2,flex:()=>f2,frequency:()=>d2,length:()=>c2,resolution:()=>g2,semitones:()=>h2,time:()=>p2});var c2,u2,p2,d2,g2,f2,m2,h2,Jb=U(()=>{"use strict";c2=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],u2=["deg","grad","rad","turn"],p2=["s","ms"],d2=["hz","khz"],g2=["dpi","dpcm","dppx","x"],f2=["fr"],m2=["db"],h2=["st"]});function Zb(e,t,n){return Object.assign(Zo("SyntaxError",e),{input:t,offset:n,rawMessage:e,message:e+`
11
11
  `+t+`
12
- --`+new Array((n||t.length)+1).join("-")+"^"})}var Gb=U(()=>{"use strict";dl()});var i2,s2,a2,l2,c2,qb,El,Yb=U(()=>{"use strict";Gb();i2=9,s2=10,a2=12,l2=13,c2=32,qb=new Uint8Array(128).map((e,t)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(t))?1:0),El=class{constructor(t){this.str=t,this.pos=0}charCodeAt(t){return t<this.str.length?this.str.charCodeAt(t):0}charCode(){return this.charCodeAt(this.pos)}isNameCharCode(t=this.charCode()){return t<128&&qb[t]===1}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(t){return this.charCodeAt(this.findWsEnd(t))}skipWs(){this.pos=this.findWsEnd(this.pos)}findWsEnd(t){for(;t<this.str.length;t++){let n=this.str.charCodeAt(t);if(n!==l2&&n!==s2&&n!==a2&&n!==c2&&n!==i2)break}return t}substringToPos(t){return this.str.substring(this.pos,this.pos=t)}eat(t){this.charCode()!==t&&this.error("Expect `"+String.fromCharCode(t)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(t){throw new Vb(t,this.str,this.pos)}scanSpaces(){return this.substringToPos(this.findWsEnd(this.pos))}scanWord(){let t=this.pos;for(;t<this.str.length;t++){let n=this.str.charCodeAt(t);if(n>=128||qb[n]===0)break}return this.pos===t&&this.error("Expect a keyword"),this.substringToPos(t)}scanNumber(){let t=this.pos;for(;t<this.str.length;t++){let n=this.str.charCodeAt(t);if(n<48||n>57)break}return this.pos===t&&this.error("Expect a number"),this.substringToPos(t)}scanString(){let t=this.str.indexOf("'",this.pos+1);return t===-1&&(this.pos=this.str.length,this.error("Expect an apostrophe")),this.substringToPos(t+1)}}});function e0(e){let t=null,n=null;return e.eat(Ll),e.skipWs(),t=e.scanNumber(e),e.skipWs(),e.charCode()===mp?(e.pos++,e.skipWs(),e.charCode()!==dp&&(n=e.scanNumber(e),e.skipWs())):n=t,e.eat(dp),{min:Number(t),max:n?Number(n):0}}function h2(e){let t=null,n=!1;switch(e.charCode()){case o0:e.pos++,t={min:0,max:0};break;case fp:e.pos++,t={min:1,max:0};break;case Pl:e.pos++,t={min:0,max:1};break;case gp:e.pos++,n=!0,e.charCode()===Ll?t=e0(e):e.charCode()===Pl?(e.pos++,t={min:0,max:0}):t={min:1,max:0};break;case Ll:t=e0(e);break;default:return null}return{type:"Multiplier",comma:n,min:t.min,max:t.max,term:null}}function oo(e,t){let n=h2(e);return n!==null?(n.term=t,e.charCode()===gp&&e.charCodeAt(e.pos-1)===fp||e.charCode()===Pl&&e.charCodeAt(e.pos-1)===dp?oo(e,n):n):t}function up(e){let t=e.peek();return t===""?null:oo(e,{type:"Token",value:t})}function x2(e){let t;return e.eat(hp),e.eat(Al),t=e.scanWord(),e.eat(Al),e.eat(pp),oo(e,{type:"Property",name:t})}function y2(e){let t=null,n=null,r=1;return e.eat(Ms),e.charCode()===Xb&&(e.peek(),r=-1),r==-1&&e.charCode()===Jb?e.peek():(t=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(t+=e.scanWord())),e.skipWs(),e.eat(mp),e.skipWs(),e.charCode()===Jb?e.peek():(r=1,e.charCode()===Xb&&(e.peek(),r=-1),n=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(n+=e.scanWord())),e.eat(Mi),{type:"Range",min:t,max:n}}function b2(e){let t,n=null;if(e.eat(hp),t=e.scanWord(),t==="boolean-expr"){e.eat(Ms);let r=Ml(e,Mi);return e.eat(Mi),e.eat(pp),oo(e,{type:"Boolean",term:r.terms.length===1?r.terms[0]:r})}return e.charCode()===n0&&e.nextCharCode()===r0&&(e.pos+=2,t+="()"),e.charCodeAt(e.findWsEnd(e.pos))===Ms&&(e.skipWs(),n=y2(e)),e.eat(pp),oo(e,{type:"Type",name:t,opts:n})}function S2(e){let t=e.scanWord();return e.charCode()===n0?(e.pos++,{type:"Function",name:t}):oo(e,{type:"Keyword",name:t})}function w2(e,t){function n(o,i){return{type:"Group",terms:o,combinator:i,disallowEmpty:!1,explicit:!1}}let r;for(t=Object.keys(t).sort((o,i)=>Zb[o]-Zb[i]);t.length>0;){r=t.shift();let o=0,i=0;for(;o<e.length;o++){let s=e[o];s.type==="Combinator"&&(s.value===r?(i===-1&&(i=o-1),e.splice(o,1),o--):(i!==-1&&o-i>1&&(e.splice(i,o-i,n(e.slice(i,o),r)),o=i+1),i=-1))}i!==-1&&t.length&&e.splice(i,o-i,n(e.slice(i,o),r))}return r}function Ml(e,t=-1){let n=Object.create(null),r=[],o=null,i=e.pos,s=!1;for(;e.charCode()!==t;){let a=s?Ml(e,r0):k2(e);if(!a)break;if(a.type!=="Spaces"){if(s){if(a.terms.length===0){s=!1;continue}if(a.combinator===" "){for(;a.terms.length>1;)n[" "]=!0,r.push({type:"Combinator",value:" "},a.terms.shift());a=a.terms[0]}}a.type==="Combinator"?((o===null||o.type==="Combinator")&&(e.pos=i,e.error("Unexpected combinator")),n[a.value]=!0):o!==null&&o.type!=="Combinator"&&(n[" "]=!0,r.push({type:"Combinator",value:" "})),r.push(a),o=a,i=e.pos,s=a.type==="Function"}}return o!==null&&o.type==="Combinator"&&(e.pos-=i,e.error("Unexpected combinator")),{type:"Group",terms:r,combinator:w2(r,n)||" ",disallowEmpty:!1,explicit:!1}}function v2(e){let t;return e.eat(Ms),t=Ml(e,Mi),e.eat(Mi),t.explicit=!0,e.charCode()===t0&&(e.pos++,t.disallowEmpty=!0),t}function k2(e){let t=e.charCode();switch(t){case Mi:break;case Ms:return oo(e,v2(e));case hp:return e.nextCharCode()===Al?x2(e):b2(e);case Qb:return{type:"Combinator",value:e.substringToPos(e.pos+(e.nextCharCode()===Qb?2:1))};case Kb:return e.pos++,e.eat(Kb),{type:"Combinator",value:"&&"};case mp:return e.pos++,{type:"Comma"};case Al:return oo(e,{type:"String",value:e.scanString()});case f2:case u2:case p2:case g2:case d2:return{type:"Spaces",value:e.scanSpaces()};case m2:return t=e.nextCharCode(),e.isNameCharCode(t)?(e.pos++,{type:"AtKeyword",name:e.scanWord()}):up(e);case o0:case fp:case Pl:case gp:case t0:break;case Ll:if(t=e.nextCharCode(),t<48||t>57)return up(e);break;default:return e.isNameCharCode(t)?S2(e):up(e)}}function Bs(e){let t=new El(e),n=Ml(t);return t.pos!==e.length&&t.error("Unexpected input"),n.terms.length===1&&n.terms[0].type==="Group"?n.terms[0]:n}var u2,p2,d2,g2,f2,t0,gp,Kb,Al,n0,r0,o0,fp,mp,Xb,hp,pp,Pl,m2,Ms,Mi,Ll,Qb,dp,Jb,Zb,xp=U(()=>{"use strict";Yb();u2=9,p2=10,d2=12,g2=13,f2=32,t0=33,gp=35,Kb=38,Al=39,n0=40,r0=41,o0=42,fp=43,mp=44,Xb=45,hp=60,pp=62,Pl=63,m2=64,Ms=91,Mi=93,Ll=123,Qb=124,dp=125,Jb=8734,Zb={" ":1,"&&":2,"||":3,"|":4}});function i0(e){return typeof e=="function"?e:Ds}function yp(e,t,n){function r(s){switch(o.call(n,s),s.type){case"Group":s.terms.forEach(r);break;case"Multiplier":case"Boolean":r(s.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+s.type)}i.call(n,s)}let o=Ds,i=Ds;if(typeof t=="function"?o=t:t&&(o=i0(t.enter),i=i0(t.leave)),o===Ds&&i===Ds)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");r(e,n)}var Ds,s0=U(()=>{"use strict";Ds=function(){}});var bp=U(()=>{"use strict";Xu();xp();s0()});function I2(e){let t=[];return Co(e,(n,r,o)=>t.push({type:n,value:e.slice(r,o),node:null})),t}function a0(e,t){return typeof e=="string"?I2(e):t.generate(e,T2)}var T2,l0=U(()=>{"use strict";cr();T2={decorator(e){let t=[],n=null;return{...e,node(r){let o=n;n=r,e.node.call(this,r),n=o},emit(r,o,i){t.push({type:o,value:r,node:i?null:n})},result(){return t}}}}});function Cn(e,t,n){return t===mt&&n===Tt||e===mt&&t===mt&&n===mt?e:(e.type==="If"&&e.else===Tt&&t===mt&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:n})}function u0(e){return e.length>2&&e.charCodeAt(e.length-2)===F2&&e.charCodeAt(e.length-1)===E2}function c0(e){return e.type==="Keyword"||e.type==="AtKeyword"||e.type==="Function"||e.type==="Type"&&u0(e.name)}function Io(e,t=" ",n=!1){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:n}}function Rs(e,t,n=new Set){if(!n.has(e))switch(n.add(e),e.type){case"If":e.match=Rs(e.match,t,n),e.then=Rs(e.then,t,n),e.else=Rs(e.else,t,n);break;case"Type":return t[e.name]||e}return e}function Sp(e,t,n){switch(e){case" ":{let r=mt;for(let o=t.length-1;o>=0;o--){let i=t[o];r=Cn(i,r,Tt)}return r}case"|":{let r=Tt,o=null;for(let i=t.length-1;i>=0;i--){let s=t[i];if(c0(s)&&(o===null&&i>0&&c0(t[i-1])&&(o=Object.create(null),r=Cn({type:"Enum",map:o},mt,r)),o!==null)){let a=(u0(s.name)?s.name.slice(0,-1):s.name).toLowerCase();if(!(a in o)){o[a]=s;continue}}o=null,r=Cn(s,mt,r)}return r}case"&&":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!0};let r=Tt;for(let o=t.length-1;o>=0;o--){let i=t[o],s;t.length>1?s=Sp(e,t.filter(function(a){return a!==i}),!1):s=mt,r=Cn(i,s,r)}return r}case"||":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!1};let r=n?mt:Tt;for(let o=t.length-1;o>=0;o--){let i=t[o],s;t.length>1?s=Sp(e,t.filter(function(a){return a!==i}),!0):s=mt,r=Cn(i,s,r)}return r}}}function A2(e){let t=mt,n=Bi(e.term);if(e.max===0)n=Cn(n,Bl,Tt),t=Cn(n,null,Tt),t.then=Cn(mt,mt,t),e.comma&&(t.then.else=Cn({type:"Comma",syntax:e},t,Tt));else for(let r=e.min||1;r<=e.max;r++)e.comma&&t!==mt&&(t=Cn({type:"Comma",syntax:e},t,Tt)),t=Cn(n,Cn(mt,mt,t),Tt);if(e.min===0)t=Cn(mt,mt,t);else for(let r=0;r<e.min-1;r++)e.comma&&t!==mt&&(t=Cn({type:"Comma",syntax:e},t,Tt)),t=Cn(n,t,Tt);return t}function Bi(e){if(typeof e=="function")return{type:"Generic",fn:e};switch(e.type){case"Group":{let t=Sp(e.combinator,e.terms.map(Bi),!1);return e.disallowEmpty&&(t=Cn(t,Bl,Tt)),t}case"Multiplier":return A2(e);case"Boolean":{let t=Bi(e.term),n=Bi(Io([Io([{type:"Keyword",name:"not"},{type:"Type",name:"!boolean-group"}]),Io([{type:"Type",name:"!boolean-group"},Io([{type:"Multiplier",comma:!1,min:0,max:0,term:Io([{type:"Keyword",name:"and"},{type:"Type",name:"!boolean-group"}])},{type:"Multiplier",comma:!1,min:0,max:0,term:Io([{type:"Keyword",name:"or"},{type:"Type",name:"!boolean-group"}])}],"|")])],"|")),r=Bi(Io([{type:"Type",name:"!term"},Io([{type:"Token",value:"("},{type:"Type",name:"!self"},{type:"Token",value:")"}]),{type:"Type",name:"general-enclosed"}],"|"));return Rs(r,{"!term":t,"!self":n}),Rs(n,{"!boolean-group":r}),n}case"Type":case"Property":return{type:e.type,name:e.name,syntax:e};case"Keyword":return{type:e.type,name:e.name.toLowerCase(),syntax:e};case"AtKeyword":return{type:e.type,name:"@"+e.name.toLowerCase(),syntax:e};case"Function":return{type:e.type,name:e.name.toLowerCase()+"(",syntax:e};case"String":return e.value.length===3?{type:"Token",value:e.value.charAt(1),syntax:e}:{type:e.type,value:e.value.substr(1,e.value.length-2).replace(/\\'/g,"'"),syntax:e};case"Token":return{type:e.type,value:e.value,syntax:e};case"Comma":return{type:e.type,syntax:e};default:throw new Error("Unknown node type:",e.type)}}function zs(e,t){return typeof e=="string"&&(e=Bs(e)),{type:"MatchGraph",match:Bi(e),syntax:t||null,source:e}}var mt,Tt,Bl,F2,E2,wp=U(()=>{"use strict";xp();mt={type:"Match"},Tt={type:"Mismatch"},Bl={type:"DisallowEmpty"},F2=40,E2=41});function R2(e){let t=null,n=null,r=e;for(;r!==null;)n=r.prev,r.prev=t,t=r,r=n;return t}function vp(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=t.charCodeAt(n),o=e.charCodeAt(n);if(o>=65&&o<=90&&(o=o|32),o!==r)return!1}return!0}function z2(e){return e.type!==9?!1:e.value!=="?"}function f0(e){return e===null?!0:e.type===18||e.type===2||e.type===21||e.type===19||e.type===23||z2(e)}function m0(e){return e===null?!0:e.type===22||e.type===20||e.type===24||e.type===9&&e.value==="/"}function N2(e,t,n){function r(){do v++,E=v<e.length?e[v]:null;while(E!==null&&(E.type===13||E.type===25))}function o($){let L=v+$;return L<e.length?e[L]:null}function i($,L){return{nextState:$,matchStack:O,syntaxStack:d,thenStack:g,tokenIndex:v,prev:L}}function s($){g={nextState:$,matchStack:O,syntaxStack:d,prev:g}}function a($){p=i($,p)}function u(){O={type:L2,syntax:t.syntax,token:E,prev:O},r(),m=null,v>D&&(D=v)}function c(){d={syntax:t.syntax,opts:t.syntax.opts||d!==null&&d.opts||null,prev:d},O={type:kp,syntax:t.syntax,token:O.token,prev:O}}function l(){O.type===kp?O=O.prev:O={type:h0,syntax:d.syntax,token:O.token,prev:O},d=d.prev}let d=null,g=null,p=null,m=null,b=0,F=null,E=null,v=-1,D=0,O={type:P2,syntax:null,token:null,prev:null};for(r();F===null&&++b<g0;)switch(t.type){case"Match":if(g===null){if(E!==null&&(v!==e.length-1||E.value!=="\\0"&&E.value!=="\\9")){t=Tt;break}F=d0;break}if(t=g.nextState,t===Bl)if(g.matchStack===O){t=Tt;break}else t=mt;for(;g.syntaxStack!==d;)l();g=g.prev;break;case"Mismatch":if(m!==null&&m!==!1)(p===null||v>p.tokenIndex)&&(p=m,m=!1);else if(p===null){F=M2;break}t=p.nextState,g=p.thenStack,d=p.syntaxStack,O=p.matchStack,v=p.tokenIndex,E=v<e.length?e[v]:null,p=p.prev;break;case"MatchGraph":t=t.match;break;case"If":t.else!==Tt&&a(t.else),t.then!==mt&&s(t.then),t=t.match;break;case"MatchOnce":t={type:"MatchOnceBuffer",syntax:t,index:0,mask:0};break;case"MatchOnceBuffer":{let N=t.syntax.terms;if(t.index===N.length){if(t.mask===0||t.syntax.all){t=Tt;break}t=mt;break}if(t.mask===(1<<N.length)-1){t=mt;break}for(;t.index<N.length;t.index++){let x=1<<t.index;if((t.mask&x)===0){a(t),s({type:"AddMatchOnce",syntax:t.syntax,mask:t.mask|x}),t=N[t.index++];break}}break}case"AddMatchOnce":t={type:"MatchOnceBuffer",syntax:t.syntax,index:0,mask:t.mask};break;case"Enum":if(E!==null){let N=E.value.toLowerCase();if(N.indexOf("\\")!==-1&&(N=N.replace(/\\[09].*$/,"")),p0.call(t.map,N)){t=t.map[N];break}}t=Tt;break;case"Generic":{let N=d!==null?d.opts:null,x=v+Math.floor(t.fn(E,o,N));if(!isNaN(x)&&x>v){for(;v<x;)u();t=mt}else t=Tt;break}case"Type":case"Property":{let N=t.type==="Type"?"types":"properties",x=p0.call(n,N)?n[N][t.name]:null;if(!x||!x.match)throw new Error("Bad syntax reference: "+(t.type==="Type"?"<"+t.name+">":"<'"+t.name+"'>"));if(m!==!1&&E!==null&&t.type==="Type"&&(t.name==="custom-ident"&&E.type===1||t.name==="length"&&E.value==="0")){m===null&&(m=i(t,p)),t=Tt;break}c(),t=x.matchRef||x.match;break}case"Keyword":{let N=t.name;if(E!==null){let x=E.value;if(x.indexOf("\\")!==-1&&(x=x.replace(/\\[09].*$/,"")),vp(x,N)){u(),t=mt;break}}t=Tt;break}case"AtKeyword":case"Function":if(E!==null&&vp(E.value,t.name)){u(),t=mt;break}t=Tt;break;case"Token":if(E!==null&&E.value===t.value){u(),t=mt;break}t=Tt;break;case"Comma":E!==null&&E.type===18?f0(O.token)?t=Tt:(u(),t=m0(E)?Tt:mt):t=f0(O.token)||m0(E)?mt:Tt;break;case"String":let $="",L=v;for(;L<e.length&&$.length<t.value.length;L++)$+=e[L].value;if(vp($,t.value)){for(;v<L;)u();t=mt}else t=Tt;break;default:throw new Error("Unknown node type: "+t.type)}switch(D2+=b,F){case null:console.warn("[csstree-match] BREAK after "+g0+" iterations"),F=B2,O=null;break;case d0:for(;d!==null;)l();break;default:O=null}return{tokens:e,reason:F,iterations:b,match:O,longestMatch:D}}function Cp(e,t,n){let r=N2(e,t,n||{});if(r.match===null)return r;let o=r.match,i=r.match={syntax:t.syntax||null,match:[]},s=[i];for(o=R2(o).prev;o!==null;){switch(o.type){case kp:i.match.push(i={syntax:o.syntax,match:[]}),s.push(i);break;case h0:s.pop(),i=s[s.length-1];break;default:i.match.push({syntax:o.syntax||null,token:o.token.value,node:o.token.node})}o=o.prev}return r}var p0,P2,L2,kp,h0,d0,M2,B2,g0,D2,x0=U(()=>{"use strict";wp();({hasOwnProperty:p0}=Object.prototype),P2=0,L2=1,kp=2,h0=3,d0="Match",M2="Mismatch",B2="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",g0=15e3,D2=0});var Ip={};ye(Ip,{getTrace:()=>y0,isKeyword:()=>$2,isProperty:()=>_2,isType:()=>O2});function y0(e){function t(o){return o===null?!1:o.type==="Type"||o.type==="Property"||o.type==="Keyword"}function n(o){if(Array.isArray(o.match)){for(let i=0;i<o.match.length;i++)if(n(o.match[i]))return t(o.syntax)&&r.unshift(o.syntax),!0}else if(o.node===e)return r=t(o.syntax)?[o.syntax]:[],!0;return!1}let r=null;return this.matched!==null&&n(this.matched),r}function O2(e,t){return Tp(this,e,n=>n.type==="Type"&&n.name===t)}function _2(e,t){return Tp(this,e,n=>n.type==="Property"&&n.name===t)}function $2(e){return Tp(this,e,t=>t.type==="Keyword")}function Tp(e,t,n){let r=y0.call(e,t);return r===null?!1:r.some(n)}var b0=U(()=>{"use strict"});function S0(e){return"node"in e?e.node:S0(e.match[0])}function w0(e){return"node"in e?e.node:w0(e.match[e.match.length-1])}function Fp(e,t,n,r,o){function i(a){if(a.syntax!==null&&a.syntax.type===r&&a.syntax.name===o){let u=S0(a),c=w0(a);e.syntax.walk(t,function(l,d,g){if(l===u){let p=new Zn;do{if(p.appendData(d.data),d.data===c)break;d=d.next}while(d!==null);s.push({parent:g,nodes:p})}})}Array.isArray(a.match)&&a.match.forEach(i)}let s=[];return n.matched!==null&&i(n.matched),s}var v0=U(()=>{"use strict";Cs()});function Ep(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&e>=0}function k0(e){return!!e&&Ep(e.offset)&&Ep(e.line)&&Ep(e.column)}function U2(e,t){return function(r,o){if(!r||r.constructor!==Object)return o(r,"Type of node should be an Object");for(let i in r){let s=!0;if(Ns.call(r,i)!==!1){if(i==="type")r.type!==e&&o(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if(i==="loc"){if(r.loc===null)continue;if(r.loc&&r.loc.constructor===Object)if(typeof r.loc.source!="string")i+=".source";else if(!k0(r.loc.start))i+=".start";else if(!k0(r.loc.end))i+=".end";else continue;s=!1}else if(t.hasOwnProperty(i)){s=!1;for(let a=0;!s&&a<t[i].length;a++){let u=t[i][a];switch(u){case String:s=typeof r[i]=="string";break;case Boolean:s=typeof r[i]=="boolean";break;case null:s=r[i]===null;break;default:typeof u=="string"?s=r[i]&&r[i].type===u:Array.isArray(u)&&(s=r[i]instanceof Zn)}}}else o(r,"Unknown field `"+i+"` for "+e+" node type");s||o(r,"Bad value for `"+e+"."+i+"`")}}for(let i in t)Ns.call(t,i)&&Ns.call(r,i)===!1&&o(r,"Field `"+e+"."+i+"` is missed")}}function C0(e,t){let n=[];for(let r=0;r<e.length;r++){let o=e[r];if(o===String||o===Boolean)n.push(o.name.toLowerCase());else if(o===null)n.push("null");else if(typeof o=="string")n.push(o);else if(Array.isArray(o))n.push("List<"+(C0(o,t)||"any")+">");else throw new Error("Wrong value `"+o+"` in `"+t+"` structure definition")}return n.join(" | ")}function j2(e,t){let n=t.structure,r={type:String,loc:!0},o={type:'"'+e+'"'};for(let i in n){if(Ns.call(n,i)===!1)continue;let s=r[i]=Array.isArray(n[i])?n[i].slice():[n[i]];o[i]=C0(s,e+"."+i)}return{docs:o,check:U2(e,r)}}function T0(e){let t={};if(e.node){for(let n in e.node)if(Ns.call(e.node,n)){let r=e.node[n];if(r.structure)t[n]=j2(n,r);else throw new Error("Missed `structure` field in `"+n+"` node type definition")}}return t}var Ns,I0=U(()=>{"use strict";Cs();({hasOwnProperty:Ns}=Object.prototype)});function Ap(e,t,n){let r={};for(let o in e)e[o].syntax&&(r[o]=n?e[o].syntax:Fi(e[o].syntax,{compact:t}));return r}function H2(e,t,n){let r={};for(let[o,i]of Object.entries(e))r[o]={prelude:i.prelude&&(n?i.prelude.syntax:Fi(i.prelude.syntax,{compact:t})),descriptors:i.descriptors&&Ap(i.descriptors,t,n)};return r}function W2(e){for(let t=0;t<e.length;t++)if(e[t].value.toLowerCase()==="var(")return!0;return!1}function V2(e){let t=e.terms[0];return e.explicit===!1&&e.terms.length===1&&t.type==="Multiplier"&&t.comma===!0}function Fr(e,t,n){return{matched:e,iterations:n,error:t,...Ip}}function Di(e,t,n,r){let o=a0(n,e.syntax),i;return W2(o)?Fr(null,new Error("Matching for a tree with var() is not supported")):(r&&(i=Cp(o,e.cssWideKeywordsSyntax,e)),(!r||!i.match)&&(i=Cp(o,t.match,e),!i.match)?Fr(null,new Ab(i.reason,t.syntax,n,i),i.iterations):Fr(i.match,null,i.iterations))}var Os,F0=U(()=>{"use strict";Pb();kl();Cl();Hb();Wb();bp();l0();wp();x0();b0();v0();I0();Os=class{constructor(t,n,r){if(this.cssWideKeywords=Pi,this.syntax=n,this.generic=!1,this.units={...Fl},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=r||T0(t),t){if(t.cssWideKeywords&&(this.cssWideKeywords=t.cssWideKeywords),t.units)for(let o of Object.keys(Fl))Array.isArray(t.units[o])&&(this.units[o]=t.units[o]);if(t.types)for(let[o,i]of Object.entries(t.types))this.addType_(o,i);if(t.generic){this.generic=!0;for(let[o,i]of Object.entries(jb(this.units)))this.addType_(o,i)}if(t.atrules)for(let[o,i]of Object.entries(t.atrules))this.addAtrule_(o,i);if(t.properties)for(let[o,i]of Object.entries(t.properties))this.addProperty_(o,i)}this.cssWideKeywordsSyntax=zs(this.cssWideKeywords.join(" | "))}checkStructure(t){function n(i,s){o.push({node:i,message:s})}let r=this.structure,o=[];return this.syntax.walk(t,function(i){r.hasOwnProperty(i.type)?r[i.type].check(i,n):n(i,"Unknown node type `"+i.type+"`")}),o.length?o:!1}createDescriptor(t,n,r,o=null){let i={type:n,name:r},s={type:n,name:r,parent:o,serializable:typeof t=="string"||t&&typeof t.type=="string",syntax:null,match:null,matchRef:null};return typeof t=="function"?s.match=zs(t,i):(typeof t=="string"?Object.defineProperty(s,"syntax",{get(){return Object.defineProperty(s,"syntax",{value:Bs(t)}),s.syntax}}):s.syntax=t,Object.defineProperty(s,"match",{get(){return Object.defineProperty(s,"match",{value:zs(s.syntax,i)}),s.match}}),n==="Property"&&Object.defineProperty(s,"matchRef",{get(){let a=s.syntax,u=V2(a)?zs({...a,terms:[a.terms[0].term]},i):null;return Object.defineProperty(s,"matchRef",{value:u}),u}})),s}addAtrule_(t,n){n&&(this.atrules[t]={type:"Atrule",name:t,prelude:n.prelude?this.createDescriptor(n.prelude,"AtrulePrelude",t):null,descriptors:n.descriptors?Object.keys(n.descriptors).reduce((r,o)=>(r[o]=this.createDescriptor(n.descriptors[o],"AtruleDescriptor",o,t),r),Object.create(null)):null})}addProperty_(t,n){n&&(this.properties[t]=this.createDescriptor(n,"Property",t))}addType_(t,n){n&&(this.types[t]=this.createDescriptor(n,"Type",t))}checkAtruleName(t){if(!this.getAtrule(t))return new Ei("Unknown at-rule","@"+t)}checkAtrulePrelude(t,n){let r=this.checkAtruleName(t);if(r)return r;let o=this.getAtrule(t);if(!o.prelude&&n)return new SyntaxError("At-rule `@"+t+"` should not contain a prelude");if(o.prelude&&!n&&!Di(this,o.prelude,"",!1).matched)return new SyntaxError("At-rule `@"+t+"` should contain a prelude")}checkAtruleDescriptorName(t,n){let r=this.checkAtruleName(t);if(r)return r;let o=this.getAtrule(t),i=wl(n);if(!o.descriptors)return new SyntaxError("At-rule `@"+t+"` has no known descriptors");if(!o.descriptors[i.name]&&!o.descriptors[i.basename])return new Ei("Unknown at-rule descriptor",n)}checkPropertyName(t){if(!this.getProperty(t))return new Ei("Unknown property",t)}matchAtrulePrelude(t,n){let r=this.checkAtrulePrelude(t,n);if(r)return Fr(null,r);let o=this.getAtrule(t);return o.prelude?Di(this,o.prelude,n||"",!1):Fr(null,null)}matchAtruleDescriptor(t,n,r){let o=this.checkAtruleDescriptorName(t,n);if(o)return Fr(null,o);let i=this.getAtrule(t),s=wl(n);return Di(this,i.descriptors[s.name]||i.descriptors[s.basename],r,!1)}matchDeclaration(t){return t.type!=="Declaration"?Fr(null,new Error("Not a Declaration node")):this.matchProperty(t.property,t.value)}matchProperty(t,n){if(Qu(t).custom)return Fr(null,new Error("Lexer matching doesn't applicable for custom properties"));let r=this.checkPropertyName(t);return r?Fr(null,r):Di(this,this.getProperty(t),n,!0)}matchType(t,n){let r=this.getType(t);return r?Di(this,r,n,!1):Fr(null,new Ei("Unknown type",t))}match(t,n){return typeof t!="string"&&(!t||!t.type)?Fr(null,new Ei("Bad syntax")):((typeof t=="string"||!t.match)&&(t=this.createDescriptor(t,"Type","anonymous")),Di(this,t,n,!1))}findValueFragments(t,n,r,o){return Fp(this,n,this.matchProperty(t,n),r,o)}findDeclarationValueFragments(t,n,r){return Fp(this,t.value,this.matchDeclaration(t),n,r)}findAllFragments(t,n,r){let o=[];return this.syntax.walk(t,{visit:"Declaration",enter:i=>{o.push.apply(o,this.findDeclarationValueFragments(i,n,r))}}),o}getAtrule(t,n=!0){let r=wl(t);return(r.vendor&&n?this.atrules[r.name]||this.atrules[r.basename]:this.atrules[r.name])||null}getAtrulePrelude(t,n=!0){let r=this.getAtrule(t,n);return r&&r.prelude||null}getAtruleDescriptor(t,n){return this.atrules.hasOwnProperty(t)&&this.atrules.declarators&&this.atrules[t].declarators[n]||null}getProperty(t,n=!0){let r=Qu(t);return(r.vendor&&n?this.properties[r.name]||this.properties[r.basename]:this.properties[r.name])||null}getType(t){return hasOwnProperty.call(this.types,t)?this.types[t]:null}validate(){function t(u,c){return c?`<${u}>`:`<'${u}'>`}function n(u,c,l,d){if(l.has(c))return l.get(c);l.set(c,!1),d.syntax!==null&&yp(d.syntax,function(g){if(g.type!=="Type"&&g.type!=="Property")return;let p=g.type==="Type"?u.types:u.properties,m=g.type==="Type"?o:i;hasOwnProperty.call(p,g.name)?n(u,g.name,m,p[g.name])&&(r.push(`${t(c,l===o)} used broken syntax definition ${t(g.name,g.type==="Type")}`),l.set(c,!0)):(r.push(`${t(c,l===o)} used missed syntax definition ${t(g.name,g.type==="Type")}`),l.set(c,!0))},this)}let r=[],o=new Map,i=new Map;for(let u in this.types)n(this,u,o,this.types[u]);for(let u in this.properties)n(this,u,i,this.properties[u]);let s=[...o.keys()].filter(u=>o.get(u)),a=[...i.keys()].filter(u=>i.get(u));return s.length||a.length?{errors:r,types:s,properties:a}:null}dump(t,n){return{generic:this.generic,cssWideKeywords:this.cssWideKeywords,units:this.units,types:Ap(this.types,!n,t),properties:Ap(this.properties,!n,t),atrules:H2(this.atrules,!n,t)}}toString(){return JSON.stringify(this.dump())}}});function Pp(e,t){return typeof t=="string"&&/^\s*\|/.test(t)?typeof e=="string"?e+t:t.replace(/^\s*\|\s*/,""):t||null}function G2(e,t){let n=Object.create(null);for(let r of Object.keys(e))t.includes(r)&&(n[r]=e[r]);return n}function Lp(e,t,n){let r={...e};for(let[o,i]of Object.entries(t))r[o]={...r[o],...n?G2(i,n):i};return r}function _s(e,t){let n={...e};for(let[r,o]of Object.entries(t))switch(r){case"generic":n[r]=!!o;break;case"cssWideKeywords":n[r]=e[r]?[...e[r],...o]:o||[];break;case"units":n[r]={...e[r]};for(let[i,s]of Object.entries(o))n[r][i]=Array.isArray(s)?s:[];break;case"atrules":n[r]={...e[r]};for(let[i,s]of Object.entries(o)){let a=n[r][i]||{},u=n[r][i]={prelude:a.prelude||null,descriptors:{...a.descriptors}};if(s){u.prelude=s.prelude?Pp(u.prelude,s.prelude):u.prelude||null;for(let[c,l]of Object.entries(s.descriptors||{}))u.descriptors[c]=l?Pp(u.descriptors[c],l):null;Object.keys(u.descriptors).length||(u.descriptors=null)}}break;case"types":case"properties":n[r]={...e[r]};for(let[i,s]of Object.entries(o))n[r][i]=Pp(n[r][i],s);break;case"parseContext":n[r]={...e[r],...o};break;case"scope":case"features":n[r]=Lp(e[r],o);break;case"atrule":case"pseudo":n[r]=Lp(e[r],o,["parse"]);break;case"node":n[r]=Lp(e[r],o,["name","structure","parse","generate","walkContext"]);break}return n}var E0=U(()=>{"use strict"});function A0(e){let t=Wy(e),n=Ib(e),r=yb(e),{fromPlainObject:o,toPlainObject:i}=Sb(n),s={lexer:null,createLexer:a=>new Os(a,s,s.lexer.structure),tokenize:Co,parse:t,generate:r,walk:n,find:n.find,findLast:n.findLast,findAll:n.findAll,fromPlainObject:o,toPlainObject:i,fork(a){let u=_s({},e);return A0(typeof a=="function"?a(u):_s(u,a))}};return s.lexer=new Os({generic:e.generic,cssWideKeywords:e.cssWideKeywords,units:e.units,types:e.types,atrules:e.atrules,properties:e.properties,node:e.node},s),s}var P0,L0=U(()=>{"use strict";cr();Vy();bb();wb();Fb();F0();E0();P0=e=>A0(_s({},e))});var M0,B0=U(()=>{"use strict";M0={generic:!0,cssWideKeywords:["initial","inherit","unset","revert","revert-layer"],units:{angle:["deg","grad","rad","turn"],decibel:["db"],flex:["fr"],frequency:["hz","khz"],length:["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],resolution:["dpi","dpcm","dppx","x"],semitones:["st"],time:["s","ms"]},types:{"abs()":"abs( <calc-sum> )","absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","acos()":"acos( <calc-sum> )","alpha-value":"<number>|<percentage>","an+b":"odd|even|<integer>|<n-dimension>|'+'? \u2020 n|-n|<ndashdigit-dimension>|'+'? \u2020 <ndashdigit-ident>|<dashndashdigit-ident>|<n-dimension> <signed-integer>|'+'? \u2020 n <signed-integer>|-n <signed-integer>|<ndash-dimension> <signless-integer>|'+'? \u2020 n- <signless-integer>|-n- <signless-integer>|<n-dimension> ['+'|'-'] <signless-integer>|'+'? \u2020 n ['+'|'-'] <signless-integer>|-n ['+'|'-'] <signless-integer>","anchor()":"anchor( <anchor-name>?&&<anchor-side> , <length-percentage>? )","anchor-name":"<dashed-ident>","anchor-side":"inside|outside|top|left|right|bottom|start|end|self-start|self-end|<percentage>|center","anchor-size":"width|height|block|inline|self-block|self-inline","anchor-size()":"anchor-size( [<anchor-name>||<anchor-size>]? , <length-percentage>? )","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>|<zero>","angular-color-stop":"<color> <color-stop-angle>?","angular-color-stop-list":"<angular-color-stop> , [<angular-color-hint>? , <angular-color-stop>]#?","animateable-feature":"scroll-position|contents|<custom-ident>","animation-action":"none|play|play-once|play-forwards|play-backwards|pause|reset|replay","asin()":"asin( <calc-sum> )","atan()":"atan( <calc-sum> )","atan2()":"atan2( <calc-sum> , <calc-sum> )",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <attr-type>? , <declaration-value>? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attr-type":"type( <syntax> )|raw-string|number|<attr-unit>","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?",axis:"block|inline|x|y","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<xywh()>|<rect()>|<circle()>|<ellipse()>|<polygon()>|<path()>","basic-shape-rect":"<inset()>|<rect()>|<xywh()>","bg-clip":"<visual-box>|border-area|text","bg-image":"<image>|none","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<visual-box>||<visual-box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage [0,\u221E]>|auto]{1,2}|cover|contain","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity","blur()":"blur( <length>? )","brightness()":"brightness( [<number>|<percentage>]? )","calc()":"calc( <calc-sum> )","calc-constant":"e|pi|infinity|-infinity|NaN","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-size()":"calc-size( <calc-size-basis> , <calc-sum> )","calc-size-basis":"<intrinsic-size-keyword>|<calc-size()>|any|<calc-sum>","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-value":"<number>|<dimension>|<percentage>|<calc-constant>|( <calc-sum> )","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( <radial-size>? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<color-base>|currentColor|<system-color>|<device-cmyk()>|<light-dark()>|<-non-standard-color>","color()":"color( <colorspace-params> [/ [<alpha-value>|none]]? )","color-base":"<hex-color>|<color-function>|<named-color>|<color-mix()>|transparent","color-function":"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<oklab()>|<oklch()>|<color()>","color-interpolation-method":"in [<rectangular-color-space>|<polar-color-space> <hue-interpolation-method>?|<custom-color-space>]","color-mix()":"color-mix( <color-interpolation-method> , [<color>&&<percentage [0,100]>?]#{2} )","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"[<angle-percentage>|<zero>]{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"<linear-color-stop> , [<linear-color-hint>? , <linear-color-stop>]#?","colorspace-params":"[<predefined-rgb-params>|<xyz-params>]",combinator:"'>'|'+'|'~'|['|' '|']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|checkbox|radio|menulist|listbox|meter|progress-bar|button","compat-special":"textfield|menulist-button","complex-selector":"<complex-selector-unit> [<combinator>? <complex-selector-unit>]*","complex-selector-list":"<complex-selector>#","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>*]!","compound-selector-list":"<compound-selector>#","conic-gradient()":"conic-gradient( [<conic-gradient-syntax>] )","conic-gradient-syntax":"[[[from [<angle>|<zero>]]? [at <position>]?]||<color-interpolation-method>]? , <angular-color-stop-list>","container-condition":"not <query-in-parens>|<query-in-parens> [[and <query-in-parens>]*|[or <query-in-parens>]*]","container-name":"<custom-ident>","container-query":"not <query-in-parens>|<query-in-parens> [[and <query-in-parens>]*|[or <query-in-parens>]*]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contextual-alt-values":"[contextual|no-contextual]","contrast()":"contrast( [<number>|<percentage>]? )","coord-box":"content-box|padding-box|border-box|fill-box|stroke-box|view-box","corner-shape-value":"round|scoop|bevel|notch|square|squircle|<superellipse()>","cos()":"cos( <calc-sum> )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier()":"cubic-bezier( [<number [0,1]> , <number>]#{2} )","cubic-bezier-easing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","cursor-predefined":"auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing","custom-color-space":"<dashed-ident>","custom-params":"<dashed-ident> [<number>|<percentage>|none]+",dasharray:"[[<length-percentage>|<number>]+]#","dashndashdigit-ident":"<ident-token>","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonHighlight|ButtonShadow|CaptionText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( [<color>?&&<length>{2,3}] )","dynamic-range-limit-mix()":"dynamic-range-limit-mix( [<'dynamic-range-limit'>&&<percentage [0,100]>]#{2,} )","easing-function":"<linear-easing-function>|<cubic-bezier-easing-function>|<step-easing-function>","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( <radial-size>? [at <position>]? )","env()":"env( <custom-ident> , <declaration-value>? )","exp()":"exp( <calc-sum> )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-value-list":"[<filter-function>|<url>]+","final-bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<visual-box>||<visual-box>||<'background-color'>","fit-content()":"fit-content( <length-percentage [0,\u221E]> )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,\u221E]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css2":"normal|small-caps","font-weight-absolute":"normal|bold|<number [1,1000]>","font-width-css3":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded","form-control-identifier":"select","frequency-percentage":"<frequency>|<percentage>","generic-complete":"serif|sans-serif|system-ui|cursive|fantasy|math|monospace","general-enclosed":"[<function-token> <any-value>? )]|[( <any-value>? )]","generic-family":"<generic-script-specific>|<generic-complete>|<generic-incomplete>|<-non-standard-generic-family>","generic-incomplete":"ui-serif|ui-sans-serif|ui-monospace|ui-rounded","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( [<number>|<percentage>]? )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )|hsl( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","hsla()":"hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )|hsla( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )",hue:"<number>|<angle>","hue-interpolation-method":"[shorter|longer|increasing|decreasing] hue","hue-rotate()":"hue-rotate( [<angle>|<zero>]? )","hwb()":"hwb( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","hypot()":"hypot( <calc-sum># )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length-percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( [<number>|<percentage>]? )","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-selector":"from|to|<percentage [0,100]>|<timeline-range-name> <percentage>","keyframes-name":"<custom-ident>|<string>","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","light-dark()":"light-dark( <color> , <color> )","line-name-list":"[<line-names>|<name-repeat>]+","line-names":"'[' <custom-ident>* ']'","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear()":"linear( [<number>&&<percentage>{0,2}]# )","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-easing-function":"linear|<linear()>","linear-gradient()":"linear-gradient( [<linear-gradient-syntax>] )","linear-gradient-syntax":"[[<angle>|<zero>|to <side-or-corner>]||<color-interpolation-method>]? , <color-stop-list>","log()":"log( <calc-sum> , <calc-sum>? )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length-percentage>|min-content|max-content|auto] , [<length-percentage>|<flex>|min-content|max-content|auto] )","mod()":"mod( <calc-sum> , <calc-sum> )","n-dimension":"<dimension-token>","name-repeat":"repeat( [<integer [1,\u221E]>|auto-fill] , <line-names>+ )","named-color":"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen","namespace-prefix":"<ident>","ndash-dimension":"<dimension-token>","ndashdigit-dimension":"<dimension-token>","ndashdigit-ident":"<ident-token>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]","offset-path":"<ray()>|<url>|<basic-shape>","oklab()":"oklab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","oklch()":"oklch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","opacity()":"opacity( [<number>|<percentage>]? )","opacity-value":"<number>|<percentage>","outline-line-style":"none|dotted|dashed|solid|double|groove|ridge|inset|outset","outline-radius":"<length>|<percentage>","overflow-position":"unsafe|safe","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-selector-list":"[<page-selector>#]?","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke","paint()":"paint( <ident> , <declaration-value>? )","paint-box":"<visual-box>|fill-box|stroke-box","palette-identifier":"<dashed-ident>","palette-mix()":"palette-mix( <color-interpolation-method> , [[normal|light|dark|<palette-identifier>|<palette-mix()>]&&<percentage [0,100]>?]#{2} )","path()":"path( <'fill-rule'>? , <string> )","perspective()":"perspective( [<length [0,\u221E]>|none] )","polar-color-space":"hsl|hwb|lch|oklch","polygon()":"polygon( <'fill-rule'>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","position-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|center|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|center|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]","pow()":"pow( <calc-sum> , <calc-sum> )","predefined-rgb":"srgb|srgb-linear|display-p3|display-p3-linear|a98-rgb|prophoto-rgb|rec2020","predefined-rgb-params":"<predefined-rgb> [<number>|<percentage>|none]{3}","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>|<legacy-pseudo-element-selector>","pseudo-page":": [left|right|first|blank]","query-in-parens":"( <container-condition> )|( <size-feature> )|style( <style-query> )|<general-enclosed>",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-extent":"closest-corner|closest-side|farthest-corner|farthest-side","radial-gradient()":"radial-gradient( [<radial-gradient-syntax>] )","radial-gradient-syntax":"[[[<radial-shape>||<radial-size>]? [at <position>]?]||<color-interpolation-method>]? , <color-stop-list>","radial-shape":"circle|ellipse","radial-size":"<radial-extent>|<length [0,\u221E]>|<length-percentage [0,\u221E]>{2}",ratio:"<number [0,\u221E]> [/ <number [0,\u221E]>]?","ray()":"ray( <angle>&&<ray-size>?&&contain?&&[at <position>]? )","ray-size":"closest-side|closest-corner|farthest-side|farthest-corner|sides","rect()":"rect( [<length-percentage>|auto]{4} [round <'border-radius'>]? )","rectangular-color-space":"srgb|srgb-linear|display-p3|display-p3-linear|a98-rgb|prophoto-rgb|rec2020|lab|oklab|xyz|xyz-d50|xyz-d65","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","rem()":"rem( <calc-sum> , <calc-sum> )","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [<conic-gradient-syntax>] )","repeating-linear-gradient()":"repeating-linear-gradient( [<linear-gradient-syntax>] )","repeating-radial-gradient()":"repeating-radial-gradient( [<radial-gradient-syntax>] )","reversed-counter-name":"reversed( <counter-name> )","rgb()":"rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )|rgb( [<number>|<percentage>|none]{3} [/ [<alpha-value>|none]]? )","rgba()":"rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )|rgba( [<number>|<percentage>|none]{3} [/ [<alpha-value>|none]]? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","round()":"round( <rounding-strategy>? , <calc-sum> , <calc-sum> )","rounding-strategy":"nearest|up|down|to-zero","saturate()":"saturate( [<number>|<percentage>]? )","scale()":"scale( [<number>|<percentage>]#{1,2} )","scale3d()":"scale3d( [<number>|<percentage>]#{3} )","scaleX()":"scaleX( [<number>|<percentage>] )","scaleY()":"scaleY( [<number>|<percentage>] )","scaleZ()":"scaleZ( [<number>|<percentage>] )","scope-end":"<forgiving-selector-list>","scope-start":"<forgiving-selector-list>","scroll()":"scroll( [<scroller>||<axis>]? )",scroller:"root|nearest|self","scroll-state-feature":"<media-query-list>","scroll-state-in-parens":"( <scroll-state-query> )|( <scroll-state-feature> )|<general-enclosed>","scroll-state-query":"not <scroll-state-in-parens>|<scroll-state-in-parens> [[and <scroll-state-in-parens>]*|[or <scroll-state-in-parens>]*]|<scroll-state-feature>","selector-list":"<complex-selector-list>","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","sepia()":"sepia( [<number>|<percentage>]? )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<visual-box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","sign()":"sign( <calc-sum> )","signed-integer":"<number-token>","signless-integer":"<number-token>","sin()":"sin( <calc-sum> )","single-animation":"<'animation-duration'>||<easing-function>||<'animation-delay'>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]||<single-animation-timeline>","single-animation-composition":"replace|add|accumulate","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<dashed-ident>|<scroll()>|<view()>","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>||<transition-behavior-value>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","size-feature":"<mf-plain>|<mf-boolean>|<mf-range>","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sqrt()":"sqrt( <calc-sum> )","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-easing-function":"step-start|step-end|<steps()>","steps()":"steps( <integer> , <step-position>? )","style-feature":"<declaration>","style-in-parens":"( <style-condition> )|( <style-feature> )|<general-enclosed>","style-query":"<style-condition>|<style-feature>","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","superellipse()":"superellipse( [<number>|infinity|-infinity] )","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-decl":"( <declaration> )","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>","symbols()":"symbols( <symbols-type>? [<string>|<image>]+ )","symbols-type":"cyclic|numeric|alphabetic|symbolic|fixed","system-color":"AccentColor|AccentColorText|ActiveText|ButtonBorder|ButtonFace|ButtonText|Canvas|CanvasText|Field|FieldText|GrayText|Highlight|HighlightText|LinkText|Mark|MarkText|SelectedItem|SelectedItemText|VisitedText","system-family-name":"caption|icon|menu|message-box|small-caption|status-bar","tan()":"tan( <calc-sum> )",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","text-edge":"[text|cap|ex|ideographic|ideographic-ink] [text|alphabetic|ideographic|ideographic-ink]?","time-percentage":"<time>|<percentage>","timeline-range-name":"cover|contain|entry|exit|entry-crossing|exit-crossing","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,\u221E]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( <length-percentage> )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","transition-behavior-value":"normal|allow-discrete","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","try-size":"most-width|most-height|most-block-size|most-inline-size","try-tactic":"flip-block||flip-inline||flip-start","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","view()":"view( [<axis>||<'view-timeline-inset'>]? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","xywh()":"xywh( <length-percentage>{2} <length-percentage [0,\u221E]>{2} [round <'border-radius'>]? )",xyz:"xyz|xyz-d50|xyz-d65","xyz-params":"<xyz-space> [<number>|<percentage>|none]{3}","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"overlay|-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-size":"intrinsic|min-intrinsic|-webkit-fill-available|-webkit-fit-content|-webkit-min-content|-webkit-max-content|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>",autospace:"no-autospace|[ideograph-alpha||ideograph-numeric||punctuation]||[insert|replace]",bottom:"<length>|auto","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral","generic-script-specific":"generic( kai )|generic( fangsong )|generic( nastaliq )","-non-standard-generic-family":"-apple-system|BlinkMacSystemFont","intrinsic-size-keyword":"min-content|max-content|fit-content",left:"<length>|auto","device-cmyk()":"<legacy-device-cmyk-syntax>|<modern-device-cmyk-syntax>","legacy-device-cmyk-syntax":"device-cmyk( <number>#{4} )","modern-device-cmyk-syntax":"device-cmyk( <cmyk-component>{4} [/ [<alpha-value>|none]]? )","cmyk-component":"<number>|<percentage>|none","color-space":"<rectangular-color-space>|<polar-color-space>|<custom-color-space>",right:"<length>|auto","forgiving-selector-list":"<complex-real-selector-list>","forgiving-relative-selector-list":"<relative-real-selector-list>","complex-real-selector-list":"<complex-real-selector>#","simple-selector-list":"<simple-selector>#","relative-real-selector-list":"<relative-real-selector>#","complex-selector-unit":"[<compound-selector>? <pseudo-compound-selector>*]!","complex-real-selector":"<compound-selector> [<combinator>? <compound-selector>]*","relative-real-selector":"<combinator>? <complex-real-selector>","pseudo-compound-selector":"<pseudo-element-selector> <pseudo-class-selector>*","simple-selector":"<type-selector>|<subclass-selector>","legacy-pseudo-element-selector":"':' [before|after|first-line|first-letter]","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,\u221E]>","xyz-space":"xyz|xyz-d50|xyz-d65","style-condition":"not <style-in-parens>|<style-in-parens> [[and <style-in-parens>]*|[or <style-in-parens>]*]","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box","inset-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]",syntax:"'*'|<syntax-component> [<syntax-combinator> <syntax-component>]*|<syntax-string>","syntax-component":"<syntax-single-component> <syntax-multiplier>?|'<' transform-list '>'","syntax-single-component":"'<' <syntax-type-name> '>'|<ident>","syntax-type-name":"angle|color|custom-ident|image|integer|length|length-percentage|number|percentage|resolution|string|time|url|transform-function","syntax-combinator":"'|'","syntax-multiplier":"'#'|'+'","syntax-string":"<string>"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-content-zooming":"none|zoom","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<visual-box>|border|padding|content|text]||[<visual-box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<coord-box>|no-clip|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<coord-box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","-webkit-user-select":"auto|none|text|all","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]|anchor-center","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>|anchor-center","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical",all:"initial|inherit|unset|revert|revert-layer","anchor-name":"none|<dashed-ident>#","anchor-scope":"none|all|<dashed-ident>#",animation:"<single-animation>#","animation-composition":"<single-animation-composition>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"[auto|<time [0s,\u221E]>]#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-range":"[<'animation-range-start'> <'animation-range-end'>?]#","animation-range-end":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","animation-range-start":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","animation-timeline":"<single-animation-timeline>#","animation-timing-function":"<easing-function>#","animation-trigger":"[none|[<dashed-ident> <animation-action>+]+]#",appearance:"none|auto|<compat-auto>|<compat-special>","aspect-ratio":"auto||<ratio>","backdrop-filter":"none|<filter-value-list>","backface-visibility":"visible|hidden",background:"<bg-layer>#? , <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<visual-box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","baseline-shift":"baseline|sub|super|<svg-length>","baseline-source":"auto|first|last","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-block-start'>","border-block-color":"<'border-top-color'>{1,2}","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-block-style":"<'border-top-style'>{1,2}","border-block-width":"<'border-top-width'>{1,2}","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage [0,\u221E]>{1,2}","border-bottom-right-radius":"<length-percentage [0,\u221E]>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"separate|collapse","border-color":"<color>{1,4}","border-end-end-radius":"<'border-top-left-radius'>","border-end-start-radius":"<'border-top-left-radius'>","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length [0,\u221E]>|<number [0,\u221E]>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"[<number [0,\u221E]>|<percentage [0,\u221E]>]{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage [0,\u221E]>|<number [0,\u221E]>|auto]{1,4}","border-inline":"<'border-block-start'>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-inline-style":"<'border-top-style'>{1,2}","border-inline-width":"<'border-top-width'>{1,2}","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage [0,\u221E]>{1,4} [/ <length-percentage [0,\u221E]>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length>{1,2}","border-start-end-radius":"<'border-top-left-radius'>","border-start-start-radius":"<'border-top-left-radius'>","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage [0,\u221E]>{1,2}","border-top-right-radius":"<length-percentage [0,\u221E]>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"auto|<length-percentage>|<anchor()>|<anchor-size()>","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom",caret:"<'caret-color'>||<'caret-animation'>||<'caret-shape'>","caret-animation":"auto|manual","caret-color":"auto|<color>","caret-shape":"auto|bar|block|underscore",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none","clip-rule":"nonzero|evenodd",color:"<color>","color-interpolation-filters":"auto|sRGB|linearRGB","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance","column-gap":"normal|<length-percentage>","column-height":"auto|<length [0,\u221E]>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"auto|<length [0,\u221E]>","column-wrap":"auto|nowrap|wrap",columns:"[<'column-width'>||<'column-count'>] [/ <'column-height'>]?",contain:"none|strict|content|[[size||inline-size]||layout||style||paint]","contain-intrinsic-block-size":"auto? [none|<length>]","contain-intrinsic-height":"auto? [none|<length>]","contain-intrinsic-inline-size":"auto? [none|<length>]","contain-intrinsic-size":"[auto? [none|<length>]]{1,2}","contain-intrinsic-width":"auto? [none|<length>]",container:"<'container-name'> [/ <'container-type'>]?","container-name":"none|<custom-ident>+","container-type":"normal||[size|inline-size]",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>|<attr()>]+]?","content-visibility":"visible|auto|hidden","corner-block-end-shape":"<corner-shape-value>{1,2}","corner-block-start-shape":"<corner-shape-value>{1,2}","corner-bottom-shape":"<corner-shape-value>{1,2}","corner-bottom-left-shape":"<corner-shape-value>","corner-bottom-right-shape":"<corner-shape-value>","corner-end-end-shape":"<corner-shape-value>","corner-end-start-shape":"<corner-shape-value>","corner-inline-end-shape":"<corner-shape-value>{1,2}","corner-inline-start-shape":"<corner-shape-value>{1,2}","corner-left-shape":"<corner-shape-value>{1,2}","corner-right-shape":"<corner-shape-value>{1,2}","corner-shape":"<corner-shape-value>{1,4}","corner-start-start-shape":"<corner-shape-value>","corner-start-end-shape":"<corner-shape-value>","corner-top-shape":"<corner-shape-value>{1,2}","corner-top-left-shape":"<corner-shape-value>","corner-top-right-shape":"<corner-shape-value>","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",cx:"<length>|<percentage>",cy:"<length>|<percentage>",d:"none|path( <string> )",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge","dynamic-range-limit":"standard|no-limit|constrained|<dynamic-range-limit-mix()>","empty-cells":"show|hide","field-sizing":"content|fixed",fill:"<paint>","fill-opacity":"<number-zero-one>|<percentage>","fill-rule":"nonzero|evenodd",filter:"none|<filter-value-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end","flood-color":"<color>","flood-opacity":"<'opacity'>",font:"[[<'font-style'>||<font-variant-css2>||<'font-weight'>||<font-width-css3>]? <'font-size'> [/ <'line-height'>]? <'font-family'>#]|<system-family-name>|<-non-standard-font>","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-palette":"normal|light|dark|<palette-identifier>|<palette-mix()>","font-size":"<absolute-size>|<relative-size>|<length-percentage [0,\u221E]>|math","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps||position]","font-synthesis-position":"auto|none","font-synthesis-small-caps":"auto|none","font-synthesis-style":"auto|none","font-synthesis-weight":"auto|none","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-emoji":"normal|text|emoji|unicode","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-variation-settings":"normal|[<string> <number>]#","font-weight":"<font-weight-absolute>|bolder|lighter","font-width":"normal|<percentage [0,\u221E]>|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded","forced-color-adjust":"auto|none|preserve-parent-color",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","hyphenate-character":"auto|<string>","hyphenate-limit-chars":"[auto|<integer>]{1,3}",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|smooth|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>","interpolate-size":"numeric-only|allow-keywords",isolation:"auto|isolate",interactivity:"auto|inert","interest-delay":"<'interest-delay-start'>{1,2}","interest-delay-end":"normal|<time>","interest-delay-start":"normal|<time>","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]|anchor-center","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|anchor-center","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"auto|<length-percentage>|<anchor()>|<anchor-size()>","letter-spacing":"normal|<length-percentage>","lighting-color":"<color>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"<'margin-top'>{1,4}","margin-block":"<'margin-top'>{1,2}","margin-block-end":"<'margin-top'>","margin-block-start":"<'margin-top'>","margin-bottom":"<length-percentage>|auto|<anchor-size()>","margin-inline":"<'margin-top'>{1,2}","margin-inline-end":"<'margin-top'>","margin-inline-start":"<'margin-top'>","margin-left":"<length-percentage>|auto|<anchor-size()>","margin-right":"<length-percentage>|auto|<anchor-size()>","margin-top":"<length-percentage>|auto|<anchor-size()>","margin-trim":"none|in-flow|all",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<coord-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<coord-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-depth":"auto-add|add( <integer> )|<integer>","math-shift":"normal|compact","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","min-block-size":"<'min-width'>","min-height":"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","min-inline-size":"<'min-width'>","min-width":"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","mix-blend-mode":"<blend-mode>|plus-darker|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>","object-view-box":"none|<basic-shape-rect>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|<offset-path>||<coord-box>","offset-position":"normal|auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<opacity-value>",order:"<integer>",orphans:"<integer>",outline:"<'outline-width'>||<'outline-style'>||<'outline-color'>","outline-color":"auto|<color>","outline-offset":"<length>","outline-style":"auto|<outline-line-style>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,\u221E]>","overflow-inline":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-y":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>",overlay:"none|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"<'padding-top'>{1,4}","padding-block":"<'padding-top'>{1,2}","padding-block-end":"<'padding-top'>","padding-block-start":"<'padding-top'>","padding-bottom":"<length-percentage [0,\u221E]>","padding-inline":"<'padding-top'>{1,2}","padding-inline-end":"<'padding-top'>","padding-inline-start":"<'padding-top'>","padding-left":"<length-percentage [0,\u221E]>","padding-right":"<length-percentage [0,\u221E]>","padding-top":"<length-percentage [0,\u221E]>",page:"auto|<custom-ident>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky","position-anchor":"auto|none|<anchor-name>","position-area":"none|<position-area>","position-try":"<'position-try-order'>? <'position-try-fallbacks'>","position-try-fallbacks":"none|[[<dashed-ident>||<try-tactic>]|<'position-area'>]#","position-try-order":"normal|<try-size>","position-visibility":"always|[anchors-valid||anchors-visible||no-overflow]","print-color-adjust":"economy|exact",quotes:"none|auto|[<string> <string>]+",r:"<length>|<percentage>","reading-flow":"normal|source-order|flex-visual|flex-flow|grid-rows|grid-columns|grid-order","reading-order":"<integer>",resize:"none|both|horizontal|vertical|block|inline",right:"auto|<length-percentage>|<anchor()>|<anchor-size()>",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-overhang":"auto|none","ruby-position":"[alternate||[over|under]]|inter-character",rx:"<length>|<percentage>",ry:"<length>|<percentage>",scale:"none|[<number>|<percentage>]{1,3}","scroll-behavior":"auto|smooth","scroll-initial-target":"none|nearest","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-end":"<length>","scroll-margin-block-start":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-end":"<length>","scroll-margin-inline-start":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-marker-group":"none|before|after","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","scroll-target-group":"none|auto","scroll-timeline":"[<'scroll-timeline-name'> <'scroll-timeline-axis'>?]#","scroll-timeline-axis":"[block|inline|x|y]#","scroll-timeline-name":"[none|<dashed-ident>]#","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","shape-image-threshold":"<opacity-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]","stop-color":"<'color'>","stop-opacity":"<'opacity'>",stroke:"<paint>","stroke-color":"<color>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<'opacity'>","stroke-width":"<svg-length>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-anchor":"start|middle|end","text-autospace":"normal|<autospace>|auto","text-box":"normal|<'text-box-trim'>||<'text-box-edge'>","text-box-edge":"auto|<text-edge>","text-box-trim":"none|trim-start|trim-end|trim-both","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-inset":"<length>{1,2}|auto","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"auto|[over|under]&&[right|left]?","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-spacing-trim":"space-all|normal|space-first|trim-start","text-transform":"none|[capitalize|uppercase|lowercase]||full-width||full-size-kana|math-auto","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]","text-wrap":"<'text-wrap-mode'>||<'text-wrap-style'>","text-wrap-mode":"wrap|nowrap","text-wrap-style":"auto|balance|stable|pretty","timeline-scope":"none|<dashed-ident>#","timeline-trigger":"none|[<'timeline-trigger-name'> <'timeline-trigger-source'> <'timeline-trigger-range'> ['/' <'timeline-trigger-exit-range'>]?]#","timeline-trigger-name":"none|<dashed-ident>#","timeline-trigger-exit-range":"[<'timeline-trigger-exit-range-start'> <'timeline-trigger-exit-range-end'>?]#","timeline-trigger-exit-range-end":"[auto|normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-exit-range-start":"[auto|normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-range":"[<'timeline-trigger-range-start'> <'timeline-trigger-range-end'>?]#","timeline-trigger-range-end":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-range-start":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-source":"<single-animation-timeline>#",top:"auto|<length-percentage>|<anchor()>|<anchor-size()>","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-behavior":"<transition-behavior-value>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","trigger-scope":"none|all|<dashed-ident>#","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|all","vector-effect":"none|non-scaling-stroke|non-scaling-size|non-rotation|fixed-position","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>","view-timeline":"[<'view-timeline-name'> [<'view-timeline-axis'>||<'view-timeline-inset'>]?]#","view-timeline-axis":"[block|inline|x|y]#","view-timeline-inset":"[[auto|<length-percentage>]{1,2}]#","view-timeline-name":"[none|<dashed-ident>]#","view-transition-class":"none|<custom-ident>+","view-transition-name":"none|<custom-ident>|match-element",visibility:"visible|hidden|collapse","white-space":"normal|pre|pre-wrap|pre-line|<'white-space-collapse'>||<'text-wrap-mode'>","white-space-collapse":"collapse|preserve|preserve-breaks|preserve-spaces|break-spaces",widows:"<integer>",width:"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word|auto-phrase","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>",x:"<length>|<percentage>",y:"<length>|<percentage>","z-index":"auto|<integer>",zoom:"normal|reset|<number [0,\u221E]>||<percentage [0,\u221E]>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<visual-box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto",behavior:"<url>+",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong","position-try-options":"<'position-try-fallbacks'>",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong",speak:"auto|never|always","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]","white-space-trim":"none|discard-before||discard-after||discard-inner"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer [0,\u221E]>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer [0,\u221E]>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},container:{prelude:"[<container-name>]? <container-condition>",descriptors:null},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"auto|block|swap|fallback|optional","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-variation-settings":"normal|[<string> <number>]#","font-weight":"<font-weight-absolute>{1,2}","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<urange>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},"font-palette-values":{prelude:"<dashed-ident>",descriptors:{"base-palette":"light|dark|<integer [0,\u221E]>","font-family":"<family-name>#","override-colors":"[<integer [0,\u221E]> <color>]#"}},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]","page-orientation":"upright|rotate-left|rotate-right",size:"<length [0,\u221E]>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},"position-try":{prelude:"<dashed-ident>",descriptors:{top:"<'top'>",left:"<'left'>",bottom:"<'bottom'>",right:"<'right'>","inset-block-start":"<'inset-block-start'>","inset-block-end":"<'inset-block-end'>","inset-inline-start":"<'inset-inline-start'>","inset-inline-end":"<'inset-inline-end'>","inset-block":"<'inset-block'>","inset-inline":"<'inset-inline'>",inset:"<'inset'>","margin-top":"<'margin-top'>","margin-left":"<'margin-left'>","margin-bottom":"<'margin-bottom'>","margin-right":"<'margin-right'>","margin-block-start":"<'margin-block-start'>","margin-block-end":"<'margin-block-end'>","margin-inline-start":"<'margin-inline-start'>","margin-inline-end":"<'margin-inline-end'>",margin:"<'margin'>","margin-block":"<'margin-block'>","margin-inline":"<'margin-inline'>",width:"<'width'>",height:"<'height'>","min-width":"<'min-width'>","min-height":"<'min-height'>","max-width":"<'max-width'>","max-height":"<'max-height'>","block-size":"<'block-size'>","inline-size":"<'inline-size'>","min-block-size":"<'min-block-size'>","min-inline-size":"<'min-inline-size'>","max-block-size":"<'max-block-size'>","max-inline-size":"<'max-inline-size'>","align-self":"<'align-self'>|anchor-center","justify-self":"<'justify-self'>|anchor-center"}},property:{prelude:"<custom-property-name>",descriptors:{inherits:"true|false","initial-value":"<declaration-value>?",syntax:"<string>"}},scope:{prelude:"[( <scope-start> )]? [to ( <scope-end> )]?",descriptors:null},"starting-style":{prelude:null,descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},"view-transition":{prelude:null,descriptors:{navigation:"auto|none",types:"none|<custom-ident>+"}},"font-features-values":{prelude:"[<string>|<custom-ident>]+",descriptors:{"font-display":"auto|block|swap|fallback|optional"}}}}});var Dp={};ye(Dp,{generate:()=>X2,name:()=>Y2,parse:()=>Bp,structure:()=>K2});function Rl(e,t){let n=this.tokenStart+e,r=this.charCodeAt(n);for((r===Ur||r===er)&&(t&&this.error("Number sign is not allowed"),n++);n<this.tokenEnd;n++)Vt(this.charCodeAt(n))||this.error("Integer is expected",n)}function Ri(e){return Rl.call(this,0,e)}function Fo(e,t){if(!this.cmpChar(this.tokenStart+e,t)){let n="";switch(t){case Dl:n="N is expected";break;case er:n="HyphenMinus is expected";break}this.error(n,this.tokenStart+e)}}function Mp(){let e=0,t=0,n=this.tokenType;for(;n===13||n===25;)n=this.lookupType(++e);if(n!==10)if(this.isDelim(Ur,e)||this.isDelim(er,e)){t=this.isDelim(Ur,e)?Ur:er;do n=this.lookupType(++e);while(n===13||n===25);n!==10&&(this.skip(e),Ri.call(this,ei))}else return null;return e>0&&this.skip(e),t===0&&(n=this.charCodeAt(this.tokenStart),n!==Ur&&n!==er&&this.error("Number sign is expected")),Ri.call(this,t!==0),t===er?"-"+this.consume(10):this.consume(10)}function Bp(){let e=this.tokenStart,t=null,n=null;if(this.tokenType===10)Ri.call(this,q2),n=this.consume(10);else if(this.tokenType===1&&this.cmpChar(this.tokenStart,er))switch(t="-1",Fo.call(this,1,Dl),this.tokenEnd-this.tokenStart){case 2:this.next(),n=Mp.call(this);break;case 3:Fo.call(this,2,er),this.next(),this.skipSC(),Ri.call(this,ei),n="-"+this.consume(10);break;default:Fo.call(this,2,er),Rl.call(this,3,ei),this.next(),n=this.substrToCursor(e+2)}else if(this.tokenType===1||this.isDelim(Ur)&&this.lookupType(1)===1){let r=0;switch(t="1",this.isDelim(Ur)&&(r=1,this.next()),Fo.call(this,0,Dl),this.tokenEnd-this.tokenStart){case 1:this.next(),n=Mp.call(this);break;case 2:Fo.call(this,1,er),this.next(),this.skipSC(),Ri.call(this,ei),n="-"+this.consume(10);break;default:Fo.call(this,1,er),Rl.call(this,2,ei),this.next(),n=this.substrToCursor(e+r+1)}}else if(this.tokenType===12){let r=this.charCodeAt(this.tokenStart),o=r===Ur||r===er,i=this.tokenStart+o;for(;i<this.tokenEnd&&Vt(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),Fo.call(this,i-this.tokenStart,Dl),t=this.substring(e,i),i+1===this.tokenEnd?(this.next(),n=Mp.call(this)):(Fo.call(this,i-this.tokenStart+1,er),i+2===this.tokenEnd?(this.next(),this.skipSC(),Ri.call(this,ei),n="-"+this.consume(10)):(Rl.call(this,i-this.tokenStart+2,ei),this.next(),n=this.substrToCursor(i+1)))}else this.error();return t!==null&&t.charCodeAt(0)===Ur&&(t=t.substr(1)),n!==null&&n.charCodeAt(0)===Ur&&(n=n.substr(1)),{type:"AnPlusB",loc:this.getLocation(e,this.tokenStart),a:t,b:n}}function X2(e){if(e.a){let t=e.a==="+1"&&"n"||e.a==="1"&&"n"||e.a==="-1"&&"-n"||e.a+"n";if(e.b){let n=e.b[0]==="-"||e.b[0]==="+"?e.b:"+"+e.b;this.tokenize(t+n)}else this.tokenize(t)}else this.tokenize(e.b)}var Ur,er,Dl,ei,q2,Y2,K2,Rp=U(()=>{"use strict";cr();Ur=43,er=45,Dl=110,ei=!0,q2=!1;Y2="AnPlusB",K2={a:[String,null],b:[String,null]}});var Np={};ye(Np,{generate:()=>tP,name:()=>J2,parse:()=>zp,structure:()=>eP,walkContext:()=>Z2});function D0(){return this.Raw(this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function Q2(){for(let e=1,t;t=this.lookupType(e);e++){if(t===24)return!0;if(t===23||t===3)return!1}return!1}function zp(e=!1){let t=this.tokenStart,n,r,o=null,i=null;switch(this.eat(3),n=this.substrToCursor(t+1),r=n.toLowerCase(),this.skipSC(),this.eof===!1&&this.tokenType!==23&&this.tokenType!==17&&(this.parseAtrulePrelude?o=this.parseWithFallback(this.AtrulePrelude.bind(this,n,e),D0):o=D0.call(this,this.tokenIndex),this.skipSC()),this.tokenType){case 17:this.next();break;case 23:hasOwnProperty.call(this.atrule,r)&&typeof this.atrule[r].block=="function"?i=this.atrule[r].block.call(this,e):i=this.Block(Q2.call(this));break}return{type:"Atrule",loc:this.getLocation(t,this.tokenStart),name:n,prelude:o,block:i}}function tP(e){this.token(3,"@"+e.name),e.prelude!==null&&this.node(e.prelude),e.block?this.node(e.block):this.token(17,";")}var J2,Z2,eP,Op=U(()=>{"use strict";J2="Atrule",Z2="atrule",eP={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]}});var $p={};ye($p,{generate:()=>iP,name:()=>nP,parse:()=>_p,structure:()=>oP,walkContext:()=>rP});function _p(e){let t=null;return e!==null&&(e=e.toLowerCase()),this.skipSC(),hasOwnProperty.call(this.atrule,e)&&typeof this.atrule[e].prelude=="function"?t=this.atrule[e].prelude.call(this):t=this.readSequence(this.scope.AtrulePrelude),this.skipSC(),this.eof!==!0&&this.tokenType!==23&&this.tokenType!==17&&this.error("Semicolon or block is expected"),{type:"AtrulePrelude",loc:this.getLocationFromList(t),children:t}}function iP(e){this.children(e)}var nP,rP,oP,Up=U(()=>{"use strict";nP="AtrulePrelude",rP="atrulePrelude",oP={children:[[]]}});var Wp={};ye(Wp,{generate:()=>gP,name:()=>pP,parse:()=>Hp,structure:()=>dP});function cP(){this.eof&&this.error("Unexpected end of input");let e=this.tokenStart,t=!1;return this.isDelim(R0)?(t=!0,this.next()):this.isDelim(jp)||this.eat(1),this.isDelim(jp)?this.charCodeAt(this.tokenStart+1)!==zl?(this.next(),this.eat(1)):t&&this.error("Identifier is expected",this.tokenEnd):t&&this.error("Vertical line is expected"),{type:"Identifier",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e)}}function uP(){let e=this.tokenStart,t=this.charCodeAt(e);return t!==zl&&t!==lP&&t!==aP&&t!==sP&&t!==R0&&t!==jp&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),t!==zl&&(this.isDelim(zl)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(e)}function Hp(){let e=this.tokenStart,t,n=null,r=null,o=null;return this.eat(19),this.skipSC(),t=cP.call(this),this.skipSC(),this.tokenType!==20&&(this.tokenType!==1&&(n=uP.call(this),this.skipSC(),r=this.tokenType===5?this.String():this.Identifier(),this.skipSC()),this.tokenType===1&&(o=this.consume(1),this.skipSC())),this.eat(20),{type:"AttributeSelector",loc:this.getLocation(e,this.tokenStart),name:t,matcher:n,value:r,flags:o}}function gP(e){this.token(9,"["),this.node(e.name),e.matcher!==null&&(this.tokenize(e.matcher),this.node(e.value)),e.flags!==null&&this.token(1,e.flags),this.token(9,"]")}var sP,R0,zl,aP,jp,lP,pP,dP,Vp=U(()=>{"use strict";sP=36,R0=42,zl=61,aP=94,jp=124,lP=126;pP="AttributeSelector",dP={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]}});var qp={};ye(qp,{generate:()=>bP,name:()=>hP,parse:()=>Gp,structure:()=>yP,walkContext:()=>xP});function O0(){return this.Raw(null,!0)}function z0(){return this.parseWithFallback(this.Rule,O0)}function N0(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function mP(){if(this.tokenType===17)return N0.call(this,this.tokenIndex);let e=this.parseWithFallback(this.Declaration,N0);return this.tokenType===17&&this.next(),e}function Gp(e){let t=e?mP:z0,n=this.tokenStart,r=this.createList();this.eat(23);e:for(;!this.eof;)switch(this.tokenType){case 24:break e;case 13:case 25:this.next();break;case 3:r.push(this.parseWithFallback(this.Atrule.bind(this,e),O0));break;default:e&&this.isDelim(fP)?r.push(z0.call(this)):r.push(t.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(n,this.tokenStart),children:r}}function bP(e){this.token(23,"{"),this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")}),this.token(24,"}")}var fP,hP,xP,yP,Yp=U(()=>{"use strict";fP=38;hP="Block",xP="block",yP={children:[["Atrule","Rule","Declaration"]]}});var Xp={};ye(Xp,{generate:()=>vP,name:()=>SP,parse:()=>Kp,structure:()=>wP});function Kp(e,t){let n=this.tokenStart,r=null;return this.eat(19),r=e.call(this,t),this.eof||this.eat(20),{type:"Brackets",loc:this.getLocation(n,this.tokenStart),children:r}}function vP(e){this.token(9,"["),this.children(e),this.token(9,"]")}var SP,wP,Qp=U(()=>{"use strict";SP="Brackets",wP={children:[[]]}});var Zp={};ye(Zp,{generate:()=>TP,name:()=>kP,parse:()=>Jp,structure:()=>CP});function Jp(){let e=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(e,this.tokenStart)}}function TP(){this.token(15,"-->")}var kP,CP,ed=U(()=>{"use strict";kP="CDC",CP=[]});var nd={};ye(nd,{generate:()=>EP,name:()=>IP,parse:()=>td,structure:()=>FP});function td(){let e=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(e,this.tokenStart)}}function EP(){this.token(14,"<!--")}var IP,FP,rd=U(()=>{"use strict";IP="CDO",FP=[]});var id={};ye(id,{generate:()=>MP,name:()=>PP,parse:()=>od,structure:()=>LP});function od(){return this.eatDelim(AP),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function MP(e){this.token(9,"."),this.token(1,e.name)}var AP,PP,LP,sd=U(()=>{"use strict";AP=46,PP="ClassSelector",LP={name:String}});var ld={};ye(ld,{generate:()=>OP,name:()=>zP,parse:()=>ad,structure:()=>NP});function ad(){let e=this.tokenStart,t;switch(this.tokenType){case 13:t=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case DP:case BP:case RP:this.next();break;case _0:this.next(),this.eatIdent("deep"),this.eatDelim(_0);break;default:this.error("Combinator is expected")}t=this.substrToCursor(e);break}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:t}}function OP(e){this.tokenize(e.name)}var BP,_0,DP,RP,zP,NP,cd=U(()=>{"use strict";BP=43,_0=47,DP=62,RP=126,zP="Combinator",NP={name:String}});var pd={};ye(pd,{generate:()=>HP,name:()=>UP,parse:()=>ud,structure:()=>jP});function ud(){let e=this.tokenStart,t=this.tokenEnd;return this.eat(25),t-e+2>=2&&this.charCodeAt(t-2)===_P&&this.charCodeAt(t-1)===$P&&(t-=2),{type:"Comment",loc:this.getLocation(e,this.tokenStart),value:this.substring(e+2,t)}}function HP(e){this.token(25,"/*"+e.value+"*/")}var _P,$P,UP,jP,dd=U(()=>{"use strict";_P=42,$P=47,UP="Comment",jP={value:String}});var fd={};ye(fd,{generate:()=>YP,name:()=>VP,parse:()=>gd,structure:()=>GP});function $0(e){return this.lookupTypeNonSC(1)===1&&WP.has(this.lookupTypeNonSC(2))?this.Feature(e):this.FeatureRange(e)}function gd(e="media"){let t=this.createList();e:for(;!this.eof;)switch(this.tokenType){case 25:case 13:this.next();continue;case 1:t.push(this.Identifier());break;case 21:{let n=this.parseWithFallback(()=>qP[e].call(this,e),()=>null);n||(n=this.parseWithFallback(()=>{this.eat(21);let r=this.Condition(e);return this.eat(22),r},()=>this.GeneralEnclosed(e))),t.push(n);break}case 2:{let n=this.parseWithFallback(()=>this.FeatureFunction(e),()=>null);n||(n=this.GeneralEnclosed(e)),t.push(n);break}default:break e}return t.isEmpty&&this.error("Condition is expected"),{type:"Condition",loc:this.getLocationFromList(t),kind:e,children:t}}function YP(e){e.children.forEach(t=>{t.type==="Condition"?(this.token(21,"("),this.node(t),this.token(22,")")):this.node(t)})}var WP,VP,GP,qP,md=U(()=>{"use strict";WP=new Set([16,22,0]),VP="Condition",GP={kind:String,children:[["Identifier","Feature","FeatureFunction","FeatureRange","SupportsDeclaration"]]};qP={media:$0,container:$0,supports(){return this.SupportsDeclaration()}}});var xd={};ye(xd,{generate:()=>sL,name:()=>rL,parse:()=>hd,structure:()=>iL,walkContext:()=>oL});function eL(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!0)}function tL(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1)}function nL(){let e=this.tokenIndex,t=this.Value();return t.type!=="Raw"&&this.eof===!1&&this.tokenType!==17&&this.isDelim(j0)===!1&&this.isBalanceEdge(e)===!1&&this.error(),t}function hd(){let e=this.tokenStart,t=this.tokenIndex,n=aL.call(this),r=vl(n),o=r?this.parseCustomProperty:this.parseValue,i=r?tL:eL,s=!1,a;this.skipSC(),this.eat(16);let u=this.tokenIndex;if(r||this.skipSC(),o?a=this.parseWithFallback(nL,i):a=i.call(this,this.tokenIndex),r&&a.type==="Value"&&a.children.isEmpty){for(let c=u-this.tokenIndex;c<=0;c++)if(this.lookupType(c)===13){a.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}return this.isDelim(j0)&&(s=lL.call(this),this.skipSC()),this.eof===!1&&this.tokenType!==17&&this.isBalanceEdge(t)===!1&&this.error(),{type:"Declaration",loc:this.getLocation(e,this.tokenStart),important:s,property:n,value:a}}function sL(e){this.token(1,e.property),this.token(16,":"),this.node(e.value),e.important&&(this.token(9,"!"),this.token(1,e.important===!0?"important":e.important))}function aL(){let e=this.tokenStart;if(this.tokenType===9)switch(this.charCodeAt(this.tokenStart)){case JP:case XP:case ZP:case KP:case QP:this.next();break;case U0:this.next(),this.isDelim(U0)&&this.next();break}return this.tokenType===4?this.eat(4):this.eat(1),this.substrToCursor(e)}function lL(){this.eat(9),this.skipSC();let e=this.consume(1);return e==="important"?!0:e}var j0,KP,XP,QP,JP,ZP,U0,rL,oL,iL,yd=U(()=>{"use strict";kl();j0=33,KP=35,XP=36,QP=38,JP=42,ZP=43,U0=47;rL="Declaration",oL="declaration",iL={important:[Boolean,String],property:String,value:["Value","Raw"]}});var wd={};ye(wd,{generate:()=>dL,name:()=>uL,parse:()=>Sd,structure:()=>pL});function bd(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function Sd(){let e=this.createList();for(;!this.eof;)switch(this.tokenType){case 13:case 25:case 17:this.next();break;case 3:e.push(this.parseWithFallback(this.Atrule.bind(this,!0),bd));break;default:this.isDelim(cL)?e.push(this.parseWithFallback(this.Rule,bd)):e.push(this.parseWithFallback(this.Declaration,bd))}return{type:"DeclarationList",loc:this.getLocationFromList(e),children:e}}function dL(e){this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")})}var cL,uL,pL,vd=U(()=>{"use strict";cL=38;uL="DeclarationList",pL={children:[["Declaration","Atrule","Rule"]]}});var Cd={};ye(Cd,{generate:()=>mL,name:()=>gL,parse:()=>kd,structure:()=>fL});function kd(){let e=this.tokenStart,t=this.consumeNumber(12);return{type:"Dimension",loc:this.getLocation(e,this.tokenStart),value:t,unit:this.substring(e+t.length,this.tokenStart)}}function mL(e){this.token(12,e.value+e.unit)}var gL,fL,Td=U(()=>{"use strict";gL="Dimension",fL={value:String,unit:String}});var Fd={};ye(Fd,{generate:()=>bL,name:()=>xL,parse:()=>Id,structure:()=>yL});function Id(e){let t=this.tokenStart,n,r=null;if(this.eat(21),this.skipSC(),n=this.consume(1),this.skipSC(),this.tokenType!==22){switch(this.eat(16),this.skipSC(),this.tokenType){case 10:this.lookupNonWSType(1)===9?r=this.Ratio():r=this.Number();break;case 12:r=this.Dimension();break;case 1:r=this.Identifier();break;case 2:r=this.parseWithFallback(()=>{let o=this.Function(this.readSequence,this.scope.Value);return this.skipSC(),this.isDelim(hL)&&this.error(),o},()=>this.Ratio());break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}return this.eof||this.eat(22),{type:"Feature",loc:this.getLocation(t,this.tokenStart),kind:e,name:n,value:r}}function bL(e){this.token(21,"("),this.token(1,e.name),e.value!==null&&(this.token(16,":"),this.node(e.value)),this.token(22,")")}var hL,xL,yL,Ed=U(()=>{"use strict";hL=47,xL="Feature",yL={kind:String,name:String,value:["Identifier","Number","Dimension","Ratio","Function",null]}});var Pd={};ye(Pd,{generate:()=>kL,name:()=>SL,parse:()=>Ad,structure:()=>wL});function vL(e,t){let r=(this.features[e]||{})[t];return typeof r!="function"&&this.error(`Unknown feature ${t}()`),r}function Ad(e="unknown"){let t=this.tokenStart,n=this.consumeFunctionName(),r=vL.call(this,e,n.toLowerCase());this.skipSC();let o=this.parseWithFallback(()=>{let i=this.tokenIndex,s=r.call(this);return this.eof===!1&&this.isBalanceEdge(i)===!1&&this.error(),s},()=>this.Raw(null,!1));return this.eof||this.eat(22),{type:"FeatureFunction",loc:this.getLocation(t,this.tokenStart),kind:e,feature:n,value:o}}function kL(e){this.token(2,e.feature+"("),this.node(e.value),this.token(22,")")}var SL,wL,Ld=U(()=>{"use strict";SL="FeatureFunction",wL={kind:String,feature:String,value:["Declaration","Selector"]}});var Dd={};ye(Dd,{generate:()=>EL,name:()=>IL,parse:()=>Bd,structure:()=>FL});function Md(){switch(this.skipSC(),this.tokenType){case 10:return this.isDelim(H0,this.lookupOffsetNonSC(1))?this.Ratio():this.Number();case 12:return this.Dimension();case 1:return this.Identifier();case 2:return this.parseWithFallback(()=>{let e=this.Function(this.readSequence,this.scope.Value);return this.skipSC(),this.isDelim(H0)&&this.error(),e},()=>this.Ratio());default:this.error("Number, dimension, ratio or identifier is expected")}}function V0(e){if(this.skipSC(),this.isDelim(CL)||this.isDelim(TL)){let t=this.source[this.tokenStart];return this.next(),this.isDelim(W0)?(this.next(),t+"="):t}if(this.isDelim(W0))return"=";this.error(`Expected ${e?'":", ':""}"<", ">", "=" or ")"`)}function Bd(e="unknown"){let t=this.tokenStart;this.skipSC(),this.eat(21);let n=Md.call(this),r=V0.call(this,n.type==="Identifier"),o=Md.call(this),i=null,s=null;return this.lookupNonWSType(0)!==22&&(i=V0.call(this),s=Md.call(this)),this.skipSC(),this.eat(22),{type:"FeatureRange",loc:this.getLocation(t,this.tokenStart),kind:e,left:n,leftComparison:r,middle:o,rightComparison:i,right:s}}function EL(e){this.token(21,"("),this.node(e.left),this.tokenize(e.leftComparison),this.node(e.middle),e.right&&(this.tokenize(e.rightComparison),this.node(e.right)),this.token(22,")")}var H0,CL,W0,TL,IL,FL,Rd=U(()=>{"use strict";H0=47,CL=60,W0=61,TL=62,IL="FeatureRange",FL={kind:String,left:["Identifier","Number","Dimension","Ratio","Function"],leftComparison:String,middle:["Identifier","Number","Dimension","Ratio","Function"],rightComparison:[String,null],right:["Identifier","Number","Dimension","Ratio","Function",null]}});var Nd={};ye(Nd,{generate:()=>ML,name:()=>AL,parse:()=>zd,structure:()=>LL,walkContext:()=>PL});function zd(e,t){let n=this.tokenStart,r=this.consumeFunctionName(),o=r.toLowerCase(),i;return i=t.hasOwnProperty(o)?t[o].call(this,t):e.call(this,t),this.eof||this.eat(22),{type:"Function",loc:this.getLocation(n,this.tokenStart),name:r,children:i}}function ML(e){this.token(2,e.name+"("),this.children(e),this.token(22,")")}var AL,PL,LL,Od=U(()=>{"use strict";AL="Function",PL="function",LL={name:String,children:[[]]}});var $d={};ye($d,{generate:()=>RL,name:()=>BL,parse:()=>_d,structure:()=>DL});function _d(e){let t=this.tokenStart,n=null;this.tokenType===2?n=this.consumeFunctionName():this.eat(21);let r=this.parseWithFallback(()=>{let o=this.tokenIndex,i=this.readSequence(this.scope.Value);return this.eof===!1&&this.isBalanceEdge(o)===!1&&this.error(),i},()=>this.createSingleNodeList(this.Raw(null,!1)));return this.eof||this.eat(22),{type:"GeneralEnclosed",loc:this.getLocation(t,this.tokenStart),kind:e,function:n,children:r}}function RL(e){e.function?this.token(2,e.function+"("):this.token(21,"("),this.children(e),this.token(22,")")}var BL,DL,Ud=U(()=>{"use strict";BL="GeneralEnclosed",DL={kind:String,function:[String,null],children:[[]]}});var Hd={};ye(Hd,{generate:()=>_L,name:()=>NL,parse:()=>jd,structure:()=>OL,xxx:()=>zL});function jd(){let e=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e+1)}}function _L(e){this.token(4,"#"+e.value)}var zL,NL,OL,Wd=U(()=>{"use strict";zL="XXX",NL="Hash",OL={value:String}});var Gd={};ye(Gd,{generate:()=>jL,name:()=>$L,parse:()=>Vd,structure:()=>UL});function Vd(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function jL(e){this.token(1,e.name)}var $L,UL,qd=U(()=>{"use strict";$L="Identifier",UL={name:String}});var Kd={};ye(Kd,{generate:()=>VL,name:()=>HL,parse:()=>Yd,structure:()=>WL});function Yd(){let e=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e+1)}}function VL(e){this.token(9,"#"+e.name)}var HL,WL,Xd=U(()=>{"use strict";HL="IdSelector",WL={name:String}});var Jd={};ye(Jd,{generate:()=>KL,name:()=>qL,parse:()=>Qd,structure:()=>YL});function Qd(){let e=this.tokenStart,t=this.consume(1);for(;this.isDelim(GL);)this.eat(9),t+="."+this.consume(1);return{type:"Layer",loc:this.getLocation(e,this.tokenStart),name:t}}function KL(e){this.tokenize(e.name)}var GL,qL,YL,Zd=U(()=>{"use strict";GL=46,qL="Layer",YL={name:String}});var tg={};ye(tg,{generate:()=>JL,name:()=>XL,parse:()=>eg,structure:()=>QL});function eg(){let e=this.createList();for(this.skipSC();!this.eof&&(e.push(this.Layer()),this.lookupTypeNonSC(0)===18);)this.skipSC(),this.next(),this.skipSC();return{type:"LayerList",loc:this.getLocationFromList(e),children:e}}function JL(e){this.children(e,()=>this.token(18,","))}var XL,QL,ng=U(()=>{"use strict";XL="LayerList",QL={children:[["Layer"]]}});var og={};ye(og,{generate:()=>tM,name:()=>ZL,parse:()=>rg,structure:()=>eM});function rg(){let e=this.tokenStart,t=null,n=null,r=null;if(this.skipSC(),this.tokenType===1&&this.lookupTypeNonSC(1)!==21){let o=this.consume(1),i=o.toLowerCase();switch(i==="not"||i==="only"?(this.skipSC(),t=i,n=this.consume(1)):n=o,this.lookupTypeNonSC(0)){case 1:{this.skipSC(),this.eatIdent("and"),r=this.Condition("media");break}case 23:case 17:case 18:case 0:break;default:this.error("Identifier or parenthesis is expected")}}else switch(this.tokenType){case 1:case 21:case 2:{r=this.Condition("media");break}case 23:case 17:case 0:break;default:this.error("Identifier or parenthesis is expected")}return{type:"MediaQuery",loc:this.getLocation(e,this.tokenStart),modifier:t,mediaType:n,condition:r}}function tM(e){e.mediaType?(e.modifier&&this.token(1,e.modifier),this.token(1,e.mediaType),e.condition&&(this.token(1,"and"),this.node(e.condition))):e.condition&&this.node(e.condition)}var ZL,eM,ig=U(()=>{"use strict";ZL="MediaQuery",eM={modifier:[String,null],mediaType:[String,null],condition:["Condition",null]}});var ag={};ye(ag,{generate:()=>oM,name:()=>nM,parse:()=>sg,structure:()=>rM});function sg(){let e=this.createList();for(this.skipSC();!this.eof&&(e.push(this.MediaQuery()),this.tokenType===18);)this.next();return{type:"MediaQueryList",loc:this.getLocationFromList(e),children:e}}function oM(e){this.children(e,()=>this.token(18,","))}var nM,rM,lg=U(()=>{"use strict";nM="MediaQueryList",rM={children:[["MediaQuery"]]}});var ug={};ye(ug,{generate:()=>lM,name:()=>sM,parse:()=>cg,structure:()=>aM});function cg(){let e=this.tokenStart;return this.eatDelim(iM),{type:"NestingSelector",loc:this.getLocation(e,this.tokenStart)}}function lM(){this.token(9,"&")}var iM,sM,aM,pg=U(()=>{"use strict";iM=38,sM="NestingSelector",aM={}});var gg={};ye(gg,{generate:()=>pM,name:()=>cM,parse:()=>dg,structure:()=>uM});function dg(){this.skipSC();let e=this.tokenStart,t=e,n=null,r;return this.lookupValue(0,"odd")||this.lookupValue(0,"even")?r=this.Identifier():r=this.AnPlusB(),t=this.tokenStart,this.skipSC(),this.lookupValue(0,"of")&&(this.next(),n=this.SelectorList(),t=this.tokenStart),{type:"Nth",loc:this.getLocation(e,t),nth:r,selector:n}}function pM(e){this.node(e.nth),e.selector!==null&&(this.token(1,"of"),this.node(e.selector))}var cM,uM,fg=U(()=>{"use strict";cM="Nth",uM={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]}});var hg={};ye(hg,{generate:()=>fM,name:()=>dM,parse:()=>mg,structure:()=>gM});function mg(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function fM(e){this.token(10,e.value)}var dM,gM,xg=U(()=>{"use strict";dM="Number",gM={value:String}});var bg={};ye(bg,{generate:()=>xM,name:()=>mM,parse:()=>yg,structure:()=>hM});function yg(){let e=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function xM(e){this.tokenize(e.value)}var mM,hM,Sg=U(()=>{"use strict";mM="Operator",hM={value:String}});var vg={};ye(vg,{generate:()=>SM,name:()=>yM,parse:()=>wg,structure:()=>bM});function wg(e,t){let n=this.tokenStart,r=null;return this.eat(21),r=e.call(this,t),this.eof||this.eat(22),{type:"Parentheses",loc:this.getLocation(n,this.tokenStart),children:r}}function SM(e){this.token(21,"("),this.children(e),this.token(22,")")}var yM,bM,kg=U(()=>{"use strict";yM="Parentheses",bM={children:[[]]}});var Tg={};ye(Tg,{generate:()=>kM,name:()=>wM,parse:()=>Cg,structure:()=>vM});function Cg(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function kM(e){this.token(11,e.value+"%")}var wM,vM,Ig=U(()=>{"use strict";wM="Percentage",vM={value:String}});var Eg={};ye(Eg,{generate:()=>FM,name:()=>CM,parse:()=>Fg,structure:()=>IM,walkContext:()=>TM});function Fg(){let e=this.tokenStart,t=null,n,r;return this.eat(16),this.tokenType===2?(n=this.consumeFunctionName(),r=n.toLowerCase(),this.lookupNonWSType(0)==22?t=this.createList():hasOwnProperty.call(this.pseudo,r)?(this.skipSC(),t=this.pseudo[r].call(this),this.skipSC()):(t=this.createList(),t.push(this.Raw(null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoClassSelector",loc:this.getLocation(e,this.tokenStart),name:n,children:t}}function FM(e){this.token(16,":"),e.children===null?this.token(1,e.name):(this.token(2,e.name+"("),this.children(e),this.token(22,")"))}var CM,TM,IM,Ag=U(()=>{"use strict";CM="PseudoClassSelector",TM="function",IM={name:String,children:[["Raw"],null]}});var Lg={};ye(Lg,{generate:()=>LM,name:()=>EM,parse:()=>Pg,structure:()=>PM,walkContext:()=>AM});function Pg(){let e=this.tokenStart,t=null,n,r;return this.eat(16),this.eat(16),this.tokenType===2?(n=this.consumeFunctionName(),r=n.toLowerCase(),this.lookupNonWSType(0)==22?t=this.createList():hasOwnProperty.call(this.pseudo,r)?(this.skipSC(),t=this.pseudo[r].call(this),this.skipSC()):(t=this.createList(),t.push(this.Raw(null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoElementSelector",loc:this.getLocation(e,this.tokenStart),name:n,children:t}}function LM(e){this.token(16,":"),this.token(16,":"),e.children===null?this.token(1,e.name):(this.token(2,e.name+"("),this.children(e),this.token(22,")"))}var EM,AM,PM,Mg=U(()=>{"use strict";EM="PseudoElementSelector",AM="function",PM={name:String,children:[["Raw"],null]}});var Dg={};ye(Dg,{generate:()=>DM,name:()=>MM,parse:()=>Bg,structure:()=>BM});function q0(){switch(this.skipSC(),this.tokenType){case 10:return this.Number();case 2:return this.Function(this.readSequence,this.scope.Value);default:this.error("Number of function is expected")}}function Bg(){let e=this.tokenStart,t=q0.call(this),n=null;return this.skipSC(),this.isDelim(G0)&&(this.eatDelim(G0),n=q0.call(this)),{type:"Ratio",loc:this.getLocation(e,this.tokenStart),left:t,right:n}}function DM(e){this.node(e.left),this.token(9,"/"),e.right?this.node(e.right):this.node(10,1)}var G0,MM,BM,Rg=U(()=>{"use strict";G0=47;MM="Ratio",BM={left:["Number","Function"],right:["Number","Function",null]}});var Ng={};ye(Ng,{generate:()=>OM,name:()=>zM,parse:()=>zg,structure:()=>NM});function RM(){return this.tokenIndex>0&&this.lookupType(-1)===13?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}function zg(e,t){let n=this.getTokenStart(this.tokenIndex),r;return this.skipUntilBalanced(this.tokenIndex,e||this.consumeUntilBalanceEnd),t&&this.tokenStart>n?r=RM.call(this):r=this.tokenStart,{type:"Raw",loc:this.getLocation(n,r),value:this.substring(n,r)}}function OM(e){this.tokenize(e.value)}var zM,NM,Og=U(()=>{"use strict";zM="Raw",NM={value:String}});var $g={};ye($g,{generate:()=>HM,name:()=>$M,parse:()=>_g,structure:()=>jM,walkContext:()=>UM});function Y0(){return this.Raw(this.consumeUntilLeftCurlyBracket,!0)}function _M(){let e=this.SelectorList();return e.type!=="Raw"&&this.eof===!1&&this.tokenType!==23&&this.error(),e}function _g(){let e=this.tokenIndex,t=this.tokenStart,n,r;return this.parseRulePrelude?n=this.parseWithFallback(_M,Y0):n=Y0.call(this,e),r=this.Block(!0),{type:"Rule",loc:this.getLocation(t,this.tokenStart),prelude:n,block:r}}function HM(e){this.node(e.prelude),this.node(e.block)}var $M,UM,jM,Ug=U(()=>{"use strict";$M="Rule",UM="rule",jM={prelude:["SelectorList","Raw"],block:["Block"]}});var Hg={};ye(Hg,{generate:()=>GM,name:()=>WM,parse:()=>jg,structure:()=>VM});function jg(){let e=null,t=null;this.skipSC();let n=this.tokenStart;return this.tokenType===21&&(this.next(),this.skipSC(),e=this.parseWithFallback(this.SelectorList,()=>this.Raw(!1,!0)),this.skipSC(),this.eat(22)),this.lookupNonWSType(0)===1&&(this.skipSC(),this.eatIdent("to"),this.skipSC(),this.eat(21),this.skipSC(),t=this.parseWithFallback(this.SelectorList,()=>this.Raw(!1,!0)),this.skipSC(),this.eat(22)),{type:"Scope",loc:this.getLocation(n,this.tokenStart),root:e,limit:t}}function GM(e){e.root&&(this.token(21,"("),this.node(e.root),this.token(22,")")),e.limit&&(this.token(1,"to"),this.token(21,"("),this.node(e.limit),this.token(22,")"))}var WM,VM,Wg=U(()=>{"use strict";WM="Scope",VM={root:["SelectorList","Raw",null],limit:["SelectorList","Raw",null]}});var Gg={};ye(Gg,{generate:()=>KM,name:()=>qM,parse:()=>Vg,structure:()=>YM});function Vg(){let e=this.readSequence(this.scope.Selector);return this.getFirstListNode(e)===null&&this.error("Selector is expected"),{type:"Selector",loc:this.getLocationFromList(e),children:e}}function KM(e){this.children(e)}var qM,YM,qg=U(()=>{"use strict";qM="Selector",YM={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator"]]}});var Kg={};ye(Kg,{generate:()=>ZM,name:()=>XM,parse:()=>Yg,structure:()=>JM,walkContext:()=>QM});function Yg(){let e=this.createList();for(;!this.eof;){if(e.push(this.Selector()),this.tokenType===18){this.next();continue}break}return{type:"SelectorList",loc:this.getLocationFromList(e),children:e}}function ZM(e){this.children(e,()=>this.token(18,","))}var XM,QM,JM,Xg=U(()=>{"use strict";XM="SelectorList",QM="selector",JM={children:[["Selector","Raw"]]}});function Nl(e){let t=e.length,n=e.charCodeAt(0),r=n===K0||n===X0?1:0,o=r===1&&t>1&&e.charCodeAt(t-1)===n?t-2:t-1,i="";for(let s=r;s<=o;s++){let a=e.charCodeAt(s);if(a===Qg){if(s===o){s!==t-1&&(i=e.substr(s+1));break}if(a=e.charCodeAt(++s),zn(Qg,a)){let u=s-1,c=Zr(e,u);s=c-1,i+=sl(e.substring(u+1,c))}else a===13&&e.charCodeAt(s+1)===10&&s++}else i+=e[s]}return i}function Q0(e,t){let n=t?"'":'"',r=t?X0:K0,o="",i=!1;for(let s=0;s<e.length;s++){let a=e.charCodeAt(s);if(a===0){o+="\uFFFD";continue}if(a<=31||a===127){o+="\\"+a.toString(16),i=!0;continue}a===r||a===Qg?(o+="\\"+e.charAt(s),i=!1):(i&&(Nn(a)||_r(a))&&(o+=" "),o+=e.charAt(s),i=!1)}return n+o+n}var Qg,K0,X0,Ol=U(()=>{"use strict";cr();Qg=92,K0=34,X0=39});var Zg={};ye(Zg,{generate:()=>nB,name:()=>eB,parse:()=>Jg,structure:()=>tB});function Jg(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:Nl(this.consume(5))}}function nB(e){this.token(5,Q0(e.value))}var eB,tB,ef=U(()=>{"use strict";Ol();eB="String",tB={value:String}});var nf={};ye(nf,{generate:()=>aB,name:()=>oB,parse:()=>tf,structure:()=>sB,walkContext:()=>iB});function Z0(){return this.Raw(null,!1)}function tf(){let e=this.tokenStart,t=this.createList(),n;for(;!this.eof;){switch(this.tokenType){case 13:this.next();continue;case 25:if(this.charCodeAt(this.tokenStart+2)!==rB){this.next();continue}n=this.Comment();break;case 14:n=this.CDO();break;case 15:n=this.CDC();break;case 3:n=this.parseWithFallback(this.Atrule,Z0);break;default:n=this.parseWithFallback(this.Rule,Z0)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function aB(e){this.children(e)}var rB,oB,iB,sB,rf=U(()=>{"use strict";rB=33;oB="StyleSheet",iB="stylesheet",sB={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]}});var sf={};ye(sf,{generate:()=>uB,name:()=>lB,parse:()=>of,structure:()=>cB});function of(){let e=this.tokenStart;this.eat(21),this.skipSC();let t=this.Declaration();return this.eof||this.eat(22),{type:"SupportsDeclaration",loc:this.getLocation(e,this.tokenStart),declaration:t}}function uB(e){this.token(21,"("),this.node(e.declaration),this.token(22,")")}var lB,cB,af=U(()=>{"use strict";lB="SupportsDeclaration",cB={declaration:"Declaration"}});var uf={};ye(uf,{generate:()=>fB,name:()=>dB,parse:()=>cf,structure:()=>gB});function lf(){this.tokenType!==1&&this.isDelim(pB)===!1&&this.error("Identifier or asterisk is expected"),this.next()}function cf(){let e=this.tokenStart;return this.isDelim(eS)?(this.next(),lf.call(this)):(lf.call(this),this.isDelim(eS)&&(this.next(),lf.call(this))),{type:"TypeSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e)}}function fB(e){this.tokenize(e.name)}var pB,eS,dB,gB,pf=U(()=>{"use strict";pB=42,eS=124;dB="TypeSelector",gB={name:String}});var ff={};ye(ff,{generate:()=>bB,name:()=>xB,parse:()=>gf,structure:()=>yB});function $s(e,t){let n=0;for(let r=this.tokenStart+e;r<this.tokenEnd;r++){let o=this.charCodeAt(r);if(o===nS&&t&&n!==0)return $s.call(this,e+n+1,!1),-1;Nn(o)||this.error(t&&n!==0?"Hyphen minus"+(n<6?" or hex digit":"")+" is expected":n<6?"Hex digit is expected":"Unexpected input",r),++n>6&&this.error("Too many hex digits",r)}return this.next(),n}function _l(e){let t=0;for(;this.isDelim(df);)++t>e&&this.error("Too many question marks"),this.next()}function mB(e){this.charCodeAt(this.tokenStart)!==e&&this.error((e===tS?"Plus sign":"Hyphen minus")+" is expected")}function hB(){let e=0;switch(this.tokenType){case 10:if(e=$s.call(this,1,!0),this.isDelim(df)){_l.call(this,6-e);break}if(this.tokenType===12||this.tokenType===10){mB.call(this,nS),$s.call(this,1,!1);break}break;case 12:e=$s.call(this,1,!0),e>0&&_l.call(this,6-e);break;default:if(this.eatDelim(tS),this.tokenType===1){e=$s.call(this,0,!0),e>0&&_l.call(this,6-e);break}if(this.isDelim(df)){this.next(),_l.call(this,5);break}this.error("Hex digit or question mark is expected")}}function gf(){let e=this.tokenStart;return this.eatIdent("u"),hB.call(this),{type:"UnicodeRange",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function bB(e){this.tokenize(e.value)}var tS,nS,df,xB,yB,mf=U(()=>{"use strict";cr();tS=43,nS=45,df=63;xB="UnicodeRange",yB={value:String}});function oS(e){let t=e.length,n=4,r=e.charCodeAt(t-1)===rS?t-2:t-1,o="";for(;n<r&&_r(e.charCodeAt(n));)n++;for(;n<r&&_r(e.charCodeAt(r));)r--;for(let i=n;i<=r;i++){let s=e.charCodeAt(i);if(s===hf){if(i===r){i!==t-1&&(o=e.substr(i+1));break}if(s=e.charCodeAt(++i),zn(hf,s)){let a=i-1,u=Zr(e,a);i=u-1,o+=sl(e.substring(a+1,u))}else s===13&&e.charCodeAt(i+1)===10&&i++}else o+=e[i]}return o}function iS(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);if(o===0){t+="\uFFFD";continue}if(o<=31||o===127){t+="\\"+o.toString(16),n=!0;continue}o===SB||o===hf||o===wB||o===vB||o===kB||o===rS?(t+="\\"+e.charAt(r),n=!1):(n&&Nn(o)&&(t+=" "),t+=e.charAt(r),n=!1)}return"url("+t+")"}var SB,hf,wB,vB,kB,rS,xf=U(()=>{"use strict";cr();SB=32,hf=92,wB=34,vB=39,kB=40,rS=41});var bf={};ye(bf,{generate:()=>IB,name:()=>CB,parse:()=>yf,structure:()=>TB});function yf(){let e=this.tokenStart,t;switch(this.tokenType){case 7:t=oS(this.consume(7));break;case 2:this.cmpStr(this.tokenStart,this.tokenEnd,"url(")||this.error("Function name must be `url`"),this.eat(2),this.skipSC(),t=Nl(this.consume(5)),this.skipSC(),this.eof||this.eat(22);break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(e,this.tokenStart),value:t}}function IB(e){this.token(7,iS(e.value))}var CB,TB,Sf=U(()=>{"use strict";xf();Ol();CB="Url",TB={value:String}});var vf={};ye(vf,{generate:()=>AB,name:()=>FB,parse:()=>wf,structure:()=>EB});function wf(){let e=this.tokenStart,t=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(e,this.tokenStart),children:t}}function AB(e){this.children(e)}var FB,EB,kf=U(()=>{"use strict";FB="Value",EB={children:[[]]}});var Tf={};ye(Tf,{generate:()=>BB,name:()=>LB,parse:()=>Cf,structure:()=>MB});function Cf(){return this.eat(13),PB}function BB(e){this.token(13,e.value)}var PB,LB,MB,If=U(()=>{"use strict";PB=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),LB="WhiteSpace",MB={value:String}});var Us={};ye(Us,{AnPlusB:()=>Dp,Atrule:()=>Np,AtrulePrelude:()=>$p,AttributeSelector:()=>Wp,Block:()=>qp,Brackets:()=>Xp,CDC:()=>Zp,CDO:()=>nd,ClassSelector:()=>id,Combinator:()=>ld,Comment:()=>pd,Condition:()=>fd,Declaration:()=>xd,DeclarationList:()=>wd,Dimension:()=>Cd,Feature:()=>Fd,FeatureFunction:()=>Pd,FeatureRange:()=>Dd,Function:()=>Nd,GeneralEnclosed:()=>$d,Hash:()=>Hd,IdSelector:()=>Kd,Identifier:()=>Gd,Layer:()=>Jd,LayerList:()=>tg,MediaQuery:()=>og,MediaQueryList:()=>ag,NestingSelector:()=>ug,Nth:()=>gg,Number:()=>hg,Operator:()=>bg,Parentheses:()=>vg,Percentage:()=>Tg,PseudoClassSelector:()=>Eg,PseudoElementSelector:()=>Lg,Ratio:()=>Dg,Raw:()=>Ng,Rule:()=>$g,Scope:()=>Hg,Selector:()=>Gg,SelectorList:()=>Kg,String:()=>Zg,StyleSheet:()=>nf,SupportsDeclaration:()=>sf,TypeSelector:()=>uf,UnicodeRange:()=>ff,Url:()=>bf,Value:()=>vf,WhiteSpace:()=>Tf});var Ff=U(()=>{"use strict";Rp();Op();Up();Vp();Yp();Qp();ed();rd();sd();cd();dd();md();yd();vd();Td();Ed();Ld();Rd();Od();Ud();Wd();qd();Xd();Zd();ng();ig();lg();pg();fg();xg();Sg();kg();Ig();Ag();Mg();Rg();Og();Ug();Wg();qg();Xg();ef();rf();af();pf();mf();Sf();kf();If()});var aS,lS=U(()=>{"use strict";Cl();B0();Ff();aS={generic:!0,cssWideKeywords:Pi,...M0,node:Us}});function js(e){switch(this.tokenType){case 4:return this.Hash();case 18:return this.Operator();case 21:return this.Parentheses(this.readSequence,e.recognizer);case 19:return this.Brackets(this.readSequence,e.recognizer);case 5:return this.String();case 12:return this.Dimension();case 11:return this.Percentage();case 10:return this.Number();case 2:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,e.recognizer);case 7:return this.Url();case 1:return this.cmpChar(this.tokenStart,OB)&&this.cmpChar(this.tokenStart+1,cS)?this.UnicodeRange():this.Identifier();case 9:{let t=this.charCodeAt(this.tokenStart);if(t===NB||t===RB||t===cS||t===zB)return this.Operator();t===DB&&this.error("Hex or identifier is expected",this.tokenStart+1);break}}}var DB,RB,cS,zB,NB,OB,Ef=U(()=>{"use strict";DB=35,RB=42,cS=43,zB=45,NB=47,OB=117});var uS,pS=U(()=>{"use strict";Ef();uS={getNode:js}});function qB(e,t){t.last!==null&&t.last.type!=="Combinator"&&e!==null&&e.type!=="Combinator"&&t.push({type:"Combinator",loc:null,name:" "})}function YB(){switch(this.tokenType){case 19:return this.AttributeSelector();case 4:return this.IdSelector();case 16:return this.lookupType(1)===16?this.PseudoElementSelector():this.PseudoClassSelector();case 1:return this.TypeSelector();case 10:case 11:return this.Percentage();case 12:this.charCodeAt(this.tokenStart)===dS&&this.error("Identifier is expected",this.tokenStart+1);break;case 9:{switch(this.charCodeAt(this.tokenStart)){case jB:case WB:case GB:case HB:return this.Combinator();case dS:return this.ClassSelector();case UB:case VB:return this.TypeSelector();case _B:return this.IdSelector();case $B:return this.NestingSelector()}break}}}var _B,$B,UB,jB,HB,dS,WB,VB,GB,gS,fS=U(()=>{"use strict";_B=35,$B=38,UB=42,jB=43,HB=47,dS=46,WB=62,VB=124,GB=126;gS={onWhiteSpace:qB,getNode:YB}});function mS(){return this.createSingleNodeList(this.Raw(null,!1))}var hS=U(()=>{"use strict"});function xS(){let e=this.createList();if(this.skipSC(),e.push(this.Identifier()),this.skipSC(),this.tokenType===18){e.push(this.Operator());let t=this.tokenIndex,n=this.parseCustomProperty?this.Value(null):this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1);if(n.type==="Value"&&n.children.isEmpty){for(let r=t-this.tokenIndex;r<=0;r++)if(this.lookupType(r)===13){n.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}e.push(n)}return e}var yS=U(()=>{"use strict"});function bS(e){return e!==null&&e.type==="Operator"&&(e.value[e.value.length-1]==="-"||e.value[e.value.length-1]==="+")}var SS,wS=U(()=>{"use strict";Ef();hS();yS();SS={getNode:js,onWhiteSpace(e,t){bS(e)&&(e.value=" "+e.value),bS(t.last)&&(t.last.value+=" ")},expression:mS,var:xS}});var Af={};ye(Af,{AtrulePrelude:()=>uS,Selector:()=>gS,Value:()=>SS});var vS=U(()=>{"use strict";pS();fS();wS()});var KB,kS,CS=U(()=>{"use strict";KB=new Set(["none","and","not","or"]),kS={parse:{prelude(){let e=this.createList();if(this.tokenType===1){let t=this.substring(this.tokenStart,this.tokenEnd);KB.has(t.toLowerCase())||e.push(this.Identifier())}return e.push(this.Condition("container")),e},block(e=!1){return this.Block(e)}}}});var TS,IS=U(()=>{"use strict";TS={parse:{prelude:null,block(){return this.Block(!0)}}}});function Pf(e,t){return this.parseWithFallback(()=>{try{return e.call(this)}finally{this.skipSC(),this.lookupNonWSType(0)!==22&&this.error()}},t||(()=>this.Raw(null,!0)))}var FS,ES,AS=U(()=>{"use strict";FS={layer(){this.skipSC();let e=this.createList(),t=Pf.call(this,this.Layer);return(t.type!=="Raw"||t.value!=="")&&e.push(t),e},supports(){this.skipSC();let e=this.createList(),t=Pf.call(this,this.Declaration,()=>Pf.call(this,()=>this.Condition("supports")));return(t.type!=="Raw"||t.value!=="")&&e.push(t),e}},ES={parse:{prelude(){let e=this.createList();switch(this.tokenType){case 5:e.push(this.String());break;case 7:case 2:e.push(this.Url());break;default:this.error("String or url() is expected")}return this.skipSC(),this.tokenType===1&&this.cmpStr(this.tokenStart,this.tokenEnd,"layer")?e.push(this.Identifier()):this.tokenType===2&&this.cmpStr(this.tokenStart,this.tokenEnd,"layer(")&&e.push(this.Function(null,FS)),this.skipSC(),this.tokenType===2&&this.cmpStr(this.tokenStart,this.tokenEnd,"supports(")&&e.push(this.Function(null,FS)),(this.lookupNonWSType(0)===1||this.lookupNonWSType(0)===21)&&e.push(this.MediaQueryList()),e},block:null}}});var PS,LS=U(()=>{"use strict";PS={parse:{prelude(){return this.createSingleNodeList(this.LayerList())},block(){return this.Block(!1)}}}});var MS,BS=U(()=>{"use strict";MS={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(e=!1){return this.Block(e)}}}});var DS,RS=U(()=>{"use strict";DS={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var zS,NS=U(()=>{"use strict";zS={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var OS,_S=U(()=>{"use strict";OS={parse:{prelude(){return this.createSingleNodeList(this.Scope())},block(e=!1){return this.Block(e)}}}});var $S,US=U(()=>{"use strict";$S={parse:{prelude:null,block(e=!1){return this.Block(e)}}}});var jS,HS=U(()=>{"use strict";jS={parse:{prelude(){return this.createSingleNodeList(this.Condition("supports"))},block(e=!1){return this.Block(e)}}}});var WS,VS=U(()=>{"use strict";CS();IS();AS();LS();BS();RS();NS();_S();US();HS();WS={container:kS,"font-face":TS,import:ES,layer:PS,media:MS,nest:DS,page:zS,scope:OS,"starting-style":$S,supports:jS}});function GS(){let e=this.createList();this.skipSC();e:for(;!this.eof;){switch(this.tokenType){case 1:e.push(this.Identifier());break;case 5:e.push(this.String());break;case 18:e.push(this.Operator());break;case 22:break e;default:this.error("Identifier, string or comma is expected")}this.skipSC()}return e}var qS=U(()=>{"use strict"});var ti,Lf,XB,QB,$l,YS,KS=U(()=>{"use strict";qS();ti={parse(){return this.createSingleNodeList(this.SelectorList())}},Lf={parse(){return this.createSingleNodeList(this.Selector())}},XB={parse(){return this.createSingleNodeList(this.Identifier())}},QB={parse:GS},$l={parse(){return this.createSingleNodeList(this.Nth())}},YS={dir:XB,has:ti,lang:QB,matches:ti,is:ti,"-moz-any":ti,"-webkit-any":ti,where:ti,not:ti,"nth-child":$l,"nth-last-child":$l,"nth-last-of-type":$l,"nth-of-type":$l,slotted:Lf,host:Lf,"host-context":Lf}});var Mf={};ye(Mf,{AnPlusB:()=>Bp,Atrule:()=>zp,AtrulePrelude:()=>_p,AttributeSelector:()=>Hp,Block:()=>Gp,Brackets:()=>Kp,CDC:()=>Jp,CDO:()=>td,ClassSelector:()=>od,Combinator:()=>ad,Comment:()=>ud,Condition:()=>gd,Declaration:()=>hd,DeclarationList:()=>Sd,Dimension:()=>kd,Feature:()=>Id,FeatureFunction:()=>Ad,FeatureRange:()=>Bd,Function:()=>zd,GeneralEnclosed:()=>_d,Hash:()=>jd,IdSelector:()=>Yd,Identifier:()=>Vd,Layer:()=>Qd,LayerList:()=>eg,MediaQuery:()=>rg,MediaQueryList:()=>sg,NestingSelector:()=>cg,Nth:()=>dg,Number:()=>mg,Operator:()=>yg,Parentheses:()=>wg,Percentage:()=>Cg,PseudoClassSelector:()=>Fg,PseudoElementSelector:()=>Pg,Ratio:()=>Bg,Raw:()=>zg,Rule:()=>_g,Scope:()=>jg,Selector:()=>Vg,SelectorList:()=>Yg,String:()=>Jg,StyleSheet:()=>tf,SupportsDeclaration:()=>of,TypeSelector:()=>cf,UnicodeRange:()=>gf,Url:()=>yf,Value:()=>wf,WhiteSpace:()=>Cf});var XS=U(()=>{"use strict";Rp();Op();Up();Vp();Yp();Qp();ed();rd();sd();cd();dd();md();yd();vd();Td();Ed();Ld();Rd();Od();Ud();Wd();qd();Xd();Zd();ng();ig();lg();pg();fg();xg();Sg();kg();Ig();Ag();Mg();Rg();Og();Ug();Wg();qg();Xg();ef();rf();af();pf();mf();Sf();kf();If()});var QS,JS=U(()=>{"use strict";vS();VS();KS();XS();QS={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(e){return this.AtrulePrelude(e.atrule?String(e.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",condition(e){return this.Condition(e.kind)},rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},features:{supports:{selector(){return this.Selector()}},container:{style(){return this.Declaration()}}},scope:Af,atrule:WS,pseudo:YS,node:Mf}});var ZS,ew=U(()=>{"use strict";Ff();ZS={node:Us}});var tw,nw=U(()=>{"use strict";L0();lS();JS();ew();tw=P0({...aS,...QS,...ZS})});var rw=U(()=>{"use strict"});var ow=U(()=>{"use strict"});var EY,iw,AY,PY,LY,sw,MY,BY,DY,RY,zY,NY,aw=U(()=>{"use strict";nw();rw();bp();kl();ow();Ol();xf();({tokenize:EY,parse:iw,generate:AY,lexer:PY,createLexer:LY,walk:sw,find:MY,findLast:BY,findAll:DY,toPlainObject:RY,fromPlainObject:zY,fork:NY}=tw)});function tD(e){return e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function cw(e){try{let t=iw(e.trim(),{context:"value"}),n=[];return sw(t,{enter(r){if(r.type==="Dimension"){let o=parseFloat(r.value);n.push(`${o}${r.unit}`)}else if(r.type==="Number"){let o=parseFloat(r.value);n.push(`${o}`)}else r.type==="Percentage"?n.push(`${parseFloat(r.value)}%`):r.type==="Identifier"?n.push(r.name.toLowerCase()):r.type==="Hash"?n.push(`#${r.value.toLowerCase()}`):r.type}}),n}catch{return[e.trim().toLowerCase()]}}function nD(e,t){let n=tD(e);if(!eD.has(n))return t;let r=cw(t);if(r.length<1||r.length>4)return t;let o=r.map(i=>i==="0"?"0px":i);return o.length===1?`${o[0]} ${o[0]} ${o[0]} ${o[0]}`:o.length===2?`${o[0]} ${o[1]} ${o[0]} ${o[1]}`:o.length===3?`${o[0]} ${o[1]} ${o[2]} ${o[1]}`:o.join(" ")}function lw(e,t){let n=t.trim();if(!n)return"";let r=nD(e,n);return cw(r).map(i=>i==="0"?"0px":i).join(" ")}function uw(e,t,n){let r=lw(e,t),o=lw(e,n);return r!==""&&o!==""&&r===o}var eD,pw=U(()=>{"use strict";aw();eD=new Set(["padding","margin","border-radius","borderradius","inset","border-width","borderwidth"])});function rD(e){let t=e.toLowerCase();return t.length===4?`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`:t}function oD(e){let t=e.match(/rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*[\d.]+)?\s*\)/);if(!t)return null;let n=parseInt(t[1],10).toString(16).padStart(2,"0"),r=parseInt(t[2],10).toString(16).padStart(2,"0"),o=parseInt(t[3],10).toString(16).padStart(2,"0");return`#${n}${r}${o}`}function dw(e){let t=typeof e=="string"?e:String(e??"");if(!t||t==="[object Object]")return"";let n=t.match(/rgba?\s*\(\s*\d+\s*,\s*\d+\s*,\s*\d+(?:\s*,\s*[\d.]+)?\s*\)/);if(n){let i=oD(n[0]);if(i)return i}let r=t.match(/#([0-9a-fA-F]{3,8})/);if(r)return rD(r[0]);let o=t.match(/(-?\d+\.?\d*)(px|em|rem|%|pt|vw|vh)?/g);return o&&o.length>1?o.join(" ").toLowerCase():o&&o.length===1?o[0].toLowerCase():t.toLowerCase().trim().replace(/\s+/g," ")}function ni(e,t,n){if(!e||!t)return!1;let r=String(e),o=String(t),i=r.toLowerCase(),s=o.toLowerCase(),a=i.includes("none"),u=s.includes("none");if(a!==u)return!1;let c=/\b(fill|stroke)\s*:/i,l=c.test(r),d=c.test(o);if(l!==d)return!1;let g=dw(r),p=dw(o);return!!(g===p||n&&uw(n,r,o))}var Bf=U(()=>{"use strict";pw()});function cD(e){let t=String(e.property||"").toLowerCase(),n=String(e.description||"").toLowerCase(),r=String(e.expected||e.suggestedValue||"").toLowerCase(),o=String(e.actual||e.currentValue||"").toLowerCase();if(t.includes("color")||t.includes("fill")||t.includes("background")||n.includes("color")||n.includes("fill"))return!0;let i=s=>/^#[0-9a-f]{3,8}$/i.test(s)||s.includes("rgb")||["white","black","red","blue","green","orange","yellow","transparent"].includes(s);return!!(i(r)||i(o)||e.relatedProperties?.some(s=>{let a=s.property?.toLowerCase()||"";return a.includes("color")||a.includes("fill")||a.includes("background")}))}function gw(e){if(e.includes("\xD7")||/\d+px\s*x\s*\d+px/i.test(e))return!1;let t=e.match(/\d+px/g);return t?t.length>1:!1}function uD(e){let t=String(e.expected||e.suggestedValue||"").toLowerCase(),n=String(e.actual||e.currentValue||"").toLowerCase(),r=String(e.property||"").toLowerCase(),o=String(e.description||"").toLowerCase(),i=n.includes("margin")||t.includes("margin")||r==="margin",s=t.includes("gap")||o.includes("gap");return i&&s}function pD(e,t,n){if(!e||!t)return!1;let r=typeof e=="string"?e:String(e??""),o=typeof t=="string"?t:String(t??"");if(!r||!o||r==="[object Object]"||o==="[object Object]"||n&&cD(n)||gw(r)||gw(o)||n&&uD(n))return!1;let i=parseFloat(r),s=parseFloat(o);if(isNaN(i)||isNaN(s))return!1;let a=Math.abs(i-s);if(r.includes("px")||o.includes("px")){let u=n?.property?.toLowerCase()||"";return u==="width"||u==="height"||u.includes("width")||u.includes("height")?a<mw:a<fw}return r.includes("%")||o.includes("%")?a<1:!1}function dD(e){let t=`${e.description||""} ${e.title||""} ${e.suggestedFix||""}`.toLowerCase();if(lD.some(s=>t.includes(s))||!sD.some(s=>t.includes(s)))return!1;let o=e.expected||e.suggestedValue,i=e.actual||e.currentValue;return!(o&&i&&!ni(o,i,e.property))}function gD(e){let t=(e.expected!==void 0?"fill":"").toLowerCase(),n=e.actual!==void 0||e.currentValue!==void 0?"fill":"";if(!(t==="fill"||n==="fill"||e.description?.toLowerCase().includes("fill")||e.title?.toLowerCase().includes("fill")))return!1;let o=String(e.expected||e.suggestedValue||"").toLowerCase();if(!(o==="none"||o==="transparent"||o.includes("no fills")||o.includes("transparent")))return!1;let s=`${e.description||""} ${e.title||""}`.toLowerCase();return s.includes("container")||s.includes("svg ")||s.includes("<svg")||s.includes("wrapper")}function fD(e){let t=`${e.description||""} ${e.title||""}`.toLowerCase(),n=e.property?.toLowerCase()||"";if(!(t.includes("text ")||t.includes("text layer")||t.includes("text span")||t.includes("span ")||t.includes("label "))||!(n==="width"||n==="height"||n.includes("width")||n.includes("height")||t.includes("width")||t.includes("height")))return!1;let i=e.expected||e.suggestedValue||"",s=e.actual||e.currentValue||"",a=parseFloat(i),u=parseFloat(s);return isNaN(a)||isNaN(u)?!1:Math.abs(a-u)<hw}function mD(e){let t=`${e.description||""} ${e.title||""} ${e.suggestedFix||""}`.toLowerCase(),n=String(e.expected||e.suggestedValue||"").toLowerCase(),r=String(e.actual||e.currentValue||"").toLowerCase();if(!aD.some(d=>t.includes(d)||n.includes(d)))return!1;let i=`${t} ${n} ${r}`;if(i.includes("min-width")||i.includes("max-width")||i.includes("min-height")||i.includes("max-height")||i.includes("explicit")||i.includes("constraint")||i.includes("forced"))return!1;let a=n.includes("hug")||n.includes("auto"),u=/\d+\.?\d*px/.test(r);if(!a||!u)return!1;let c=n.match(/(\d+\.?\d*)px/),l=r.match(/(\d+\.?\d*)px/);return!(c&&l&&Math.abs(parseFloat(c[1])-parseFloat(l[1]))>iD)}function hD(e){let t=String(e.expected||e.suggestedValue||"").toLowerCase(),n=String(e.actual||e.currentValue||"").toLowerCase();return(!n||!t||n.includes("see ")||t.includes("see ")||n.includes("image")||t.includes("image"))&&e.type==="visual"}function Hs(e){if(e.programmaticallyVerified)return{dismissed:!1};let t=e.expected||e.suggestedValue,n=e.actual||e.currentValue;if(e.fixRequired===!1)return{dismissed:!0,dismissReason:"Auto-dismissed: FixRequired is false (no code change needed)",dismissedBy:"post-ai-validation"};if(ni(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: expected equals actual (identical values)",dismissedBy:"post-ai-validation"};if(e.fixRequired===!0)return{dismissed:!1};if(fD(e))return{dismissed:!0,dismissReason:`Auto-dismissed: text dimension variance (<${hw}px) - font rendering difference, not actionable`,dismissedBy:"post-ai-validation"};if(pD(t,n,e)){let r=e.property?.toLowerCase()||"";return{dismissed:!0,dismissReason:`Auto-dismissed: negligible difference (<${r==="width"||r==="height"||r.includes("width")||r.includes("height")?mw:fw}px)`,dismissedBy:"post-ai-validation"}}return hD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no measurable values to compare",dismissedBy:"post-ai-validation"}:dD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no fix needed",dismissedBy:"post-ai-validation"}:mD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: HUG sizing - CSS auto-sizes content without explicit dimensions",dismissedBy:"post-ai-validation"}:gD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: SVG container fill - child elements use their own fills",dismissedBy:"post-ai-validation"}:{dismissed:!1}}var fw,mw,hw,iD,sD,aD,lD,xw=U(()=>{"use strict";Bf();fw=.5,mw=2,hw=2,iD=5,sD=["values match","values already match","already correct","correctly implemented","implementation is correct","css matches","matches figma","identical","same value","no difference","none - ","no changes needed","no fix needed"],aD=["hug","auto (hug)","should be hug","fixed pixel values are being rendered","fixed values are being rendered"],lD=["duplicate","extra","missing","additional","removed","should not exist","does not exist","not in figma","not in storybook","renders 2","renders two","has 1","has one"]});function Eo(e,t,n){let r=100-n*1-t*3-e*10;return Math.max(0,Math.min(100,r))}var yw=U(()=>{"use strict"});var bw=U(()=>{"use strict"});var Sw=U(()=>{"use strict"});var Df=U(()=>{"use strict";Bf();xw();yw();bw();Sw()});var TD,ID,tK,Rf=U(()=>{"use strict";TD=["flex","inline-flex"],ID=["grid","inline-grid"],tK=[...TD,...ID]});var vw=U(()=>{"use strict";Df();Rf()});var kw=U(()=>{"use strict"});var Un=U(()=>{"use strict";Eu();Fy();Ey();Df();Rf();vw();kw()});function ED(e){let{aiPrompt:t,aiResponse:n,...r}=e;return r}function tr(e){try{let t=e.map(ED),n=JSON.stringify(t,AD);sessionStorage.setItem(zf,n)}catch(t){y.error("[SessionStorage] Failed to save review history:",t)}}function Nf(){try{let e=sessionStorage.getItem(zf);if(!e)return[];let t=JSON.parse(e,PD);return Array.isArray(t)?t:[]}catch(e){return y.error("[SessionStorage] Failed to load review history:",e),[]}}function Cw(){try{let e=Nf();if(e.length===0)return;let t=!1,n=e.map(r=>{if(r.aiPrompt!==void 0||r.aiResponse!==void 0){t=!0;let{aiPrompt:o,aiResponse:i,...s}=r;return s}return r});t&&(tr(n),y.debug("[SessionStorage] Stripped aiPrompt/aiResponse from existing review history"))}catch(e){y.error("[SessionStorage] Failed to strip sensitive fields:",e)}}function Tw(){try{sessionStorage.removeItem(zf),y.debug("[SessionStorage] Review history cleared")}catch(e){y.error("[SessionStorage] Failed to clear review history:",e)}}function AD(e,t){return t instanceof Date?{__type:"Date",value:t.toISOString()}:t}function PD(e,t){return t&&t.__type==="Date"?new Date(t.value):t}var zf,Of=U(()=>{"use strict";Ne();zf="uicopilot_review_history"});import LD,{createContext as MD,useContext as BD,useReducer as DD,useMemo as Iw,useRef as RD,useEffect as zD}from"react";function Ul(e){let t=e.length>Fw?e.slice(e.length-Fw):e,n=Math.max(0,t.length-ND);return n===0?t:t.map((r,o)=>{if(o>=n)return r;let i=r.storybookImageData?.startsWith("data:"),s=r.figmaImageData?.startsWith("data:");return!i&&!s?r:{...r,storybookImageData:i?void 0:r.storybookImageData,figmaImageData:s?void 0:r.figmaImageData}})}function OD(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"ADD_STREAMING_MESSAGE":return{...e,streamingMessages:[...e.streamingMessages,t.payload]};case"UPDATE_STREAMING_MESSAGE":return{...e,streamingMessages:e.streamingMessages.map((n,r)=>r===t.payload.index?{...n,content:t.payload.content}:n)};case"CLEAR_STREAMING_MESSAGES":return{...e,streamingMessages:[]};case"TOGGLE_MODEL":{let n=e.selectedModels.includes(t.payload);return n&&e.selectedModels.length===1?e:{...e,selectedModels:n?e.selectedModels.filter(r=>r!==t.payload):[...e.selectedModels,t.payload]}}case"SET_REVIEW_RESULTS":{if(!t.payload)return{...e,reviewResults:null,currentReviewId:null};let n=e.userRole==="admin",r={id:t.payload.id,componentId:t.payload.componentId,storyId:t.payload.storyId,modelId:t.payload.modelId,complianceScore:t.payload.complianceScore,issuesCount:t.payload.issuesCount,issues:t.payload.issues,createdAt:t.payload.createdAt,visualSimilarity:t.payload.visualSimilarity,storybookImageData:e.storybookImageUrl||void 0,figmaImageData:e.figmaImageUrl||void 0,aiPrompt:n&&e.fullPrompt||void 0,aiResponse:n&&e.fullResponse||void 0,costUsd:t.payload.costUsd,inputTokens:t.payload.inputTokens,outputTokens:t.payload.outputTokens},o=e.reviewHistory.findIndex(s=>s.id===t.payload.id),i;return o>=0?i=e.reviewHistory.map((s,a)=>a===o?r:s):i=[...e.reviewHistory,r],i=Ul(i),tr(i),{...e,reviewResults:t.payload,reviewHistory:i,currentReviewId:t.payload.id}}case"UPDATE_MULTI_MODEL_STREAMING":return e.multiModelResults?{...e,multiModelResults:{...e.multiModelResults,byModel:{...e.multiModelResults.byModel,[t.payload.modelId]:{...e.multiModelResults.byModel[t.payload.modelId],streamingMessages:t.payload.messages}}}}:{...e,multiModelResults:{byModel:{[t.payload.modelId]:{streamingMessages:t.payload.messages}},activeModelId:t.payload.modelId}};case"SET_MODEL_COMPLETED":return e.multiModelResults?{...e,multiModelResults:{...e.multiModelResults,byModel:{...e.multiModelResults.byModel,[t.payload]:{...e.multiModelResults.byModel[t.payload],completed:!0}}}}:e;case"BULK_ADD_REVIEWS":{if(t.payload.length===0)return e;let n=new Map(e.reviewHistory.map(s=>[s.id,s])),r=!1,o=e.reviewHistory.slice();for(let s of t.payload){let a=n.get(s.id);if(!a){o.push(s),r=!0;continue}let u=s.issues?.length??0,c=a.issues?.length??0;if(u>c){let l=o.indexOf(a);l!==-1&&(o[l]=s,r=!0)}}if(!r)return e;let i=Ul(o);return tr(i),{...e,reviewHistory:i}}case"ADD_REVIEW":{let n=Ul([...e.reviewHistory,t.payload]);return tr(n),{...e,reviewHistory:n,currentReviewId:t.payload.id}}case"TOGGLE_ISSUE_SELECTION":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>r.id!==e.currentReviewId?r:{...r,issues:r.issues.map(o=>o.id===t.payload?{...o,selectedForFix:!o.selectedForFix}:o)});return tr(n),{...e,reviewHistory:n}}case"UPDATE_ISSUE_STATUS":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>r.id!==e.currentReviewId?r:{...r,issues:r.issues.map(o=>o.id===t.payload.issueId?{...o,status:t.payload.status,error:t.payload.error}:o)});return tr(n),{...e,reviewHistory:n}}case"UPDATE_ISSUE_GENERATED_FIX":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>r.id!==e.currentReviewId?r:{...r,issues:r.issues.map(o=>o.id===t.payload.issueId?{...o,generatedFix:o.generatedFix?{...o.generatedFix,...t.payload.generatedFix}:t.payload.generatedFix,selectedForFix:t.payload.generatedFix?.status==="failed"?!1:o.selectedForFix}:o)});return tr(n),{...e,reviewHistory:n}}case"BATCH_UPDATE_ISSUE_GENERATED_FIXES":{if(!e.currentReviewId)return e;let n=new Map(t.payload.map(o=>[o.issueId,o.generatedFix])),r=e.reviewHistory.map(o=>o.id!==e.currentReviewId?o:{...o,issues:o.issues.map(i=>{let s=n.get(i.id);return s?{...i,generatedFix:i.generatedFix?{...i.generatedFix,...s}:s,selectedForFix:s?.status==="failed"?!1:i.selectedForFix}:i})});return tr(r),{...e,reviewHistory:r}}case"DISMISS_ISSUE":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>{if(r.id!==e.currentReviewId)return r;let o=r.issues.map(c=>c.id===t.payload.issueId?{...c,dismissed:!0,dismissReason:t.payload.reason,dismissedAt:new Date,dismissedBy:t.payload.dismissedBy}:c),i=o.filter(c=>!c.dismissed),s=i.filter(c=>c.severity==="critical").length,a=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:Eo(s,a,u),issuesCount:i.length}});return tr(n),{...e,reviewHistory:n}}case"UNDISMISS_ISSUE":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>{if(r.id!==e.currentReviewId)return r;let o=r.issues.map(c=>c.id===t.payload?{...c,dismissed:!1,dismissReason:void 0,dismissedAt:void 0}:c),i=o.filter(c=>!c.dismissed),s=i.filter(c=>c.severity==="critical").length,a=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:Eo(s,a,u),issuesCount:i.length}});return tr(n),{...e,reviewHistory:n}}case"RECALCULATE_SCORE":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>{if(r.id!==e.currentReviewId)return r;let o=r.issues.filter(c=>!c.dismissed),i=o.filter(c=>c.severity==="critical").length,s=o.filter(c=>c.severity==="major").length,a=o.filter(c=>c.severity==="minor").length,u=Eo(i,s,a);return y.debug(`[recalculateScore] Active: ${o.length}, score: ${u}`),{...r,complianceScore:u,issuesCount:o.length}});return tr(n),{...e,reviewHistory:n}}case"UPDATE_REVIEW_SCORE":{let n=e.reviewHistory.map(r=>r.id!==t.payload.reviewId?r:{...r,complianceScore:t.payload.newScore});return tr(n),{...e,reviewHistory:n}}case"CLEAR_ALL_REVIEWS":return Tw(),{...e,reviewHistory:[],currentReviewId:null};case"CLEAR_STALE_REVIEWS":return{...e,currentReviewId:null,reviewResults:null};case"RESET_REVIEW":{let n=e.isReviewing;return{...e,isReviewing:!1,reviewError:null,reviewResults:n?null:e.reviewResults,multiModelResults:null,streamingMessages:[],streamingProgress:0,streamingStatus:"",reviewDetailTab:n?"chat":e.reviewDetailTab,fullPrompt:"",fullResponse:"",figmaImageUrl:n?null:e.figmaImageUrl,storybookImageUrl:n?null:e.storybookImageUrl,currentReviewId:n?null:e.currentReviewId}}case"RESET_PROMPT":return{...e,isGenerating:!1,generatedPrompt:null,promptError:null};case"TRIGGER_SCREENSHOT_REFRESH":return{...e,screenshotRefreshKey:e.screenshotRefreshKey+1};default:return e}}function $f({children:e}){let[t,n]=DD(OD,HD),r=RD(t);zD(()=>{r.current=t},[t]);let o=Iw(()=>({setIsReviewing:s=>n({type:"SET_STATE",payload:{isReviewing:s}}),setReviewingStoryId:s=>n({type:"SET_STATE",payload:{reviewingStoryId:s}}),setReviewError:s=>n({type:"SET_STATE",payload:{reviewError:s}}),bulkAddReviews:s=>n({type:"BULK_ADD_REVIEWS",payload:s}),setReviewResults:s=>n({type:"SET_REVIEW_RESULTS",payload:s}),setMultiModelResults:s=>n({type:"SET_STATE",payload:{multiModelResults:s}}),updateMultiModelStreamingMessages:(s,a)=>n({type:"UPDATE_MULTI_MODEL_STREAMING",payload:{modelId:s,messages:a}}),setModelCompleted:s=>n({type:"SET_MODEL_COMPLETED",payload:s}),setActiveModelId:s=>{let a=r.current;a.multiModelResults&&n({type:"SET_STATE",payload:{multiModelResults:{...a.multiModelResults,activeModelId:s}}})},setShowReviewMenu:s=>n({type:"SET_STATE",payload:{showReviewMenu:s}}),setSeverityFilter:s=>n({type:"SET_STATE",payload:{severityFilter:s}}),setShowStreamingPanel:s=>n({type:"SET_STATE",payload:{showStreamingPanel:s}}),setStreamingPanelCollapsed:s=>n({type:"SET_STATE",payload:{streamingPanelCollapsed:s}}),addStreamingMessage:s=>n({type:"ADD_STREAMING_MESSAGE",payload:s}),updateStreamingMessage:(s,a)=>n({type:"UPDATE_STREAMING_MESSAGE",payload:{index:s,content:a}}),clearStreamingMessages:()=>n({type:"CLEAR_STREAMING_MESSAGES"}),setStreamingProgress:s=>n({type:"SET_STATE",payload:{streamingProgress:s}}),setStreamingStatus:s=>n({type:"SET_STATE",payload:{streamingStatus:s}}),setReviewDetailTab:s=>n({type:"SET_STATE",payload:{reviewDetailTab:s}}),setFullPrompt:s=>n({type:"SET_STATE",payload:{fullPrompt:s}}),setFullResponse:s=>n({type:"SET_STATE",payload:{fullResponse:s}}),setFigmaImageUrl:s=>n({type:"SET_STATE",payload:{figmaImageUrl:s}}),setStorybookImageUrl:s=>n({type:"SET_STATE",payload:{storybookImageUrl:s}}),setFigmaDimensions:s=>n({type:"SET_STATE",payload:{figmaDimensions:s}}),setSelectedModels:s=>n({type:"SET_STATE",payload:{selectedModels:s}}),toggleModel:s=>n({type:"TOGGLE_MODEL",payload:s}),setModelComparisonView:s=>n({type:"SET_STATE",payload:{modelComparisonView:s}}),resetReview:()=>n({type:"RESET_REVIEW"}),addReview:s=>n({type:"ADD_REVIEW",payload:s}),getCurrentReview:()=>{let s=r.current;return s.currentReviewId&&s.reviewHistory.find(a=>a.id===s.currentReviewId)||null},getReviewById:s=>r.current.reviewHistory.find(a=>a.id===s)||null,getParentReview:()=>{let s=r.current,a=s.reviewHistory.find(u=>u.id===s.currentReviewId);return a?.parentReviewId&&s.reviewHistory.find(u=>u.id===a.parentReviewId)||null},hasAppliedFixes:()=>{let s=r.current,a=s.reviewHistory.find(u=>u.id===s.currentReviewId);return!a||!Array.isArray(a.issues)||a.issues.length===0?!1:a.issues.some(u=>u.status==="applied"||u.generatedFix?.status==="applied")},toggleIssueSelection:s=>n({type:"TOGGLE_ISSUE_SELECTION",payload:s}),updateIssueStatus:(s,a,u)=>n({type:"UPDATE_ISSUE_STATUS",payload:{issueId:s,status:a,error:u}}),updateIssueGeneratedFix:(s,a)=>n({type:"UPDATE_ISSUE_GENERATED_FIX",payload:{issueId:s,generatedFix:a}}),batchUpdateIssueGeneratedFixes:s=>n({type:"BATCH_UPDATE_ISSUE_GENERATED_FIXES",payload:s}),dismissIssue:(s,a,u)=>n({type:"DISMISS_ISSUE",payload:{issueId:s,reason:a,dismissedBy:u}}),undismissIssue:s=>n({type:"UNDISMISS_ISSUE",payload:s}),recalculateScore:()=>n({type:"RECALCULATE_SCORE"}),updateReviewScore:(s,a)=>n({type:"UPDATE_REVIEW_SCORE",payload:{reviewId:s,newScore:a}}),clearAllReviews:()=>n({type:"CLEAR_ALL_REVIEWS"}),clearStaleReviewsForStory:s=>n({type:"CLEAR_STALE_REVIEWS",payload:s}),setIsApplying:s=>n({type:"SET_STATE",payload:{isApplying:s}}),setApplyFixesResult:s=>n({type:"SET_STATE",payload:{applyFixesResult:s}}),setIncludeComponentIssues:s=>n({type:"SET_STATE",payload:{includeComponentIssues:s}}),setIncludeTextComparison:s=>n({type:"SET_STATE",payload:{includeTextComparison:s}}),setUsePromptCache:s=>n({type:"SET_STATE",payload:{usePromptCache:s}}),setIsValidating:s=>n({type:"SET_STATE",payload:{isValidating:s}}),setReviewHistoryLoading:s=>n({type:"SET_STATE",payload:{reviewHistoryLoading:s}}),setValidationUsage:s=>n({type:"SET_STATE",payload:{validationUsage:s}}),setWorkspacePath:s=>n({type:"SET_STATE",payload:{workspacePath:s}}),triggerScreenshotRefresh:()=>n({type:"TRIGGER_SCREENSHOT_REFRESH"}),setHoveredIssueId:s=>n({type:"SET_STATE",payload:{hoveredIssueId:s}}),setFeatureFlags:s=>n({type:"SET_STATE",payload:{featureFlags:s}}),setUserRole:s=>n({type:"SET_STATE",payload:{userRole:s}}),setRoleOverride:s=>{try{s?localStorage.setItem("uicopilot_role_override",s):localStorage.removeItem("uicopilot_role_override")}catch{}n({type:"SET_STATE",payload:{roleOverride:s}})},setReviewAllConcurrency:s=>{let a=Math.max(1,Math.min(5,s));try{localStorage.setItem("uicopilot_review_all_concurrency",String(a))}catch{}n({type:"SET_STATE",payload:{reviewAllConcurrency:a}})},setIsGenerating:s=>n({type:"SET_STATE",payload:{isGenerating:s}}),setGeneratedPrompt:s=>n({type:"SET_STATE",payload:{generatedPrompt:s}}),setPromptError:s=>n({type:"SET_STATE",payload:{promptError:s}}),resetPrompt:()=>n({type:"RESET_PROMPT"})}),[]),i=Iw(()=>({...t,...o}),[t,o]);return LD.createElement(Ew.Provider,{value:i},e)}function ce(){let e=BD(Ew);if(!e)throw new Error("useReviewStore must be used within a ReviewProvider");return e}var Fw,ND,_D,$D,_f,UD,jD,HD,Ew,Uf=U(()=>{"use strict";Un();Of();Ne();Fw=20,ND=5;_D=()=>{if(typeof localStorage>"u")return 3;try{let e=localStorage.getItem("uicopilot_review_all_concurrency");if(e)return Math.max(1,Math.min(5,parseInt(e,10)))}catch{}return 3},$D=()=>{if(typeof localStorage>"u")return null;try{let e=localStorage.getItem("uicopilot_role_override");if(e==="admin"||e==="beta")return e}catch{}return null},_f={enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!1,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1},UD=()=>{if(typeof localStorage>"u")return _f;try{let e=localStorage.getItem("uicopilot_feature_flags");if(!e)return _f;let t=JSON.parse(e);return{enableFixGeneration:!!t.enableFixGeneration,enableFixApply:!!t.enableFixApply,enableAutoMap:!!t.enableAutoMap,enableReviewBadges:!!t.enableReviewBadges,showCosts:!!t.showCosts,enableParallelReview:!!t.enableParallelReview,enableModelSelection:!!t.enableModelSelection}}catch{}return _f},jD=()=>{if(typeof localStorage>"u")return"beta";try{let e=localStorage.getItem("uicopilot_user_role");if(e==="admin"||e==="beta")return e}catch{}return"beta"},HD={isReviewing:!1,reviewingStoryId:null,reviewError:null,reviewResults:null,multiModelResults:null,showReviewMenu:!1,severityFilter:"all",showStreamingPanel:!1,streamingPanelCollapsed:!1,streamingMessages:[],streamingProgress:0,streamingStatus:"",reviewDetailTab:"chat",fullPrompt:"",fullResponse:"",figmaImageUrl:null,storybookImageUrl:null,figmaDimensions:null,selectedModels:["claude-sonnet-4-5-20250929"],modelComparisonView:"side-by-side",reviewHistory:Ul(Nf()),currentReviewId:null,includeComponentIssues:!0,includeTextComparison:!1,usePromptCache:!1,isApplying:!1,applyFixesResult:null,screenshotRefreshKey:0,isValidating:!1,reviewHistoryLoading:!1,validationUsage:null,lastAiCallTimestamp:null,aiRateLimitSeconds:0,isGenerating:!1,generatedPrompt:null,promptError:null,workspacePath:null,userRole:jD(),roleOverride:$D(),featureFlags:UD(),reviewAllConcurrency:_D(),hoveredIssueId:null},Ew=MD(null)});import Ws,{useMemo as WD}from"react";function Hf({children:e}){return Ws.createElement(vu,null,Ws.createElement(Cu,null,Ws.createElement(Iu,null,Ws.createElement($f,null,Ws.createElement(VD,null),e))))}function Aw(e){let t=Se(),n=Qe(),r=nt(),o=ce(),i=WD(()=>({...t,...n,...r,...o}),[t,n,r,o]);return e?e(i):i}function VD(){return jf=Aw(),null}var jf,yt,Pw=U(()=>{"use strict";ku();Tu();Fu();Uf();jf=null,yt=Object.assign(Aw,{getState:()=>{if(!jf)throw new Error("Store not initialized. Make sure StoreProvider is mounted.");return jf}})});var ve=U(()=>{"use strict";Pw();ku();Tu();Fu();Uf()});function G(){return(process.env.STORYBOOK_UICOPILOT_URL||GD).replace(/\/$/,"")}var GD,Lw,Ue=U(()=>{"use strict";GD="https://app.uiparity.com";Lw=3.6});async function te(e,t,n=3e4){let r=new AbortController,o=setTimeout(()=>r.abort(),n);try{return await fetch(e,{...t,signal:r.signal})}catch(i){throw i instanceof DOMException&&i.name==="AbortError"?new Error(`Request timed out after ${n}ms: ${e}`):i}finally{clearTimeout(o)}}var ct=U(()=>{"use strict"});import{useEffect as Po,useState as Hl,useRef as qw,useCallback as Yf}from"react";import{addons as Kf}from"storybook/manager-api";async function qR(e,t,n){let r=`${e}:${t}`,o=Xf.get(r);if(o)return y.debug("[useReviewScreenshots] Reusing in-flight Figma image fetch for",r),o;let i=(async()=>{let s=await te(`${Jw}/api/figma/image?projectId=${e}&nodeId=${t}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}});return s.ok?s.json():{imageUrl:null}})().finally(()=>{Xf.delete(r)});return Xf.set(r,i),i}function YR(e,t,n){try{sessionStorage.setItem(`${Wl}${e}`,JSON.stringify({figmaNodeId:t,imageUrl:n,timestamp:Date.now()}))}catch{}}function KR(e,t){try{let n=sessionStorage.getItem(`${Wl}${e}`);if(!n)return null;let r=JSON.parse(n);if(r.figmaNodeId===t&&Date.now()-r.timestamp<1800*1e3)return r.imageUrl;sessionStorage.removeItem(`${Wl}${e}`)}catch{}return null}function XR(e){try{let t=sessionStorage.getItem(`${Wl}${e}`);if(!t)return null;let n=JSON.parse(t);if(n.imageUrl&&Date.now()-n.timestamp<300*1e3)return n.imageUrl}catch{}return null}var Yw,Kw,Xw,Qw,Oi,Jw,Tn,Qf,Xf,Wl,Zw,ev,ri,_i=U(()=>{"use strict";ve();Jf();Ne();Ue();ct();Yw="storyArgsUpdated",Kw="storyRendered",Xw="forceRemount",Qw=null,Oi=()=>Qw,Jw=G(),Tn=new Map,Qf=null,Xf=new Map;Wl="uicopilot-figma-image-";Zw=(e,t,n)=>{let r=Tn.get(e);r?(r.storybookImageUrl=t,n&&(r.figmaImageUrl=n)):Tn.set(e,{storybookImageUrl:t,figmaImageUrl:n??null}),y.debug("[useReviewScreenshots] Populated historical screenshots for story:",e)},ev=(e,t,n)=>{Qf=t;let r=Tn.get(e);r?r.figmaImageUrl=n:Tn.set(e,{storybookImageUrl:null,figmaImageUrl:n}),y.debug("[useReviewScreenshots] Pre-set Figma image for mapping:",{storyId:e,figmaNodeId:t,imageUrl:n.substring(0,50)+"..."})},ri=()=>{let[e,t]=Hl(!1),[n,r]=Hl(!1),[o,i]=Hl(!1),[s,a]=Hl(null),u=qw(null),{screenshotRefreshKey:c,triggerScreenshotRefresh:l}=ce(),d=Yf(()=>{let L=yt.getState().currentStoryId;L&&(y.debug("[useReviewScreenshots] Refreshing screenshots for story:",L),Tn.delete(L),u.current=null,i(!0),l())},[l]),g=Yf(()=>{let L=yt.getState().currentStoryId;if(L){y.debug("[useReviewScreenshots] Refreshing Storybook screenshot only for story:",L);let N=Tn.get(L);N&&(N.storybookImageUrl=null),u.current=null,i(!0),l()}},[l]),{sessionToken:p}=Se(),{selectedProjectId:m}=Qe(),{currentStoryId:b,currentMapping:F,loadingMapping:E}=nt(),{setStorybookImageUrl:v,setFigmaImageUrl:D}=ce(),O=qw(null);Po(()=>{b&&O.current&&O.current!==b&&(y.debug("[useReviewScreenshots] Story switched, clearing images"),v(""),D("")),O.current=b},[b,v,D]),Po(()=>{!b||E||F||D("")},[b,F,E,D]),Po(()=>{if(!b)return;let L=XR(b);L&&(y.debug("[useReviewScreenshots] Quick-restored Figma image for:",b),D(L))},[b,D]),Po(()=>{if(!b||E)return;let L=F?.figmaFileUrl;if(L){y.debug("[useReviewScreenshots] Restoring Figma image from mapping.figmaFileUrl for:",b),D(L);let N=Tn.get(b);N?N.figmaImageUrl=L:Tn.set(b,{storybookImageUrl:null,figmaImageUrl:L})}},[b,F,E,D]),Po(()=>{let L=!1;return(async()=>{if(!p||!m||!b){y.debug("[useReviewScreenshots] Missing required context, skipping auto-load");return}u.current&&u.current!==b&&(y.debug("[useReviewScreenshots] Story changed, clearing stale screenshots"),v(""),D(""));let x=yt.getState();if(u.current===b&&x.storybookImageUrl&&x.figmaImageUrl){y.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping capture");return}let S=F?.figmaNodeId??null;if(S!==Qf){y.debug("[useReviewScreenshots] Figma mapping changed, invalidating Figma image only for story:",b);let A=Tn.get(b);A&&(A.figmaImageUrl=null),Qf=S,u.current=null}let w=F?.figmaNodeId;if(w&&!Tn.get(b)?.figmaImageUrl){let A=KR(b,w);if(A){y.debug("[useReviewScreenshots] Hydrated Figma image from sessionStorage for story:",b),D(A);let M=Tn.get(b);M?M.figmaImageUrl=A:Tn.set(b,{storybookImageUrl:null,figmaImageUrl:A})}}let P=Tn.get(b),f=P&&P.storybookImageUrl&&P.figmaImageUrl,k=P&&P.storybookImageUrl&&!P.figmaImageUrl,T=P&&!P.storybookImageUrl&&P.figmaImageUrl;if(f){y.debug("[useReviewScreenshots] Using fully cached screenshots for story:",b),v(P.storybookImageUrl),D(P.figmaImageUrl),u.current=b;return}let h=k&&F?.figmaNodeId;h&&(y.debug("[useReviewScreenshots] Using cached Storybook, fetching new Figma for story:",b),v(P.storybookImageUrl));let I=T;if(I&&(y.debug("[useReviewScreenshots] Using cached Figma, recapturing Storybook for story:",b),D(P.figmaImageUrl)),u.current===b&&F?.figmaNodeId){y.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping");return}try{if(a(null),h?r(!0):(I||(t(!0),r(!0)),i(!0)),u.current=b,L)return;let A=I?P.figmaImageUrl:null,M;if(I)y.debug("[useReviewScreenshots] Figma cached (storybookOnlyRefresh), skipping fetch"),r(!1);else if(w){y.debug("[useReviewScreenshots] Found Figma node ID from mapping:",w);let C=null;try{y.debug("[useReviewScreenshots] Fetching Figma image (with caching)...");let R=await qR(m,w,p);C=R.imageUrl||null;let W=R.cached?"(cached)":"(fresh)";y.debug(`[useReviewScreenshots] Figma image fetched ${W}:`,C?"success":"not found")}catch(R){y.warn("[useReviewScreenshots] Failed to fetch Figma image:",R)}if(C)try{y.debug("[useReviewScreenshots] Fetching Figma image via proxy...");let R=`${Jw}/api/proxy/image?url=${encodeURIComponent(C)}`,W=await te(R);if(W.ok){let B=await W.blob(),ie=new FileReader,Y=await new Promise((me,Fe)=>{ie.onloadend=()=>me(ie.result),ie.onerror=Fe,ie.readAsDataURL(B)});A=Y,D(Y),y.debug("[useReviewScreenshots] Figma image loaded via proxy");let se=new Image;await new Promise(me=>{se.onload=()=>{M={width:se.naturalWidth,height:se.naturalHeight},y.debug("[useReviewScreenshots] Figma dimensions:",M),me()},se.onerror=()=>me(),se.src=Y})}else A=C,D(C),y.warn("[useReviewScreenshots] Proxy failed, using direct URL as fallback")}catch(R){y.warn("[useReviewScreenshots] Proxy error, using direct URL as fallback:",R),A=C,D(C)}else y.warn("[useReviewScreenshots] No thumbnail found for node:",w),D(null);A&&w&&YR(b,w,A),r(!1)}else y.debug("[useReviewScreenshots] No Figma mapping exists for this component"),D(null),r(!1);let z=P?.storybookImageUrl||null;if(z)y.debug("[useReviewScreenshots] Using cached Storybook screenshot"),i(!1);else{y.debug("[useReviewScreenshots] Capturing Storybook screenshot for story:",b);let C=await Vl({storyId:b,sessionToken:p||void 0,...M&&{figmaWidth:M.width,figmaHeight:M.height}});C&&!L?(z=C,v(C),y.debug("[useReviewScreenshots] Storybook screenshot captured at dimensions:",M||"natural")):y.warn("[useReviewScreenshots] Failed to capture Storybook screenshot"),i(!1)}Tn.set(b,{storybookImageUrl:z,figmaImageUrl:A}),y.debug("[useReviewScreenshots] Screenshots cached for story:",b)}catch(A){y.error("[useReviewScreenshots] Error loading screenshots:",A),a(A instanceof Error?A.message:"Failed to load screenshots"),u.current=null,r(!1),i(!1)}finally{t(!1)}})(),()=>{L=!0}},[p,m,b,F?.figmaNodeId,c]),Po(()=>{let L=Kf.getChannel(),N=null,x=S=>{Qw=S.args,y.debug("[useReviewScreenshots] Args updated for story:",S.storyId,"args:",S.args),N&&clearTimeout(N),N=setTimeout(()=>{y.debug("[useReviewScreenshots] Story args changed, refreshing screenshot"),d()},500)};return L.on(Yw,x),()=>{L.off(Yw,x),N&&clearTimeout(N)}},[d]),Po(()=>{let L=Kf.getChannel(),N=!1,x=null,S=()=>{y.debug("[useReviewScreenshots] FORCE_REMOUNT detected, showing Storybook loader"),N=!0,i(!0)},w=()=>{N&&(y.debug("[useReviewScreenshots] STORY_RENDERED after remount, waiting for styles to settle..."),x&&clearTimeout(x),x=setTimeout(()=>{N=!1,y.debug("[useReviewScreenshots] Refreshing Storybook screenshot after HMR (preserving Figma)"),g()},500))};return L.on(Xw,S),L.on(Kw,w),()=>{L.off(Xw,S),L.off(Kw,w),x&&clearTimeout(x)}},[g]),Po(()=>{let L=Kf.getChannel(),N=async x=>{if(!x?.snapshot?.html){y.debug("[useReviewScreenshots] DOM mutated but no snapshot available");return}y.debug("[useReviewScreenshots] DOM mutated, capturing snapshot screenshot"),i(!0);try{let S=yt.getState().currentStoryId,w=await fetch("/__uicopilot/screenshot-snapshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...x.snapshot,storyId:S})});if(w.ok){let P=await w.json();if(P.screenshot){v(P.screenshot);let f=yt.getState().currentStoryId;if(f){let k=Tn.get(f);k?k.storybookImageUrl=P.screenshot:Tn.set(f,{storybookImageUrl:P.screenshot,figmaImageUrl:null})}}}else y.error("[useReviewScreenshots] Snapshot screenshot failed:",await w.text())}catch(S){y.error("[useReviewScreenshots] Snapshot screenshot error:",S)}finally{i(!1)}};return L.on("UICOPILOT/STORY_DOM_MUTATED",N),()=>{L.off("UICOPILOT/STORY_DOM_MUTATED",N)}},[]);let $=Yf((L,N,x)=>{y.debug("[useReviewScreenshots] setFigmaImageDirect called - bypassing load"),ev(L,N,x),D(x),r(!1),u.current=L},[D]);return{isLoadingScreenshots:e,isLoadingFigma:n,isLoadingStorybook:o,screenshotError:s,refreshScreenshots:d,refreshStorybookOnly:g,setFigmaImageDirect:$}}});function JR(){return!G().startsWith("http://localhost")}function ZR(e,t,n){let r=t.createElement("div");r.style.color=e,t.body.appendChild(r);let o=n.getComputedStyle(r).color;return r.remove(),o}function tv(e,t,n){let r=new Map;return e.replace(/(?:color|oklch|oklab|lab|lch)\([^)]+\)/g,o=>{if(r.has(o))return r.get(o);let i=ZR(o,t,n);return r.set(o,i),i})}async function ez(){let e=(await import("html2canvas")).default,t=document.getElementById("storybook-preview-iframe");if(!t?.contentDocument||!t.contentWindow)throw new Error("Storybook iframe not accessible");let n=t.contentDocument.querySelector("#storybook-root > *")||t.contentDocument.querySelector("#root > *");if(!n)throw new Error("Story element not found in iframe");let r=t.contentWindow,o=t.contentDocument;return(await e(n,{useCORS:!0,logging:!1,backgroundColor:null,onclone:s=>{s.querySelectorAll("style").forEach(u=>{let c=u.textContent||"";/(?:color|oklch|oklab|lab|lch)\(/.test(c)&&(u.textContent=tv(c,o,r))});let a=Array.from(o.styleSheets);s.querySelectorAll('link[rel="stylesheet"]').forEach(u=>{let c=u.href,l=a.find(d=>d.href===c);if(l)try{let d="";for(let g of Array.from(l.cssRules))d+=g.cssText+`
13
- `;if(/(?:color|oklch|oklab|lab|lch)\(/.test(d)){let g=s.createElement("style");g.textContent=tv(d,o,r),u.replaceWith(g)}}catch{}})}})).toDataURL("image/png")}function tz(e){let t=[];for(let[n,r]of Object.entries(e)){if(r===void 0)continue;let o;typeof r=="boolean"?o=`!${r}`:typeof r=="number"?o=String(r):typeof r=="string"?o=encodeURIComponent(r).replace(/%20/g,"+"):o=encodeURIComponent(JSON.stringify(r)),t.push(`${n}:${o}`)}return t.join(";")}async function nz(e,t){y.debug("[Screenshot] Using server-side Chrome capture for:",e);let n={"Content-Type":"application/json"};t?.sessionToken&&(n.Authorization=`Bearer ${t.sessionToken}`);let r=await te(`${QR}/api/screenshot`,{method:"POST",headers:n,body:JSON.stringify({url:e,selector:t?.selector,width:t?.width,height:t?.height,scale:t?.scale||1,figmaWidth:t?.figmaWidth,figmaHeight:t?.figmaHeight})});if(!r.ok){let i=await r.json().catch(()=>({error:"Unknown error"}));throw new Error(i.error||`Screenshot failed: ${r.status}`)}return(await r.json()).screenshot}function rz(e){let t={};if(!e)return t;let n=e.split(";");for(let r of n){let o=r.indexOf(":");if(o===-1)continue;let i=r.slice(0,o),s=r.slice(o+1);typeof s=="string"&&(s==="!true"?s=!0:s==="!false"?s=!1:!isNaN(Number(s))&&s!==""?s=Number(s):s=decodeURIComponent(s.replace(/\+/g," "))),t[i]=s}return t}function oz(e){let t=new URLSearchParams(window.location.search),n=e;if(n||(n=(t.get("path")||"").replace("/story/","").replace("/docs/",""),y.debug("[Screenshot] Warning: Using story ID from URL (fallback):",n)),!n)throw new Error("Could not determine current story ID. Please select a story first.");let r=window.location.origin,o=Date.now(),i=`${r}/iframe.html?viewMode=story&id=${n}&globals=&_cb=${o}`,s=Oi();if(!s||Object.keys(s).length===0){let a=t.get("args");a&&(s=rz(a),y.debug("[Screenshot] Parsed args from URL:",s))}if(s&&Object.keys(s).length>0){let a=tz(s);i+=`&args=${a}`,y.debug("[Screenshot] Using URL with current args:",i)}else y.debug("[Screenshot] No current args, using default URL:",i);return i}async function iz(e){try{let t=await fetch(`/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`);if(t.status===501)return y.info("[Screenshot] Local Puppeteer not available, falling back"),null;if(!t.ok){let r=await t.json().catch(()=>({error:"Unknown"}));throw new Error(r.error||`Screenshot failed: ${t.status}`)}let n=await t.json();return y.info("[Screenshot] Captured via local Puppeteer (pixel-perfect)"),n.screenshot}catch(t){if(t instanceof TypeError&&t.message.includes("fetch"))return null;throw t}}async function Vl(e){let t=e?.storyId||sz();if(t){let n=Zf.get(t);if(n)return y.debug("[Screenshot] Reusing in-flight capture for",t),n;let r=nv(t,e).finally(()=>{Zf.delete(t)});return Zf.set(t,r),r}return nv(void 0,e)}async function nv(e,t){try{if(e){let n=await iz(e);if(n)return n}if(!JR()){let n=oz(t?.storyId);return await nz(n,{...t,selector:"#storybook-root > *"})}return y.info("[Screenshot] Using client-side capture (html2canvas fallback)"),await ez()}catch(n){throw y.error("Error capturing screenshot:",n),new Error(`Failed to capture screenshot: ${n instanceof Error?n.message:"Unknown error"}`)}}function sz(){return(new URLSearchParams(window.location.search).get("path")||"").replace("/story/","").replace("/docs/","")||void 0}var QR,Zf,Jf=U(()=>{"use strict";Ue();_i();Ne();ct();QR=G();Zf=new Map});function Ln(e){if(e==="transparent"||e==="rgba(0, 0, 0, 0)")return"transparent";let t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(!t)return e;let[,n,r,o,i]=t,s=i?parseFloat(i):1;return s<1?`rgba(${n}, ${r}, ${o}, ${s})`:`#${[n,r,o].map(u=>parseInt(u).toString(16).padStart(2,"0")).join("")}`}function jn(e,t){let r={backgroundColor:["transparent","rgba(0, 0, 0, 0)"],border:["none","0px none","0px none rgb(0, 0, 0)"],borderRadius:["0px"],boxShadow:["none"],opacity:["1"],gap:["normal","0px"],flexDirection:["row"],justifyContent:["normal","flex-start"],alignItems:["normal","stretch"],textAlign:["start","left"],letterSpacing:["normal","0px"],margin:["0px","0px 0px 0px 0px"],padding:["0px","0px 0px 0px 0px"]}[e];return r?r.includes(t):!1}function Ks(e){return e.split(",").map(n=>n.trim().replace(/['"]/g,""))[0]||e}function rv(e){let t=e.ownerDocument,r=(t.defaultView||window).getComputedStyle(e);if("fonts"in t){let F=r.fontSize||"16px",E=r.fontWeight||"400";if(r.fontFamily.includes("Roboto")){let v=t.fonts.check(`${E} ${F} Roboto`);if(y.debug("[computedStyles] Roboto check:",{cssFamily:r.fontFamily,robotoLoaded:v,fontWeight:E,fontSize:F,isIframe:t!==document,fontStatus:Array.from(t.fonts).map(D=>({family:D.family,status:D.status}))}),v)return"Roboto"}}let o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",s=t.createElement("canvas").getContext("2d");if(!s)return"unknown";let a=r.fontSize,u=r.fontWeight,c=r.fontStyle,l=r.fontFamily.split(",").map(F=>F.trim().replace(/['"]/g,"")),d=["Arial","Helvetica","Helvetica Neue","Times New Roman","Georgia","Courier New","Verdana","Tahoma","Trebuchet MS","sans-serif","serif","monospace"],g=[...new Set([...l,...d])];s.font=`${c} ${u} ${a} monospace`;let p=s.measureText(o).width,m="unknown",b=new Map;for(let F of g){s.font=`${c} ${u} ${a} "${F}", monospace`;let E=s.measureText(o).width;if(b.set(F,E),E!==p){s.font=`${c} ${u} ${a} "${F}"`;let v=s.measureText(o).width;s.font=`${c} ${u} ${a} ${r.fontFamily}`;let D=s.measureText(o).width;if(Math.abs(v-D)<.1){m=F;break}}}return y.debug("[computedStyles] Font detection:",{declared:r.fontFamily,detected:m,declaredFonts:l,fontWidths:Array.from(b.entries()),isIframe:t!==document}),m}var Xs=U(()=>{"use strict";Ne()});function $i(e,t){if(!t)return e;let n=t.split(" ").filter(i=>i.trim()),r=n.find(i=>!i.includes("--")),o=n.filter(i=>i.includes("--"));return r&&o.length>0?`${e}.${r}.${o[0]}`:r?`${e}.${r}`:n[0]?`${e}.${n[0]}`:e}function em(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e);return y.debug("[computedStyles] Extracting styles:",{fontFamily:n.fontFamily,fontWeight:n.fontWeight,borderRadius:n.borderRadius,backgroundColor:n.backgroundColor,padding:{top:n.paddingTop,right:n.paddingRight,bottom:n.paddingBottom,left:n.paddingLeft},isIframeContext:e.ownerDocument!==document}),{color:Ln(n.color),backgroundColor:Ln(n.backgroundColor),borderColor:Ln(n.borderColor),padding:{top:n.paddingTop,right:n.paddingRight,bottom:n.paddingBottom,left:n.paddingLeft},margin:{top:n.marginTop,right:n.marginRight,bottom:n.marginBottom,left:n.marginLeft},gap:n.gap,fontFamily:n.fontFamily,renderedFont:rv(e),fontSize:n.fontSize,fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,textAlign:n.textAlign,textTransform:n.textTransform,width:n.width,height:n.height,minWidth:n.minWidth,minHeight:n.minHeight,maxWidth:n.maxWidth,maxHeight:n.maxHeight,borderWidth:n.borderWidth,borderStyle:n.borderStyle,borderRadius:n.borderRadius,boxShadow:n.boxShadow,textShadow:n.textShadow,display:n.display,flexDirection:n.display==="flex"?n.flexDirection:void 0,justifyContent:n.display==="flex"?n.justifyContent:void 0,alignItems:n.display==="flex"?n.alignItems:void 0,position:n.position,opacity:n.opacity,cursor:n.cursor}}function tm(e,t){let n={width:null,height:null,minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,display:null,flexGrow:null,flexShrink:null,flexBasis:null};try{let r=Array.from(t.styleSheets);for(let i of r)try{let s=i.cssRules||i.rules;if(!s)continue;for(let a of Array.from(s))if(a.type===1){let u=a;try{if(e.matches(u.selectorText)){let c=u.style;c.width&&(n.width=c.width),c.height&&(n.height=c.height),c.minWidth&&(n.minWidth=c.minWidth),c.minHeight&&(n.minHeight=c.minHeight),c.maxWidth&&(n.maxWidth=c.maxWidth),c.maxHeight&&(n.maxHeight=c.maxHeight),c.display&&(n.display=c.display),c.flexGrow&&(n.flexGrow=c.flexGrow),c.flexShrink&&(n.flexShrink=c.flexShrink),c.flexBasis&&(n.flexBasis=c.flexBasis)}}catch{continue}}}catch{continue}let o=e.style;o.width&&(n.width=o.width),o.height&&(n.height=o.height),o.minWidth&&(n.minWidth=o.minWidth),o.minHeight&&(n.minHeight=o.minHeight),o.maxWidth&&(n.maxWidth=o.maxWidth),o.maxHeight&&(n.maxHeight=o.maxHeight),o.display&&(n.display=o.display),o.flexGrow&&(n.flexGrow=o.flexGrow),o.flexShrink&&(n.flexShrink=o.flexShrink),o.flexBasis&&(n.flexBasis=o.flexBasis)}catch(r){y.error("Error extracting declared styles:",r)}return n}var Gl=U(()=>{"use strict";Ne();Xs()});function az(e){let t=[],n=new Set,r=ov.join(", "),o=e.querySelectorAll(r);for(let i of Array.from(o)){let s=`${i.tagName.toLowerCase()}.${i.className}`;n.has(s)||(n.add(s),t.push(i))}if(ov.includes(e.tagName.toLowerCase())){let i=`${e.tagName.toLowerCase()}.${e.className}`;n.has(i)||t.unshift(e)}return t}function lz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r=e.tagName.toLowerCase(),o=e.className,i=typeof o=="string"?o:o?.baseVal||"";return{selector:$i(r,i),tagName:r,className:i,styles:{fontSize:n.fontSize,fontFamily:Ks(n.fontFamily),fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,color:Ln(n.color),textAlign:n.textAlign,textTransform:n.textTransform}}}function cz(e,t=2){let n=[e],r=new Set,o=s=>{let a=s.className;return typeof a=="string"?a:a?.baseVal||""};r.add(`${e.tagName}.${o(e)}`);function i(s,a){if(a>=t)return;let u=Array.from(s.children);for(let c of u){let l=c.tagName.toLowerCase();if(["script","style","link","meta","br","hr"].includes(l))continue;let d=`${c.tagName}.${o(c)}`;r.has(d)||(r.add(d),n.push(c),i(c,a+1))}}return i(e,0),n}function uz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r=e.tagName.toLowerCase(),o=e.className,i=typeof o=="string"?o:o?.baseVal||"",s=n.borderWidth!=="0px",a=n.backgroundColor!=="transparent"&&n.backgroundColor!=="rgba(0, 0, 0, 0)",u=n.borderRadius!=="0px",c=n.gap!=="normal"&&n.gap!=="0px";if(!s&&!a&&!u&&!c)return null;let l=n.borderWidth,d=n.borderStyle,g=Ln(n.borderColor),p=s?`${l} ${d} ${g}`:"none";return{selector:$i(r,i),className:i,border:p,borderRadius:n.borderRadius,backgroundColor:Ln(n.backgroundColor),gap:n.gap}}function Qs(){y.debug("[computedStyles] extractStoryStyles called - FULL CONTEXT VERSION");try{let e=document.getElementById("storybook-preview-iframe");if(!e||!e.contentDocument)throw new Error("Storybook preview iframe not found");let t=e.contentDocument,n=t.getElementById("storybook-root");if(!n)throw new Error("Story root element not found");let r=n.firstElementChild;if(!r)throw new Error("Component element not found in story root");let o=cz(r,2),i=o.map(uz).filter(a=>a!==null);y.debug("[computedStyles] Extracted visual styles from nested elements:",{total:o.length,withVisuals:i.length,elements:i.map(a=>({selector:a.selector,border:a.border,background:a.backgroundColor,borderRadius:a.borderRadius}))});let s=[];try{let a=az(r);s=a.map(lz),y.debug("[computedStyles] Text elements found:",{count:a.length,elements:s.map(u=>({selector:u.selector,fontSize:u.styles.fontSize,fontWeight:u.styles.fontWeight}))})}catch(a){y.error("[computedStyles] Error extracting text elements:",a)}return{computed:em(r),declared:tm(r,t),markup:r.outerHTML,textElementStyles:s,nestedElementStyles:i}}catch(e){return y.error("Error extracting computed styles:",e),null}}var ov,iv=U(()=>{"use strict";Ne();Xs();Gl();ov=["input","textarea","button","select","label","span","a","p","h1","h2","h3","h4","h5","h6"]});function nm(e,t,n,r){return e===t&&t===n&&n===r?e:e===n&&t===r?`${e} ${t}`:t===r?`${e} ${t} ${n}`:`${e} ${t} ${n} ${r}`}function dz(e,t,n){if(!(e==="0px"||t==="none"))return`${e} ${t} ${n}`}function gz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r={},o=Ln(n.backgroundColor);jn("backgroundColor",o)||(r.backgroundColor=o);let i=dz(n.borderWidth,n.borderStyle,Ln(n.borderColor));i&&(r.border=i),jn("borderRadius",n.borderRadius)||(r.borderRadius=n.borderRadius),jn("boxShadow",n.boxShadow)||(r.boxShadow=n.boxShadow),jn("opacity",n.opacity)||(r.opacity=n.opacity);let s=e.tagName.toLowerCase(),a=["svg","circle","rect","ellipse","line","polyline","polygon","path","text","tspan","g","use","defs","clipPath","mask"];if(e instanceof SVGElement||a.includes(s)){for(let F=0;F<e.attributes.length;F++){let E=e.attributes[F];if(["class","style","id","xmlns","xmlns:xlink"].includes(E.name))continue;let v=E.name.replace(/-([a-z])/g,(O,$)=>$.toUpperCase()),D=E.value.startsWith("rgb")?Ln(E.value):E.value;v==="d"&&D.length>100?r[v]=D.substring(0,100)+"...":r[v]=D}let p=n.getPropertyValue("fill"),m=n.getPropertyValue("stroke");if(p&&p!=="none"&&(r.fill=p.startsWith("rgb")?Ln(p):p),m&&m!=="none"&&(r.stroke=m.startsWith("rgb")?Ln(m):m),["circle","ellipse","rect","path","line","polyline","polygon"].includes(s)){let F=e.getBoundingClientRect();F.width>0&&(r.width=`${Math.round(F.width*100)/100}px`),F.height>0&&(r.height=`${Math.round(F.height*100)/100}px`)}}let c=e.textContent&&e.textContent.trim().length>0,l=pz.includes(e.tagName.toLowerCase());(c||l)&&(r.fontSize=n.fontSize,r.fontFamily=Ks(n.fontFamily),r.fontWeight=n.fontWeight,r.lineHeight=n.lineHeight,r.color=Ln(n.color),jn("letterSpacing",n.letterSpacing)||(r.letterSpacing=n.letterSpacing),jn("textAlign",n.textAlign)||(r.textAlign=n.textAlign)),r.display=n.display;let d=nm(n.paddingTop,n.paddingRight,n.paddingBottom,n.paddingLeft);jn("padding",d)||(r.padding=d);let g=nm(n.marginTop,n.marginRight,n.marginBottom,n.marginLeft);return jn("margin",g)||(r.margin=g),jn("gap",n.gap)||(r.gap=n.gap),(n.display==="flex"||n.display==="inline-flex")&&(jn("flexDirection",n.flexDirection)||(r.flexDirection=n.flexDirection),jn("justifyContent",n.justifyContent)||(r.justifyContent=n.justifyContent),jn("alignItems",n.alignItems)||(r.alignItems=n.alignItems)),r.width||(r.width=n.width),r.height||(r.height=n.height),r}function sv(e){let t=1;for(let n of e.children)t+=sv(n);return t}function av(e,t=4){function n(o,i){let s=o.tagName.toLowerCase(),a=o.className,u=typeof a=="string"?a:a?.baseVal||"",c=o.id||void 0,l=o.getAttribute("role")||void 0,d;for(let b of Array.from(o.childNodes))if(b.nodeType===Node.TEXT_NODE){let F=b.textContent?.trim();if(F){d=F.length>50?F.substring(0,50)+"...":F;break}}let g=s;c?g=`${s}#${c}`:u&&(g=$i(s,u));let p=gz(o),m=[];if(i<t){let b=Array.from(o.children);for(let F of b){let E=F.tagName.toLowerCase();if(["script","style","link","meta","br","hr","noscript"].includes(E))continue;let D=(F.ownerDocument.defaultView||window).getComputedStyle(F);D.display==="none"||D.visibility==="hidden"||m.push(n(F,i+1))}}return{selector:g,tagName:s,className:u,id:c,role:l,textContent:d,styles:p,children:m}}y.debug("[computedStyles] Extracting DOM tree with maxDepth:",t);let r=n(e,0);return y.debug("[computedStyles] DOM tree extracted:",{rootSelector:r.selector,childrenCount:r.children.length,totalNodes:sv(r)}),r}function rm(e=4){y.debug("[extractStoryDOMTree] Starting DOM tree extraction...");try{let t=document.getElementById("storybook-preview-iframe");if(y.debug("[extractStoryDOMTree] iframe found:",!!t),!t)throw new Error("Storybook preview iframe not found");if(y.debug("[extractStoryDOMTree] iframe.contentDocument:",!!t.contentDocument),!t.contentDocument)throw new Error("iframe.contentDocument is not accessible (possible cross-origin issue)");let n=t.contentDocument.getElementById("storybook-root");if(y.debug("[extractStoryDOMTree] storyRoot found:",!!n),!n)throw new Error("Story root element not found");let r=n.firstElementChild;if(y.debug("[extractStoryDOMTree] componentElement found:",!!r,r?.tagName),!r)throw new Error("Component element not found in story root");let o=av(r,e);return y.debug("[extractStoryDOMTree] DOM tree extracted successfully:",{selector:o.selector,childrenCount:o.children.length}),o}catch(t){return y.error("[extractStoryDOMTree] Error extracting DOM tree:",t),null}}var pz,lv=U(()=>{"use strict";Ne();Xs();Gl();pz=["input","textarea","button","select","label","span","a","p","h1","h2","h3","h4","h5","h6"]});var om=U(()=>{"use strict";Xs();Gl();iv();lv()});var Dv=sr((HQ,Bv)=>{"use strict";Bv.exports={compareTwoStrings:Mv,findBestMatch:Oz};function Mv(e,t){if(e=e.replace(/\s+/g,""),t=t.replace(/\s+/g,""),e===t)return 1;if(e.length<2||t.length<2)return 0;let n=new Map;for(let o=0;o<e.length-1;o++){let i=e.substring(o,o+2),s=n.has(i)?n.get(i)+1:1;n.set(i,s)}let r=0;for(let o=0;o<t.length-1;o++){let i=t.substring(o,o+2),s=n.has(i)?n.get(i):0;s>0&&(n.set(i,s-1),r++)}return 2*r/(e.length+t.length-2)}function Oz(e,t){if(!_z(e,t))throw new Error("Bad arguments: First argument should be a string, second should be an array of strings");let n=[],r=0;for(let i=0;i<t.length;i++){let s=t[i],a=Mv(e,s);n.push({target:s,rating:a}),a>n[r].rating&&(r=i)}let o=n[r];return{ratings:n,bestMatch:o,bestMatchIndex:r}}function _z(e,t){return!(typeof e!="string"||!Array.isArray(t)||!t.length||t.find(function(n){return typeof n!="string"}))}});var M1=sr((iae,L1)=>{"use strict";var F1=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,K5=/\n/g,X5=/^\s*/,Q5=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,J5=/^:\s*/,Z5=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,e3=/^[;\s]*/,t3=/^\s+|\s+$/g,n3=`
14
- `,E1="/",A1="*",ui="",r3="comment",o3="declaration";function i3(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function o(m){var b=m.match(K5);b&&(n+=b.length);var F=m.lastIndexOf(n3);r=~F?m.length-F:r+m.length}function i(){var m={line:n,column:r};return function(b){return b.position=new s(m),c(),b}}function s(m){this.start=m,this.end={line:n,column:r},this.source=t.source}s.prototype.content=e;function a(m){var b=new Error(t.source+":"+n+":"+r+": "+m);if(b.reason=m,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function u(m){var b=m.exec(e);if(b){var F=b[0];return o(F),e=e.slice(F.length),b}}function c(){u(X5)}function l(m){var b;for(m=m||[];b=d();)b!==!1&&m.push(b);return m}function d(){var m=i();if(!(E1!=e.charAt(0)||A1!=e.charAt(1))){for(var b=2;ui!=e.charAt(b)&&(A1!=e.charAt(b)||E1!=e.charAt(b+1));)++b;if(b+=2,ui===e.charAt(b-1))return a("End of comment missing");var F=e.slice(2,b-2);return r+=2,o(F),e=e.slice(b),r+=2,m({type:r3,comment:F})}}function g(){var m=i(),b=u(Q5);if(b){if(d(),!u(J5))return a("property missing ':'");var F=u(Z5),E=m({type:o3,property:P1(b[0].replace(F1,ui)),value:F?P1(F[0].replace(F1,ui)):ui});return u(e3),E}}function p(){var m=[];l(m);for(var b;b=g();)b!==!1&&(m.push(b),l(m));return m}return c(),p()}function P1(e){return e?e.replace(t3,ui):ui}L1.exports=i3});var B1=sr(ha=>{"use strict";var s3=ha&&ha.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ha,"__esModule",{value:!0});ha.default=l3;var a3=s3(M1());function l3(e,t){let n=null;if(!e||typeof e!="string")return n;let r=(0,a3.default)(e),o=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;let{property:s,value:a}=i;o?t(s,a,i):a&&(n=n||{},n[s]=a)}),n}});var R1=sr(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.camelCase=void 0;var c3=/^--[a-zA-Z0-9_-]+$/,u3=/-([a-z])/g,p3=/^[^-]+$/,d3=/^-(webkit|moz|ms|o|khtml)-/,g3=/^-(ms)-/,f3=function(e){return!e||p3.test(e)||c3.test(e)},m3=function(e,t){return t.toUpperCase()},D1=function(e,t){return"".concat(t,"-")},h3=function(e,t){return t===void 0&&(t={}),f3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(g3,D1):e=e.replace(d3,D1),e.replace(u3,m3))};Pc.camelCase=h3});var N1=sr((Nh,z1)=>{"use strict";var x3=Nh&&Nh.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},y3=x3(B1()),b3=R1();function zh(e,t){var n={};return!e||typeof e!="string"||(0,y3.default)(e,function(r,o){r&&o&&(n[(0,b3.camelCase)(r,t)]=o)}),n}zh.default=zh;z1.exports=zh});var uI=sr((Dde,cI)=>{"use strict";var Zc=Object.prototype.hasOwnProperty,lI=Object.prototype.toString,nI=Object.defineProperty,rI=Object.getOwnPropertyDescriptor,oI=function(t){return typeof Array.isArray=="function"?Array.isArray(t):lI.call(t)==="[object Array]"},iI=function(t){if(!t||lI.call(t)!=="[object Object]")return!1;var n=Zc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Zc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var o;for(o in t);return typeof o>"u"||Zc.call(t,o)},sI=function(t,n){nI&&n.name==="__proto__"?nI(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},aI=function(t,n){if(n==="__proto__")if(Zc.call(t,n)){if(rI)return rI(t,n).value}else return;return t[n]};cI.exports=function e(){var t,n,r,o,i,s,a=arguments[0],u=1,c=arguments.length,l=!1;for(typeof a=="boolean"&&(l=a,a=arguments[1]||{},u=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});u<c;++u)if(t=arguments[u],t!=null)for(n in t)r=aI(a,n),o=aI(t,n),a!==o&&(l&&o&&(iI(o)||(i=oI(o)))?(i?(i=!1,s=r&&oI(r)?r:[]):s=r&&iI(r)?r:{},sI(a,{name:n,newValue:e(l,s,o)})):typeof o<"u"&&sI(a,{name:n,newValue:o}));return a}});import Ha from"react";import{addons as fu,types as ay,experimental_getStatusStore as ly}from"storybook/manager-api";import{AddonPanel as XV}from"storybook/internal/components";import Ot,{useState as mV,useEffect as hV}from"react";import{styled as br}from"storybook/theming";import xy from"react";import{styled as zt}from"storybook/theming";var ae="#ea580c",yu="#c2410c",qa="#ff6b35";var py=zt.div(({theme:e})=>({fontFamily:e.typography.fonts.base,height:"100%",display:"flex",flexDirection:"column",backgroundColor:e.background.content,color:e.color.defaultText})),dy=zt.div({flex:1,overflow:"auto",padding:"6px 20px 20px"}),bo=zt.div({marginBottom:"20px"}),So=zt.label(({theme:e})=>({display:"block",marginBottom:`${e.layoutMargin*.6}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),ms=zt.input(({theme:e})=>({width:"100%",padding:`${e.layoutMargin*.8}px ${e.layoutMargin}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.input.background,color:e.color.defaultText,"&:focus":{outline:"none",borderColor:e.color.secondary,boxShadow:`0 0 0 2px ${e.color.secondary}20`}})),wn=zt.select(({theme:e})=>({width:"100%",padding:`${e.layoutMargin*.8}px 32px ${e.layoutMargin*.8}px ${e.layoutMargin}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.input.background,color:e.color.defaultText,cursor:"pointer",appearance:"none",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 10px center",backgroundSize:"12px",transition:"border-color 0.15s, box-shadow 0.15s","&:focus":{outline:"none",borderColor:e.color.secondary,boxShadow:`0 0 0 2px ${e.color.secondary}20`},"&:hover":{borderColor:e.color.mediumdark},"&:disabled":{opacity:.6,cursor:"not-allowed"}})),gy=zt(wn)(({theme:e})=>({width:"auto",padding:`${e.layoutMargin*.6}px 28px ${e.layoutMargin*.6}px ${e.layoutMargin}px`,fontSize:e.typography.size.s1})),Ya=e=>({padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,border:"none",borderRadius:e.appBorderRadius,cursor:"pointer",transition:"all 0.15s","&:disabled":{opacity:.5,cursor:"not-allowed"}}),An=zt.button(({theme:e})=>({...Ya(e),backgroundColor:e.color.secondary,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),an=zt.button(({theme:e})=>({...Ya(e),backgroundColor:ae,color:e.color.inverseText,boxShadow:`0 2px 4px ${ae}4d`,"&:hover:not(:disabled)":{backgroundColor:yu,transform:"translateY(-1px)",boxShadow:`0 4px 8px ${ae}66`}})),Or=zt.button(({theme:e})=>({...Ya(e),backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,color:e.color.defaultText,"&:hover:not(:disabled)":{backgroundColor:e.background.hoverable}})),fy=zt.button(({theme:e})=>({...Ya(e),backgroundColor:e.color.negative,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),Pn=zt.button(({theme:e})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",padding:`${e.layoutMargin*.4}px`,fontSize:e.typography.size.s2,color:e.color.mediumdark,backgroundColor:"transparent",border:"none",borderRadius:e.appBorderRadius,cursor:"pointer",transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),bu=zt.button(({theme:e})=>({padding:0,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.base,color:e.color.secondary,backgroundColor:"transparent",border:"none",cursor:"pointer",textDecoration:"none","&:hover":{textDecoration:"underline"},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),wo=zt.button(({theme:e,active:t})=>({padding:`${e.layoutMargin*.6}px ${e.layoutMargin*1.2}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:t?e.typography.weight.bold:400,color:t?e.color.secondary:e.color.mediumdark,backgroundColor:"transparent",border:"none",borderBottom:t?`2px solid ${e.color.secondary}`:"2px solid transparent",cursor:"pointer",transition:"all 0.15s","&:hover":{color:t?e.color.secondary:e.color.defaultText}})),vo=zt(ms)(({theme:e})=>({paddingLeft:`${e.layoutMargin*3}px`,backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:`${e.layoutMargin}px center`,backgroundSize:"14px"})),o9=zt.div(({theme:e})=>({padding:`${e.layoutMargin*1.6}px`,borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),my=zt.h2(({theme:e})=>({margin:`0 0 ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s3,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),i9=zt.h3(({theme:e})=>({margin:`0 0 ${e.layoutMargin*1.2}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),hs=zt.p(({theme:e})=>({margin:`0 0 ${e.layoutMargin*.8}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,color:e.color.defaultText,lineHeight:1.5})),s9=zt.div(({theme:e,width:t="100%",height:n="40px"})=>({width:t,height:n,backgroundColor:e.background.hoverable,borderRadius:e.appBorderRadius,position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:0,width:"100%",height:"100%",background:`linear-gradient(90deg, transparent, ${e.color.mediumlight}33, transparent)`,animation:"shimmer 1.5s infinite"},"@keyframes shimmer":{"0%":{transform:"translateX(-100%)"},"100%":{transform:"translateX(100%)"}}})),hy=zt.span(({theme:e,variant:t="default"})=>{let n={default:{bg:e.background.hoverable,color:e.color.defaultText},success:{bg:`${e.color.positive}40`,color:e.color.positive},warning:{bg:`${e.color.warning}40`,color:e.color.warning},error:{bg:`${e.color.negative}40`,color:e.color.negative}};return{display:"inline-block",padding:"2px 8px",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,borderRadius:"3px",backgroundColor:n[t].bg,color:n[t].color}}),a9=zt.div(({theme:e})=>({padding:"40px 20px",textAlign:"center",color:e.color.mediumdark})),l9=zt.div(({theme:e})=>({fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,marginBottom:`${e.layoutMargin*.8}px`,color:e.color.defaultText})),c9=zt.div(({theme:e})=>({fontSize:e.typography.size.s2,color:e.color.mediumdark}));var Su=({header:e,children:t,footer:n})=>xy.createElement(py,null,e,xy.createElement(dy,null,t),n);import sE from"react";import{styled as aE}from"storybook/theming";var lE=aE.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"6px 12px",borderBottom:`1px solid ${e.appBorderColor}`,position:"sticky",top:0,zIndex:100,backgroundColor:e.background.content})),wu=({toolbar:e})=>sE.createElement(lE,null,e);import b9 from"react";import{styled as Ka}from"storybook/theming";var v9=Ka.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",borderBottom:`1px solid ${e.appBorderColor}`,position:"sticky",top:0,zIndex:100,backgroundColor:e.background.content})),k9=Ka.div({display:"flex",flex:1}),C9=Ka(wo)(({theme:e,disabled:t})=>({padding:"6px 12px",...t?{color:e.color.mediumlight,cursor:"not-allowed",opacity:.5,"&:hover":{}}:{}})),T9=Ka.div({display:"flex",gap:"8px",alignItems:"center"});import nn,{useState as Vf,useCallback as Hw,useEffect as Ww}from"react";import{styled as io}from"storybook/theming";import we,{useEffect as Mw}from"react";import{styled as lt}from"storybook/theming";ve();Ue();Ne();ct();var Bw=lt.div({position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e4}),Dw=lt.div(({theme:e})=>({position:"absolute",top:"100%",right:0,marginTop:"8px",backgroundColor:e.background.content,borderRadius:"12px",width:"360px",maxWidth:"90vw",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.3)",overflow:"hidden",zIndex:10001})),qD=lt.div({display:"flex",alignItems:"center",gap:"12px",padding:"16px 16px 12px"}),YD=lt.div({width:"36px",height:"36px",borderRadius:"50%",backgroundColor:ae,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:"14px",fontWeight:700,flexShrink:0}),KD=lt.div({display:"flex",flexDirection:"column",gap:"4px"}),XD=lt.div(({theme:e})=>({fontSize:"15px",fontWeight:600,color:e.color.defaultText,lineHeight:1.2})),QD=lt.span({display:"inline-block",alignSelf:"flex-start",padding:"2px 10px",borderRadius:"6px",fontSize:"11px",fontWeight:600,color:"#7c3aed",backgroundColor:"rgba(124, 58, 237, 0.1)",letterSpacing:"0.3px"}),JD=lt.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px 8px",fontSize:"14px",color:e.color.defaultText})),ZD=lt.span(({theme:e})=>({color:e.textMutedColor,fontSize:"13px"})),eR=lt.span(({theme:e})=>({color:e.color.defaultText,fontSize:"15px",fontWeight:600})),tR=lt.div(({theme:e})=>({height:"8px",borderRadius:"4px",backgroundColor:e.base==="dark"?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)",margin:"0 16px 8px",overflow:"hidden"})),nR=lt.div(({percent:e})=>({height:"100%",width:`${Math.min(100,Math.max(0,e))}%`,background:`linear-gradient(90deg, #f59e0b 0%, ${ae} 100%)`,transition:"width 0.3s ease"})),rR=lt.div(({theme:e})=>({padding:"0 16px 14px",fontSize:"12px",color:e.textMutedColor})),oR=lt.div(({theme:e})=>({height:"1px",backgroundColor:e.appBorderColor})),iR=lt.button({width:"100%",padding:"14px 16px",background:"transparent",border:"none",color:ae,fontSize:"14px",fontWeight:500,textAlign:"left",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.03)"}}),Rw=lt.button(({theme:e})=>({position:"absolute",top:"12px",right:"12px",width:"24px",height:"24px",borderRadius:"4px",border:"none",background:"transparent",color:e.textMutedColor,cursor:"pointer",fontSize:"16px",display:"flex",alignItems:"center",justifyContent:"center","&:hover":{backgroundColor:e.background.hoverable}})),sR=lt.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px",borderBottom:`1px solid ${e.appBorderColor}`})),aR=lt.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"10px",color:e.color.defaultText,fontSize:"14px",fontWeight:500})),lR=lt.div(({theme:e})=>({width:"32px",height:"32px",borderRadius:"50%",backgroundColor:ae,display:"flex",alignItems:"center",justifyContent:"center",color:e.color.inverseText,fontSize:"14px",fontWeight:600})),cR=lt.div({display:"flex",gap:"8px"}),zw=lt(Pn)({fontSize:"18px"}),uR=lt.div({padding:"20px 16px"}),pR=lt.div(({theme:e})=>({padding:"16px",borderRadius:"8px",background:"linear-gradient(135deg, #10B981 0%, #3B82F6 100%)",marginBottom:"16px",color:"#fff"})),dR=lt.div({fontSize:"12px",fontWeight:500,opacity:.9,marginBottom:"4px"}),gR=lt.div({fontSize:"28px",fontWeight:700}),fR=lt.div({fontSize:"11px",opacity:.8,marginTop:"4px"}),mR=lt.div(({theme:e})=>({padding:"16px",borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px"})),hR=lt.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),xR=lt.div({display:"flex",alignItems:"center",gap:"8px"}),yR=lt.span(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),bR=lt.span(({theme:e})=>({fontSize:"10px",fontWeight:600,padding:"2px 6px",borderRadius:"4px",backgroundColor:ae,color:e.color.inverseText})),SR=lt.button(({theme:e})=>({background:"none",border:"none",color:ae,fontSize:"12px",cursor:"pointer","&:hover":{textDecoration:"underline"}})),wR=lt.div(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),vR=lt.button(({theme:e,variant:t="primary"})=>({width:"100%",padding:"12px",borderRadius:"6px",fontSize:"14px",fontWeight:600,cursor:"pointer",border:"none",marginBottom:"12px",backgroundColor:t==="primary"?ae:e.background.hoverable,color:t==="primary"?e.color.inverseText:e.color.defaultText,"&:hover":{opacity:.9}})),kR=30*1e3,Nw=({onClose:e})=>{let{sessionToken:t,resetAuth:n,usageData:r,usageLastFetched:o,setUsageData:i}=Se(),{featureFlags:s}=ce(),a=s.showCosts,u=r,c=!r&&t,l=async(m=!1)=>{if(!t)return;let b=o&&Date.now()-o<kR;if(!(!m&&b&&r))try{let F=G(),E=await te(`${F}/api/addon/account`,{headers:{Authorization:`Bearer ${t}`}});if(E.ok){let v=await E.json();i(v)}}catch(F){y.error("Failed to fetch usage:",F)}};Mw(()=>{l()},[t]),Mw(()=>{let m=()=>{document.visibilityState==="visible"&&(y.debug("[TokenUsageModal] Tab visible, refreshing balance..."),l(!0))};return document.addEventListener("visibilitychange",m),()=>document.removeEventListener("visibilitychange",m)},[t]);let d=async()=>{if(t){let m=G();try{await fetch(`${m}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${t}`}})}catch{}}n(),e()},g=()=>{let m=G();window.open(`${m}/pricing`,"_blank")},p=()=>{let m=G();window.open(`${m}/pricing#add-credits`,"_blank")};if(t&&!a&&!c){let m=Math.floor(u?.creditBalance??0),F=Math.max(m,10),E=Math.max(0,F-m),v=F>0?m/F*100:0;return we.createElement(we.Fragment,null,we.createElement(Bw,{onClick:e}),we.createElement(Dw,{onClick:D=>D.stopPropagation(),style:{width:"320px"}},we.createElement(qD,null,we.createElement(YD,null,u?.email?u.email[0].toUpperCase():"U"),we.createElement(KD,null,we.createElement(XD,null,"UI Review"),we.createElement(QD,null,(u?.plan||"BETA").toUpperCase())),we.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:"2px"}},we.createElement(Rw,{onClick:d,title:"Sign out",style:{position:"static"}},we.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},we.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),we.createElement("polyline",{points:"16 17 21 12 16 7"}),we.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),we.createElement(Rw,{onClick:e,title:"Close",style:{position:"static"}},"\xD7"))),we.createElement(JD,null,we.createElement(ZD,null,"Credits"),we.createElement(eR,null,m," left")),we.createElement(tR,null,we.createElement(nR,{percent:v})),we.createElement(rR,null,E," used \xB7 ",m," remaining"),we.createElement(oR,null),we.createElement(iR,{onClick:()=>window.open("mailto:hello@uiparity.com?subject=Credits request","_blank")},"Contact us for credits \u2192")))}return we.createElement(we.Fragment,null,we.createElement(Bw,{onClick:e}),we.createElement(Dw,{onClick:m=>m.stopPropagation()},we.createElement(sR,null,we.createElement(aR,null,we.createElement(lR,null,u?.email?u.email[0].toUpperCase():"U"),we.createElement("span",null,u?.email||"Loading...")),we.createElement(cR,null,we.createElement(zw,{onClick:d,title:"Sign out"},we.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},we.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),we.createElement("polyline",{points:"16 17 21 12 16 7"}),we.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),we.createElement(zw,{onClick:e,title:"Close"},"\xD7"))),we.createElement(uR,null,c?we.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Loading..."):t?we.createElement(we.Fragment,null,we.createElement(pR,null,we.createElement(dR,null,"Credit Balance"),we.createElement(gR,null,"$",(u?.creditBalance??0).toFixed(2)),we.createElement(fR,null,(u?.creditBalance??0)<2?"Low balance - consider topping up":"Pay only for what you use")),we.createElement(mR,null,we.createElement(hR,null,we.createElement(xR,null,we.createElement(yR,null,"Current Plan"),we.createElement(bR,null,u?.plan||"Free")),we.createElement(SR,{onClick:g},"View detail >")),we.createElement(wR,null,"~$0.02-0.05 per review depending on complexity"),we.createElement(vR,{onClick:p,style:{marginTop:"16px"}},"Add Credits"))):we.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Please sign in to view usage"))))};ve();import zi from"react";import{styled as Ow}from"storybook/theming";Ue();ve();ct();Ne();var CR=Ow.div({display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}),TR=Ow.span(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark})),IR={admin:{enableFixGeneration:!0,enableFixApply:!0,enableAutoMap:!0,enableReviewBadges:!0,showCosts:!0,enableParallelReview:!0,enableModelSelection:!0},beta:{enableFixGeneration:!0,enableFixApply:!1,enableAutoMap:!0,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1}},_w=()=>{let{userRole:e,roleOverride:t,setRoleOverride:n,setFeatureFlags:r}=ce(),{sessionToken:o}=Se();return e!=="admin"?null:zi.createElement(CR,null,zi.createElement(TR,null,"View as:"),zi.createElement(gy,{value:t??e,onChange:a=>{let u=a.target.value;if(u===e)n(null),o&&te(`${G()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(c=>c.json()).then(c=>{let l={enableFixGeneration:!!c.enableFixGeneration,enableFixApply:!!c.enableFixApply,enableAutoMap:!!c.enableAutoMap,enableReviewBadges:!!c.enableReviewBadges,showCosts:!!c.showCosts,enableParallelReview:!!c.enableParallelReview,enableModelSelection:!!c.enableModelSelection};r(l);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(l))}catch{}}).catch(c=>y.warn("[RoleSwitcher] Failed to re-fetch flags:",c.message));else{n(u);let c=IR[u];r(c);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(c))}catch{}}},style:{width:"auto",minWidth:"100px"}},zi.createElement("option",{value:"admin"},"Admin"),zi.createElement("option",{value:"beta"},"Beta Tester")),t&&zi.createElement(hy,{variant:"warning"},"Previewing as ",t))};Ue();ve();ct();import wt,{useState as Vs,useCallback as Wf}from"react";import{styled as Er}from"storybook/theming";var FR="0.5.7",ER=[{value:"bug",label:"\u{1F41E} Bug \u2014 something broke"},{value:"ux",label:"\u{1F9ED} UX \u2014 confusing or slow"},{value:"feature",label:"\u2728 Feature \u2014 missing something"},{value:"praise",label:"\u{1F49A} Praise \u2014 works great"},{value:"other",label:"\u{1F4AC} Other"}],AR=Er.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center"}),PR=Er.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"12px",width:"460px",maxWidth:"94%",maxHeight:"90vh",overflow:"auto",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.25)"})),LR=Er.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px 12px",borderBottom:`1px solid ${e.appBorderColor}`})),MR=Er.h3(({theme:e})=>({margin:0,fontSize:"15px",fontWeight:600,color:e.color.defaultText,display:"flex",alignItems:"center",gap:"8px"})),BR=Er.button(({theme:e})=>({background:"transparent",border:"none",fontSize:"20px",color:e.color.mediumdark,cursor:"pointer",padding:"0 6px",lineHeight:1,"&:hover":{color:e.color.defaultText}})),DR=Er.div({padding:"16px 20px",display:"flex",flexDirection:"column",gap:"14px"}),RR=Er.textarea(({theme:e})=>({width:"100%",minHeight:"110px",padding:"8px 10px",borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.defaultText,backgroundColor:e.background.app,resize:"vertical",boxSizing:"border-box","&:focus":{outline:"none",borderColor:ae}})),$w=Er.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px 16px",borderTop:`1px solid ${e.appBorderColor}`,gap:"8px"})),Uw=Er.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.mediumdark,lineHeight:1.4})),zR=Er.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.negative})),NR=Er.div(({theme:e})=>({padding:"24px 20px",textAlign:"center",display:"flex",flexDirection:"column",gap:"10px","& h4":{margin:0,fontSize:"15px",fontWeight:600,color:e.color.positive},"& p":{margin:0,fontSize:e.typography.size.s2,color:e.color.mediumdark}}));function jw({isOpen:e,onClose:t}){let{sessionToken:n,isConnected:r}=Se(),{selectedProjectId:o}=Qe(),{currentStoryId:i}=nt(),[s,a]=Vs("other"),[u,c]=Vs(""),[l,d]=Vs(!1),[g,p]=Vs(!1),[m,b]=Vs(null),F=Wf(()=>{c(""),a("other"),p(!1),b(null),d(!1)},[]),E=Wf(()=>{F(),t()},[F,t]),v=Wf(async D=>{if(D.preventDefault(),!u.trim()){b("Please write a message.");return}if(!r||!n){b("Sign in to send feedback.");return}d(!0),b(null);try{let O=await te(`${G()}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({message:u.trim(),severity:s,projectId:o||void 0,storyId:i||void 0,addonVersion:FR})});if(!O.ok){let $=await O.json().catch(()=>({}));throw new Error($.error||`Request failed (${O.status})`)}p(!0)}catch(O){b(O instanceof Error?O.message:"Something went wrong")}finally{d(!1)}},[u,s,n,r,o,i]);return e?wt.createElement(AR,{onClick:E},wt.createElement(PR,{onClick:D=>D.stopPropagation()},wt.createElement(LR,null,wt.createElement(MR,null,wt.createElement("span",null,"\u{1F4AC}"),"Send feedback"),wt.createElement(BR,{onClick:E,"aria-label":"Close"},"\xD7")),g?wt.createElement(wt.Fragment,null,wt.createElement(NR,null,wt.createElement("h4",null,"Thanks \u2014 got it."),wt.createElement("p",null,"We read every message. If it's a bug, we'll likely follow up by email.")),wt.createElement($w,null,wt.createElement("span",null),wt.createElement(An,{onClick:E},"Close"))):wt.createElement("form",{onSubmit:v},wt.createElement(DR,null,wt.createElement(bo,null,wt.createElement(So,{htmlFor:"feedback-severity"},"Type"),wt.createElement(wn,{id:"feedback-severity",value:s,onChange:D=>a(D.target.value),disabled:l},ER.map(D=>wt.createElement("option",{key:D.value,value:D.value},D.label)))),wt.createElement(bo,null,wt.createElement(So,{htmlFor:"feedback-message"},"What happened?"),wt.createElement(RR,{id:"feedback-message",value:u,onChange:D=>c(D.target.value),placeholder:"Tell us what you were doing, what you expected, and what happened.",disabled:l,autoFocus:!0,maxLength:5e3})),wt.createElement(Uw,null,"We auto-attach your current story and project so we can reproduce it. No screenshots sent."),m&&wt.createElement(zR,null,m)),wt.createElement($w,null,wt.createElement(Uw,null,i?`Context: ${i}`:"No story selected"),wt.createElement("div",{style:{display:"flex",gap:"8px"}},wt.createElement(An,{type:"button",onClick:E,disabled:l},"Cancel"),wt.createElement(an,{type:"submit",disabled:l||!u.trim()},l?"Sending\u2026":"Send")))))):null}ve();Ue();ct();var OR=io.div({display:"flex",alignItems:"center"}),Ni=io.div(({theme:e})=>({display:"flex",alignItems:"center",paddingLeft:"8px",borderLeft:`1px solid ${e.appBorderColor}`,"&:first-of-type":{paddingLeft:0,borderLeft:"none"}})),_R=io.span(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.secondary,fontWeight:e.typography.weight.bold,paddingRight:"8px",opacity:.8})),$R=io.div({position:"relative"}),UR=io.button(({theme:e})=>({width:"26px",height:"26px",padding:0,background:`linear-gradient(135deg, ${e.color.secondary} 0%, ${e.color.secondary}cc 100%)`,border:"none",borderRadius:"50%",color:e.color.inverseText,cursor:"pointer",fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s","&:hover":{transform:"scale(1.05)",boxShadow:`0 2px 8px ${e.color.secondary}66`}})),Vw=io.button(({isLow:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 10px",background:e?"#FEF3C7":"linear-gradient(135deg, #10B981 0%, #3B82F6 100%)",border:"none",borderRadius:"12px",color:e?"#92400E":"#fff",cursor:"pointer",fontSize:"12px",fontWeight:600,transition:"all 0.2s",minWidth:"60px",justifyContent:"center","&:hover":{transform:"scale(1.02)",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})),jR=io.span({display:"inline-block",width:"12px",height:"12px",border:"2px solid rgba(255,255,255,0.3)",borderTopColor:"#fff",borderRadius:"50%",animation:"credit-spin 0.8s linear infinite","@keyframes credit-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}}),HR=io.button(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",gap:"4px",padding:"4px 10px",height:"28px",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:"transparent",color:e.color.mediumdark,fontSize:"12px",fontWeight:500,cursor:"pointer",transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText,borderColor:e.color.mediumdark}})),WR=io.button({position:"fixed",bottom:"20px",right:"20px",width:"48px",height:"48px",borderRadius:"50%",backgroundColor:ae,color:"white",border:"none",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"22px",cursor:"pointer",boxShadow:`0 4px 14px ${ae}66, 0 2px 4px rgba(0,0,0,0.1)`,transition:"all 0.2s ease",zIndex:9999,"&:hover":{transform:"scale(1.08)",boxShadow:`0 6px 20px ${ae}88, 0 3px 6px rgba(0,0,0,0.15)`},"&:active":{transform:"scale(0.96)"}}),VR=30*1e3,Gf=({onOpenSettings:e})=>{let[t,n]=Vf(!1),[r,o]=Vf(!1),[i,s]=Vf(!1),{usageData:a,usageLastFetched:u,setUsageData:c,sessionToken:l}=Se(),{userRole:d,roleOverride:g,featureFlags:p}=ce(),m=g??d;Ww(()=>{(async()=>{if(!(!l||u&&Date.now()-u<VR&&a)){s(!0);try{let $=G(),L=await te(`${$}/api/addon/account`,{headers:{Authorization:`Bearer ${l}`}});if(L.ok){let N=await L.json();c(N)}}catch($){console.error("Failed to fetch balance:",$)}finally{s(!1)}}})()},[l,u,a,c]),Ww(()=>{let D=()=>{document.visibilityState==="visible"&&t&&n(!1)},O=()=>{t&&n(!1)};return document.addEventListener("visibilitychange",D),window.addEventListener("focus",O),()=>{document.removeEventListener("visibilitychange",D),window.removeEventListener("focus",O)}},[t]);let b=Hw(()=>{n(!0)},[]),F=Hw(()=>{n(!1)},[]),E=a?.creditBalance??0,v=E<2&&!i;return nn.createElement(OR,null,e&&nn.createElement(Ni,null,nn.createElement(HR,{onClick:e,title:"Settings"},nn.createElement("span",{style:{fontSize:"14px"}},"\u2699"),"Settings")),l&&d==="admin"&&m==="admin"&&nn.createElement(Ni,null,nn.createElement(_w,null)),nn.createElement(Ni,null,nn.createElement(_R,null,"v","0.5.34")),l&&p.showCosts&&nn.createElement(Ni,null,nn.createElement(Vw,{onClick:b,isLow:v,title:i?"Loading...":a?v?"Low balance - click to top up":"Credit balance - click for details":"Click to load balance"},i?nn.createElement(jR,null):a?`$${E.toFixed(2)}`:"...")),l&&!p.showCosts&&a&&nn.createElement(Ni,null,nn.createElement(Vw,{onClick:b,isLow:Math.floor(E)<=3,title:`${Math.floor(E)} review credits \u2014 click for details`},"\u26A1 ",Math.floor(E))),nn.createElement(Ni,null,nn.createElement($R,null,nn.createElement(UR,{title:"Account & Usage",onClick:b},a?.email?a.email[0].toUpperCase():"?"),t&&nn.createElement(Nw,{onClose:F}))),l&&nn.createElement(WR,{onClick:()=>o(!0),title:"Send feedback","aria-label":"Send feedback"},"\u{1F4AC}"),nn.createElement(jw,{isOpen:r,onClose:()=>o(!1)}))};import Rt,{useEffect as j4,useRef as H4}from"react";import{styled as mr}from"storybook/theming";import rt from"react";ve();Ne();Ue();ct();Un();import{useState as GR,useCallback as Ao,useRef as qf,useEffect as Gw}from"react";var Ar=G();y.debug("[useAuth] Module loaded, APP_URL:",Ar);var Gs=()=>{let e=qf(null),{sessionToken:t,apiKey:n,authMethod:r,deviceCode:o,userCode:i,verificationUri:s,isConnected:a,authError:u,setSessionToken:c,setApiKey:l,setAuthMethod:d,setDeviceCode:g,setUserCode:p,setVerificationUri:m,setPollingInterval:b,setAuthError:F,resetAuth:E}=Se(),v=qf(null),D=qf(null),[O,$]=GR(!1),L=Ao(()=>{v.current&&(clearInterval(v.current),v.current=null)},[]),N=Ao(T=>{D.current=T,L();let h=async()=>{let I=D.current;if(!I){L();return}try{let M=await(await fetch(`${Ar}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:I})})).json();M.status==="authorized"&&M.session_token?(y.debug("[useAuth] \u2705 OAuth poll successful! Got token."),L(),D.current=null,localStorage.setItem("uicopilot_session_token",M.session_token),c(M.session_token),$(!1)):M.status==="expired"&&(y.debug("[useAuth] OAuth poll_code expired"),L(),D.current=null,$(!1))}catch(A){y.error("[useAuth] OAuth poll error:",A)}};v.current=setInterval(h,2e3),setTimeout(h,1e3)},[c,L]);Gw(()=>{function T(h){if(!h.origin.startsWith(Ar))return;let I=h.data;if(!I||typeof I!="object")return;let A=I;if(A.type==="UICOPILOT_AUTH_ERROR"){y.debug("[useAuth] Popup reported auth error:",A.step,A.detail),L(),D.current=null,$(!1);let M=typeof A.step=="string"?A.step:"auth",z=typeof A.detail=="string"?A.detail:"Unknown error";F(`${Pt.NAME} auth failed (${M}): ${z}`)}else A.type==="UICOPILOT_AUTH_POLL_CODE"&&typeof A.pollCode=="string"&&A.pollCode&&(y.debug("[useAuth] Popup handed us a fresh poll_code, switching"),F(null),N(A.pollCode))}return window.addEventListener("message",T),()=>window.removeEventListener("message",T)},[N,L,F]);let x=Ao(async()=>{try{y.debug("[useAuth] Starting OAuth flow, requesting poll_code...");let T;try{T=await te(`${Ar}/api/addon/auth/oauth-poll`,{method:"POST"})}catch(M){let C=M instanceof Error&&M.message.includes("timed out")?`Cannot reach ${Pt.NAME} server at ${Ar}. Is the dashboard running?`:`Connection failed: ${Ar} is not responding.`;F(C),y.error("[useAuth]",C);return}if(!T.ok){let M=`Cannot reach ${Pt.NAME} server. Is the dashboard running?`;F(M),y.error("[useAuth]",M);return}let{poll_code:h}=await T.json();y.debug("[useAuth] Got poll_code:",h.substring(0,15)+"...");let I=localStorage.getItem("uicopilot_force_sign_in")==="true";I&&localStorage.removeItem("uicopilot_force_sign_in");let A=`${Ar}/addon/auth?poll_code=${h}${I?"&force_sign_in=true":""}`;$(!0),window.open(A,"uiparity-auth","width=520,height=620,left=300,top=150"),y.debug("[useAuth] Starting OAuth poll for token..."),N(h)}catch(T){y.error("[useAuth] OAuth flow error:",T),F(`Connection failed. Is the dashboard running at ${Ar}?`),$(!1)}},[F,N]),S=Ao(async()=>{try{let T=await fetch(`${Ar}/api/addon/auth/device`,{method:"POST"});if(!T.ok)throw new Error("Failed to start device code flow");let h=await T.json();g(h.device_code),p(h.user_code),m(h.verification_uri),window.open(h.verification_uri,"_blank"),w(h.device_code,h.interval*1e3)}catch(T){throw y.error("[useAuth] Device code flow error:",T),T}},[g,p,m]),w=Ao((T,h)=>{y.debug("[useAuth] Starting polling. Device code:",T,"Interval:",h),e.current&&clearInterval(e.current);let I=async()=>{try{let M=await(await fetch(`${Ar}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:T})})).json();M.status==="authorized"?(y.debug("[useAuth] Device code authorization successful!"),e.current&&(clearInterval(e.current),e.current=null),g(null),p(null),m(null),localStorage.setItem("uicopilot_session_token",M.session_token),c(M.session_token),$(!1)):(M.status==="expired"||M.status==="denied")&&(y.debug("[useAuth] Device code expired or denied"),e.current&&(clearInterval(e.current),e.current=null),g(null),p(null),m(null))}catch(A){y.error("[useAuth] Polling error:",A)}};e.current=setInterval(I,h),b(h)},[g,p,m,c,b]),P=Ao(()=>{e.current&&(clearInterval(e.current),e.current=null),g(null),p(null),m(null),b(null)},[g,p,m,b]),f=Ao(T=>{l(T),c(T),localStorage.setItem("uicopilot_api_key",T)},[l,c]),k=Ao(async()=>{if(t)try{await te(`${Ar}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${t}`}})}catch{}E(),$(!1),e.current&&(clearInterval(e.current),e.current=null),v.current&&(clearInterval(v.current),v.current=null)},[t,E]);return Gw(()=>()=>{e.current&&clearInterval(e.current),v.current&&clearInterval(v.current)},[]),{sessionToken:t,apiKey:n,authMethod:r,deviceCode:o,userCode:i,verificationUri:s,isConnected:a,authError:u,oauthPending:O,setAuthMethod:d,startOAuth:x,startDeviceCode:S,cancelDeviceCode:P,saveApiKey:f,logout:k}};ve();Ne();Ue();ct();import{useCallback as jl}from"react";var qs=G(),so=()=>{let{projects:e,selectedProjectId:t,loadingProjects:n,setProjects:r,setSelectedProjectId:o,setLoadingProjects:i,getSelectedProject:s}=Qe(),{sessionToken:a}=Se(),u=jl(async()=>{if(!a){y.debug("[useProjects] No session token, skipping fetch");return}try{i(!0),y.debug("[useProjects] Fetching from:",`${qs}/api/projects`);let g=await te(`${qs}/api/projects`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`}});if(g.ok){let p=await g.json();y.debug("[useProjects] Projects:",p.projects),r(p.projects||[])}else y.error("[useProjects] Failed to fetch projects:",g.status,g.statusText)}catch(g){y.error("[useProjects] Error fetching projects:",g)}finally{i(!1)}},[a,r,i]),c=jl(async g=>{if(!a)throw new Error("Not authenticated");let p=await te(`${qs}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify(g)});if(!p.ok)throw new Error("Failed to create project");let m=await p.json();return await u(),m.project},[a,u]),l=jl(async(g,p)=>{if(!a)throw new Error("Not authenticated");let m={};if(p.name!==void 0&&(m.name=p.name),p.description!==void 0&&(m.description=p.description),p.figmaFileUrl!==void 0&&(m.figmaFileId=p.figmaFileUrl||void 0),!(await te(`${qs}/api/projects/${g}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify(m)})).ok)throw new Error("Failed to update project");await u()},[a,u]),d=jl(async g=>{if(!a)throw new Error("Not authenticated");if(!(await te(`${qs}/api/projects/${g}`,{method:"DELETE",headers:{Authorization:`Bearer ${a}`}})).ok)throw new Error("Failed to delete project");await u(),t===g&&o(null)},[a,t,u,o]);return{projects:e,selectedProjectId:t,selectedProject:s(),loadingProjects:n,setSelectedProjectId:o,fetchProjects:u,createProject:c,updateProject:l,deleteProject:d}};ve();var Ys=()=>{let{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:s,setFigmaFileUrl:a,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:d}=nt();return{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:s,setFigmaFileUrl:a,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:d,openComponentBrowser:()=>s(!0),closeComponentBrowser:()=>s(!1)}};ve();Jf();om();import{useCallback as na,useRef as ec}from"react";Ne();function ql(){return new Promise(e=>{let t=document.getElementById("storybook-preview-iframe");if(!t||!t.contentWindow){y.warn("[iframeReload] No preview iframe found"),e();return}let n=t.contentWindow.location.href,r=new URL(n);r.searchParams.set("_cb",Date.now().toString());let o=r.toString();y.debug("[iframeReload] Triggering cache-busted reload:",o);let i=setTimeout(()=>{y.warn("[iframeReload] Iframe reload timed out after 5s"),t.removeEventListener("load",s),e()},5e3),s=()=>{clearTimeout(i),t.removeEventListener("load",s),y.debug("[iframeReload] Iframe loaded, waiting for HMR and styles to settle..."),setTimeout(()=>{y.debug("[iframeReload] Iframe reloaded and styles should be fresh"),e()},2e3)};t.addEventListener("load",s),t.contentWindow.location.href=o})}function Yl(e){return e&&e!=="admin"?{"X-UIC-Role-Preview":e}:{}}var Kl=BigInt(4294967295),cv=BigInt(32);function fz(e,t=!1){return t?{h:Number(e&Kl),l:Number(e>>cv&Kl)}:{h:Number(e>>cv&Kl)|0,l:Number(e&Kl)|0}}function uv(e,t=!1){let n=e.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let i=0;i<n;i++){let{h:s,l:a}=fz(e[i],t);[r[i],o[i]]=[s,a]}return[r,o]}var pv=(e,t,n)=>e<<n|t>>>32-n,dv=(e,t,n)=>t<<n|e>>>32-n,gv=(e,t,n)=>t<<n-32|e>>>64-n,fv=(e,t,n)=>e<<n-32|t>>>64-n;function mz(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function im(e,t=""){if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function Xl(e,t,n=""){let r=mz(e),o=e?.length,i=t!==void 0;if(!r||i&&o!==t){let s=n&&`"${n}" `,a=i?` of length ${t}`:"",u=r?`length=${o}`:`type=${typeof e}`;throw new Error(s+"expected Uint8Array"+a+", got "+u)}return e}function sm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function mv(e,t){Xl(e,void 0,"digestInto() output");let n=t.outputLen;if(e.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function hv(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function am(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}var hz=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xz(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function yz(e){for(let t=0;t<e.length;t++)e[t]=xz(e[t]);return e}var lm=hz?e=>e:yz;function xv(e,t={}){let n=(o,i)=>e(i).update(o).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.create=o=>e(o),Object.assign(n,t),Object.freeze(n)}var yv=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var bz=BigInt(0),Js=BigInt(1),Sz=BigInt(2),wz=BigInt(7),vz=BigInt(256),kz=BigInt(113),wv=[],vv=[],kv=[];for(let e=0,t=Js,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],wv.push(2*(5*r+n)),vv.push((e+1)*(e+2)/2%64);let o=bz;for(let i=0;i<7;i++)t=(t<<Js^(t>>wz)*kz)%vz,t&Sz&&(o^=Js<<(Js<<BigInt(i))-Js);kv.push(o)}var Cv=uv(kv,!0),Cz=Cv[0],Tz=Cv[1],bv=(e,t,n)=>n>32?gv(e,t,n):pv(e,t,n),Sv=(e,t,n)=>n>32?fv(e,t,n):dv(e,t,n);function Iz(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let s=0;s<10;s++)n[s]=e[s]^e[s+10]^e[s+20]^e[s+30]^e[s+40];for(let s=0;s<10;s+=2){let a=(s+8)%10,u=(s+2)%10,c=n[u],l=n[u+1],d=bv(c,l,1)^n[a],g=Sv(c,l,1)^n[a+1];for(let p=0;p<50;p+=10)e[s+p]^=d,e[s+p+1]^=g}let o=e[2],i=e[3];for(let s=0;s<24;s++){let a=vv[s],u=bv(o,i,a),c=Sv(o,i,a),l=wv[s];o=e[l],i=e[l+1],e[l]=u,e[l+1]=c}for(let s=0;s<50;s+=10){for(let a=0;a<10;a++)n[a]=e[s+a];for(let a=0;a<10;a++)e[s+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=Cz[r],e[1]^=Tz[r]}am(n)}var cm=class e{constructor(t,n,r,o=!1,i=24){ar(this,"state");ar(this,"pos",0);ar(this,"posOut",0);ar(this,"finished",!1);ar(this,"state32");ar(this,"destroyed",!1);ar(this,"blockLen");ar(this,"suffix");ar(this,"outputLen");ar(this,"enableXOF",!1);ar(this,"rounds");if(this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,im(r,"outputLen"),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=hv(this.state)}clone(){return this._cloneInto()}keccak(){lm(this.state32),Iz(this.state32,this.rounds),lm(this.state32),this.posOut=0,this.pos=0}update(t){sm(this),Xl(t);let{blockLen:n,state:r}=this,o=t.length;for(let i=0;i<o;){let s=Math.min(n-this.pos,o-i);for(let a=0;a<s;a++)r[this.pos++]^=t[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:n,pos:r,blockLen:o}=this;t[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){sm(this,!1),Xl(t),this.finish();let n=this.state,{blockLen:r}=this;for(let o=0,i=t.length;o<i;){this.posOut>=r&&this.keccak();let s=Math.min(r-this.posOut,i-o);t.set(n.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return im(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(mv(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,am(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:s}=this;return t||(t=new e(n,r,o,s,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=r,t.outputLen=o,t.enableXOF=s,t.destroyed=this.destroyed,t}},Fz=(e,t,n,r={})=>xv(()=>new cm(t,e,n),r);var Tv=Fz(6,72,64,yv(10));var Ez=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,um=Math.ceil,gr=Math.floor,Hn="[BigNumber Error] ",Iv=Hn+"Number primitive has more than 15 significant digits: ",Pr=1e14,He=14,pm=9007199254740991,dm=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Lo=1e7,un=1e9;function Fv(e){var t,n,r,o=v.prototype={constructor:v,toString:null,valueOf:null},i=new v(1),s=20,a=4,u=-7,c=21,l=-1e7,d=1e7,g=!1,p=1,m=0,b={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},F="0123456789abcdefghijklmnopqrstuvwxyz",E=!0;function v(x,S){var w,P,f,k,T,h,I,A,M=this;if(!(M instanceof v))return new v(x,S);if(S==null){if(x&&x._isBigNumber===!0){M.s=x.s,!x.c||x.e>d?M.c=M.e=null:x.e<l?M.c=[M.e=0]:(M.e=x.e,M.c=x.c.slice());return}if((h=typeof x=="number")&&x*0==0){if(M.s=1/x<0?(x=-x,-1):1,x===~~x){for(k=0,T=x;T>=10;T/=10,k++);k>d?M.c=M.e=null:(M.e=k,M.c=[x]);return}A=String(x)}else{if(!Ez.test(A=String(x)))return r(M,A,h);M.s=A.charCodeAt(0)==45?(A=A.slice(1),-1):1}(k=A.indexOf("."))>-1&&(A=A.replace(".","")),(T=A.search(/e/i))>0?(k<0&&(k=T),k+=+A.slice(T+1),A=A.substring(0,T)):k<0&&(k=A.length)}else{if($t(S,2,F.length,"Base"),S==10&&E)return M=new v(x),L(M,s+M.e+1,a);if(A=String(x),h=typeof x=="number"){if(x*0!=0)return r(M,A,h,S);if(M.s=1/x<0?(A=A.slice(1),-1):1,v.DEBUG&&A.replace(/^0\.0*|\./,"").length>15)throw Error(Iv+x)}else M.s=A.charCodeAt(0)===45?(A=A.slice(1),-1):1;for(w=F.slice(0,S),k=T=0,I=A.length;T<I;T++)if(w.indexOf(P=A.charAt(T))<0){if(P=="."){if(T>k){k=I;continue}}else if(!f&&(A==A.toUpperCase()&&(A=A.toLowerCase())||A==A.toLowerCase()&&(A=A.toUpperCase()))){f=!0,T=-1,k=0;continue}return r(M,String(x),h,S)}h=!1,A=n(A,S,10,M.s),(k=A.indexOf("."))>-1?A=A.replace(".",""):k=A.length}for(T=0;A.charCodeAt(T)===48;T++);for(I=A.length;A.charCodeAt(--I)===48;);if(A=A.slice(T,++I)){if(I-=T,h&&v.DEBUG&&I>15&&(x>pm||x!==gr(x)))throw Error(Iv+M.s*x);if((k=k-T-1)>d)M.c=M.e=null;else if(k<l)M.c=[M.e=0];else{if(M.e=k,M.c=[],T=(k+1)%He,k<0&&(T+=He),T<I){for(T&&M.c.push(+A.slice(0,T)),I-=He;T<I;)M.c.push(+A.slice(T,T+=He));T=He-(A=A.slice(T)).length}else T-=I;for(;T--;A+="0");M.c.push(+A)}}else M.c=[M.e=0]}v.clone=Fv,v.ROUND_UP=0,v.ROUND_DOWN=1,v.ROUND_CEIL=2,v.ROUND_FLOOR=3,v.ROUND_HALF_UP=4,v.ROUND_HALF_DOWN=5,v.ROUND_HALF_EVEN=6,v.ROUND_HALF_CEIL=7,v.ROUND_HALF_FLOOR=8,v.EUCLID=9,v.config=v.set=function(x){var S,w;if(x!=null)if(typeof x=="object"){if(x.hasOwnProperty(S="DECIMAL_PLACES")&&(w=x[S],$t(w,0,un,S),s=w),x.hasOwnProperty(S="ROUNDING_MODE")&&(w=x[S],$t(w,0,8,S),a=w),x.hasOwnProperty(S="EXPONENTIAL_AT")&&(w=x[S],w&&w.pop?($t(w[0],-un,0,S),$t(w[1],0,un,S),u=w[0],c=w[1]):($t(w,-un,un,S),u=-(c=w<0?-w:w))),x.hasOwnProperty(S="RANGE"))if(w=x[S],w&&w.pop)$t(w[0],-un,-1,S),$t(w[1],1,un,S),l=w[0],d=w[1];else if($t(w,-un,un,S),w)l=-(d=w<0?-w:w);else throw Error(Hn+S+" cannot be zero: "+w);if(x.hasOwnProperty(S="CRYPTO"))if(w=x[S],w===!!w)if(w)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))g=w;else throw g=!w,Error(Hn+"crypto unavailable");else g=w;else throw Error(Hn+S+" not true or false: "+w);if(x.hasOwnProperty(S="MODULO_MODE")&&(w=x[S],$t(w,0,9,S),p=w),x.hasOwnProperty(S="POW_PRECISION")&&(w=x[S],$t(w,0,un,S),m=w),x.hasOwnProperty(S="FORMAT"))if(w=x[S],typeof w=="object")b=w;else throw Error(Hn+S+" not an object: "+w);if(x.hasOwnProperty(S="ALPHABET"))if(w=x[S],typeof w=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(w))E=w.slice(0,10)=="0123456789",F=w;else throw Error(Hn+S+" invalid: "+w)}else throw Error(Hn+"Object expected: "+x);return{DECIMAL_PLACES:s,ROUNDING_MODE:a,EXPONENTIAL_AT:[u,c],RANGE:[l,d],CRYPTO:g,MODULO_MODE:p,POW_PRECISION:m,FORMAT:b,ALPHABET:F}},v.isBigNumber=function(x){if(!x||x._isBigNumber!==!0)return!1;if(!v.DEBUG)return!0;var S,w,P=x.c,f=x.e,k=x.s;e:if({}.toString.call(P)=="[object Array]"){if((k===1||k===-1)&&f>=-un&&f<=un&&f===gr(f)){if(P[0]===0){if(f===0&&P.length===1)return!0;break e}if(S=(f+1)%He,S<1&&(S+=He),String(P[0]).length==S){for(S=0;S<P.length;S++)if(w=P[S],w<0||w>=Pr||w!==gr(w))break e;if(w!==0)return!0}}}else if(P===null&&f===null&&(k===null||k===1||k===-1))return!0;throw Error(Hn+"Invalid BigNumber: "+x)},v.maximum=v.max=function(){return O(arguments,-1)},v.minimum=v.min=function(){return O(arguments,1)},v.random=(function(){var x=9007199254740992,S=Math.random()*x&2097151?function(){return gr(Math.random()*x)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(w){var P,f,k,T,h,I=0,A=[],M=new v(i);if(w==null?w=s:$t(w,0,un),T=um(w/He),g)if(crypto.getRandomValues){for(P=crypto.getRandomValues(new Uint32Array(T*=2));I<T;)h=P[I]*131072+(P[I+1]>>>11),h>=9e15?(f=crypto.getRandomValues(new Uint32Array(2)),P[I]=f[0],P[I+1]=f[1]):(A.push(h%1e14),I+=2);I=T/2}else if(crypto.randomBytes){for(P=crypto.randomBytes(T*=7);I<T;)h=(P[I]&31)*281474976710656+P[I+1]*1099511627776+P[I+2]*4294967296+P[I+3]*16777216+(P[I+4]<<16)+(P[I+5]<<8)+P[I+6],h>=9e15?crypto.randomBytes(7).copy(P,I):(A.push(h%1e14),I+=7);I=T/7}else throw g=!1,Error(Hn+"crypto unavailable");if(!g)for(;I<T;)h=S(),h<9e15&&(A[I++]=h%1e14);for(T=A[--I],w%=He,T&&w&&(h=dm[He-w],A[I]=gr(T/h)*h);A[I]===0;A.pop(),I--);if(I<0)A=[k=0];else{for(k=-1;A[0]===0;A.splice(0,1),k-=He);for(I=1,h=A[0];h>=10;h/=10,I++);I<He&&(k-=He-I)}return M.e=k,M.c=A,M}})(),v.sum=function(){for(var x=1,S=arguments,w=new v(S[0]);x<S.length;)w=w.plus(S[x++]);return w},n=(function(){var x="0123456789";function S(w,P,f,k){for(var T,h=[0],I,A=0,M=w.length;A<M;){for(I=h.length;I--;h[I]*=P);for(h[0]+=k.indexOf(w.charAt(A++)),T=0;T<h.length;T++)h[T]>f-1&&(h[T+1]==null&&(h[T+1]=0),h[T+1]+=h[T]/f|0,h[T]%=f)}return h.reverse()}return function(w,P,f,k,T){var h,I,A,M,z,C,R,W,B=w.indexOf("."),ie=s,Y=a;for(B>=0&&(M=m,m=0,w=w.replace(".",""),W=new v(P),C=W.pow(w.length-B),m=M,W.c=S(ao(dr(C.c),C.e,"0"),10,f,x),W.e=W.c.length),R=S(w,P,f,T?(h=F,x):(h=x,F)),A=M=R.length;R[--M]==0;R.pop());if(!R[0])return h.charAt(0);if(B<0?--A:(C.c=R,C.e=A,C.s=k,C=t(C,W,ie,Y,f),R=C.c,z=C.r,A=C.e),I=A+ie+1,B=R[I],M=f/2,z=z||I<0||R[I+1]!=null,z=Y<4?(B!=null||z)&&(Y==0||Y==(C.s<0?3:2)):B>M||B==M&&(Y==4||z||Y==6&&R[I-1]&1||Y==(C.s<0?8:7)),I<1||!R[0])w=z?ao(h.charAt(1),-ie,h.charAt(0)):h.charAt(0);else{if(R.length=I,z)for(--f;++R[--I]>f;)R[I]=0,I||(++A,R=[1].concat(R));for(M=R.length;!R[--M];);for(B=0,w="";B<=M;w+=h.charAt(R[B++]));w=ao(w,A,h.charAt(0))}return w}})(),t=(function(){function x(P,f,k){var T,h,I,A,M=0,z=P.length,C=f%Lo,R=f/Lo|0;for(P=P.slice();z--;)I=P[z]%Lo,A=P[z]/Lo|0,T=R*I+A*C,h=C*I+T%Lo*Lo+M,M=(h/k|0)+(T/Lo|0)+R*A,P[z]=h%k;return M&&(P=[M].concat(P)),P}function S(P,f,k,T){var h,I;if(k!=T)I=k>T?1:-1;else for(h=I=0;h<k;h++)if(P[h]!=f[h]){I=P[h]>f[h]?1:-1;break}return I}function w(P,f,k,T){for(var h=0;k--;)P[k]-=h,h=P[k]<f[k]?1:0,P[k]=h*T+P[k]-f[k];for(;!P[0]&&P.length>1;P.splice(0,1));}return function(P,f,k,T,h){var I,A,M,z,C,R,W,B,ie,Y,se,me,Fe,et,ee,Ee,Te,ue=P.s==f.s?1:-1,Be=P.c,ge=f.c;if(!Be||!Be[0]||!ge||!ge[0])return new v(!P.s||!f.s||(Be?ge&&Be[0]==ge[0]:!ge)?NaN:Be&&Be[0]==0||!ge?ue*0:ue/0);for(B=new v(ue),ie=B.c=[],A=P.e-f.e,ue=k+A+1,h||(h=Pr,A=fr(P.e/He)-fr(f.e/He),ue=ue/He|0),M=0;ge[M]==(Be[M]||0);M++);if(ge[M]>(Be[M]||0)&&A--,ue<0)ie.push(1),z=!0;else{for(et=Be.length,Ee=ge.length,M=0,ue+=2,C=gr(h/(ge[0]+1)),C>1&&(ge=x(ge,C,h),Be=x(Be,C,h),Ee=ge.length,et=Be.length),Fe=Ee,Y=Be.slice(0,Ee),se=Y.length;se<Ee;Y[se++]=0);Te=ge.slice(),Te=[0].concat(Te),ee=ge[0],ge[1]>=h/2&&ee++;do{if(C=0,I=S(ge,Y,Ee,se),I<0){if(me=Y[0],Ee!=se&&(me=me*h+(Y[1]||0)),C=gr(me/ee),C>1)for(C>=h&&(C=h-1),R=x(ge,C,h),W=R.length,se=Y.length;S(R,Y,W,se)==1;)C--,w(R,Ee<W?Te:ge,W,h),W=R.length,I=1;else C==0&&(I=C=1),R=ge.slice(),W=R.length;if(W<se&&(R=[0].concat(R)),w(Y,R,se,h),se=Y.length,I==-1)for(;S(ge,Y,Ee,se)<1;)C++,w(Y,Ee<se?Te:ge,se,h),se=Y.length}else I===0&&(C++,Y=[0]);ie[M++]=C,Y[0]?Y[se++]=Be[Fe]||0:(Y=[Be[Fe]],se=1)}while((Fe++<et||Y[0]!=null)&&ue--);z=Y[0]!=null,ie[0]||ie.splice(0,1)}if(h==Pr){for(M=1,ue=ie[0];ue>=10;ue/=10,M++);L(B,k+(B.e=M+A*He-1)+1,T,z)}else B.e=A,B.r=+z;return B}})();function D(x,S,w,P){var f,k,T,h,I;if(w==null?w=a:$t(w,0,8),!x.c)return x.toString();if(f=x.c[0],T=x.e,S==null)I=dr(x.c),I=P==1||P==2&&(T<=u||T>=c)?Jl(I,T):ao(I,T,"0");else if(x=L(new v(x),S,w),k=x.e,I=dr(x.c),h=I.length,P==1||P==2&&(S<=k||k<=u)){for(;h<S;I+="0",h++);I=Jl(I,k)}else if(S-=T+(P===2&&k>T),I=ao(I,k,"0"),k+1>h){if(--S>0)for(I+=".";S--;I+="0");}else if(S+=k-h,S>0)for(k+1==h&&(I+=".");S--;I+="0");return x.s<0&&f?"-"+I:I}function O(x,S){for(var w,P,f=1,k=new v(x[0]);f<x.length;f++)P=new v(x[f]),(!P.s||(w=oi(k,P))===S||w===0&&k.s===S)&&(k=P);return k}function $(x,S,w){for(var P=1,f=S.length;!S[--f];S.pop());for(f=S[0];f>=10;f/=10,P++);return(w=P+w*He-1)>d?x.c=x.e=null:w<l?x.c=[x.e=0]:(x.e=w,x.c=S),x}r=(function(){var x=/^(-?)0([xbo])(?=\w[\w.]*$)/i,S=/^([^.]+)\.$/,w=/^\.([^.]+)$/,P=/^-?(Infinity|NaN)$/,f=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(k,T,h,I){var A,M=h?T:T.replace(f,"");if(P.test(M))k.s=isNaN(M)?null:M<0?-1:1;else{if(!h&&(M=M.replace(x,function(z,C,R){return A=(R=R.toLowerCase())=="x"?16:R=="b"?2:8,!I||I==A?C:z}),I&&(A=I,M=M.replace(S,"$1").replace(w,"0.$1")),T!=M))return new v(M,A);if(v.DEBUG)throw Error(Hn+"Not a"+(I?" base "+I:"")+" number: "+T);k.s=null}k.c=k.e=null}})();function L(x,S,w,P){var f,k,T,h,I,A,M,z=x.c,C=dm;if(z){e:{for(f=1,h=z[0];h>=10;h/=10,f++);if(k=S-f,k<0)k+=He,T=S,I=z[A=0],M=gr(I/C[f-T-1]%10);else if(A=um((k+1)/He),A>=z.length)if(P){for(;z.length<=A;z.push(0));I=M=0,f=1,k%=He,T=k-He+1}else break e;else{for(I=h=z[A],f=1;h>=10;h/=10,f++);k%=He,T=k-He+f,M=T<0?0:gr(I/C[f-T-1]%10)}if(P=P||S<0||z[A+1]!=null||(T<0?I:I%C[f-T-1]),P=w<4?(M||P)&&(w==0||w==(x.s<0?3:2)):M>5||M==5&&(w==4||P||w==6&&(k>0?T>0?I/C[f-T]:0:z[A-1])%10&1||w==(x.s<0?8:7)),S<1||!z[0])return z.length=0,P?(S-=x.e+1,z[0]=C[(He-S%He)%He],x.e=-S||0):z[0]=x.e=0,x;if(k==0?(z.length=A,h=1,A--):(z.length=A+1,h=C[He-k],z[A]=T>0?gr(I/C[f-T]%C[T])*h:0),P)for(;;)if(A==0){for(k=1,T=z[0];T>=10;T/=10,k++);for(T=z[0]+=h,h=1;T>=10;T/=10,h++);k!=h&&(x.e++,z[0]==Pr&&(z[0]=1));break}else{if(z[A]+=h,z[A]!=Pr)break;z[A--]=0,h=1}for(k=z.length;z[--k]===0;z.pop());}x.e>d?x.c=x.e=null:x.e<l&&(x.c=[x.e=0])}return x}function N(x){var S,w=x.e;return w===null?x.toString():(S=dr(x.c),S=w<=u||w>=c?Jl(S,w):ao(S,w,"0"),x.s<0?"-"+S:S)}return o.absoluteValue=o.abs=function(){var x=new v(this);return x.s<0&&(x.s=1),x},o.comparedTo=function(x,S){return oi(this,new v(x,S))},o.decimalPlaces=o.dp=function(x,S){var w,P,f,k=this;if(x!=null)return $t(x,0,un),S==null?S=a:$t(S,0,8),L(new v(k),x+k.e+1,S);if(!(w=k.c))return null;if(P=((f=w.length-1)-fr(this.e/He))*He,f=w[f])for(;f%10==0;f/=10,P--);return P<0&&(P=0),P},o.dividedBy=o.div=function(x,S){return t(this,new v(x,S),s,a)},o.dividedToIntegerBy=o.idiv=function(x,S){return t(this,new v(x,S),0,1)},o.exponentiatedBy=o.pow=function(x,S){var w,P,f,k,T,h,I,A,M,z=this;if(x=new v(x),x.c&&!x.isInteger())throw Error(Hn+"Exponent not an integer: "+N(x));if(S!=null&&(S=new v(S)),h=x.e>14,!z.c||!z.c[0]||z.c[0]==1&&!z.e&&z.c.length==1||!x.c||!x.c[0])return M=new v(Math.pow(+N(z),h?x.s*(2-Ql(x)):+N(x))),S?M.mod(S):M;if(I=x.s<0,S){if(S.c?!S.c[0]:!S.s)return new v(NaN);P=!I&&z.isInteger()&&S.isInteger(),P&&(z=z.mod(S))}else{if(x.e>9&&(z.e>0||z.e<-1||(z.e==0?z.c[0]>1||h&&z.c[1]>=24e7:z.c[0]<8e13||h&&z.c[0]<=9999975e7)))return k=z.s<0&&Ql(x)?-0:0,z.e>-1&&(k=1/k),new v(I?1/k:k);m&&(k=um(m/He+2))}for(h?(w=new v(.5),I&&(x.s=1),A=Ql(x)):(f=Math.abs(+N(x)),A=f%2),M=new v(i);;){if(A){if(M=M.times(z),!M.c)break;k?M.c.length>k&&(M.c.length=k):P&&(M=M.mod(S))}if(f){if(f=gr(f/2),f===0)break;A=f%2}else if(x=x.times(w),L(x,x.e+1,1),x.e>14)A=Ql(x);else{if(f=+N(x),f===0)break;A=f%2}z=z.times(z),k?z.c&&z.c.length>k&&(z.c.length=k):P&&(z=z.mod(S))}return P?M:(I&&(M=i.div(M)),S?M.mod(S):k?L(M,m,a,T):M)},o.integerValue=function(x){var S=new v(this);return x==null?x=a:$t(x,0,8),L(S,S.e+1,x)},o.isEqualTo=o.eq=function(x,S){return oi(this,new v(x,S))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(x,S){return oi(this,new v(x,S))>0},o.isGreaterThanOrEqualTo=o.gte=function(x,S){return(S=oi(this,new v(x,S)))===1||S===0},o.isInteger=function(){return!!this.c&&fr(this.e/He)>this.c.length-2},o.isLessThan=o.lt=function(x,S){return oi(this,new v(x,S))<0},o.isLessThanOrEqualTo=o.lte=function(x,S){return(S=oi(this,new v(x,S)))===-1||S===0},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&this.c[0]==0},o.minus=function(x,S){var w,P,f,k,T=this,h=T.s;if(x=new v(x,S),S=x.s,!h||!S)return new v(NaN);if(h!=S)return x.s=-S,T.plus(x);var I=T.e/He,A=x.e/He,M=T.c,z=x.c;if(!I||!A){if(!M||!z)return M?(x.s=-S,x):new v(z?T:NaN);if(!M[0]||!z[0])return z[0]?(x.s=-S,x):new v(M[0]?T:a==3?-0:0)}if(I=fr(I),A=fr(A),M=M.slice(),h=I-A){for((k=h<0)?(h=-h,f=M):(A=I,f=z),f.reverse(),S=h;S--;f.push(0));f.reverse()}else for(P=(k=(h=M.length)<(S=z.length))?h:S,h=S=0;S<P;S++)if(M[S]!=z[S]){k=M[S]<z[S];break}if(k&&(f=M,M=z,z=f,x.s=-x.s),S=(P=z.length)-(w=M.length),S>0)for(;S--;M[w++]=0);for(S=Pr-1;P>h;){if(M[--P]<z[P]){for(w=P;w&&!M[--w];M[w]=S);--M[w],M[P]+=Pr}M[P]-=z[P]}for(;M[0]==0;M.splice(0,1),--A);return M[0]?$(x,M,A):(x.s=a==3?-1:1,x.c=[x.e=0],x)},o.modulo=o.mod=function(x,S){var w,P,f=this;return x=new v(x,S),!f.c||!x.s||x.c&&!x.c[0]?new v(NaN):!x.c||f.c&&!f.c[0]?new v(f):(p==9?(P=x.s,x.s=1,w=t(f,x,0,3),x.s=P,w.s*=P):w=t(f,x,0,p),x=f.minus(w.times(x)),!x.c[0]&&p==1&&(x.s=f.s),x)},o.multipliedBy=o.times=function(x,S){var w,P,f,k,T,h,I,A,M,z,C,R,W,B,ie,Y=this,se=Y.c,me=(x=new v(x,S)).c;if(!se||!me||!se[0]||!me[0])return!Y.s||!x.s||se&&!se[0]&&!me||me&&!me[0]&&!se?x.c=x.e=x.s=null:(x.s*=Y.s,!se||!me?x.c=x.e=null:(x.c=[0],x.e=0)),x;for(P=fr(Y.e/He)+fr(x.e/He),x.s*=Y.s,I=se.length,z=me.length,I<z&&(W=se,se=me,me=W,f=I,I=z,z=f),f=I+z,W=[];f--;W.push(0));for(B=Pr,ie=Lo,f=z;--f>=0;){for(w=0,C=me[f]%ie,R=me[f]/ie|0,T=I,k=f+T;k>f;)A=se[--T]%ie,M=se[T]/ie|0,h=R*A+M*C,A=C*A+h%ie*ie+W[k]+w,w=(A/B|0)+(h/ie|0)+R*M,W[k--]=A%B;W[k]=w}return w?++P:W.splice(0,1),$(x,W,P)},o.negated=function(){var x=new v(this);return x.s=-x.s||null,x},o.plus=function(x,S){var w,P=this,f=P.s;if(x=new v(x,S),S=x.s,!f||!S)return new v(NaN);if(f!=S)return x.s=-S,P.minus(x);var k=P.e/He,T=x.e/He,h=P.c,I=x.c;if(!k||!T){if(!h||!I)return new v(f/0);if(!h[0]||!I[0])return I[0]?x:new v(h[0]?P:f*0)}if(k=fr(k),T=fr(T),h=h.slice(),f=k-T){for(f>0?(T=k,w=I):(f=-f,w=h),w.reverse();f--;w.push(0));w.reverse()}for(f=h.length,S=I.length,f-S<0&&(w=I,I=h,h=w,S=f),f=0;S;)f=(h[--S]=h[S]+I[S]+f)/Pr|0,h[S]=Pr===h[S]?0:h[S]%Pr;return f&&(h=[f].concat(h),++T),$(x,h,T)},o.precision=o.sd=function(x,S){var w,P,f,k=this;if(x!=null&&x!==!!x)return $t(x,1,un),S==null?S=a:$t(S,0,8),L(new v(k),x,S);if(!(w=k.c))return null;if(f=w.length-1,P=f*He+1,f=w[f]){for(;f%10==0;f/=10,P--);for(f=w[0];f>=10;f/=10,P++);}return x&&k.e+1>P&&(P=k.e+1),P},o.shiftedBy=function(x){return $t(x,-pm,pm),this.times("1e"+x)},o.squareRoot=o.sqrt=function(){var x,S,w,P,f,k=this,T=k.c,h=k.s,I=k.e,A=s+4,M=new v("0.5");if(h!==1||!T||!T[0])return new v(!h||h<0&&(!T||T[0])?NaN:T?k:1/0);if(h=Math.sqrt(+N(k)),h==0||h==1/0?(S=dr(T),(S.length+I)%2==0&&(S+="0"),h=Math.sqrt(+S),I=fr((I+1)/2)-(I<0||I%2),h==1/0?S="5e"+I:(S=h.toExponential(),S=S.slice(0,S.indexOf("e")+1)+I),w=new v(S)):w=new v(h+""),w.c[0]){for(I=w.e,h=I+A,h<3&&(h=0);;)if(f=w,w=M.times(f.plus(t(k,f,A,1))),dr(f.c).slice(0,h)===(S=dr(w.c)).slice(0,h))if(w.e<I&&--h,S=S.slice(h-3,h+1),S=="9999"||!P&&S=="4999"){if(!P&&(L(f,f.e+s+2,0),f.times(f).eq(k))){w=f;break}A+=4,h+=4,P=1}else{(!+S||!+S.slice(1)&&S.charAt(0)=="5")&&(L(w,w.e+s+2,1),x=!w.times(w).eq(k));break}}return L(w,w.e+s+1,a,x)},o.toExponential=function(x,S){return x!=null&&($t(x,0,un),x++),D(this,x,S,1)},o.toFixed=function(x,S){return x!=null&&($t(x,0,un),x=x+this.e+1),D(this,x,S)},o.toFormat=function(x,S,w){var P,f=this;if(w==null)x!=null&&S&&typeof S=="object"?(w=S,S=null):x&&typeof x=="object"?(w=x,x=S=null):w=b;else if(typeof w!="object")throw Error(Hn+"Argument not an object: "+w);if(P=f.toFixed(x,S),f.c){var k,T=P.split("."),h=+w.groupSize,I=+w.secondaryGroupSize,A=w.groupSeparator||"",M=T[0],z=T[1],C=f.s<0,R=C?M.slice(1):M,W=R.length;if(I&&(k=h,h=I,I=k,W-=k),h>0&&W>0){for(k=W%h||h,M=R.substr(0,k);k<W;k+=h)M+=A+R.substr(k,h);I>0&&(M+=A+R.slice(k)),C&&(M="-"+M)}P=z?M+(w.decimalSeparator||"")+((I=+w.fractionGroupSize)?z.replace(new RegExp("\\d{"+I+"}\\B","g"),"$&"+(w.fractionGroupSeparator||"")):z):M}return(w.prefix||"")+P+(w.suffix||"")},o.toFraction=function(x){var S,w,P,f,k,T,h,I,A,M,z,C,R=this,W=R.c;if(x!=null&&(h=new v(x),!h.isInteger()&&(h.c||h.s!==1)||h.lt(i)))throw Error(Hn+"Argument "+(h.isInteger()?"out of range: ":"not an integer: ")+N(h));if(!W)return new v(R);for(S=new v(i),A=w=new v(i),P=I=new v(i),C=dr(W),k=S.e=C.length-R.e-1,S.c[0]=dm[(T=k%He)<0?He+T:T],x=!x||h.comparedTo(S)>0?k>0?S:A:h,T=d,d=1/0,h=new v(C),I.c[0]=0;M=t(h,S,0,1),f=w.plus(M.times(P)),f.comparedTo(x)!=1;)w=P,P=f,A=I.plus(M.times(f=A)),I=f,S=h.minus(M.times(f=S)),h=f;return f=t(x.minus(w),P,0,1),I=I.plus(f.times(A)),w=w.plus(f.times(P)),I.s=A.s=R.s,k=k*2,z=t(A,P,k,a).minus(R).abs().comparedTo(t(I,w,k,a).minus(R).abs())<1?[A,P]:[I,w],d=T,z},o.toNumber=function(){return+N(this)},o.toPrecision=function(x,S){return x!=null&&$t(x,1,un),D(this,x,S,2)},o.toString=function(x){var S,w=this,P=w.s,f=w.e;return f===null?P?(S="Infinity",P<0&&(S="-"+S)):S="NaN":(x==null?S=f<=u||f>=c?Jl(dr(w.c),f):ao(dr(w.c),f,"0"):x===10&&E?(w=L(new v(w),s+f+1,a),S=ao(dr(w.c),w.e,"0")):($t(x,2,F.length,"Base"),S=n(ao(dr(w.c),f,"0"),10,x,P,!0)),P<0&&w.c[0]&&(S="-"+S)),S},o.valueOf=o.toJSON=function(){return N(this)},o._isBigNumber=!0,o[Symbol.toStringTag]="BigNumber",o[Symbol.for("nodejs.util.inspect.custom")]=o.valueOf,e!=null&&v.set(e),v}function fr(e){var t=e|0;return e>0||e===t?t:t-1}function dr(e){for(var t,n,r=1,o=e.length,i=e[0]+"";r<o;){for(t=e[r++]+"",n=He-t.length;n--;t="0"+t);i+=t}for(o=i.length;i.charCodeAt(--o)===48;);return i.slice(0,o+1||1)}function oi(e,t){var n,r,o=e.c,i=t.c,s=e.s,a=t.s,u=e.e,c=t.e;if(!s||!a)return null;if(n=o&&!o[0],r=i&&!i[0],n||r)return n?r?0:-a:s;if(s!=a)return s;if(n=s<0,r=u==c,!o||!i)return r?0:!o^n?1:-1;if(!r)return u>c^n?1:-1;for(a=(u=o.length)<(c=i.length)?u:c,s=0;s<a;s++)if(o[s]!=i[s])return o[s]>i[s]^n?1:-1;return u==c?0:u>c^n?1:-1}function $t(e,t,n,r){if(e<t||e>n||e!==gr(e))throw Error(Hn+(r||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function Ql(e){var t=e.c.length-1;return fr(e.e/He)==t&&e.c[t]%2!=0}function Jl(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function ao(e,t,n){var r,o;if(t<0){for(o=n+".";++t;o+=n);e=o+e}else if(r=e.length,++t>r){for(o=n,t-=r;--t;o+=n);e+=o}else t<r&&(e=e.slice(0,t)+"."+e.slice(t));return e}var Az=Fv(),Ev=Az;var Pz=24,Zs=32,Lz=()=>typeof globalThis<"u"&&globalThis.crypto&&typeof globalThis.crypto.getRandomValues=="function"?()=>{let e=new Uint32Array(1);return globalThis.crypto.getRandomValues(e),e[0]/4294967296}:Math.random,fm=Lz(),gm=(e=4,t=fm)=>{let n="";for(;n.length<e;)n=n+Math.floor(t()*36).toString(36);return n};function Mz(e){let t=new Ev(0);for(let n of e.values())t=t.multipliedBy(256).plus(n);return t}var Pv=(e="")=>{let t=new TextEncoder;return Mz(Tv(t.encode(e))).toString(36).slice(1)},Av=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),Bz=e=>Av[Math.floor(e()*Av.length)],Dz=({globalObj:e=typeof global<"u"?global:typeof window<"u"?window:{},random:t=fm}={})=>{let n=Object.keys(e).toString(),r=n.length?n+gm(Zs,t):gm(Zs,t);return Pv(r).substring(0,Zs)},Rz=e=>()=>e++,zz=476782367,Lv=({random:e=fm,counter:t=Rz(Math.floor(e()*zz)),length:n=Pz,fingerprint:r=Dz({random:e})}={})=>{if(n>Zs)throw new Error(`Length must be between 2 and ${Zs}. Received: ${n}`);return function(){let i=Bz(e),s=Date.now().toString(36),a=t().toString(36),u=gm(n,e),c=`${s+u+a+r}`;return`${i+Pv(c).substring(1,n)}`}},Mo=Nz(Lv);function Nz(e){let t;return()=>(t||(t=e()),t())}var $z=Ga(Dv());Un();Ne();var Zl=/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g;function Uz(e){return e.replace(/\*\*/g,"").replace(/\*/g,"").replace(/__/g,"").replace(/_/g," ").trim()}function mm(e,t){let n=[],r=e.split(`
15
- `);for(let s=0;s<r.length;s++){let a=Uz(r[s]),u=Zl.exec(a);if(u){let[,c,l,,d]=u,g=jz(l),p=Hz(r,s+1),m={id:Mo(),reviewId:t,type:c.trim(),severity:g,title:d.trim(),description:p.description,file:p.file,lineNumber:p.lineNumber,property:p.property,currentValue:p.currentValue,suggestedValue:p.suggestedValue,suggestedCode:p.suggestedCode,suggestedFix:p.suggestedFix,fixTarget:p.fixTarget,fixRequired:p.fixRequired,status:"pending",selectedForFix:!1,createdAt:new Date};n.push(m)}Zl.lastIndex=0}return n.map(s=>{let a=Hs(s);return a.dismissed?(y.debug(`[parseIssues] Auto-dismissed: ${s.title} - ${a.dismissReason}`),{...s,dismissed:!0,dismissReason:a.dismissReason,dismissedBy:a.dismissedBy,dismissedAt:new Date}):s})}function jz(e){let t=e.toLowerCase().trim();return t.includes("critical")||t.includes("high")?"critical":t.includes("major")||t.includes("medium")?"major":"minor"}function Hz(e,t){let n={description:"",file:void 0,lineNumber:void 0,property:void 0,currentValue:void 0,suggestedValue:void 0,suggestedCode:void 0,suggestedFix:void 0,fixTarget:void 0,fixRequired:void 0},r=[];for(let o=t;o<e.length;o++){let i=e[o].trim();if(!i||Zl.test(i)){Zl.lastIndex=0;break}if(i.startsWith("Expected:"))n.suggestedValue=i.replace("Expected:","").trim();else if(i.startsWith("Actual:")||i.startsWith("Current:"))n.currentValue=i.replace(/^(Actual|Current):/,"").trim();else if(i.startsWith("File:")){let s=i.replace("File:","").trim(),a=s.match(/^(.+?):(\d+)$/);a?(n.file=a[1],n.lineNumber=parseInt(a[2],10)):n.file=s}else if(i.startsWith("Property:"))n.property=i.replace("Property:","").trim();else if(i.startsWith("FixTarget:")){let s=i.replace("FixTarget:","").trim().toLowerCase();(s==="css"||s==="component")&&(n.fixTarget=s)}else if(i.startsWith("FixRequired:")){let s=i.replace("FixRequired:","").trim().toLowerCase();n.fixRequired=s==="true"}else if(i.startsWith("Fix:"))n.suggestedFix=i.replace("Fix:","").trim();else if(i.startsWith("```")){let s=[];for(o++;o<e.length&&!e[o].trim().startsWith("```");)s.push(e[o]),o++;n.suggestedCode=s.join(`
16
- `)}else r.push(i)}return n.description=r.join(" ").trim(),n}Ne();var ea=null,Rv=0,Wz=3e4;async function Vz(){let e=Date.now();if(ea&&e-Rv<Wz)return ea;try{let t=await fetch("/index.json");if(!t.ok)throw new Error(`Failed to fetch index.json: ${t.status}`);let n=await t.json();return ea=n.entries||n.stories||{},Rv=e,y.debug("[storyFilePaths] Fetched index.json, entries:",Object.keys(ea).length),ea}catch(t){throw y.error("[storyFilePaths] Error fetching index.json:",t),t}}async function ta(e){try{let n=(await Vz())[e];if(!n?.importPath)return y.warn("[storyFilePaths] No importPath found for story:",e),null;let r=n.importPath;y.debug("[storyFilePaths] Found importPath:",r);let o=r.replace(/^\.\//,""),i;n.componentPath?(i=n.componentPath.replace(/^\.\//,""),y.debug("[storyFilePaths] Using Storybook componentPath:",i)):(i=`${o.replace(/\.stories\.tsx$/,"").replace(/\.stories\.ts$/,"").replace(/\.stories\.jsx$/,"").replace(/\.stories\.js$/,"")}.tsx`,y.debug("[storyFilePaths] Derived componentFile:",i));let s=i.replace(/\.tsx$/,".css").replace(/\.ts$/,".css").replace(/\.jsx$/,".css").replace(/\.js$/,".css"),a=i.substring(0,i.lastIndexOf("/")),u={storyFile:o,componentFile:i,cssFile:s,baseDir:a};return y.debug("[storyFilePaths] Final paths:",u),u}catch(t){return y.error("[storyFilePaths] Error getting file paths:",t),null}}function hm(e,t){if(e==="css")return t.cssFile;if(e==="component")return t.componentFile;if(e==="story")return t.storyFile}function Gz(e,t){let n=e.toLowerCase().trim();return["color","spacing","typography","dimension","border","shadow","layout","background","font","size","margin","padding"].some(i=>n.includes(i))?t.cssFile:t.componentFile}function xm(e,t){let n=e.property?.toLowerCase()||"",r=e.domElement?.toLowerCase()||"",o=r.startsWith("svg"),i=r.startsWith("img"),s=n==="width"||n==="height",a=/\[(?:width|height)=/.test(r);return(o||i)&&s||a?(y.debug(`[storyFilePaths] \u{1F50D} INLINE ATTRIBUTE: domElement="${e.domElement}", property="${e.property}" \u2192 component file`),t.componentFile):Gz(e.type,t)}Ne();function qz(e){let t=(e.description||"").toLowerCase(),n=(e.title||"").toLowerCase(),r=`${t} ${n}`;return r.includes("inner icon")||r.includes("inner vector")?"inner-icon":r.includes("second icon")?"icon-2":r.includes("first icon")?"icon-1":r.includes("icon")||r.includes("vector")||r.includes("svg")?"icon":r.includes("button")?"button":r.includes("text")||r.includes("label")?"text":r.includes("container")||r.includes("wrapper")?"container":"other"}function Yz(e){let t=(e.property||"").toLowerCase(),n=(e.description||"").toLowerCase();return t.includes("width")||t.includes("height")||t.includes("size")||t.includes("dimensions")?"dimensions":t.includes("padding")||t.includes("margin")||t.includes("gap")?"spacing":t.includes("color")||t.includes("background")||t.includes("fill")?"colors":t.includes("font")||t.includes("text")||t.includes("line-height")?"typography":t.includes("border")||t.includes("radius")?"border":n.includes("overall")||n.includes("visual fidelity")||n.includes("pixel similarity")||t.includes("overall")?"summary":"other"}function Kz(e){let t=(e.property||"").toLowerCase(),n=(e.description||"").toLowerCase();return t.includes("overall")||t.includes("visual fidelity")||n.includes("pixel similarity score")||n.includes("primarily explained by")||n.includes("visual discrepancy")}function Xz(e,t,n){let r={critical:3,major:2,minor:1},i=[...e].sort((c,l)=>(r[l.severity]||0)-(r[c.severity]||0))[0],s=e.length,a,u;if(t.includes("icon")&&n==="dimensions"){let c=e.map(d=>d.currentValue).filter(Boolean),l=e.map(d=>d.suggestedValue).filter(Boolean);a=`Icon sizing is incorrect (${s} related issues)`,u=`Icons are rendered at wrong dimensions. Current: ${c[0]||"10px"}, Expected: ${l[0]||"20px"}. This single CSS fix will resolve all ${s} icon dimension issues.`}else a=`${t} ${n} issues (${s} related)`,u=`${s} related ${n} issues for ${t}. ${i.description}`;return{...i,id:`merged-${t}-${n}-${i.id}`,title:a,description:u,currentValue:i.currentValue,suggestedValue:i.suggestedValue,mergedCount:s,mergedIssueIds:e.map(c=>c.id)}}function ym(e){if(!e||e.length===0)return[];let t=e.filter(i=>!Kz(i)),n=[],r=[];for(let i of t){let s=qz(i),a=Yz(i);s.includes("icon")&&a==="dimensions"?n.push(i):r.push(i)}let o=[];return n.length>0&&(n.length===1?o.push(n[0]):o.push(Xz(n,"icon","dimensions"))),o.push(...r),y.debug("[deduplicateIssues] Input:",e.length,"issues, Output:",o.length,"issues"),y.debug("[deduplicateIssues] Removed",e.length-t.length,"summary issues"),y.debug("[deduplicateIssues] Merged",n.length,"icon issues into",n.length>0?1:0),o}Ne();Un();var Qz=[/Failed to fetch/i,/NetworkError/i,/network request failed/i,/load failed/i,/ERR_(NETWORK|INTERNET|CONNECTION|NAME_NOT_RESOLVED)/i,/timed out/i,/aborted/i],Jz=[/credits?/i,/Rate limit/i,/Figma connection expired/i,/Map.*to Figma|Figma mapping required/i,/No project selected/i,/Not authenticated/i,/No story/i,/Monthly review limit/i,/Upgrade your plan/i];function zv(e){let t=e instanceof Error?e.message:typeof e=="string"?e:"Review failed";return Jz.some(n=>n.test(t))?t:Qz.some(n=>n.test(t))?`Can't reach ${Pt.NAME}. Check your internet connection and try again. If the dashboard URL is wrong, fix it in Settings.`:/Unauthorized|401/i.test(t)?"Your session expired. Sign out and back in from Settings to continue.":/Internal Server Error|5\d\d|server error/i.test(t)?`${Pt.NAME}'s servers had a hiccup. Try the review again in a moment. If it keeps failing, send feedback.`:/parsing|SSE|stream|structured result|failed to receive/i.test(t)?"Review completed but the result was malformed. Try again, or send feedback if it keeps happening.":`Review failed: ${t}. Try again, or send feedback if this keeps happening.`}Ue();import{addons as Hi}from"storybook/manager-api";var bm="uireview/badge",Ui={REVIEW_START:"uireview/review-start",REVIEW_COMPLETE:"uireview/review-complete",REVIEW_ERROR:"uireview/review-error"};function Zz(e){return e.score<70?"status-value:error":e.score<90?"status-value:warning":"status-value:success"}function eN(e){let t=[`Score: ${e.score}`];return e.criticalCount>0&&t.push(`${e.criticalCount} critical`),e.majorCount>0&&t.push(`${e.majorCount} major`),e.minorCount>0&&t.push(`${e.minorCount} minor`),t.join(" \xB7 ")}function tN(e){return e.score>=90?`\u2713 Score ${e.score}`:e.score>=70?`\u26A0 Score ${e.score}`:`\u2717 Score ${e.score}`}function ji(){try{let e=localStorage.getItem("uicopilot_feature_flags");return e?!!JSON.parse(e).enableReviewBadges:!1}catch{return!1}}function _v(e){if(ji())try{Hi.getChannel().emit(Ui.REVIEW_START,{storyId:e})}catch{}}function jr(e,t){if(ji())try{Hi.getChannel().emit(Ui.REVIEW_COMPLETE,{storyId:e,summary:t})}catch{}}function $v(e){if(ji())try{Hi.getChannel().emit(Ui.REVIEW_ERROR,{storyId:e})}catch{}}function Nv(e){try{typeof e.unset=="function"?e.unset():typeof e.set=="function"&&e.set([])}catch{}}var Ov=null;function Uv(e){if(Ov!==null)return;let t=Hi.getChannel(),n=o=>i=>{ji()&&o(i)};t.on(Ui.REVIEW_START,n(({storyId:o})=>{e.set([{value:"status-value:pending",typeId:bm,storyId:o,title:"Reviewing...",description:"AI review in progress"}])})),t.on(Ui.REVIEW_COMPLETE,n(({storyId:o,summary:i})=>{e.set([{value:Zz(i),typeId:bm,storyId:o,title:tN(i),description:eN(i)}])})),t.on(Ui.REVIEW_ERROR,n(({storyId:o})=>{e.set([{value:"status-value:error",typeId:bm,storyId:o,title:"Review Failed",description:"An error occurred during review"}])}));let r=ji();r||Nv(e),Ov=setInterval(()=>{let o=ji();o!==r&&(r=o,o||Nv(e))},1500)}var nN="uireview/mapped",jv="uireview/mappings-updated";function Hv(e){try{Hi.getChannel().emit(jv,{storyIds:e})}catch{}}function Wv(e){Hi.getChannel().on(jv,({storyIds:n})=>{n.length&&e.set(n.map(r=>({value:"status-value:success",typeId:nN,storyId:r,title:"\u2713 Linked to Figma",description:"Story has a Figma mapping"})))})}var Sm=G(),wm=180;function Bo(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object"){let t=e;if("value"in t&&typeof t.value=="string")return t.value;if("top"in t||"left"in t){let n=[t.top,t.right,t.bottom,t.left].filter(Boolean);if(n.length>0)return n.join(" ")}return JSON.stringify(e)}return String(e)}var vm=()=>{let{isReviewing:e,reviewError:t,reviewResults:n,showReviewMenu:r,severityFilter:o,showStreamingPanel:i,streamingPanelCollapsed:s,streamingMessages:a,streamingProgress:u,streamingStatus:c,selectedModels:l,setIsReviewing:d,setReviewingStoryId:g,setReviewError:p,setReviewResults:m,setShowReviewMenu:b,setSeverityFilter:F,setShowStreamingPanel:E,setStreamingPanelCollapsed:v,addStreamingMessage:D,updateStreamingMessage:O,clearStreamingMessages:$,setStreamingProgress:L,setStreamingStatus:N,setFullPrompt:x,setFullResponse:S,setFigmaImageUrl:w,storybookImageUrl:P,setStorybookImageUrl:f,setFigmaDimensions:k,setMultiModelResults:T,updateMultiModelStreamingMessages:h,setModelCompleted:I,setActiveModelId:A,resetReview:M,addReview:z,setReviewDetailTab:C,includeTextComparison:R,usePromptCache:W,setApplyFixesResult:B,featureFlags:ie,roleOverride:Y}=ce(),{sessionToken:se,usageData:me,setUsageData:Fe}=Se(),{selectedProjectId:et}=Qe(),{currentStoryId:ee,currentStoryName:Ee}=nt(),Te=ec(me);Te.current=me;let ue=ec(null),Be=ec(null),ge=ec({}),tt=na((fe,ne)=>{D({role:fe,content:ne})},[D]),xt=na((fe,ne)=>{L(fe),N(ne)},[L,N]),Sn=na(async fe=>{let{isIteration:ne=!1,parentReviewId:Ke=null}=fe||{};if(!se)throw new Error("Not authenticated");if(!et)throw new Error("No project selected");if(!ee||!Ee)throw new Error("No story is currently selected in Storybook");if(e){y.debug("[useAIReview] Review already in progress, ignoring duplicate request");return}let gt=Date.now();try{d(!0),g(ee),p(null),m(null),C("issues"),B(null),ee&&ie.enableReviewBadges&&_v(ee),Be.current&&clearTimeout(Be.current),Be.current=setTimeout(()=>{y.debug(`[useAIReview] Auto-stopping review after ${wm}s timeout`),ue.current&&ue.current.abort(),D({role:"system",content:`Review auto-stopped after ${wm} seconds timeout.`})},wm*1e3),x(""),S(""),E(!0),v(!1),$(),xt(0,"Starting review..."),xt(5,"Refreshing component preview..."),y.debug("[Review] Forcing iframe reload for fresh styles..."),await ql(),y.debug("[Review] Iframe reloaded, styles should be fresh"),xt(20,"Capturing screenshot & extracting styles..."),y.debug("[Review] Starting parallel data collection...");let[Ge,_,j]=await Promise.all([Vl({sessionToken:se||void 0}),Promise.resolve(Qs()),Promise.resolve(rm())]);if(Ge&&Ge!==P&&(f(Ge),y.debug("[Review] Storybook screenshot captured and set")),!_)throw new Error("Failed to extract styles from component");let{computed:H,declared:Z,markup:re,textElementStyles:Oe,nestedElementStyles:ir}=_;j?y.debug("[Review] DOM tree extracted:",{selector:j.selector,childrenCount:j.children.length}):(y.error("[Review] DOM tree extraction FAILED - domTree is null"),y.error("[Review] This will cause AI to use comparison table instead of tree comparison")),xt(50,"Preparing metadata..."),y.debug("[Review] Current story:",{id:ee,name:Ee});let Ct=yt.getState().currentMapping?.figmaNodeId??null,Sr=yt.getState().figmaImageUrl;if(Ct&&(y.debug("[Review] Using Figma node ID from store:",Ct),Sr&&(xt(65,"Using existing Figma design..."),y.debug("[Review] Reusing already-loaded Figma image"))),!Ct)try{let Xe=await fetch(`${Sm}/api/mappings?projectId=${et}&storyId=${ee}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${se}`}});if(Xe.ok){let _t=await Xe.json();_t.mapping?.figmaNodeId?(Ct=_t.mapping.figmaNodeId,y.debug("[Review] Found Figma node ID from API:",Ct)):y.debug("[Review] No mapping found for story:",ee)}else y.debug("[Review] Failed to fetch mapping:",Xe.status)}catch(Xe){y.error("[Review] Error fetching mapping:",Xe)}if(Ct&&!Sr){xt(65,"Fetching Figma design...");try{let Xe=await fetch(`${Sm}/api/figma/frames?projectId=${et}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${se}`}});if(Xe.ok){let Wt=(await Xe.json()).thumbnails?.[Ct];Wt?(w(Wt),y.debug("[Review] Figma thumbnail fetched and displayed:",Wt)):y.warn("[Review] No thumbnail found for node:",Ct)}else y.warn("[Review] Failed to fetch Figma frames:",Xe.status)}catch(Xe){y.error("[Review] Error fetching Figma frames:",Xe)}}if(!Ct)throw new Error('Figma mapping required. Please link this story to a Figma frame using the "Map to Figma" button before reviewing.');xt(80,"AI is analyzing your component..."),y.debug("[Review] Sending to streaming API...");let xo={projectId:et,storyId:ee,storyName:Ee,storybookScreenshot:Ge,computedStyles:H,declaredStyles:Z,textElementStyles:Oe,nestedElementStyles:ir,componentMarkup:re,domTree:j,figmaNodeId:Ct,figmaImageUrl:Sr||void 0,aiModels:l,includeTextComparison:R,usePromptCache:W,parentReviewId:ne?Ke:void 0,isIteration:ne};y.debug("[Review] Request payload:",{...xo,storybookScreenshot:Ge?`${Ge.substring(0,50)}...`:null,domTree:j?{selector:j.selector,childrenCount:j.children.length}:null}),ue.current=new AbortController;let jt=await fetch(`${Sm}/api/review/stream`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${se}`,...Yl(Y)},body:JSON.stringify(xo),signal:ue.current.signal});if(y.debug("[Review] Response status:",jt.status,jt.statusText),!jt.ok){let Xe=await jt.json();if(y.error("[Review] API error response:",Xe),jt.status===429){let _t=Xe.retryAfter||60;throw new Error(`Rate limit exceeded. Please wait ${_t} seconds before trying again.`)}if(jt.status===402){if(Xe.code==="INSUFFICIENT_CREDITS"){let _t=Xe.details?.required??1,Wt=Xe.details?.balance??0;throw new Error(`Not enough credits. This review requires ${_t} credit(s) but you have ${Wt}. Visit Settings to add more.`)}throw Xe.code==="SUBSCRIPTION_LIMIT_EXCEEDED"?new Error(Xe.message||"Monthly review limit reached. Upgrade your plan to continue."):new Error(Xe.message||"Payment required")}throw jt.status===401&&Xe.code==="FIGMA_AUTH_EXPIRED"?new Error("Figma connection expired. Open Settings \u2192 Disconnect \u2192 Reconnect Figma to continue."):new Error(Xe.error||Xe.message||"Review request failed")}let Xr=jt.body?.getReader(),wr=new TextDecoder,hu="",yo="",_e=null,xu=null,cy=l.length>1,Ko={},gs={},ZV={};if(!Xr)throw new Error("Response body is not readable");let uy=yt.getState().streamingMessages.length;for(tt("assistant","");;){let{done:Xe,value:_t}=await Xr.read();if(Xe)break;hu+=wr.decode(_t,{stream:!0});let Wt=hu.split(`
17
- `);hu=Wt.pop()||"";for(let Xn of Wt)if(Xn.startsWith("data: ")){let mn=Xn.slice(6);if(mn==="[DONE]")continue;try{let oe=JSON.parse(mn);if(oe.type!=="text"&&oe.type!=="content"&&y.debug("[Review] SSE Event received:",oe.type),oe.type==="prompt")oe.prompt&&(x(oe.prompt),y.debug("[Review] Prompt received early"));else if(oe.type==="model_started")y.debug("[Review] Model started:",oe.modelId),Ko[oe.modelId]||(Ko[oe.modelId]="",gs[oe.modelId]=[{role:"assistant",content:""}]);else if(oe.type==="text"||oe.type==="content")if(cy&&oe.modelId){Ko[oe.modelId]||(Ko[oe.modelId]="",gs[oe.modelId]=[{role:"assistant",content:""}]),Ko[oe.modelId]+=oe.content,gs[oe.modelId][0].content=Ko[oe.modelId],h(oe.modelId,gs[oe.modelId]);let Qt=Object.entries(Ko).map(([hn,at])=>`[${hn}]
18
- ${at}`).join(`
12
+ --`+new Array((n||t.length)+1).join("-")+"^"})}var e0=U(()=>{"use strict";ml()});var x2,y2,b2,S2,w2,t0,Ll,n0=U(()=>{"use strict";e0();x2=9,y2=10,b2=12,S2=13,w2=32,t0=new Uint8Array(128).map((e,t)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(t))?1:0),Ll=class{constructor(t){this.str=t,this.pos=0}charCodeAt(t){return t<this.str.length?this.str.charCodeAt(t):0}charCode(){return this.charCodeAt(this.pos)}isNameCharCode(t=this.charCode()){return t<128&&t0[t]===1}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(t){return this.charCodeAt(this.findWsEnd(t))}skipWs(){this.pos=this.findWsEnd(this.pos)}findWsEnd(t){for(;t<this.str.length;t++){let n=this.str.charCodeAt(t);if(n!==S2&&n!==y2&&n!==b2&&n!==w2&&n!==x2)break}return t}substringToPos(t){return this.str.substring(this.pos,this.pos=t)}eat(t){this.charCode()!==t&&this.error("Expect `"+String.fromCharCode(t)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(t){throw new Zb(t,this.str,this.pos)}scanSpaces(){return this.substringToPos(this.findWsEnd(this.pos))}scanWord(){let t=this.pos;for(;t<this.str.length;t++){let n=this.str.charCodeAt(t);if(n>=128||t0[n]===0)break}return this.pos===t&&this.error("Expect a keyword"),this.substringToPos(t)}scanNumber(){let t=this.pos;for(;t<this.str.length;t++){let n=this.str.charCodeAt(t);if(n<48||n>57)break}return this.pos===t&&this.error("Expect a number"),this.substringToPos(t)}scanString(){let t=this.str.indexOf("'",this.pos+1);return t===-1&&(this.pos=this.str.length,this.error("Expect an apostrophe")),this.substringToPos(t+1)}}});function l0(e){let t=null,n=null;return e.eat(Dl),e.skipWs(),t=e.scanNumber(e),e.skipWs(),e.charCode()===vp?(e.pos++,e.skipWs(),e.charCode()!==bp&&(n=e.scanNumber(e),e.skipWs())):n=t,e.eat(bp),{min:Number(t),max:n?Number(n):0}}function E2(e){let t=null,n=!1;switch(e.charCode()){case d0:e.pos++,t={min:0,max:0};break;case wp:e.pos++,t={min:1,max:0};break;case Bl:e.pos++,t={min:0,max:1};break;case Sp:e.pos++,n=!0,e.charCode()===Dl?t=l0(e):e.charCode()===Bl?(e.pos++,t={min:0,max:0}):t={min:1,max:0};break;case Dl:t=l0(e);break;default:return null}return{type:"Multiplier",comma:n,min:t.min,max:t.max,term:null}}function oo(e,t){let n=E2(e);return n!==null?(n.term=t,e.charCode()===Sp&&e.charCodeAt(e.pos-1)===wp||e.charCode()===Bl&&e.charCodeAt(e.pos-1)===bp?oo(e,n):n):t}function xp(e){let t=e.peek();return t===""?null:oo(e,{type:"Token",value:t})}function A2(e){let t;return e.eat(kp),e.eat(Ml),t=e.scanWord(),e.eat(Ml),e.eat(yp),oo(e,{type:"Property",name:t})}function P2(e){let t=null,n=null,r=1;return e.eat(Bs),e.charCode()===o0&&(e.peek(),r=-1),r==-1&&e.charCode()===s0?e.peek():(t=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(t+=e.scanWord())),e.skipWs(),e.eat(vp),e.skipWs(),e.charCode()===s0?e.peek():(r=1,e.charCode()===o0&&(e.peek(),r=-1),n=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(n+=e.scanWord())),e.eat(Bi),{type:"Range",min:t,max:n}}function L2(e){let t,n=null;if(e.eat(kp),t=e.scanWord(),t==="boolean-expr"){e.eat(Bs);let r=Rl(e,Bi);return e.eat(Bi),e.eat(yp),oo(e,{type:"Boolean",term:r.terms.length===1?r.terms[0]:r})}return e.charCode()===u0&&e.nextCharCode()===p0&&(e.pos+=2,t+="()"),e.charCodeAt(e.findWsEnd(e.pos))===Bs&&(e.skipWs(),n=P2(e)),e.eat(yp),oo(e,{type:"Type",name:t,opts:n})}function M2(e){let t=e.scanWord();return e.charCode()===u0?(e.pos++,{type:"Function",name:t}):oo(e,{type:"Keyword",name:t})}function B2(e,t){function n(o,i){return{type:"Group",terms:o,combinator:i,disallowEmpty:!1,explicit:!1}}let r;for(t=Object.keys(t).sort((o,i)=>a0[o]-a0[i]);t.length>0;){r=t.shift();let o=0,i=0;for(;o<e.length;o++){let s=e[o];s.type==="Combinator"&&(s.value===r?(i===-1&&(i=o-1),e.splice(o,1),o--):(i!==-1&&o-i>1&&(e.splice(i,o-i,n(e.slice(i,o),r)),o=i+1),i=-1))}i!==-1&&t.length&&e.splice(i,o-i,n(e.slice(i,o),r))}return r}function Rl(e,t=-1){let n=Object.create(null),r=[],o=null,i=e.pos,s=!1;for(;e.charCode()!==t;){let a=s?Rl(e,p0):R2(e);if(!a)break;if(a.type!=="Spaces"){if(s){if(a.terms.length===0){s=!1;continue}if(a.combinator===" "){for(;a.terms.length>1;)n[" "]=!0,r.push({type:"Combinator",value:" "},a.terms.shift());a=a.terms[0]}}a.type==="Combinator"?((o===null||o.type==="Combinator")&&(e.pos=i,e.error("Unexpected combinator")),n[a.value]=!0):o!==null&&o.type!=="Combinator"&&(n[" "]=!0,r.push({type:"Combinator",value:" "})),r.push(a),o=a,i=e.pos,s=a.type==="Function"}}return o!==null&&o.type==="Combinator"&&(e.pos-=i,e.error("Unexpected combinator")),{type:"Group",terms:r,combinator:B2(r,n)||" ",disallowEmpty:!1,explicit:!1}}function D2(e){let t;return e.eat(Bs),t=Rl(e,Bi),e.eat(Bi),t.explicit=!0,e.charCode()===c0&&(e.pos++,t.disallowEmpty=!0),t}function R2(e){let t=e.charCode();switch(t){case Bi:break;case Bs:return oo(e,D2(e));case kp:return e.nextCharCode()===Ml?A2(e):L2(e);case i0:return{type:"Combinator",value:e.substringToPos(e.pos+(e.nextCharCode()===i0?2:1))};case r0:return e.pos++,e.eat(r0),{type:"Combinator",value:"&&"};case vp:return e.pos++,{type:"Comma"};case Ml:return oo(e,{type:"String",value:e.scanString()});case I2:case v2:case k2:case T2:case C2:return{type:"Spaces",value:e.scanSpaces()};case F2:return t=e.nextCharCode(),e.isNameCharCode(t)?(e.pos++,{type:"AtKeyword",name:e.scanWord()}):xp(e);case d0:case wp:case Bl:case Sp:case c0:break;case Dl:if(t=e.nextCharCode(),t<48||t>57)return xp(e);break;default:return e.isNameCharCode(t)?M2(e):xp(e)}}function Ds(e){let t=new Ll(e),n=Rl(t);return t.pos!==e.length&&t.error("Unexpected input"),n.terms.length===1&&n.terms[0].type==="Group"?n.terms[0]:n}var v2,k2,C2,T2,I2,c0,Sp,r0,Ml,u0,p0,d0,wp,vp,o0,kp,yp,Bl,F2,Bs,Bi,Dl,i0,bp,s0,a0,Cp=U(()=>{"use strict";n0();v2=9,k2=10,C2=12,T2=13,I2=32,c0=33,Sp=35,r0=38,Ml=39,u0=40,p0=41,d0=42,wp=43,vp=44,o0=45,kp=60,yp=62,Bl=63,F2=64,Bs=91,Bi=93,Dl=123,i0=124,bp=125,s0=8734,a0={" ":1,"&&":2,"||":3,"|":4}});function g0(e){return typeof e=="function"?e:Rs}function Tp(e,t,n){function r(s){switch(o.call(n,s),s.type){case"Group":s.terms.forEach(r);break;case"Multiplier":case"Boolean":r(s.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+s.type)}i.call(n,s)}let o=Rs,i=Rs;if(typeof t=="function"?o=t:t&&(o=g0(t.enter),i=g0(t.leave)),o===Rs&&i===Rs)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");r(e,n)}var Rs,f0=U(()=>{"use strict";Rs=function(){}});var Ip=U(()=>{"use strict";rp();Cp();f0()});function O2(e){let t=[];return Io(e,(n,r,o)=>t.push({type:n,value:e.slice(r,o),node:null})),t}function m0(e,t){return typeof e=="string"?O2(e):t.generate(e,N2)}var N2,h0=U(()=>{"use strict";lr();N2={decorator(e){let t=[],n=null;return{...e,node(r){let o=n;n=r,e.node.call(this,r),n=o},emit(r,o,i){t.push({type:o,value:r,node:i?null:n})},result(){return t}}}}});function kn(e,t,n){return t===gt&&n===vt||e===gt&&t===gt&&n===gt?e:(e.type==="If"&&e.else===vt&&t===gt&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:n})}function y0(e){return e.length>2&&e.charCodeAt(e.length-2)===_2&&e.charCodeAt(e.length-1)===$2}function x0(e){return e.type==="Keyword"||e.type==="AtKeyword"||e.type==="Function"||e.type==="Type"&&y0(e.name)}function Eo(e,t=" ",n=!1){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:n}}function zs(e,t,n=new Set){if(!n.has(e))switch(n.add(e),e.type){case"If":e.match=zs(e.match,t,n),e.then=zs(e.then,t,n),e.else=zs(e.else,t,n);break;case"Type":return t[e.name]||e}return e}function Fp(e,t,n){switch(e){case" ":{let r=gt;for(let o=t.length-1;o>=0;o--){let i=t[o];r=kn(i,r,vt)}return r}case"|":{let r=vt,o=null;for(let i=t.length-1;i>=0;i--){let s=t[i];if(x0(s)&&(o===null&&i>0&&x0(t[i-1])&&(o=Object.create(null),r=kn({type:"Enum",map:o},gt,r)),o!==null)){let a=(y0(s.name)?s.name.slice(0,-1):s.name).toLowerCase();if(!(a in o)){o[a]=s;continue}}o=null,r=kn(s,gt,r)}return r}case"&&":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!0};let r=vt;for(let o=t.length-1;o>=0;o--){let i=t[o],s;t.length>1?s=Fp(e,t.filter(function(a){return a!==i}),!1):s=gt,r=kn(i,s,r)}return r}case"||":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!1};let r=n?gt:vt;for(let o=t.length-1;o>=0;o--){let i=t[o],s;t.length>1?s=Fp(e,t.filter(function(a){return a!==i}),!0):s=gt,r=kn(i,s,r)}return r}}}function U2(e){let t=gt,n=Di(e.term);if(e.max===0)n=kn(n,zl,vt),t=kn(n,null,vt),t.then=kn(gt,gt,t),e.comma&&(t.then.else=kn({type:"Comma",syntax:e},t,vt));else for(let r=e.min||1;r<=e.max;r++)e.comma&&t!==gt&&(t=kn({type:"Comma",syntax:e},t,vt)),t=kn(n,kn(gt,gt,t),vt);if(e.min===0)t=kn(gt,gt,t);else for(let r=0;r<e.min-1;r++)e.comma&&t!==gt&&(t=kn({type:"Comma",syntax:e},t,vt)),t=kn(n,t,vt);return t}function Di(e){if(typeof e=="function")return{type:"Generic",fn:e};switch(e.type){case"Group":{let t=Fp(e.combinator,e.terms.map(Di),!1);return e.disallowEmpty&&(t=kn(t,zl,vt)),t}case"Multiplier":return U2(e);case"Boolean":{let t=Di(e.term),n=Di(Eo([Eo([{type:"Keyword",name:"not"},{type:"Type",name:"!boolean-group"}]),Eo([{type:"Type",name:"!boolean-group"},Eo([{type:"Multiplier",comma:!1,min:0,max:0,term:Eo([{type:"Keyword",name:"and"},{type:"Type",name:"!boolean-group"}])},{type:"Multiplier",comma:!1,min:0,max:0,term:Eo([{type:"Keyword",name:"or"},{type:"Type",name:"!boolean-group"}])}],"|")])],"|")),r=Di(Eo([{type:"Type",name:"!term"},Eo([{type:"Token",value:"("},{type:"Type",name:"!self"},{type:"Token",value:")"}]),{type:"Type",name:"general-enclosed"}],"|"));return zs(r,{"!term":t,"!self":n}),zs(n,{"!boolean-group":r}),n}case"Type":case"Property":return{type:e.type,name:e.name,syntax:e};case"Keyword":return{type:e.type,name:e.name.toLowerCase(),syntax:e};case"AtKeyword":return{type:e.type,name:"@"+e.name.toLowerCase(),syntax:e};case"Function":return{type:e.type,name:e.name.toLowerCase()+"(",syntax:e};case"String":return e.value.length===3?{type:"Token",value:e.value.charAt(1),syntax:e}:{type:e.type,value:e.value.substr(1,e.value.length-2).replace(/\\'/g,"'"),syntax:e};case"Token":return{type:e.type,value:e.value,syntax:e};case"Comma":return{type:e.type,syntax:e};default:throw new Error("Unknown node type:",e.type)}}function Ns(e,t){return typeof e=="string"&&(e=Ds(e)),{type:"MatchGraph",match:Di(e),syntax:t||null,source:e}}var gt,vt,zl,_2,$2,Ep=U(()=>{"use strict";Cp();gt={type:"Match"},vt={type:"Mismatch"},zl={type:"DisallowEmpty"},_2=40,$2=41});function q2(e){let t=null,n=null,r=e;for(;r!==null;)n=r.prev,r.prev=t,t=r,r=n;return t}function Ap(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=t.charCodeAt(n),o=e.charCodeAt(n);if(o>=65&&o<=90&&(o=o|32),o!==r)return!1}return!0}function Y2(e){return e.type!==9?!1:e.value!=="?"}function v0(e){return e===null?!0:e.type===18||e.type===2||e.type===21||e.type===19||e.type===23||Y2(e)}function k0(e){return e===null?!0:e.type===22||e.type===20||e.type===24||e.type===9&&e.value==="/"}function K2(e,t,n){function r(){do k++,E=k<e.length?e[k]:null;while(E!==null&&(E.type===13||E.type===25))}function o($){let L=k+$;return L<e.length?e[L]:null}function i($,L){return{nextState:$,matchStack:N,syntaxStack:d,thenStack:g,tokenIndex:k,prev:L}}function s($){g={nextState:$,matchStack:N,syntaxStack:d,prev:g}}function a($){p=i($,p)}function u(){N={type:H2,syntax:t.syntax,token:E,prev:N},r(),m=null,k>D&&(D=k)}function c(){d={syntax:t.syntax,opts:t.syntax.opts||d!==null&&d.opts||null,prev:d},N={type:Pp,syntax:t.syntax,token:N.token,prev:N}}function l(){N.type===Pp?N=N.prev:N={type:C0,syntax:d.syntax,token:N.token,prev:N},d=d.prev}let d=null,g=null,p=null,m=null,b=0,I=null,E=null,k=-1,D=0,N={type:j2,syntax:null,token:null,prev:null};for(r();I===null&&++b<w0;)switch(t.type){case"Match":if(g===null){if(E!==null&&(k!==e.length-1||E.value!=="\\0"&&E.value!=="\\9")){t=vt;break}I=S0;break}if(t=g.nextState,t===zl)if(g.matchStack===N){t=vt;break}else t=gt;for(;g.syntaxStack!==d;)l();g=g.prev;break;case"Mismatch":if(m!==null&&m!==!1)(p===null||k>p.tokenIndex)&&(p=m,m=!1);else if(p===null){I=W2;break}t=p.nextState,g=p.thenStack,d=p.syntaxStack,N=p.matchStack,k=p.tokenIndex,E=k<e.length?e[k]:null,p=p.prev;break;case"MatchGraph":t=t.match;break;case"If":t.else!==vt&&a(t.else),t.then!==gt&&s(t.then),t=t.match;break;case"MatchOnce":t={type:"MatchOnceBuffer",syntax:t,index:0,mask:0};break;case"MatchOnceBuffer":{let R=t.syntax.terms;if(t.index===R.length){if(t.mask===0||t.syntax.all){t=vt;break}t=gt;break}if(t.mask===(1<<R.length)-1){t=gt;break}for(;t.index<R.length;t.index++){let h=1<<t.index;if((t.mask&h)===0){a(t),s({type:"AddMatchOnce",syntax:t.syntax,mask:t.mask|h}),t=R[t.index++];break}}break}case"AddMatchOnce":t={type:"MatchOnceBuffer",syntax:t.syntax,index:0,mask:t.mask};break;case"Enum":if(E!==null){let R=E.value.toLowerCase();if(R.indexOf("\\")!==-1&&(R=R.replace(/\\[09].*$/,"")),b0.call(t.map,R)){t=t.map[R];break}}t=vt;break;case"Generic":{let R=d!==null?d.opts:null,h=k+Math.floor(t.fn(E,o,R));if(!isNaN(h)&&h>k){for(;k<h;)u();t=gt}else t=vt;break}case"Type":case"Property":{let R=t.type==="Type"?"types":"properties",h=b0.call(n,R)?n[R][t.name]:null;if(!h||!h.match)throw new Error("Bad syntax reference: "+(t.type==="Type"?"<"+t.name+">":"<'"+t.name+"'>"));if(m!==!1&&E!==null&&t.type==="Type"&&(t.name==="custom-ident"&&E.type===1||t.name==="length"&&E.value==="0")){m===null&&(m=i(t,p)),t=vt;break}c(),t=h.matchRef||h.match;break}case"Keyword":{let R=t.name;if(E!==null){let h=E.value;if(h.indexOf("\\")!==-1&&(h=h.replace(/\\[09].*$/,"")),Ap(h,R)){u(),t=gt;break}}t=vt;break}case"AtKeyword":case"Function":if(E!==null&&Ap(E.value,t.name)){u(),t=gt;break}t=vt;break;case"Token":if(E!==null&&E.value===t.value){u(),t=gt;break}t=vt;break;case"Comma":E!==null&&E.type===18?v0(N.token)?t=vt:(u(),t=k0(E)?vt:gt):t=v0(N.token)||k0(E)?gt:vt;break;case"String":let $="",L=k;for(;L<e.length&&$.length<t.value.length;L++)$+=e[L].value;if(Ap($,t.value)){for(;k<L;)u();t=gt}else t=vt;break;default:throw new Error("Unknown node type: "+t.type)}switch(G2+=b,I){case null:console.warn("[csstree-match] BREAK after "+w0+" iterations"),I=V2,N=null;break;case S0:for(;d!==null;)l();break;default:N=null}return{tokens:e,reason:I,iterations:b,match:N,longestMatch:D}}function Lp(e,t,n){let r=K2(e,t,n||{});if(r.match===null)return r;let o=r.match,i=r.match={syntax:t.syntax||null,match:[]},s=[i];for(o=q2(o).prev;o!==null;){switch(o.type){case Pp:i.match.push(i={syntax:o.syntax,match:[]}),s.push(i);break;case C0:s.pop(),i=s[s.length-1];break;default:i.match.push({syntax:o.syntax||null,token:o.token.value,node:o.token.node})}o=o.prev}return r}var b0,j2,H2,Pp,C0,S0,W2,V2,w0,G2,T0=U(()=>{"use strict";Ep();({hasOwnProperty:b0}=Object.prototype),j2=0,H2=1,Pp=2,C0=3,S0="Match",W2="Mismatch",V2="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",w0=15e3,G2=0});var Bp={};ye(Bp,{getTrace:()=>I0,isKeyword:()=>J2,isProperty:()=>Q2,isType:()=>X2});function I0(e){function t(o){return o===null?!1:o.type==="Type"||o.type==="Property"||o.type==="Keyword"}function n(o){if(Array.isArray(o.match)){for(let i=0;i<o.match.length;i++)if(n(o.match[i]))return t(o.syntax)&&r.unshift(o.syntax),!0}else if(o.node===e)return r=t(o.syntax)?[o.syntax]:[],!0;return!1}let r=null;return this.matched!==null&&n(this.matched),r}function X2(e,t){return Mp(this,e,n=>n.type==="Type"&&n.name===t)}function Q2(e,t){return Mp(this,e,n=>n.type==="Property"&&n.name===t)}function J2(e){return Mp(this,e,t=>t.type==="Keyword")}function Mp(e,t,n){let r=I0.call(e,t);return r===null?!1:r.some(n)}var F0=U(()=>{"use strict"});function E0(e){return"node"in e?e.node:E0(e.match[0])}function A0(e){return"node"in e?e.node:A0(e.match[e.match.length-1])}function Dp(e,t,n,r,o){function i(a){if(a.syntax!==null&&a.syntax.type===r&&a.syntax.name===o){let u=E0(a),c=A0(a);e.syntax.walk(t,function(l,d,g){if(l===u){let p=new Qn;do{if(p.appendData(d.data),d.data===c)break;d=d.next}while(d!==null);s.push({parent:g,nodes:p})}})}Array.isArray(a.match)&&a.match.forEach(i)}let s=[];return n.matched!==null&&i(n.matched),s}var P0=U(()=>{"use strict";Ts()});function Rp(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&e>=0}function L0(e){return!!e&&Rp(e.offset)&&Rp(e.line)&&Rp(e.column)}function Z2(e,t){return function(r,o){if(!r||r.constructor!==Object)return o(r,"Type of node should be an Object");for(let i in r){let s=!0;if(Os.call(r,i)!==!1){if(i==="type")r.type!==e&&o(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if(i==="loc"){if(r.loc===null)continue;if(r.loc&&r.loc.constructor===Object)if(typeof r.loc.source!="string")i+=".source";else if(!L0(r.loc.start))i+=".start";else if(!L0(r.loc.end))i+=".end";else continue;s=!1}else if(t.hasOwnProperty(i)){s=!1;for(let a=0;!s&&a<t[i].length;a++){let u=t[i][a];switch(u){case String:s=typeof r[i]=="string";break;case Boolean:s=typeof r[i]=="boolean";break;case null:s=r[i]===null;break;default:typeof u=="string"?s=r[i]&&r[i].type===u:Array.isArray(u)&&(s=r[i]instanceof Qn)}}}else o(r,"Unknown field `"+i+"` for "+e+" node type");s||o(r,"Bad value for `"+e+"."+i+"`")}}for(let i in t)Os.call(t,i)&&Os.call(r,i)===!1&&o(r,"Field `"+e+"."+i+"` is missed")}}function M0(e,t){let n=[];for(let r=0;r<e.length;r++){let o=e[r];if(o===String||o===Boolean)n.push(o.name.toLowerCase());else if(o===null)n.push("null");else if(typeof o=="string")n.push(o);else if(Array.isArray(o))n.push("List<"+(M0(o,t)||"any")+">");else throw new Error("Wrong value `"+o+"` in `"+t+"` structure definition")}return n.join(" | ")}function eP(e,t){let n=t.structure,r={type:String,loc:!0},o={type:'"'+e+'"'};for(let i in n){if(Os.call(n,i)===!1)continue;let s=r[i]=Array.isArray(n[i])?n[i].slice():[n[i]];o[i]=M0(s,e+"."+i)}return{docs:o,check:Z2(e,r)}}function B0(e){let t={};if(e.node){for(let n in e.node)if(Os.call(e.node,n)){let r=e.node[n];if(r.structure)t[n]=eP(n,r);else throw new Error("Missed `structure` field in `"+n+"` node type definition")}}return t}var Os,D0=U(()=>{"use strict";Ts();({hasOwnProperty:Os}=Object.prototype)});function zp(e,t,n){let r={};for(let o in e)e[o].syntax&&(r[o]=n?e[o].syntax:Ei(e[o].syntax,{compact:t}));return r}function tP(e,t,n){let r={};for(let[o,i]of Object.entries(e))r[o]={prelude:i.prelude&&(n?i.prelude.syntax:Ei(i.prelude.syntax,{compact:t})),descriptors:i.descriptors&&zp(i.descriptors,t,n)};return r}function nP(e){for(let t=0;t<e.length;t++)if(e[t].value.toLowerCase()==="var(")return!0;return!1}function rP(e){let t=e.terms[0];return e.explicit===!1&&e.terms.length===1&&t.type==="Multiplier"&&t.comma===!0}function Fr(e,t,n){return{matched:e,iterations:n,error:t,...Bp}}function Ri(e,t,n,r){let o=m0(n,e.syntax),i;return nP(o)?Fr(null,new Error("Matching for a tree with var() is not supported")):(r&&(i=Lp(o,e.cssWideKeywordsSyntax,e)),(!r||!i.match)&&(i=Lp(o,t.match,e),!i.match)?Fr(null,new Nb(i.reason,t.syntax,n,i),i.iterations):Fr(i.match,null,i.iterations))}var _s,R0=U(()=>{"use strict";Ob();Il();Fl();Qb();Jb();Ip();h0();Ep();T0();F0();P0();D0();_s=class{constructor(t,n,r){if(this.cssWideKeywords=Li,this.syntax=n,this.generic=!1,this.units={...Pl},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=r||B0(t),t){if(t.cssWideKeywords&&(this.cssWideKeywords=t.cssWideKeywords),t.units)for(let o of Object.keys(Pl))Array.isArray(t.units[o])&&(this.units[o]=t.units[o]);if(t.types)for(let[o,i]of Object.entries(t.types))this.addType_(o,i);if(t.generic){this.generic=!0;for(let[o,i]of Object.entries(Xb(this.units)))this.addType_(o,i)}if(t.atrules)for(let[o,i]of Object.entries(t.atrules))this.addAtrule_(o,i);if(t.properties)for(let[o,i]of Object.entries(t.properties))this.addProperty_(o,i)}this.cssWideKeywordsSyntax=Ns(this.cssWideKeywords.join(" | "))}checkStructure(t){function n(i,s){o.push({node:i,message:s})}let r=this.structure,o=[];return this.syntax.walk(t,function(i){r.hasOwnProperty(i.type)?r[i.type].check(i,n):n(i,"Unknown node type `"+i.type+"`")}),o.length?o:!1}createDescriptor(t,n,r,o=null){let i={type:n,name:r},s={type:n,name:r,parent:o,serializable:typeof t=="string"||t&&typeof t.type=="string",syntax:null,match:null,matchRef:null};return typeof t=="function"?s.match=Ns(t,i):(typeof t=="string"?Object.defineProperty(s,"syntax",{get(){return Object.defineProperty(s,"syntax",{value:Ds(t)}),s.syntax}}):s.syntax=t,Object.defineProperty(s,"match",{get(){return Object.defineProperty(s,"match",{value:Ns(s.syntax,i)}),s.match}}),n==="Property"&&Object.defineProperty(s,"matchRef",{get(){let a=s.syntax,u=rP(a)?Ns({...a,terms:[a.terms[0].term]},i):null;return Object.defineProperty(s,"matchRef",{value:u}),u}})),s}addAtrule_(t,n){n&&(this.atrules[t]={type:"Atrule",name:t,prelude:n.prelude?this.createDescriptor(n.prelude,"AtrulePrelude",t):null,descriptors:n.descriptors?Object.keys(n.descriptors).reduce((r,o)=>(r[o]=this.createDescriptor(n.descriptors[o],"AtruleDescriptor",o,t),r),Object.create(null)):null})}addProperty_(t,n){n&&(this.properties[t]=this.createDescriptor(n,"Property",t))}addType_(t,n){n&&(this.types[t]=this.createDescriptor(n,"Type",t))}checkAtruleName(t){if(!this.getAtrule(t))return new Ai("Unknown at-rule","@"+t)}checkAtrulePrelude(t,n){let r=this.checkAtruleName(t);if(r)return r;let o=this.getAtrule(t);if(!o.prelude&&n)return new SyntaxError("At-rule `@"+t+"` should not contain a prelude");if(o.prelude&&!n&&!Ri(this,o.prelude,"",!1).matched)return new SyntaxError("At-rule `@"+t+"` should contain a prelude")}checkAtruleDescriptorName(t,n){let r=this.checkAtruleName(t);if(r)return r;let o=this.getAtrule(t),i=Cl(n);if(!o.descriptors)return new SyntaxError("At-rule `@"+t+"` has no known descriptors");if(!o.descriptors[i.name]&&!o.descriptors[i.basename])return new Ai("Unknown at-rule descriptor",n)}checkPropertyName(t){if(!this.getProperty(t))return new Ai("Unknown property",t)}matchAtrulePrelude(t,n){let r=this.checkAtrulePrelude(t,n);if(r)return Fr(null,r);let o=this.getAtrule(t);return o.prelude?Ri(this,o.prelude,n||"",!1):Fr(null,null)}matchAtruleDescriptor(t,n,r){let o=this.checkAtruleDescriptorName(t,n);if(o)return Fr(null,o);let i=this.getAtrule(t),s=Cl(n);return Ri(this,i.descriptors[s.name]||i.descriptors[s.basename],r,!1)}matchDeclaration(t){return t.type!=="Declaration"?Fr(null,new Error("Not a Declaration node")):this.matchProperty(t.property,t.value)}matchProperty(t,n){if(op(t).custom)return Fr(null,new Error("Lexer matching doesn't applicable for custom properties"));let r=this.checkPropertyName(t);return r?Fr(null,r):Ri(this,this.getProperty(t),n,!0)}matchType(t,n){let r=this.getType(t);return r?Ri(this,r,n,!1):Fr(null,new Ai("Unknown type",t))}match(t,n){return typeof t!="string"&&(!t||!t.type)?Fr(null,new Ai("Bad syntax")):((typeof t=="string"||!t.match)&&(t=this.createDescriptor(t,"Type","anonymous")),Ri(this,t,n,!1))}findValueFragments(t,n,r,o){return Dp(this,n,this.matchProperty(t,n),r,o)}findDeclarationValueFragments(t,n,r){return Dp(this,t.value,this.matchDeclaration(t),n,r)}findAllFragments(t,n,r){let o=[];return this.syntax.walk(t,{visit:"Declaration",enter:i=>{o.push.apply(o,this.findDeclarationValueFragments(i,n,r))}}),o}getAtrule(t,n=!0){let r=Cl(t);return(r.vendor&&n?this.atrules[r.name]||this.atrules[r.basename]:this.atrules[r.name])||null}getAtrulePrelude(t,n=!0){let r=this.getAtrule(t,n);return r&&r.prelude||null}getAtruleDescriptor(t,n){return this.atrules.hasOwnProperty(t)&&this.atrules.declarators&&this.atrules[t].declarators[n]||null}getProperty(t,n=!0){let r=op(t);return(r.vendor&&n?this.properties[r.name]||this.properties[r.basename]:this.properties[r.name])||null}getType(t){return hasOwnProperty.call(this.types,t)?this.types[t]:null}validate(){function t(u,c){return c?`<${u}>`:`<'${u}'>`}function n(u,c,l,d){if(l.has(c))return l.get(c);l.set(c,!1),d.syntax!==null&&Tp(d.syntax,function(g){if(g.type!=="Type"&&g.type!=="Property")return;let p=g.type==="Type"?u.types:u.properties,m=g.type==="Type"?o:i;hasOwnProperty.call(p,g.name)?n(u,g.name,m,p[g.name])&&(r.push(`${t(c,l===o)} used broken syntax definition ${t(g.name,g.type==="Type")}`),l.set(c,!0)):(r.push(`${t(c,l===o)} used missed syntax definition ${t(g.name,g.type==="Type")}`),l.set(c,!0))},this)}let r=[],o=new Map,i=new Map;for(let u in this.types)n(this,u,o,this.types[u]);for(let u in this.properties)n(this,u,i,this.properties[u]);let s=[...o.keys()].filter(u=>o.get(u)),a=[...i.keys()].filter(u=>i.get(u));return s.length||a.length?{errors:r,types:s,properties:a}:null}dump(t,n){return{generic:this.generic,cssWideKeywords:this.cssWideKeywords,units:this.units,types:zp(this.types,!n,t),properties:zp(this.properties,!n,t),atrules:tP(this.atrules,!n,t)}}toString(){return JSON.stringify(this.dump())}}});function Np(e,t){return typeof t=="string"&&/^\s*\|/.test(t)?typeof e=="string"?e+t:t.replace(/^\s*\|\s*/,""):t||null}function oP(e,t){let n=Object.create(null);for(let r of Object.keys(e))t.includes(r)&&(n[r]=e[r]);return n}function Op(e,t,n){let r={...e};for(let[o,i]of Object.entries(t))r[o]={...r[o],...n?oP(i,n):i};return r}function $s(e,t){let n={...e};for(let[r,o]of Object.entries(t))switch(r){case"generic":n[r]=!!o;break;case"cssWideKeywords":n[r]=e[r]?[...e[r],...o]:o||[];break;case"units":n[r]={...e[r]};for(let[i,s]of Object.entries(o))n[r][i]=Array.isArray(s)?s:[];break;case"atrules":n[r]={...e[r]};for(let[i,s]of Object.entries(o)){let a=n[r][i]||{},u=n[r][i]={prelude:a.prelude||null,descriptors:{...a.descriptors}};if(s){u.prelude=s.prelude?Np(u.prelude,s.prelude):u.prelude||null;for(let[c,l]of Object.entries(s.descriptors||{}))u.descriptors[c]=l?Np(u.descriptors[c],l):null;Object.keys(u.descriptors).length||(u.descriptors=null)}}break;case"types":case"properties":n[r]={...e[r]};for(let[i,s]of Object.entries(o))n[r][i]=Np(n[r][i],s);break;case"parseContext":n[r]={...e[r],...o};break;case"scope":case"features":n[r]=Op(e[r],o);break;case"atrule":case"pseudo":n[r]=Op(e[r],o,["parse"]);break;case"node":n[r]=Op(e[r],o,["name","structure","parse","generate","walkContext"]);break}return n}var z0=U(()=>{"use strict"});function N0(e){let t=Jy(e),n=Db(e),r=Ib(e),{fromPlainObject:o,toPlainObject:i}=Eb(n),s={lexer:null,createLexer:a=>new _s(a,s,s.lexer.structure),tokenize:Io,parse:t,generate:r,walk:n,find:n.find,findLast:n.findLast,findAll:n.findAll,fromPlainObject:o,toPlainObject:i,fork(a){let u=$s({},e);return N0(typeof a=="function"?a(u):$s(u,a))}};return s.lexer=new _s({generic:e.generic,cssWideKeywords:e.cssWideKeywords,units:e.units,types:e.types,atrules:e.atrules,properties:e.properties,node:e.node},s),s}var O0,_0=U(()=>{"use strict";lr();Zy();Fb();Ab();Rb();R0();z0();O0=e=>N0($s({},e))});var $0,U0=U(()=>{"use strict";$0={generic:!0,cssWideKeywords:["initial","inherit","unset","revert","revert-layer"],units:{angle:["deg","grad","rad","turn"],decibel:["db"],flex:["fr"],frequency:["hz","khz"],length:["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],resolution:["dpi","dpcm","dppx","x"],semitones:["st"],time:["s","ms"]},types:{"abs()":"abs( <calc-sum> )","absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","acos()":"acos( <calc-sum> )","alpha-value":"<number>|<percentage>","an+b":"odd|even|<integer>|<n-dimension>|'+'? \u2020 n|-n|<ndashdigit-dimension>|'+'? \u2020 <ndashdigit-ident>|<dashndashdigit-ident>|<n-dimension> <signed-integer>|'+'? \u2020 n <signed-integer>|-n <signed-integer>|<ndash-dimension> <signless-integer>|'+'? \u2020 n- <signless-integer>|-n- <signless-integer>|<n-dimension> ['+'|'-'] <signless-integer>|'+'? \u2020 n ['+'|'-'] <signless-integer>|-n ['+'|'-'] <signless-integer>","anchor()":"anchor( <anchor-name>?&&<anchor-side> , <length-percentage>? )","anchor-name":"<dashed-ident>","anchor-side":"inside|outside|top|left|right|bottom|start|end|self-start|self-end|<percentage>|center","anchor-size":"width|height|block|inline|self-block|self-inline","anchor-size()":"anchor-size( [<anchor-name>||<anchor-size>]? , <length-percentage>? )","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>|<zero>","angular-color-stop":"<color> <color-stop-angle>?","angular-color-stop-list":"<angular-color-stop> , [<angular-color-hint>? , <angular-color-stop>]#?","animateable-feature":"scroll-position|contents|<custom-ident>","animation-action":"none|play|play-once|play-forwards|play-backwards|pause|reset|replay","asin()":"asin( <calc-sum> )","atan()":"atan( <calc-sum> )","atan2()":"atan2( <calc-sum> , <calc-sum> )",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <attr-type>? , <declaration-value>? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attr-type":"type( <syntax> )|raw-string|number|<attr-unit>","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?",axis:"block|inline|x|y","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<xywh()>|<rect()>|<circle()>|<ellipse()>|<polygon()>|<path()>","basic-shape-rect":"<inset()>|<rect()>|<xywh()>","bg-clip":"<visual-box>|border-area|text","bg-image":"<image>|none","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<visual-box>||<visual-box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage [0,\u221E]>|auto]{1,2}|cover|contain","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity","blur()":"blur( <length>? )","brightness()":"brightness( [<number>|<percentage>]? )","calc()":"calc( <calc-sum> )","calc-constant":"e|pi|infinity|-infinity|NaN","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-size()":"calc-size( <calc-size-basis> , <calc-sum> )","calc-size-basis":"<intrinsic-size-keyword>|<calc-size()>|any|<calc-sum>","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-value":"<number>|<dimension>|<percentage>|<calc-constant>|( <calc-sum> )","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( <radial-size>? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<color-base>|currentColor|<system-color>|<device-cmyk()>|<light-dark()>|<-non-standard-color>","color()":"color( <colorspace-params> [/ [<alpha-value>|none]]? )","color-base":"<hex-color>|<color-function>|<named-color>|<color-mix()>|transparent","color-function":"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<oklab()>|<oklch()>|<color()>","color-interpolation-method":"in [<rectangular-color-space>|<polar-color-space> <hue-interpolation-method>?|<custom-color-space>]","color-mix()":"color-mix( <color-interpolation-method> , [<color>&&<percentage [0,100]>?]#{2} )","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"[<angle-percentage>|<zero>]{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"<linear-color-stop> , [<linear-color-hint>? , <linear-color-stop>]#?","colorspace-params":"[<predefined-rgb-params>|<xyz-params>]",combinator:"'>'|'+'|'~'|['|' '|']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|checkbox|radio|menulist|listbox|meter|progress-bar|button","compat-special":"textfield|menulist-button","complex-selector":"<complex-selector-unit> [<combinator>? <complex-selector-unit>]*","complex-selector-list":"<complex-selector>#","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>*]!","compound-selector-list":"<compound-selector>#","conic-gradient()":"conic-gradient( [<conic-gradient-syntax>] )","conic-gradient-syntax":"[[[from [<angle>|<zero>]]? [at <position>]?]||<color-interpolation-method>]? , <angular-color-stop-list>","container-condition":"not <query-in-parens>|<query-in-parens> [[and <query-in-parens>]*|[or <query-in-parens>]*]","container-name":"<custom-ident>","container-query":"not <query-in-parens>|<query-in-parens> [[and <query-in-parens>]*|[or <query-in-parens>]*]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contextual-alt-values":"[contextual|no-contextual]","contrast()":"contrast( [<number>|<percentage>]? )","coord-box":"content-box|padding-box|border-box|fill-box|stroke-box|view-box","corner-shape-value":"round|scoop|bevel|notch|square|squircle|<superellipse()>","cos()":"cos( <calc-sum> )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier()":"cubic-bezier( [<number [0,1]> , <number>]#{2} )","cubic-bezier-easing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","cursor-predefined":"auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing","custom-color-space":"<dashed-ident>","custom-params":"<dashed-ident> [<number>|<percentage>|none]+",dasharray:"[[<length-percentage>|<number>]+]#","dashndashdigit-ident":"<ident-token>","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonHighlight|ButtonShadow|CaptionText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( [<color>?&&<length>{2,3}] )","dynamic-range-limit-mix()":"dynamic-range-limit-mix( [<'dynamic-range-limit'>&&<percentage [0,100]>]#{2,} )","easing-function":"<linear-easing-function>|<cubic-bezier-easing-function>|<step-easing-function>","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( <radial-size>? [at <position>]? )","env()":"env( <custom-ident> , <declaration-value>? )","exp()":"exp( <calc-sum> )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-value-list":"[<filter-function>|<url>]+","final-bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<visual-box>||<visual-box>||<'background-color'>","fit-content()":"fit-content( <length-percentage [0,\u221E]> )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,\u221E]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css2":"normal|small-caps","font-weight-absolute":"normal|bold|<number [1,1000]>","font-width-css3":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded","form-control-identifier":"select","frequency-percentage":"<frequency>|<percentage>","generic-complete":"serif|sans-serif|system-ui|cursive|fantasy|math|monospace","general-enclosed":"[<function-token> <any-value>? )]|[( <any-value>? )]","generic-family":"<generic-script-specific>|<generic-complete>|<generic-incomplete>|<-non-standard-generic-family>","generic-incomplete":"ui-serif|ui-sans-serif|ui-monospace|ui-rounded","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( [<number>|<percentage>]? )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )|hsl( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","hsla()":"hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )|hsla( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )",hue:"<number>|<angle>","hue-interpolation-method":"[shorter|longer|increasing|decreasing] hue","hue-rotate()":"hue-rotate( [<angle>|<zero>]? )","hwb()":"hwb( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","hypot()":"hypot( <calc-sum># )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length-percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( [<number>|<percentage>]? )","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-selector":"from|to|<percentage [0,100]>|<timeline-range-name> <percentage>","keyframes-name":"<custom-ident>|<string>","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","light-dark()":"light-dark( <color> , <color> )","line-name-list":"[<line-names>|<name-repeat>]+","line-names":"'[' <custom-ident>* ']'","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear()":"linear( [<number>&&<percentage>{0,2}]# )","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-easing-function":"linear|<linear()>","linear-gradient()":"linear-gradient( [<linear-gradient-syntax>] )","linear-gradient-syntax":"[[<angle>|<zero>|to <side-or-corner>]||<color-interpolation-method>]? , <color-stop-list>","log()":"log( <calc-sum> , <calc-sum>? )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length-percentage>|min-content|max-content|auto] , [<length-percentage>|<flex>|min-content|max-content|auto] )","mod()":"mod( <calc-sum> , <calc-sum> )","n-dimension":"<dimension-token>","name-repeat":"repeat( [<integer [1,\u221E]>|auto-fill] , <line-names>+ )","named-color":"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen","namespace-prefix":"<ident>","ndash-dimension":"<dimension-token>","ndashdigit-dimension":"<dimension-token>","ndashdigit-ident":"<ident-token>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]","offset-path":"<ray()>|<url>|<basic-shape>","oklab()":"oklab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","oklch()":"oklch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","opacity()":"opacity( [<number>|<percentage>]? )","opacity-value":"<number>|<percentage>","outline-line-style":"none|dotted|dashed|solid|double|groove|ridge|inset|outset","outline-radius":"<length>|<percentage>","overflow-position":"unsafe|safe","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-selector-list":"[<page-selector>#]?","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke","paint()":"paint( <ident> , <declaration-value>? )","paint-box":"<visual-box>|fill-box|stroke-box","palette-identifier":"<dashed-ident>","palette-mix()":"palette-mix( <color-interpolation-method> , [[normal|light|dark|<palette-identifier>|<palette-mix()>]&&<percentage [0,100]>?]#{2} )","path()":"path( <'fill-rule'>? , <string> )","perspective()":"perspective( [<length [0,\u221E]>|none] )","polar-color-space":"hsl|hwb|lch|oklch","polygon()":"polygon( <'fill-rule'>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","position-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|center|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|center|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]","pow()":"pow( <calc-sum> , <calc-sum> )","predefined-rgb":"srgb|srgb-linear|display-p3|display-p3-linear|a98-rgb|prophoto-rgb|rec2020","predefined-rgb-params":"<predefined-rgb> [<number>|<percentage>|none]{3}","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>|<legacy-pseudo-element-selector>","pseudo-page":": [left|right|first|blank]","query-in-parens":"( <container-condition> )|( <size-feature> )|style( <style-query> )|<general-enclosed>",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-extent":"closest-corner|closest-side|farthest-corner|farthest-side","radial-gradient()":"radial-gradient( [<radial-gradient-syntax>] )","radial-gradient-syntax":"[[[<radial-shape>||<radial-size>]? [at <position>]?]||<color-interpolation-method>]? , <color-stop-list>","radial-shape":"circle|ellipse","radial-size":"<radial-extent>|<length [0,\u221E]>|<length-percentage [0,\u221E]>{2}",ratio:"<number [0,\u221E]> [/ <number [0,\u221E]>]?","ray()":"ray( <angle>&&<ray-size>?&&contain?&&[at <position>]? )","ray-size":"closest-side|closest-corner|farthest-side|farthest-corner|sides","rect()":"rect( [<length-percentage>|auto]{4} [round <'border-radius'>]? )","rectangular-color-space":"srgb|srgb-linear|display-p3|display-p3-linear|a98-rgb|prophoto-rgb|rec2020|lab|oklab|xyz|xyz-d50|xyz-d65","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","rem()":"rem( <calc-sum> , <calc-sum> )","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [<conic-gradient-syntax>] )","repeating-linear-gradient()":"repeating-linear-gradient( [<linear-gradient-syntax>] )","repeating-radial-gradient()":"repeating-radial-gradient( [<radial-gradient-syntax>] )","reversed-counter-name":"reversed( <counter-name> )","rgb()":"rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )|rgb( [<number>|<percentage>|none]{3} [/ [<alpha-value>|none]]? )","rgba()":"rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )|rgba( [<number>|<percentage>|none]{3} [/ [<alpha-value>|none]]? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","round()":"round( <rounding-strategy>? , <calc-sum> , <calc-sum> )","rounding-strategy":"nearest|up|down|to-zero","saturate()":"saturate( [<number>|<percentage>]? )","scale()":"scale( [<number>|<percentage>]#{1,2} )","scale3d()":"scale3d( [<number>|<percentage>]#{3} )","scaleX()":"scaleX( [<number>|<percentage>] )","scaleY()":"scaleY( [<number>|<percentage>] )","scaleZ()":"scaleZ( [<number>|<percentage>] )","scope-end":"<forgiving-selector-list>","scope-start":"<forgiving-selector-list>","scroll()":"scroll( [<scroller>||<axis>]? )",scroller:"root|nearest|self","scroll-state-feature":"<media-query-list>","scroll-state-in-parens":"( <scroll-state-query> )|( <scroll-state-feature> )|<general-enclosed>","scroll-state-query":"not <scroll-state-in-parens>|<scroll-state-in-parens> [[and <scroll-state-in-parens>]*|[or <scroll-state-in-parens>]*]|<scroll-state-feature>","selector-list":"<complex-selector-list>","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","sepia()":"sepia( [<number>|<percentage>]? )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<visual-box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","sign()":"sign( <calc-sum> )","signed-integer":"<number-token>","signless-integer":"<number-token>","sin()":"sin( <calc-sum> )","single-animation":"<'animation-duration'>||<easing-function>||<'animation-delay'>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]||<single-animation-timeline>","single-animation-composition":"replace|add|accumulate","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<dashed-ident>|<scroll()>|<view()>","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>||<transition-behavior-value>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","size-feature":"<mf-plain>|<mf-boolean>|<mf-range>","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sqrt()":"sqrt( <calc-sum> )","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-easing-function":"step-start|step-end|<steps()>","steps()":"steps( <integer> , <step-position>? )","style-feature":"<declaration>","style-in-parens":"( <style-condition> )|( <style-feature> )|<general-enclosed>","style-query":"<style-condition>|<style-feature>","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","superellipse()":"superellipse( [<number>|infinity|-infinity] )","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-decl":"( <declaration> )","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>","symbols()":"symbols( <symbols-type>? [<string>|<image>]+ )","symbols-type":"cyclic|numeric|alphabetic|symbolic|fixed","system-color":"AccentColor|AccentColorText|ActiveText|ButtonBorder|ButtonFace|ButtonText|Canvas|CanvasText|Field|FieldText|GrayText|Highlight|HighlightText|LinkText|Mark|MarkText|SelectedItem|SelectedItemText|VisitedText","system-family-name":"caption|icon|menu|message-box|small-caption|status-bar","tan()":"tan( <calc-sum> )",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","text-edge":"[text|cap|ex|ideographic|ideographic-ink] [text|alphabetic|ideographic|ideographic-ink]?","time-percentage":"<time>|<percentage>","timeline-range-name":"cover|contain|entry|exit|entry-crossing|exit-crossing","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,\u221E]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( <length-percentage> )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","transition-behavior-value":"normal|allow-discrete","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","try-size":"most-width|most-height|most-block-size|most-inline-size","try-tactic":"flip-block||flip-inline||flip-start","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","view()":"view( [<axis>||<'view-timeline-inset'>]? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","xywh()":"xywh( <length-percentage>{2} <length-percentage [0,\u221E]>{2} [round <'border-radius'>]? )",xyz:"xyz|xyz-d50|xyz-d65","xyz-params":"<xyz-space> [<number>|<percentage>|none]{3}","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"overlay|-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-size":"intrinsic|min-intrinsic|-webkit-fill-available|-webkit-fit-content|-webkit-min-content|-webkit-max-content|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>",autospace:"no-autospace|[ideograph-alpha||ideograph-numeric||punctuation]||[insert|replace]",bottom:"<length>|auto","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral","generic-script-specific":"generic( kai )|generic( fangsong )|generic( nastaliq )","-non-standard-generic-family":"-apple-system|BlinkMacSystemFont","intrinsic-size-keyword":"min-content|max-content|fit-content",left:"<length>|auto","device-cmyk()":"<legacy-device-cmyk-syntax>|<modern-device-cmyk-syntax>","legacy-device-cmyk-syntax":"device-cmyk( <number>#{4} )","modern-device-cmyk-syntax":"device-cmyk( <cmyk-component>{4} [/ [<alpha-value>|none]]? )","cmyk-component":"<number>|<percentage>|none","color-space":"<rectangular-color-space>|<polar-color-space>|<custom-color-space>",right:"<length>|auto","forgiving-selector-list":"<complex-real-selector-list>","forgiving-relative-selector-list":"<relative-real-selector-list>","complex-real-selector-list":"<complex-real-selector>#","simple-selector-list":"<simple-selector>#","relative-real-selector-list":"<relative-real-selector>#","complex-selector-unit":"[<compound-selector>? <pseudo-compound-selector>*]!","complex-real-selector":"<compound-selector> [<combinator>? <compound-selector>]*","relative-real-selector":"<combinator>? <complex-real-selector>","pseudo-compound-selector":"<pseudo-element-selector> <pseudo-class-selector>*","simple-selector":"<type-selector>|<subclass-selector>","legacy-pseudo-element-selector":"':' [before|after|first-line|first-letter]","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,\u221E]>","xyz-space":"xyz|xyz-d50|xyz-d65","style-condition":"not <style-in-parens>|<style-in-parens> [[and <style-in-parens>]*|[or <style-in-parens>]*]","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box","inset-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]",syntax:"'*'|<syntax-component> [<syntax-combinator> <syntax-component>]*|<syntax-string>","syntax-component":"<syntax-single-component> <syntax-multiplier>?|'<' transform-list '>'","syntax-single-component":"'<' <syntax-type-name> '>'|<ident>","syntax-type-name":"angle|color|custom-ident|image|integer|length|length-percentage|number|percentage|resolution|string|time|url|transform-function","syntax-combinator":"'|'","syntax-multiplier":"'#'|'+'","syntax-string":"<string>"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-content-zooming":"none|zoom","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<visual-box>|border|padding|content|text]||[<visual-box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<coord-box>|no-clip|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<coord-box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","-webkit-user-select":"auto|none|text|all","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]|anchor-center","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>|anchor-center","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical",all:"initial|inherit|unset|revert|revert-layer","anchor-name":"none|<dashed-ident>#","anchor-scope":"none|all|<dashed-ident>#",animation:"<single-animation>#","animation-composition":"<single-animation-composition>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"[auto|<time [0s,\u221E]>]#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-range":"[<'animation-range-start'> <'animation-range-end'>?]#","animation-range-end":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","animation-range-start":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","animation-timeline":"<single-animation-timeline>#","animation-timing-function":"<easing-function>#","animation-trigger":"[none|[<dashed-ident> <animation-action>+]+]#",appearance:"none|auto|<compat-auto>|<compat-special>","aspect-ratio":"auto||<ratio>","backdrop-filter":"none|<filter-value-list>","backface-visibility":"visible|hidden",background:"<bg-layer>#? , <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<visual-box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","baseline-shift":"baseline|sub|super|<svg-length>","baseline-source":"auto|first|last","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-block-start'>","border-block-color":"<'border-top-color'>{1,2}","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-block-style":"<'border-top-style'>{1,2}","border-block-width":"<'border-top-width'>{1,2}","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage [0,\u221E]>{1,2}","border-bottom-right-radius":"<length-percentage [0,\u221E]>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"separate|collapse","border-color":"<color>{1,4}","border-end-end-radius":"<'border-top-left-radius'>","border-end-start-radius":"<'border-top-left-radius'>","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length [0,\u221E]>|<number [0,\u221E]>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"[<number [0,\u221E]>|<percentage [0,\u221E]>]{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage [0,\u221E]>|<number [0,\u221E]>|auto]{1,4}","border-inline":"<'border-block-start'>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-inline-style":"<'border-top-style'>{1,2}","border-inline-width":"<'border-top-width'>{1,2}","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage [0,\u221E]>{1,4} [/ <length-percentage [0,\u221E]>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length>{1,2}","border-start-end-radius":"<'border-top-left-radius'>","border-start-start-radius":"<'border-top-left-radius'>","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage [0,\u221E]>{1,2}","border-top-right-radius":"<length-percentage [0,\u221E]>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"auto|<length-percentage>|<anchor()>|<anchor-size()>","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom",caret:"<'caret-color'>||<'caret-animation'>||<'caret-shape'>","caret-animation":"auto|manual","caret-color":"auto|<color>","caret-shape":"auto|bar|block|underscore",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none","clip-rule":"nonzero|evenodd",color:"<color>","color-interpolation-filters":"auto|sRGB|linearRGB","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance","column-gap":"normal|<length-percentage>","column-height":"auto|<length [0,\u221E]>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"auto|<length [0,\u221E]>","column-wrap":"auto|nowrap|wrap",columns:"[<'column-width'>||<'column-count'>] [/ <'column-height'>]?",contain:"none|strict|content|[[size||inline-size]||layout||style||paint]","contain-intrinsic-block-size":"auto? [none|<length>]","contain-intrinsic-height":"auto? [none|<length>]","contain-intrinsic-inline-size":"auto? [none|<length>]","contain-intrinsic-size":"[auto? [none|<length>]]{1,2}","contain-intrinsic-width":"auto? [none|<length>]",container:"<'container-name'> [/ <'container-type'>]?","container-name":"none|<custom-ident>+","container-type":"normal||[size|inline-size]",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>|<attr()>]+]?","content-visibility":"visible|auto|hidden","corner-block-end-shape":"<corner-shape-value>{1,2}","corner-block-start-shape":"<corner-shape-value>{1,2}","corner-bottom-shape":"<corner-shape-value>{1,2}","corner-bottom-left-shape":"<corner-shape-value>","corner-bottom-right-shape":"<corner-shape-value>","corner-end-end-shape":"<corner-shape-value>","corner-end-start-shape":"<corner-shape-value>","corner-inline-end-shape":"<corner-shape-value>{1,2}","corner-inline-start-shape":"<corner-shape-value>{1,2}","corner-left-shape":"<corner-shape-value>{1,2}","corner-right-shape":"<corner-shape-value>{1,2}","corner-shape":"<corner-shape-value>{1,4}","corner-start-start-shape":"<corner-shape-value>","corner-start-end-shape":"<corner-shape-value>","corner-top-shape":"<corner-shape-value>{1,2}","corner-top-left-shape":"<corner-shape-value>","corner-top-right-shape":"<corner-shape-value>","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",cx:"<length>|<percentage>",cy:"<length>|<percentage>",d:"none|path( <string> )",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge","dynamic-range-limit":"standard|no-limit|constrained|<dynamic-range-limit-mix()>","empty-cells":"show|hide","field-sizing":"content|fixed",fill:"<paint>","fill-opacity":"<number-zero-one>|<percentage>","fill-rule":"nonzero|evenodd",filter:"none|<filter-value-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end","flood-color":"<color>","flood-opacity":"<'opacity'>",font:"[[<'font-style'>||<font-variant-css2>||<'font-weight'>||<font-width-css3>]? <'font-size'> [/ <'line-height'>]? <'font-family'>#]|<system-family-name>|<-non-standard-font>","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-palette":"normal|light|dark|<palette-identifier>|<palette-mix()>","font-size":"<absolute-size>|<relative-size>|<length-percentage [0,\u221E]>|math","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps||position]","font-synthesis-position":"auto|none","font-synthesis-small-caps":"auto|none","font-synthesis-style":"auto|none","font-synthesis-weight":"auto|none","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-emoji":"normal|text|emoji|unicode","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-variation-settings":"normal|[<string> <number>]#","font-weight":"<font-weight-absolute>|bolder|lighter","font-width":"normal|<percentage [0,\u221E]>|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded","forced-color-adjust":"auto|none|preserve-parent-color",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","hyphenate-character":"auto|<string>","hyphenate-limit-chars":"[auto|<integer>]{1,3}",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|smooth|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>","interpolate-size":"numeric-only|allow-keywords",isolation:"auto|isolate",interactivity:"auto|inert","interest-delay":"<'interest-delay-start'>{1,2}","interest-delay-end":"normal|<time>","interest-delay-start":"normal|<time>","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]|anchor-center","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|anchor-center","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"auto|<length-percentage>|<anchor()>|<anchor-size()>","letter-spacing":"normal|<length-percentage>","lighting-color":"<color>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"<'margin-top'>{1,4}","margin-block":"<'margin-top'>{1,2}","margin-block-end":"<'margin-top'>","margin-block-start":"<'margin-top'>","margin-bottom":"<length-percentage>|auto|<anchor-size()>","margin-inline":"<'margin-top'>{1,2}","margin-inline-end":"<'margin-top'>","margin-inline-start":"<'margin-top'>","margin-left":"<length-percentage>|auto|<anchor-size()>","margin-right":"<length-percentage>|auto|<anchor-size()>","margin-top":"<length-percentage>|auto|<anchor-size()>","margin-trim":"none|in-flow|all",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<coord-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<coord-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-depth":"auto-add|add( <integer> )|<integer>","math-shift":"normal|compact","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","min-block-size":"<'min-width'>","min-height":"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","min-inline-size":"<'min-width'>","min-width":"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","mix-blend-mode":"<blend-mode>|plus-darker|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>","object-view-box":"none|<basic-shape-rect>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|<offset-path>||<coord-box>","offset-position":"normal|auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<opacity-value>",order:"<integer>",orphans:"<integer>",outline:"<'outline-width'>||<'outline-style'>||<'outline-color'>","outline-color":"auto|<color>","outline-offset":"<length>","outline-style":"auto|<outline-line-style>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,\u221E]>","overflow-inline":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-y":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>",overlay:"none|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"<'padding-top'>{1,4}","padding-block":"<'padding-top'>{1,2}","padding-block-end":"<'padding-top'>","padding-block-start":"<'padding-top'>","padding-bottom":"<length-percentage [0,\u221E]>","padding-inline":"<'padding-top'>{1,2}","padding-inline-end":"<'padding-top'>","padding-inline-start":"<'padding-top'>","padding-left":"<length-percentage [0,\u221E]>","padding-right":"<length-percentage [0,\u221E]>","padding-top":"<length-percentage [0,\u221E]>",page:"auto|<custom-ident>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky","position-anchor":"auto|none|<anchor-name>","position-area":"none|<position-area>","position-try":"<'position-try-order'>? <'position-try-fallbacks'>","position-try-fallbacks":"none|[[<dashed-ident>||<try-tactic>]|<'position-area'>]#","position-try-order":"normal|<try-size>","position-visibility":"always|[anchors-valid||anchors-visible||no-overflow]","print-color-adjust":"economy|exact",quotes:"none|auto|[<string> <string>]+",r:"<length>|<percentage>","reading-flow":"normal|source-order|flex-visual|flex-flow|grid-rows|grid-columns|grid-order","reading-order":"<integer>",resize:"none|both|horizontal|vertical|block|inline",right:"auto|<length-percentage>|<anchor()>|<anchor-size()>",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-overhang":"auto|none","ruby-position":"[alternate||[over|under]]|inter-character",rx:"<length>|<percentage>",ry:"<length>|<percentage>",scale:"none|[<number>|<percentage>]{1,3}","scroll-behavior":"auto|smooth","scroll-initial-target":"none|nearest","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-end":"<length>","scroll-margin-block-start":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-end":"<length>","scroll-margin-inline-start":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-marker-group":"none|before|after","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","scroll-target-group":"none|auto","scroll-timeline":"[<'scroll-timeline-name'> <'scroll-timeline-axis'>?]#","scroll-timeline-axis":"[block|inline|x|y]#","scroll-timeline-name":"[none|<dashed-ident>]#","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","shape-image-threshold":"<opacity-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]","stop-color":"<'color'>","stop-opacity":"<'opacity'>",stroke:"<paint>","stroke-color":"<color>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<'opacity'>","stroke-width":"<svg-length>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-anchor":"start|middle|end","text-autospace":"normal|<autospace>|auto","text-box":"normal|<'text-box-trim'>||<'text-box-edge'>","text-box-edge":"auto|<text-edge>","text-box-trim":"none|trim-start|trim-end|trim-both","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-inset":"<length>{1,2}|auto","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"auto|[over|under]&&[right|left]?","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-spacing-trim":"space-all|normal|space-first|trim-start","text-transform":"none|[capitalize|uppercase|lowercase]||full-width||full-size-kana|math-auto","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]","text-wrap":"<'text-wrap-mode'>||<'text-wrap-style'>","text-wrap-mode":"wrap|nowrap","text-wrap-style":"auto|balance|stable|pretty","timeline-scope":"none|<dashed-ident>#","timeline-trigger":"none|[<'timeline-trigger-name'> <'timeline-trigger-source'> <'timeline-trigger-range'> ['/' <'timeline-trigger-exit-range'>]?]#","timeline-trigger-name":"none|<dashed-ident>#","timeline-trigger-exit-range":"[<'timeline-trigger-exit-range-start'> <'timeline-trigger-exit-range-end'>?]#","timeline-trigger-exit-range-end":"[auto|normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-exit-range-start":"[auto|normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-range":"[<'timeline-trigger-range-start'> <'timeline-trigger-range-end'>?]#","timeline-trigger-range-end":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-range-start":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","timeline-trigger-source":"<single-animation-timeline>#",top:"auto|<length-percentage>|<anchor()>|<anchor-size()>","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-behavior":"<transition-behavior-value>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","trigger-scope":"none|all|<dashed-ident>#","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|all","vector-effect":"none|non-scaling-stroke|non-scaling-size|non-rotation|fixed-position","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>","view-timeline":"[<'view-timeline-name'> [<'view-timeline-axis'>||<'view-timeline-inset'>]?]#","view-timeline-axis":"[block|inline|x|y]#","view-timeline-inset":"[[auto|<length-percentage>]{1,2}]#","view-timeline-name":"[none|<dashed-ident>]#","view-transition-class":"none|<custom-ident>+","view-transition-name":"none|<custom-ident>|match-element",visibility:"visible|hidden|collapse","white-space":"normal|pre|pre-wrap|pre-line|<'white-space-collapse'>||<'text-wrap-mode'>","white-space-collapse":"collapse|preserve|preserve-breaks|preserve-spaces|break-spaces",widows:"<integer>",width:"auto|<length-percentage [0,\u221E]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,\u221E]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word|auto-phrase","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>",x:"<length>|<percentage>",y:"<length>|<percentage>","z-index":"auto|<integer>",zoom:"normal|reset|<number [0,\u221E]>||<percentage [0,\u221E]>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<visual-box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto",behavior:"<url>+",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong","position-try-options":"<'position-try-fallbacks'>",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong",speak:"auto|never|always","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]","white-space-trim":"none|discard-before||discard-after||discard-inner"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer [0,\u221E]>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer [0,\u221E]>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},container:{prelude:"[<container-name>]? <container-condition>",descriptors:null},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"auto|block|swap|fallback|optional","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-variation-settings":"normal|[<string> <number>]#","font-weight":"<font-weight-absolute>{1,2}","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<urange>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},"font-palette-values":{prelude:"<dashed-ident>",descriptors:{"base-palette":"light|dark|<integer [0,\u221E]>","font-family":"<family-name>#","override-colors":"[<integer [0,\u221E]> <color>]#"}},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]","page-orientation":"upright|rotate-left|rotate-right",size:"<length [0,\u221E]>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},"position-try":{prelude:"<dashed-ident>",descriptors:{top:"<'top'>",left:"<'left'>",bottom:"<'bottom'>",right:"<'right'>","inset-block-start":"<'inset-block-start'>","inset-block-end":"<'inset-block-end'>","inset-inline-start":"<'inset-inline-start'>","inset-inline-end":"<'inset-inline-end'>","inset-block":"<'inset-block'>","inset-inline":"<'inset-inline'>",inset:"<'inset'>","margin-top":"<'margin-top'>","margin-left":"<'margin-left'>","margin-bottom":"<'margin-bottom'>","margin-right":"<'margin-right'>","margin-block-start":"<'margin-block-start'>","margin-block-end":"<'margin-block-end'>","margin-inline-start":"<'margin-inline-start'>","margin-inline-end":"<'margin-inline-end'>",margin:"<'margin'>","margin-block":"<'margin-block'>","margin-inline":"<'margin-inline'>",width:"<'width'>",height:"<'height'>","min-width":"<'min-width'>","min-height":"<'min-height'>","max-width":"<'max-width'>","max-height":"<'max-height'>","block-size":"<'block-size'>","inline-size":"<'inline-size'>","min-block-size":"<'min-block-size'>","min-inline-size":"<'min-inline-size'>","max-block-size":"<'max-block-size'>","max-inline-size":"<'max-inline-size'>","align-self":"<'align-self'>|anchor-center","justify-self":"<'justify-self'>|anchor-center"}},property:{prelude:"<custom-property-name>",descriptors:{inherits:"true|false","initial-value":"<declaration-value>?",syntax:"<string>"}},scope:{prelude:"[( <scope-start> )]? [to ( <scope-end> )]?",descriptors:null},"starting-style":{prelude:null,descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},"view-transition":{prelude:null,descriptors:{navigation:"auto|none",types:"none|<custom-ident>+"}},"font-features-values":{prelude:"[<string>|<custom-ident>]+",descriptors:{"font-display":"auto|block|swap|fallback|optional"}}}}});var Up={};ye(Up,{generate:()=>lP,name:()=>sP,parse:()=>$p,structure:()=>aP});function Ol(e,t){let n=this.tokenStart+e,r=this.charCodeAt(n);for((r===Ur||r===Jn)&&(t&&this.error("Number sign is not allowed"),n++);n<this.tokenEnd;n++)Ht(this.charCodeAt(n))||this.error("Integer is expected",n)}function zi(e){return Ol.call(this,0,e)}function Ao(e,t){if(!this.cmpChar(this.tokenStart+e,t)){let n="";switch(t){case Nl:n="N is expected";break;case Jn:n="HyphenMinus is expected";break}this.error(n,this.tokenStart+e)}}function _p(){let e=0,t=0,n=this.tokenType;for(;n===13||n===25;)n=this.lookupType(++e);if(n!==10)if(this.isDelim(Ur,e)||this.isDelim(Jn,e)){t=this.isDelim(Ur,e)?Ur:Jn;do n=this.lookupType(++e);while(n===13||n===25);n!==10&&(this.skip(e),zi.call(this,ti))}else return null;return e>0&&this.skip(e),t===0&&(n=this.charCodeAt(this.tokenStart),n!==Ur&&n!==Jn&&this.error("Number sign is expected")),zi.call(this,t!==0),t===Jn?"-"+this.consume(10):this.consume(10)}function $p(){let e=this.tokenStart,t=null,n=null;if(this.tokenType===10)zi.call(this,iP),n=this.consume(10);else if(this.tokenType===1&&this.cmpChar(this.tokenStart,Jn))switch(t="-1",Ao.call(this,1,Nl),this.tokenEnd-this.tokenStart){case 2:this.next(),n=_p.call(this);break;case 3:Ao.call(this,2,Jn),this.next(),this.skipSC(),zi.call(this,ti),n="-"+this.consume(10);break;default:Ao.call(this,2,Jn),Ol.call(this,3,ti),this.next(),n=this.substrToCursor(e+2)}else if(this.tokenType===1||this.isDelim(Ur)&&this.lookupType(1)===1){let r=0;switch(t="1",this.isDelim(Ur)&&(r=1,this.next()),Ao.call(this,0,Nl),this.tokenEnd-this.tokenStart){case 1:this.next(),n=_p.call(this);break;case 2:Ao.call(this,1,Jn),this.next(),this.skipSC(),zi.call(this,ti),n="-"+this.consume(10);break;default:Ao.call(this,1,Jn),Ol.call(this,2,ti),this.next(),n=this.substrToCursor(e+r+1)}}else if(this.tokenType===12){let r=this.charCodeAt(this.tokenStart),o=r===Ur||r===Jn,i=this.tokenStart+o;for(;i<this.tokenEnd&&Ht(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),Ao.call(this,i-this.tokenStart,Nl),t=this.substring(e,i),i+1===this.tokenEnd?(this.next(),n=_p.call(this)):(Ao.call(this,i-this.tokenStart+1,Jn),i+2===this.tokenEnd?(this.next(),this.skipSC(),zi.call(this,ti),n="-"+this.consume(10)):(Ol.call(this,i-this.tokenStart+2,ti),this.next(),n=this.substrToCursor(i+1)))}else this.error();return t!==null&&t.charCodeAt(0)===Ur&&(t=t.substr(1)),n!==null&&n.charCodeAt(0)===Ur&&(n=n.substr(1)),{type:"AnPlusB",loc:this.getLocation(e,this.tokenStart),a:t,b:n}}function lP(e){if(e.a){let t=e.a==="+1"&&"n"||e.a==="1"&&"n"||e.a==="-1"&&"-n"||e.a+"n";if(e.b){let n=e.b[0]==="-"||e.b[0]==="+"?e.b:"+"+e.b;this.tokenize(t+n)}else this.tokenize(t)}else this.tokenize(e.b)}var Ur,Jn,Nl,ti,iP,sP,aP,jp=U(()=>{"use strict";lr();Ur=43,Jn=45,Nl=110,ti=!0,iP=!1;sP="AnPlusB",aP={a:[String,null],b:[String,null]}});var Wp={};ye(Wp,{generate:()=>gP,name:()=>uP,parse:()=>Hp,structure:()=>dP,walkContext:()=>pP});function j0(){return this.Raw(this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function cP(){for(let e=1,t;t=this.lookupType(e);e++){if(t===24)return!0;if(t===23||t===3)return!1}return!1}function Hp(e=!1){let t=this.tokenStart,n,r,o=null,i=null;switch(this.eat(3),n=this.substrToCursor(t+1),r=n.toLowerCase(),this.skipSC(),this.eof===!1&&this.tokenType!==23&&this.tokenType!==17&&(this.parseAtrulePrelude?o=this.parseWithFallback(this.AtrulePrelude.bind(this,n,e),j0):o=j0.call(this,this.tokenIndex),this.skipSC()),this.tokenType){case 17:this.next();break;case 23:hasOwnProperty.call(this.atrule,r)&&typeof this.atrule[r].block=="function"?i=this.atrule[r].block.call(this,e):i=this.Block(cP.call(this));break}return{type:"Atrule",loc:this.getLocation(t,this.tokenStart),name:n,prelude:o,block:i}}function gP(e){this.token(3,"@"+e.name),e.prelude!==null&&this.node(e.prelude),e.block?this.node(e.block):this.token(17,";")}var uP,pP,dP,Vp=U(()=>{"use strict";uP="Atrule",pP="atrule",dP={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]}});var qp={};ye(qp,{generate:()=>xP,name:()=>fP,parse:()=>Gp,structure:()=>hP,walkContext:()=>mP});function Gp(e){let t=null;return e!==null&&(e=e.toLowerCase()),this.skipSC(),hasOwnProperty.call(this.atrule,e)&&typeof this.atrule[e].prelude=="function"?t=this.atrule[e].prelude.call(this):t=this.readSequence(this.scope.AtrulePrelude),this.skipSC(),this.eof!==!0&&this.tokenType!==23&&this.tokenType!==17&&this.error("Semicolon or block is expected"),{type:"AtrulePrelude",loc:this.getLocationFromList(t),children:t}}function xP(e){this.children(e)}var fP,mP,hP,Yp=U(()=>{"use strict";fP="AtrulePrelude",mP="atrulePrelude",hP={children:[[]]}});var Qp={};ye(Qp,{generate:()=>TP,name:()=>kP,parse:()=>Xp,structure:()=>CP});function wP(){this.eof&&this.error("Unexpected end of input");let e=this.tokenStart,t=!1;return this.isDelim(H0)?(t=!0,this.next()):this.isDelim(Kp)||this.eat(1),this.isDelim(Kp)?this.charCodeAt(this.tokenStart+1)!==_l?(this.next(),this.eat(1)):t&&this.error("Identifier is expected",this.tokenEnd):t&&this.error("Vertical line is expected"),{type:"Identifier",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e)}}function vP(){let e=this.tokenStart,t=this.charCodeAt(e);return t!==_l&&t!==SP&&t!==bP&&t!==yP&&t!==H0&&t!==Kp&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),t!==_l&&(this.isDelim(_l)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(e)}function Xp(){let e=this.tokenStart,t,n=null,r=null,o=null;return this.eat(19),this.skipSC(),t=wP.call(this),this.skipSC(),this.tokenType!==20&&(this.tokenType!==1&&(n=vP.call(this),this.skipSC(),r=this.tokenType===5?this.String():this.Identifier(),this.skipSC()),this.tokenType===1&&(o=this.consume(1),this.skipSC())),this.eat(20),{type:"AttributeSelector",loc:this.getLocation(e,this.tokenStart),name:t,matcher:n,value:r,flags:o}}function TP(e){this.token(9,"["),this.node(e.name),e.matcher!==null&&(this.tokenize(e.matcher),this.node(e.value)),e.flags!==null&&this.token(1,e.flags),this.token(9,"]")}var yP,H0,_l,bP,Kp,SP,kP,CP,Jp=U(()=>{"use strict";yP=36,H0=42,_l=61,bP=94,Kp=124,SP=126;kP="AttributeSelector",CP={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]}});var ed={};ye(ed,{generate:()=>LP,name:()=>EP,parse:()=>Zp,structure:()=>PP,walkContext:()=>AP});function G0(){return this.Raw(null,!0)}function W0(){return this.parseWithFallback(this.Rule,G0)}function V0(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function FP(){if(this.tokenType===17)return V0.call(this,this.tokenIndex);let e=this.parseWithFallback(this.Declaration,V0);return this.tokenType===17&&this.next(),e}function Zp(e){let t=e?FP:W0,n=this.tokenStart,r=this.createList();this.eat(23);e:for(;!this.eof;)switch(this.tokenType){case 24:break e;case 13:case 25:this.next();break;case 3:r.push(this.parseWithFallback(this.Atrule.bind(this,e),G0));break;default:e&&this.isDelim(IP)?r.push(W0.call(this)):r.push(t.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(n,this.tokenStart),children:r}}function LP(e){this.token(23,"{"),this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")}),this.token(24,"}")}var IP,EP,AP,PP,td=U(()=>{"use strict";IP=38;EP="Block",AP="block",PP={children:[["Atrule","Rule","Declaration"]]}});var rd={};ye(rd,{generate:()=>DP,name:()=>MP,parse:()=>nd,structure:()=>BP});function nd(e,t){let n=this.tokenStart,r=null;return this.eat(19),r=e.call(this,t),this.eof||this.eat(20),{type:"Brackets",loc:this.getLocation(n,this.tokenStart),children:r}}function DP(e){this.token(9,"["),this.children(e),this.token(9,"]")}var MP,BP,od=U(()=>{"use strict";MP="Brackets",BP={children:[[]]}});var sd={};ye(sd,{generate:()=>NP,name:()=>RP,parse:()=>id,structure:()=>zP});function id(){let e=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(e,this.tokenStart)}}function NP(){this.token(15,"-->")}var RP,zP,ad=U(()=>{"use strict";RP="CDC",zP=[]});var cd={};ye(cd,{generate:()=>$P,name:()=>OP,parse:()=>ld,structure:()=>_P});function ld(){let e=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(e,this.tokenStart)}}function $P(){this.token(14,"<!--")}var OP,_P,ud=U(()=>{"use strict";OP="CDO",_P=[]});var dd={};ye(dd,{generate:()=>WP,name:()=>jP,parse:()=>pd,structure:()=>HP});function pd(){return this.eatDelim(UP),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function WP(e){this.token(9,"."),this.token(1,e.name)}var UP,jP,HP,gd=U(()=>{"use strict";UP=46,jP="ClassSelector",HP={name:String}});var md={};ye(md,{generate:()=>XP,name:()=>YP,parse:()=>fd,structure:()=>KP});function fd(){let e=this.tokenStart,t;switch(this.tokenType){case 13:t=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case GP:case VP:case qP:this.next();break;case q0:this.next(),this.eatIdent("deep"),this.eatDelim(q0);break;default:this.error("Combinator is expected")}t=this.substrToCursor(e);break}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:t}}function XP(e){this.tokenize(e.name)}var VP,q0,GP,qP,YP,KP,hd=U(()=>{"use strict";VP=43,q0=47,GP=62,qP=126,YP="Combinator",KP={name:String}});var yd={};ye(yd,{generate:()=>tL,name:()=>ZP,parse:()=>xd,structure:()=>eL});function xd(){let e=this.tokenStart,t=this.tokenEnd;return this.eat(25),t-e+2>=2&&this.charCodeAt(t-2)===QP&&this.charCodeAt(t-1)===JP&&(t-=2),{type:"Comment",loc:this.getLocation(e,this.tokenStart),value:this.substring(e+2,t)}}function tL(e){this.token(25,"/*"+e.value+"*/")}var QP,JP,ZP,eL,bd=U(()=>{"use strict";QP=42,JP=47,ZP="Comment",eL={value:String}});var wd={};ye(wd,{generate:()=>sL,name:()=>rL,parse:()=>Sd,structure:()=>oL});function Y0(e){return this.lookupTypeNonSC(1)===1&&nL.has(this.lookupTypeNonSC(2))?this.Feature(e):this.FeatureRange(e)}function Sd(e="media"){let t=this.createList();e:for(;!this.eof;)switch(this.tokenType){case 25:case 13:this.next();continue;case 1:t.push(this.Identifier());break;case 21:{let n=this.parseWithFallback(()=>iL[e].call(this,e),()=>null);n||(n=this.parseWithFallback(()=>{this.eat(21);let r=this.Condition(e);return this.eat(22),r},()=>this.GeneralEnclosed(e))),t.push(n);break}case 2:{let n=this.parseWithFallback(()=>this.FeatureFunction(e),()=>null);n||(n=this.GeneralEnclosed(e)),t.push(n);break}default:break e}return t.isEmpty&&this.error("Condition is expected"),{type:"Condition",loc:this.getLocationFromList(t),kind:e,children:t}}function sL(e){e.children.forEach(t=>{t.type==="Condition"?(this.token(21,"("),this.node(t),this.token(22,")")):this.node(t)})}var nL,rL,oL,iL,vd=U(()=>{"use strict";nL=new Set([16,22,0]),rL="Condition",oL={kind:String,children:[["Identifier","Feature","FeatureFunction","FeatureRange","SupportsDeclaration"]]};iL={media:Y0,container:Y0,supports(){return this.SupportsDeclaration()}}});var Cd={};ye(Cd,{generate:()=>yL,name:()=>mL,parse:()=>kd,structure:()=>xL,walkContext:()=>hL});function dL(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!0)}function gL(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1)}function fL(){let e=this.tokenIndex,t=this.Value();return t.type!=="Raw"&&this.eof===!1&&this.tokenType!==17&&this.isDelim(X0)===!1&&this.isBalanceEdge(e)===!1&&this.error(),t}function kd(){let e=this.tokenStart,t=this.tokenIndex,n=bL.call(this),r=Tl(n),o=r?this.parseCustomProperty:this.parseValue,i=r?gL:dL,s=!1,a;this.skipSC(),this.eat(16);let u=this.tokenIndex;if(r||this.skipSC(),o?a=this.parseWithFallback(fL,i):a=i.call(this,this.tokenIndex),r&&a.type==="Value"&&a.children.isEmpty){for(let c=u-this.tokenIndex;c<=0;c++)if(this.lookupType(c)===13){a.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}return this.isDelim(X0)&&(s=SL.call(this),this.skipSC()),this.eof===!1&&this.tokenType!==17&&this.isBalanceEdge(t)===!1&&this.error(),{type:"Declaration",loc:this.getLocation(e,this.tokenStart),important:s,property:n,value:a}}function yL(e){this.token(1,e.property),this.token(16,":"),this.node(e.value),e.important&&(this.token(9,"!"),this.token(1,e.important===!0?"important":e.important))}function bL(){let e=this.tokenStart;if(this.tokenType===9)switch(this.charCodeAt(this.tokenStart)){case uL:case lL:case pL:case aL:case cL:this.next();break;case K0:this.next(),this.isDelim(K0)&&this.next();break}return this.tokenType===4?this.eat(4):this.eat(1),this.substrToCursor(e)}function SL(){this.eat(9),this.skipSC();let e=this.consume(1);return e==="important"?!0:e}var X0,aL,lL,cL,uL,pL,K0,mL,hL,xL,Td=U(()=>{"use strict";Il();X0=33,aL=35,lL=36,cL=38,uL=42,pL=43,K0=47;mL="Declaration",hL="declaration",xL={important:[Boolean,String],property:String,value:["Value","Raw"]}});var Ed={};ye(Ed,{generate:()=>CL,name:()=>vL,parse:()=>Fd,structure:()=>kL});function Id(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function Fd(){let e=this.createList();for(;!this.eof;)switch(this.tokenType){case 13:case 25:case 17:this.next();break;case 3:e.push(this.parseWithFallback(this.Atrule.bind(this,!0),Id));break;default:this.isDelim(wL)?e.push(this.parseWithFallback(this.Rule,Id)):e.push(this.parseWithFallback(this.Declaration,Id))}return{type:"DeclarationList",loc:this.getLocationFromList(e),children:e}}function CL(e){this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")})}var wL,vL,kL,Ad=U(()=>{"use strict";wL=38;vL="DeclarationList",kL={children:[["Declaration","Atrule","Rule"]]}});var Ld={};ye(Ld,{generate:()=>FL,name:()=>TL,parse:()=>Pd,structure:()=>IL});function Pd(){let e=this.tokenStart,t=this.consumeNumber(12);return{type:"Dimension",loc:this.getLocation(e,this.tokenStart),value:t,unit:this.substring(e+t.length,this.tokenStart)}}function FL(e){this.token(12,e.value+e.unit)}var TL,IL,Md=U(()=>{"use strict";TL="Dimension",IL={value:String,unit:String}});var Dd={};ye(Dd,{generate:()=>LL,name:()=>AL,parse:()=>Bd,structure:()=>PL});function Bd(e){let t=this.tokenStart,n,r=null;if(this.eat(21),this.skipSC(),n=this.consume(1),this.skipSC(),this.tokenType!==22){switch(this.eat(16),this.skipSC(),this.tokenType){case 10:this.lookupNonWSType(1)===9?r=this.Ratio():r=this.Number();break;case 12:r=this.Dimension();break;case 1:r=this.Identifier();break;case 2:r=this.parseWithFallback(()=>{let o=this.Function(this.readSequence,this.scope.Value);return this.skipSC(),this.isDelim(EL)&&this.error(),o},()=>this.Ratio());break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}return this.eof||this.eat(22),{type:"Feature",loc:this.getLocation(t,this.tokenStart),kind:e,name:n,value:r}}function LL(e){this.token(21,"("),this.token(1,e.name),e.value!==null&&(this.token(16,":"),this.node(e.value)),this.token(22,")")}var EL,AL,PL,Rd=U(()=>{"use strict";EL=47,AL="Feature",PL={kind:String,name:String,value:["Identifier","Number","Dimension","Ratio","Function",null]}});var Nd={};ye(Nd,{generate:()=>RL,name:()=>ML,parse:()=>zd,structure:()=>BL});function DL(e,t){let r=(this.features[e]||{})[t];return typeof r!="function"&&this.error(`Unknown feature ${t}()`),r}function zd(e="unknown"){let t=this.tokenStart,n=this.consumeFunctionName(),r=DL.call(this,e,n.toLowerCase());this.skipSC();let o=this.parseWithFallback(()=>{let i=this.tokenIndex,s=r.call(this);return this.eof===!1&&this.isBalanceEdge(i)===!1&&this.error(),s},()=>this.Raw(null,!1));return this.eof||this.eat(22),{type:"FeatureFunction",loc:this.getLocation(t,this.tokenStart),kind:e,feature:n,value:o}}function RL(e){this.token(2,e.feature+"("),this.node(e.value),this.token(22,")")}var ML,BL,Od=U(()=>{"use strict";ML="FeatureFunction",BL={kind:String,feature:String,value:["Declaration","Selector"]}});var Ud={};ye(Ud,{generate:()=>$L,name:()=>OL,parse:()=>$d,structure:()=>_L});function _d(){switch(this.skipSC(),this.tokenType){case 10:return this.isDelim(Q0,this.lookupOffsetNonSC(1))?this.Ratio():this.Number();case 12:return this.Dimension();case 1:return this.Identifier();case 2:return this.parseWithFallback(()=>{let e=this.Function(this.readSequence,this.scope.Value);return this.skipSC(),this.isDelim(Q0)&&this.error(),e},()=>this.Ratio());default:this.error("Number, dimension, ratio or identifier is expected")}}function Z0(e){if(this.skipSC(),this.isDelim(zL)||this.isDelim(NL)){let t=this.source[this.tokenStart];return this.next(),this.isDelim(J0)?(this.next(),t+"="):t}if(this.isDelim(J0))return"=";this.error(`Expected ${e?'":", ':""}"<", ">", "=" or ")"`)}function $d(e="unknown"){let t=this.tokenStart;this.skipSC(),this.eat(21);let n=_d.call(this),r=Z0.call(this,n.type==="Identifier"),o=_d.call(this),i=null,s=null;return this.lookupNonWSType(0)!==22&&(i=Z0.call(this),s=_d.call(this)),this.skipSC(),this.eat(22),{type:"FeatureRange",loc:this.getLocation(t,this.tokenStart),kind:e,left:n,leftComparison:r,middle:o,rightComparison:i,right:s}}function $L(e){this.token(21,"("),this.node(e.left),this.tokenize(e.leftComparison),this.node(e.middle),e.right&&(this.tokenize(e.rightComparison),this.node(e.right)),this.token(22,")")}var Q0,zL,J0,NL,OL,_L,jd=U(()=>{"use strict";Q0=47,zL=60,J0=61,NL=62,OL="FeatureRange",_L={kind:String,left:["Identifier","Number","Dimension","Ratio","Function"],leftComparison:String,middle:["Identifier","Number","Dimension","Ratio","Function"],rightComparison:[String,null],right:["Identifier","Number","Dimension","Ratio","Function",null]}});var Wd={};ye(Wd,{generate:()=>WL,name:()=>UL,parse:()=>Hd,structure:()=>HL,walkContext:()=>jL});function Hd(e,t){let n=this.tokenStart,r=this.consumeFunctionName(),o=r.toLowerCase(),i;return i=t.hasOwnProperty(o)?t[o].call(this,t):e.call(this,t),this.eof||this.eat(22),{type:"Function",loc:this.getLocation(n,this.tokenStart),name:r,children:i}}function WL(e){this.token(2,e.name+"("),this.children(e),this.token(22,")")}var UL,jL,HL,Vd=U(()=>{"use strict";UL="Function",jL="function",HL={name:String,children:[[]]}});var qd={};ye(qd,{generate:()=>qL,name:()=>VL,parse:()=>Gd,structure:()=>GL});function Gd(e){let t=this.tokenStart,n=null;this.tokenType===2?n=this.consumeFunctionName():this.eat(21);let r=this.parseWithFallback(()=>{let o=this.tokenIndex,i=this.readSequence(this.scope.Value);return this.eof===!1&&this.isBalanceEdge(o)===!1&&this.error(),i},()=>this.createSingleNodeList(this.Raw(null,!1)));return this.eof||this.eat(22),{type:"GeneralEnclosed",loc:this.getLocation(t,this.tokenStart),kind:e,function:n,children:r}}function qL(e){e.function?this.token(2,e.function+"("):this.token(21,"("),this.children(e),this.token(22,")")}var VL,GL,Yd=U(()=>{"use strict";VL="GeneralEnclosed",GL={kind:String,function:[String,null],children:[[]]}});var Xd={};ye(Xd,{generate:()=>QL,name:()=>KL,parse:()=>Kd,structure:()=>XL,xxx:()=>YL});function Kd(){let e=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e+1)}}function QL(e){this.token(4,"#"+e.value)}var YL,KL,XL,Qd=U(()=>{"use strict";YL="XXX",KL="Hash",XL={value:String}});var Zd={};ye(Zd,{generate:()=>eM,name:()=>JL,parse:()=>Jd,structure:()=>ZL});function Jd(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function eM(e){this.token(1,e.name)}var JL,ZL,eg=U(()=>{"use strict";JL="Identifier",ZL={name:String}});var ng={};ye(ng,{generate:()=>rM,name:()=>tM,parse:()=>tg,structure:()=>nM});function tg(){let e=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e+1)}}function rM(e){this.token(9,"#"+e.name)}var tM,nM,rg=U(()=>{"use strict";tM="IdSelector",nM={name:String}});var ig={};ye(ig,{generate:()=>aM,name:()=>iM,parse:()=>og,structure:()=>sM});function og(){let e=this.tokenStart,t=this.consume(1);for(;this.isDelim(oM);)this.eat(9),t+="."+this.consume(1);return{type:"Layer",loc:this.getLocation(e,this.tokenStart),name:t}}function aM(e){this.tokenize(e.name)}var oM,iM,sM,sg=U(()=>{"use strict";oM=46,iM="Layer",sM={name:String}});var lg={};ye(lg,{generate:()=>uM,name:()=>lM,parse:()=>ag,structure:()=>cM});function ag(){let e=this.createList();for(this.skipSC();!this.eof&&(e.push(this.Layer()),this.lookupTypeNonSC(0)===18);)this.skipSC(),this.next(),this.skipSC();return{type:"LayerList",loc:this.getLocationFromList(e),children:e}}function uM(e){this.children(e,()=>this.token(18,","))}var lM,cM,cg=U(()=>{"use strict";lM="LayerList",cM={children:[["Layer"]]}});var pg={};ye(pg,{generate:()=>gM,name:()=>pM,parse:()=>ug,structure:()=>dM});function ug(){let e=this.tokenStart,t=null,n=null,r=null;if(this.skipSC(),this.tokenType===1&&this.lookupTypeNonSC(1)!==21){let o=this.consume(1),i=o.toLowerCase();switch(i==="not"||i==="only"?(this.skipSC(),t=i,n=this.consume(1)):n=o,this.lookupTypeNonSC(0)){case 1:{this.skipSC(),this.eatIdent("and"),r=this.Condition("media");break}case 23:case 17:case 18:case 0:break;default:this.error("Identifier or parenthesis is expected")}}else switch(this.tokenType){case 1:case 21:case 2:{r=this.Condition("media");break}case 23:case 17:case 0:break;default:this.error("Identifier or parenthesis is expected")}return{type:"MediaQuery",loc:this.getLocation(e,this.tokenStart),modifier:t,mediaType:n,condition:r}}function gM(e){e.mediaType?(e.modifier&&this.token(1,e.modifier),this.token(1,e.mediaType),e.condition&&(this.token(1,"and"),this.node(e.condition))):e.condition&&this.node(e.condition)}var pM,dM,dg=U(()=>{"use strict";pM="MediaQuery",dM={modifier:[String,null],mediaType:[String,null],condition:["Condition",null]}});var fg={};ye(fg,{generate:()=>hM,name:()=>fM,parse:()=>gg,structure:()=>mM});function gg(){let e=this.createList();for(this.skipSC();!this.eof&&(e.push(this.MediaQuery()),this.tokenType===18);)this.next();return{type:"MediaQueryList",loc:this.getLocationFromList(e),children:e}}function hM(e){this.children(e,()=>this.token(18,","))}var fM,mM,mg=U(()=>{"use strict";fM="MediaQueryList",mM={children:[["MediaQuery"]]}});var xg={};ye(xg,{generate:()=>SM,name:()=>yM,parse:()=>hg,structure:()=>bM});function hg(){let e=this.tokenStart;return this.eatDelim(xM),{type:"NestingSelector",loc:this.getLocation(e,this.tokenStart)}}function SM(){this.token(9,"&")}var xM,yM,bM,yg=U(()=>{"use strict";xM=38,yM="NestingSelector",bM={}});var Sg={};ye(Sg,{generate:()=>kM,name:()=>wM,parse:()=>bg,structure:()=>vM});function bg(){this.skipSC();let e=this.tokenStart,t=e,n=null,r;return this.lookupValue(0,"odd")||this.lookupValue(0,"even")?r=this.Identifier():r=this.AnPlusB(),t=this.tokenStart,this.skipSC(),this.lookupValue(0,"of")&&(this.next(),n=this.SelectorList(),t=this.tokenStart),{type:"Nth",loc:this.getLocation(e,t),nth:r,selector:n}}function kM(e){this.node(e.nth),e.selector!==null&&(this.token(1,"of"),this.node(e.selector))}var wM,vM,wg=U(()=>{"use strict";wM="Nth",vM={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]}});var kg={};ye(kg,{generate:()=>IM,name:()=>CM,parse:()=>vg,structure:()=>TM});function vg(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function IM(e){this.token(10,e.value)}var CM,TM,Cg=U(()=>{"use strict";CM="Number",TM={value:String}});var Ig={};ye(Ig,{generate:()=>AM,name:()=>FM,parse:()=>Tg,structure:()=>EM});function Tg(){let e=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function AM(e){this.tokenize(e.value)}var FM,EM,Fg=U(()=>{"use strict";FM="Operator",EM={value:String}});var Ag={};ye(Ag,{generate:()=>MM,name:()=>PM,parse:()=>Eg,structure:()=>LM});function Eg(e,t){let n=this.tokenStart,r=null;return this.eat(21),r=e.call(this,t),this.eof||this.eat(22),{type:"Parentheses",loc:this.getLocation(n,this.tokenStart),children:r}}function MM(e){this.token(21,"("),this.children(e),this.token(22,")")}var PM,LM,Pg=U(()=>{"use strict";PM="Parentheses",LM={children:[[]]}});var Mg={};ye(Mg,{generate:()=>RM,name:()=>BM,parse:()=>Lg,structure:()=>DM});function Lg(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function RM(e){this.token(11,e.value+"%")}var BM,DM,Bg=U(()=>{"use strict";BM="Percentage",DM={value:String}});var Rg={};ye(Rg,{generate:()=>_M,name:()=>zM,parse:()=>Dg,structure:()=>OM,walkContext:()=>NM});function Dg(){let e=this.tokenStart,t=null,n,r;return this.eat(16),this.tokenType===2?(n=this.consumeFunctionName(),r=n.toLowerCase(),this.lookupNonWSType(0)==22?t=this.createList():hasOwnProperty.call(this.pseudo,r)?(this.skipSC(),t=this.pseudo[r].call(this),this.skipSC()):(t=this.createList(),t.push(this.Raw(null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoClassSelector",loc:this.getLocation(e,this.tokenStart),name:n,children:t}}function _M(e){this.token(16,":"),e.children===null?this.token(1,e.name):(this.token(2,e.name+"("),this.children(e),this.token(22,")"))}var zM,NM,OM,zg=U(()=>{"use strict";zM="PseudoClassSelector",NM="function",OM={name:String,children:[["Raw"],null]}});var Og={};ye(Og,{generate:()=>HM,name:()=>$M,parse:()=>Ng,structure:()=>jM,walkContext:()=>UM});function Ng(){let e=this.tokenStart,t=null,n,r;return this.eat(16),this.eat(16),this.tokenType===2?(n=this.consumeFunctionName(),r=n.toLowerCase(),this.lookupNonWSType(0)==22?t=this.createList():hasOwnProperty.call(this.pseudo,r)?(this.skipSC(),t=this.pseudo[r].call(this),this.skipSC()):(t=this.createList(),t.push(this.Raw(null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoElementSelector",loc:this.getLocation(e,this.tokenStart),name:n,children:t}}function HM(e){this.token(16,":"),this.token(16,":"),e.children===null?this.token(1,e.name):(this.token(2,e.name+"("),this.children(e),this.token(22,")"))}var $M,UM,jM,_g=U(()=>{"use strict";$M="PseudoElementSelector",UM="function",jM={name:String,children:[["Raw"],null]}});var Ug={};ye(Ug,{generate:()=>GM,name:()=>WM,parse:()=>$g,structure:()=>VM});function tS(){switch(this.skipSC(),this.tokenType){case 10:return this.Number();case 2:return this.Function(this.readSequence,this.scope.Value);default:this.error("Number of function is expected")}}function $g(){let e=this.tokenStart,t=tS.call(this),n=null;return this.skipSC(),this.isDelim(eS)&&(this.eatDelim(eS),n=tS.call(this)),{type:"Ratio",loc:this.getLocation(e,this.tokenStart),left:t,right:n}}function GM(e){this.node(e.left),this.token(9,"/"),e.right?this.node(e.right):this.node(10,1)}var eS,WM,VM,jg=U(()=>{"use strict";eS=47;WM="Ratio",VM={left:["Number","Function"],right:["Number","Function",null]}});var Wg={};ye(Wg,{generate:()=>XM,name:()=>YM,parse:()=>Hg,structure:()=>KM});function qM(){return this.tokenIndex>0&&this.lookupType(-1)===13?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}function Hg(e,t){let n=this.getTokenStart(this.tokenIndex),r;return this.skipUntilBalanced(this.tokenIndex,e||this.consumeUntilBalanceEnd),t&&this.tokenStart>n?r=qM.call(this):r=this.tokenStart,{type:"Raw",loc:this.getLocation(n,r),value:this.substring(n,r)}}function XM(e){this.tokenize(e.value)}var YM,KM,Vg=U(()=>{"use strict";YM="Raw",KM={value:String}});var qg={};ye(qg,{generate:()=>tB,name:()=>JM,parse:()=>Gg,structure:()=>eB,walkContext:()=>ZM});function nS(){return this.Raw(this.consumeUntilLeftCurlyBracket,!0)}function QM(){let e=this.SelectorList();return e.type!=="Raw"&&this.eof===!1&&this.tokenType!==23&&this.error(),e}function Gg(){let e=this.tokenIndex,t=this.tokenStart,n,r;return this.parseRulePrelude?n=this.parseWithFallback(QM,nS):n=nS.call(this,e),r=this.Block(!0),{type:"Rule",loc:this.getLocation(t,this.tokenStart),prelude:n,block:r}}function tB(e){this.node(e.prelude),this.node(e.block)}var JM,ZM,eB,Yg=U(()=>{"use strict";JM="Rule",ZM="rule",eB={prelude:["SelectorList","Raw"],block:["Block"]}});var Xg={};ye(Xg,{generate:()=>oB,name:()=>nB,parse:()=>Kg,structure:()=>rB});function Kg(){let e=null,t=null;this.skipSC();let n=this.tokenStart;return this.tokenType===21&&(this.next(),this.skipSC(),e=this.parseWithFallback(this.SelectorList,()=>this.Raw(!1,!0)),this.skipSC(),this.eat(22)),this.lookupNonWSType(0)===1&&(this.skipSC(),this.eatIdent("to"),this.skipSC(),this.eat(21),this.skipSC(),t=this.parseWithFallback(this.SelectorList,()=>this.Raw(!1,!0)),this.skipSC(),this.eat(22)),{type:"Scope",loc:this.getLocation(n,this.tokenStart),root:e,limit:t}}function oB(e){e.root&&(this.token(21,"("),this.node(e.root),this.token(22,")")),e.limit&&(this.token(1,"to"),this.token(21,"("),this.node(e.limit),this.token(22,")"))}var nB,rB,Qg=U(()=>{"use strict";nB="Scope",rB={root:["SelectorList","Raw",null],limit:["SelectorList","Raw",null]}});var Zg={};ye(Zg,{generate:()=>aB,name:()=>iB,parse:()=>Jg,structure:()=>sB});function Jg(){let e=this.readSequence(this.scope.Selector);return this.getFirstListNode(e)===null&&this.error("Selector is expected"),{type:"Selector",loc:this.getLocationFromList(e),children:e}}function aB(e){this.children(e)}var iB,sB,ef=U(()=>{"use strict";iB="Selector",sB={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator"]]}});var nf={};ye(nf,{generate:()=>pB,name:()=>lB,parse:()=>tf,structure:()=>uB,walkContext:()=>cB});function tf(){let e=this.createList();for(;!this.eof;){if(e.push(this.Selector()),this.tokenType===18){this.next();continue}break}return{type:"SelectorList",loc:this.getLocationFromList(e),children:e}}function pB(e){this.children(e,()=>this.token(18,","))}var lB,cB,uB,rf=U(()=>{"use strict";lB="SelectorList",cB="selector",uB={children:[["Selector","Raw"]]}});function $l(e){let t=e.length,n=e.charCodeAt(0),r=n===rS||n===oS?1:0,o=r===1&&t>1&&e.charCodeAt(t-1)===n?t-2:t-1,i="";for(let s=r;s<=o;s++){let a=e.charCodeAt(s);if(a===of){if(s===o){s!==t-1&&(i=e.substr(s+1));break}if(a=e.charCodeAt(++s),Rn(of,a)){let u=s-1,c=Zr(e,u);s=c-1,i+=cl(e.substring(u+1,c))}else a===13&&e.charCodeAt(s+1)===10&&s++}else i+=e[s]}return i}function iS(e,t){let n=t?"'":'"',r=t?oS:rS,o="",i=!1;for(let s=0;s<e.length;s++){let a=e.charCodeAt(s);if(a===0){o+="\uFFFD";continue}if(a<=31||a===127){o+="\\"+a.toString(16),i=!0;continue}a===r||a===of?(o+="\\"+e.charAt(s),i=!1):(i&&(zn(a)||_r(a))&&(o+=" "),o+=e.charAt(s),i=!1)}return n+o+n}var of,rS,oS,Ul=U(()=>{"use strict";lr();of=92,rS=34,oS=39});var af={};ye(af,{generate:()=>fB,name:()=>dB,parse:()=>sf,structure:()=>gB});function sf(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:$l(this.consume(5))}}function fB(e){this.token(5,iS(e.value))}var dB,gB,lf=U(()=>{"use strict";Ul();dB="String",gB={value:String}});var uf={};ye(uf,{generate:()=>bB,name:()=>hB,parse:()=>cf,structure:()=>yB,walkContext:()=>xB});function aS(){return this.Raw(null,!1)}function cf(){let e=this.tokenStart,t=this.createList(),n;for(;!this.eof;){switch(this.tokenType){case 13:this.next();continue;case 25:if(this.charCodeAt(this.tokenStart+2)!==mB){this.next();continue}n=this.Comment();break;case 14:n=this.CDO();break;case 15:n=this.CDC();break;case 3:n=this.parseWithFallback(this.Atrule,aS);break;default:n=this.parseWithFallback(this.Rule,aS)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function bB(e){this.children(e)}var mB,hB,xB,yB,pf=U(()=>{"use strict";mB=33;hB="StyleSheet",xB="stylesheet",yB={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]}});var gf={};ye(gf,{generate:()=>vB,name:()=>SB,parse:()=>df,structure:()=>wB});function df(){let e=this.tokenStart;this.eat(21),this.skipSC();let t=this.Declaration();return this.eof||this.eat(22),{type:"SupportsDeclaration",loc:this.getLocation(e,this.tokenStart),declaration:t}}function vB(e){this.token(21,"("),this.node(e.declaration),this.token(22,")")}var SB,wB,ff=U(()=>{"use strict";SB="SupportsDeclaration",wB={declaration:"Declaration"}});var xf={};ye(xf,{generate:()=>IB,name:()=>CB,parse:()=>hf,structure:()=>TB});function mf(){this.tokenType!==1&&this.isDelim(kB)===!1&&this.error("Identifier or asterisk is expected"),this.next()}function hf(){let e=this.tokenStart;return this.isDelim(lS)?(this.next(),mf.call(this)):(mf.call(this),this.isDelim(lS)&&(this.next(),mf.call(this))),{type:"TypeSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e)}}function IB(e){this.tokenize(e.name)}var kB,lS,CB,TB,yf=U(()=>{"use strict";kB=42,lS=124;CB="TypeSelector",TB={name:String}});var wf={};ye(wf,{generate:()=>LB,name:()=>AB,parse:()=>Sf,structure:()=>PB});function Us(e,t){let n=0;for(let r=this.tokenStart+e;r<this.tokenEnd;r++){let o=this.charCodeAt(r);if(o===uS&&t&&n!==0)return Us.call(this,e+n+1,!1),-1;zn(o)||this.error(t&&n!==0?"Hyphen minus"+(n<6?" or hex digit":"")+" is expected":n<6?"Hex digit is expected":"Unexpected input",r),++n>6&&this.error("Too many hex digits",r)}return this.next(),n}function jl(e){let t=0;for(;this.isDelim(bf);)++t>e&&this.error("Too many question marks"),this.next()}function FB(e){this.charCodeAt(this.tokenStart)!==e&&this.error((e===cS?"Plus sign":"Hyphen minus")+" is expected")}function EB(){let e=0;switch(this.tokenType){case 10:if(e=Us.call(this,1,!0),this.isDelim(bf)){jl.call(this,6-e);break}if(this.tokenType===12||this.tokenType===10){FB.call(this,uS),Us.call(this,1,!1);break}break;case 12:e=Us.call(this,1,!0),e>0&&jl.call(this,6-e);break;default:if(this.eatDelim(cS),this.tokenType===1){e=Us.call(this,0,!0),e>0&&jl.call(this,6-e);break}if(this.isDelim(bf)){this.next(),jl.call(this,5);break}this.error("Hex digit or question mark is expected")}}function Sf(){let e=this.tokenStart;return this.eatIdent("u"),EB.call(this),{type:"UnicodeRange",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function LB(e){this.tokenize(e.value)}var cS,uS,bf,AB,PB,vf=U(()=>{"use strict";lr();cS=43,uS=45,bf=63;AB="UnicodeRange",PB={value:String}});function dS(e){let t=e.length,n=4,r=e.charCodeAt(t-1)===pS?t-2:t-1,o="";for(;n<r&&_r(e.charCodeAt(n));)n++;for(;n<r&&_r(e.charCodeAt(r));)r--;for(let i=n;i<=r;i++){let s=e.charCodeAt(i);if(s===kf){if(i===r){i!==t-1&&(o=e.substr(i+1));break}if(s=e.charCodeAt(++i),Rn(kf,s)){let a=i-1,u=Zr(e,a);i=u-1,o+=cl(e.substring(a+1,u))}else s===13&&e.charCodeAt(i+1)===10&&i++}else o+=e[i]}return o}function gS(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);if(o===0){t+="\uFFFD";continue}if(o<=31||o===127){t+="\\"+o.toString(16),n=!0;continue}o===MB||o===kf||o===BB||o===DB||o===RB||o===pS?(t+="\\"+e.charAt(r),n=!1):(n&&zn(o)&&(t+=" "),t+=e.charAt(r),n=!1)}return"url("+t+")"}var MB,kf,BB,DB,RB,pS,Cf=U(()=>{"use strict";lr();MB=32,kf=92,BB=34,DB=39,RB=40,pS=41});var If={};ye(If,{generate:()=>OB,name:()=>zB,parse:()=>Tf,structure:()=>NB});function Tf(){let e=this.tokenStart,t;switch(this.tokenType){case 7:t=dS(this.consume(7));break;case 2:this.cmpStr(this.tokenStart,this.tokenEnd,"url(")||this.error("Function name must be `url`"),this.eat(2),this.skipSC(),t=$l(this.consume(5)),this.skipSC(),this.eof||this.eat(22);break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(e,this.tokenStart),value:t}}function OB(e){this.token(7,gS(e.value))}var zB,NB,Ff=U(()=>{"use strict";Cf();Ul();zB="Url",NB={value:String}});var Af={};ye(Af,{generate:()=>UB,name:()=>_B,parse:()=>Ef,structure:()=>$B});function Ef(){let e=this.tokenStart,t=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(e,this.tokenStart),children:t}}function UB(e){this.children(e)}var _B,$B,Pf=U(()=>{"use strict";_B="Value",$B={children:[[]]}});var Mf={};ye(Mf,{generate:()=>VB,name:()=>HB,parse:()=>Lf,structure:()=>WB});function Lf(){return this.eat(13),jB}function VB(e){this.token(13,e.value)}var jB,HB,WB,Bf=U(()=>{"use strict";jB=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),HB="WhiteSpace",WB={value:String}});var js={};ye(js,{AnPlusB:()=>Up,Atrule:()=>Wp,AtrulePrelude:()=>qp,AttributeSelector:()=>Qp,Block:()=>ed,Brackets:()=>rd,CDC:()=>sd,CDO:()=>cd,ClassSelector:()=>dd,Combinator:()=>md,Comment:()=>yd,Condition:()=>wd,Declaration:()=>Cd,DeclarationList:()=>Ed,Dimension:()=>Ld,Feature:()=>Dd,FeatureFunction:()=>Nd,FeatureRange:()=>Ud,Function:()=>Wd,GeneralEnclosed:()=>qd,Hash:()=>Xd,IdSelector:()=>ng,Identifier:()=>Zd,Layer:()=>ig,LayerList:()=>lg,MediaQuery:()=>pg,MediaQueryList:()=>fg,NestingSelector:()=>xg,Nth:()=>Sg,Number:()=>kg,Operator:()=>Ig,Parentheses:()=>Ag,Percentage:()=>Mg,PseudoClassSelector:()=>Rg,PseudoElementSelector:()=>Og,Ratio:()=>Ug,Raw:()=>Wg,Rule:()=>qg,Scope:()=>Xg,Selector:()=>Zg,SelectorList:()=>nf,String:()=>af,StyleSheet:()=>uf,SupportsDeclaration:()=>gf,TypeSelector:()=>xf,UnicodeRange:()=>wf,Url:()=>If,Value:()=>Af,WhiteSpace:()=>Mf});var Df=U(()=>{"use strict";jp();Vp();Yp();Jp();td();od();ad();ud();gd();hd();bd();vd();Td();Ad();Md();Rd();Od();jd();Vd();Yd();Qd();eg();rg();sg();cg();dg();mg();yg();wg();Cg();Fg();Pg();Bg();zg();_g();jg();Vg();Yg();Qg();ef();rf();lf();pf();ff();yf();vf();Ff();Pf();Bf()});var mS,hS=U(()=>{"use strict";Fl();U0();Df();mS={generic:!0,cssWideKeywords:Li,...$0,node:js}});function Hs(e){switch(this.tokenType){case 4:return this.Hash();case 18:return this.Operator();case 21:return this.Parentheses(this.readSequence,e.recognizer);case 19:return this.Brackets(this.readSequence,e.recognizer);case 5:return this.String();case 12:return this.Dimension();case 11:return this.Percentage();case 10:return this.Number();case 2:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,e.recognizer);case 7:return this.Url();case 1:return this.cmpChar(this.tokenStart,XB)&&this.cmpChar(this.tokenStart+1,xS)?this.UnicodeRange():this.Identifier();case 9:{let t=this.charCodeAt(this.tokenStart);if(t===KB||t===qB||t===xS||t===YB)return this.Operator();t===GB&&this.error("Hex or identifier is expected",this.tokenStart+1);break}}}var GB,qB,xS,YB,KB,XB,Rf=U(()=>{"use strict";GB=35,qB=42,xS=43,YB=45,KB=47,XB=117});var yS,bS=U(()=>{"use strict";Rf();yS={getNode:Hs}});function iD(e,t){t.last!==null&&t.last.type!=="Combinator"&&e!==null&&e.type!=="Combinator"&&t.push({type:"Combinator",loc:null,name:" "})}function sD(){switch(this.tokenType){case 19:return this.AttributeSelector();case 4:return this.IdSelector();case 16:return this.lookupType(1)===16?this.PseudoElementSelector():this.PseudoClassSelector();case 1:return this.TypeSelector();case 10:case 11:return this.Percentage();case 12:this.charCodeAt(this.tokenStart)===SS&&this.error("Identifier is expected",this.tokenStart+1);break;case 9:{switch(this.charCodeAt(this.tokenStart)){case eD:case nD:case oD:case tD:return this.Combinator();case SS:return this.ClassSelector();case ZB:case rD:return this.TypeSelector();case QB:return this.IdSelector();case JB:return this.NestingSelector()}break}}}var QB,JB,ZB,eD,tD,SS,nD,rD,oD,wS,vS=U(()=>{"use strict";QB=35,JB=38,ZB=42,eD=43,tD=47,SS=46,nD=62,rD=124,oD=126;wS={onWhiteSpace:iD,getNode:sD}});function kS(){return this.createSingleNodeList(this.Raw(null,!1))}var CS=U(()=>{"use strict"});function TS(){let e=this.createList();if(this.skipSC(),e.push(this.Identifier()),this.skipSC(),this.tokenType===18){e.push(this.Operator());let t=this.tokenIndex,n=this.parseCustomProperty?this.Value(null):this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1);if(n.type==="Value"&&n.children.isEmpty){for(let r=t-this.tokenIndex;r<=0;r++)if(this.lookupType(r)===13){n.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}e.push(n)}return e}var IS=U(()=>{"use strict"});function FS(e){return e!==null&&e.type==="Operator"&&(e.value[e.value.length-1]==="-"||e.value[e.value.length-1]==="+")}var ES,AS=U(()=>{"use strict";Rf();CS();IS();ES={getNode:Hs,onWhiteSpace(e,t){FS(e)&&(e.value=" "+e.value),FS(t.last)&&(t.last.value+=" ")},expression:kS,var:TS}});var zf={};ye(zf,{AtrulePrelude:()=>yS,Selector:()=>wS,Value:()=>ES});var PS=U(()=>{"use strict";bS();vS();AS()});var aD,LS,MS=U(()=>{"use strict";aD=new Set(["none","and","not","or"]),LS={parse:{prelude(){let e=this.createList();if(this.tokenType===1){let t=this.substring(this.tokenStart,this.tokenEnd);aD.has(t.toLowerCase())||e.push(this.Identifier())}return e.push(this.Condition("container")),e},block(e=!1){return this.Block(e)}}}});var BS,DS=U(()=>{"use strict";BS={parse:{prelude:null,block(){return this.Block(!0)}}}});function Nf(e,t){return this.parseWithFallback(()=>{try{return e.call(this)}finally{this.skipSC(),this.lookupNonWSType(0)!==22&&this.error()}},t||(()=>this.Raw(null,!0)))}var RS,zS,NS=U(()=>{"use strict";RS={layer(){this.skipSC();let e=this.createList(),t=Nf.call(this,this.Layer);return(t.type!=="Raw"||t.value!=="")&&e.push(t),e},supports(){this.skipSC();let e=this.createList(),t=Nf.call(this,this.Declaration,()=>Nf.call(this,()=>this.Condition("supports")));return(t.type!=="Raw"||t.value!=="")&&e.push(t),e}},zS={parse:{prelude(){let e=this.createList();switch(this.tokenType){case 5:e.push(this.String());break;case 7:case 2:e.push(this.Url());break;default:this.error("String or url() is expected")}return this.skipSC(),this.tokenType===1&&this.cmpStr(this.tokenStart,this.tokenEnd,"layer")?e.push(this.Identifier()):this.tokenType===2&&this.cmpStr(this.tokenStart,this.tokenEnd,"layer(")&&e.push(this.Function(null,RS)),this.skipSC(),this.tokenType===2&&this.cmpStr(this.tokenStart,this.tokenEnd,"supports(")&&e.push(this.Function(null,RS)),(this.lookupNonWSType(0)===1||this.lookupNonWSType(0)===21)&&e.push(this.MediaQueryList()),e},block:null}}});var OS,_S=U(()=>{"use strict";OS={parse:{prelude(){return this.createSingleNodeList(this.LayerList())},block(){return this.Block(!1)}}}});var $S,US=U(()=>{"use strict";$S={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(e=!1){return this.Block(e)}}}});var jS,HS=U(()=>{"use strict";jS={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var WS,VS=U(()=>{"use strict";WS={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var GS,qS=U(()=>{"use strict";GS={parse:{prelude(){return this.createSingleNodeList(this.Scope())},block(e=!1){return this.Block(e)}}}});var YS,KS=U(()=>{"use strict";YS={parse:{prelude:null,block(e=!1){return this.Block(e)}}}});var XS,QS=U(()=>{"use strict";XS={parse:{prelude(){return this.createSingleNodeList(this.Condition("supports"))},block(e=!1){return this.Block(e)}}}});var JS,ZS=U(()=>{"use strict";MS();DS();NS();_S();US();HS();VS();qS();KS();QS();JS={container:LS,"font-face":BS,import:zS,layer:OS,media:$S,nest:jS,page:WS,scope:GS,"starting-style":YS,supports:XS}});function ew(){let e=this.createList();this.skipSC();e:for(;!this.eof;){switch(this.tokenType){case 1:e.push(this.Identifier());break;case 5:e.push(this.String());break;case 18:e.push(this.Operator());break;case 22:break e;default:this.error("Identifier, string or comma is expected")}this.skipSC()}return e}var tw=U(()=>{"use strict"});var ni,Of,lD,cD,Hl,nw,rw=U(()=>{"use strict";tw();ni={parse(){return this.createSingleNodeList(this.SelectorList())}},Of={parse(){return this.createSingleNodeList(this.Selector())}},lD={parse(){return this.createSingleNodeList(this.Identifier())}},cD={parse:ew},Hl={parse(){return this.createSingleNodeList(this.Nth())}},nw={dir:lD,has:ni,lang:cD,matches:ni,is:ni,"-moz-any":ni,"-webkit-any":ni,where:ni,not:ni,"nth-child":Hl,"nth-last-child":Hl,"nth-last-of-type":Hl,"nth-of-type":Hl,slotted:Of,host:Of,"host-context":Of}});var _f={};ye(_f,{AnPlusB:()=>$p,Atrule:()=>Hp,AtrulePrelude:()=>Gp,AttributeSelector:()=>Xp,Block:()=>Zp,Brackets:()=>nd,CDC:()=>id,CDO:()=>ld,ClassSelector:()=>pd,Combinator:()=>fd,Comment:()=>xd,Condition:()=>Sd,Declaration:()=>kd,DeclarationList:()=>Fd,Dimension:()=>Pd,Feature:()=>Bd,FeatureFunction:()=>zd,FeatureRange:()=>$d,Function:()=>Hd,GeneralEnclosed:()=>Gd,Hash:()=>Kd,IdSelector:()=>tg,Identifier:()=>Jd,Layer:()=>og,LayerList:()=>ag,MediaQuery:()=>ug,MediaQueryList:()=>gg,NestingSelector:()=>hg,Nth:()=>bg,Number:()=>vg,Operator:()=>Tg,Parentheses:()=>Eg,Percentage:()=>Lg,PseudoClassSelector:()=>Dg,PseudoElementSelector:()=>Ng,Ratio:()=>$g,Raw:()=>Hg,Rule:()=>Gg,Scope:()=>Kg,Selector:()=>Jg,SelectorList:()=>tf,String:()=>sf,StyleSheet:()=>cf,SupportsDeclaration:()=>df,TypeSelector:()=>hf,UnicodeRange:()=>Sf,Url:()=>Tf,Value:()=>Ef,WhiteSpace:()=>Lf});var ow=U(()=>{"use strict";jp();Vp();Yp();Jp();td();od();ad();ud();gd();hd();bd();vd();Td();Ad();Md();Rd();Od();jd();Vd();Yd();Qd();eg();rg();sg();cg();dg();mg();yg();wg();Cg();Fg();Pg();Bg();zg();_g();jg();Vg();Yg();Qg();ef();rf();lf();pf();ff();yf();vf();Ff();Pf();Bf()});var iw,sw=U(()=>{"use strict";PS();ZS();rw();ow();iw={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(e){return this.AtrulePrelude(e.atrule?String(e.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",condition(e){return this.Condition(e.kind)},rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},features:{supports:{selector(){return this.Selector()}},container:{style(){return this.Declaration()}}},scope:zf,atrule:JS,pseudo:nw,node:_f}});var aw,lw=U(()=>{"use strict";Df();aw={node:js}});var cw,uw=U(()=>{"use strict";_0();hS();sw();lw();cw=O0({...mS,...iw,...aw})});var pw=U(()=>{"use strict"});var dw=U(()=>{"use strict"});var UY,gw,jY,HY,WY,fw,VY,GY,qY,YY,KY,XY,mw=U(()=>{"use strict";uw();pw();Ip();Il();dw();Ul();Cf();({tokenize:UY,parse:gw,generate:jY,lexer:HY,createLexer:WY,walk:fw,find:VY,findLast:GY,findAll:qY,toPlainObject:YY,fromPlainObject:KY,fork:XY}=cw)});function gD(e){return e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function xw(e){try{let t=gw(e.trim(),{context:"value"}),n=[];return fw(t,{enter(r){if(r.type==="Dimension"){let o=parseFloat(r.value);n.push(`${o}${r.unit}`)}else if(r.type==="Number"){let o=parseFloat(r.value);n.push(`${o}`)}else r.type==="Percentage"?n.push(`${parseFloat(r.value)}%`):r.type==="Identifier"?n.push(r.name.toLowerCase()):r.type==="Hash"?n.push(`#${r.value.toLowerCase()}`):r.type}}),n}catch{return[e.trim().toLowerCase()]}}function fD(e,t){let n=gD(e);if(!dD.has(n))return t;let r=xw(t);if(r.length<1||r.length>4)return t;let o=r.map(i=>i==="0"?"0px":i);return o.length===1?`${o[0]} ${o[0]} ${o[0]} ${o[0]}`:o.length===2?`${o[0]} ${o[1]} ${o[0]} ${o[1]}`:o.length===3?`${o[0]} ${o[1]} ${o[2]} ${o[1]}`:o.join(" ")}function hw(e,t){let n=t.trim();if(!n)return"";let r=fD(e,n);return xw(r).map(i=>i==="0"?"0px":i).join(" ")}function yw(e,t,n){let r=hw(e,t),o=hw(e,n);return r!==""&&o!==""&&r===o}var dD,bw=U(()=>{"use strict";mw();dD=new Set(["padding","margin","border-radius","borderradius","inset","border-width","borderwidth"])});function mD(e){let t=e.toLowerCase();return t.length===4?`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`:t}function hD(e){let t=e.match(/rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*[\d.]+)?\s*\)/);if(!t)return null;let n=parseInt(t[1],10).toString(16).padStart(2,"0"),r=parseInt(t[2],10).toString(16).padStart(2,"0"),o=parseInt(t[3],10).toString(16).padStart(2,"0");return`#${n}${r}${o}`}function Sw(e){let t=typeof e=="string"?e:String(e??"");if(!t||t==="[object Object]")return"";let n=t.match(/rgba?\s*\(\s*\d+\s*,\s*\d+\s*,\s*\d+(?:\s*,\s*[\d.]+)?\s*\)/);if(n){let i=hD(n[0]);if(i)return i}let r=t.match(/#([0-9a-fA-F]{3,8})/);if(r)return mD(r[0]);let o=t.match(/(-?\d+\.?\d*)(px|em|rem|%|pt|vw|vh)?/g);return o&&o.length>1?o.join(" ").toLowerCase():o&&o.length===1?o[0].toLowerCase():t.toLowerCase().trim().replace(/\s+/g," ")}function ri(e,t,n){if(!e||!t)return!1;let r=String(e),o=String(t),i=r.toLowerCase(),s=o.toLowerCase(),a=i.includes("none"),u=s.includes("none");if(a!==u)return!1;let c=/\b(fill|stroke)\s*:/i,l=c.test(r),d=c.test(o);if(l!==d)return!1;let g=Sw(r),p=Sw(o);return!!(g===p||n&&yw(n,r,o))}var $f=U(()=>{"use strict";bw()});function wD(e){let t=String(e.property||"").toLowerCase(),n=String(e.description||"").toLowerCase(),r=String(e.expected||e.suggestedValue||"").toLowerCase(),o=String(e.actual||e.currentValue||"").toLowerCase();if(t.includes("color")||t.includes("fill")||t.includes("background")||n.includes("color")||n.includes("fill"))return!0;let i=s=>/^#[0-9a-f]{3,8}$/i.test(s)||s.includes("rgb")||["white","black","red","blue","green","orange","yellow","transparent"].includes(s);return!!(i(r)||i(o)||e.relatedProperties?.some(s=>{let a=s.property?.toLowerCase()||"";return a.includes("color")||a.includes("fill")||a.includes("background")}))}function ww(e){if(e.includes("\xD7")||/\d+px\s*x\s*\d+px/i.test(e))return!1;let t=e.match(/\d+px/g);return t?t.length>1:!1}function vD(e){let t=String(e.expected||e.suggestedValue||"").toLowerCase(),n=String(e.actual||e.currentValue||"").toLowerCase(),r=String(e.property||"").toLowerCase(),o=String(e.description||"").toLowerCase(),i=n.includes("margin")||t.includes("margin")||r==="margin",s=t.includes("gap")||o.includes("gap");return i&&s}function kD(e,t,n){if(!e||!t)return!1;let r=typeof e=="string"?e:String(e??""),o=typeof t=="string"?t:String(t??"");if(!r||!o||r==="[object Object]"||o==="[object Object]"||n&&wD(n)||ww(r)||ww(o)||n&&vD(n))return!1;let i=parseFloat(r),s=parseFloat(o);if(isNaN(i)||isNaN(s))return!1;let a=Math.abs(i-s);if(r.includes("px")||o.includes("px")){let u=n?.property?.toLowerCase()||"";return u==="width"||u==="height"||u.includes("width")||u.includes("height")?a<kw:a<vw}return r.includes("%")||o.includes("%")?a<1:!1}function CD(e){let t=`${e.description||""} ${e.title||""} ${e.suggestedFix||""}`.toLowerCase();if(SD.some(s=>t.includes(s))||!yD.some(s=>t.includes(s)))return!1;let o=e.expected||e.suggestedValue,i=e.actual||e.currentValue;return!(o&&i&&!ri(o,i,e.property))}function TD(e){let t=(e.expected!==void 0?"fill":"").toLowerCase(),n=e.actual!==void 0||e.currentValue!==void 0?"fill":"";if(!(t==="fill"||n==="fill"||e.description?.toLowerCase().includes("fill")||e.title?.toLowerCase().includes("fill")))return!1;let o=String(e.expected||e.suggestedValue||"").toLowerCase();if(!(o==="none"||o==="transparent"||o.includes("no fills")||o.includes("transparent")))return!1;let s=`${e.description||""} ${e.title||""}`.toLowerCase();return s.includes("container")||s.includes("svg ")||s.includes("<svg")||s.includes("wrapper")}function ID(e){let t=`${e.description||""} ${e.title||""}`.toLowerCase(),n=e.property?.toLowerCase()||"";if(!(t.includes("text ")||t.includes("text layer")||t.includes("text span")||t.includes("span ")||t.includes("label "))||!(n==="width"||n==="height"||n.includes("width")||n.includes("height")||t.includes("width")||t.includes("height")))return!1;let i=e.expected||e.suggestedValue||"",s=e.actual||e.currentValue||"",a=parseFloat(i),u=parseFloat(s);return isNaN(a)||isNaN(u)?!1:Math.abs(a-u)<Cw}function FD(e){let t=`${e.description||""} ${e.title||""} ${e.suggestedFix||""}`.toLowerCase(),n=String(e.expected||e.suggestedValue||"").toLowerCase(),r=String(e.actual||e.currentValue||"").toLowerCase();if(!bD.some(d=>t.includes(d)||n.includes(d)))return!1;let i=`${t} ${n} ${r}`;if(i.includes("min-width")||i.includes("max-width")||i.includes("min-height")||i.includes("max-height")||i.includes("explicit")||i.includes("constraint")||i.includes("forced"))return!1;let a=n.includes("hug")||n.includes("auto"),u=/\d+\.?\d*px/.test(r);if(!a||!u)return!1;let c=n.match(/(\d+\.?\d*)px/),l=r.match(/(\d+\.?\d*)px/);return!(c&&l&&Math.abs(parseFloat(c[1])-parseFloat(l[1]))>xD)}function ED(e){let t=String(e.expected||e.suggestedValue||"").toLowerCase(),n=String(e.actual||e.currentValue||"").toLowerCase();return(!n||!t||n.includes("see ")||t.includes("see ")||n.includes("image")||t.includes("image"))&&e.type==="visual"}function Ws(e){if(e.programmaticallyVerified)return{dismissed:!1};let t=e.expected||e.suggestedValue,n=e.actual||e.currentValue;if(e.fixRequired===!1)return{dismissed:!0,dismissReason:"Auto-dismissed: FixRequired is false (no code change needed)",dismissedBy:"post-ai-validation"};if(ri(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: expected equals actual (identical values)",dismissedBy:"post-ai-validation"};if(e.fixRequired===!0)return{dismissed:!1};if(ID(e))return{dismissed:!0,dismissReason:`Auto-dismissed: text dimension variance (<${Cw}px) - font rendering difference, not actionable`,dismissedBy:"post-ai-validation"};if(kD(t,n,e)){let r=e.property?.toLowerCase()||"";return{dismissed:!0,dismissReason:`Auto-dismissed: negligible difference (<${r==="width"||r==="height"||r.includes("width")||r.includes("height")?kw:vw}px)`,dismissedBy:"post-ai-validation"}}return ED(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no measurable values to compare",dismissedBy:"post-ai-validation"}:CD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no fix needed",dismissedBy:"post-ai-validation"}:FD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: HUG sizing - CSS auto-sizes content without explicit dimensions",dismissedBy:"post-ai-validation"}:TD(e)?{dismissed:!0,dismissReason:"Auto-dismissed: SVG container fill - child elements use their own fills",dismissedBy:"post-ai-validation"}:{dismissed:!1}}var vw,kw,Cw,xD,yD,bD,SD,Tw=U(()=>{"use strict";$f();vw=.5,kw=2,Cw=2,xD=5,yD=["values match","values already match","already correct","correctly implemented","implementation is correct","css matches","matches figma","identical","same value","no difference","none - ","no changes needed","no fix needed"],bD=["hug","auto (hug)","should be hug","fixed pixel values are being rendered","fixed values are being rendered"],SD=["duplicate","extra","missing","additional","removed","should not exist","does not exist","not in figma","not in storybook","renders 2","renders two","has 1","has one"]});function Iw(e){let t=e.trim().match(/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(!t)return null;let n=t[1];return n.length===3?[parseInt(n[0]+n[0],16),parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16)]:[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]}function Fw(e){let t=e.trim().match(/^color\(\s*display-p3\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*[\d.]+)?\s*\)$/);if(!t)return null;let n=parseFloat(t[1]),r=parseFloat(t[2]),o=parseFloat(t[3]);if(isNaN(n)||isNaN(r)||isNaN(o))return null;let i=p=>p<=.04045?p/12.92:Math.pow((p+.055)/1.055,2.4),s=i(n),a=i(r),u=i(o),c=1.2249*s-.2247*a+0*u,l=-.042*s+1.0419*a+0*u,d=-.0197*s-.0786*a+1.0983*u,g=p=>{let m=Math.max(0,Math.min(1,p));return m<=.0031308?12.92*m:1.055*Math.pow(m,1/2.4)-.055};return[Math.round(g(c)*255),Math.round(g(l)*255),Math.round(g(d)*255)]}function Ew(e,t,n){let r=E=>{let k=E/255;return k<=.04045?k/12.92:Math.pow((k+.055)/1.055,2.4)},o=r(e),i=r(t),s=r(n),a=o*.4124564+i*.3575761+s*.1804375,u=o*.2126729+i*.7151522+s*.072175,c=o*.0193339+i*.119192+s*.9503041,l=.95047,d=1,g=1.08883,p=E=>E>.008856?Math.cbrt(E):7.787*E+16/116,m=p(a/l),b=p(u/d),I=p(c/g);return[116*b-16,500*(m-b),200*(b-I)]}function AD(e,t){let[n,r,o]=Ew(...e),[i,s,a]=Ew(...t),u=(n+i)/2,c=Math.sqrt(r*r+o*o),l=Math.sqrt(s*s+a*a),d=(c+l)/2,g=.5*(1-Math.sqrt(Math.pow(d,7)/(Math.pow(d,7)+Math.pow(25,7)))),p=(1+g)*r,m=(1+g)*s,b=Math.sqrt(p*p+o*o),I=Math.sqrt(m*m+a*a),E=(b+I)/2,k=(Math.atan2(o,p)*180/Math.PI+360)%360,D=(Math.atan2(a,m)*180/Math.PI+360)%360,N=D-k;Math.abs(N)>180&&(N-=Math.sign(N)*360);let $=i-n,L=I-b,R=2*Math.sqrt(b*I)*Math.sin(N*Math.PI/360),h=Math.abs(k-D)>180?(k+D+360)/2:(k+D)/2,S=1-.17*Math.cos((h-30)*Math.PI/180)+.24*Math.cos(2*h*Math.PI/180)+.32*Math.cos((3*h+6)*Math.PI/180)-.2*Math.cos((4*h-63)*Math.PI/180),w=1+.015*Math.pow(u-50,2)/Math.sqrt(20+Math.pow(u-50,2)),A=1+.045*E,f=1+.015*E*S,v=-2*Math.sqrt(Math.pow(E,7)/(Math.pow(E,7)+Math.pow(25,7)))*Math.sin(60*Math.exp(-Math.pow((h-275)/25,2))*Math.PI/180);return Math.sqrt(Math.pow($/w,2)+Math.pow(L/A,2)+Math.pow(R/f,2)+v*(L/A)*(R/f))}function Aw(e){let t=(e.property||"").toLowerCase();if(!(t.includes("color")||t==="fill"||t==="background"||t==="backgroundcolor"))return!1;let r=String(e.expected||e.suggestedValue||""),o=String(e.actual||e.currentValue||""),i=Iw(r)??Iw(o),s=Fw(r)??Fw(o);return!i||!s||r===o?!1:AD(i,s)<5}function Uf(e){let t=e.severity||"minor";if(t==="minor")return t;if(Aw(e))return"minor";let n=["width","height","size","dimensions","visual size","r","cx","cy","strokeWidth","stroke-width"],r=["dimension","layout"],o=(e.property||"").toLowerCase(),i=(e.type||"").toLowerCase();if(!(n.some(g=>o.includes(g))||r.some(g=>i===g)))return t;let a=String(e.expected||e.suggestedValue||""),u=String(e.actual||e.currentValue||""),c=parseFloat(a.replace(/[^0-9.-]/g,"")),l=parseFloat(u.replace(/[^0-9.-]/g,""));if(isNaN(c)||isNaN(l))return t;let d=Math.abs(c-l);return d<5?"minor":d<10&&t==="critical"?"major":t}function Wl(e,t,n){return e>0?"D":t>0?"C":n>0?"B":"A"}function Vl(e){let t=e.filter(n=>!n.dismissed).map(n=>Uf(n));return Wl(t.filter(n=>n==="critical").length,t.filter(n=>n==="major").length,t.filter(n=>n==="minor").length)}function so(e,t,n){let r=100-n*1-t*3-e*10,o=io[Wl(e,t,n)];return Math.max(0,Math.min(o,r))}var io,Pw=U(()=>{"use strict";io={A:100,B:99,C:89,D:69}});var Lw=U(()=>{"use strict"});var Mw=U(()=>{"use strict"});var jf=U(()=>{"use strict";$f();Tw();Pw();Lw();Mw()});var ND,OD,gK,Hf=U(()=>{"use strict";ND=["flex","inline-flex"],OD=["grid","inline-grid"],gK=[...ND,...OD]});var Dw=U(()=>{"use strict";jf();Hf()});var Rw=U(()=>{"use strict"});var hn=U(()=>{"use strict";Ru();Ry();zy();jf();Hf();Dw();Rw()});function $D(e){let{aiPrompt:t,aiResponse:n,...r}=e;return r}function Zn(e){try{let t=e.map($D),n=JSON.stringify(t,UD);sessionStorage.setItem(Wf,n)}catch(t){y.error("[SessionStorage] Failed to save review history:",t)}}function Vf(){try{let e=sessionStorage.getItem(Wf);if(!e)return[];let t=JSON.parse(e,jD);return Array.isArray(t)?t:[]}catch(e){return y.error("[SessionStorage] Failed to load review history:",e),[]}}function zw(){try{let e=Vf();if(e.length===0)return;let t=!1,n=e.map(r=>{if(r.aiPrompt!==void 0||r.aiResponse!==void 0){t=!0;let{aiPrompt:o,aiResponse:i,...s}=r;return s}return r});t&&(Zn(n),y.debug("[SessionStorage] Stripped aiPrompt/aiResponse from existing review history"))}catch(e){y.error("[SessionStorage] Failed to strip sensitive fields:",e)}}function Nw(){try{sessionStorage.removeItem(Wf),y.debug("[SessionStorage] Review history cleared")}catch(e){y.error("[SessionStorage] Failed to clear review history:",e)}}function UD(e,t){return t instanceof Date?{__type:"Date",value:t.toISOString()}:t}function jD(e,t){return t&&t.__type==="Date"?new Date(t.value):t}var Wf,Gf=U(()=>{"use strict";Ne();Wf="uicopilot_review_history"});import HD,{createContext as WD,useContext as VD,useReducer as GD,useMemo as Ow,useRef as qD,useEffect as YD}from"react";function Gl(e){let t=e.length>_w?e.slice(e.length-_w):e,n=Math.max(0,t.length-KD);return n===0?t:t.map((r,o)=>{if(o>=n)return r;let i=r.storybookImageData?.startsWith("data:"),s=r.figmaImageData?.startsWith("data:");return!i&&!s?r:{...r,storybookImageData:i?void 0:r.storybookImageData,figmaImageData:s?void 0:r.figmaImageData}})}function XD(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"ADD_STREAMING_MESSAGE":return{...e,streamingMessages:[...e.streamingMessages,t.payload]};case"UPDATE_STREAMING_MESSAGE":return{...e,streamingMessages:e.streamingMessages.map((n,r)=>r===t.payload.index?{...n,content:t.payload.content}:n)};case"CLEAR_STREAMING_MESSAGES":return{...e,streamingMessages:[]};case"TOGGLE_MODEL":{let n=e.selectedModels.includes(t.payload);return n&&e.selectedModels.length===1?e:{...e,selectedModels:n?e.selectedModels.filter(r=>r!==t.payload):[...e.selectedModels,t.payload]}}case"SET_REVIEW_RESULTS":{if(!t.payload)return{...e,reviewResults:null,currentReviewId:null};let n=e.userRole==="admin",r={id:t.payload.id,componentId:t.payload.componentId,storyId:t.payload.storyId,modelId:t.payload.modelId,complianceScore:t.payload.complianceScore,issuesCount:t.payload.issuesCount,issues:t.payload.issues,createdAt:t.payload.createdAt,visualSimilarity:t.payload.visualSimilarity,storybookImageData:e.storybookImageUrl||void 0,figmaImageData:e.figmaImageUrl||void 0,aiPrompt:n&&e.fullPrompt||void 0,aiResponse:n&&e.fullResponse||void 0,costUsd:t.payload.costUsd,inputTokens:t.payload.inputTokens,outputTokens:t.payload.outputTokens},o=e.reviewHistory.findIndex(s=>s.id===t.payload.id),i;return o>=0?i=e.reviewHistory.map((s,a)=>a===o?r:s):i=[...e.reviewHistory,r],i=Gl(i),Zn(i),{...e,reviewResults:t.payload,reviewHistory:i,currentReviewId:t.payload.id}}case"UPDATE_MULTI_MODEL_STREAMING":return e.multiModelResults?{...e,multiModelResults:{...e.multiModelResults,byModel:{...e.multiModelResults.byModel,[t.payload.modelId]:{...e.multiModelResults.byModel[t.payload.modelId],streamingMessages:t.payload.messages}}}}:{...e,multiModelResults:{byModel:{[t.payload.modelId]:{streamingMessages:t.payload.messages}},activeModelId:t.payload.modelId}};case"SET_MODEL_COMPLETED":return e.multiModelResults?{...e,multiModelResults:{...e.multiModelResults,byModel:{...e.multiModelResults.byModel,[t.payload]:{...e.multiModelResults.byModel[t.payload],completed:!0}}}}:e;case"BULK_ADD_REVIEWS":{if(t.payload.length===0)return e;let n=new Map(e.reviewHistory.map(s=>[s.id,s])),r=!1,o=e.reviewHistory.slice();for(let s of t.payload){let a=n.get(s.id);if(!a){o.push(s),r=!0;continue}let u=s.issues?.length??0,c=a.issues?.length??0;if(u>c){let l=o.indexOf(a);l!==-1&&(o[l]=s,r=!0)}}if(!r)return e;let i=Gl(o);return Zn(i),{...e,reviewHistory:i}}case"ADD_REVIEW":{let n=Gl([...e.reviewHistory,t.payload]);return Zn(n),{...e,reviewHistory:n,currentReviewId:t.payload.id}}case"TOGGLE_ISSUE_SELECTION":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>r.id!==e.currentReviewId?r:{...r,issues:r.issues.map(o=>o.id===t.payload?{...o,selectedForFix:!o.selectedForFix}:o)});return Zn(n),{...e,reviewHistory:n}}case"UPDATE_ISSUE_STATUS":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>r.id!==e.currentReviewId?r:{...r,issues:r.issues.map(o=>o.id===t.payload.issueId?{...o,status:t.payload.status,error:t.payload.error}:o)});return Zn(n),{...e,reviewHistory:n}}case"UPDATE_ISSUE_GENERATED_FIX":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>r.id!==e.currentReviewId?r:{...r,issues:r.issues.map(o=>o.id===t.payload.issueId?{...o,generatedFix:o.generatedFix?{...o.generatedFix,...t.payload.generatedFix}:t.payload.generatedFix,selectedForFix:t.payload.generatedFix?.status==="failed"?!1:o.selectedForFix}:o)});return Zn(n),{...e,reviewHistory:n}}case"BATCH_UPDATE_ISSUE_GENERATED_FIXES":{if(!e.currentReviewId)return e;let n=new Map(t.payload.map(o=>[o.issueId,o.generatedFix])),r=e.reviewHistory.map(o=>o.id!==e.currentReviewId?o:{...o,issues:o.issues.map(i=>{let s=n.get(i.id);return s?{...i,generatedFix:i.generatedFix?{...i.generatedFix,...s}:s,selectedForFix:s?.status==="failed"?!1:i.selectedForFix}:i})});return Zn(r),{...e,reviewHistory:r}}case"DISMISS_ISSUE":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>{if(r.id!==e.currentReviewId)return r;let o=r.issues.map(c=>c.id===t.payload.issueId?{...c,dismissed:!0,dismissReason:t.payload.reason,dismissedAt:new Date,dismissedBy:t.payload.dismissedBy}:c),i=o.filter(c=>!c.dismissed),s=i.filter(c=>c.severity==="critical").length,a=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:so(s,a,u),issuesCount:i.length}});return Zn(n),{...e,reviewHistory:n}}case"UNDISMISS_ISSUE":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>{if(r.id!==e.currentReviewId)return r;let o=r.issues.map(c=>c.id===t.payload?{...c,dismissed:!1,dismissReason:void 0,dismissedAt:void 0}:c),i=o.filter(c=>!c.dismissed),s=i.filter(c=>c.severity==="critical").length,a=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:so(s,a,u),issuesCount:i.length}});return Zn(n),{...e,reviewHistory:n}}case"RECALCULATE_SCORE":{if(!e.currentReviewId)return e;let n=e.reviewHistory.map(r=>{if(r.id!==e.currentReviewId)return r;let o=r.issues.filter(c=>!c.dismissed),i=o.filter(c=>c.severity==="critical").length,s=o.filter(c=>c.severity==="major").length,a=o.filter(c=>c.severity==="minor").length,u=so(i,s,a);return y.debug(`[recalculateScore] Active: ${o.length}, score: ${u}`),{...r,complianceScore:u,issuesCount:o.length}});return Zn(n),{...e,reviewHistory:n}}case"UPDATE_REVIEW_SCORE":{let n=e.reviewHistory.map(r=>r.id!==t.payload.reviewId?r:{...r,complianceScore:t.payload.newScore});return Zn(n),{...e,reviewHistory:n}}case"CLEAR_ALL_REVIEWS":return Nw(),{...e,reviewHistory:[],currentReviewId:null};case"CLEAR_STALE_REVIEWS":return{...e,currentReviewId:null,reviewResults:null};case"RESET_REVIEW":{let n=e.isReviewing;return{...e,isReviewing:!1,reviewError:null,reviewResults:n?null:e.reviewResults,multiModelResults:null,streamingMessages:[],streamingProgress:0,streamingStatus:"",reviewDetailTab:n?"chat":e.reviewDetailTab,fullPrompt:"",fullResponse:"",figmaImageUrl:n?null:e.figmaImageUrl,storybookImageUrl:n?null:e.storybookImageUrl,currentReviewId:n?null:e.currentReviewId}}case"RESET_PROMPT":return{...e,isGenerating:!1,generatedPrompt:null,promptError:null};case"TRIGGER_SCREENSHOT_REFRESH":return{...e,screenshotRefreshKey:e.screenshotRefreshKey+1};default:return e}}function Yf({children:e}){let[t,n]=GD(XD,tR),r=qD(t);YD(()=>{r.current=t},[t]);let o=Ow(()=>({setIsReviewing:s=>n({type:"SET_STATE",payload:{isReviewing:s}}),setReviewingStoryId:s=>n({type:"SET_STATE",payload:{reviewingStoryId:s}}),setReviewError:s=>n({type:"SET_STATE",payload:{reviewError:s}}),bulkAddReviews:s=>n({type:"BULK_ADD_REVIEWS",payload:s}),setReviewResults:s=>n({type:"SET_REVIEW_RESULTS",payload:s}),setMultiModelResults:s=>n({type:"SET_STATE",payload:{multiModelResults:s}}),updateMultiModelStreamingMessages:(s,a)=>n({type:"UPDATE_MULTI_MODEL_STREAMING",payload:{modelId:s,messages:a}}),setModelCompleted:s=>n({type:"SET_MODEL_COMPLETED",payload:s}),setActiveModelId:s=>{let a=r.current;a.multiModelResults&&n({type:"SET_STATE",payload:{multiModelResults:{...a.multiModelResults,activeModelId:s}}})},setShowReviewMenu:s=>n({type:"SET_STATE",payload:{showReviewMenu:s}}),setSeverityFilter:s=>n({type:"SET_STATE",payload:{severityFilter:s}}),setShowStreamingPanel:s=>n({type:"SET_STATE",payload:{showStreamingPanel:s}}),setStreamingPanelCollapsed:s=>n({type:"SET_STATE",payload:{streamingPanelCollapsed:s}}),addStreamingMessage:s=>n({type:"ADD_STREAMING_MESSAGE",payload:s}),updateStreamingMessage:(s,a)=>n({type:"UPDATE_STREAMING_MESSAGE",payload:{index:s,content:a}}),clearStreamingMessages:()=>n({type:"CLEAR_STREAMING_MESSAGES"}),setStreamingProgress:s=>n({type:"SET_STATE",payload:{streamingProgress:s}}),setStreamingStatus:s=>n({type:"SET_STATE",payload:{streamingStatus:s}}),setReviewDetailTab:s=>n({type:"SET_STATE",payload:{reviewDetailTab:s}}),setFullPrompt:s=>n({type:"SET_STATE",payload:{fullPrompt:s}}),setFullResponse:s=>n({type:"SET_STATE",payload:{fullResponse:s}}),setFigmaImageUrl:s=>n({type:"SET_STATE",payload:{figmaImageUrl:s}}),setStorybookImageUrl:s=>n({type:"SET_STATE",payload:{storybookImageUrl:s}}),setFigmaDimensions:s=>n({type:"SET_STATE",payload:{figmaDimensions:s}}),setSelectedModels:s=>n({type:"SET_STATE",payload:{selectedModels:s}}),toggleModel:s=>n({type:"TOGGLE_MODEL",payload:s}),setModelComparisonView:s=>n({type:"SET_STATE",payload:{modelComparisonView:s}}),resetReview:()=>n({type:"RESET_REVIEW"}),addReview:s=>n({type:"ADD_REVIEW",payload:s}),getCurrentReview:()=>{let s=r.current;return s.currentReviewId&&s.reviewHistory.find(a=>a.id===s.currentReviewId)||null},getReviewById:s=>r.current.reviewHistory.find(a=>a.id===s)||null,getParentReview:()=>{let s=r.current,a=s.reviewHistory.find(u=>u.id===s.currentReviewId);return a?.parentReviewId&&s.reviewHistory.find(u=>u.id===a.parentReviewId)||null},hasAppliedFixes:()=>{let s=r.current,a=s.reviewHistory.find(u=>u.id===s.currentReviewId);return!a||!Array.isArray(a.issues)||a.issues.length===0?!1:a.issues.some(u=>u.status==="applied"||u.generatedFix?.status==="applied")},toggleIssueSelection:s=>n({type:"TOGGLE_ISSUE_SELECTION",payload:s}),updateIssueStatus:(s,a,u)=>n({type:"UPDATE_ISSUE_STATUS",payload:{issueId:s,status:a,error:u}}),updateIssueGeneratedFix:(s,a)=>n({type:"UPDATE_ISSUE_GENERATED_FIX",payload:{issueId:s,generatedFix:a}}),batchUpdateIssueGeneratedFixes:s=>n({type:"BATCH_UPDATE_ISSUE_GENERATED_FIXES",payload:s}),dismissIssue:(s,a,u)=>n({type:"DISMISS_ISSUE",payload:{issueId:s,reason:a,dismissedBy:u}}),undismissIssue:s=>n({type:"UNDISMISS_ISSUE",payload:s}),recalculateScore:()=>n({type:"RECALCULATE_SCORE"}),updateReviewScore:(s,a)=>n({type:"UPDATE_REVIEW_SCORE",payload:{reviewId:s,newScore:a}}),clearAllReviews:()=>n({type:"CLEAR_ALL_REVIEWS"}),clearStaleReviewsForStory:s=>n({type:"CLEAR_STALE_REVIEWS",payload:s}),setIsApplying:s=>n({type:"SET_STATE",payload:{isApplying:s}}),setApplyFixesResult:s=>n({type:"SET_STATE",payload:{applyFixesResult:s}}),setIncludeComponentIssues:s=>n({type:"SET_STATE",payload:{includeComponentIssues:s}}),setIncludeTextComparison:s=>n({type:"SET_STATE",payload:{includeTextComparison:s}}),setUsePromptCache:s=>n({type:"SET_STATE",payload:{usePromptCache:s}}),setIsValidating:s=>n({type:"SET_STATE",payload:{isValidating:s}}),setReviewHistoryLoading:s=>n({type:"SET_STATE",payload:{reviewHistoryLoading:s}}),setValidationUsage:s=>n({type:"SET_STATE",payload:{validationUsage:s}}),setWorkspacePath:s=>n({type:"SET_STATE",payload:{workspacePath:s}}),triggerScreenshotRefresh:()=>n({type:"TRIGGER_SCREENSHOT_REFRESH"}),setHoveredIssueId:s=>n({type:"SET_STATE",payload:{hoveredIssueId:s}}),setFeatureFlags:s=>n({type:"SET_STATE",payload:{featureFlags:s}}),setUserRole:s=>n({type:"SET_STATE",payload:{userRole:s}}),setRoleOverride:s=>{try{s?localStorage.setItem("uicopilot_role_override",s):localStorage.removeItem("uicopilot_role_override")}catch{}n({type:"SET_STATE",payload:{roleOverride:s}})},setReviewAllConcurrency:s=>{let a=Math.max(1,Math.min(5,s));try{localStorage.setItem("uicopilot_review_all_concurrency",String(a))}catch{}n({type:"SET_STATE",payload:{reviewAllConcurrency:a}})},setIsGenerating:s=>n({type:"SET_STATE",payload:{isGenerating:s}}),setGeneratedPrompt:s=>n({type:"SET_STATE",payload:{generatedPrompt:s}}),setPromptError:s=>n({type:"SET_STATE",payload:{promptError:s}}),resetPrompt:()=>n({type:"RESET_PROMPT"})}),[]),i=Ow(()=>({...t,...o}),[t,o]);return HD.createElement($w.Provider,{value:i},e)}function ue(){let e=VD($w);if(!e)throw new Error("useReviewStore must be used within a ReviewProvider");return e}var _w,KD,QD,JD,qf,ZD,eR,tR,$w,Kf=U(()=>{"use strict";hn();Gf();Ne();_w=20,KD=5;QD=()=>{if(typeof localStorage>"u")return 3;try{let e=localStorage.getItem("uicopilot_review_all_concurrency");if(e)return Math.max(1,Math.min(5,parseInt(e,10)))}catch{}return 3},JD=()=>{if(typeof localStorage>"u")return null;try{let e=localStorage.getItem("uicopilot_role_override");if(e==="admin"||e==="beta")return e}catch{}return null},qf={enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!1,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1},ZD=()=>{if(typeof localStorage>"u")return qf;try{let e=localStorage.getItem("uicopilot_feature_flags");if(!e)return qf;let t=JSON.parse(e);return{enableFixGeneration:!!t.enableFixGeneration,enableFixApply:!!t.enableFixApply,enableAutoMap:!!t.enableAutoMap,enableReviewBadges:!!t.enableReviewBadges,showCosts:!!t.showCosts,enableParallelReview:!!t.enableParallelReview,enableModelSelection:!!t.enableModelSelection}}catch{}return qf},eR=()=>{if(typeof localStorage>"u")return"beta";try{let e=localStorage.getItem("uicopilot_user_role");if(e==="admin"||e==="beta")return e}catch{}return"beta"},tR={isReviewing:!1,reviewingStoryId:null,reviewError:null,reviewResults:null,multiModelResults:null,showReviewMenu:!1,severityFilter:"all",showStreamingPanel:!1,streamingPanelCollapsed:!1,streamingMessages:[],streamingProgress:0,streamingStatus:"",reviewDetailTab:"chat",fullPrompt:"",fullResponse:"",figmaImageUrl:null,storybookImageUrl:null,figmaDimensions:null,selectedModels:["claude-sonnet-4-5-20250929"],modelComparisonView:"side-by-side",reviewHistory:Gl(Vf()),currentReviewId:null,includeComponentIssues:!0,includeTextComparison:!1,usePromptCache:!1,isApplying:!1,applyFixesResult:null,screenshotRefreshKey:0,isValidating:!1,reviewHistoryLoading:!1,validationUsage:null,lastAiCallTimestamp:null,aiRateLimitSeconds:0,isGenerating:!1,generatedPrompt:null,promptError:null,workspacePath:null,userRole:eR(),roleOverride:JD(),featureFlags:ZD(),reviewAllConcurrency:QD(),hoveredIssueId:null},$w=WD(null)});import Vs,{useMemo as nR}from"react";function Qf({children:e}){return Vs.createElement(Au,null,Vs.createElement(Lu,null,Vs.createElement(Bu,null,Vs.createElement(Yf,null,Vs.createElement(rR,null),e))))}function Uw(e){let t=Se(),n=Xe(),r=tt(),o=ue(),i=nR(()=>({...t,...n,...r,...o}),[t,n,r,o]);return e?e(i):i}function rR(){return Xf=Uw(),null}var Xf,ht,jw=U(()=>{"use strict";Pu();Mu();Du();Kf();Xf=null,ht=Object.assign(Uw,{getState:()=>{if(!Xf)throw new Error("Store not initialized. Make sure StoreProvider is mounted.");return Xf}})});var ve=U(()=>{"use strict";jw();Pu();Mu();Du();Kf()});function G(){return(process.env.STORYBOOK_UICOPILOT_URL||oR).replace(/\/$/,"")}var oR,Hw,Ue=U(()=>{"use strict";oR="https://app.uiparity.com";Hw=3.6});async function ne(e,t,n=3e4){let r=new AbortController,o=setTimeout(()=>r.abort(),n);try{return await fetch(e,{...t,signal:r.signal})}catch(i){throw i instanceof DOMException&&i.name==="AbortError"?new Error(`Request timed out after ${n}ms: ${e}`):i}finally{clearTimeout(o)}}var lt=U(()=>{"use strict"});import{useEffect as Lo,useState as Xl,useRef as iv,useCallback as tm}from"react";import{addons as nm}from"storybook/manager-api";async function sz(e,t,n){let r=`${e}:${t}`,o=rm.get(r);if(o)return y.debug("[useReviewScreenshots] Reusing in-flight Figma image fetch for",r),o;let i=(async()=>{let s=await ne(`${uv}/api/figma/image?projectId=${e}&nodeId=${t}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}});return s.ok?s.json():{imageUrl:null}})().finally(()=>{rm.delete(r)});return rm.set(r,i),i}function az(e,t,n){try{sessionStorage.setItem(`${Ql}${e}`,JSON.stringify({figmaNodeId:t,imageUrl:n,timestamp:Date.now()}))}catch{}}function lz(e,t){try{let n=sessionStorage.getItem(`${Ql}${e}`);if(!n)return null;let r=JSON.parse(n);if(r.figmaNodeId===t&&Date.now()-r.timestamp<1800*1e3)return r.imageUrl;sessionStorage.removeItem(`${Ql}${e}`)}catch{}return null}function cz(e){try{let t=sessionStorage.getItem(`${Ql}${e}`);if(!t)return null;let n=JSON.parse(t);if(n.imageUrl&&Date.now()-n.timestamp<300*1e3)return n.imageUrl}catch{}return null}var sv,av,lv,cv,_i,uv,Cn,om,rm,Ql,pv,dv,oi,$i=U(()=>{"use strict";ve();im();Ne();Ue();lt();sv="storyArgsUpdated",av="storyRendered",lv="forceRemount",cv=null,_i=()=>cv,uv=G(),Cn=new Map,om=null,rm=new Map;Ql="uicopilot-figma-image-";pv=(e,t,n)=>{let r=Cn.get(e);r?(r.storybookImageUrl=t,n&&(r.figmaImageUrl=n)):Cn.set(e,{storybookImageUrl:t,figmaImageUrl:n??null}),y.debug("[useReviewScreenshots] Populated historical screenshots for story:",e)},dv=(e,t,n)=>{om=t;let r=Cn.get(e);r?r.figmaImageUrl=n:Cn.set(e,{storybookImageUrl:null,figmaImageUrl:n}),y.debug("[useReviewScreenshots] Pre-set Figma image for mapping:",{storyId:e,figmaNodeId:t,imageUrl:n.substring(0,50)+"..."})},oi=()=>{let[e,t]=Xl(!1),[n,r]=Xl(!1),[o,i]=Xl(!1),[s,a]=Xl(null),u=iv(null),{screenshotRefreshKey:c,triggerScreenshotRefresh:l}=ue(),d=tm(()=>{let L=ht.getState().currentStoryId;L&&(y.debug("[useReviewScreenshots] Refreshing screenshots for story:",L),Cn.delete(L),u.current=null,i(!0),l())},[l]),g=tm(()=>{let L=ht.getState().currentStoryId;if(L){y.debug("[useReviewScreenshots] Refreshing Storybook screenshot only for story:",L);let R=Cn.get(L);R&&(R.storybookImageUrl=null),u.current=null,i(!0),l()}},[l]),{sessionToken:p}=Se(),{selectedProjectId:m}=Xe(),{currentStoryId:b,currentMapping:I,loadingMapping:E}=tt(),{setStorybookImageUrl:k,setFigmaImageUrl:D}=ue(),N=iv(null);Lo(()=>{b&&N.current&&N.current!==b&&(y.debug("[useReviewScreenshots] Story switched, clearing images"),k(""),D("")),N.current=b},[b,k,D]),Lo(()=>{!b||E||I||D("")},[b,I,E,D]),Lo(()=>{if(!b)return;let L=cz(b);L&&(y.debug("[useReviewScreenshots] Quick-restored Figma image for:",b),D(L))},[b,D]),Lo(()=>{if(!b||E)return;let L=I?.figmaFileUrl;if(L){y.debug("[useReviewScreenshots] Restoring Figma image from mapping.figmaFileUrl for:",b),D(L);let R=Cn.get(b);R?R.figmaImageUrl=L:Cn.set(b,{storybookImageUrl:null,figmaImageUrl:L})}},[b,I,E,D]),Lo(()=>{let L=!1;return(async()=>{if(!p||!m||!b){y.debug("[useReviewScreenshots] Missing required context, skipping auto-load");return}u.current&&u.current!==b&&(y.debug("[useReviewScreenshots] Story changed, clearing stale screenshots"),k(""),D(""));let h=ht.getState();if(u.current===b&&h.storybookImageUrl&&h.figmaImageUrl){y.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping capture");return}let S=I?.figmaNodeId??null;if(S!==om){y.debug("[useReviewScreenshots] Figma mapping changed, invalidating Figma image only for story:",b);let P=Cn.get(b);P&&(P.figmaImageUrl=null),om=S,u.current=null}let w=I?.figmaNodeId;if(w&&!Cn.get(b)?.figmaImageUrl){let P=lz(b,w);if(P){y.debug("[useReviewScreenshots] Hydrated Figma image from sessionStorage for story:",b),D(P);let B=Cn.get(b);B?B.figmaImageUrl=P:Cn.set(b,{storybookImageUrl:null,figmaImageUrl:P})}}let A=Cn.get(b),f=A&&A.storybookImageUrl&&A.figmaImageUrl,v=A&&A.storybookImageUrl&&!A.figmaImageUrl,F=A&&!A.storybookImageUrl&&A.figmaImageUrl;if(f){y.debug("[useReviewScreenshots] Using fully cached screenshots for story:",b),k(A.storybookImageUrl),D(A.figmaImageUrl),u.current=b;return}let x=v&&I?.figmaNodeId;x&&(y.debug("[useReviewScreenshots] Using cached Storybook, fetching new Figma for story:",b),k(A.storybookImageUrl));let C=F;if(C&&(y.debug("[useReviewScreenshots] Using cached Figma, recapturing Storybook for story:",b),D(A.figmaImageUrl)),u.current===b&&I?.figmaNodeId){y.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping");return}try{if(a(null),x?r(!0):(C||(t(!0),r(!0)),i(!0)),u.current=b,L)return;let P=C?A.figmaImageUrl:null,B;if(C)y.debug("[useReviewScreenshots] Figma cached (storybookOnlyRefresh), skipping fetch"),r(!1);else if(w){y.debug("[useReviewScreenshots] Found Figma node ID from mapping:",w);let T=null;try{y.debug("[useReviewScreenshots] Fetching Figma image (with caching)...");let z=await sz(m,w,p);T=z.imageUrl||null;let W=z.cached?"(cached)":"(fresh)";y.debug(`[useReviewScreenshots] Figma image fetched ${W}:`,T?"success":"not found")}catch(z){y.warn("[useReviewScreenshots] Failed to fetch Figma image:",z)}if(T)try{y.debug("[useReviewScreenshots] Fetching Figma image via proxy...");let z=`${uv}/api/proxy/image?url=${encodeURIComponent(T)}`,W=await ne(z);if(W.ok){let M=await W.blob(),ie=new FileReader,Y=await new Promise((xe,Pe)=>{ie.onloadend=()=>xe(ie.result),ie.onerror=Pe,ie.readAsDataURL(M)});P=Y,D(Y),y.debug("[useReviewScreenshots] Figma image loaded via proxy");let se=new Image;await new Promise(xe=>{se.onload=()=>{B={width:se.naturalWidth,height:se.naturalHeight},y.debug("[useReviewScreenshots] Figma dimensions:",B),xe()},se.onerror=()=>xe(),se.src=Y})}else P=T,D(T),y.warn("[useReviewScreenshots] Proxy failed, using direct URL as fallback")}catch(z){y.warn("[useReviewScreenshots] Proxy error, using direct URL as fallback:",z),P=T,D(T)}else y.warn("[useReviewScreenshots] No thumbnail found for node:",w),D(null);P&&w&&az(b,w,P),r(!1)}else y.debug("[useReviewScreenshots] No Figma mapping exists for this component"),D(null),r(!1);let O=A?.storybookImageUrl||null;if(O)y.debug("[useReviewScreenshots] Using cached Storybook screenshot"),i(!1);else{y.debug("[useReviewScreenshots] Capturing Storybook screenshot for story:",b);let T=await Jl({storyId:b,sessionToken:p||void 0,...B&&{figmaWidth:B.width,figmaHeight:B.height}});T&&!L?(O=T,k(T),y.debug("[useReviewScreenshots] Storybook screenshot captured at dimensions:",B||"natural")):y.warn("[useReviewScreenshots] Failed to capture Storybook screenshot"),i(!1)}Cn.set(b,{storybookImageUrl:O,figmaImageUrl:P}),y.debug("[useReviewScreenshots] Screenshots cached for story:",b)}catch(P){y.error("[useReviewScreenshots] Error loading screenshots:",P),a(P instanceof Error?P.message:"Failed to load screenshots"),u.current=null,r(!1),i(!1)}finally{t(!1)}})(),()=>{L=!0}},[p,m,b,I?.figmaNodeId,c]),Lo(()=>{let L=nm.getChannel(),R=null,h=S=>{cv=S.args,y.debug("[useReviewScreenshots] Args updated for story:",S.storyId,"args:",S.args),R&&clearTimeout(R),R=setTimeout(()=>{y.debug("[useReviewScreenshots] Story args changed, refreshing screenshot"),d()},500)};return L.on(sv,h),()=>{L.off(sv,h),R&&clearTimeout(R)}},[d]),Lo(()=>{let L=nm.getChannel(),R=!1,h=null,S=()=>{y.debug("[useReviewScreenshots] FORCE_REMOUNT detected, showing Storybook loader"),R=!0,i(!0)},w=()=>{R&&(y.debug("[useReviewScreenshots] STORY_RENDERED after remount, waiting for styles to settle..."),h&&clearTimeout(h),h=setTimeout(()=>{R=!1,y.debug("[useReviewScreenshots] Refreshing Storybook screenshot after HMR (preserving Figma)"),g()},500))};return L.on(lv,S),L.on(av,w),()=>{L.off(lv,S),L.off(av,w),h&&clearTimeout(h)}},[g]),Lo(()=>{let L=nm.getChannel(),R=async h=>{if(!h?.snapshot?.html){y.debug("[useReviewScreenshots] DOM mutated but no snapshot available");return}y.debug("[useReviewScreenshots] DOM mutated, capturing snapshot screenshot"),i(!0);try{let S=ht.getState().currentStoryId,w=await fetch("/__uicopilot/screenshot-snapshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...h.snapshot,storyId:S})});if(w.ok){let A=await w.json();if(A.screenshot){k(A.screenshot);let f=ht.getState().currentStoryId;if(f){let v=Cn.get(f);v?v.storybookImageUrl=A.screenshot:Cn.set(f,{storybookImageUrl:A.screenshot,figmaImageUrl:null})}}}else y.error("[useReviewScreenshots] Snapshot screenshot failed:",await w.text())}catch(S){y.error("[useReviewScreenshots] Snapshot screenshot error:",S)}finally{i(!1)}};return L.on("UICOPILOT/STORY_DOM_MUTATED",R),()=>{L.off("UICOPILOT/STORY_DOM_MUTATED",R)}},[]);let $=tm((L,R,h)=>{y.debug("[useReviewScreenshots] setFigmaImageDirect called - bypassing load"),dv(L,R,h),D(h),r(!1),u.current=L},[D]);return{isLoadingScreenshots:e,isLoadingFigma:n,isLoadingStorybook:o,screenshotError:s,refreshScreenshots:d,refreshStorybookOnly:g,setFigmaImageDirect:$}}});function pz(){return!G().startsWith("http://localhost")}function dz(e,t,n){let r=t.createElement("div");r.style.color=e,t.body.appendChild(r);let o=n.getComputedStyle(r).color;return r.remove(),o}function gv(e,t,n){let r=new Map;return e.replace(/(?:color|oklch|oklab|lab|lch)\([^)]+\)/g,o=>{if(r.has(o))return r.get(o);let i=dz(o,t,n);return r.set(o,i),i})}async function gz(){let e=(await import("html2canvas")).default,t=document.getElementById("storybook-preview-iframe");if(!t?.contentDocument||!t.contentWindow)throw new Error("Storybook iframe not accessible");let n=t.contentDocument.querySelector("#storybook-root > *")||t.contentDocument.querySelector("#root > *");if(!n)throw new Error("Story element not found in iframe");let r=t.contentWindow,o=t.contentDocument;return(await e(n,{useCORS:!0,logging:!1,backgroundColor:null,onclone:s=>{s.querySelectorAll("style").forEach(u=>{let c=u.textContent||"";/(?:color|oklch|oklab|lab|lch)\(/.test(c)&&(u.textContent=gv(c,o,r))});let a=Array.from(o.styleSheets);s.querySelectorAll('link[rel="stylesheet"]').forEach(u=>{let c=u.href,l=a.find(d=>d.href===c);if(l)try{let d="";for(let g of Array.from(l.cssRules))d+=g.cssText+`
13
+ `;if(/(?:color|oklch|oklab|lab|lch)\(/.test(d)){let g=s.createElement("style");g.textContent=gv(d,o,r),u.replaceWith(g)}}catch{}})}})).toDataURL("image/png")}function fz(e){let t=[];for(let[n,r]of Object.entries(e)){if(r===void 0)continue;let o;typeof r=="boolean"?o=`!${r}`:typeof r=="number"?o=String(r):typeof r=="string"?o=encodeURIComponent(r).replace(/%20/g,"+"):o=encodeURIComponent(JSON.stringify(r)),t.push(`${n}:${o}`)}return t.join(";")}async function mz(e,t){y.debug("[Screenshot] Using server-side Chrome capture for:",e);let n={"Content-Type":"application/json"};t?.sessionToken&&(n.Authorization=`Bearer ${t.sessionToken}`);let r=await ne(`${uz}/api/screenshot`,{method:"POST",headers:n,body:JSON.stringify({url:e,selector:t?.selector,width:t?.width,height:t?.height,scale:t?.scale||1,figmaWidth:t?.figmaWidth,figmaHeight:t?.figmaHeight})});if(!r.ok){let i=await r.json().catch(()=>({error:"Unknown error"}));throw new Error(i.error||`Screenshot failed: ${r.status}`)}return(await r.json()).screenshot}function hz(e){let t={};if(!e)return t;let n=e.split(";");for(let r of n){let o=r.indexOf(":");if(o===-1)continue;let i=r.slice(0,o),s=r.slice(o+1);typeof s=="string"&&(s==="!true"?s=!0:s==="!false"?s=!1:!isNaN(Number(s))&&s!==""?s=Number(s):s=decodeURIComponent(s.replace(/\+/g," "))),t[i]=s}return t}function xz(e){let t=new URLSearchParams(window.location.search),n=e;if(n||(n=(t.get("path")||"").replace("/story/","").replace("/docs/",""),y.debug("[Screenshot] Warning: Using story ID from URL (fallback):",n)),!n)throw new Error("Could not determine current story ID. Please select a story first.");let r=window.location.origin,o=Date.now(),i=`${r}/iframe.html?viewMode=story&id=${n}&globals=&_cb=${o}`,s=_i();if(!s||Object.keys(s).length===0){let a=t.get("args");a&&(s=hz(a),y.debug("[Screenshot] Parsed args from URL:",s))}if(s&&Object.keys(s).length>0){let a=fz(s);i+=`&args=${a}`,y.debug("[Screenshot] Using URL with current args:",i)}else y.debug("[Screenshot] No current args, using default URL:",i);return i}async function yz(e){try{let t=await fetch(`/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`);if(t.status===501)return y.info("[Screenshot] Local Puppeteer not available, falling back"),null;if(!t.ok){let r=await t.json().catch(()=>({error:"Unknown"}));throw new Error(r.error||`Screenshot failed: ${t.status}`)}let n=await t.json();return y.info("[Screenshot] Captured via local Puppeteer (pixel-perfect)"),n.screenshot}catch(t){if(t instanceof TypeError&&t.message.includes("fetch"))return null;throw t}}async function Jl(e){let t=e?.storyId||bz();if(t){let n=sm.get(t);if(n)return y.debug("[Screenshot] Reusing in-flight capture for",t),n;let r=fv(t,e).finally(()=>{sm.delete(t)});return sm.set(t,r),r}return fv(void 0,e)}async function fv(e,t){try{if(e){let n=await yz(e);if(n)return n}if(!pz()){let n=xz(t?.storyId);return await mz(n,{...t,selector:"#storybook-root > *"})}return y.info("[Screenshot] Using client-side capture (html2canvas fallback)"),await gz()}catch(n){throw y.error("Error capturing screenshot:",n),new Error(`Failed to capture screenshot: ${n instanceof Error?n.message:"Unknown error"}`)}}function bz(){return(new URLSearchParams(window.location.search).get("path")||"").replace("/story/","").replace("/docs/","")||void 0}var uz,sm,im=U(()=>{"use strict";Ue();$i();Ne();lt();uz=G();sm=new Map});function Pn(e){if(e==="transparent"||e==="rgba(0, 0, 0, 0)")return"transparent";let t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(!t)return e;let[,n,r,o,i]=t,s=i?parseFloat(i):1;return s<1?`rgba(${n}, ${r}, ${o}, ${s})`:`#${[n,r,o].map(u=>parseInt(u).toString(16).padStart(2,"0")).join("")}`}function $n(e,t){let r={backgroundColor:["transparent","rgba(0, 0, 0, 0)"],border:["none","0px none","0px none rgb(0, 0, 0)"],borderRadius:["0px"],boxShadow:["none"],opacity:["1"],gap:["normal","0px"],flexDirection:["row"],justifyContent:["normal","flex-start"],alignItems:["normal","stretch"],textAlign:["start","left"],letterSpacing:["normal","0px"],margin:["0px","0px 0px 0px 0px"],padding:["0px","0px 0px 0px 0px"]}[e];return r?r.includes(t):!1}function Js(e){return e.split(",").map(n=>n.trim().replace(/['"]/g,""))[0]||e}function mv(e){let t=e.ownerDocument,r=(t.defaultView||window).getComputedStyle(e);if("fonts"in t){let I=r.fontSize||"16px",E=r.fontWeight||"400";if(r.fontFamily.includes("Roboto")){let k=t.fonts.check(`${E} ${I} Roboto`);if(y.debug("[computedStyles] Roboto check:",{cssFamily:r.fontFamily,robotoLoaded:k,fontWeight:E,fontSize:I,isIframe:t!==document,fontStatus:Array.from(t.fonts).map(D=>({family:D.family,status:D.status}))}),k)return"Roboto"}}let o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",s=t.createElement("canvas").getContext("2d");if(!s)return"unknown";let a=r.fontSize,u=r.fontWeight,c=r.fontStyle,l=r.fontFamily.split(",").map(I=>I.trim().replace(/['"]/g,"")),d=["Arial","Helvetica","Helvetica Neue","Times New Roman","Georgia","Courier New","Verdana","Tahoma","Trebuchet MS","sans-serif","serif","monospace"],g=[...new Set([...l,...d])];s.font=`${c} ${u} ${a} monospace`;let p=s.measureText(o).width,m="unknown",b=new Map;for(let I of g){s.font=`${c} ${u} ${a} "${I}", monospace`;let E=s.measureText(o).width;if(b.set(I,E),E!==p){s.font=`${c} ${u} ${a} "${I}"`;let k=s.measureText(o).width;s.font=`${c} ${u} ${a} ${r.fontFamily}`;let D=s.measureText(o).width;if(Math.abs(k-D)<.1){m=I;break}}}return y.debug("[computedStyles] Font detection:",{declared:r.fontFamily,detected:m,declaredFonts:l,fontWidths:Array.from(b.entries()),isIframe:t!==document}),m}var Zs=U(()=>{"use strict";Ne()});function Ui(e,t){if(!t)return e;let n=t.split(" ").filter(i=>i.trim()),r=n.find(i=>!i.includes("--")),o=n.filter(i=>i.includes("--"));return r&&o.length>0?`${e}.${r}.${o[0]}`:r?`${e}.${r}`:n[0]?`${e}.${n[0]}`:e}function am(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e);return y.debug("[computedStyles] Extracting styles:",{fontFamily:n.fontFamily,fontWeight:n.fontWeight,borderRadius:n.borderRadius,backgroundColor:n.backgroundColor,padding:{top:n.paddingTop,right:n.paddingRight,bottom:n.paddingBottom,left:n.paddingLeft},isIframeContext:e.ownerDocument!==document}),{color:Pn(n.color),backgroundColor:Pn(n.backgroundColor),borderColor:Pn(n.borderColor),padding:{top:n.paddingTop,right:n.paddingRight,bottom:n.paddingBottom,left:n.paddingLeft},margin:{top:n.marginTop,right:n.marginRight,bottom:n.marginBottom,left:n.marginLeft},gap:n.gap,fontFamily:n.fontFamily,renderedFont:mv(e),fontSize:n.fontSize,fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,textAlign:n.textAlign,textTransform:n.textTransform,width:n.width,height:n.height,minWidth:n.minWidth,minHeight:n.minHeight,maxWidth:n.maxWidth,maxHeight:n.maxHeight,borderWidth:n.borderWidth,borderStyle:n.borderStyle,borderRadius:n.borderRadius,boxShadow:n.boxShadow,textShadow:n.textShadow,display:n.display,flexDirection:n.display==="flex"?n.flexDirection:void 0,justifyContent:n.display==="flex"?n.justifyContent:void 0,alignItems:n.display==="flex"?n.alignItems:void 0,position:n.position,opacity:n.opacity,cursor:n.cursor}}function lm(e,t){let n={width:null,height:null,minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,display:null,flexGrow:null,flexShrink:null,flexBasis:null};try{let r=Array.from(t.styleSheets);for(let i of r)try{let s=i.cssRules||i.rules;if(!s)continue;for(let a of Array.from(s))if(a.type===1){let u=a;try{if(e.matches(u.selectorText)){let c=u.style;c.width&&(n.width=c.width),c.height&&(n.height=c.height),c.minWidth&&(n.minWidth=c.minWidth),c.minHeight&&(n.minHeight=c.minHeight),c.maxWidth&&(n.maxWidth=c.maxWidth),c.maxHeight&&(n.maxHeight=c.maxHeight),c.display&&(n.display=c.display),c.flexGrow&&(n.flexGrow=c.flexGrow),c.flexShrink&&(n.flexShrink=c.flexShrink),c.flexBasis&&(n.flexBasis=c.flexBasis)}}catch{continue}}}catch{continue}let o=e.style;o.width&&(n.width=o.width),o.height&&(n.height=o.height),o.minWidth&&(n.minWidth=o.minWidth),o.minHeight&&(n.minHeight=o.minHeight),o.maxWidth&&(n.maxWidth=o.maxWidth),o.maxHeight&&(n.maxHeight=o.maxHeight),o.display&&(n.display=o.display),o.flexGrow&&(n.flexGrow=o.flexGrow),o.flexShrink&&(n.flexShrink=o.flexShrink),o.flexBasis&&(n.flexBasis=o.flexBasis)}catch(r){y.error("Error extracting declared styles:",r)}return n}var Zl=U(()=>{"use strict";Ne();Zs()});function Sz(e){let t=[],n=new Set,r=hv.join(", "),o=e.querySelectorAll(r);for(let i of Array.from(o)){let s=`${i.tagName.toLowerCase()}.${i.className}`;n.has(s)||(n.add(s),t.push(i))}if(hv.includes(e.tagName.toLowerCase())){let i=`${e.tagName.toLowerCase()}.${e.className}`;n.has(i)||t.unshift(e)}return t}function wz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r=e.tagName.toLowerCase(),o=e.className,i=typeof o=="string"?o:o?.baseVal||"";return{selector:Ui(r,i),tagName:r,className:i,styles:{fontSize:n.fontSize,fontFamily:Js(n.fontFamily),fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,color:Pn(n.color),textAlign:n.textAlign,textTransform:n.textTransform}}}function vz(e,t=2){let n=[e],r=new Set,o=s=>{let a=s.className;return typeof a=="string"?a:a?.baseVal||""};r.add(`${e.tagName}.${o(e)}`);function i(s,a){if(a>=t)return;let u=Array.from(s.children);for(let c of u){let l=c.tagName.toLowerCase();if(["script","style","link","meta","br","hr"].includes(l))continue;let d=`${c.tagName}.${o(c)}`;r.has(d)||(r.add(d),n.push(c),i(c,a+1))}}return i(e,0),n}function kz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r=e.tagName.toLowerCase(),o=e.className,i=typeof o=="string"?o:o?.baseVal||"",s=n.borderWidth!=="0px",a=n.backgroundColor!=="transparent"&&n.backgroundColor!=="rgba(0, 0, 0, 0)",u=n.borderRadius!=="0px",c=n.gap!=="normal"&&n.gap!=="0px";if(!s&&!a&&!u&&!c)return null;let l=n.borderWidth,d=n.borderStyle,g=Pn(n.borderColor),p=s?`${l} ${d} ${g}`:"none";return{selector:Ui(r,i),className:i,border:p,borderRadius:n.borderRadius,backgroundColor:Pn(n.backgroundColor),gap:n.gap}}function ea(){y.debug("[computedStyles] extractStoryStyles called - FULL CONTEXT VERSION");try{let e=document.getElementById("storybook-preview-iframe");if(!e||!e.contentDocument)throw new Error("Storybook preview iframe not found");let t=e.contentDocument,n=t.getElementById("storybook-root");if(!n)throw new Error("Story root element not found");let r=n.firstElementChild;if(!r)throw new Error("Component element not found in story root");let o=vz(r,2),i=o.map(kz).filter(a=>a!==null);y.debug("[computedStyles] Extracted visual styles from nested elements:",{total:o.length,withVisuals:i.length,elements:i.map(a=>({selector:a.selector,border:a.border,background:a.backgroundColor,borderRadius:a.borderRadius}))});let s=[];try{let a=Sz(r);s=a.map(wz),y.debug("[computedStyles] Text elements found:",{count:a.length,elements:s.map(u=>({selector:u.selector,fontSize:u.styles.fontSize,fontWeight:u.styles.fontWeight}))})}catch(a){y.error("[computedStyles] Error extracting text elements:",a)}return{computed:am(r),declared:lm(r,t),markup:r.outerHTML,textElementStyles:s,nestedElementStyles:i}}catch(e){return y.error("Error extracting computed styles:",e),null}}var hv,xv=U(()=>{"use strict";Ne();Zs();Zl();hv=["input","textarea","button","select","label","span","a","p","h1","h2","h3","h4","h5","h6"]});function cm(e,t,n,r){return e===t&&t===n&&n===r?e:e===n&&t===r?`${e} ${t}`:t===r?`${e} ${t} ${n}`:`${e} ${t} ${n} ${r}`}function Tz(e,t,n){if(!(e==="0px"||t==="none"))return`${e} ${t} ${n}`}function Iz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r={},o=Pn(n.backgroundColor);$n("backgroundColor",o)||(r.backgroundColor=o);let i=Tz(n.borderWidth,n.borderStyle,Pn(n.borderColor));i&&(r.border=i),$n("borderRadius",n.borderRadius)||(r.borderRadius=n.borderRadius),$n("boxShadow",n.boxShadow)||(r.boxShadow=n.boxShadow),$n("opacity",n.opacity)||(r.opacity=n.opacity);let s=e.tagName.toLowerCase(),a=["svg","circle","rect","ellipse","line","polyline","polygon","path","text","tspan","g","use","defs","clipPath","mask"];if(e instanceof SVGElement||a.includes(s)){for(let I=0;I<e.attributes.length;I++){let E=e.attributes[I];if(["class","style","id","xmlns","xmlns:xlink"].includes(E.name))continue;let k=E.name.replace(/-([a-z])/g,(N,$)=>$.toUpperCase()),D=E.value.startsWith("rgb")?Pn(E.value):E.value;k==="d"&&D.length>100?r[k]=D.substring(0,100)+"...":r[k]=D}let p=n.getPropertyValue("fill"),m=n.getPropertyValue("stroke");if(p&&p!=="none"&&(r.fill=p.startsWith("rgb")?Pn(p):p),m&&m!=="none"&&(r.stroke=m.startsWith("rgb")?Pn(m):m),["circle","ellipse","rect","path","line","polyline","polygon"].includes(s)){let I=e.getBoundingClientRect();I.width>0&&(r.width=`${Math.round(I.width*100)/100}px`),I.height>0&&(r.height=`${Math.round(I.height*100)/100}px`)}}let c=e.textContent&&e.textContent.trim().length>0,l=Cz.includes(e.tagName.toLowerCase());(c||l)&&(r.fontSize=n.fontSize,r.fontFamily=Js(n.fontFamily),r.fontWeight=n.fontWeight,r.lineHeight=n.lineHeight,r.color=Pn(n.color),$n("letterSpacing",n.letterSpacing)||(r.letterSpacing=n.letterSpacing),$n("textAlign",n.textAlign)||(r.textAlign=n.textAlign)),r.display=n.display;let d=cm(n.paddingTop,n.paddingRight,n.paddingBottom,n.paddingLeft);$n("padding",d)||(r.padding=d);let g=cm(n.marginTop,n.marginRight,n.marginBottom,n.marginLeft);return $n("margin",g)||(r.margin=g),$n("gap",n.gap)||(r.gap=n.gap),(n.display==="flex"||n.display==="inline-flex")&&($n("flexDirection",n.flexDirection)||(r.flexDirection=n.flexDirection),$n("justifyContent",n.justifyContent)||(r.justifyContent=n.justifyContent),$n("alignItems",n.alignItems)||(r.alignItems=n.alignItems)),r.width||(r.width=n.width),r.height||(r.height=n.height),r}function yv(e){let t=1;for(let n of e.children)t+=yv(n);return t}function bv(e,t=4){function n(o,i){let s=o.tagName.toLowerCase(),a=o.className,u=typeof a=="string"?a:a?.baseVal||"",c=o.id||void 0,l=o.getAttribute("role")||void 0,d;for(let b of Array.from(o.childNodes))if(b.nodeType===Node.TEXT_NODE){let I=b.textContent?.trim();if(I){d=I.length>50?I.substring(0,50)+"...":I;break}}let g=s;c?g=`${s}#${c}`:u&&(g=Ui(s,u));let p=Iz(o),m=[];if(i<t){let b=Array.from(o.children);for(let I of b){let E=I.tagName.toLowerCase();if(["script","style","link","meta","br","hr","noscript"].includes(E))continue;let D=(I.ownerDocument.defaultView||window).getComputedStyle(I);D.display==="none"||D.visibility==="hidden"||m.push(n(I,i+1))}}return{selector:g,tagName:s,className:u,id:c,role:l,textContent:d,styles:p,children:m}}y.debug("[computedStyles] Extracting DOM tree with maxDepth:",t);let r=n(e,0);return y.debug("[computedStyles] DOM tree extracted:",{rootSelector:r.selector,childrenCount:r.children.length,totalNodes:yv(r)}),r}function um(e=4){y.debug("[extractStoryDOMTree] Starting DOM tree extraction...");try{let t=document.getElementById("storybook-preview-iframe");if(y.debug("[extractStoryDOMTree] iframe found:",!!t),!t)throw new Error("Storybook preview iframe not found");if(y.debug("[extractStoryDOMTree] iframe.contentDocument:",!!t.contentDocument),!t.contentDocument)throw new Error("iframe.contentDocument is not accessible (possible cross-origin issue)");let n=t.contentDocument.getElementById("storybook-root");if(y.debug("[extractStoryDOMTree] storyRoot found:",!!n),!n)throw new Error("Story root element not found");let r=n.firstElementChild;if(y.debug("[extractStoryDOMTree] componentElement found:",!!r,r?.tagName),!r)throw new Error("Component element not found in story root");let o=bv(r,e);return y.debug("[extractStoryDOMTree] DOM tree extracted successfully:",{selector:o.selector,childrenCount:o.children.length}),o}catch(t){return y.error("[extractStoryDOMTree] Error extracting DOM tree:",t),null}}var Cz,Sv=U(()=>{"use strict";Ne();Zs();Zl();Cz=["input","textarea","button","select","label","span","a","p","h1","h2","h3","h4","h5","h6"]});var pm=U(()=>{"use strict";Zs();Zl();xv();Sv()});var Gv=ir((tJ,Vv)=>{"use strict";Vv.exports={compareTwoStrings:Wv,findBestMatch:Qz};function Wv(e,t){if(e=e.replace(/\s+/g,""),t=t.replace(/\s+/g,""),e===t)return 1;if(e.length<2||t.length<2)return 0;let n=new Map;for(let o=0;o<e.length-1;o++){let i=e.substring(o,o+2),s=n.has(i)?n.get(i)+1:1;n.set(i,s)}let r=0;for(let o=0;o<t.length-1;o++){let i=t.substring(o,o+2),s=n.has(i)?n.get(i):0;s>0&&(n.set(i,s-1),r++)}return 2*r/(e.length+t.length-2)}function Qz(e,t){if(!Jz(e,t))throw new Error("Bad arguments: First argument should be a string, second should be an array of strings");let n=[],r=0;for(let i=0;i<t.length;i++){let s=t[i],a=Wv(e,s);n.push({target:s,rating:a}),a>n[r].rating&&(r=i)}let o=n[r];return{ratings:n,bestMatch:o,bestMatchIndex:r}}function Jz(e,t){return!(typeof e!="string"||!Array.isArray(t)||!t.length||t.find(function(n){return typeof n!="string"}))}});var W1=ir((vae,H1)=>{"use strict";var _1=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,l3=/\n/g,c3=/^\s*/,u3=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,p3=/^:\s*/,d3=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,g3=/^[;\s]*/,f3=/^\s+|\s+$/g,m3=`
14
+ `,$1="/",U1="*",pi="",h3="comment",x3="declaration";function y3(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function o(m){var b=m.match(l3);b&&(n+=b.length);var I=m.lastIndexOf(m3);r=~I?m.length-I:r+m.length}function i(){var m={line:n,column:r};return function(b){return b.position=new s(m),c(),b}}function s(m){this.start=m,this.end={line:n,column:r},this.source=t.source}s.prototype.content=e;function a(m){var b=new Error(t.source+":"+n+":"+r+": "+m);if(b.reason=m,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function u(m){var b=m.exec(e);if(b){var I=b[0];return o(I),e=e.slice(I.length),b}}function c(){u(c3)}function l(m){var b;for(m=m||[];b=d();)b!==!1&&m.push(b);return m}function d(){var m=i();if(!($1!=e.charAt(0)||U1!=e.charAt(1))){for(var b=2;pi!=e.charAt(b)&&(U1!=e.charAt(b)||$1!=e.charAt(b+1));)++b;if(b+=2,pi===e.charAt(b-1))return a("End of comment missing");var I=e.slice(2,b-2);return r+=2,o(I),e=e.slice(b),r+=2,m({type:h3,comment:I})}}function g(){var m=i(),b=u(u3);if(b){if(d(),!u(p3))return a("property missing ':'");var I=u(d3),E=m({type:x3,property:j1(b[0].replace(_1,pi)),value:I?j1(I[0].replace(_1,pi)):pi});return u(g3),E}}function p(){var m=[];l(m);for(var b;b=g();)b!==!1&&(m.push(b),l(m));return m}return c(),p()}function j1(e){return e?e.replace(f3,pi):pi}H1.exports=y3});var V1=ir(ba=>{"use strict";var b3=ba&&ba.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ba,"__esModule",{value:!0});ba.default=w3;var S3=b3(W1());function w3(e,t){let n=null;if(!e||typeof e!="string")return n;let r=(0,S3.default)(e),o=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;let{property:s,value:a}=i;o?t(s,a,i):a&&(n=n||{},n[s]=a)}),n}});var q1=ir(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});Nc.camelCase=void 0;var v3=/^--[a-zA-Z0-9_-]+$/,k3=/-([a-z])/g,C3=/^[^-]+$/,T3=/^-(webkit|moz|ms|o|khtml)-/,I3=/^-(ms)-/,F3=function(e){return!e||C3.test(e)||v3.test(e)},E3=function(e,t){return t.toUpperCase()},G1=function(e,t){return"".concat(t,"-")},A3=function(e,t){return t===void 0&&(t={}),F3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(I3,G1):e=e.replace(T3,G1),e.replace(k3,E3))};Nc.camelCase=A3});var K1=ir((Vh,Y1)=>{"use strict";var P3=Vh&&Vh.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},L3=P3(V1()),M3=q1();function Wh(e,t){var n={};return!e||typeof e!="string"||(0,L3.default)(e,function(r,o){r&&o&&(n[(0,M3.camelCase)(r,t)]=o)}),n}Wh.default=Wh;Y1.exports=Wh});var vI=ir((Qde,wI)=>{"use strict";var su=Object.prototype.hasOwnProperty,SI=Object.prototype.toString,fI=Object.defineProperty,mI=Object.getOwnPropertyDescriptor,hI=function(t){return typeof Array.isArray=="function"?Array.isArray(t):SI.call(t)==="[object Array]"},xI=function(t){if(!t||SI.call(t)!=="[object Object]")return!1;var n=su.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&su.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var o;for(o in t);return typeof o>"u"||su.call(t,o)},yI=function(t,n){fI&&n.name==="__proto__"?fI(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},bI=function(t,n){if(n==="__proto__")if(su.call(t,n)){if(mI)return mI(t,n).value}else return;return t[n]};wI.exports=function e(){var t,n,r,o,i,s,a=arguments[0],u=1,c=arguments.length,l=!1;for(typeof a=="boolean"&&(l=a,a=arguments[1]||{},u=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});u<c;++u)if(t=arguments[u],t!=null)for(n in t)r=bI(a,n),o=bI(t,n),a!==o&&(l&&o&&(xI(o)||(i=hI(o)))?(i?(i=!1,s=r&&hI(r)?r:[]):s=r&&xI(r)?r:{},yI(a,{name:n,newValue:e(l,s,o)})):typeof o<"u"&&yI(a,{name:n,newValue:o}));return a}});import Ga from"react";import{addons as wu,types as my,experimental_getStatusStore as hy}from"storybook/manager-api";import{AddonPanel as c9}from"storybook/internal/components";import zt,{useState as EV,useEffect as AV}from"react";import{styled as yr}from"storybook/theming";import Ty from"react";import{styled as Dt}from"storybook/theming";var le="#ea580c",Tu="#c2410c",Xa="#ff6b35";var by=Dt.div(({theme:e})=>({fontFamily:e.typography.fonts.base,height:"100%",display:"flex",flexDirection:"column",backgroundColor:e.background.content,color:e.color.defaultText})),Sy=Dt.div({flex:1,overflow:"auto",padding:"6px 20px 20px"}),wo=Dt.div({marginBottom:"20px"}),vo=Dt.label(({theme:e})=>({display:"block",marginBottom:`${e.layoutMargin*.6}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),hs=Dt.input(({theme:e})=>({width:"100%",padding:`${e.layoutMargin*.8}px ${e.layoutMargin}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.input.background,color:e.color.defaultText,"&:focus":{outline:"none",borderColor:e.color.secondary,boxShadow:`0 0 0 2px ${e.color.secondary}20`}})),Sn=Dt.select(({theme:e})=>({width:"100%",padding:`${e.layoutMargin*.8}px 32px ${e.layoutMargin*.8}px ${e.layoutMargin}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.input.background,color:e.color.defaultText,cursor:"pointer",appearance:"none",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 10px center",backgroundSize:"12px",transition:"border-color 0.15s, box-shadow 0.15s","&:focus":{outline:"none",borderColor:e.color.secondary,boxShadow:`0 0 0 2px ${e.color.secondary}20`},"&:hover":{borderColor:e.color.mediumdark},"&:disabled":{opacity:.6,cursor:"not-allowed"}})),wy=Dt(Sn)(({theme:e})=>({width:"auto",padding:`${e.layoutMargin*.6}px 28px ${e.layoutMargin*.6}px ${e.layoutMargin}px`,fontSize:e.typography.size.s1})),Qa=e=>({padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,border:"none",borderRadius:e.appBorderRadius,cursor:"pointer",transition:"all 0.15s","&:disabled":{opacity:.5,cursor:"not-allowed"}}),En=Dt.button(({theme:e})=>({...Qa(e),backgroundColor:e.color.secondary,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),on=Dt.button(({theme:e})=>({...Qa(e),backgroundColor:le,color:e.color.inverseText,boxShadow:`0 2px 4px ${le}4d`,"&:hover:not(:disabled)":{backgroundColor:Tu,transform:"translateY(-1px)",boxShadow:`0 4px 8px ${le}66`}})),Or=Dt.button(({theme:e})=>({...Qa(e),backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,color:e.color.defaultText,"&:hover:not(:disabled)":{backgroundColor:e.background.hoverable}})),vy=Dt.button(({theme:e})=>({...Qa(e),backgroundColor:e.color.negative,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),An=Dt.button(({theme:e})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",padding:`${e.layoutMargin*.4}px`,fontSize:e.typography.size.s2,color:e.color.mediumdark,backgroundColor:"transparent",border:"none",borderRadius:e.appBorderRadius,cursor:"pointer",transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),Iu=Dt.button(({theme:e})=>({padding:0,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.base,color:e.color.secondary,backgroundColor:"transparent",border:"none",cursor:"pointer",textDecoration:"none","&:hover":{textDecoration:"underline"},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),ko=Dt.button(({theme:e,active:t})=>({padding:`${e.layoutMargin*.6}px ${e.layoutMargin*1.2}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:t?e.typography.weight.bold:400,color:t?e.color.secondary:e.color.mediumdark,backgroundColor:"transparent",border:"none",borderBottom:t?`2px solid ${e.color.secondary}`:"2px solid transparent",cursor:"pointer",transition:"all 0.15s","&:hover":{color:t?e.color.secondary:e.color.defaultText}})),Co=Dt(hs)(({theme:e})=>({paddingLeft:`${e.layoutMargin*3}px`,backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:`${e.layoutMargin}px center`,backgroundSize:"14px"})),x9=Dt.div(({theme:e})=>({padding:`${e.layoutMargin*1.6}px`,borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),ky=Dt.h2(({theme:e})=>({margin:`0 0 ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s3,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),y9=Dt.h3(({theme:e})=>({margin:`0 0 ${e.layoutMargin*1.2}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),xs=Dt.p(({theme:e})=>({margin:`0 0 ${e.layoutMargin*.8}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,color:e.color.defaultText,lineHeight:1.5})),b9=Dt.div(({theme:e,width:t="100%",height:n="40px"})=>({width:t,height:n,backgroundColor:e.background.hoverable,borderRadius:e.appBorderRadius,position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:0,width:"100%",height:"100%",background:`linear-gradient(90deg, transparent, ${e.color.mediumlight}33, transparent)`,animation:"shimmer 1.5s infinite"},"@keyframes shimmer":{"0%":{transform:"translateX(-100%)"},"100%":{transform:"translateX(100%)"}}})),Cy=Dt.span(({theme:e,variant:t="default"})=>{let n={default:{bg:e.background.hoverable,color:e.color.defaultText},success:{bg:`${e.color.positive}40`,color:e.color.positive},warning:{bg:`${e.color.warning}40`,color:e.color.warning},error:{bg:`${e.color.negative}40`,color:e.color.negative}};return{display:"inline-block",padding:"2px 8px",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,borderRadius:"3px",backgroundColor:n[t].bg,color:n[t].color}}),S9=Dt.div(({theme:e})=>({padding:"40px 20px",textAlign:"center",color:e.color.mediumdark})),w9=Dt.div(({theme:e})=>({fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,marginBottom:`${e.layoutMargin*.8}px`,color:e.color.defaultText})),v9=Dt.div(({theme:e})=>({fontSize:e.typography.size.s2,color:e.color.mediumdark}));var Fu=({header:e,children:t,footer:n})=>Ty.createElement(by,null,e,Ty.createElement(Sy,null,t),n);import yE from"react";import{styled as bE}from"storybook/theming";var SE=bE.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"6px 12px",borderBottom:`1px solid ${e.appBorderColor}`,position:"sticky",top:0,zIndex:100,backgroundColor:e.background.content})),Eu=({toolbar:e})=>yE.createElement(SE,null,e);import M9 from"react";import{styled as Ja}from"storybook/theming";var R9=Ja.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",borderBottom:`1px solid ${e.appBorderColor}`,position:"sticky",top:0,zIndex:100,backgroundColor:e.background.content})),z9=Ja.div({display:"flex",flex:1}),N9=Ja(ko)(({theme:e,disabled:t})=>({padding:"6px 12px",...t?{color:e.color.mediumlight,cursor:"not-allowed",opacity:.5,"&:hover":{}}:{}})),O9=Ja.div({display:"flex",gap:"8px",alignItems:"center"});import en,{useState as Zf,useCallback as tv,useEffect as nv}from"react";import{styled as ao}from"storybook/theming";import we,{useEffect as Ww}from"react";import{styled as at}from"storybook/theming";ve();Ue();Ne();lt();var Vw=at.div({position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e4}),Gw=at.div(({theme:e})=>({position:"absolute",top:"100%",right:0,marginTop:"8px",backgroundColor:e.background.content,borderRadius:"12px",width:"360px",maxWidth:"90vw",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.3)",overflow:"hidden",zIndex:10001})),iR=at.div({display:"flex",alignItems:"center",gap:"12px",padding:"16px 16px 12px"}),sR=at.div({width:"36px",height:"36px",borderRadius:"50%",backgroundColor:le,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:"14px",fontWeight:700,flexShrink:0}),aR=at.div({display:"flex",flexDirection:"column",gap:"4px"}),lR=at.div(({theme:e})=>({fontSize:"15px",fontWeight:600,color:e.color.defaultText,lineHeight:1.2})),cR=at.span({display:"inline-block",alignSelf:"flex-start",padding:"2px 10px",borderRadius:"6px",fontSize:"11px",fontWeight:600,color:"#7c3aed",backgroundColor:"rgba(124, 58, 237, 0.1)",letterSpacing:"0.3px"}),uR=at.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px 8px",fontSize:"14px",color:e.color.defaultText})),pR=at.span(({theme:e})=>({color:e.textMutedColor,fontSize:"13px"})),dR=at.span(({theme:e})=>({color:e.color.defaultText,fontSize:"15px",fontWeight:600})),gR=at.div(({theme:e})=>({height:"8px",borderRadius:"4px",backgroundColor:e.base==="dark"?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)",margin:"0 16px 8px",overflow:"hidden"})),fR=at.div(({percent:e})=>({height:"100%",width:`${Math.min(100,Math.max(0,e))}%`,background:`linear-gradient(90deg, #f59e0b 0%, ${le} 100%)`,transition:"width 0.3s ease"})),mR=at.div(({theme:e})=>({padding:"0 16px 14px",fontSize:"12px",color:e.textMutedColor})),hR=at.div(({theme:e})=>({height:"1px",backgroundColor:e.appBorderColor})),xR=at.button({width:"100%",padding:"14px 16px",background:"transparent",border:"none",color:le,fontSize:"14px",fontWeight:500,textAlign:"left",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.03)"}}),qw=at.button(({theme:e})=>({position:"absolute",top:"12px",right:"12px",width:"24px",height:"24px",borderRadius:"4px",border:"none",background:"transparent",color:e.textMutedColor,cursor:"pointer",fontSize:"16px",display:"flex",alignItems:"center",justifyContent:"center","&:hover":{backgroundColor:e.background.hoverable}})),yR=at.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px",borderBottom:`1px solid ${e.appBorderColor}`})),bR=at.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"10px",color:e.color.defaultText,fontSize:"14px",fontWeight:500})),SR=at.div(({theme:e})=>({width:"32px",height:"32px",borderRadius:"50%",backgroundColor:le,display:"flex",alignItems:"center",justifyContent:"center",color:e.color.inverseText,fontSize:"14px",fontWeight:600})),wR=at.div({display:"flex",gap:"8px"}),Yw=at(An)({fontSize:"18px"}),vR=at.div({padding:"20px 16px"}),kR=at.div(({theme:e})=>({padding:"16px",borderRadius:"8px",background:"linear-gradient(135deg, #10B981 0%, #3B82F6 100%)",marginBottom:"16px",color:"#fff"})),CR=at.div({fontSize:"12px",fontWeight:500,opacity:.9,marginBottom:"4px"}),TR=at.div({fontSize:"28px",fontWeight:700}),IR=at.div({fontSize:"11px",opacity:.8,marginTop:"4px"}),FR=at.div(({theme:e})=>({padding:"16px",borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px"})),ER=at.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),AR=at.div({display:"flex",alignItems:"center",gap:"8px"}),PR=at.span(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),LR=at.span(({theme:e})=>({fontSize:"10px",fontWeight:600,padding:"2px 6px",borderRadius:"4px",backgroundColor:le,color:e.color.inverseText})),MR=at.button(({theme:e})=>({background:"none",border:"none",color:le,fontSize:"12px",cursor:"pointer","&:hover":{textDecoration:"underline"}})),BR=at.div(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),DR=at.button(({theme:e,variant:t="primary"})=>({width:"100%",padding:"12px",borderRadius:"6px",fontSize:"14px",fontWeight:600,cursor:"pointer",border:"none",marginBottom:"12px",backgroundColor:t==="primary"?le:e.background.hoverable,color:t==="primary"?e.color.inverseText:e.color.defaultText,"&:hover":{opacity:.9}})),RR=30*1e3,Kw=({onClose:e})=>{let{sessionToken:t,resetAuth:n,usageData:r,usageLastFetched:o,setUsageData:i}=Se(),{featureFlags:s}=ue(),a=s.showCosts,u=r,c=!r&&t,l=async(m=!1)=>{if(!t)return;let b=o&&Date.now()-o<RR;if(!(!m&&b&&r))try{let I=G(),E=await ne(`${I}/api/addon/account`,{headers:{Authorization:`Bearer ${t}`}});if(E.ok){let k=await E.json();i(k)}}catch(I){y.error("Failed to fetch usage:",I)}};Ww(()=>{l()},[t]),Ww(()=>{let m=()=>{document.visibilityState==="visible"&&(y.debug("[TokenUsageModal] Tab visible, refreshing balance..."),l(!0))};return document.addEventListener("visibilitychange",m),()=>document.removeEventListener("visibilitychange",m)},[t]);let d=async()=>{if(t){let m=G();try{await fetch(`${m}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${t}`}})}catch{}}n(),e()},g=()=>{let m=G();window.open(`${m}/pricing`,"_blank")},p=()=>{let m=G();window.open(`${m}/pricing#add-credits`,"_blank")};if(t&&!a&&!c){let m=Math.floor(u?.creditBalance??0),I=Math.max(m,10),E=Math.max(0,I-m),k=I>0?m/I*100:0;return we.createElement(we.Fragment,null,we.createElement(Vw,{onClick:e}),we.createElement(Gw,{onClick:D=>D.stopPropagation(),style:{width:"320px"}},we.createElement(iR,null,we.createElement(sR,null,u?.email?u.email[0].toUpperCase():"U"),we.createElement(aR,null,we.createElement(lR,null,"UI Review"),we.createElement(cR,null,(u?.plan||"BETA").toUpperCase())),we.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:"2px"}},we.createElement(qw,{onClick:d,title:"Sign out",style:{position:"static"}},we.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},we.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),we.createElement("polyline",{points:"16 17 21 12 16 7"}),we.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),we.createElement(qw,{onClick:e,title:"Close",style:{position:"static"}},"\xD7"))),we.createElement(uR,null,we.createElement(pR,null,"Credits"),we.createElement(dR,null,m," left")),we.createElement(gR,null,we.createElement(fR,{percent:k})),we.createElement(mR,null,E," used \xB7 ",m," remaining"),we.createElement(hR,null),we.createElement(xR,{onClick:()=>window.open("mailto:hello@uiparity.com?subject=Credits request","_blank")},"Contact us for credits \u2192")))}return we.createElement(we.Fragment,null,we.createElement(Vw,{onClick:e}),we.createElement(Gw,{onClick:m=>m.stopPropagation()},we.createElement(yR,null,we.createElement(bR,null,we.createElement(SR,null,u?.email?u.email[0].toUpperCase():"U"),we.createElement("span",null,u?.email||"Loading...")),we.createElement(wR,null,we.createElement(Yw,{onClick:d,title:"Sign out"},we.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},we.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),we.createElement("polyline",{points:"16 17 21 12 16 7"}),we.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),we.createElement(Yw,{onClick:e,title:"Close"},"\xD7"))),we.createElement(vR,null,c?we.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Loading..."):t?we.createElement(we.Fragment,null,we.createElement(kR,null,we.createElement(CR,null,"Credit Balance"),we.createElement(TR,null,"$",(u?.creditBalance??0).toFixed(2)),we.createElement(IR,null,(u?.creditBalance??0)<2?"Low balance - consider topping up":"Pay only for what you use")),we.createElement(FR,null,we.createElement(ER,null,we.createElement(AR,null,we.createElement(PR,null,"Current Plan"),we.createElement(LR,null,u?.plan||"Free")),we.createElement(MR,{onClick:g},"View detail >")),we.createElement(BR,null,"~$0.02-0.05 per review depending on complexity"),we.createElement(DR,{onClick:p,style:{marginTop:"16px"}},"Add Credits"))):we.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Please sign in to view usage"))))};ve();import Ni from"react";import{styled as Xw}from"storybook/theming";Ue();ve();lt();Ne();var zR=Xw.div({display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}),NR=Xw.span(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark})),OR={admin:{enableFixGeneration:!0,enableFixApply:!0,enableAutoMap:!0,enableReviewBadges:!0,showCosts:!0,enableParallelReview:!0,enableModelSelection:!0},beta:{enableFixGeneration:!0,enableFixApply:!1,enableAutoMap:!0,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1}},Qw=()=>{let{userRole:e,roleOverride:t,setRoleOverride:n,setFeatureFlags:r}=ue(),{sessionToken:o}=Se();return e!=="admin"?null:Ni.createElement(zR,null,Ni.createElement(NR,null,"View as:"),Ni.createElement(wy,{value:t??e,onChange:a=>{let u=a.target.value;if(u===e)n(null),o&&ne(`${G()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(c=>c.json()).then(c=>{let l={enableFixGeneration:!!c.enableFixGeneration,enableFixApply:!!c.enableFixApply,enableAutoMap:!!c.enableAutoMap,enableReviewBadges:!!c.enableReviewBadges,showCosts:!!c.showCosts,enableParallelReview:!!c.enableParallelReview,enableModelSelection:!!c.enableModelSelection};r(l);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(l))}catch{}}).catch(c=>y.warn("[RoleSwitcher] Failed to re-fetch flags:",c.message));else{n(u);let c=OR[u];r(c);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(c))}catch{}}},style:{width:"auto",minWidth:"100px"}},Ni.createElement("option",{value:"admin"},"Admin"),Ni.createElement("option",{value:"beta"},"Beta Tester")),t&&Ni.createElement(Cy,{variant:"warning"},"Previewing as ",t))};Ue();ve();lt();import yt,{useState as Gs,useCallback as Jf}from"react";import{styled as Er}from"storybook/theming";var _R="0.5.7",$R=[{value:"bug",label:"\u{1F41E} Bug \u2014 something broke"},{value:"ux",label:"\u{1F9ED} UX \u2014 confusing or slow"},{value:"feature",label:"\u2728 Feature \u2014 missing something"},{value:"praise",label:"\u{1F49A} Praise \u2014 works great"},{value:"other",label:"\u{1F4AC} Other"}],UR=Er.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center"}),jR=Er.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"12px",width:"460px",maxWidth:"94%",maxHeight:"90vh",overflow:"auto",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.25)"})),HR=Er.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px 12px",borderBottom:`1px solid ${e.appBorderColor}`})),WR=Er.h3(({theme:e})=>({margin:0,fontSize:"15px",fontWeight:600,color:e.color.defaultText,display:"flex",alignItems:"center",gap:"8px"})),VR=Er.button(({theme:e})=>({background:"transparent",border:"none",fontSize:"20px",color:e.color.mediumdark,cursor:"pointer",padding:"0 6px",lineHeight:1,"&:hover":{color:e.color.defaultText}})),GR=Er.div({padding:"16px 20px",display:"flex",flexDirection:"column",gap:"14px"}),qR=Er.textarea(({theme:e})=>({width:"100%",minHeight:"110px",padding:"8px 10px",borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.defaultText,backgroundColor:e.background.app,resize:"vertical",boxSizing:"border-box","&:focus":{outline:"none",borderColor:le}})),Jw=Er.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px 16px",borderTop:`1px solid ${e.appBorderColor}`,gap:"8px"})),Zw=Er.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.mediumdark,lineHeight:1.4})),YR=Er.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.negative})),KR=Er.div(({theme:e})=>({padding:"24px 20px",textAlign:"center",display:"flex",flexDirection:"column",gap:"10px","& h4":{margin:0,fontSize:"15px",fontWeight:600,color:e.color.positive},"& p":{margin:0,fontSize:e.typography.size.s2,color:e.color.mediumdark}}));function ev({isOpen:e,onClose:t}){let{sessionToken:n,isConnected:r}=Se(),{selectedProjectId:o}=Xe(),{currentStoryId:i}=tt(),[s,a]=Gs("other"),[u,c]=Gs(""),[l,d]=Gs(!1),[g,p]=Gs(!1),[m,b]=Gs(null),I=Jf(()=>{c(""),a("other"),p(!1),b(null),d(!1)},[]),E=Jf(()=>{I(),t()},[I,t]),k=Jf(async D=>{if(D.preventDefault(),!u.trim()){b("Please write a message.");return}if(!r||!n){b("Sign in to send feedback.");return}d(!0),b(null);try{let N=await ne(`${G()}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({message:u.trim(),severity:s,projectId:o||void 0,storyId:i||void 0,addonVersion:_R})});if(!N.ok){let $=await N.json().catch(()=>({}));throw new Error($.error||`Request failed (${N.status})`)}p(!0)}catch(N){b(N instanceof Error?N.message:"Something went wrong")}finally{d(!1)}},[u,s,n,r,o,i]);return e?yt.createElement(UR,{onClick:E},yt.createElement(jR,{onClick:D=>D.stopPropagation()},yt.createElement(HR,null,yt.createElement(WR,null,yt.createElement("span",null,"\u{1F4AC}"),"Send feedback"),yt.createElement(VR,{onClick:E,"aria-label":"Close"},"\xD7")),g?yt.createElement(yt.Fragment,null,yt.createElement(KR,null,yt.createElement("h4",null,"Thanks \u2014 got it."),yt.createElement("p",null,"We read every message. If it's a bug, we'll likely follow up by email.")),yt.createElement(Jw,null,yt.createElement("span",null),yt.createElement(En,{onClick:E},"Close"))):yt.createElement("form",{onSubmit:k},yt.createElement(GR,null,yt.createElement(wo,null,yt.createElement(vo,{htmlFor:"feedback-severity"},"Type"),yt.createElement(Sn,{id:"feedback-severity",value:s,onChange:D=>a(D.target.value),disabled:l},$R.map(D=>yt.createElement("option",{key:D.value,value:D.value},D.label)))),yt.createElement(wo,null,yt.createElement(vo,{htmlFor:"feedback-message"},"What happened?"),yt.createElement(qR,{id:"feedback-message",value:u,onChange:D=>c(D.target.value),placeholder:"Tell us what you were doing, what you expected, and what happened.",disabled:l,autoFocus:!0,maxLength:5e3})),yt.createElement(Zw,null,"We auto-attach your current story and project so we can reproduce it. No screenshots sent."),m&&yt.createElement(YR,null,m)),yt.createElement(Jw,null,yt.createElement(Zw,null,i?`Context: ${i}`:"No story selected"),yt.createElement("div",{style:{display:"flex",gap:"8px"}},yt.createElement(En,{type:"button",onClick:E,disabled:l},"Cancel"),yt.createElement(on,{type:"submit",disabled:l||!u.trim()},l?"Sending\u2026":"Send")))))):null}ve();Ue();lt();var XR=ao.div({display:"flex",alignItems:"center"}),Oi=ao.div(({theme:e})=>({display:"flex",alignItems:"center",paddingLeft:"8px",borderLeft:`1px solid ${e.appBorderColor}`,"&:first-of-type":{paddingLeft:0,borderLeft:"none"}})),QR=ao.span(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.secondary,fontWeight:e.typography.weight.bold,paddingRight:"8px",opacity:.8})),JR=ao.div({position:"relative"}),ZR=ao.button(({theme:e})=>({width:"26px",height:"26px",padding:0,background:`linear-gradient(135deg, ${e.color.secondary} 0%, ${e.color.secondary}cc 100%)`,border:"none",borderRadius:"50%",color:e.color.inverseText,cursor:"pointer",fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s","&:hover":{transform:"scale(1.05)",boxShadow:`0 2px 8px ${e.color.secondary}66`}})),rv=ao.button(({isLow:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 10px",background:e?"#FEF3C7":"linear-gradient(135deg, #10B981 0%, #3B82F6 100%)",border:"none",borderRadius:"12px",color:e?"#92400E":"#fff",cursor:"pointer",fontSize:"12px",fontWeight:600,transition:"all 0.2s",minWidth:"60px",justifyContent:"center","&:hover":{transform:"scale(1.02)",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})),ez=ao.span({display:"inline-block",width:"12px",height:"12px",border:"2px solid rgba(255,255,255,0.3)",borderTopColor:"#fff",borderRadius:"50%",animation:"credit-spin 0.8s linear infinite","@keyframes credit-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}}),tz=ao.button(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",gap:"4px",padding:"4px 10px",height:"28px",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:"transparent",color:e.color.mediumdark,fontSize:"12px",fontWeight:500,cursor:"pointer",transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText,borderColor:e.color.mediumdark}})),nz=ao.button({position:"fixed",bottom:"20px",right:"20px",width:"48px",height:"48px",borderRadius:"50%",backgroundColor:le,color:"white",border:"none",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"22px",cursor:"pointer",boxShadow:`0 4px 14px ${le}66, 0 2px 4px rgba(0,0,0,0.1)`,transition:"all 0.2s ease",zIndex:9999,"&:hover":{transform:"scale(1.08)",boxShadow:`0 6px 20px ${le}88, 0 3px 6px rgba(0,0,0,0.15)`},"&:active":{transform:"scale(0.96)"}}),rz=30*1e3,em=({onOpenSettings:e})=>{let[t,n]=Zf(!1),[r,o]=Zf(!1),[i,s]=Zf(!1),{usageData:a,usageLastFetched:u,setUsageData:c,sessionToken:l}=Se(),{userRole:d,roleOverride:g,featureFlags:p}=ue(),m=g??d;nv(()=>{(async()=>{if(!(!l||u&&Date.now()-u<rz&&a)){s(!0);try{let $=G(),L=await ne(`${$}/api/addon/account`,{headers:{Authorization:`Bearer ${l}`}});if(L.ok){let R=await L.json();c(R)}}catch($){console.error("Failed to fetch balance:",$)}finally{s(!1)}}})()},[l,u,a,c]),nv(()=>{let D=()=>{document.visibilityState==="visible"&&t&&n(!1)},N=()=>{t&&n(!1)};return document.addEventListener("visibilitychange",D),window.addEventListener("focus",N),()=>{document.removeEventListener("visibilitychange",D),window.removeEventListener("focus",N)}},[t]);let b=tv(()=>{n(!0)},[]),I=tv(()=>{n(!1)},[]),E=a?.creditBalance??0,k=E<2&&!i;return en.createElement(XR,null,e&&en.createElement(Oi,null,en.createElement(tz,{onClick:e,title:"Settings"},en.createElement("span",{style:{fontSize:"14px"}},"\u2699"),"Settings")),l&&d==="admin"&&m==="admin"&&en.createElement(Oi,null,en.createElement(Qw,null)),en.createElement(Oi,null,en.createElement(QR,null,"v","0.5.36")),l&&p.showCosts&&en.createElement(Oi,null,en.createElement(rv,{onClick:b,isLow:k,title:i?"Loading...":a?k?"Low balance - click to top up":"Credit balance - click for details":"Click to load balance"},i?en.createElement(ez,null):a?`$${E.toFixed(2)}`:"...")),l&&!p.showCosts&&a&&en.createElement(Oi,null,en.createElement(rv,{onClick:b,isLow:Math.floor(E)<=3,title:`${Math.floor(E)} review credits \u2014 click for details`},"\u26A1 ",Math.floor(E))),en.createElement(Oi,null,en.createElement(JR,null,en.createElement(ZR,{title:"Account & Usage",onClick:b},a?.email?a.email[0].toUpperCase():"?"),t&&en.createElement(Kw,{onClose:I}))),l&&en.createElement(nz,{onClick:()=>o(!0),title:"Send feedback","aria-label":"Send feedback"},"\u{1F4AC}"),en.createElement(ev,{isOpen:r,onClose:()=>o(!1)}))};import Bt,{useEffect as t5,useRef as n5}from"react";import{styled as fr}from"storybook/theming";import nt from"react";ve();Ne();Ue();lt();hn();import{useState as oz,useCallback as Po,useRef as iz,useEffect as ov}from"react";var Ar=G();y.debug("[useAuth] Module loaded, APP_URL:",Ar);var ql=null,Yl=null,qs=null;function Ys(){ql&&(clearInterval(ql),ql=null),Yl&&(clearTimeout(Yl),Yl=null)}var Ks=()=>{let e=iz(null),{sessionToken:t,apiKey:n,authMethod:r,deviceCode:o,userCode:i,verificationUri:s,isConnected:a,authError:u,setSessionToken:c,setApiKey:l,setAuthMethod:d,setDeviceCode:g,setUserCode:p,setVerificationUri:m,setPollingInterval:b,setAuthError:I,resetAuth:E}=Se(),[k,D]=oz(!1),N=Po(()=>{Ys(),qs=null},[]),$=Po(f=>{qs=f,Ys();let v=async()=>{let F=qs;if(!F){Ys();return}try{let C=await(await fetch(`${Ar}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:F})})).json();C.status==="authorized"&&C.session_token?(y.debug("[useAuth] \u2705 OAuth poll successful! Got token."),Ys(),qs=null,localStorage.setItem("uicopilot_session_token",C.session_token),c(C.session_token),D(!1)):C.status==="expired"&&(y.debug("[useAuth] OAuth poll_code expired"),Ys(),qs=null,D(!1))}catch(x){y.error("[useAuth] OAuth poll error:",x)}};ql=setInterval(v,2e3),Yl=setTimeout(v,1e3)},[c]);ov(()=>{function f(v){if(!v.origin.startsWith(Ar))return;let F=v.data;if(!F||typeof F!="object")return;let x=F;if(x.type==="UICOPILOT_AUTH_ERROR"){y.debug("[useAuth] Popup reported auth error:",x.step,x.detail),N(),D(!1);let C=typeof x.step=="string"?x.step:"auth",P=typeof x.detail=="string"?x.detail:"Unknown error";I(`${Et.NAME} auth failed (${C}): ${P}`)}else x.type==="UICOPILOT_AUTH_POLL_CODE"&&typeof x.pollCode=="string"&&x.pollCode&&(y.debug("[useAuth] Popup handed us a fresh poll_code, switching"),I(null),$(x.pollCode))}return window.addEventListener("message",f),()=>window.removeEventListener("message",f)},[$,N,I]);let L=Po(async()=>{try{y.debug("[useAuth] Starting OAuth flow, requesting poll_code...");let f;try{f=await ne(`${Ar}/api/addon/auth/oauth-poll`,{method:"POST"})}catch(C){let B=C instanceof Error&&C.message.includes("timed out")?`Cannot reach ${Et.NAME} server at ${Ar}. Is the dashboard running?`:`Connection failed: ${Ar} is not responding.`;I(B),y.error("[useAuth]",B);return}if(!f.ok){let C=`Cannot reach ${Et.NAME} server. Is the dashboard running?`;I(C),y.error("[useAuth]",C);return}let{poll_code:v}=await f.json();y.debug("[useAuth] Got poll_code:",v.substring(0,15)+"...");let F=localStorage.getItem("uicopilot_force_sign_in")==="true";F&&localStorage.removeItem("uicopilot_force_sign_in");let x=`${Ar}/addon/auth?poll_code=${v}${F?"&force_sign_in=true":""}`;D(!0),window.open(x,"uiparity-auth","width=520,height=620,left=300,top=150"),y.debug("[useAuth] Starting OAuth poll for token..."),$(v)}catch(f){y.error("[useAuth] OAuth flow error:",f),I(`Connection failed. Is the dashboard running at ${Ar}?`),D(!1)}},[I,$]),R=Po(async()=>{try{let f=await fetch(`${Ar}/api/addon/auth/device`,{method:"POST"});if(!f.ok)throw new Error("Failed to start device code flow");let v=await f.json();g(v.device_code),p(v.user_code),m(v.verification_uri),window.open(v.verification_uri,"_blank"),h(v.device_code,v.interval*1e3)}catch(f){throw y.error("[useAuth] Device code flow error:",f),f}},[g,p,m]),h=Po((f,v)=>{y.debug("[useAuth] Starting polling. Device code:",f,"Interval:",v),e.current&&clearInterval(e.current);let F=async()=>{try{let C=await(await fetch(`${Ar}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:f})})).json();C.status==="authorized"?(y.debug("[useAuth] Device code authorization successful!"),e.current&&(clearInterval(e.current),e.current=null),g(null),p(null),m(null),localStorage.setItem("uicopilot_session_token",C.session_token),c(C.session_token),D(!1)):(C.status==="expired"||C.status==="denied")&&(y.debug("[useAuth] Device code expired or denied"),e.current&&(clearInterval(e.current),e.current=null),g(null),p(null),m(null))}catch(x){y.error("[useAuth] Polling error:",x)}};e.current=setInterval(F,v),b(v)},[g,p,m,c,b]),S=Po(()=>{e.current&&(clearInterval(e.current),e.current=null),g(null),p(null),m(null),b(null)},[g,p,m,b]),w=Po(f=>{l(f),c(f),localStorage.setItem("uicopilot_api_key",f)},[l,c]),A=Po(async()=>{if(t)try{await ne(`${Ar}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${t}`}})}catch{}E(),D(!1),e.current&&(clearInterval(e.current),e.current=null),N()},[t,E,N]);return ov(()=>()=>{e.current&&clearInterval(e.current)},[]),{sessionToken:t,apiKey:n,authMethod:r,deviceCode:o,userCode:i,verificationUri:s,isConnected:a,authError:u,oauthPending:k,setAuthMethod:d,startOAuth:L,startDeviceCode:R,cancelDeviceCode:S,saveApiKey:w,logout:A}};ve();Ne();Ue();lt();import{useCallback as Kl}from"react";var Xs=G(),lo=()=>{let{projects:e,selectedProjectId:t,loadingProjects:n,setProjects:r,setSelectedProjectId:o,setLoadingProjects:i,getSelectedProject:s}=Xe(),{sessionToken:a}=Se(),u=Kl(async()=>{if(!a){y.debug("[useProjects] No session token, skipping fetch");return}try{i(!0),y.debug("[useProjects] Fetching from:",`${Xs}/api/projects`);let g=await ne(`${Xs}/api/projects`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`}});if(g.ok){let p=await g.json();y.debug("[useProjects] Projects:",p.projects),r(p.projects||[])}else y.error("[useProjects] Failed to fetch projects:",g.status,g.statusText)}catch(g){y.error("[useProjects] Error fetching projects:",g)}finally{i(!1)}},[a,r,i]),c=Kl(async g=>{if(!a)throw new Error("Not authenticated");let p=await ne(`${Xs}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify(g)});if(!p.ok)throw new Error("Failed to create project");let m=await p.json();return await u(),m.project},[a,u]),l=Kl(async(g,p)=>{if(!a)throw new Error("Not authenticated");let m={};if(p.name!==void 0&&(m.name=p.name),p.description!==void 0&&(m.description=p.description),p.figmaFileUrl!==void 0&&(m.figmaFileId=p.figmaFileUrl||void 0),!(await ne(`${Xs}/api/projects/${g}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify(m)})).ok)throw new Error("Failed to update project");await u()},[a,u]),d=Kl(async g=>{if(!a)throw new Error("Not authenticated");if(!(await ne(`${Xs}/api/projects/${g}`,{method:"DELETE",headers:{Authorization:`Bearer ${a}`}})).ok)throw new Error("Failed to delete project");await u(),t===g&&o(null)},[a,t,u,o]);return{projects:e,selectedProjectId:t,selectedProject:s(),loadingProjects:n,setSelectedProjectId:o,fetchProjects:u,createProject:c,updateProject:l,deleteProject:d}};ve();var Qs=()=>{let{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:s,setFigmaFileUrl:a,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:d}=tt();return{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:s,setFigmaFileUrl:a,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:d,openComponentBrowser:()=>s(!0),closeComponentBrowser:()=>s(!1)}};ve();im();pm();import{useCallback as ia,useRef as ac}from"react";Ne();function ec(){return new Promise(e=>{let t=document.getElementById("storybook-preview-iframe");if(!t||!t.contentWindow){y.warn("[iframeReload] No preview iframe found"),e();return}let n=t.contentWindow.location.href,r=new URL(n);r.searchParams.set("_cb",Date.now().toString());let o=r.toString();y.debug("[iframeReload] Triggering cache-busted reload:",o);let i=setTimeout(()=>{y.warn("[iframeReload] Iframe reload timed out after 5s"),t.removeEventListener("load",s),e()},5e3),s=()=>{clearTimeout(i),t.removeEventListener("load",s),y.debug("[iframeReload] Iframe loaded, waiting for HMR and styles to settle..."),setTimeout(()=>{y.debug("[iframeReload] Iframe reloaded and styles should be fresh"),e()},2e3)};t.addEventListener("load",s),t.contentWindow.location.href=o})}function tc(e){return e&&e!=="admin"?{"X-UIC-Role-Preview":e}:{}}var nc=BigInt(4294967295),wv=BigInt(32);function Fz(e,t=!1){return t?{h:Number(e&nc),l:Number(e>>wv&nc)}:{h:Number(e>>wv&nc)|0,l:Number(e&nc)|0}}function vv(e,t=!1){let n=e.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let i=0;i<n;i++){let{h:s,l:a}=Fz(e[i],t);[r[i],o[i]]=[s,a]}return[r,o]}var kv=(e,t,n)=>e<<n|t>>>32-n,Cv=(e,t,n)=>t<<n|e>>>32-n,Tv=(e,t,n)=>t<<n-32|e>>>64-n,Iv=(e,t,n)=>e<<n-32|t>>>64-n;function Ez(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function dm(e,t=""){if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function rc(e,t,n=""){let r=Ez(e),o=e?.length,i=t!==void 0;if(!r||i&&o!==t){let s=n&&`"${n}" `,a=i?` of length ${t}`:"",u=r?`length=${o}`:`type=${typeof e}`;throw new Error(s+"expected Uint8Array"+a+", got "+u)}return e}function gm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Fv(e,t){rc(e,void 0,"digestInto() output");let n=t.outputLen;if(e.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function Ev(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function fm(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}var Az=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Pz(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Lz(e){for(let t=0;t<e.length;t++)e[t]=Pz(e[t]);return e}var mm=Az?e=>e:Lz;function Av(e,t={}){let n=(o,i)=>e(i).update(o).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.create=o=>e(o),Object.assign(n,t),Object.freeze(n)}var Pv=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var Mz=BigInt(0),ta=BigInt(1),Bz=BigInt(2),Dz=BigInt(7),Rz=BigInt(256),zz=BigInt(113),Bv=[],Dv=[],Rv=[];for(let e=0,t=ta,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Bv.push(2*(5*r+n)),Dv.push((e+1)*(e+2)/2%64);let o=Mz;for(let i=0;i<7;i++)t=(t<<ta^(t>>Dz)*zz)%Rz,t&Bz&&(o^=ta<<(ta<<BigInt(i))-ta);Rv.push(o)}var zv=vv(Rv,!0),Nz=zv[0],Oz=zv[1],Lv=(e,t,n)=>n>32?Tv(e,t,n):kv(e,t,n),Mv=(e,t,n)=>n>32?Iv(e,t,n):Cv(e,t,n);function _z(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let s=0;s<10;s++)n[s]=e[s]^e[s+10]^e[s+20]^e[s+30]^e[s+40];for(let s=0;s<10;s+=2){let a=(s+8)%10,u=(s+2)%10,c=n[u],l=n[u+1],d=Lv(c,l,1)^n[a],g=Mv(c,l,1)^n[a+1];for(let p=0;p<50;p+=10)e[s+p]^=d,e[s+p+1]^=g}let o=e[2],i=e[3];for(let s=0;s<24;s++){let a=Dv[s],u=Lv(o,i,a),c=Mv(o,i,a),l=Bv[s];o=e[l],i=e[l+1],e[l]=u,e[l+1]=c}for(let s=0;s<50;s+=10){for(let a=0;a<10;a++)n[a]=e[s+a];for(let a=0;a<10;a++)e[s+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=Nz[r],e[1]^=Oz[r]}fm(n)}var hm=class e{constructor(t,n,r,o=!1,i=24){sr(this,"state");sr(this,"pos",0);sr(this,"posOut",0);sr(this,"finished",!1);sr(this,"state32");sr(this,"destroyed",!1);sr(this,"blockLen");sr(this,"suffix");sr(this,"outputLen");sr(this,"enableXOF",!1);sr(this,"rounds");if(this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,dm(r,"outputLen"),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Ev(this.state)}clone(){return this._cloneInto()}keccak(){mm(this.state32),_z(this.state32,this.rounds),mm(this.state32),this.posOut=0,this.pos=0}update(t){gm(this),rc(t);let{blockLen:n,state:r}=this,o=t.length;for(let i=0;i<o;){let s=Math.min(n-this.pos,o-i);for(let a=0;a<s;a++)r[this.pos++]^=t[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:n,pos:r,blockLen:o}=this;t[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){gm(this,!1),rc(t),this.finish();let n=this.state,{blockLen:r}=this;for(let o=0,i=t.length;o<i;){this.posOut>=r&&this.keccak();let s=Math.min(r-this.posOut,i-o);t.set(n.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return dm(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Fv(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,fm(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:s}=this;return t||(t=new e(n,r,o,s,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=r,t.outputLen=o,t.enableXOF=s,t.destroyed=this.destroyed,t}},$z=(e,t,n,r={})=>Av(()=>new hm(t,e,n),r);var Nv=$z(6,72,64,Pv(10));var Uz=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,xm=Math.ceil,dr=Math.floor,Un="[BigNumber Error] ",Ov=Un+"Number primitive has more than 15 significant digits: ",Pr=1e14,He=14,ym=9007199254740991,bm=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Mo=1e7,ln=1e9;function _v(e){var t,n,r,o=k.prototype={constructor:k,toString:null,valueOf:null},i=new k(1),s=20,a=4,u=-7,c=21,l=-1e7,d=1e7,g=!1,p=1,m=0,b={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},I="0123456789abcdefghijklmnopqrstuvwxyz",E=!0;function k(h,S){var w,A,f,v,F,x,C,P,B=this;if(!(B instanceof k))return new k(h,S);if(S==null){if(h&&h._isBigNumber===!0){B.s=h.s,!h.c||h.e>d?B.c=B.e=null:h.e<l?B.c=[B.e=0]:(B.e=h.e,B.c=h.c.slice());return}if((x=typeof h=="number")&&h*0==0){if(B.s=1/h<0?(h=-h,-1):1,h===~~h){for(v=0,F=h;F>=10;F/=10,v++);v>d?B.c=B.e=null:(B.e=v,B.c=[h]);return}P=String(h)}else{if(!Uz.test(P=String(h)))return r(B,P,x);B.s=P.charCodeAt(0)==45?(P=P.slice(1),-1):1}(v=P.indexOf("."))>-1&&(P=P.replace(".","")),(F=P.search(/e/i))>0?(v<0&&(v=F),v+=+P.slice(F+1),P=P.substring(0,F)):v<0&&(v=P.length)}else{if(Ot(S,2,I.length,"Base"),S==10&&E)return B=new k(h),L(B,s+B.e+1,a);if(P=String(h),x=typeof h=="number"){if(h*0!=0)return r(B,P,x,S);if(B.s=1/h<0?(P=P.slice(1),-1):1,k.DEBUG&&P.replace(/^0\.0*|\./,"").length>15)throw Error(Ov+h)}else B.s=P.charCodeAt(0)===45?(P=P.slice(1),-1):1;for(w=I.slice(0,S),v=F=0,C=P.length;F<C;F++)if(w.indexOf(A=P.charAt(F))<0){if(A=="."){if(F>v){v=C;continue}}else if(!f&&(P==P.toUpperCase()&&(P=P.toLowerCase())||P==P.toLowerCase()&&(P=P.toUpperCase()))){f=!0,F=-1,v=0;continue}return r(B,String(h),x,S)}x=!1,P=n(P,S,10,B.s),(v=P.indexOf("."))>-1?P=P.replace(".",""):v=P.length}for(F=0;P.charCodeAt(F)===48;F++);for(C=P.length;P.charCodeAt(--C)===48;);if(P=P.slice(F,++C)){if(C-=F,x&&k.DEBUG&&C>15&&(h>ym||h!==dr(h)))throw Error(Ov+B.s*h);if((v=v-F-1)>d)B.c=B.e=null;else if(v<l)B.c=[B.e=0];else{if(B.e=v,B.c=[],F=(v+1)%He,v<0&&(F+=He),F<C){for(F&&B.c.push(+P.slice(0,F)),C-=He;F<C;)B.c.push(+P.slice(F,F+=He));F=He-(P=P.slice(F)).length}else F-=C;for(;F--;P+="0");B.c.push(+P)}}else B.c=[B.e=0]}k.clone=_v,k.ROUND_UP=0,k.ROUND_DOWN=1,k.ROUND_CEIL=2,k.ROUND_FLOOR=3,k.ROUND_HALF_UP=4,k.ROUND_HALF_DOWN=5,k.ROUND_HALF_EVEN=6,k.ROUND_HALF_CEIL=7,k.ROUND_HALF_FLOOR=8,k.EUCLID=9,k.config=k.set=function(h){var S,w;if(h!=null)if(typeof h=="object"){if(h.hasOwnProperty(S="DECIMAL_PLACES")&&(w=h[S],Ot(w,0,ln,S),s=w),h.hasOwnProperty(S="ROUNDING_MODE")&&(w=h[S],Ot(w,0,8,S),a=w),h.hasOwnProperty(S="EXPONENTIAL_AT")&&(w=h[S],w&&w.pop?(Ot(w[0],-ln,0,S),Ot(w[1],0,ln,S),u=w[0],c=w[1]):(Ot(w,-ln,ln,S),u=-(c=w<0?-w:w))),h.hasOwnProperty(S="RANGE"))if(w=h[S],w&&w.pop)Ot(w[0],-ln,-1,S),Ot(w[1],1,ln,S),l=w[0],d=w[1];else if(Ot(w,-ln,ln,S),w)l=-(d=w<0?-w:w);else throw Error(Un+S+" cannot be zero: "+w);if(h.hasOwnProperty(S="CRYPTO"))if(w=h[S],w===!!w)if(w)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))g=w;else throw g=!w,Error(Un+"crypto unavailable");else g=w;else throw Error(Un+S+" not true or false: "+w);if(h.hasOwnProperty(S="MODULO_MODE")&&(w=h[S],Ot(w,0,9,S),p=w),h.hasOwnProperty(S="POW_PRECISION")&&(w=h[S],Ot(w,0,ln,S),m=w),h.hasOwnProperty(S="FORMAT"))if(w=h[S],typeof w=="object")b=w;else throw Error(Un+S+" not an object: "+w);if(h.hasOwnProperty(S="ALPHABET"))if(w=h[S],typeof w=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(w))E=w.slice(0,10)=="0123456789",I=w;else throw Error(Un+S+" invalid: "+w)}else throw Error(Un+"Object expected: "+h);return{DECIMAL_PLACES:s,ROUNDING_MODE:a,EXPONENTIAL_AT:[u,c],RANGE:[l,d],CRYPTO:g,MODULO_MODE:p,POW_PRECISION:m,FORMAT:b,ALPHABET:I}},k.isBigNumber=function(h){if(!h||h._isBigNumber!==!0)return!1;if(!k.DEBUG)return!0;var S,w,A=h.c,f=h.e,v=h.s;e:if({}.toString.call(A)=="[object Array]"){if((v===1||v===-1)&&f>=-ln&&f<=ln&&f===dr(f)){if(A[0]===0){if(f===0&&A.length===1)return!0;break e}if(S=(f+1)%He,S<1&&(S+=He),String(A[0]).length==S){for(S=0;S<A.length;S++)if(w=A[S],w<0||w>=Pr||w!==dr(w))break e;if(w!==0)return!0}}}else if(A===null&&f===null&&(v===null||v===1||v===-1))return!0;throw Error(Un+"Invalid BigNumber: "+h)},k.maximum=k.max=function(){return N(arguments,-1)},k.minimum=k.min=function(){return N(arguments,1)},k.random=(function(){var h=9007199254740992,S=Math.random()*h&2097151?function(){return dr(Math.random()*h)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(w){var A,f,v,F,x,C=0,P=[],B=new k(i);if(w==null?w=s:Ot(w,0,ln),F=xm(w/He),g)if(crypto.getRandomValues){for(A=crypto.getRandomValues(new Uint32Array(F*=2));C<F;)x=A[C]*131072+(A[C+1]>>>11),x>=9e15?(f=crypto.getRandomValues(new Uint32Array(2)),A[C]=f[0],A[C+1]=f[1]):(P.push(x%1e14),C+=2);C=F/2}else if(crypto.randomBytes){for(A=crypto.randomBytes(F*=7);C<F;)x=(A[C]&31)*281474976710656+A[C+1]*1099511627776+A[C+2]*4294967296+A[C+3]*16777216+(A[C+4]<<16)+(A[C+5]<<8)+A[C+6],x>=9e15?crypto.randomBytes(7).copy(A,C):(P.push(x%1e14),C+=7);C=F/7}else throw g=!1,Error(Un+"crypto unavailable");if(!g)for(;C<F;)x=S(),x<9e15&&(P[C++]=x%1e14);for(F=P[--C],w%=He,F&&w&&(x=bm[He-w],P[C]=dr(F/x)*x);P[C]===0;P.pop(),C--);if(C<0)P=[v=0];else{for(v=-1;P[0]===0;P.splice(0,1),v-=He);for(C=1,x=P[0];x>=10;x/=10,C++);C<He&&(v-=He-C)}return B.e=v,B.c=P,B}})(),k.sum=function(){for(var h=1,S=arguments,w=new k(S[0]);h<S.length;)w=w.plus(S[h++]);return w},n=(function(){var h="0123456789";function S(w,A,f,v){for(var F,x=[0],C,P=0,B=w.length;P<B;){for(C=x.length;C--;x[C]*=A);for(x[0]+=v.indexOf(w.charAt(P++)),F=0;F<x.length;F++)x[F]>f-1&&(x[F+1]==null&&(x[F+1]=0),x[F+1]+=x[F]/f|0,x[F]%=f)}return x.reverse()}return function(w,A,f,v,F){var x,C,P,B,O,T,z,W,M=w.indexOf("."),ie=s,Y=a;for(M>=0&&(B=m,m=0,w=w.replace(".",""),W=new k(A),T=W.pow(w.length-M),m=B,W.c=S(co(pr(T.c),T.e,"0"),10,f,h),W.e=W.c.length),z=S(w,A,f,F?(x=I,h):(x=h,I)),P=B=z.length;z[--B]==0;z.pop());if(!z[0])return x.charAt(0);if(M<0?--P:(T.c=z,T.e=P,T.s=v,T=t(T,W,ie,Y,f),z=T.c,O=T.r,P=T.e),C=P+ie+1,M=z[C],B=f/2,O=O||C<0||z[C+1]!=null,O=Y<4?(M!=null||O)&&(Y==0||Y==(T.s<0?3:2)):M>B||M==B&&(Y==4||O||Y==6&&z[C-1]&1||Y==(T.s<0?8:7)),C<1||!z[0])w=O?co(x.charAt(1),-ie,x.charAt(0)):x.charAt(0);else{if(z.length=C,O)for(--f;++z[--C]>f;)z[C]=0,C||(++P,z=[1].concat(z));for(B=z.length;!z[--B];);for(M=0,w="";M<=B;w+=x.charAt(z[M++]));w=co(w,P,x.charAt(0))}return w}})(),t=(function(){function h(A,f,v){var F,x,C,P,B=0,O=A.length,T=f%Mo,z=f/Mo|0;for(A=A.slice();O--;)C=A[O]%Mo,P=A[O]/Mo|0,F=z*C+P*T,x=T*C+F%Mo*Mo+B,B=(x/v|0)+(F/Mo|0)+z*P,A[O]=x%v;return B&&(A=[B].concat(A)),A}function S(A,f,v,F){var x,C;if(v!=F)C=v>F?1:-1;else for(x=C=0;x<v;x++)if(A[x]!=f[x]){C=A[x]>f[x]?1:-1;break}return C}function w(A,f,v,F){for(var x=0;v--;)A[v]-=x,x=A[v]<f[v]?1:0,A[v]=x*F+A[v]-f[v];for(;!A[0]&&A.length>1;A.splice(0,1));}return function(A,f,v,F,x){var C,P,B,O,T,z,W,M,ie,Y,se,xe,Pe,Ye,te,Ie,Te,pe=A.s==f.s?1:-1,Be=A.c,me=f.c;if(!Be||!Be[0]||!me||!me[0])return new k(!A.s||!f.s||(Be?me&&Be[0]==me[0]:!me)?NaN:Be&&Be[0]==0||!me?pe*0:pe/0);for(M=new k(pe),ie=M.c=[],P=A.e-f.e,pe=v+P+1,x||(x=Pr,P=gr(A.e/He)-gr(f.e/He),pe=pe/He|0),B=0;me[B]==(Be[B]||0);B++);if(me[B]>(Be[B]||0)&&P--,pe<0)ie.push(1),O=!0;else{for(Ye=Be.length,Ie=me.length,B=0,pe+=2,T=dr(x/(me[0]+1)),T>1&&(me=h(me,T,x),Be=h(Be,T,x),Ie=me.length,Ye=Be.length),Pe=Ie,Y=Be.slice(0,Ie),se=Y.length;se<Ie;Y[se++]=0);Te=me.slice(),Te=[0].concat(Te),te=me[0],me[1]>=x/2&&te++;do{if(T=0,C=S(me,Y,Ie,se),C<0){if(xe=Y[0],Ie!=se&&(xe=xe*x+(Y[1]||0)),T=dr(xe/te),T>1)for(T>=x&&(T=x-1),z=h(me,T,x),W=z.length,se=Y.length;S(z,Y,W,se)==1;)T--,w(z,Ie<W?Te:me,W,x),W=z.length,C=1;else T==0&&(C=T=1),z=me.slice(),W=z.length;if(W<se&&(z=[0].concat(z)),w(Y,z,se,x),se=Y.length,C==-1)for(;S(me,Y,Ie,se)<1;)T++,w(Y,Ie<se?Te:me,se,x),se=Y.length}else C===0&&(T++,Y=[0]);ie[B++]=T,Y[0]?Y[se++]=Be[Pe]||0:(Y=[Be[Pe]],se=1)}while((Pe++<Ye||Y[0]!=null)&&pe--);O=Y[0]!=null,ie[0]||ie.splice(0,1)}if(x==Pr){for(B=1,pe=ie[0];pe>=10;pe/=10,B++);L(M,v+(M.e=B+P*He-1)+1,F,O)}else M.e=P,M.r=+O;return M}})();function D(h,S,w,A){var f,v,F,x,C;if(w==null?w=a:Ot(w,0,8),!h.c)return h.toString();if(f=h.c[0],F=h.e,S==null)C=pr(h.c),C=A==1||A==2&&(F<=u||F>=c)?ic(C,F):co(C,F,"0");else if(h=L(new k(h),S,w),v=h.e,C=pr(h.c),x=C.length,A==1||A==2&&(S<=v||v<=u)){for(;x<S;C+="0",x++);C=ic(C,v)}else if(S-=F+(A===2&&v>F),C=co(C,v,"0"),v+1>x){if(--S>0)for(C+=".";S--;C+="0");}else if(S+=v-x,S>0)for(v+1==x&&(C+=".");S--;C+="0");return h.s<0&&f?"-"+C:C}function N(h,S){for(var w,A,f=1,v=new k(h[0]);f<h.length;f++)A=new k(h[f]),(!A.s||(w=ii(v,A))===S||w===0&&v.s===S)&&(v=A);return v}function $(h,S,w){for(var A=1,f=S.length;!S[--f];S.pop());for(f=S[0];f>=10;f/=10,A++);return(w=A+w*He-1)>d?h.c=h.e=null:w<l?h.c=[h.e=0]:(h.e=w,h.c=S),h}r=(function(){var h=/^(-?)0([xbo])(?=\w[\w.]*$)/i,S=/^([^.]+)\.$/,w=/^\.([^.]+)$/,A=/^-?(Infinity|NaN)$/,f=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(v,F,x,C){var P,B=x?F:F.replace(f,"");if(A.test(B))v.s=isNaN(B)?null:B<0?-1:1;else{if(!x&&(B=B.replace(h,function(O,T,z){return P=(z=z.toLowerCase())=="x"?16:z=="b"?2:8,!C||C==P?T:O}),C&&(P=C,B=B.replace(S,"$1").replace(w,"0.$1")),F!=B))return new k(B,P);if(k.DEBUG)throw Error(Un+"Not a"+(C?" base "+C:"")+" number: "+F);v.s=null}v.c=v.e=null}})();function L(h,S,w,A){var f,v,F,x,C,P,B,O=h.c,T=bm;if(O){e:{for(f=1,x=O[0];x>=10;x/=10,f++);if(v=S-f,v<0)v+=He,F=S,C=O[P=0],B=dr(C/T[f-F-1]%10);else if(P=xm((v+1)/He),P>=O.length)if(A){for(;O.length<=P;O.push(0));C=B=0,f=1,v%=He,F=v-He+1}else break e;else{for(C=x=O[P],f=1;x>=10;x/=10,f++);v%=He,F=v-He+f,B=F<0?0:dr(C/T[f-F-1]%10)}if(A=A||S<0||O[P+1]!=null||(F<0?C:C%T[f-F-1]),A=w<4?(B||A)&&(w==0||w==(h.s<0?3:2)):B>5||B==5&&(w==4||A||w==6&&(v>0?F>0?C/T[f-F]:0:O[P-1])%10&1||w==(h.s<0?8:7)),S<1||!O[0])return O.length=0,A?(S-=h.e+1,O[0]=T[(He-S%He)%He],h.e=-S||0):O[0]=h.e=0,h;if(v==0?(O.length=P,x=1,P--):(O.length=P+1,x=T[He-v],O[P]=F>0?dr(C/T[f-F]%T[F])*x:0),A)for(;;)if(P==0){for(v=1,F=O[0];F>=10;F/=10,v++);for(F=O[0]+=x,x=1;F>=10;F/=10,x++);v!=x&&(h.e++,O[0]==Pr&&(O[0]=1));break}else{if(O[P]+=x,O[P]!=Pr)break;O[P--]=0,x=1}for(v=O.length;O[--v]===0;O.pop());}h.e>d?h.c=h.e=null:h.e<l&&(h.c=[h.e=0])}return h}function R(h){var S,w=h.e;return w===null?h.toString():(S=pr(h.c),S=w<=u||w>=c?ic(S,w):co(S,w,"0"),h.s<0?"-"+S:S)}return o.absoluteValue=o.abs=function(){var h=new k(this);return h.s<0&&(h.s=1),h},o.comparedTo=function(h,S){return ii(this,new k(h,S))},o.decimalPlaces=o.dp=function(h,S){var w,A,f,v=this;if(h!=null)return Ot(h,0,ln),S==null?S=a:Ot(S,0,8),L(new k(v),h+v.e+1,S);if(!(w=v.c))return null;if(A=((f=w.length-1)-gr(this.e/He))*He,f=w[f])for(;f%10==0;f/=10,A--);return A<0&&(A=0),A},o.dividedBy=o.div=function(h,S){return t(this,new k(h,S),s,a)},o.dividedToIntegerBy=o.idiv=function(h,S){return t(this,new k(h,S),0,1)},o.exponentiatedBy=o.pow=function(h,S){var w,A,f,v,F,x,C,P,B,O=this;if(h=new k(h),h.c&&!h.isInteger())throw Error(Un+"Exponent not an integer: "+R(h));if(S!=null&&(S=new k(S)),x=h.e>14,!O.c||!O.c[0]||O.c[0]==1&&!O.e&&O.c.length==1||!h.c||!h.c[0])return B=new k(Math.pow(+R(O),x?h.s*(2-oc(h)):+R(h))),S?B.mod(S):B;if(C=h.s<0,S){if(S.c?!S.c[0]:!S.s)return new k(NaN);A=!C&&O.isInteger()&&S.isInteger(),A&&(O=O.mod(S))}else{if(h.e>9&&(O.e>0||O.e<-1||(O.e==0?O.c[0]>1||x&&O.c[1]>=24e7:O.c[0]<8e13||x&&O.c[0]<=9999975e7)))return v=O.s<0&&oc(h)?-0:0,O.e>-1&&(v=1/v),new k(C?1/v:v);m&&(v=xm(m/He+2))}for(x?(w=new k(.5),C&&(h.s=1),P=oc(h)):(f=Math.abs(+R(h)),P=f%2),B=new k(i);;){if(P){if(B=B.times(O),!B.c)break;v?B.c.length>v&&(B.c.length=v):A&&(B=B.mod(S))}if(f){if(f=dr(f/2),f===0)break;P=f%2}else if(h=h.times(w),L(h,h.e+1,1),h.e>14)P=oc(h);else{if(f=+R(h),f===0)break;P=f%2}O=O.times(O),v?O.c&&O.c.length>v&&(O.c.length=v):A&&(O=O.mod(S))}return A?B:(C&&(B=i.div(B)),S?B.mod(S):v?L(B,m,a,F):B)},o.integerValue=function(h){var S=new k(this);return h==null?h=a:Ot(h,0,8),L(S,S.e+1,h)},o.isEqualTo=o.eq=function(h,S){return ii(this,new k(h,S))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(h,S){return ii(this,new k(h,S))>0},o.isGreaterThanOrEqualTo=o.gte=function(h,S){return(S=ii(this,new k(h,S)))===1||S===0},o.isInteger=function(){return!!this.c&&gr(this.e/He)>this.c.length-2},o.isLessThan=o.lt=function(h,S){return ii(this,new k(h,S))<0},o.isLessThanOrEqualTo=o.lte=function(h,S){return(S=ii(this,new k(h,S)))===-1||S===0},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&this.c[0]==0},o.minus=function(h,S){var w,A,f,v,F=this,x=F.s;if(h=new k(h,S),S=h.s,!x||!S)return new k(NaN);if(x!=S)return h.s=-S,F.plus(h);var C=F.e/He,P=h.e/He,B=F.c,O=h.c;if(!C||!P){if(!B||!O)return B?(h.s=-S,h):new k(O?F:NaN);if(!B[0]||!O[0])return O[0]?(h.s=-S,h):new k(B[0]?F:a==3?-0:0)}if(C=gr(C),P=gr(P),B=B.slice(),x=C-P){for((v=x<0)?(x=-x,f=B):(P=C,f=O),f.reverse(),S=x;S--;f.push(0));f.reverse()}else for(A=(v=(x=B.length)<(S=O.length))?x:S,x=S=0;S<A;S++)if(B[S]!=O[S]){v=B[S]<O[S];break}if(v&&(f=B,B=O,O=f,h.s=-h.s),S=(A=O.length)-(w=B.length),S>0)for(;S--;B[w++]=0);for(S=Pr-1;A>x;){if(B[--A]<O[A]){for(w=A;w&&!B[--w];B[w]=S);--B[w],B[A]+=Pr}B[A]-=O[A]}for(;B[0]==0;B.splice(0,1),--P);return B[0]?$(h,B,P):(h.s=a==3?-1:1,h.c=[h.e=0],h)},o.modulo=o.mod=function(h,S){var w,A,f=this;return h=new k(h,S),!f.c||!h.s||h.c&&!h.c[0]?new k(NaN):!h.c||f.c&&!f.c[0]?new k(f):(p==9?(A=h.s,h.s=1,w=t(f,h,0,3),h.s=A,w.s*=A):w=t(f,h,0,p),h=f.minus(w.times(h)),!h.c[0]&&p==1&&(h.s=f.s),h)},o.multipliedBy=o.times=function(h,S){var w,A,f,v,F,x,C,P,B,O,T,z,W,M,ie,Y=this,se=Y.c,xe=(h=new k(h,S)).c;if(!se||!xe||!se[0]||!xe[0])return!Y.s||!h.s||se&&!se[0]&&!xe||xe&&!xe[0]&&!se?h.c=h.e=h.s=null:(h.s*=Y.s,!se||!xe?h.c=h.e=null:(h.c=[0],h.e=0)),h;for(A=gr(Y.e/He)+gr(h.e/He),h.s*=Y.s,C=se.length,O=xe.length,C<O&&(W=se,se=xe,xe=W,f=C,C=O,O=f),f=C+O,W=[];f--;W.push(0));for(M=Pr,ie=Mo,f=O;--f>=0;){for(w=0,T=xe[f]%ie,z=xe[f]/ie|0,F=C,v=f+F;v>f;)P=se[--F]%ie,B=se[F]/ie|0,x=z*P+B*T,P=T*P+x%ie*ie+W[v]+w,w=(P/M|0)+(x/ie|0)+z*B,W[v--]=P%M;W[v]=w}return w?++A:W.splice(0,1),$(h,W,A)},o.negated=function(){var h=new k(this);return h.s=-h.s||null,h},o.plus=function(h,S){var w,A=this,f=A.s;if(h=new k(h,S),S=h.s,!f||!S)return new k(NaN);if(f!=S)return h.s=-S,A.minus(h);var v=A.e/He,F=h.e/He,x=A.c,C=h.c;if(!v||!F){if(!x||!C)return new k(f/0);if(!x[0]||!C[0])return C[0]?h:new k(x[0]?A:f*0)}if(v=gr(v),F=gr(F),x=x.slice(),f=v-F){for(f>0?(F=v,w=C):(f=-f,w=x),w.reverse();f--;w.push(0));w.reverse()}for(f=x.length,S=C.length,f-S<0&&(w=C,C=x,x=w,S=f),f=0;S;)f=(x[--S]=x[S]+C[S]+f)/Pr|0,x[S]=Pr===x[S]?0:x[S]%Pr;return f&&(x=[f].concat(x),++F),$(h,x,F)},o.precision=o.sd=function(h,S){var w,A,f,v=this;if(h!=null&&h!==!!h)return Ot(h,1,ln),S==null?S=a:Ot(S,0,8),L(new k(v),h,S);if(!(w=v.c))return null;if(f=w.length-1,A=f*He+1,f=w[f]){for(;f%10==0;f/=10,A--);for(f=w[0];f>=10;f/=10,A++);}return h&&v.e+1>A&&(A=v.e+1),A},o.shiftedBy=function(h){return Ot(h,-ym,ym),this.times("1e"+h)},o.squareRoot=o.sqrt=function(){var h,S,w,A,f,v=this,F=v.c,x=v.s,C=v.e,P=s+4,B=new k("0.5");if(x!==1||!F||!F[0])return new k(!x||x<0&&(!F||F[0])?NaN:F?v:1/0);if(x=Math.sqrt(+R(v)),x==0||x==1/0?(S=pr(F),(S.length+C)%2==0&&(S+="0"),x=Math.sqrt(+S),C=gr((C+1)/2)-(C<0||C%2),x==1/0?S="5e"+C:(S=x.toExponential(),S=S.slice(0,S.indexOf("e")+1)+C),w=new k(S)):w=new k(x+""),w.c[0]){for(C=w.e,x=C+P,x<3&&(x=0);;)if(f=w,w=B.times(f.plus(t(v,f,P,1))),pr(f.c).slice(0,x)===(S=pr(w.c)).slice(0,x))if(w.e<C&&--x,S=S.slice(x-3,x+1),S=="9999"||!A&&S=="4999"){if(!A&&(L(f,f.e+s+2,0),f.times(f).eq(v))){w=f;break}P+=4,x+=4,A=1}else{(!+S||!+S.slice(1)&&S.charAt(0)=="5")&&(L(w,w.e+s+2,1),h=!w.times(w).eq(v));break}}return L(w,w.e+s+1,a,h)},o.toExponential=function(h,S){return h!=null&&(Ot(h,0,ln),h++),D(this,h,S,1)},o.toFixed=function(h,S){return h!=null&&(Ot(h,0,ln),h=h+this.e+1),D(this,h,S)},o.toFormat=function(h,S,w){var A,f=this;if(w==null)h!=null&&S&&typeof S=="object"?(w=S,S=null):h&&typeof h=="object"?(w=h,h=S=null):w=b;else if(typeof w!="object")throw Error(Un+"Argument not an object: "+w);if(A=f.toFixed(h,S),f.c){var v,F=A.split("."),x=+w.groupSize,C=+w.secondaryGroupSize,P=w.groupSeparator||"",B=F[0],O=F[1],T=f.s<0,z=T?B.slice(1):B,W=z.length;if(C&&(v=x,x=C,C=v,W-=v),x>0&&W>0){for(v=W%x||x,B=z.substr(0,v);v<W;v+=x)B+=P+z.substr(v,x);C>0&&(B+=P+z.slice(v)),T&&(B="-"+B)}A=O?B+(w.decimalSeparator||"")+((C=+w.fractionGroupSize)?O.replace(new RegExp("\\d{"+C+"}\\B","g"),"$&"+(w.fractionGroupSeparator||"")):O):B}return(w.prefix||"")+A+(w.suffix||"")},o.toFraction=function(h){var S,w,A,f,v,F,x,C,P,B,O,T,z=this,W=z.c;if(h!=null&&(x=new k(h),!x.isInteger()&&(x.c||x.s!==1)||x.lt(i)))throw Error(Un+"Argument "+(x.isInteger()?"out of range: ":"not an integer: ")+R(x));if(!W)return new k(z);for(S=new k(i),P=w=new k(i),A=C=new k(i),T=pr(W),v=S.e=T.length-z.e-1,S.c[0]=bm[(F=v%He)<0?He+F:F],h=!h||x.comparedTo(S)>0?v>0?S:P:x,F=d,d=1/0,x=new k(T),C.c[0]=0;B=t(x,S,0,1),f=w.plus(B.times(A)),f.comparedTo(h)!=1;)w=A,A=f,P=C.plus(B.times(f=P)),C=f,S=x.minus(B.times(f=S)),x=f;return f=t(h.minus(w),A,0,1),C=C.plus(f.times(P)),w=w.plus(f.times(A)),C.s=P.s=z.s,v=v*2,O=t(P,A,v,a).minus(z).abs().comparedTo(t(C,w,v,a).minus(z).abs())<1?[P,A]:[C,w],d=F,O},o.toNumber=function(){return+R(this)},o.toPrecision=function(h,S){return h!=null&&Ot(h,1,ln),D(this,h,S,2)},o.toString=function(h){var S,w=this,A=w.s,f=w.e;return f===null?A?(S="Infinity",A<0&&(S="-"+S)):S="NaN":(h==null?S=f<=u||f>=c?ic(pr(w.c),f):co(pr(w.c),f,"0"):h===10&&E?(w=L(new k(w),s+f+1,a),S=co(pr(w.c),w.e,"0")):(Ot(h,2,I.length,"Base"),S=n(co(pr(w.c),f,"0"),10,h,A,!0)),A<0&&w.c[0]&&(S="-"+S)),S},o.valueOf=o.toJSON=function(){return R(this)},o._isBigNumber=!0,o[Symbol.toStringTag]="BigNumber",o[Symbol.for("nodejs.util.inspect.custom")]=o.valueOf,e!=null&&k.set(e),k}function gr(e){var t=e|0;return e>0||e===t?t:t-1}function pr(e){for(var t,n,r=1,o=e.length,i=e[0]+"";r<o;){for(t=e[r++]+"",n=He-t.length;n--;t="0"+t);i+=t}for(o=i.length;i.charCodeAt(--o)===48;);return i.slice(0,o+1||1)}function ii(e,t){var n,r,o=e.c,i=t.c,s=e.s,a=t.s,u=e.e,c=t.e;if(!s||!a)return null;if(n=o&&!o[0],r=i&&!i[0],n||r)return n?r?0:-a:s;if(s!=a)return s;if(n=s<0,r=u==c,!o||!i)return r?0:!o^n?1:-1;if(!r)return u>c^n?1:-1;for(a=(u=o.length)<(c=i.length)?u:c,s=0;s<a;s++)if(o[s]!=i[s])return o[s]>i[s]^n?1:-1;return u==c?0:u>c^n?1:-1}function Ot(e,t,n,r){if(e<t||e>n||e!==dr(e))throw Error(Un+(r||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function oc(e){var t=e.c.length-1;return gr(e.e/He)==t&&e.c[t]%2!=0}function ic(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function co(e,t,n){var r,o;if(t<0){for(o=n+".";++t;o+=n);e=o+e}else if(r=e.length,++t>r){for(o=n,t-=r;--t;o+=n);e+=o}else t<r&&(e=e.slice(0,t)+"."+e.slice(t));return e}var jz=_v(),$v=jz;var Hz=24,na=32,Wz=()=>typeof globalThis<"u"&&globalThis.crypto&&typeof globalThis.crypto.getRandomValues=="function"?()=>{let e=new Uint32Array(1);return globalThis.crypto.getRandomValues(e),e[0]/4294967296}:Math.random,wm=Wz(),Sm=(e=4,t=wm)=>{let n="";for(;n.length<e;)n=n+Math.floor(t()*36).toString(36);return n};function Vz(e){let t=new $v(0);for(let n of e.values())t=t.multipliedBy(256).plus(n);return t}var jv=(e="")=>{let t=new TextEncoder;return Vz(Nv(t.encode(e))).toString(36).slice(1)},Uv=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),Gz=e=>Uv[Math.floor(e()*Uv.length)],qz=({globalObj:e=typeof global<"u"?global:typeof window<"u"?window:{},random:t=wm}={})=>{let n=Object.keys(e).toString(),r=n.length?n+Sm(na,t):Sm(na,t);return jv(r).substring(0,na)},Yz=e=>()=>e++,Kz=476782367,Hv=({random:e=wm,counter:t=Yz(Math.floor(e()*Kz)),length:n=Hz,fingerprint:r=qz({random:e})}={})=>{if(n>na)throw new Error(`Length must be between 2 and ${na}. Received: ${n}`);return function(){let i=Gz(e),s=Date.now().toString(36),a=t().toString(36),u=Sm(n,e),c=`${s+u+a+r}`;return`${i+jv(c).substring(1,n)}`}},Bo=Xz(Hv);function Xz(e){let t;return()=>(t||(t=e()),t())}var Zz=Ka(Gv());hn();Ne();var sc=/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g;function eN(e){return e.replace(/\*\*/g,"").replace(/\*/g,"").replace(/__/g,"").replace(/_/g," ").trim()}function vm(e,t){let n=[],r=e.split(`
15
+ `);for(let s=0;s<r.length;s++){let a=eN(r[s]),u=sc.exec(a);if(u){let[,c,l,,d]=u,g=tN(l),p=nN(r,s+1),m={id:Bo(),reviewId:t,type:c.trim(),severity:g,title:d.trim(),description:p.description,file:p.file,lineNumber:p.lineNumber,property:p.property,currentValue:p.currentValue,suggestedValue:p.suggestedValue,suggestedCode:p.suggestedCode,suggestedFix:p.suggestedFix,fixTarget:p.fixTarget,fixRequired:p.fixRequired,status:"pending",selectedForFix:!1,createdAt:new Date};n.push(m)}sc.lastIndex=0}return n.map(s=>{let a=Ws(s);return a.dismissed?(y.debug(`[parseIssues] Auto-dismissed: ${s.title} - ${a.dismissReason}`),{...s,dismissed:!0,dismissReason:a.dismissReason,dismissedBy:a.dismissedBy,dismissedAt:new Date}):s})}function tN(e){let t=e.toLowerCase().trim();return t.includes("critical")||t.includes("high")?"critical":t.includes("major")||t.includes("medium")?"major":"minor"}function nN(e,t){let n={description:"",file:void 0,lineNumber:void 0,property:void 0,currentValue:void 0,suggestedValue:void 0,suggestedCode:void 0,suggestedFix:void 0,fixTarget:void 0,fixRequired:void 0},r=[];for(let o=t;o<e.length;o++){let i=e[o].trim();if(!i||sc.test(i)){sc.lastIndex=0;break}if(i.startsWith("Expected:"))n.suggestedValue=i.replace("Expected:","").trim();else if(i.startsWith("Actual:")||i.startsWith("Current:"))n.currentValue=i.replace(/^(Actual|Current):/,"").trim();else if(i.startsWith("File:")){let s=i.replace("File:","").trim(),a=s.match(/^(.+?):(\d+)$/);a?(n.file=a[1],n.lineNumber=parseInt(a[2],10)):n.file=s}else if(i.startsWith("Property:"))n.property=i.replace("Property:","").trim();else if(i.startsWith("FixTarget:")){let s=i.replace("FixTarget:","").trim().toLowerCase();(s==="css"||s==="component")&&(n.fixTarget=s)}else if(i.startsWith("FixRequired:")){let s=i.replace("FixRequired:","").trim().toLowerCase();n.fixRequired=s==="true"}else if(i.startsWith("Fix:"))n.suggestedFix=i.replace("Fix:","").trim();else if(i.startsWith("```")){let s=[];for(o++;o<e.length&&!e[o].trim().startsWith("```");)s.push(e[o]),o++;n.suggestedCode=s.join(`
16
+ `)}else r.push(i)}return n.description=r.join(" ").trim(),n}Ne();var ra=null,qv=0,rN=3e4;async function oN(){let e=Date.now();if(ra&&e-qv<rN)return ra;try{let t=await fetch("/index.json");if(!t.ok)throw new Error(`Failed to fetch index.json: ${t.status}`);let n=await t.json();return ra=n.entries||n.stories||{},qv=e,y.debug("[storyFilePaths] Fetched index.json, entries:",Object.keys(ra).length),ra}catch(t){throw y.error("[storyFilePaths] Error fetching index.json:",t),t}}async function oa(e){try{let n=(await oN())[e];if(!n?.importPath)return y.warn("[storyFilePaths] No importPath found for story:",e),null;let r=n.importPath;y.debug("[storyFilePaths] Found importPath:",r);let o=r.replace(/^\.\//,""),i;n.componentPath?(i=n.componentPath.replace(/^\.\//,""),y.debug("[storyFilePaths] Using Storybook componentPath:",i)):(i=`${o.replace(/\.stories\.tsx$/,"").replace(/\.stories\.ts$/,"").replace(/\.stories\.jsx$/,"").replace(/\.stories\.js$/,"")}.tsx`,y.debug("[storyFilePaths] Derived componentFile:",i));let s=i.replace(/\.tsx$/,".css").replace(/\.ts$/,".css").replace(/\.jsx$/,".css").replace(/\.js$/,".css"),a=i.substring(0,i.lastIndexOf("/")),u={storyFile:o,componentFile:i,cssFile:s,baseDir:a};return y.debug("[storyFilePaths] Final paths:",u),u}catch(t){return y.error("[storyFilePaths] Error getting file paths:",t),null}}function km(e,t){if(e==="css")return t.cssFile;if(e==="component")return t.componentFile;if(e==="story")return t.storyFile}function iN(e,t){let n=e.toLowerCase().trim();return["color","spacing","typography","dimension","border","shadow","layout","background","font","size","margin","padding"].some(i=>n.includes(i))?t.cssFile:t.componentFile}function Cm(e,t){let n=e.property?.toLowerCase()||"",r=e.domElement?.toLowerCase()||"",o=r.startsWith("svg"),i=r.startsWith("img"),s=n==="width"||n==="height",a=/\[(?:width|height)=/.test(r);return(o||i)&&s||a?(y.debug(`[storyFilePaths] \u{1F50D} INLINE ATTRIBUTE: domElement="${e.domElement}", property="${e.property}" \u2192 component file`),t.componentFile):iN(e.type,t)}hn();Ne();function sN(e){let t=(e.description||"").toLowerCase(),n=(e.title||"").toLowerCase(),r=`${t} ${n}`;return r.includes("inner icon")||r.includes("inner vector")?"inner-icon":r.includes("second icon")?"icon-2":r.includes("first icon")?"icon-1":r.includes("icon")||r.includes("vector")||r.includes("svg")?"icon":r.includes("button")?"button":r.includes("text")||r.includes("label")?"text":r.includes("container")||r.includes("wrapper")?"container":"other"}function aN(e){let t=(e.property||"").toLowerCase(),n=(e.description||"").toLowerCase();return t.includes("width")||t.includes("height")||t.includes("size")||t.includes("dimensions")?"dimensions":t.includes("padding")||t.includes("margin")||t.includes("gap")?"spacing":t.includes("color")||t.includes("background")||t.includes("fill")?"colors":t.includes("font")||t.includes("text")||t.includes("line-height")?"typography":t.includes("border")||t.includes("radius")?"border":n.includes("overall")||n.includes("visual fidelity")||n.includes("pixel similarity")||t.includes("overall")?"summary":"other"}function lN(e){let t=(e.property||"").toLowerCase(),n=(e.description||"").toLowerCase();return t.includes("overall")||t.includes("visual fidelity")||n.includes("pixel similarity score")||n.includes("primarily explained by")||n.includes("visual discrepancy")}function cN(e,t,n){let r={critical:3,major:2,minor:1},i=[...e].sort((c,l)=>(r[l.severity]||0)-(r[c.severity]||0))[0],s=e.length,a,u;if(t.includes("icon")&&n==="dimensions"){let c=e.map(d=>d.currentValue).filter(Boolean),l=e.map(d=>d.suggestedValue).filter(Boolean);a=`Icon sizing is incorrect (${s} related issues)`,u=`Icons are rendered at wrong dimensions. Current: ${c[0]||"10px"}, Expected: ${l[0]||"20px"}. This single CSS fix will resolve all ${s} icon dimension issues.`}else a=`${t} ${n} issues (${s} related)`,u=`${s} related ${n} issues for ${t}. ${i.description}`;return{...i,id:`merged-${t}-${n}-${i.id}`,title:a,description:u,currentValue:i.currentValue,suggestedValue:i.suggestedValue,mergedCount:s,mergedIssueIds:e.map(c=>c.id)}}function Tm(e){if(!e||e.length===0)return[];let t=e.filter(i=>!lN(i)),n=[],r=[];for(let i of t){let s=sN(i),a=aN(i);s.includes("icon")&&a==="dimensions"?n.push(i):r.push(i)}let o=[];return n.length>0&&(n.length===1?o.push(n[0]):o.push(cN(n,"icon","dimensions"))),o.push(...r),y.debug("[deduplicateIssues] Input:",e.length,"issues, Output:",o.length,"issues"),y.debug("[deduplicateIssues] Removed",e.length-t.length,"summary issues"),y.debug("[deduplicateIssues] Merged",n.length,"icon issues into",n.length>0?1:0),o}Ne();hn();var uN=[/Failed to fetch/i,/NetworkError/i,/network request failed/i,/load failed/i,/ERR_(NETWORK|INTERNET|CONNECTION|NAME_NOT_RESOLVED)/i,/timed out/i,/aborted/i],pN=[/credits?/i,/Rate limit/i,/Figma connection expired/i,/Map.*to Figma|Figma mapping required/i,/No project selected/i,/Not authenticated/i,/No story/i,/Monthly review limit/i,/Upgrade your plan/i];function Yv(e){let t=e instanceof Error?e.message:typeof e=="string"?e:"Review failed";return pN.some(n=>n.test(t))?t:uN.some(n=>n.test(t))?`Can't reach ${Et.NAME}. Check your internet connection and try again. If the dashboard URL is wrong, fix it in Settings.`:/Unauthorized|401/i.test(t)?"Your session expired. Sign out and back in from Settings to continue.":/Internal Server Error|5\d\d|server error/i.test(t)?`${Et.NAME}'s servers had a hiccup. Try the review again in a moment. If it keeps failing, send feedback.`:/parsing|SSE|stream|structured result|failed to receive/i.test(t)?"Review completed but the result was malformed. Try again, or send feedback if it keeps happening.":`Review failed: ${t}. Try again, or send feedback if this keeps happening.`}Ue();import{addons as Wi}from"storybook/manager-api";var Im="uireview/badge",ji={REVIEW_START:"uireview/review-start",REVIEW_COMPLETE:"uireview/review-complete",REVIEW_ERROR:"uireview/review-error"};function dN(e){return e.score<70?"status-value:error":e.score<90?"status-value:warning":"status-value:success"}function gN(e){let t=[`Score: ${e.score}`];return e.criticalCount>0&&t.push(`${e.criticalCount} critical`),e.majorCount>0&&t.push(`${e.majorCount} major`),e.minorCount>0&&t.push(`${e.minorCount} minor`),t.join(" \xB7 ")}function fN(e){return e.score>=90?`\u2713 Score ${e.score}`:e.score>=70?`\u26A0 Score ${e.score}`:`\u2717 Score ${e.score}`}function Hi(){try{let e=localStorage.getItem("uicopilot_feature_flags");return e?!!JSON.parse(e).enableReviewBadges:!1}catch{return!1}}function Qv(e){if(Hi())try{Wi.getChannel().emit(ji.REVIEW_START,{storyId:e})}catch{}}function jr(e,t){if(Hi())try{Wi.getChannel().emit(ji.REVIEW_COMPLETE,{storyId:e,summary:t})}catch{}}function Jv(e){if(Hi())try{Wi.getChannel().emit(ji.REVIEW_ERROR,{storyId:e})}catch{}}function Kv(e){try{typeof e.unset=="function"?e.unset():typeof e.set=="function"&&e.set([])}catch{}}var Xv=null;function Zv(e){if(Xv!==null)return;let t=Wi.getChannel(),n=o=>i=>{Hi()&&o(i)};t.on(ji.REVIEW_START,n(({storyId:o})=>{e.set([{value:"status-value:pending",typeId:Im,storyId:o,title:"Reviewing...",description:"AI review in progress"}])})),t.on(ji.REVIEW_COMPLETE,n(({storyId:o,summary:i})=>{e.set([{value:dN(i),typeId:Im,storyId:o,title:fN(i),description:gN(i)}])})),t.on(ji.REVIEW_ERROR,n(({storyId:o})=>{e.set([{value:"status-value:error",typeId:Im,storyId:o,title:"Review Failed",description:"An error occurred during review"}])}));let r=Hi();r||Kv(e),Xv=setInterval(()=>{let o=Hi();o!==r&&(r=o,o||Kv(e))},1500)}var mN="uireview/mapped",ek="uireview/mappings-updated";function tk(e){try{Wi.getChannel().emit(ek,{storyIds:e})}catch{}}function nk(e){Wi.getChannel().on(ek,({storyIds:n})=>{n.length&&e.set(n.map(r=>({value:"status-value:success",typeId:mN,storyId:r,title:"\u2713 Linked to Figma",description:"Story has a Figma mapping"})))})}var Fm=G(),Em=180;function Do(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object"){let t=e;if("value"in t&&typeof t.value=="string")return t.value;if("top"in t||"left"in t){let n=[t.top,t.right,t.bottom,t.left].filter(Boolean);if(n.length>0)return n.join(" ")}return JSON.stringify(e)}return String(e)}var Am=()=>{let{isReviewing:e,reviewError:t,reviewResults:n,showReviewMenu:r,severityFilter:o,showStreamingPanel:i,streamingPanelCollapsed:s,streamingMessages:a,streamingProgress:u,streamingStatus:c,selectedModels:l,setIsReviewing:d,setReviewingStoryId:g,setReviewError:p,setReviewResults:m,setShowReviewMenu:b,setSeverityFilter:I,setShowStreamingPanel:E,setStreamingPanelCollapsed:k,addStreamingMessage:D,updateStreamingMessage:N,clearStreamingMessages:$,setStreamingProgress:L,setStreamingStatus:R,setFullPrompt:h,setFullResponse:S,setFigmaImageUrl:w,storybookImageUrl:A,setStorybookImageUrl:f,setFigmaDimensions:v,setMultiModelResults:F,updateMultiModelStreamingMessages:x,setModelCompleted:C,setActiveModelId:P,resetReview:B,addReview:O,setReviewDetailTab:T,includeTextComparison:z,usePromptCache:W,setApplyFixesResult:M,featureFlags:ie,roleOverride:Y}=ue(),{sessionToken:se,usageData:xe,setUsageData:Pe}=Se(),{selectedProjectId:Ye}=Xe(),{currentStoryId:te,currentStoryName:Ie}=tt(),Te=ac(xe);Te.current=xe;let pe=ac(null),Be=ac(null),me=ac({}),Ze=ia((ae,Z)=>{D({role:ae,content:Z})},[D]),mt=ia((ae,Z)=>{L(ae),R(Z)},[L,R]),bn=ia(async ae=>{let{isIteration:Z=!1,parentReviewId:ge=null}=ae||{};if(!se)throw new Error("Not authenticated");if(!Ye)throw new Error("No project selected");if(!te||!Ie)throw new Error("No story is currently selected in Storybook");if(e){y.debug("[useAIReview] Review already in progress, ignoring duplicate request");return}let Tt=Date.now();try{d(!0),g(te),p(null),m(null),T("issues"),M(null),te&&ie.enableReviewBadges&&Qv(te),Be.current&&clearTimeout(Be.current),Be.current=setTimeout(()=>{y.debug(`[useAIReview] Auto-stopping review after ${Em}s timeout`),pe.current&&pe.current.abort(),D({role:"system",content:`Review auto-stopped after ${Em} seconds timeout.`})},Em*1e3),h(""),S(""),E(!0),k(!1),$(),mt(0,"Starting review..."),mt(5,"Refreshing component preview..."),y.debug("[Review] Forcing iframe reload for fresh styles..."),await ec(),y.debug("[Review] Iframe reloaded, styles should be fresh"),mt(20,"Capturing screenshot & extracting styles..."),y.debug("[Review] Starting parallel data collection...");let[et,_,j]=await Promise.all([Jl({sessionToken:se||void 0}),Promise.resolve(ea()),Promise.resolve(um())]);if(et&&et!==A&&(f(et),y.debug("[Review] Storybook screenshot captured and set")),!_)throw new Error("Failed to extract styles from component");let{computed:H,declared:X,markup:re,textElementStyles:Oe,nestedElementStyles:or}=_;j?y.debug("[Review] DOM tree extracted:",{selector:j.selector,childrenCount:j.children.length}):(y.error("[Review] DOM tree extraction FAILED - domTree is null"),y.error("[Review] This will cause AI to use comparison table instead of tree comparison")),mt(50,"Preparing metadata..."),y.debug("[Review] Current story:",{id:te,name:Ie});let wt=ht.getState().currentMapping?.figmaNodeId??null,Sr=ht.getState().figmaImageUrl;if(wt&&(y.debug("[Review] Using Figma node ID from store:",wt),Sr&&(mt(65,"Using existing Figma design..."),y.debug("[Review] Reusing already-loaded Figma image"))),!wt)try{let Ke=await fetch(`${Fm}/api/mappings?projectId=${Ye}&storyId=${te}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${se}`}});if(Ke.ok){let Nt=await Ke.json();Nt.mapping?.figmaNodeId?(wt=Nt.mapping.figmaNodeId,y.debug("[Review] Found Figma node ID from API:",wt)):y.debug("[Review] No mapping found for story:",te)}else y.debug("[Review] Failed to fetch mapping:",Ke.status)}catch(Ke){y.error("[Review] Error fetching mapping:",Ke)}if(wt&&!Sr){mt(65,"Fetching Figma design...");try{let Ke=await fetch(`${Fm}/api/figma/frames?projectId=${Ye}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${se}`}});if(Ke.ok){let jt=(await Ke.json()).thumbnails?.[wt];jt?(w(jt),y.debug("[Review] Figma thumbnail fetched and displayed:",jt)):y.warn("[Review] No thumbnail found for node:",wt)}else y.warn("[Review] Failed to fetch Figma frames:",Ke.status)}catch(Ke){y.error("[Review] Error fetching Figma frames:",Ke)}}if(!wt)throw new Error('Figma mapping required. Please link this story to a Figma frame using the "Map to Figma" button before reviewing.');mt(80,"AI is analyzing your component..."),y.debug("[Review] Sending to streaming API...");let bo={projectId:Ye,storyId:te,storyName:Ie,storybookScreenshot:et,computedStyles:H,declaredStyles:X,textElementStyles:Oe,nestedElementStyles:or,componentMarkup:re,domTree:j,figmaNodeId:wt,figmaImageUrl:Sr||void 0,aiModels:l,includeTextComparison:z,usePromptCache:W,parentReviewId:Z?ge:void 0,isIteration:Z};y.debug("[Review] Request payload:",{...bo,storybookScreenshot:et?`${et.substring(0,50)}...`:null,domTree:j?{selector:j.selector,childrenCount:j.children.length}:null}),pe.current=new AbortController;let $t=await fetch(`${Fm}/api/review/stream`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${se}`,...tc(Y)},body:JSON.stringify(bo),signal:pe.current.signal});if(y.debug("[Review] Response status:",$t.status,$t.statusText),!$t.ok){let Ke=await $t.json();if(y.error("[Review] API error response:",Ke),$t.status===429){let Nt=Ke.retryAfter||60;throw new Error(`Rate limit exceeded. Please wait ${Nt} seconds before trying again.`)}if($t.status===402){if(Ke.code==="INSUFFICIENT_CREDITS"){let Nt=Ke.details?.required??1,jt=Ke.details?.balance??0;throw new Error(`Not enough credits. This review requires ${Nt} credit(s) but you have ${jt}. Visit Settings to add more.`)}throw Ke.code==="SUBSCRIPTION_LIMIT_EXCEEDED"?new Error(Ke.message||"Monthly review limit reached. Upgrade your plan to continue."):new Error(Ke.message||"Payment required")}throw $t.status===401&&Ke.code==="FIGMA_AUTH_EXPIRED"?new Error("Figma connection expired. Open Settings \u2192 Disconnect \u2192 Reconnect Figma to continue."):new Error(Ke.error||Ke.message||"Review request failed")}let Xr=$t.body?.getReader(),wr=new TextDecoder,ku="",So="",_e=null,Cu=null,xy=l.length>1,Xo={},fs={},d9={};if(!Xr)throw new Error("Response body is not readable");let yy=ht.getState().streamingMessages.length;for(Ze("assistant","");;){let{done:Ke,value:Nt}=await Xr.read();if(Ke)break;ku+=wr.decode(Nt,{stream:!0});let jt=ku.split(`
17
+ `);ku=jt.pop()||"";for(let Yn of jt)if(Yn.startsWith("data: ")){let gn=Yn.slice(6);if(gn==="[DONE]")continue;try{let oe=JSON.parse(gn);if(oe.type!=="text"&&oe.type!=="content"&&y.debug("[Review] SSE Event received:",oe.type),oe.type==="prompt")oe.prompt&&(h(oe.prompt),y.debug("[Review] Prompt received early"));else if(oe.type==="model_started")y.debug("[Review] Model started:",oe.modelId),Xo[oe.modelId]||(Xo[oe.modelId]="",fs[oe.modelId]=[{role:"assistant",content:""}]);else if(oe.type==="text"||oe.type==="content")if(xy&&oe.modelId){Xo[oe.modelId]||(Xo[oe.modelId]="",fs[oe.modelId]=[{role:"assistant",content:""}]),Xo[oe.modelId]+=oe.content,fs[oe.modelId][0].content=Xo[oe.modelId],x(oe.modelId,fs[oe.modelId]);let Kt=Object.entries(Xo).map(([fn,st])=>`[${fn}]
18
+ ${st}`).join(`
19
19
 
20
20
  ---
21
21
 
22
- `);O(uy,Qt)}else yo+=oe.content,O(uy,yo);else if(oe.type==="model_completed")y.debug("[Review] Model completed:",oe.modelId,oe.complianceScore),I(oe.modelId);else if(oe.type==="figma_image")oe.url&&(w(oe.url),y.debug("[Review] Figma image URL received:",oe.url));else if(oe.type==="figma_dimensions")oe.width&&oe.height&&(k({width:oe.width,height:oe.height}),y.debug("[Review] Figma dimensions received:",oe.width,"x",oe.height));else if(oe.type==="complete"||oe.type==="result")_e=oe,y.debug("[Review] Final result received! Type:",oe.type),y.debug("[Review] Final result issues count:",oe.issues?.length||0),y.debug("[Review] Final result score:",oe.validation?.complianceScore),oe.remainingCredits!=null&&Te.current&&Fe({...Te.current,creditBalance:oe.remainingCredits,reviewCredits:Math.floor(oe.remainingCredits)});else if(oe.type==="all_complete")_e=oe,y.debug("[Review] Multi-model results received:",Object.keys(oe.byModel)),oe.remainingCredits!=null&&Te.current&&Fe({...Te.current,creditBalance:oe.remainingCredits,reviewCredits:Math.floor(oe.remainingCredits)});else if(oe.type==="error"||oe.type==="model_error"){let Qt=new Error(oe.message||oe.error||"Streaming error");throw Qt.isServerError=!0,Qt}}catch(oe){if(oe.isServerError)throw oe;let Qt=oe instanceof Error?{message:oe.message,name:oe.name,stack:oe.stack}:String(oe);y.error("[Review] Error parsing SSE data:",Qt),y.error("[Review] Failed to parse data:",mn.substring(0,200)+(mn.length>200?"...":"")),xu=oe instanceof Error?oe:new Error(String(oe))}}}if(xt(100,"Review complete!"),!_e&&xu&&(y.error("[Review] No final result received. Last parse error:",xu),y.error("[Review] Streaming text available:",yo.length,"chars")),cy&&_e?.type==="all_complete"){let Xe=Object.keys(_e.byModel).reduce((Wt,Xn)=>{let mn=_e.byModel[Xn];return Wt[Xn]={...mn,fullResponse:mn.response||mn.fullResponse||"",fullPrompt:mn.prompt||mn.fullPrompt||"",streamingMessages:gs[Xn]||[]},Wt},{}),_t=Object.keys(_e.byModel)[0];T({byModel:Xe,activeModelId:_t}),Xe[_t]?.fullPrompt&&x(Xe[_t].fullPrompt),y.debug("[Review] Multi-model results stored:",Object.keys(_e.byModel));try{let Wt=Mo(),Xn=_e.byModel?.[_t]?.issues,mn=Xn&&Xn.length>0,oe=mn?Xn.map(de=>({id:Mo(),reviewId:Wt,dbId:de.dbId,type:de.type,severity:de.severity,title:de.description,description:de.description,property:de.property,expected:Bo(de.expected),actual:Bo(de.actual),currentValue:Bo(de.actual),suggestedValue:Bo(de.expected),source:de.source||"computed-styles",suggestedFix:de.suggestedFix,file:de.file,domElement:de.domElement,figmaElement:de.figmaElement,fixTarget:de.fixTarget,fixRequired:de.fixRequired,detectedBy:de.detectedBy,dismissed:de.dismissed??!1,dismissReason:de.dismissReason,dismissedAt:de.dismissed?new Date:void 0,_unreliable:de._unreliable,_validationError:de._validationError,figmaContext:de.figmaContext,relatedTo:Array.isArray(de.relatedTo)?de.relatedTo:void 0,status:"pending",selectedForFix:!1,createdAt:new Date})):mm(Xe[_t]?.fullResponse||"",Wt);y.debug("[Review] Multi-model issues source:",mn?"API (server-side dismissal)":"client-side parsing"),y.debug("[Review] Multi-model issues count:",oe.length,"issues");let Qt=oe.filter(de=>de.dismissed).length;Qt>0&&(y.debug("[Review] Multi-model auto-dismissed:",Qt,"false positive issues"),tt("system",`
22
+ `);N(yy,Kt)}else So+=oe.content,N(yy,So);else if(oe.type==="model_completed")y.debug("[Review] Model completed:",oe.modelId,oe.complianceScore),C(oe.modelId);else if(oe.type==="figma_image")oe.url&&(w(oe.url),y.debug("[Review] Figma image URL received:",oe.url));else if(oe.type==="figma_dimensions")oe.width&&oe.height&&(v({width:oe.width,height:oe.height}),y.debug("[Review] Figma dimensions received:",oe.width,"x",oe.height));else if(oe.type==="complete"||oe.type==="result")_e=oe,y.debug("[Review] Final result received! Type:",oe.type),y.debug("[Review] Final result issues count:",oe.issues?.length||0),y.debug("[Review] Final result score:",oe.validation?.complianceScore),oe.remainingCredits!=null&&Te.current&&Pe({...Te.current,creditBalance:oe.remainingCredits,reviewCredits:Math.floor(oe.remainingCredits)});else if(oe.type==="all_complete")_e=oe,y.debug("[Review] Multi-model results received:",Object.keys(oe.byModel)),oe.remainingCredits!=null&&Te.current&&Pe({...Te.current,creditBalance:oe.remainingCredits,reviewCredits:Math.floor(oe.remainingCredits)});else if(oe.type==="error"||oe.type==="model_error"){let Kt=new Error(oe.message||oe.error||"Streaming error");throw Kt.isServerError=!0,Kt}}catch(oe){if(oe.isServerError)throw oe;let Kt=oe instanceof Error?{message:oe.message,name:oe.name,stack:oe.stack}:String(oe);y.error("[Review] Error parsing SSE data:",Kt),y.error("[Review] Failed to parse data:",gn.substring(0,200)+(gn.length>200?"...":"")),Cu=oe instanceof Error?oe:new Error(String(oe))}}}if(mt(100,"Review complete!"),!_e&&Cu&&(y.error("[Review] No final result received. Last parse error:",Cu),y.error("[Review] Streaming text available:",So.length,"chars")),xy&&_e?.type==="all_complete"){let Ke=Object.keys(_e.byModel).reduce((jt,Yn)=>{let gn=_e.byModel[Yn];return jt[Yn]={...gn,fullResponse:gn.response||gn.fullResponse||"",fullPrompt:gn.prompt||gn.fullPrompt||"",streamingMessages:fs[Yn]||[]},jt},{}),Nt=Object.keys(_e.byModel)[0];F({byModel:Ke,activeModelId:Nt}),Ke[Nt]?.fullPrompt&&h(Ke[Nt].fullPrompt),y.debug("[Review] Multi-model results stored:",Object.keys(_e.byModel));try{let jt=Bo(),Yn=_e.byModel?.[Nt]?.issues,gn=Yn&&Yn.length>0,oe=gn?Yn.map(fe=>({id:Bo(),reviewId:jt,dbId:fe.dbId,type:fe.type,severity:fe.severity,title:fe.description,description:fe.description,property:fe.property,expected:Do(fe.expected),actual:Do(fe.actual),currentValue:Do(fe.actual),suggestedValue:Do(fe.expected),source:fe.source||"computed-styles",suggestedFix:fe.suggestedFix,file:fe.file,domElement:fe.domElement,figmaElement:fe.figmaElement,fixTarget:fe.fixTarget,fixRequired:fe.fixRequired,detectedBy:fe.detectedBy,dismissed:fe.dismissed??!1,dismissReason:fe.dismissReason,dismissedAt:fe.dismissed?new Date:void 0,_unreliable:fe._unreliable,_validationError:fe._validationError,figmaContext:fe.figmaContext,relatedTo:Array.isArray(fe.relatedTo)?fe.relatedTo:void 0,status:"pending",selectedForFix:!1,createdAt:new Date})):vm(Ke[Nt]?.fullResponse||"",jt);y.debug("[Review] Multi-model issues source:",gn?"API (server-side dismissal)":"client-side parsing"),y.debug("[Review] Multi-model issues count:",oe.length,"issues");let Kt=oe.filter(fe=>fe.dismissed).length;Kt>0&&(y.debug("[Review] Multi-model auto-dismissed:",Kt,"false positive issues"),Ze("system",`
23
23
 
24
24
  ---
25
25
 
26
- \u2705 ${Qt} issue${Qt>1?"s were":" was"} auto-dismissed as false positive${Qt>1?"s":""} (values already match design spec). Score recalculated to reflect active issues only.`));let hn=ge.current[ee];hn||(hn=await ta(ee)||{storyFile:"",componentFile:"[Component].tsx",cssFile:"[Component].css",baseDir:""},hn.storyFile&&(ge.current[ee]=hn)),y.debug("[Review] Story file paths:",hn);let at=oe.map(de=>({...de,file:de.file||hm(de.fixTarget,hn)||xm(de,hn)}));if(at=ym(at),y.debug("[Review] After de-duplication:",at.length,"issues"),!R){let de=at.length;at=at.filter(En=>En.property?.toLowerCase()!=="textcontent"&&!En.description?.toLowerCase().includes("text content")),de!==at.length&&y.debug("[Review] Filtered out",de-at.length,"textContent issues (toggle OFF)")}let Nr=_e.validation?.complianceScore??Xe[_t]?.complianceScore;if(y.debug("[Review] Multi-model score sources:",{firstModelId:_t,validationScore:_e.validation?.complianceScore,modelScore:Xe[_t]?.complianceScore,multiModelScore:Nr}),Nr==null){let En=(Xe[_t]?.fullResponse||"").match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i);Nr=En?parseInt(En[1],10):void 0,y.debug("[Review] Parsed multi-model score from response:",Nr)}let Rn;ne&&Ke&&(Rn=(yt.getState().reviewHistory.find(En=>En.id===Ke)?.iterationNumber||0)+1);let fs={id:Wt,componentId:ee,storyId:ee,modelId:_t,parentReviewId:ne&&Ke||void 0,iterationNumber:Rn,figmaFileKey:void 0,figmaNodeId:Ct||void 0,figmaFileUrl:Sr||void 0,complianceScore:Nr,visualSimilarity:_e.visualSimilarity,issuesCount:at.filter(de=>!de.dismissed).length,issues:at,createdAt:new Date,reviewDurationMs:Date.now()-gt,costUsd:_e.costUsd,inputTokens:_e.inputTokens,outputTokens:_e.outputTokens,cacheCreationTokens:_e.cacheCreationTokens,cacheReadTokens:_e.cacheReadTokens};if(y.debug("[Review] Multi-model token data:",{costUsd:_e.costUsd,inputTokens:_e.inputTokens,outputTokens:_e.outputTokens,cacheCreationTokens:_e.cacheCreationTokens,cacheReadTokens:_e.cacheReadTokens,reviewTokens:fs.inputTokens}),z(fs),ee&&ie.enableReviewBadges){let de=at.filter(En=>!En.dismissed);jr(ee,{score:Nr??100,issueCount:de.length,criticalCount:de.filter(En=>En.severity==="critical").length,majorCount:de.filter(En=>En.severity==="major").length,minorCount:de.filter(En=>En.severity==="minor").length})}C("issues");let Wa=at.filter(de=>!de.dismissed).length;y.debug("[Review] Created multi-model review with",Wa,"active issues,",at.length-Wa,"dismissed");let ke=Ct||yt.getState().currentMapping?.figmaNodeId;y.debug("[Review] Issue validation handled server-side. Active:",at.filter(de=>!de.dismissed).length,"Dismissed:",at.filter(de=>de.dismissed).length)}catch(Wt){y.error("[Review] Failed to parse issues from multi-model response:",Wt)}}else if(_e){_e.prompt&&x(_e.prompt),(_e.response||yo)&&S(_e.response||yo),_e.figmaImageUrl&&w(_e.figmaImageUrl),y.debug("[Review] State updated with prompt, response, and screenshots");try{let Xe=Mo(),_t=_e.response||yo,Wt=_e.issues,Xn=Wt&&Wt.length>0,mn=Xn?Wt.map(ke=>({id:Mo(),reviewId:Xe,dbId:ke.dbId,type:ke.type,severity:ke.severity,title:ke.description,description:ke.description,property:ke.property,expected:Bo(ke.expected),actual:Bo(ke.actual),currentValue:Bo(ke.actual),suggestedValue:Bo(ke.expected),source:ke.source||"computed-styles",suggestedFix:ke.suggestedFix,file:ke.file,domElement:ke.domElement,figmaElement:ke.figmaElement,fixTarget:ke.fixTarget,fixRequired:ke.fixRequired,detectedBy:ke.detectedBy,dismissed:ke.dismissed??!1,dismissReason:ke.dismissReason,dismissedAt:ke.dismissed?new Date:void 0,_unreliable:ke._unreliable,_validationError:ke._validationError,figmaContext:ke.figmaContext,relatedTo:Array.isArray(ke.relatedTo)?ke.relatedTo:void 0,status:"pending",selectedForFix:!1,createdAt:new Date})):mm(_t,Xe);y.debug("[Review] Issues source:",Xn?"API (server-side dismissal)":"client-side parsing"),y.debug("[Review] Issues count:",mn.length,"issues");let oe=mn.filter(ke=>ke.dismissed).length;oe>0&&(y.debug("[Review] Auto-dismissed:",oe,"false positive issues"),tt("system",`
26
+ \u2705 ${Kt} issue${Kt>1?"s were":" was"} auto-dismissed as false positive${Kt>1?"s":""} (values already match design spec). Score recalculated to reflect active issues only.`));let fn=me.current[te];fn||(fn=await oa(te)||{storyFile:"",componentFile:"[Component].tsx",cssFile:"[Component].css",baseDir:""},fn.storyFile&&(me.current[te]=fn)),y.debug("[Review] Story file paths:",fn);let st=oe.map(fe=>({...fe,file:fe.file||km(fe.fixTarget,fn)||Cm(fe,fn)}));if(st=Tm(st),y.debug("[Review] After de-duplication:",st.length,"issues"),!z){let fe=st.length;st=st.filter(Fn=>Fn.property?.toLowerCase()!=="textcontent"&&!Fn.description?.toLowerCase().includes("text content")),fe!==st.length&&y.debug("[Review] Filtered out",fe-st.length,"textContent issues (toggle OFF)")}let Nr=_e.validation?.complianceScore??Ke[Nt]?.complianceScore;if(y.debug("[Review] Multi-model score sources:",{firstModelId:Nt,validationScore:_e.validation?.complianceScore,modelScore:Ke[Nt]?.complianceScore,multiModelScore:Nr}),Nr==null){let Fn=(Ke[Nt]?.fullResponse||"").match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i);Nr=Fn?parseInt(Fn[1],10):void 0,y.debug("[Review] Parsed multi-model score from response:",Nr)}let Dn;Z&&ge&&(Dn=(ht.getState().reviewHistory.find(Fn=>Fn.id===ge)?.iterationNumber||0)+1);let ms={id:jt,componentId:te,storyId:te,modelId:Nt,parentReviewId:Z&&ge||void 0,iterationNumber:Dn,figmaFileKey:void 0,figmaNodeId:wt||void 0,figmaFileUrl:Sr||void 0,complianceScore:Nr,visualSimilarity:_e.visualSimilarity,issuesCount:st.filter(fe=>!fe.dismissed).length,issues:st,createdAt:new Date,reviewDurationMs:Date.now()-Tt,costUsd:_e.costUsd,inputTokens:_e.inputTokens,outputTokens:_e.outputTokens,cacheCreationTokens:_e.cacheCreationTokens,cacheReadTokens:_e.cacheReadTokens};if(y.debug("[Review] Multi-model token data:",{costUsd:_e.costUsd,inputTokens:_e.inputTokens,outputTokens:_e.outputTokens,cacheCreationTokens:_e.cacheCreationTokens,cacheReadTokens:_e.cacheReadTokens,reviewTokens:ms.inputTokens}),O(ms),te&&ie.enableReviewBadges){let fe=st.filter(Fn=>!Fn.dismissed);jr(te,{score:Nr??100,issueCount:fe.length,criticalCount:fe.filter(Fn=>Fn.severity==="critical").length,majorCount:fe.filter(Fn=>Fn.severity==="major").length,minorCount:fe.filter(Fn=>Fn.severity==="minor").length})}T("issues");let qa=st.filter(fe=>!fe.dismissed).length;y.debug("[Review] Created multi-model review with",qa,"active issues,",st.length-qa,"dismissed");let ke=wt||ht.getState().currentMapping?.figmaNodeId;y.debug("[Review] Issue validation handled server-side. Active:",st.filter(fe=>!fe.dismissed).length,"Dismissed:",st.filter(fe=>fe.dismissed).length)}catch(jt){y.error("[Review] Failed to parse issues from multi-model response:",jt)}}else if(_e){_e.prompt&&h(_e.prompt),(_e.response||So)&&S(_e.response||So),_e.figmaImageUrl&&w(_e.figmaImageUrl),y.debug("[Review] State updated with prompt, response, and screenshots");try{let Ke=Bo(),Nt=_e.response||So,jt=_e.issues,Yn=jt&&jt.length>0,gn=Yn?jt.map(ke=>({id:Bo(),reviewId:Ke,dbId:ke.dbId,type:ke.type,severity:ke.severity,title:ke.description,description:ke.description,property:ke.property,expected:Do(ke.expected),actual:Do(ke.actual),currentValue:Do(ke.actual),suggestedValue:Do(ke.expected),source:ke.source||"computed-styles",suggestedFix:ke.suggestedFix,file:ke.file,domElement:ke.domElement,figmaElement:ke.figmaElement,fixTarget:ke.fixTarget,fixRequired:ke.fixRequired,detectedBy:ke.detectedBy,dismissed:ke.dismissed??!1,dismissReason:ke.dismissReason,dismissedAt:ke.dismissed?new Date:void 0,_unreliable:ke._unreliable,_validationError:ke._validationError,figmaContext:ke.figmaContext,relatedTo:Array.isArray(ke.relatedTo)?ke.relatedTo:void 0,status:"pending",selectedForFix:!1,createdAt:new Date})):vm(Nt,Ke);y.debug("[Review] Issues source:",Yn?"API (server-side dismissal)":"client-side parsing"),y.debug("[Review] Issues count:",gn.length,"issues");let oe=gn.filter(ke=>ke.dismissed).length;oe>0&&(y.debug("[Review] Auto-dismissed:",oe,"false positive issues"),Ze("system",`
27
27
 
28
28
  ---
29
29
 
30
- \u2705 ${oe} issue${oe>1?"s were":" was"} auto-dismissed as false positive${oe>1?"s":""} (values already match design spec). Score recalculated to reflect active issues only.`));let Qt=_e.complianceScore??_e.validation?.complianceScore;if(y.debug("[Review] Score sources:",{directScore:_e.complianceScore,validationScore:_e.validation?.complianceScore,parsedScore:Qt}),Qt==null){let ke=_t.match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i);Qt=ke?parseInt(ke[1],10):void 0,y.debug("[Review] Parsed score from response:",Qt)}let hn=ge.current[ee];hn||(hn=await ta(ee)||{storyFile:"",componentFile:"[Component].tsx",cssFile:"[Component].css",baseDir:""},hn.storyFile&&(ge.current[ee]=hn)),y.debug("[Review] Story file paths:",hn);let at=mn.map(ke=>({...ke,file:ke.file||hm(ke.fixTarget,hn)||xm(ke,hn)}));if(at=ym(at),y.debug("[Review] After de-duplication:",at.length,"issues"),!R){let ke=at.length;at=at.filter(de=>de.property?.toLowerCase()!=="textcontent"&&!de.description?.toLowerCase().includes("text content")),ke!==at.length&&y.debug("[Review] Filtered out",ke-at.length,"textContent issues (toggle OFF)")}let Nr;ne&&Ke&&(Nr=(yt.getState().reviewHistory.find(de=>de.id===Ke)?.iterationNumber||0)+1);let Rn={id:Xe,componentId:ee,storyId:ee,modelId:l[0],parentReviewId:ne&&Ke||void 0,iterationNumber:Nr,figmaFileKey:void 0,figmaNodeId:Ct||void 0,figmaFileUrl:Sr||void 0,complianceScore:Qt,visualSimilarity:_e.visualSimilarity,issuesCount:at.filter(ke=>!ke.dismissed).length,issues:at,createdAt:new Date,reviewDurationMs:Date.now()-gt,costUsd:_e.costUsd,inputTokens:_e.inputTokens,outputTokens:_e.outputTokens,cacheCreationTokens:_e.cacheCreationTokens,cacheReadTokens:_e.cacheReadTokens,variantMismatch:_e.variantMismatch,storybookVariant:_e.storybookVariant,figmaVariant:_e.figmaVariant};if(y.debug("[useAIReview] About to call addReview with review:",{id:Rn.id,storyId:Rn.storyId,issueCount:Rn.issues?.length,complianceScore:Rn.complianceScore,createdAt:Rn.createdAt?.toISOString(),inputTokens:Rn.inputTokens,outputTokens:Rn.outputTokens,costUsd:Rn.costUsd,cacheCreationTokens:Rn.cacheCreationTokens,cacheReadTokens:Rn.cacheReadTokens}),z(Rn),y.debug("[useAIReview] addReview called successfully"),ee&&ie.enableReviewBadges){let ke=at.filter(de=>!de.dismissed);jr(ee,{score:Qt??100,issueCount:ke.length,criticalCount:ke.filter(de=>de.severity==="critical").length,majorCount:ke.filter(de=>de.severity==="major").length,minorCount:ke.filter(de=>de.severity==="minor").length})}C("issues");let fs=at.filter(ke=>!ke.dismissed).length;y.debug("[Review] Created review with",fs,"active issues,",at.length-fs,"dismissed");let Wa=Ct||yt.getState().currentMapping?.figmaNodeId;y.debug("[Review] Validation check:",{figmaNodeId:Ct,effectiveFigmaNodeIdSingle:Wa,hasSessionToken:!!se,selectedProjectId:et,issueCount:at.length}),y.debug("[Review] Issue validation handled server-side. Active:",at.filter(ke=>!ke.dismissed).length,"Dismissed:",at.filter(ke=>ke.dismissed).length)}catch(Xe){y.error("[Review] Failed to parse issues:",Xe)}}else throw yo?(y.error("[Review] ERROR: No structured result received from backend!"),y.error("[Review] Streaming text length:",yo.length),y.error("[Review] This indicates a bug in SSE parsing or backend not sending complete event"),new Error("Review completed but failed to receive structured result. Check console for details.")):new Error("No results received from API")}catch(Ge){if(Ge instanceof Error&&Ge.name==="AbortError"){y.debug("[useAIReview] Review cancelled by user"),xt(0,"Review cancelled");return}y.error("[useAIReview] Review error:",Ge);let _=zv(Ge);throw p(_),ee&&ie.enableReviewBadges&&$v(ee),xt(0,`Error: ${_}`),Ge}finally{d(!1),g(null),ue.current=null,Be.current&&(clearTimeout(Be.current),Be.current=null),Fe(null)}},[e,se,et,ee,Ee,l,d,p,m,T,h,I,A,E,v,$,tt,xt,O,f,w,x,S,Fe]),xe=na(()=>n?.issues?o==="all"?n.issues:n.issues.filter(fe=>fe.severity===o):[],[n,o]),St=na(()=>{ue.current&&(y.debug("[useAIReview] Cancelling review..."),ue.current.abort())},[]);return{isReviewing:e,reviewError:t,reviewResults:n,showReviewMenu:r,severityFilter:o,showStreamingPanel:i,streamingPanelCollapsed:s,streamingMessages:a,streamingProgress:u,streamingStatus:c,startReview:Sn,cancelReview:St,setShowReviewMenu:b,setSeverityFilter:F,setShowStreamingPanel:E,setStreamingPanelCollapsed:v,addStreamingMessage:D,updateStreamingMessage:O,clearStreamingMessages:$,setStreamingProgress:L,setStreamingStatus:N,resetReview:M,getFilteredIssues:xe}};ve();Ne();Ue();import{useCallback as SJ}from"react";var CJ=G();ve();Ne();import{useEffect as Vv,useRef as Gv}from"react";import{useStorybookApi as rN,useStorybookState as oN,addons as iN}from"storybook/manager-api";var qv="storyArgsUpdated",km=()=>{let e=rN(),t=oN(),{currentStoryId:n,currentStoryName:r,setCurrentStoryId:o,setCurrentStoryName:i}=nt(),{clearStaleReviewsForStory:s,resetReview:a,isReviewing:u,isValidating:c}=ce(),l=Gv(null),d=Gv(0);return Vv(()=>{let g=t.storyId;if(g){l.current!==g&&(y.debug("[useCurrentStory] Story changed from",l.current,"to",g),s(g),l.current=g,d.current=Date.now()),o(g);let p=e.getData(g),m=p?.name&&p.name!=="default"?`${p.title} / ${p.name}`:p?.title||g;i(m),y.debug("[useCurrentStory] Current story:",{storyId:g,fullName:m})}else o(null),i(""),l.current=null},[t.storyId,e,o,i,s]),Vv(()=>{let g=iN.getChannel(),p=null,m=b=>{if(b.storyId===n){if(u||c){y.debug("[useCurrentStory] Story args changed but review in progress, skipping reset");return}p&&clearTimeout(p),p=setTimeout(()=>{let{isReviewing:F,isValidating:E}=yt.getState();if(F||E){y.debug("[useCurrentStory] Story args changed but review started, skipping reset");return}if(Date.now()-d.current<2e3){y.debug("[useCurrentStory] Story args changed but story just navigated, skipping reset");return}y.debug("[useCurrentStory] Story args changed, clearing stale review"),a()},500)}};return g.on(qv,m),()=>{g.off(qv,m),p&&clearTimeout(p)}},[n,a,u,c]),{currentStoryId:n,currentStoryName:r}};ve();Ue();ct();import{useCallback as Yv}from"react";import{addons as Kv}from"storybook/manager-api";var Xv=G(),ii=()=>{let{currentMapping:e,loadingMapping:t,setCurrentMapping:n,refreshMappings:r}=nt(),{sessionToken:o}=Se(),{selectedProjectId:i}=Qe(),s=Yv(async c=>{if(!o)throw new Error("Not authenticated");if(!i)throw new Error("No project selected");let l=await te(`${Xv}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({projectId:i,...c})});if(!l.ok)throw new Error("Failed to create mapping");let d=await l.json();r();try{Kv.getChannel().emit("uireview/mappings-changed")}catch{}return d.mapping},[o,i,r]),a=Yv(async c=>{if(!o)throw new Error("Not authenticated");if(!(await te(`${Xv}/api/mappings?id=${encodeURIComponent(c)}`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})).ok)throw new Error("Failed to delete mapping");r();try{Kv.getChannel().emit("uireview/mappings-changed")}catch{}},[o,r]);return{currentMapping:e,loadingMapping:t,hasMapping:!!e,setCurrentMapping:n,createMapping:s,deleteMapping:a,refreshMappings:r}};_i();ve();import{useCallback as Cm,useEffect as Qv,useRef as sN}from"react";import{useChannel as aN,addons as Jv}from"storybook/manager-api";Ne();var lN=3e4,cN="forceRemount";function uN(e,t){let n=parseFloat(e.replace(/[^0-9.-]/g,"")),r=parseFloat(t.replace(/[^0-9.-]/g,""));if(isNaN(n)||isNaN(r))return!1;let o=Math.abs(n-r);return e.includes("px")||t.includes("px")?o<.5:e.includes("%")||t.includes("%")?o<1:o<.5}function pN(e){let t=["design system","design token","css variable","var(--","hard-coded"],n=`${e.description} ${e.suggestedFix||""} ${e.suggestedValue||""}`.toLowerCase();return t.some(r=>n.includes(r))}var dN="UICOPILOT/APPLY_FIXES",gN="UICOPILOT/FIX_STARTED",fN="UICOPILOT/FIX_COMPLETED",mN="UICOPILOT/FIX_FAILED",hN="UICOPILOT/ALL_FIXES_APPLIED",Tm=(e={})=>{let{onComplete:t,storybookRoot:n}=e,{isApplying:r,setIsApplying:o,setApplyFixesResult:i,updateIssueStatus:s,updateIssueGeneratedFix:a,setReviewDetailTab:u}=ce(),c=sN(null),l=Cm(()=>{c.current&&(clearTimeout(c.current),c.current=null)},[]);Qv(()=>()=>l(),[l]),Qv(()=>{let m=Jv.getChannel(),b=()=>{yt.getState().isApplying&&(y.error("[useApplyFixes] WebSocket disconnected while applying fixes"),l(),o(!1),i({succeeded:0,failed:0,total:0,error:"Connection lost. Please restart Storybook and try again."}))};return m.on("channelWSDisconnect",b),()=>m.off("channelWSDisconnect",b)},[l,o,i]);let d=aN({[gN]:({issueId:m})=>{y.debug(`[useApplyFixes] Fix started for issue: ${m}`),a(m,{status:"applying"})},[fN]:({issueId:m,result:b})=>{y.debug(`[useApplyFixes] Fix completed for issue: ${m}`,b),s(m,"applied"),a(m,{status:"applied"})},[mN]:({issueId:m,error:b})=>{y.error(`[useApplyFixes] Fix failed for issue: ${m}`,b),s(m,"failed",b),a(m,{status:"failed",error:b})},[hN]:async({summary:m})=>{if(y.debug("[useApplyFixes] All fixes applied:",m),l(),o(!1),i({succeeded:m.succeeded,failed:m.failed,total:m.total}),m.failed>0?y.warn(`Applied ${m.succeeded}/${m.total} fixes. ${m.failed} failed.`):y.debug(`Successfully applied all ${m.total} fixes!`),m.succeeded>0){y.debug("[useApplyFixes] Emitting FORCE_REMOUNT to refresh story...");try{Jv.getChannel().emit(cN,{storyId:yt.getState().currentStoryId}),y.debug("[useApplyFixes] FORCE_REMOUNT emitted")}catch(b){y.warn("[useApplyFixes] Failed to emit FORCE_REMOUNT:",b)}y.debug("[useApplyFixes] Reloading Storybook preview to load fresh CSS..."),await ql(),y.debug("[useApplyFixes] Storybook preview reloaded")}t&&(y.debug("[useApplyFixes] Triggering screenshot refresh after fixes"),t()),y.debug("[useApplyFixes] Switching to Issues tab to show results"),u("issues")}}),g=Cm(m=>{let b=[],F=[],E=[];for(let v of m){let D=v.currentValue||v.actual||"",O=v.suggestedValue||v.expected||"";if(D&&O&&uN(D,O)){b.push(v);continue}if(pN(v)){F.push(v);continue}let $=v.generatedFix?.filePath||v.file||"";if(!$){y.warn(`[useApplyFixes] Skipping issue ${v.id} - no target file path`);continue}let L=$.toLowerCase().split(".").pop()||"",N=["tsx","jsx","ts","js"].includes(L)?"component":"css";E.push({...v,targetFilePath:$,targetFileType:N})}return{actionable:E,negligible:b,designTokens:F}},[]);return{applyFixes:Cm(m=>{if(r){y.warn("[useApplyFixes] Already applying fixes");return}if(m.length===0){y.warn("[useApplyFixes] No issues to fix");return}let b=g(m);if(b.negligible.length>0&&y.debug(`[useApplyFixes] Filtered ${b.negligible.length} negligible issue(s)`),b.designTokens.length>0&&y.debug(`[useApplyFixes] Skipped ${b.designTokens.length} design token suggestion(s)`),b.actionable.length===0){y.warn("[useApplyFixes] No actionable issues to fix after filtering");return}let F=b.actionable.filter(D=>D.targetFileType==="css"),E=b.actionable.filter(D=>D.targetFileType==="component");if(y.debug("[useApplyFixes] Applying fixes:"),F.length>0){let D=[...new Set(F.map(O=>O.targetFilePath))];y.debug(` - ${F.length} CSS issue(s) in: ${D.join(", ")}`)}if(E.length>0){let D=[...new Set(E.map(O=>O.targetFilePath))];y.debug(` - ${E.length} component issue(s) in: ${D.join(", ")}`),y.warn(" \u26A0\uFE0F Component files will be modified - review changes carefully!")}if(!document.querySelector("#storybook-preview-iframe")?.contentWindow){y.error("[useApplyFixes] Storybook preview iframe not found \u2014 connection lost"),i({succeeded:0,failed:0,total:b.actionable.length,error:"Connection lost. Please reload the page and try again."});return}o(!0),l(),c.current=setTimeout(()=>{yt.getState().isApplying&&(y.error("[useApplyFixes] Apply timed out \u2014 no response from server"),o(!1),i({succeeded:0,failed:0,total:b.actionable.length,error:"Apply timed out. The Storybook server may have disconnected. Please reload the page and try again."}))},lN),d(dN,{issues:b.actionable,storybookRoot:n||void 0})},[d,r,o,i,g,n,l]),isApplying:r}};ve();Ue();import{useState as VJ}from"react";var YJ=G();ve();import{useState as si}from"react";Ue();Ne();ct();var xN=G();async function tc(e,t,n,r,o){if(!e)return y.warn("[DismissalSync] No database ID provided, skipping server sync"),{success:!1,error:"No database ID"};try{let i=await te(`${xN}/api/issues/dismiss`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},credentials:"include",body:JSON.stringify({issueId:e,dismissed:t,dismissReason:n,dismissedBy:r})});if(!i.ok){let a=await i.text();return y.error("[DismissalSync] API error:",i.status,a),{success:!1,error:`API error: ${i.status}`}}let s=await i.json();return y.debug(`[DismissalSync] Synced issue ${e}, new score: ${s.newScore}`),{success:!0,newScore:s.newScore,activeIssuesCount:s.activeIssuesCount}}catch(i){return y.error("[DismissalSync] Failed to sync:",i),{success:!1,error:i.message}}}async function Zv(e,t){let n=e.filter(i=>i.dbId);if(n.length===0)return y.warn("[DismissalSync] No valid dismissals to sync (missing dbIds)"),{success:!1,error:"No valid dismissals"};let o=(await Promise.all(n.map(i=>tc(i.dbId,i.dismissed,i.dismissReason,i.dismissedBy,t)))).filter(i=>i.success);if(o.length>0){let i=o[o.length-1];return y.debug(`[DismissalSync] Batch synced ${o.length}/${n.length} dismissals`),i}return{success:!1,error:"All dismissals failed"}}Un();om();_i();Ne();Ue();var yN=["no-fix-needed","no-fix-required","no-change-needed","no-changes-needed","no-change-required","no-changes-required","no-action-needed","no-action-required","no_fix_needed","no_change_needed","no_changes_needed","already-correct","values-match","values-already-match","already-matches","css-matches","matches-figma","correctly-implemented","implementation-correct","none-needed","none-required","skipped","skip"],bN=["no changes required","no changes needed","no fix required","no fix needed","values already match","already matches","matches expected","correctly implemented","implementation is correct"],SN=G();function Im(){let[e,t]=si(!1),[n,r]=si(null),[o,i]=si(null),[s,a]=si(null),[u,c]=si(null),[l,d]=si(null),[g,p]=si(null),{sessionToken:m}=Se(),{selectedProjectId:b}=Qe(),{currentStoryId:F,currentStoryName:E}=nt(),{workspacePath:v,updateIssueGeneratedFix:D,batchUpdateIssueGeneratedFixes:O,includeComponentIssues:$,dismissIssue:L,recalculateScore:N,addStreamingMessage:x,roleOverride:S}=ce();return{generateBatchFixes:async P=>{if(!m){r("Not authenticated");return}if(!b){r("No project selected");return}if(!F){r("No story selected");return}if(P.length===0){r("No issues provided");return}t(!0),r(null),i(null),c(null),d(null),a({total:P.length,completed:0});let f=P.map(k=>({issueId:k.id,generatedFix:{code:"",diffPreview:"",filePath:k.file||"",confidence:0,strategy:"",status:"generating"}}));O(f);try{y.debug("[useBatchGenerateFixes] Generating fixes for",P.length,"issues");let k=null;try{let R=Qs();R?.computed&&(k=R.computed,y.debug("[useBatchGenerateFixes] Extracted computed styles for fix context"))}catch(R){y.warn("[useBatchGenerateFixes] Could not extract computed styles:",R)}let T=null;try{T=await ta(F),T&&y.debug("[useBatchGenerateFixes] Resolved file paths from index.json:",T)}catch(R){y.warn("[useBatchGenerateFixes] Could not resolve story file paths:",R)}let h=await fetch(`${SN}/api/fixes/generate-batch`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`,...Yl(S)},body:JSON.stringify({projectId:b,storyId:F,workspacePath:v,includeComponentIssues:$,computedStyles:k,storyFilePaths:T,reviewContext:{storyName:E||void 0,variantArgs:Oi()||void 0},issues:P.map(R=>({id:R.id,dbId:R.dbId,title:R.title,description:R.description,property:R.property,currentValue:R.currentValue,suggestedValue:R.suggestedValue,file:R.file,lineNumber:R.lineNumber,severity:R.severity,type:R.type,fixTarget:R.fixTarget,domElement:R.domElement,figmaContext:R.figmaContext,suggestedFix:R.suggestedFix}))})});if(!h.ok){let R=await h.json().catch(()=>({}));throw new Error(R.error||"Batch fix generation failed")}let I=await h.json();if(!I.success)throw new Error(I.error||"Batch fix generation failed");if(y.debug("[useBatchGenerateFixes] Generated",I.result.fixes.length,"fixes"),I.result.storybookRoot&&(p(I.result.storybookRoot),y.debug("[useBatchGenerateFixes] Stored storybookRoot:",I.result.storybookRoot)),I.result.selfReview&&(d(I.result.selfReview),y.debug("[useBatchGenerateFixes] Self-review:",I.result.selfReview)),I.result.partialFailure){let{failedBatches:R,errors:W}=I.result.partialFailure;y.warn(`[useBatchGenerateFixes] Partial failure: ${R.join(", ")} batch(es) failed`),y.warn("[useBatchGenerateFixes] Errors:",W),r(`Some fixes couldn't be generated (${R.join(", ")}): ${W[0]||"Unknown error"}`)}a({total:P.length,completed:I.result.fixes.length});let A=new Set(I.result.fixes.map(R=>R.issueId)),M=P.filter(R=>!A.has(R.id));M.length>0&&(y.warn(`[useBatchGenerateFixes] ${M.length} issues not returned by API, marking as failed`),M.forEach(R=>{D(R.id,{code:"",diffPreview:"",filePath:R.file||"",confidence:0,strategy:"skipped",status:"failed",error:"Fix generation skipped by server"})})),I.timing&&(i({durationSec:I.timing.durationSec,issueCount:I.timing.issueCount,avgPerIssueSec:I.timing.avgPerIssueSec}),y.debug(`[useBatchGenerateFixes] Generation took ${I.timing.durationSec}s for ${I.timing.issueCount} issues`)),I.result?.usage&&(c({inputTokens:I.result.usage.inputTokens||0,outputTokens:I.result.usage.outputTokens||0,costUsd:I.result.usage.costUsd||0,modelId:I.result.usage.modelId||"unknown",provider:I.result.usage.provider||"unknown"}),y.debug(`[useBatchGenerateFixes] Token usage: ${I.result.usage.inputTokens} in, ${I.result.usage.outputTokens} out, $${I.result.usage.costUsd?.toFixed(4)}`));let z=[],C=[];if(I.result.fixes.forEach(R=>{let W=R.noChangesNeeded===!0;if(!W){let Y=(R.fixStrategy||"").toLowerCase(),se=(R.generatedCode||"").toLowerCase(),me=(R.diffPreview||"").toLowerCase(),Fe=yN.some(ee=>Y.includes(ee.toLowerCase())||Y.replace(/[-_]/g,"").includes(ee.replace(/[-_]/g,""))),et=bN.some(ee=>se.includes(ee)||me.includes(ee));W=Fe||et}let B=P.find(Y=>Y.id===R.issueId);if(W&&B){let Y=B.suggestedValue,se=B.currentValue;Y&&se&&!ni(Y,se)&&(y.debug(`[useBatchGenerateFixes] SAFETY CHECK: values differ (expected="${Y}", actual="${se}"), NOT auto-dismissing issue ${R.issueId}`),W=!1)}let ie=B?.programmaticallyVerified===!0;if(y.debug(`[useBatchGenerateFixes] Processing fix for issue ${R.issueId}:`,{isFalsePositive:W,isProgrammaticIssue:ie,detectedBy:B?.detectedBy,noChangesNeeded:R.noChangesNeeded,fixStrategy:R.fixStrategy,title:B?.title?.substring(0,50)}),ie&&W&&(y.debug(`[useBatchGenerateFixes] SKIPPING auto-dismiss for programmatic issue ${R.issueId} (detectedBy: ${B?.detectedBy})`),W=!1),W){let Y=`Auto-dismissed: ${R.fixStrategy} - values already match`;y.debug(`[useBatchGenerateFixes] Auto-dismissing issue ${R.issueId} - noChangesNeeded: ${R.noChangesNeeded}, strategy: "${R.fixStrategy}"`),L(R.issueId,Y),z.push({localId:R.issueId,dbId:B?.dbId,dismissReason:Y}),C.push({issueId:R.issueId,generatedFix:{code:R.generatedCode||"",diffPreview:R.diffPreview||"",filePath:R.filePath,confidence:R.confidence,strategy:R.fixStrategy,status:"ready",error:void 0,noChangesExplanation:R.noChangesExplanation}})}else{let Y=R.error||R.fixStrategy==="skipped"?"failed":"ready";C.push({issueId:R.issueId,generatedFix:{code:R.generatedCode,diffPreview:R.diffPreview,filePath:R.filePath,confidence:R.confidence,strategy:R.fixStrategy,status:Y,error:R.error,noChangesExplanation:R.noChangesExplanation}})}}),C.length>0&&(y.debug(`[useBatchGenerateFixes] Applying ${C.length} fix updates in batch`),O(C)),z.length>0){if(y.debug(`[useBatchGenerateFixes] Auto-dismissed ${z.length} false positive(s), recalculating score`),N(),m){let W=z.filter(B=>B.dbId).map(B=>({dbId:B.dbId,dismissed:!0,dismissReason:B.dismissReason,dismissedBy:"system"}));W.length>0&&(y.debug(`[useBatchGenerateFixes] Syncing ${W.length} dismissals to server`),Zv(W,m).then(B=>{B.success?y.debug(`[useBatchGenerateFixes] Server score updated to: ${B.newScore}`):y.warn("[useBatchGenerateFixes] Failed to sync dismissals:",B.error)}).catch(B=>{y.error("[useBatchGenerateFixes] Error syncing dismissals:",B)}))}let R=z.length===1?"1 issue was auto-dismissed as a false positive (values already match the design). The compliance score has been recalculated.":`${z.length} issues were auto-dismissed as false positives (values already match the design). The compliance score has been recalculated.`;x({role:"system",content:R})}y.debug("[useBatchGenerateFixes] Updated",I.result.fixes.length,"issues with fixes")}catch(k){y.error("[useBatchGenerateFixes] Failed to generate batch fixes:",k),r(k?.message||"Failed to generate batch fixes");let T=P.map(h=>({issueId:h.id,generatedFix:{code:"",diffPreview:"",filePath:h.file||"",confidence:0,strategy:"",status:"failed",error:k?.message||"Failed to generate fix"}}));O(T)}finally{t(!1),setTimeout(()=>a(null),1500)}},isGenerating:e,error:n,timing:o,progress:s,usage:u,selfReview:l,lastStorybookRoot:g}}ve();Ne();Ue();ct();import{useState as Fm,useCallback as Em}from"react";var wN=G();function Am(){let[e,t]=Fm([]),[n,r]=Fm(!1),[o,i]=Fm(null),{sessionToken:s}=Se(),{selectedProjectId:a}=Qe(),{currentStoryId:u}=nt(),{setReviewResults:c}=ce(),l=Em(async()=>{if(!(!s||!a)){r(!0),i(null);try{let p=new URLSearchParams({projectId:a,limit:"10"});u&&p.append("storyId",u);let m=await te(`${wN}/api/reviews/list?${p.toString()}`,{method:"GET",credentials:"include",headers:{Authorization:`Bearer ${s}`}});if(!m.ok){let F=await m.json().catch(()=>({}));throw new Error(F.error||"Failed to fetch reviews")}let b=await m.json();if(!b.success)throw new Error("Failed to fetch reviews");y.debug("[useReviewHistory] Fetched",b.reviews.length,"reviews for:",u),t(b.reviews)}catch(p){y.error("[useReviewHistory] Failed to fetch reviews:",p),i(p instanceof Error?p.message:"Failed to fetch reviews")}finally{r(!1)}}},[s,a,u]),d=Em(p=>{y.debug("[useReviewHistory] Applying review:",p.id,"with",p.issues.length,"issues");let m=[];if(typeof p.models=="string")try{m=JSON.parse(p.models)}catch(v){y.error("[useReviewHistory] Failed to parse models:",v),m=["claude-sonnet-4-20250514"]}else m=p.models;let b=p.issues.map(v=>({id:v.id,reviewId:p.id,type:v.type,severity:v.severity,title:v.description,description:v.description,file:void 0,lineNumber:void 0,property:v.property,currentValue:v.actual,suggestedValue:v.expected,suggestedCode:v.suggestedFix||void 0,status:v.status,dismissed:v.dismissed||!1,dismissReason:v.dismissReason,dismissedBy:v.dismissedBy,selectedForFix:!1,error:void 0,createdAt:new Date(v.createdAt)})),F=p.completedAt&&p.createdAt?new Date(p.completedAt).getTime()-new Date(p.createdAt).getTime():void 0,E=p.storyId||"";if(c({id:p.id,componentId:"",storyId:E,modelId:m[0]||"claude-sonnet-4-6",complianceScore:p.complianceScore,issuesCount:p.issuesCount,issues:b,createdAt:new Date(p.createdAt),timestamp:new Date(p.createdAt).toISOString(),costUsd:p.costUsd,inputTokens:p.inputTokens,outputTokens:p.outputTokens,reviewDurationMs:F}),E){let v=p.issues.filter(L=>!L.dismissed),D=v.filter(L=>L.severity==="critical").length,O=v.filter(L=>L.severity==="major").length,$=v.filter(L=>L.severity==="minor").length;jr(E,{score:p.complianceScore,issueCount:v.length,criticalCount:D,majorCount:O,minorCount:$})}},[c]),g=Em(p=>{let m=e.find(b=>b.id===p);if(!m){y.error("[useReviewHistory] Review not found:",p);return}d(m)},[e,d]);return{reviews:e,isLoading:n,error:o,fetchReviews:l,loadReview:g}}ve();Ne();import{useEffect as vN,useState as kN,useRef as nc}from"react";import{useChannel as CN}from"storybook/manager-api";var TN="UICOPILOT/WORKSPACE_PATH",ek="UICOPILOT/REQUEST_WORKSPACE_PATH",IN=3e3,FN=500,EN=5,Pm=()=>{let[e,t]=kN({isSupported:!1,isDetecting:!0,workspacePath:null}),{setWorkspacePath:n}=ce(),r=nc(!1),o=nc(null),i=nc(0),s=nc(null),a=CN({[TN]:({path:u})=>{r.current||(r.current=!0,o.current&&clearTimeout(o.current),s.current&&clearInterval(s.current),y.debug("[useAutoApplySupport] Server responded - auto-apply supported"),y.debug("[useAutoApplySupport] Workspace path:",u),t({isSupported:!0,isDetecting:!1,workspacePath:u}),n(u))}});return vN(()=>(y.debug("[useAutoApplySupport] Requesting workspace path from server (retry 0)..."),a(ek,{}),s.current=setInterval(()=>{!r.current&&i.current<EN&&(i.current++,y.debug(`[useAutoApplySupport] Requesting workspace path from server (retry ${i.current})...`),a(ek,{}))},FN),o.current=setTimeout(async()=>{if(s.current&&clearInterval(s.current),!r.current){y.debug("[useAutoApplySupport] Channel detection timed out, trying HTTP fallback...");try{let u=await fetch("/__uicopilot/health");if(u.ok){let c=await u.json();if(c.ok&&c.workspacePath&&!r.current){r.current=!0,y.debug("[useAutoApplySupport] HTTP fallback succeeded - auto-apply supported"),y.debug("[useAutoApplySupport] Workspace path:",c.workspacePath),t({isSupported:!0,isDetecting:!1,workspacePath:c.workspacePath}),n(c.workspacePath);return}}}catch{}r.current||(r.current=!0,y.debug("[useAutoApplySupport] Both channel and HTTP detection failed - auto-apply NOT supported"),t({isSupported:!1,isDetecting:!1,workspacePath:null}))}},IN),()=>{o.current&&clearTimeout(o.current),s.current&&clearInterval(s.current)}),[a]),e},Lm=async e=>{try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0;{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();let n=document.execCommand("copy");return document.body.removeChild(t),n}}catch(t){return y.error("[copyToClipboard] Failed to copy:",t),!1}};ve();Ue();import{useEffect as AN,useRef as PN}from"react";var IZ=G(),LN=new Set;function Mm(){let{sessionToken:e}=Se(),{selectedProjectId:t}=Qe(),n=PN(!1);AN(()=>{t&&LN.add(t)},[e,t])}ve();Un();import{useCallback as AZ,useState as PZ}from"react";import{useState as ai,useMemo as pk,useCallback as Gi}from"react";Ue();Ne();ct();Un();import{useState as lo,useEffect as rc,useRef as Wi,useCallback as Bm}from"react";var MN=300;function tk({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o=20,enabled:i=!0}){let[s,a]=lo([]),[u,c]=lo({}),[l,d]=lo(0),[g,p]=lo([]),[m,b]=lo(new Set),[F,E]=lo(!1),[v,D]=lo(!1),[O,$]=lo(null),L=Wi(1),N=Wi(null),x=Wi(null),[S,w]=lo(0),P=Wi(!1),f=Wi({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o});f.current={projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o};let k=Bm(async(M,z,C=!1)=>{let{projectId:R,typeFilter:W,search:B,figmaPage:ie,limit:Y}=f.current;if(!R||!W)return;N.current&&N.current.abort();let se=new AbortController;N.current=se,z?D(!0):E(!0),$(null);try{let me=G(),Fe=localStorage.getItem("uicopilot_session_token");if(!Fe)throw new Error(`Not authenticated. Please connect to ${Pt.NAME} first.`);let et=new URLSearchParams({projectId:R,page:String(M),limit:String(Y)});W&&et.append("type",W),ie&&et.append("figmaPage",ie),B.trim()&&et.append("search",B.trim()),C&&et.append("refresh","true");let ee=await fetch(`${me}/api/figma/frames?${et.toString()}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${Fe}`},signal:se.signal});if(!ee.ok){let ge=await ee.json();throw new Error(ge.error||"Failed to fetch frames")}let Ee=await ee.json(),Te=Ee.frames||[],ue=Ee.thumbnails||{},Be=ee.headers.get("X-Cache-Status");if(Te.length===0&&M===1&&!z&&!C&&!P.current&&Be!=="HIT"){y.debug("[useFigmaFrameFetch] Empty result (cache miss), retrying with refresh=true"),P.current=!0,await k(1,!1,!0);return}z?(a(ge=>[...ge,...Te]),c(ge=>({...ge,...ue}))):(a(Te),c(ue)),d(Ee.total||Te.length),Ee.pages&&p(Ee.pages),Ee.cacheDiff?.added&&b(new Set(Ee.cacheDiff.added)),L.current=M}catch(me){if(me instanceof DOMException&&me.name==="AbortError")return;let Fe=me instanceof Error?me.message:"Failed to fetch Figma frames.";$(Fe),y.error("Error fetching frames:",me)}finally{se.signal.aborted||(E(!1),D(!1))}},[]);rc(()=>{if(!i||!e||!t)return;P.current=!1,x.current&&clearTimeout(x.current);let M=n.trim()?MN:0;return x.current=setTimeout(()=>{L.current=1,k(1,!1)},M),()=>{x.current&&clearTimeout(x.current)}},[e,t,n,r,i,S,k]);let T=Wi(new Set);rc(()=>{if(s.length===0)return;let M={};for(let z of s)z.thumbnailCdnUrl&&!u[z.id]&&(M[z.id]=z.thumbnailCdnUrl);Object.keys(M).length>0&&c(z=>({...z,...M}))},[s]),rc(()=>{if(s.length===0)return;let M=s.filter(C=>!C.thumbnailCdnUrl&&!u[C.id]&&!T.current.has(C.id)).map(C=>C.id);if(M.length===0)return;M.forEach(C=>T.current.add(C)),(async()=>{try{let{projectId:C}=f.current,R=G(),W=localStorage.getItem("uicopilot_session_token");if(!W||!C)return;let B=await te(`${R}/api/figma/frames?projectId=${C}&thumbnailIds=${M.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${W}`}},6e4);if(B.ok){let ie=await B.json();ie.thumbnails&&Object.keys(ie.thumbnails).length>0&&c(Y=>({...Y,...ie.thumbnails}))}}catch(C){M.forEach(R=>T.current.delete(R)),y.error("Failed to fetch frame thumbnails:",C)}})()},[s,u]),rc(()=>()=>{N.current&&N.current.abort(),x.current&&clearTimeout(x.current)},[]);let h=Bm(async()=>{let M=L.current+1;await k(M,!0)},[k]),I=Bm(()=>{P.current=!1,L.current=1,a([]),c({}),w(M=>M+1)},[]),A=s.length<l;return{frames:s,thumbnails:u,totalFrames:l,availablePages:g,recentlyAdded:m,isLoading:F,loadingMore:v,hasMore:A,loadMore:h,refresh:I,error:O}}Ue();Ne();ct();import{useState as Vi,useCallback as oc,useRef as BN}from"react";function nk({projectId:e}){let[t,n]=Vi({}),[r,o]=Vi({}),[i,s]=Vi(new Set),[a,u]=Vi(new Set),[c,l]=Vi({}),[d,g]=Vi(null),p=BN({}),m=oc(async v=>{if(!(!e||i.has(v))){s(D=>new Set(D).add(v));try{let D=G(),O=localStorage.getItem("uicopilot_session_token"),$=await te(`${D}/api/figma/variants?projectId=${e}&componentSetId=${v}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${O}`}});if($.ok){let L=await $.json();if(L.variants){n(x=>({...x,[v]:L.variants}));let N={};for(let x of L.variants)x.thumbnailCdnUrl&&(N[x.id]=x.thumbnailCdnUrl);o(x=>({...x,[v]:{...x[v]||{},...N}})),p.current[v]||(p.current[v]=new Set),Object.keys(N).forEach(x=>p.current[v].add(x))}else o(N=>({...N,[v]:N[v]||{}}))}else o(L=>({...L,[v]:{}}))}catch(D){y.error("Failed to fetch variant metadata:",D),o(O=>({...O,[v]:{}}))}finally{s(D=>{let O=new Set(D);return O.delete(v),O})}}},[e,i]),b=oc(async(v,D)=>{if(!e||D.length===0)return;p.current[v]||(p.current[v]=new Set);let O=r[v]||{},$=D.filter(L=>!p.current[v].has(L)&&!O[L]);if($.length!==0){$.forEach(L=>p.current[v].add(L)),u(L=>new Set(L).add(v));try{let L=G(),N=localStorage.getItem("uicopilot_session_token"),x=await te(`${L}/api/figma/variants?projectId=${e}&componentSetId=${v}&thumbnailIds=${$.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${N}`}});if(x.ok){let S=await x.json();S.rateLimitError?(g(S.rateLimitError),$.forEach(w=>p.current[v]?.delete(w))):(S.thumbnails&&Object.keys(S.thumbnails).length>0&&o(w=>({...w,[v]:{...w[v]||{},...S.thumbnails}})),Array.isArray(S.failed)&&S.failed.length>0&&l(w=>{let P=new Set(w[v]||[]);for(let f of S.failed)P.add(f);return{...w,[v]:P}}))}}catch(L){y.error("Failed to fetch variant thumbnails:",L),$.forEach(N=>p.current[v]?.delete(N))}finally{u(L=>{let N=new Set(L);return N.delete(v),N})}}},[e]),F=oc(v=>{o(D=>{let O={...D};return delete O[v],O}),n(D=>{let O={...D};return delete O[v],O}),l(D=>{let O={...D};return delete O[v],O}),delete p.current[v]},[]),E=oc(()=>{o({}),n({}),l({}),p.current={}},[]);return{variantChildren:t,variantThumbnails:r,variantFailed:c,loadingVariants:i,loadingThumbnails:a,rateLimitError:d,fetchVariants:m,fetchVariantThumbnails:b,clearVariantsForSet:F,clearAllVariants:E}}Ue();_i();ve();Ne();ct();import{useState as rk,useEffect as ok,useRef as ik,useCallback as Dm}from"react";function sk({expandedSetId:e,availableFilters:t,filtersReady:n}){let[r,o]=rk(null),[i,s]=rk(!1),a=ik(null),u=ik(new Set),c=Dm(async()=>{if(!e||!n||t.length===0||a.current===e||u.current.has(e))return;let g=Oi();if(!g||Object.keys(g).length===0)return;let p=yt.getState().currentStoryId||"",m=p.replace(/--/g," / ").replace(/-/g," ").replace(/\b\w/g,b=>b.toUpperCase());a.current=e,s(!0),o(null);try{let b=G(),F=localStorage.getItem("uicopilot_session_token"),E=await te(`${b}/api/figma/match-filters`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({storyName:m,storyId:p,storyArgs:g,availableFilters:t.map(v=>({property:v.property,values:v.values}))})});if(E.ok){let v=await E.json();v.confidence>0&&Object.keys(v.suggestedFilters).length>0&&(y.debug("[useFilterSuggestion] Suggestion:",v),o(v))}else E.status===404?y.debug("[useFilterSuggestion] match-filters endpoint not available (404), skipping suggestions"):y.error("[useFilterSuggestion] Unexpected status:",E.status)}catch(b){y.error("[useFilterSuggestion] Error:",b)}finally{s(!1)}},[e,t,n]);ok(()=>{c()},[c]),ok(()=>{e||(o(null),a.current=null)},[e]);let l=Dm(()=>{},[]),d=Dm(()=>{e&&u.current.add(e),o(null)},[e]);return{suggestion:r,isLoading:i,applySuggestion:l,dismissSuggestion:d}}function ak(e,t,n){let r=[];return e&&r.push("COMPONENT_SET"),t&&r.push("FRAME"),n&&r.push("COMPONENT"),r.join(",")}function lk(e){let t={};for(let n of Object.values(e))for(let r of n)if(r.variantProperties)for(let[o,i]of Object.entries(r.variantProperties))t[o]||(t[o]=new Set),t[o].add(i);return Object.entries(t).map(([n,r])=>({property:n,values:Array.from(r).sort()}))}function ck(e){let t={},n=r=>{if(r.variantProperties)for(let[o,i]of Object.entries(r.variantProperties))t[o]||(t[o]=new Set),t[o].add(i);r.children?.forEach(n)};return e.forEach(n),Object.entries(t).map(([r,o])=>({property:r,values:Array.from(o).sort()}))}function uk(e,t,n){if(t.length===0||!t.some(o=>o.value))return!0;let r=o=>o.variantProperties?t.every(i=>i.value?o.variantProperties?.[i.property]===i.value:!0):!1;return!!(r(e)||e.children?.some(r)||n?.some(r))}function ra({projectId:e,limit:t=20,enabled:n=!0}){let[r,o]=ai(!0),[i,s]=ai(!1),[a,u]=ai(!1),[c,l]=ai(""),[d,g]=ai(""),[p,m]=ai([]),[b,F]=ai(new Set),E=Gi(ue=>{l(ue),p.length>0&&m([]),b.size>0&&F(new Set)},[p.length,b.size]),v=ak(r,i,a),{frames:D,thumbnails:O,totalFrames:$,availablePages:L,recentlyAdded:N,isLoading:x,loadingMore:S,hasMore:w,loadMore:P,refresh:f,error:k}=tk({projectId:e,typeFilter:v,search:c,figmaPage:d||void 0,limit:t,enabled:n&&!!v}),{variantChildren:T,variantThumbnails:h,variantFailed:I,loadingVariants:A,loadingThumbnails:M,rateLimitError:z,fetchVariants:C,fetchVariantThumbnails:R,clearVariantsForSet:W,clearAllVariants:B}=nk({projectId:e}),ie=pk(()=>{let ue=lk(T),Be=ck(D),ge={};for(let tt of[...ue,...Be])ge[tt.property]||(ge[tt.property]=new Set),tt.values.forEach(xt=>ge[tt.property].add(xt));return Object.entries(ge).map(([tt,xt])=>({property:tt,values:Array.from(xt).sort()}))},[T,D]),Y=b.size===1?Array.from(b)[0]:null,se=sk({expandedSetId:Y,availableFilters:ie,filtersReady:ie.length>0}),me=Gi(()=>{if(!se.suggestion)return;let{suggestedFilters:ue}=se.suggestion,Be=Object.entries(ue).map(([ge,tt])=>({property:ge,value:tt}));m(Be),se.dismissSuggestion()},[se.suggestion]),Fe=pk(()=>p.some(ue=>ue.value)?D.filter(ue=>uk(ue,p,T[ue.id])):D,[D,p,T]),et=Gi((ue,Be)=>{Be.stopPropagation();let ge=!b.has(ue);F(tt=>{let xt=new Set(tt);return xt.has(ue)?xt.delete(ue):xt.add(ue),xt}),ge&&!T[ue]&&!A.has(ue)?C(ue):ge||W(ue)},[b,T,A,C,W]),ee=Gi((ue,Be)=>{let ge=Be===""?null:Be;m(tt=>tt.find(Sn=>Sn.property===ue)?tt.map(Sn=>Sn.property===ue?{...Sn,value:ge}:Sn):[...tt,{property:ue,value:ge}])},[]),Ee=Gi(()=>{m([])},[]),Te=Gi(ue=>{let Be=D.find(ge=>ge.id===ue);if(Be?.thumbnailCdnUrl)return Be.thumbnailCdnUrl;if(O[ue])return O[ue];for(let ge of Object.values(h))if(ge[ue])return ge[ue]},[O,h]);return{frames:D,filteredFrames:Fe,thumbnails:O,totalFrames:$,isLoading:x,loadingMore:S,hasMore:w,error:k,loadMore:P,refresh:f,search:c,setSearch:E,figmaPage:d,setFigmaPage:g,availablePages:L,recentlyAdded:N,showComponentSets:r,showFrames:i,showComponents:a,setShowComponentSets:o,setShowFrames:s,setShowComponents:u,variantFilters:p,availableFilters:ie,handleFilterChange:ee,clearFilters:Ee,expandedSets:b,toggleExpanded:et,variantChildren:T,variantThumbnails:h,variantFailed:I,loadingVariants:A,loadingThumbnails:M,rateLimitError:z,fetchVariantThumbnails:R,resolveThumbnail:Te,filterSuggestion:se.suggestion,filterSuggestionLoading:se.isLoading,applySuggestedFilters:me,dismissFilterSuggestion:se.dismissSuggestion}}ve();import{useEffect as Lr,useCallback as ON,useState as _N,useRef as $N}from"react";import{useChannel as UN}from"storybook/manager-api";function Do(e){return e.status===401||e.status===403}var Mn=class extends Error{constructor(t){super(`Authentication failed (${t}). Please reconnect.`),this.name="AuthError",this.status=t}};Un();function dk(e){try{let t=new URL(e),n=t.pathname.match(/\/(file|design)\/([a-zA-Z0-9]+)/),r=n?n[2]:null,o=t.searchParams.get("node-id"),i=t.hash.match(/node-id=([0-9-:]+)/),s=o||(i?i[1]:null);if(!r||!s)return null;let a=s.replace(/-/g,":");return{fileKey:r,nodeId:a}}catch(t){return Au.error("Error parsing Figma URL:",t),null}}Ne();Ue();Ue();ct();var DN=G();async function Rm(e){let t=await te(`${DN}/api/projects`,{headers:{Authorization:`Bearer ${e}`}});if(Do(t))throw new Mn(t.status);return t.ok?(await t.json()).projects||[]:[]}Ue();ct();var RN=G();async function zm(e,t){let n=await te(`${RN}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(Do(n))throw new Mn(n.status);if(!n.ok)return[];let r=await n.json();return Array.isArray(r.mappings)?r.mappings:[]}Ue();ct();var zN=G();async function Nm(e,t,n,r=10,o=!1){let i=new URLSearchParams({projectId:t,limit:String(r),storyId:n});o&&i.set("includeAI","true");let s=await te(`${zN}/api/reviews/list?${i}`,{headers:{Authorization:`Bearer ${e}`}});if(Do(s))throw new Mn(s.status);if(!s.ok)return[];let a=await s.json();return a.success?a.reviews||[]:[]}Ue();ct();var NN=G();async function Om(e,t){let n=await te(`${NN}/api/reviews/status?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(Do(n))throw new Mn(n.status);if(!n.ok)return{};let r=await n.json();return r.success?r.statuses||{}:{}}_i();function jN(e){return e.storyId?{id:e.id,componentId:"",storyId:e.storyId,modelId:e.models?.[0]||"unknown",complianceScore:e.complianceScore,issuesCount:e.issuesCount,costUsd:e.costUsd,inputTokens:e.inputTokens,outputTokens:e.outputTokens,parentReviewId:e.parentReviewId||void 0,iterationNumber:e.iterationNumber,storybookImageData:e.storybookScreenshot||void 0,figmaImageData:e.figmaScreenshot||void 0,aiPrompt:e.aiPrompt||void 0,aiResponse:e.aiResponse||void 0,issues:e.issues.map(t=>({id:t.id,reviewId:e.id,type:t.type,severity:t.severity,title:t.description,description:t.description,property:t.property,currentValue:t.actual,suggestedValue:t.expected,suggestedCode:t.suggestedFix||void 0,status:t.status||"pending",dismissed:t.dismissed||!1,dismissReason:t.dismissReason,dismissedBy:t.dismissedBy,figmaContext:t.figmaContext,selectedForFix:!1,createdAt:new Date(t.createdAt)})),createdAt:new Date(e.createdAt)}:null}var HN=G(),WN="UICOPILOT/WORKSPACE_PATH",VN="UICOPILOT/REQUEST_WORKSPACE_PATH",_m=!1;function $m(){let{sessionToken:e,setSessionToken:t,setAuthError:n}=Se(),{projects:r,selectedProjectId:o,currentStorybookPath:i,setProjects:s,setSelectedProjectId:a,setLoadingProjects:u,setCurrentStorybookPath:c}=Qe(),{currentStoryId:l,mappingsRefreshKey:d,mappingsByStoryId:g,setFigmaFileUrl:p,setCurrentMapping:m,setMappingsByStoryId:b,setMappingSource:F,setLoadingMapping:E}=nt(),{setReviewResults:v,setReviewDetailTab:D,setStorybookImageUrl:O,setFigmaImageUrl:$,setFullPrompt:L,setFullResponse:N,bulkAddReviews:x,setReviewHistoryLoading:S}=ce(),[w,P]=_N([]),f=$N(null);Lr(()=>{let h=I=>{I.origin.startsWith(HN)&&I.data?.type==="UICOPILOT_AUTH_SUCCESS"&&I.data.token&&(y.debug("[useDataInit] OAuth success, setting token"),t(I.data.token))};return window.addEventListener("message",h),()=>window.removeEventListener("message",h)},[t]);let k=UN({[WN]:h=>{y.debug("[useDataInit] Received workspace path:",h.path),c(h.path)}});Lr(()=>{k(VN)},[k]),Lr(()=>{if(!e)return;let h=!1;return(async()=>{try{u(!0);let A=await Rm(e);h||(s(A),n(null))}catch(A){A instanceof Mn&&(t(null),n(A.message)),y.error("[useDataInit] Failed to fetch projects:",A)}finally{h||u(!1)}})(),()=>{h=!0}},[e,s,u]),Lr(()=>{if(!i||r.length===0)return;let h=r.find(I=>I.storybookRoot===i);h?o!==h.id&&(y.debug("[useDataInit] Auto-selecting project:",h.name),a(h.id)):o&&(y.debug("[useDataInit] No project matches this Storybook \u2014 clearing selection"),a(null))},[i,r,o,a]),Lr(()=>{if(!o||r.length===0)return;let h=r.find(A=>A.id===o),I=h?.figmaFileId;if(h&&typeof I=="string"&&I){let A=I,M=A.includes("figma.com")&&dk(A)?.fileKey||A;p(`https://www.figma.com/file/${M}`)}},[o,r,p]),Lr(()=>!e||!o||_m?void 0:(_m=!0,(async()=>{try{let I=await Om(e,o);for(let[A,M]of Object.entries(I))jr(A,{score:M.score,issueCount:M.issueCount,criticalCount:M.criticalCount,majorCount:M.majorCount,minorCount:M.minorCount});y.debug("[useDataInit] Populated sidebar badges for",Object.keys(I).length,"stories")}catch(I){I instanceof Mn&&(t(null),n(I.message)),y.error("[useDataInit] Failed to fetch review statuses:",I)}})(),()=>{_m=!1}),[e,o]),Lr(()=>{if(!e||!o)return;let h=!1;return(async()=>{try{let A=await zm(e,o);if(h)return;let M={};for(let z of A)z.storyId&&(M[z.storyId]=z);b(M),Hv(Object.keys(M))}catch(A){A instanceof Mn&&(t(null),n(A.message)),y.error("[useDataInit] Failed to fetch all mappings:",A)}})(),()=>{h=!0}},[e,o,d,b]),Lr(()=>{if(!l){m(null),F(null);return}let h=g[l]||null;h?(m(h),F("database")):(m(null),F(null)),E(!1)},[l,g,m,F,E]),Lr(()=>{P([]),f.current=null},[l]),Lr(()=>{if(!e||!o||!l)return;let h=!1;return(async()=>{S(!0);try{let A=await Nm(e,o,l,10,!0);if(!h){P(A);let M=A.map(z=>jN(z)).filter(Boolean);M.length>0&&x(M)}}catch(A){A instanceof Mn&&(t(null),n(A.message)),y.error("[useDataInit] Failed to fetch reviews:",A)}finally{h||S(!1)}})(),()=>{h=!0}},[e,o,l,S,x]);let T=ON(h=>{y.debug("[useDataInit] Applying review:",h.id,"with",h.issues.length,"issues");let I=[];if(typeof h.models=="string")try{I=JSON.parse(h.models)}catch{I=["claude-sonnet-4-20250514"]}else I=h.models;let A=h.issues.map(R=>({id:R.id,reviewId:h.id,type:R.type,severity:R.severity,title:R.description,description:R.description,file:void 0,lineNumber:void 0,property:R.property,currentValue:R.actual,suggestedValue:R.expected,suggestedCode:R.suggestedFix||void 0,status:R.status,dismissed:R.dismissed||!1,dismissReason:R.dismissReason,dismissedBy:R.dismissedBy,figmaContext:R.figmaContext,selectedForFix:!1,error:void 0,createdAt:new Date(R.createdAt)})),M=h.completedAt&&h.createdAt?new Date(h.completedAt).getTime()-new Date(h.createdAt).getTime():void 0,z=h.storyId||"";v({id:h.id,componentId:"",storyId:z,modelId:I[0]||"claude-sonnet-4-5-20250929",complianceScore:h.complianceScore,issuesCount:h.issuesCount,issues:A,createdAt:new Date(h.createdAt),timestamp:new Date(h.createdAt).toISOString(),costUsd:h.costUsd,inputTokens:h.inputTokens,outputTokens:h.outputTokens,reviewDurationMs:M});let C=yt.getState().currentStoryId;if(z&&z===C&&(h.storybookScreenshot&&(O(h.storybookScreenshot),Zw(z,h.storybookScreenshot,h.figmaScreenshot??void 0),y.debug("[useDataInit] Loaded persisted Storybook screenshot")),h.figmaScreenshot&&($(h.figmaScreenshot),y.debug("[useDataInit] Loaded persisted Figma screenshot"))),h.aiPrompt&&(L(h.aiPrompt),y.debug("[useDataInit] Loaded persisted AI prompt")),h.aiResponse&&(N(h.aiResponse),y.debug("[useDataInit] Loaded persisted AI response")),z){let R=h.issues.filter(Y=>!Y.dismissed),W=R.filter(Y=>Y.severity==="critical").length,B=R.filter(Y=>Y.severity==="major").length,ie=R.filter(Y=>Y.severity==="minor").length;jr(z,{score:h.complianceScore,issueCount:R.length,criticalCount:W,majorCount:B,minorCount:ie})}},[v,O,$,L,N]);Lr(()=>{if(w.length>0&&l&&f.current!==l){let h=w[0];h&&h.storyId===l&&(y.debug("[useDataInit] Auto-loading review:",h.id,"for:",l),f.current=l,T(h),D("issues"))}},[w,l,T,D])}Un();import{styled as oa}from"storybook/theming";var GN=oa.div({display:"flex",gap:"10px",marginTop:"8px"}),gk=oa.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",fontSize:"13px",color:e.color.defaultText,cursor:"pointer"})),fk=oa.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.base==="dark"?"rgba(0, 204, 102, 0.2)":"rgba(0, 204, 102, 0.1)",border:`1px solid ${e.color.positive}`,borderRadius:"8px",marginBottom:"12px",display:"flex",alignItems:"center",justifyContent:"space-between"})),mk=oa.div({display:"flex",alignItems:"center",gap:"8px"}),hk=oa(An)(({theme:e})=>({backgroundColor:`${e.base==="dark"?"rgba(197, 48, 48, 0.15)":"rgba(254, 178, 178, 0.3)"} !important`,color:`${e.color.negative} !important`,border:`1px solid ${e.color.negative} !important`,padding:"6px 12px !important",fontSize:"12px !important"})),xk=({onConnect:e})=>{let{sessionToken:t,authMethod:n,setAuthMethod:r,startOAuth:o,logout:i,oauthPending:s,authError:a,saveApiKey:u}=Gs(),[c,l]=rt.useState(""),d=()=>{let g=c.trim();g&&(u(g),e?.())};return rt.createElement(rt.Fragment,null,rt.createElement(bo,null,rt.createElement(So,null,"Authentication Method"),rt.createElement(GN,null,rt.createElement(gk,null,rt.createElement("input",{type:"radio",name:"authMethod",checked:n==="oauth",onChange:()=>r("oauth")}),"OAuth (Recommended)"),rt.createElement(gk,null,rt.createElement("input",{type:"radio",name:"authMethod",checked:n==="apikey",onChange:()=>r("apikey")}),"API Key"))),n==="oauth"&&rt.createElement(bo,null,rt.createElement(So,null,"Connect to ",Pt.NAME),t?rt.createElement(fk,null,rt.createElement(mk,null,rt.createElement("span",{style:{fontSize:"18px"}},"\u2713"),rt.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"#00cc66"}},"Connected to ",Pt.NAME)),rt.createElement(hk,{onClick:i,title:"Sign out and switch to a different account"},"Sign out")):s?rt.createElement("div",{style:{padding:"20px 0",textAlign:"center",fontSize:"13px"}},rt.createElement("div",{style:{fontSize:"24px",marginBottom:"8px"}},"\u{1F510}"),rt.createElement(hs,{style:{marginBottom:"8px",fontWeight:600}},"Sign-in window opened"),rt.createElement(hs,{style:{color:"inherit",opacity:.7}},"Complete sign-in in the popup, then return here.")):rt.createElement("div",null,a&&rt.createElement("div",{style:{marginBottom:"12px",padding:"10px 12px",backgroundColor:"rgba(239, 68, 68, 0.1)",border:"1px solid rgba(239, 68, 68, 0.4)",borderRadius:"6px",fontSize:"12px",color:"#b91c1c"}},"\u26A0\uFE0F ",a),rt.createElement(hs,{style:{marginBottom:"12px"}},"Connect to ",Pt.NAME," to manage projects and integrations."),rt.createElement(An,{onClick:()=>{o(),e?.()}},"\u{1F517} Connect to ",Pt.NAME))),n==="apikey"&&rt.createElement(bo,null,rt.createElement(So,null,"Session Token"),t?rt.createElement(fk,null,rt.createElement(mk,null,rt.createElement("span",{style:{fontSize:"18px"}},"\u2713"),rt.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"#00cc66"}},"Connected to ",Pt.NAME)),rt.createElement(hk,{onClick:i,title:"Sign out and switch to a different account"},"Sign out")):rt.createElement(rt.Fragment,null,rt.createElement(hs,{style:{marginBottom:"12px"}},"Paste the session token from your ",Pt.NAME," setup page."),rt.createElement(ms,{type:"password",placeholder:"Paste session token",value:c,onChange:g=>l(g.target.value)}),rt.createElement(An,{disabled:!c.trim(),style:{marginTop:"12px"},onClick:d},"Save Token"))))};import ut,{useState as qi}from"react";ve();import Wn,{useState as qN,useEffect as YN,useCallback as KN}from"react";import{styled as co,keyframes as yk}from"storybook/theming";var XN=yk({from:{opacity:0},to:{opacity:1}}),QN=yk({from:{opacity:0,transform:"translate(-50%, -50%) scale(0.95)"},to:{opacity:1,transform:"translate(-50%, -50%) scale(1)"}}),JN=co.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,animation:`${XN} 150ms ease-out`}),ZN=co.div(({theme:e})=>({position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:10001,backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,padding:`${e.layoutMargin*2.4}px`,minWidth:"320px",maxWidth:"440px",boxShadow:"0 8px 30px rgba(0, 0, 0, 0.2)",animation:`${QN} 150ms ease-out`})),eO=co.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,color:e.color.defaultText})),tO=co.p(({theme:e})=>({margin:`${e.layoutMargin}px 0 ${e.layoutMargin*2}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,color:e.color.defaultText,lineHeight:1.5})),nO=co.div(({theme:e})=>({display:"flex",justifyContent:"flex-end",gap:`${e.layoutMargin*.8}px`})),rO=co.input(({theme:e})=>({width:"100%",padding:`${e.layoutMargin*.6}px ${e.layoutMargin*.8}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.background.app,color:e.color.defaultText,marginBottom:`${e.layoutMargin}px`,boxSizing:"border-box","&:focus":{outline:"none",borderColor:e.color.secondary}})),oO=co.p(({theme:e})=>({margin:`0 0 ${e.layoutMargin*.6}px`,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.base,color:e.color.mediumdark})),iO=co.button(({theme:e})=>({padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,cursor:"pointer",backgroundColor:"transparent",color:e.color.defaultText,transition:"background-color 0.15s","&:hover":{backgroundColor:e.background.hoverable}})),sO=co.button(({theme:e,variant:t})=>({padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,border:"none",borderRadius:e.appBorderRadius,cursor:"pointer",transition:"opacity 0.15s",backgroundColor:t==="danger"?e.color.negative:e.color.secondary,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),Hr=({isOpen:e,title:t,message:n,confirmLabel:r="OK",cancelLabel:o="Cancel",variant:i="default",confirmText:s,onConfirm:a,onCancel:u})=>{let[c,l]=qN(""),d=!!s&&c!==s,g=KN(p=>{p.key==="Escape"&&u()},[u]);return YN(()=>{if(e)return l(""),document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,g]),e?Wn.createElement(Wn.Fragment,null,Wn.createElement(JN,{onClick:u}),Wn.createElement(ZN,{role:"dialog","aria-modal":"true","aria-label":t},Wn.createElement(eO,null,t),Wn.createElement(tO,null,n),s&&Wn.createElement(Wn.Fragment,null,Wn.createElement(oO,null,"Type ",Wn.createElement("strong",null,s)," to confirm:"),Wn.createElement(rO,{type:"text",value:c,onChange:p=>l(p.target.value),placeholder:s,autoFocus:!0})),Wn.createElement(nO,null,Wn.createElement(iO,{onClick:u},o),Wn.createElement(sO,{variant:i,onClick:a,disabled:d},r)))):null};import{styled as pn}from"storybook/theming";function aO(e,t,n){return e.filter(r=>r.id===t||!r.storybookRoot?!0:n?r.storybookRoot===n:!1)}var lO=pn.div({marginBottom:"30px"}),cO=pn.div({display:"flex",gap:"8px",alignItems:"center"}),uO=pn(wn)({flex:1}),pO=pn(an)({padding:"8px 12px",whiteSpace:"nowrap"}),dO=pn.div(({theme:e})=>({marginTop:"12px",padding:"12px",backgroundColor:e.background.hoverable,borderRadius:"6px"})),gO=pn.div(({theme:e})=>({marginTop:"6px",padding:"8px 10px",fontSize:"11px",lineHeight:1.4,color:e.color.warning,backgroundColor:`${e.color.warning}15`,border:`1px solid ${e.color.warning}40`,borderRadius:"4px"})),fO=pn.div(({theme:e})=>({marginBottom:"10px",padding:"8px 10px",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",backgroundColor:e.background.content})),mO=pn.div(({theme:e})=>({fontSize:"11px",lineHeight:1.5,color:e.color.mediumdark,marginBottom:"6px"})),hO=pn.div({display:"flex",alignItems:"center",gap:"6px"}),xO=pn.a(({theme:e})=>({flex:1,fontSize:"11px",fontFamily:e.typography.fonts.mono,color:e.color.secondary,textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","&:hover":{textDecoration:"underline"}})),yO=pn.button(({theme:e})=>({fontSize:"11px",padding:"3px 8px",borderRadius:"3px",border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.hoverable,color:e.color.defaultText,cursor:"pointer",whiteSpace:"nowrap","&:hover":{backgroundColor:e.background.app}}));function bk(e){return/figma\.com\/community\/file\//.test(e)}var Um=pn.div({marginBottom:"10px","&:last-child":{marginBottom:0}}),jm=pn.label(({theme:e})=>({display:"block",fontSize:"12px",fontWeight:500,marginBottom:"4px",color:e.color.mediumdark})),Hm=pn(ms)({fontSize:"13px",padding:"6px 8px"}),bO=pn.div({display:"flex",gap:"8px",marginTop:"12px"}),Sk=pn(an)({fontSize:"12px",padding:"6px 12px"}),SO=pn(Sk)(({theme:e})=>({backgroundColor:"transparent",color:e.color.mediumdark,border:`1px solid ${e.appBorderColor}`,"&:hover":{backgroundColor:e.background.hoverable}})),wO=pn.button(({theme:e})=>({padding:"8px",backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:e.typography.size.s1,transition:"all 0.15s","&:hover:not(:disabled)":{borderColor:e.color.negative,color:e.color.negative},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),wk=()=>{let{projects:e,selectedProjectId:t,setSelectedProjectId:n,loadingProjects:r,createProject:o,deleteProject:i}=so(),{currentStorybookPath:s}=Qe(),[a,u]=qi(!1),[c,l]=qi(!1),[d,g]=qi(!1),[p,m]=qi(!1),[b,F]=qi({name:"",storybookRoot:"",figmaFileUrl:""}),E=e.find(f=>f.id===t),v=aO(e,t,s),D=f=>{n(f||null),u(!1)},O=async()=>{if(t)try{m(!0),await i(t),g(!1)}catch(f){console.error("Failed to delete project:",f)}finally{m(!1)}},$=process.env.STORYBOOK_UICOPILOT_FIGMA_KIT||"",[L,N]=qi(!1),x=()=>{$&&navigator.clipboard.writeText($).then(()=>{N(!0),setTimeout(()=>N(!1),2e3)})},S=()=>{if(u(!0),s){let f=s.replace(/\/+$/,"").split("/").pop()||"";F({storybookRoot:s,name:f,figmaFileUrl:""})}},w=async()=>{if(b.name.trim())try{l(!0);let f;if(b.figmaFileUrl.trim()){let T=b.figmaFileUrl.trim(),h=T.match(/figma\.com\/(?:file|design)\/([a-zA-Z0-9]+)/);f=h?h[1]:T}let k=await o({name:b.name.trim(),storybookRoot:b.storybookRoot.trim()||void 0,figmaFileId:f});n(k.id),u(!1),F({name:"",storybookRoot:"",figmaFileUrl:""})}catch(f){console.error("Failed to create project:",f)}finally{l(!1)}},P=f=>{F(k=>{let T={...k,storybookRoot:f};if(!k.name&&f){let h=f.replace(/\/+$/,"").split("/").pop()||"";T.name=h}return T})};return ut.createElement(lO,null,ut.createElement(my,null,"Project"),ut.createElement(cO,null,ut.createElement(uO,{value:t||"",onChange:f=>D(f.target.value),disabled:r||a},ut.createElement("option",{value:""},"-- Select a project --"),v.map(f=>ut.createElement("option",{key:f.id,value:f.id},f.name))),ut.createElement(pO,{onClick:S,disabled:r,type:"button"},"+ New"),ut.createElement(wO,{onClick:()=>g(!0),disabled:!t||r,title:"Delete project",type:"button"},"\u{1F5D1}")),ut.createElement(Hr,{isOpen:d,title:"Delete Project",message:`This will permanently remove all reviews, mappings, and history for "${E?.name||"this project"}". This cannot be undone.`,confirmLabel:p?"Deleting...":"Delete",confirmText:E?.name,variant:"danger",onConfirm:O,onCancel:()=>g(!1)}),a&&ut.createElement(dO,null,ut.createElement(Um,null,ut.createElement(jm,null,"Storybook Path (for fix generation)"),ut.createElement(Hm,{type:"text",placeholder:"/path/to/your/storybook",value:b.storybookRoot,onChange:f=>P(f.target.value)})),ut.createElement(Um,null,ut.createElement(jm,null,"Project Name *"),ut.createElement(Hm,{type:"text",placeholder:"my-storybook",value:b.name,onChange:f=>{let k=f.target.value;F(T=>({...T,name:k}))}})),$&&ut.createElement(fO,null,ut.createElement(mO,null,ut.createElement("strong",null,"1.")," Open this template's Figma kit, then click"," ",ut.createElement("strong",null,"Open in Figma")," (or ",ut.createElement("strong",null,"Get a copy"),") to duplicate it to your own Figma workspace. ",ut.createElement("strong",null,"2.")," ","Paste the URL of your copy (",ut.createElement("code",null,"figma.com/design/\u2026"),") into the field below."),ut.createElement(hO,null,ut.createElement(xO,{href:$,target:"_blank",rel:"noopener noreferrer",title:$},$),ut.createElement(yO,{type:"button",onClick:x},L?"Copied!":"Copy"))),ut.createElement(Um,null,ut.createElement(jm,null,"Your Figma File URL (after duplicating)"),ut.createElement(Hm,{type:"text",placeholder:"https://www.figma.com/design/...",value:b.figmaFileUrl,onChange:f=>{let k=f.target.value;F(T=>({...T,figmaFileUrl:k}))}}),bk(b.figmaFileUrl)&&ut.createElement(gO,null,"\u26A0 This is a community file URL \u2014 it can't be read by the API. Use the duplicated copy's URL instead (see instructions above).")),ut.createElement(bO,null,ut.createElement(Sk,{onClick:w,disabled:c||!b.name.trim()||!b.figmaFileUrl.trim()||bk(b.figmaFileUrl)},c?"Creating...":"Create"),ut.createElement(SO,{onClick:()=>{u(!1),F({name:"",storybookRoot:"",figmaFileUrl:""})}},"Cancel"))))};import kt,{useState as Cc,useCallback as ZC,useEffect as M4}from"react";import{styled as Br}from"storybook/theming";import rn,{useState as Yi,useEffect as $O,useCallback as ic}from"react";import{styled as Wr}from"storybook/theming";ve();Ue();ct();ve();Ue();ct();import qt,{useState as Wm}from"react";import{styled as Vn,keyframes as vO}from"storybook/theming";var kO={autoLayout:"Auto Layout",componentStructure:"Structure",naming:"Naming",constraints:"Constraints",spacing:"Spacing",styles:"Styles",variants:"Variants"},CO=e=>e==="pass"?"\u2713":e==="warn"?"\u26A0":"\u2717",TO=Vn.div({position:"relative",display:"inline-flex"}),IO=vO`
30
+ \u2705 ${oe} issue${oe>1?"s were":" was"} auto-dismissed as false positive${oe>1?"s":""} (values already match design spec). Score recalculated to reflect active issues only.`));let Kt=_e.complianceScore??_e.validation?.complianceScore;if(y.debug("[Review] Score sources:",{directScore:_e.complianceScore,validationScore:_e.validation?.complianceScore,parsedScore:Kt}),Kt==null){let ke=Nt.match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i);Kt=ke?parseInt(ke[1],10):void 0,y.debug("[Review] Parsed score from response:",Kt)}let fn=me.current[te];fn||(fn=await oa(te)||{storyFile:"",componentFile:"[Component].tsx",cssFile:"[Component].css",baseDir:""},fn.storyFile&&(me.current[te]=fn)),y.debug("[Review] Story file paths:",fn);let st=gn.map(ke=>({...ke,file:ke.file||km(ke.fixTarget,fn)||Cm(ke,fn)}));if(st=Tm(st),y.debug("[Review] After de-duplication:",st.length,"issues"),!z){let ke=st.length;st=st.filter(fe=>fe.property?.toLowerCase()!=="textcontent"&&!fe.description?.toLowerCase().includes("text content")),ke!==st.length&&y.debug("[Review] Filtered out",ke-st.length,"textContent issues (toggle OFF)")}let Nr;Z&&ge&&(Nr=(ht.getState().reviewHistory.find(fe=>fe.id===ge)?.iterationNumber||0)+1);let Dn={id:Ke,componentId:te,storyId:te,modelId:l[0],parentReviewId:Z&&ge||void 0,iterationNumber:Nr,figmaFileKey:void 0,figmaNodeId:wt||void 0,figmaFileUrl:Sr||void 0,complianceScore:Kt,visualSimilarity:_e.visualSimilarity,issuesCount:st.filter(ke=>!ke.dismissed).length,issues:st,createdAt:new Date,reviewDurationMs:Date.now()-Tt,costUsd:_e.costUsd,inputTokens:_e.inputTokens,outputTokens:_e.outputTokens,cacheCreationTokens:_e.cacheCreationTokens,cacheReadTokens:_e.cacheReadTokens,variantMismatch:_e.variantMismatch,storybookVariant:_e.storybookVariant,figmaVariant:_e.figmaVariant};if(y.debug("[useAIReview] About to call addReview with review:",{id:Dn.id,storyId:Dn.storyId,issueCount:Dn.issues?.length,complianceScore:Dn.complianceScore,createdAt:Dn.createdAt?.toISOString(),inputTokens:Dn.inputTokens,outputTokens:Dn.outputTokens,costUsd:Dn.costUsd,cacheCreationTokens:Dn.cacheCreationTokens,cacheReadTokens:Dn.cacheReadTokens}),O(Dn),y.debug("[useAIReview] addReview called successfully"),te&&ie.enableReviewBadges){let ke=st.filter(fe=>!fe.dismissed);jr(te,{score:Kt??100,issueCount:ke.length,criticalCount:ke.filter(fe=>fe.severity==="critical").length,majorCount:ke.filter(fe=>fe.severity==="major").length,minorCount:ke.filter(fe=>fe.severity==="minor").length})}T("issues");let ms=st.filter(ke=>!ke.dismissed).length;y.debug("[Review] Created review with",ms,"active issues,",st.length-ms,"dismissed");let qa=wt||ht.getState().currentMapping?.figmaNodeId;y.debug("[Review] Validation check:",{figmaNodeId:wt,effectiveFigmaNodeIdSingle:qa,hasSessionToken:!!se,selectedProjectId:Ye,issueCount:st.length}),y.debug("[Review] Issue validation handled server-side. Active:",st.filter(ke=>!ke.dismissed).length,"Dismissed:",st.filter(ke=>ke.dismissed).length)}catch(Ke){y.error("[Review] Failed to parse issues:",Ke)}}else throw So?(y.error("[Review] ERROR: No structured result received from backend!"),y.error("[Review] Streaming text length:",So.length),y.error("[Review] This indicates a bug in SSE parsing or backend not sending complete event"),new Error("Review completed but failed to receive structured result. Check console for details.")):new Error("No results received from API")}catch(et){if(et instanceof Error&&et.name==="AbortError"){y.debug("[useAIReview] Review cancelled by user"),mt(0,"Review cancelled");return}y.error("[useAIReview] Review error:",et);let _=Yv(et);throw p(_),te&&ie.enableReviewBadges&&Jv(te),mt(0,`Error: ${_}`),et}finally{d(!1),g(null),pe.current=null,Be.current&&(clearTimeout(Be.current),Be.current=null),Pe(null)}},[e,se,Ye,te,Ie,l,d,p,m,F,x,C,P,E,k,$,Ze,mt,N,f,w,h,S,Pe]),br=ia(()=>n?.issues?o==="all"?n.issues:n.issues.filter(ae=>ae.severity===o):[],[n,o]),rr=ia(()=>{pe.current&&(y.debug("[useAIReview] Cancelling review..."),pe.current.abort())},[]);return{isReviewing:e,reviewError:t,reviewResults:n,showReviewMenu:r,severityFilter:o,showStreamingPanel:i,streamingPanelCollapsed:s,streamingMessages:a,streamingProgress:u,streamingStatus:c,startReview:bn,cancelReview:rr,setShowReviewMenu:b,setSeverityFilter:I,setShowStreamingPanel:E,setStreamingPanelCollapsed:k,addStreamingMessage:D,updateStreamingMessage:N,clearStreamingMessages:$,setStreamingProgress:L,setStreamingStatus:R,resetReview:B,getFilteredIssues:br}};ve();Ne();Ue();import{useCallback as BJ}from"react";var NJ=G();ve();Ne();import{useEffect as rk,useRef as ok}from"react";import{useStorybookApi as hN,useStorybookState as xN,addons as yN}from"storybook/manager-api";var ik="storyArgsUpdated",Pm=()=>{let e=hN(),t=xN(),{currentStoryId:n,currentStoryName:r,setCurrentStoryId:o,setCurrentStoryName:i}=tt(),{clearStaleReviewsForStory:s,resetReview:a,isReviewing:u,isValidating:c}=ue(),l=ok(null),d=ok(0);return rk(()=>{let g=t.storyId;if(g){l.current!==g&&(y.debug("[useCurrentStory] Story changed from",l.current,"to",g),s(g),l.current=g,d.current=Date.now()),o(g);let p=e.getData(g),m=p?.name&&p.name!=="default"?`${p.title} / ${p.name}`:p?.title||g;i(m),y.debug("[useCurrentStory] Current story:",{storyId:g,fullName:m})}else o(null),i(""),l.current=null},[t.storyId,e,o,i,s]),rk(()=>{let g=yN.getChannel(),p=null,m=b=>{if(b.storyId===n){if(u||c){y.debug("[useCurrentStory] Story args changed but review in progress, skipping reset");return}p&&clearTimeout(p),p=setTimeout(()=>{let{isReviewing:I,isValidating:E}=ht.getState();if(I||E){y.debug("[useCurrentStory] Story args changed but review started, skipping reset");return}if(Date.now()-d.current<2e3){y.debug("[useCurrentStory] Story args changed but story just navigated, skipping reset");return}y.debug("[useCurrentStory] Story args changed, clearing stale review"),a()},500)}};return g.on(ik,m),()=>{g.off(ik,m),p&&clearTimeout(p)}},[n,a,u,c]),{currentStoryId:n,currentStoryName:r}};ve();Ue();lt();import{useCallback as sk}from"react";import{addons as ak}from"storybook/manager-api";var lk=G(),si=()=>{let{currentMapping:e,loadingMapping:t,setCurrentMapping:n,refreshMappings:r}=tt(),{sessionToken:o}=Se(),{selectedProjectId:i}=Xe(),s=sk(async c=>{if(!o)throw new Error("Not authenticated");if(!i)throw new Error("No project selected");let l=await ne(`${lk}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({projectId:i,...c})});if(!l.ok)throw new Error("Failed to create mapping");let d=await l.json();r();try{ak.getChannel().emit("uireview/mappings-changed")}catch{}return d.mapping},[o,i,r]),a=sk(async c=>{if(!o)throw new Error("Not authenticated");if(!(await ne(`${lk}/api/mappings?id=${encodeURIComponent(c)}`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})).ok)throw new Error("Failed to delete mapping");r();try{ak.getChannel().emit("uireview/mappings-changed")}catch{}},[o,r]);return{currentMapping:e,loadingMapping:t,hasMapping:!!e,setCurrentMapping:n,createMapping:s,deleteMapping:a,refreshMappings:r}};$i();ve();import{useCallback as Lm,useEffect as ck,useRef as bN}from"react";import{useChannel as SN,addons as uk}from"storybook/manager-api";Ne();var wN=3e4,vN="forceRemount";function kN(e,t){let n=parseFloat(e.replace(/[^0-9.-]/g,"")),r=parseFloat(t.replace(/[^0-9.-]/g,""));if(isNaN(n)||isNaN(r))return!1;let o=Math.abs(n-r);return e.includes("px")||t.includes("px")?o<.5:e.includes("%")||t.includes("%")?o<1:o<.5}function CN(e){let t=["design system","design token","css variable","var(--","hard-coded"],n=`${e.description} ${e.suggestedFix||""} ${e.suggestedValue||""}`.toLowerCase();return t.some(r=>n.includes(r))}var TN="UICOPILOT/APPLY_FIXES",IN="UICOPILOT/FIX_STARTED",FN="UICOPILOT/FIX_COMPLETED",EN="UICOPILOT/FIX_FAILED",AN="UICOPILOT/ALL_FIXES_APPLIED",Mm=(e={})=>{let{onComplete:t,storybookRoot:n}=e,{isApplying:r,setIsApplying:o,setApplyFixesResult:i,updateIssueStatus:s,updateIssueGeneratedFix:a,setReviewDetailTab:u}=ue(),c=bN(null),l=Lm(()=>{c.current&&(clearTimeout(c.current),c.current=null)},[]);ck(()=>()=>l(),[l]),ck(()=>{let m=uk.getChannel(),b=()=>{ht.getState().isApplying&&(y.error("[useApplyFixes] WebSocket disconnected while applying fixes"),l(),o(!1),i({succeeded:0,failed:0,total:0,error:"Connection lost. Please restart Storybook and try again."}))};return m.on("channelWSDisconnect",b),()=>m.off("channelWSDisconnect",b)},[l,o,i]);let d=SN({[IN]:({issueId:m})=>{y.debug(`[useApplyFixes] Fix started for issue: ${m}`),a(m,{status:"applying"})},[FN]:({issueId:m,result:b})=>{y.debug(`[useApplyFixes] Fix completed for issue: ${m}`,b),s(m,"applied"),a(m,{status:"applied"})},[EN]:({issueId:m,error:b})=>{y.error(`[useApplyFixes] Fix failed for issue: ${m}`,b),s(m,"failed",b),a(m,{status:"failed",error:b})},[AN]:async({summary:m})=>{if(y.debug("[useApplyFixes] All fixes applied:",m),l(),o(!1),i({succeeded:m.succeeded,failed:m.failed,total:m.total}),m.failed>0?y.warn(`Applied ${m.succeeded}/${m.total} fixes. ${m.failed} failed.`):y.debug(`Successfully applied all ${m.total} fixes!`),m.succeeded>0){y.debug("[useApplyFixes] Emitting FORCE_REMOUNT to refresh story...");try{uk.getChannel().emit(vN,{storyId:ht.getState().currentStoryId}),y.debug("[useApplyFixes] FORCE_REMOUNT emitted")}catch(b){y.warn("[useApplyFixes] Failed to emit FORCE_REMOUNT:",b)}y.debug("[useApplyFixes] Reloading Storybook preview to load fresh CSS..."),await ec(),y.debug("[useApplyFixes] Storybook preview reloaded")}t&&(y.debug("[useApplyFixes] Triggering screenshot refresh after fixes"),t()),y.debug("[useApplyFixes] Switching to Issues tab to show results"),u("issues")}}),g=Lm(m=>{let b=[],I=[],E=[];for(let k of m){let D=k.currentValue||k.actual||"",N=k.suggestedValue||k.expected||"";if(D&&N&&kN(D,N)){b.push(k);continue}if(CN(k)){I.push(k);continue}let $=k.generatedFix?.filePath||k.file||"";if(!$){y.warn(`[useApplyFixes] Skipping issue ${k.id} - no target file path`);continue}let L=$.toLowerCase().split(".").pop()||"",R=["tsx","jsx","ts","js"].includes(L)?"component":"css";E.push({...k,targetFilePath:$,targetFileType:R})}return{actionable:E,negligible:b,designTokens:I}},[]);return{applyFixes:Lm(m=>{if(r){y.warn("[useApplyFixes] Already applying fixes");return}if(m.length===0){y.warn("[useApplyFixes] No issues to fix");return}let b=g(m);if(b.negligible.length>0&&y.debug(`[useApplyFixes] Filtered ${b.negligible.length} negligible issue(s)`),b.designTokens.length>0&&y.debug(`[useApplyFixes] Skipped ${b.designTokens.length} design token suggestion(s)`),b.actionable.length===0){y.warn("[useApplyFixes] No actionable issues to fix after filtering");return}let I=b.actionable.filter(D=>D.targetFileType==="css"),E=b.actionable.filter(D=>D.targetFileType==="component");if(y.debug("[useApplyFixes] Applying fixes:"),I.length>0){let D=[...new Set(I.map(N=>N.targetFilePath))];y.debug(` - ${I.length} CSS issue(s) in: ${D.join(", ")}`)}if(E.length>0){let D=[...new Set(E.map(N=>N.targetFilePath))];y.debug(` - ${E.length} component issue(s) in: ${D.join(", ")}`),y.warn(" \u26A0\uFE0F Component files will be modified - review changes carefully!")}if(!document.querySelector("#storybook-preview-iframe")?.contentWindow){y.error("[useApplyFixes] Storybook preview iframe not found \u2014 connection lost"),i({succeeded:0,failed:0,total:b.actionable.length,error:"Connection lost. Please reload the page and try again."});return}o(!0),l(),c.current=setTimeout(()=>{ht.getState().isApplying&&(y.error("[useApplyFixes] Apply timed out \u2014 no response from server"),o(!1),i({succeeded:0,failed:0,total:b.actionable.length,error:"Apply timed out. The Storybook server may have disconnected. Please reload the page and try again."}))},wN),d(TN,{issues:b.actionable,storybookRoot:n||void 0})},[d,r,o,i,g,n,l]),isApplying:r}};ve();Ue();import{useState as oZ}from"react";var aZ=G();ve();import{useState as ai}from"react";Ue();Ne();lt();var PN=G();async function lc(e,t,n,r,o){if(!e)return y.warn("[DismissalSync] No database ID provided, skipping server sync"),{success:!1,error:"No database ID"};try{let i=await ne(`${PN}/api/issues/dismiss`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},credentials:"include",body:JSON.stringify({issueId:e,dismissed:t,dismissReason:n,dismissedBy:r})});if(!i.ok){let a=await i.text();return y.error("[DismissalSync] API error:",i.status,a),{success:!1,error:`API error: ${i.status}`}}let s=await i.json();return y.debug(`[DismissalSync] Synced issue ${e}, new score: ${s.newScore}`),{success:!0,newScore:s.newScore,activeIssuesCount:s.activeIssuesCount}}catch(i){return y.error("[DismissalSync] Failed to sync:",i),{success:!1,error:i.message}}}async function pk(e,t){let n=e.filter(i=>i.dbId);if(n.length===0)return y.warn("[DismissalSync] No valid dismissals to sync (missing dbIds)"),{success:!1,error:"No valid dismissals"};let o=(await Promise.all(n.map(i=>lc(i.dbId,i.dismissed,i.dismissReason,i.dismissedBy,t)))).filter(i=>i.success);if(o.length>0){let i=o[o.length-1];return y.debug(`[DismissalSync] Batch synced ${o.length}/${n.length} dismissals`),i}return{success:!1,error:"All dismissals failed"}}hn();pm();$i();Ne();Ue();var LN=["no-fix-needed","no-fix-required","no-change-needed","no-changes-needed","no-change-required","no-changes-required","no-action-needed","no-action-required","no_fix_needed","no_change_needed","no_changes_needed","already-correct","values-match","values-already-match","already-matches","css-matches","matches-figma","correctly-implemented","implementation-correct","none-needed","none-required","skipped","skip"],MN=["no changes required","no changes needed","no fix required","no fix needed","values already match","already matches","matches expected","correctly implemented","implementation is correct"],BN=G();function Bm(){let[e,t]=ai(!1),[n,r]=ai(null),[o,i]=ai(null),[s,a]=ai(null),[u,c]=ai(null),[l,d]=ai(null),[g,p]=ai(null),{sessionToken:m}=Se(),{selectedProjectId:b}=Xe(),{currentStoryId:I,currentStoryName:E}=tt(),{workspacePath:k,updateIssueGeneratedFix:D,batchUpdateIssueGeneratedFixes:N,includeComponentIssues:$,dismissIssue:L,recalculateScore:R,addStreamingMessage:h,roleOverride:S}=ue();return{generateBatchFixes:async A=>{if(!m){r("Not authenticated");return}if(!b){r("No project selected");return}if(!I){r("No story selected");return}if(A.length===0){r("No issues provided");return}t(!0),r(null),i(null),c(null),d(null),a({total:A.length,completed:0});let f=A.map(v=>({issueId:v.id,generatedFix:{code:"",diffPreview:"",filePath:v.file||"",confidence:0,strategy:"",status:"generating"}}));N(f);try{y.debug("[useBatchGenerateFixes] Generating fixes for",A.length,"issues");let v=null;try{let z=ea();z?.computed&&(v=z.computed,y.debug("[useBatchGenerateFixes] Extracted computed styles for fix context"))}catch(z){y.warn("[useBatchGenerateFixes] Could not extract computed styles:",z)}let F=null;try{F=await oa(I),F&&y.debug("[useBatchGenerateFixes] Resolved file paths from index.json:",F)}catch(z){y.warn("[useBatchGenerateFixes] Could not resolve story file paths:",z)}let x=await fetch(`${BN}/api/fixes/generate-batch`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`,...tc(S)},body:JSON.stringify({projectId:b,storyId:I,workspacePath:k,includeComponentIssues:$,computedStyles:v,storyFilePaths:F,reviewContext:{storyName:E||void 0,variantArgs:_i()||void 0},issues:A.map(z=>({id:z.id,dbId:z.dbId,title:z.title,description:z.description,property:z.property,currentValue:z.currentValue,suggestedValue:z.suggestedValue,file:z.file,lineNumber:z.lineNumber,severity:z.severity,type:z.type,fixTarget:z.fixTarget,domElement:z.domElement,figmaContext:z.figmaContext,suggestedFix:z.suggestedFix}))})});if(!x.ok){let z=await x.json().catch(()=>({}));throw new Error(z.error||"Batch fix generation failed")}let C=await x.json();if(!C.success)throw new Error(C.error||"Batch fix generation failed");if(y.debug("[useBatchGenerateFixes] Generated",C.result.fixes.length,"fixes"),C.result.storybookRoot&&(p(C.result.storybookRoot),y.debug("[useBatchGenerateFixes] Stored storybookRoot:",C.result.storybookRoot)),C.result.selfReview&&(d(C.result.selfReview),y.debug("[useBatchGenerateFixes] Self-review:",C.result.selfReview)),C.result.partialFailure){let{failedBatches:z,errors:W}=C.result.partialFailure;y.warn(`[useBatchGenerateFixes] Partial failure: ${z.join(", ")} batch(es) failed`),y.warn("[useBatchGenerateFixes] Errors:",W),r(`Some fixes couldn't be generated (${z.join(", ")}): ${W[0]||"Unknown error"}`)}a({total:A.length,completed:C.result.fixes.length});let P=new Set(C.result.fixes.map(z=>z.issueId)),B=A.filter(z=>!P.has(z.id));B.length>0&&(y.warn(`[useBatchGenerateFixes] ${B.length} issues not returned by API, marking as failed`),B.forEach(z=>{D(z.id,{code:"",diffPreview:"",filePath:z.file||"",confidence:0,strategy:"skipped",status:"failed",error:"Fix generation skipped by server"})})),C.timing&&(i({durationSec:C.timing.durationSec,issueCount:C.timing.issueCount,avgPerIssueSec:C.timing.avgPerIssueSec}),y.debug(`[useBatchGenerateFixes] Generation took ${C.timing.durationSec}s for ${C.timing.issueCount} issues`)),C.result?.usage&&(c({inputTokens:C.result.usage.inputTokens||0,outputTokens:C.result.usage.outputTokens||0,costUsd:C.result.usage.costUsd||0,modelId:C.result.usage.modelId||"unknown",provider:C.result.usage.provider||"unknown"}),y.debug(`[useBatchGenerateFixes] Token usage: ${C.result.usage.inputTokens} in, ${C.result.usage.outputTokens} out, $${C.result.usage.costUsd?.toFixed(4)}`));let O=[],T=[];if(C.result.fixes.forEach(z=>{let W=z.noChangesNeeded===!0;if(!W){let Y=(z.fixStrategy||"").toLowerCase(),se=(z.generatedCode||"").toLowerCase(),xe=(z.diffPreview||"").toLowerCase(),Pe=LN.some(te=>Y.includes(te.toLowerCase())||Y.replace(/[-_]/g,"").includes(te.replace(/[-_]/g,""))),Ye=MN.some(te=>se.includes(te)||xe.includes(te));W=Pe||Ye}let M=A.find(Y=>Y.id===z.issueId);if(W&&M){let Y=M.suggestedValue,se=M.currentValue;Y&&se&&!ri(Y,se)&&(y.debug(`[useBatchGenerateFixes] SAFETY CHECK: values differ (expected="${Y}", actual="${se}"), NOT auto-dismissing issue ${z.issueId}`),W=!1)}let ie=M?.programmaticallyVerified===!0;if(y.debug(`[useBatchGenerateFixes] Processing fix for issue ${z.issueId}:`,{isFalsePositive:W,isProgrammaticIssue:ie,detectedBy:M?.detectedBy,noChangesNeeded:z.noChangesNeeded,fixStrategy:z.fixStrategy,title:M?.title?.substring(0,50)}),ie&&W&&(y.debug(`[useBatchGenerateFixes] SKIPPING auto-dismiss for programmatic issue ${z.issueId} (detectedBy: ${M?.detectedBy})`),W=!1),W){let Y=`Auto-dismissed: ${z.fixStrategy} - values already match`;y.debug(`[useBatchGenerateFixes] Auto-dismissing issue ${z.issueId} - noChangesNeeded: ${z.noChangesNeeded}, strategy: "${z.fixStrategy}"`),L(z.issueId,Y),O.push({localId:z.issueId,dbId:M?.dbId,dismissReason:Y}),T.push({issueId:z.issueId,generatedFix:{code:z.generatedCode||"",diffPreview:z.diffPreview||"",filePath:z.filePath,confidence:z.confidence,strategy:z.fixStrategy,status:"ready",error:void 0,noChangesExplanation:z.noChangesExplanation}})}else{let Y=z.error||z.fixStrategy==="skipped"?"failed":"ready";T.push({issueId:z.issueId,generatedFix:{code:z.generatedCode,diffPreview:z.diffPreview,filePath:z.filePath,confidence:z.confidence,strategy:z.fixStrategy,status:Y,error:z.error,noChangesExplanation:z.noChangesExplanation}})}}),T.length>0&&(y.debug(`[useBatchGenerateFixes] Applying ${T.length} fix updates in batch`),N(T)),O.length>0){if(y.debug(`[useBatchGenerateFixes] Auto-dismissed ${O.length} false positive(s), recalculating score`),R(),m){let W=O.filter(M=>M.dbId).map(M=>({dbId:M.dbId,dismissed:!0,dismissReason:M.dismissReason,dismissedBy:"system"}));W.length>0&&(y.debug(`[useBatchGenerateFixes] Syncing ${W.length} dismissals to server`),pk(W,m).then(M=>{M.success?y.debug(`[useBatchGenerateFixes] Server score updated to: ${M.newScore}`):y.warn("[useBatchGenerateFixes] Failed to sync dismissals:",M.error)}).catch(M=>{y.error("[useBatchGenerateFixes] Error syncing dismissals:",M)}))}let z=O.length===1?"1 issue was auto-dismissed as a false positive (values already match the design). The compliance score has been recalculated.":`${O.length} issues were auto-dismissed as false positives (values already match the design). The compliance score has been recalculated.`;h({role:"system",content:z})}y.debug("[useBatchGenerateFixes] Updated",C.result.fixes.length,"issues with fixes")}catch(v){y.error("[useBatchGenerateFixes] Failed to generate batch fixes:",v),r(v?.message||"Failed to generate batch fixes");let F=A.map(x=>({issueId:x.id,generatedFix:{code:"",diffPreview:"",filePath:x.file||"",confidence:0,strategy:"",status:"failed",error:v?.message||"Failed to generate fix"}}));N(F)}finally{t(!1),setTimeout(()=>a(null),1500)}},isGenerating:e,error:n,timing:o,progress:s,usage:u,selfReview:l,lastStorybookRoot:g}}ve();Ne();Ue();lt();import{useState as Dm,useCallback as Rm}from"react";var DN=G();function zm(){let[e,t]=Dm([]),[n,r]=Dm(!1),[o,i]=Dm(null),{sessionToken:s}=Se(),{selectedProjectId:a}=Xe(),{currentStoryId:u}=tt(),{setReviewResults:c}=ue(),l=Rm(async()=>{if(!(!s||!a)){r(!0),i(null);try{let p=new URLSearchParams({projectId:a,limit:"10"});u&&p.append("storyId",u);let m=await ne(`${DN}/api/reviews/list?${p.toString()}`,{method:"GET",credentials:"include",headers:{Authorization:`Bearer ${s}`}});if(!m.ok){let I=await m.json().catch(()=>({}));throw new Error(I.error||"Failed to fetch reviews")}let b=await m.json();if(!b.success)throw new Error("Failed to fetch reviews");y.debug("[useReviewHistory] Fetched",b.reviews.length,"reviews for:",u),t(b.reviews)}catch(p){y.error("[useReviewHistory] Failed to fetch reviews:",p),i(p instanceof Error?p.message:"Failed to fetch reviews")}finally{r(!1)}}},[s,a,u]),d=Rm(p=>{y.debug("[useReviewHistory] Applying review:",p.id,"with",p.issues.length,"issues");let m=[];if(typeof p.models=="string")try{m=JSON.parse(p.models)}catch(k){y.error("[useReviewHistory] Failed to parse models:",k),m=["claude-sonnet-4-20250514"]}else m=p.models;let b=p.issues.map(k=>({id:k.id,reviewId:p.id,type:k.type,severity:k.severity,title:k.description,description:k.description,file:void 0,lineNumber:void 0,property:k.property,currentValue:k.actual,suggestedValue:k.expected,suggestedCode:k.suggestedFix||void 0,status:k.status,dismissed:k.dismissed||!1,dismissReason:k.dismissReason,dismissedBy:k.dismissedBy,selectedForFix:!1,error:void 0,createdAt:new Date(k.createdAt)})),I=p.completedAt&&p.createdAt?new Date(p.completedAt).getTime()-new Date(p.createdAt).getTime():void 0,E=p.storyId||"";if(c({id:p.id,componentId:"",storyId:E,modelId:m[0]||"claude-sonnet-4-6",complianceScore:p.complianceScore,issuesCount:p.issuesCount,issues:b,createdAt:new Date(p.createdAt),timestamp:new Date(p.createdAt).toISOString(),costUsd:p.costUsd,inputTokens:p.inputTokens,outputTokens:p.outputTokens,reviewDurationMs:I}),E){let k=p.issues.filter(L=>!L.dismissed),D=k.filter(L=>L.severity==="critical").length,N=k.filter(L=>L.severity==="major").length,$=k.filter(L=>L.severity==="minor").length;jr(E,{score:p.complianceScore,issueCount:k.length,criticalCount:D,majorCount:N,minorCount:$})}},[c]),g=Rm(p=>{let m=e.find(b=>b.id===p);if(!m){y.error("[useReviewHistory] Review not found:",p);return}d(m)},[e,d]);return{reviews:e,isLoading:n,error:o,fetchReviews:l,loadReview:g}}ve();Ne();import{useEffect as RN,useState as zN,useRef as cc}from"react";import{useChannel as NN}from"storybook/manager-api";var ON="UICOPILOT/WORKSPACE_PATH",dk="UICOPILOT/REQUEST_WORKSPACE_PATH",_N=3e3,$N=500,UN=5,Nm=()=>{let[e,t]=zN({isSupported:!1,isDetecting:!0,workspacePath:null}),{setWorkspacePath:n}=ue(),r=cc(!1),o=cc(null),i=cc(0),s=cc(null),a=NN({[ON]:({path:u})=>{r.current||(r.current=!0,o.current&&clearTimeout(o.current),s.current&&clearInterval(s.current),y.debug("[useAutoApplySupport] Server responded - auto-apply supported"),y.debug("[useAutoApplySupport] Workspace path:",u),t({isSupported:!0,isDetecting:!1,workspacePath:u}),n(u))}});return RN(()=>(y.debug("[useAutoApplySupport] Requesting workspace path from server (retry 0)..."),a(dk,{}),s.current=setInterval(()=>{!r.current&&i.current<UN&&(i.current++,y.debug(`[useAutoApplySupport] Requesting workspace path from server (retry ${i.current})...`),a(dk,{}))},$N),o.current=setTimeout(async()=>{if(s.current&&clearInterval(s.current),!r.current){y.debug("[useAutoApplySupport] Channel detection timed out, trying HTTP fallback...");try{let u=await fetch("/__uicopilot/health");if(u.ok){let c=await u.json();if(c.ok&&c.workspacePath&&!r.current){r.current=!0,y.debug("[useAutoApplySupport] HTTP fallback succeeded - auto-apply supported"),y.debug("[useAutoApplySupport] Workspace path:",c.workspacePath),t({isSupported:!0,isDetecting:!1,workspacePath:c.workspacePath}),n(c.workspacePath);return}}}catch{}r.current||(r.current=!0,y.debug("[useAutoApplySupport] Both channel and HTTP detection failed - auto-apply NOT supported"),t({isSupported:!1,isDetecting:!1,workspacePath:null}))}},_N),()=>{o.current&&clearTimeout(o.current),s.current&&clearInterval(s.current)}),[a]),e},Om=async e=>{try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0;{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();let n=document.execCommand("copy");return document.body.removeChild(t),n}}catch(t){return y.error("[copyToClipboard] Failed to copy:",t),!1}};ve();Ue();import{useEffect as jN,useRef as HN}from"react";var _Z=G(),WN=new Set;function _m(){let{sessionToken:e}=Se(),{selectedProjectId:t}=Xe(),n=HN(!1);jN(()=>{t&&WN.add(t)},[e,t])}ve();hn();import{useCallback as jZ,useState as HZ}from"react";import{useState as li,useMemo as kk,useCallback as qi}from"react";Ue();Ne();lt();hn();import{useState as uo,useEffect as uc,useRef as Vi,useCallback as $m}from"react";var VN=300;function gk({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o=20,enabled:i=!0}){let[s,a]=uo([]),[u,c]=uo({}),[l,d]=uo(0),[g,p]=uo([]),[m,b]=uo(new Set),[I,E]=uo(!1),[k,D]=uo(!1),[N,$]=uo(null),L=Vi(1),R=Vi(null),h=Vi(null),[S,w]=uo(0),A=Vi(!1),f=Vi({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o});f.current={projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o};let v=$m(async(B,O,T=!1)=>{let{projectId:z,typeFilter:W,search:M,figmaPage:ie,limit:Y}=f.current;if(!z||!W)return;R.current&&R.current.abort();let se=new AbortController;R.current=se,O?D(!0):E(!0),$(null);try{let xe=G(),Pe=localStorage.getItem("uicopilot_session_token");if(!Pe)throw new Error(`Not authenticated. Please connect to ${Et.NAME} first.`);let Ye=new URLSearchParams({projectId:z,page:String(B),limit:String(Y)});W&&Ye.append("type",W),ie&&Ye.append("figmaPage",ie),M.trim()&&Ye.append("search",M.trim()),T&&Ye.append("refresh","true");let te=await fetch(`${xe}/api/figma/frames?${Ye.toString()}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${Pe}`},signal:se.signal});if(!te.ok){let me=await te.json();throw new Error(me.error||"Failed to fetch frames")}let Ie=await te.json(),Te=Ie.frames||[],pe=Ie.thumbnails||{},Be=te.headers.get("X-Cache-Status");if(Te.length===0&&B===1&&!O&&!T&&!A.current&&Be!=="HIT"){y.debug("[useFigmaFrameFetch] Empty result (cache miss), retrying with refresh=true"),A.current=!0,await v(1,!1,!0);return}O?(a(me=>[...me,...Te]),c(me=>({...me,...pe}))):(a(Te),c(pe)),d(Ie.total||Te.length),Ie.pages&&p(Ie.pages),Ie.cacheDiff?.added&&b(new Set(Ie.cacheDiff.added)),L.current=B}catch(xe){if(xe instanceof DOMException&&xe.name==="AbortError")return;let Pe=xe instanceof Error?xe.message:"Failed to fetch Figma frames.";$(Pe),y.error("Error fetching frames:",xe)}finally{se.signal.aborted||(E(!1),D(!1))}},[]);uc(()=>{if(!i||!e||!t)return;A.current=!1,h.current&&clearTimeout(h.current);let B=n.trim()?VN:0;return h.current=setTimeout(()=>{L.current=1,v(1,!1)},B),()=>{h.current&&clearTimeout(h.current)}},[e,t,n,r,i,S,v]);let F=Vi(new Set);uc(()=>{if(s.length===0)return;let B={};for(let O of s)O.thumbnailCdnUrl&&!u[O.id]&&(B[O.id]=O.thumbnailCdnUrl);Object.keys(B).length>0&&c(O=>({...O,...B}))},[s]),uc(()=>{if(s.length===0)return;let B=s.filter(T=>!T.thumbnailCdnUrl&&!u[T.id]&&!F.current.has(T.id)).map(T=>T.id);if(B.length===0)return;B.forEach(T=>F.current.add(T)),(async()=>{try{let{projectId:T}=f.current,z=G(),W=localStorage.getItem("uicopilot_session_token");if(!W||!T)return;let M=await ne(`${z}/api/figma/frames?projectId=${T}&thumbnailIds=${B.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${W}`}},6e4);if(M.ok){let ie=await M.json();ie.thumbnails&&Object.keys(ie.thumbnails).length>0&&c(Y=>({...Y,...ie.thumbnails}))}}catch(T){B.forEach(z=>F.current.delete(z)),y.error("Failed to fetch frame thumbnails:",T)}})()},[s,u]),uc(()=>()=>{R.current&&R.current.abort(),h.current&&clearTimeout(h.current)},[]);let x=$m(async()=>{let B=L.current+1;await v(B,!0)},[v]),C=$m(()=>{A.current=!1,L.current=1,a([]),c({}),w(B=>B+1)},[]),P=s.length<l;return{frames:s,thumbnails:u,totalFrames:l,availablePages:g,recentlyAdded:m,isLoading:I,loadingMore:k,hasMore:P,loadMore:x,refresh:C,error:N}}Ue();Ne();lt();import{useState as Gi,useCallback as pc,useRef as GN}from"react";function fk({projectId:e}){let[t,n]=Gi({}),[r,o]=Gi({}),[i,s]=Gi(new Set),[a,u]=Gi(new Set),[c,l]=Gi({}),[d,g]=Gi(null),p=GN({}),m=pc(async k=>{if(!(!e||i.has(k))){s(D=>new Set(D).add(k));try{let D=G(),N=localStorage.getItem("uicopilot_session_token"),$=await ne(`${D}/api/figma/variants?projectId=${e}&componentSetId=${k}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${N}`}});if($.ok){let L=await $.json();if(L.variants){n(h=>({...h,[k]:L.variants}));let R={};for(let h of L.variants)h.thumbnailCdnUrl&&(R[h.id]=h.thumbnailCdnUrl);o(h=>({...h,[k]:{...h[k]||{},...R}})),p.current[k]||(p.current[k]=new Set),Object.keys(R).forEach(h=>p.current[k].add(h))}else o(R=>({...R,[k]:R[k]||{}}))}else o(L=>({...L,[k]:{}}))}catch(D){y.error("Failed to fetch variant metadata:",D),o(N=>({...N,[k]:{}}))}finally{s(D=>{let N=new Set(D);return N.delete(k),N})}}},[e,i]),b=pc(async(k,D)=>{if(!e||D.length===0)return;p.current[k]||(p.current[k]=new Set);let N=r[k]||{},$=D.filter(L=>!p.current[k].has(L)&&!N[L]);if($.length!==0){$.forEach(L=>p.current[k].add(L)),u(L=>new Set(L).add(k));try{let L=G(),R=localStorage.getItem("uicopilot_session_token"),h=await ne(`${L}/api/figma/variants?projectId=${e}&componentSetId=${k}&thumbnailIds=${$.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${R}`}});if(h.ok){let S=await h.json();S.rateLimitError?(g(S.rateLimitError),$.forEach(w=>p.current[k]?.delete(w))):(S.thumbnails&&Object.keys(S.thumbnails).length>0&&o(w=>({...w,[k]:{...w[k]||{},...S.thumbnails}})),Array.isArray(S.failed)&&S.failed.length>0&&l(w=>{let A=new Set(w[k]||[]);for(let f of S.failed)A.add(f);return{...w,[k]:A}}))}}catch(L){y.error("Failed to fetch variant thumbnails:",L),$.forEach(R=>p.current[k]?.delete(R))}finally{u(L=>{let R=new Set(L);return R.delete(k),R})}}},[e]),I=pc(k=>{o(D=>{let N={...D};return delete N[k],N}),n(D=>{let N={...D};return delete N[k],N}),l(D=>{let N={...D};return delete N[k],N}),delete p.current[k]},[]),E=pc(()=>{o({}),n({}),l({}),p.current={}},[]);return{variantChildren:t,variantThumbnails:r,variantFailed:c,loadingVariants:i,loadingThumbnails:a,rateLimitError:d,fetchVariants:m,fetchVariantThumbnails:b,clearVariantsForSet:I,clearAllVariants:E}}Ue();$i();ve();Ne();lt();import{useState as mk,useEffect as hk,useRef as xk,useCallback as Um}from"react";function yk({expandedSetId:e,availableFilters:t,filtersReady:n}){let[r,o]=mk(null),[i,s]=mk(!1),a=xk(null),u=xk(new Set),c=Um(async()=>{if(!e||!n||t.length===0||a.current===e||u.current.has(e))return;let g=_i();if(!g||Object.keys(g).length===0)return;let p=ht.getState().currentStoryId||"",m=p.replace(/--/g," / ").replace(/-/g," ").replace(/\b\w/g,b=>b.toUpperCase());a.current=e,s(!0),o(null);try{let b=G(),I=localStorage.getItem("uicopilot_session_token"),E=await ne(`${b}/api/figma/match-filters`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({storyName:m,storyId:p,storyArgs:g,availableFilters:t.map(k=>({property:k.property,values:k.values}))})});if(E.ok){let k=await E.json();k.confidence>0&&Object.keys(k.suggestedFilters).length>0&&(y.debug("[useFilterSuggestion] Suggestion:",k),o(k))}else E.status===404?y.debug("[useFilterSuggestion] match-filters endpoint not available (404), skipping suggestions"):y.error("[useFilterSuggestion] Unexpected status:",E.status)}catch(b){y.error("[useFilterSuggestion] Error:",b)}finally{s(!1)}},[e,t,n]);hk(()=>{c()},[c]),hk(()=>{e||(o(null),a.current=null)},[e]);let l=Um(()=>{},[]),d=Um(()=>{e&&u.current.add(e),o(null)},[e]);return{suggestion:r,isLoading:i,applySuggestion:l,dismissSuggestion:d}}function bk(e,t,n){let r=[];return e&&r.push("COMPONENT_SET"),t&&r.push("FRAME"),n&&r.push("COMPONENT"),r.join(",")}function Sk(e){let t={};for(let n of Object.values(e))for(let r of n)if(r.variantProperties)for(let[o,i]of Object.entries(r.variantProperties))t[o]||(t[o]=new Set),t[o].add(i);return Object.entries(t).map(([n,r])=>({property:n,values:Array.from(r).sort()}))}function wk(e){let t={},n=r=>{if(r.variantProperties)for(let[o,i]of Object.entries(r.variantProperties))t[o]||(t[o]=new Set),t[o].add(i);r.children?.forEach(n)};return e.forEach(n),Object.entries(t).map(([r,o])=>({property:r,values:Array.from(o).sort()}))}function vk(e,t,n){if(t.length===0||!t.some(o=>o.value))return!0;let r=o=>o.variantProperties?t.every(i=>i.value?o.variantProperties?.[i.property]===i.value:!0):!1;return!!(r(e)||e.children?.some(r)||n?.some(r))}function sa({projectId:e,limit:t=20,enabled:n=!0}){let[r,o]=li(!0),[i,s]=li(!1),[a,u]=li(!1),[c,l]=li(""),[d,g]=li(""),[p,m]=li([]),[b,I]=li(new Set),E=qi(pe=>{l(pe),p.length>0&&m([]),b.size>0&&I(new Set)},[p.length,b.size]),k=bk(r,i,a),{frames:D,thumbnails:N,totalFrames:$,availablePages:L,recentlyAdded:R,isLoading:h,loadingMore:S,hasMore:w,loadMore:A,refresh:f,error:v}=gk({projectId:e,typeFilter:k,search:c,figmaPage:d||void 0,limit:t,enabled:n&&!!k}),{variantChildren:F,variantThumbnails:x,variantFailed:C,loadingVariants:P,loadingThumbnails:B,rateLimitError:O,fetchVariants:T,fetchVariantThumbnails:z,clearVariantsForSet:W,clearAllVariants:M}=fk({projectId:e}),ie=kk(()=>{let pe=Sk(F),Be=wk(D),me={};for(let Ze of[...pe,...Be])me[Ze.property]||(me[Ze.property]=new Set),Ze.values.forEach(mt=>me[Ze.property].add(mt));return Object.entries(me).map(([Ze,mt])=>({property:Ze,values:Array.from(mt).sort()}))},[F,D]),Y=b.size===1?Array.from(b)[0]:null,se=yk({expandedSetId:Y,availableFilters:ie,filtersReady:ie.length>0}),xe=qi(()=>{if(!se.suggestion)return;let{suggestedFilters:pe}=se.suggestion,Be=Object.entries(pe).map(([me,Ze])=>({property:me,value:Ze}));m(Be),se.dismissSuggestion()},[se.suggestion]),Pe=kk(()=>p.some(pe=>pe.value)?D.filter(pe=>vk(pe,p,F[pe.id])):D,[D,p,F]),Ye=qi((pe,Be)=>{Be.stopPropagation();let me=!b.has(pe);I(Ze=>{let mt=new Set(Ze);return mt.has(pe)?mt.delete(pe):mt.add(pe),mt}),me&&!F[pe]&&!P.has(pe)?T(pe):me||W(pe)},[b,F,P,T,W]),te=qi((pe,Be)=>{let me=Be===""?null:Be;m(Ze=>Ze.find(bn=>bn.property===pe)?Ze.map(bn=>bn.property===pe?{...bn,value:me}:bn):[...Ze,{property:pe,value:me}])},[]),Ie=qi(()=>{m([])},[]),Te=qi(pe=>{let Be=D.find(me=>me.id===pe);if(Be?.thumbnailCdnUrl)return Be.thumbnailCdnUrl;if(N[pe])return N[pe];for(let me of Object.values(x))if(me[pe])return me[pe]},[N,x]);return{frames:D,filteredFrames:Pe,thumbnails:N,totalFrames:$,isLoading:h,loadingMore:S,hasMore:w,error:v,loadMore:A,refresh:f,search:c,setSearch:E,figmaPage:d,setFigmaPage:g,availablePages:L,recentlyAdded:R,showComponentSets:r,showFrames:i,showComponents:a,setShowComponentSets:o,setShowFrames:s,setShowComponents:u,variantFilters:p,availableFilters:ie,handleFilterChange:te,clearFilters:Ie,expandedSets:b,toggleExpanded:Ye,variantChildren:F,variantThumbnails:x,variantFailed:C,loadingVariants:P,loadingThumbnails:B,rateLimitError:O,fetchVariantThumbnails:z,resolveThumbnail:Te,filterSuggestion:se.suggestion,filterSuggestionLoading:se.isLoading,applySuggestedFilters:xe,dismissFilterSuggestion:se.dismissSuggestion}}ve();import{useEffect as Lr,useCallback as QN,useState as JN,useRef as ZN}from"react";import{useChannel as eO}from"storybook/manager-api";function Ro(e){return e.status===401||e.status===403}var Ln=class extends Error{constructor(t){super(`Authentication failed (${t}). Please reconnect.`),this.name="AuthError",this.status=t}};hn();function Ck(e){try{let t=new URL(e),n=t.pathname.match(/\/(file|design)\/([a-zA-Z0-9]+)/),r=n?n[2]:null,o=t.searchParams.get("node-id"),i=t.hash.match(/node-id=([0-9-:]+)/),s=o||(i?i[1]:null);if(!r||!s)return null;let a=s.replace(/-/g,":");return{fileKey:r,nodeId:a}}catch(t){return zu.error("Error parsing Figma URL:",t),null}}Ne();Ue();Ue();lt();var qN=G();async function jm(e){let t=await ne(`${qN}/api/projects`,{headers:{Authorization:`Bearer ${e}`}});if(Ro(t))throw new Ln(t.status);return t.ok?(await t.json()).projects||[]:[]}Ue();lt();var YN=G();async function Hm(e,t){let n=await ne(`${YN}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(Ro(n))throw new Ln(n.status);if(!n.ok)return[];let r=await n.json();return Array.isArray(r.mappings)?r.mappings:[]}Ue();lt();var KN=G();async function Wm(e,t,n,r=10,o=!1){let i=new URLSearchParams({projectId:t,limit:String(r),storyId:n});o&&i.set("includeAI","true");let s=await ne(`${KN}/api/reviews/list?${i}`,{headers:{Authorization:`Bearer ${e}`}});if(Ro(s))throw new Ln(s.status);if(!s.ok)return[];let a=await s.json();return a.success?a.reviews||[]:[]}Ue();lt();var XN=G();async function Vm(e,t){let n=await ne(`${XN}/api/reviews/status?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(Ro(n))throw new Ln(n.status);if(!n.ok)return{};let r=await n.json();return r.success?r.statuses||{}:{}}$i();function tO(e){return e.storyId?{id:e.id,componentId:"",storyId:e.storyId,modelId:e.models?.[0]||"unknown",complianceScore:e.complianceScore,issuesCount:e.issuesCount,costUsd:e.costUsd,inputTokens:e.inputTokens,outputTokens:e.outputTokens,parentReviewId:e.parentReviewId||void 0,iterationNumber:e.iterationNumber,storybookImageData:e.storybookScreenshot||void 0,figmaImageData:e.figmaScreenshot||void 0,aiPrompt:e.aiPrompt||void 0,aiResponse:e.aiResponse||void 0,issues:e.issues.map(t=>({id:t.id,reviewId:e.id,type:t.type,severity:t.severity,title:t.description,description:t.description,property:t.property,currentValue:t.actual,suggestedValue:t.expected,suggestedCode:t.suggestedFix||void 0,status:t.status||"pending",dismissed:t.dismissed||!1,dismissReason:t.dismissReason,dismissedBy:t.dismissedBy,figmaContext:t.figmaContext,selectedForFix:!1,createdAt:new Date(t.createdAt)})),createdAt:new Date(e.createdAt)}:null}var nO=G(),rO="UICOPILOT/WORKSPACE_PATH",oO="UICOPILOT/REQUEST_WORKSPACE_PATH",Gm=!1;function qm(){let{sessionToken:e,setSessionToken:t,setAuthError:n}=Se(),{projects:r,selectedProjectId:o,currentStorybookPath:i,setProjects:s,setSelectedProjectId:a,setLoadingProjects:u,setCurrentStorybookPath:c}=Xe(),{currentStoryId:l,mappingsRefreshKey:d,mappingsByStoryId:g,setFigmaFileUrl:p,setCurrentMapping:m,setMappingsByStoryId:b,setMappingSource:I,setLoadingMapping:E}=tt(),{setReviewResults:k,setReviewDetailTab:D,setStorybookImageUrl:N,setFigmaImageUrl:$,setFullPrompt:L,setFullResponse:R,bulkAddReviews:h,setReviewHistoryLoading:S}=ue(),[w,A]=JN([]),f=ZN(null);Lr(()=>{let x=C=>{C.origin.startsWith(nO)&&C.data?.type==="UICOPILOT_AUTH_SUCCESS"&&C.data.token&&(y.debug("[useDataInit] OAuth success, setting token"),t(C.data.token))};return window.addEventListener("message",x),()=>window.removeEventListener("message",x)},[t]);let v=eO({[rO]:x=>{y.debug("[useDataInit] Received workspace path:",x.path),c(x.path)}});Lr(()=>{v(oO)},[v]),Lr(()=>{if(!e)return;let x=!1;return(async()=>{try{u(!0);let P=await jm(e);x||(s(P),n(null))}catch(P){P instanceof Ln&&(t(null),n(P.message)),y.error("[useDataInit] Failed to fetch projects:",P)}finally{x||u(!1)}})(),()=>{x=!0}},[e,s,u]),Lr(()=>{if(!i||r.length===0)return;let x=r.find(C=>C.storybookRoot===i);x?o!==x.id&&(y.debug("[useDataInit] Auto-selecting project:",x.name),a(x.id)):o&&(y.debug("[useDataInit] No project matches this Storybook \u2014 clearing selection"),a(null))},[i,r,o,a]),Lr(()=>{if(!o||r.length===0)return;let x=r.find(P=>P.id===o),C=x?.figmaFileId;if(x&&typeof C=="string"&&C){let P=C,B=P.includes("figma.com")&&Ck(P)?.fileKey||P;p(`https://www.figma.com/file/${B}`)}},[o,r,p]),Lr(()=>!e||!o||Gm?void 0:(Gm=!0,(async()=>{try{let C=await Vm(e,o);for(let[P,B]of Object.entries(C))jr(P,{score:B.score,issueCount:B.issueCount,criticalCount:B.criticalCount,majorCount:B.majorCount,minorCount:B.minorCount});y.debug("[useDataInit] Populated sidebar badges for",Object.keys(C).length,"stories")}catch(C){C instanceof Ln&&(t(null),n(C.message)),y.error("[useDataInit] Failed to fetch review statuses:",C)}})(),()=>{Gm=!1}),[e,o]),Lr(()=>{if(!e||!o)return;let x=!1;return(async()=>{try{let P=await Hm(e,o);if(x)return;let B={};for(let O of P)O.storyId&&(B[O.storyId]=O);b(B),tk(Object.keys(B))}catch(P){P instanceof Ln&&(t(null),n(P.message)),y.error("[useDataInit] Failed to fetch all mappings:",P)}})(),()=>{x=!0}},[e,o,d,b]),Lr(()=>{if(!l){m(null),I(null);return}let x=g[l]||null;x?(m(x),I("database")):(m(null),I(null)),E(!1)},[l,g,m,I,E]),Lr(()=>{A([]),f.current=null},[l]),Lr(()=>{if(!e||!o||!l)return;let x=!1;return(async()=>{S(!0);try{let P=await Wm(e,o,l,10,!0);if(!x){A(P);let B=P.map(O=>tO(O)).filter(Boolean);B.length>0&&h(B)}}catch(P){P instanceof Ln&&(t(null),n(P.message)),y.error("[useDataInit] Failed to fetch reviews:",P)}finally{x||S(!1)}})(),()=>{x=!0}},[e,o,l,S,h]);let F=QN(x=>{y.debug("[useDataInit] Applying review:",x.id,"with",x.issues.length,"issues");let C=[];if(typeof x.models=="string")try{C=JSON.parse(x.models)}catch{C=["claude-sonnet-4-20250514"]}else C=x.models;let P=x.issues.map(z=>({id:z.id,reviewId:x.id,type:z.type,severity:z.severity,title:z.description,description:z.description,file:void 0,lineNumber:void 0,property:z.property,currentValue:z.actual,suggestedValue:z.expected,suggestedCode:z.suggestedFix||void 0,status:z.status,dismissed:z.dismissed||!1,dismissReason:z.dismissReason,dismissedBy:z.dismissedBy,figmaContext:z.figmaContext,selectedForFix:!1,error:void 0,createdAt:new Date(z.createdAt)})),B=x.completedAt&&x.createdAt?new Date(x.completedAt).getTime()-new Date(x.createdAt).getTime():void 0,O=x.storyId||"";k({id:x.id,componentId:"",storyId:O,modelId:C[0]||"claude-sonnet-4-5-20250929",complianceScore:x.complianceScore,issuesCount:x.issuesCount,issues:P,createdAt:new Date(x.createdAt),timestamp:new Date(x.createdAt).toISOString(),costUsd:x.costUsd,inputTokens:x.inputTokens,outputTokens:x.outputTokens,reviewDurationMs:B});let T=ht.getState().currentStoryId;if(O&&O===T&&(x.storybookScreenshot&&(N(x.storybookScreenshot),pv(O,x.storybookScreenshot,x.figmaScreenshot??void 0),y.debug("[useDataInit] Loaded persisted Storybook screenshot")),x.figmaScreenshot&&($(x.figmaScreenshot),y.debug("[useDataInit] Loaded persisted Figma screenshot"))),x.aiPrompt&&(L(x.aiPrompt),y.debug("[useDataInit] Loaded persisted AI prompt")),x.aiResponse&&(R(x.aiResponse),y.debug("[useDataInit] Loaded persisted AI response")),O){let z=x.issues.filter(Y=>!Y.dismissed),W=z.filter(Y=>Y.severity==="critical").length,M=z.filter(Y=>Y.severity==="major").length,ie=z.filter(Y=>Y.severity==="minor").length;jr(O,{score:x.complianceScore,issueCount:z.length,criticalCount:W,majorCount:M,minorCount:ie})}},[k,N,$,L,R]);Lr(()=>{if(w.length>0&&l&&f.current!==l){let x=w[0];x&&x.storyId===l&&(y.debug("[useDataInit] Auto-loading review:",x.id,"for:",l),f.current=l,F(x),D("issues"))}},[w,l,F,D])}hn();import{styled as aa}from"storybook/theming";var iO=aa.div({display:"flex",gap:"10px",marginTop:"8px"}),Tk=aa.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",fontSize:"13px",color:e.color.defaultText,cursor:"pointer"})),Ik=aa.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.base==="dark"?"rgba(0, 204, 102, 0.2)":"rgba(0, 204, 102, 0.1)",border:`1px solid ${e.color.positive}`,borderRadius:"8px",marginBottom:"12px",display:"flex",alignItems:"center",justifyContent:"space-between"})),Fk=aa.div({display:"flex",alignItems:"center",gap:"8px"}),Ek=aa(En)(({theme:e})=>({backgroundColor:`${e.base==="dark"?"rgba(197, 48, 48, 0.15)":"rgba(254, 178, 178, 0.3)"} !important`,color:`${e.color.negative} !important`,border:`1px solid ${e.color.negative} !important`,padding:"6px 12px !important",fontSize:"12px !important"})),Ak=({onConnect:e})=>{let{sessionToken:t,authMethod:n,setAuthMethod:r,startOAuth:o,logout:i,oauthPending:s,authError:a,saveApiKey:u}=Ks(),[c,l]=nt.useState(""),d=()=>{let g=c.trim();g&&(u(g),e?.())};return nt.createElement(nt.Fragment,null,nt.createElement(wo,null,nt.createElement(vo,null,"Authentication Method"),nt.createElement(iO,null,nt.createElement(Tk,null,nt.createElement("input",{type:"radio",name:"authMethod",checked:n==="oauth",onChange:()=>r("oauth")}),"OAuth (Recommended)"),nt.createElement(Tk,null,nt.createElement("input",{type:"radio",name:"authMethod",checked:n==="apikey",onChange:()=>r("apikey")}),"API Key"))),n==="oauth"&&nt.createElement(wo,null,nt.createElement(vo,null,"Connect to ",Et.NAME),t?nt.createElement(Ik,null,nt.createElement(Fk,null,nt.createElement("span",{style:{fontSize:"18px"}},"\u2713"),nt.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"#00cc66"}},"Connected to ",Et.NAME)),nt.createElement(Ek,{onClick:i,title:"Sign out and switch to a different account"},"Sign out")):s?nt.createElement("div",{style:{padding:"20px 0",textAlign:"center",fontSize:"13px"}},nt.createElement("div",{style:{fontSize:"24px",marginBottom:"8px"}},"\u{1F510}"),nt.createElement(xs,{style:{marginBottom:"8px",fontWeight:600}},"Sign-in window opened"),nt.createElement(xs,{style:{color:"inherit",opacity:.7}},"Complete sign-in in the popup, then return here.")):nt.createElement("div",null,a&&nt.createElement("div",{style:{marginBottom:"12px",padding:"10px 12px",backgroundColor:"rgba(239, 68, 68, 0.1)",border:"1px solid rgba(239, 68, 68, 0.4)",borderRadius:"6px",fontSize:"12px",color:"#b91c1c"}},"\u26A0\uFE0F ",a),nt.createElement(xs,{style:{marginBottom:"12px"}},"Connect to ",Et.NAME," to manage projects and integrations."),nt.createElement(En,{onClick:()=>{o(),e?.()}},"\u{1F517} Connect to ",Et.NAME))),n==="apikey"&&nt.createElement(wo,null,nt.createElement(vo,null,"Session Token"),t?nt.createElement(Ik,null,nt.createElement(Fk,null,nt.createElement("span",{style:{fontSize:"18px"}},"\u2713"),nt.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"#00cc66"}},"Connected to ",Et.NAME)),nt.createElement(Ek,{onClick:i,title:"Sign out and switch to a different account"},"Sign out")):nt.createElement(nt.Fragment,null,nt.createElement(xs,{style:{marginBottom:"12px"}},"Paste the session token from your ",Et.NAME," setup page."),nt.createElement(hs,{type:"password",placeholder:"Paste session token",value:c,onChange:g=>l(g.target.value)}),nt.createElement(En,{disabled:!c.trim(),style:{marginTop:"12px"},onClick:d},"Save Token"))))};import ct,{useState as Yi}from"react";ve();import jn,{useState as sO,useEffect as aO,useCallback as lO}from"react";import{styled as po,keyframes as Pk}from"storybook/theming";var cO=Pk({from:{opacity:0},to:{opacity:1}}),uO=Pk({from:{opacity:0,transform:"translate(-50%, -50%) scale(0.95)"},to:{opacity:1,transform:"translate(-50%, -50%) scale(1)"}}),pO=po.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,animation:`${cO} 150ms ease-out`}),dO=po.div(({theme:e})=>({position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:10001,backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,padding:`${e.layoutMargin*2.4}px`,minWidth:"320px",maxWidth:"440px",boxShadow:"0 8px 30px rgba(0, 0, 0, 0.2)",animation:`${uO} 150ms ease-out`})),gO=po.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,color:e.color.defaultText})),fO=po.p(({theme:e})=>({margin:`${e.layoutMargin}px 0 ${e.layoutMargin*2}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,color:e.color.defaultText,lineHeight:1.5})),mO=po.div(({theme:e})=>({display:"flex",justifyContent:"flex-end",gap:`${e.layoutMargin*.8}px`})),hO=po.input(({theme:e})=>({width:"100%",padding:`${e.layoutMargin*.6}px ${e.layoutMargin*.8}px`,fontSize:e.typography.size.s2,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.background.app,color:e.color.defaultText,marginBottom:`${e.layoutMargin}px`,boxSizing:"border-box","&:focus":{outline:"none",borderColor:e.color.secondary}})),xO=po.p(({theme:e})=>({margin:`0 0 ${e.layoutMargin*.6}px`,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.base,color:e.color.mediumdark})),yO=po.button(({theme:e})=>({padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,cursor:"pointer",backgroundColor:"transparent",color:e.color.defaultText,transition:"background-color 0.15s","&:hover":{backgroundColor:e.background.hoverable}})),bO=po.button(({theme:e,variant:t})=>({padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.6}px`,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,border:"none",borderRadius:e.appBorderRadius,cursor:"pointer",transition:"opacity 0.15s",backgroundColor:t==="danger"?e.color.negative:e.color.secondary,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),Hr=({isOpen:e,title:t,message:n,confirmLabel:r="OK",cancelLabel:o="Cancel",variant:i="default",confirmText:s,onConfirm:a,onCancel:u})=>{let[c,l]=sO(""),d=!!s&&c!==s,g=lO(p=>{p.key==="Escape"&&u()},[u]);return aO(()=>{if(e)return l(""),document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,g]),e?jn.createElement(jn.Fragment,null,jn.createElement(pO,{onClick:u}),jn.createElement(dO,{role:"dialog","aria-modal":"true","aria-label":t},jn.createElement(gO,null,t),jn.createElement(fO,null,n),s&&jn.createElement(jn.Fragment,null,jn.createElement(xO,null,"Type ",jn.createElement("strong",null,s)," to confirm:"),jn.createElement(hO,{type:"text",value:c,onChange:p=>l(p.target.value),placeholder:s,autoFocus:!0})),jn.createElement(mO,null,jn.createElement(yO,{onClick:u},o),jn.createElement(bO,{variant:i,onClick:a,disabled:d},r)))):null};import{styled as cn}from"storybook/theming";function SO(e,t,n){return e.filter(r=>r.id===t||!r.storybookRoot?!0:n?r.storybookRoot===n:!1)}var wO=cn.div({marginBottom:"30px"}),vO=cn.div({display:"flex",gap:"8px",alignItems:"center"}),kO=cn(Sn)({flex:1}),CO=cn(on)({padding:"8px 12px",whiteSpace:"nowrap"}),TO=cn.div(({theme:e})=>({marginTop:"12px",padding:"12px",backgroundColor:e.background.hoverable,borderRadius:"6px"})),IO=cn.div(({theme:e})=>({marginTop:"6px",padding:"8px 10px",fontSize:"11px",lineHeight:1.4,color:e.color.warning,backgroundColor:`${e.color.warning}15`,border:`1px solid ${e.color.warning}40`,borderRadius:"4px"})),FO=cn.div(({theme:e})=>({marginBottom:"10px",padding:"8px 10px",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",backgroundColor:e.background.content})),EO=cn.div(({theme:e})=>({fontSize:"11px",lineHeight:1.5,color:e.color.mediumdark,marginBottom:"6px"})),AO=cn.div({display:"flex",alignItems:"center",gap:"6px"}),PO=cn.a(({theme:e})=>({flex:1,fontSize:"11px",fontFamily:e.typography.fonts.mono,color:e.color.secondary,textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","&:hover":{textDecoration:"underline"}})),LO=cn.button(({theme:e})=>({fontSize:"11px",padding:"3px 8px",borderRadius:"3px",border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.hoverable,color:e.color.defaultText,cursor:"pointer",whiteSpace:"nowrap","&:hover":{backgroundColor:e.background.app}}));function Lk(e){return/figma\.com\/community\/file\//.test(e)}var Ym=cn.div({marginBottom:"10px","&:last-child":{marginBottom:0}}),Km=cn.label(({theme:e})=>({display:"block",fontSize:"12px",fontWeight:500,marginBottom:"4px",color:e.color.mediumdark})),Xm=cn(hs)({fontSize:"13px",padding:"6px 8px"}),MO=cn.div({display:"flex",gap:"8px",marginTop:"12px"}),Mk=cn(on)({fontSize:"12px",padding:"6px 12px"}),BO=cn(Mk)(({theme:e})=>({backgroundColor:"transparent",color:e.color.mediumdark,border:`1px solid ${e.appBorderColor}`,"&:hover":{backgroundColor:e.background.hoverable}})),DO=cn.button(({theme:e})=>({padding:"8px",backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:e.typography.size.s1,transition:"all 0.15s","&:hover:not(:disabled)":{borderColor:e.color.negative,color:e.color.negative},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),Bk=()=>{let{projects:e,selectedProjectId:t,setSelectedProjectId:n,loadingProjects:r,createProject:o,deleteProject:i}=lo(),{currentStorybookPath:s}=Xe(),[a,u]=Yi(!1),[c,l]=Yi(!1),[d,g]=Yi(!1),[p,m]=Yi(!1),[b,I]=Yi({name:"",storybookRoot:"",figmaFileUrl:""}),E=e.find(f=>f.id===t),k=SO(e,t,s),D=f=>{n(f||null),u(!1)},N=async()=>{if(t)try{m(!0),await i(t),g(!1)}catch(f){console.error("Failed to delete project:",f)}finally{m(!1)}},$=process.env.STORYBOOK_UICOPILOT_FIGMA_KIT||"",[L,R]=Yi(!1),h=()=>{$&&navigator.clipboard.writeText($).then(()=>{R(!0),setTimeout(()=>R(!1),2e3)})},S=()=>{if(u(!0),s){let f=s.replace(/\/+$/,"").split("/").pop()||"";I({storybookRoot:s,name:f,figmaFileUrl:""})}},w=async()=>{if(b.name.trim())try{l(!0);let f;if(b.figmaFileUrl.trim()){let F=b.figmaFileUrl.trim(),x=F.match(/figma\.com\/(?:file|design)\/([a-zA-Z0-9]+)/);f=x?x[1]:F}let v=await o({name:b.name.trim(),storybookRoot:b.storybookRoot.trim()||void 0,figmaFileId:f});n(v.id),u(!1),I({name:"",storybookRoot:"",figmaFileUrl:""})}catch(f){console.error("Failed to create project:",f)}finally{l(!1)}},A=f=>{I(v=>{let F={...v,storybookRoot:f};if(!v.name&&f){let x=f.replace(/\/+$/,"").split("/").pop()||"";F.name=x}return F})};return ct.createElement(wO,null,ct.createElement(ky,null,"Project"),ct.createElement(vO,null,ct.createElement(kO,{value:t||"",onChange:f=>D(f.target.value),disabled:r||a},ct.createElement("option",{value:""},"-- Select a project --"),k.map(f=>ct.createElement("option",{key:f.id,value:f.id},f.name))),ct.createElement(CO,{onClick:S,disabled:r,type:"button"},"+ New"),ct.createElement(DO,{onClick:()=>g(!0),disabled:!t||r,title:"Delete project",type:"button"},"\u{1F5D1}")),ct.createElement(Hr,{isOpen:d,title:"Delete Project",message:`This will permanently remove all reviews, mappings, and history for "${E?.name||"this project"}". This cannot be undone.`,confirmLabel:p?"Deleting...":"Delete",confirmText:E?.name,variant:"danger",onConfirm:N,onCancel:()=>g(!1)}),a&&ct.createElement(TO,null,ct.createElement(Ym,null,ct.createElement(Km,null,"Storybook Path (for fix generation)"),ct.createElement(Xm,{type:"text",placeholder:"/path/to/your/storybook",value:b.storybookRoot,onChange:f=>A(f.target.value)})),ct.createElement(Ym,null,ct.createElement(Km,null,"Project Name *"),ct.createElement(Xm,{type:"text",placeholder:"my-storybook",value:b.name,onChange:f=>{let v=f.target.value;I(F=>({...F,name:v}))}})),$&&ct.createElement(FO,null,ct.createElement(EO,null,ct.createElement("strong",null,"1.")," Open this template's Figma kit, then click"," ",ct.createElement("strong",null,"Open in Figma")," (or ",ct.createElement("strong",null,"Get a copy"),") to duplicate it to your own Figma workspace. ",ct.createElement("strong",null,"2.")," ","Paste the URL of your copy (",ct.createElement("code",null,"figma.com/design/\u2026"),") into the field below."),ct.createElement(AO,null,ct.createElement(PO,{href:$,target:"_blank",rel:"noopener noreferrer",title:$},$),ct.createElement(LO,{type:"button",onClick:h},L?"Copied!":"Copy"))),ct.createElement(Ym,null,ct.createElement(Km,null,"Your Figma File URL (after duplicating)"),ct.createElement(Xm,{type:"text",placeholder:"https://www.figma.com/design/...",value:b.figmaFileUrl,onChange:f=>{let v=f.target.value;I(F=>({...F,figmaFileUrl:v}))}}),Lk(b.figmaFileUrl)&&ct.createElement(IO,null,"\u26A0 This is a community file URL \u2014 it can't be read by the API. Use the duplicated copy's URL instead (see instructions above).")),ct.createElement(MO,null,ct.createElement(Mk,{onClick:w,disabled:c||!b.name.trim()||!b.figmaFileUrl.trim()||Lk(b.figmaFileUrl)},c?"Creating...":"Create"),ct.createElement(BO,{onClick:()=>{u(!1),I({name:"",storybookRoot:"",figmaFileUrl:""})}},"Cancel"))))};import St,{useState as Lc,useCallback as p1,useEffect as V4}from"react";import{styled as Br}from"storybook/theming";import tn,{useState as Ki,useEffect as ZO,useCallback as dc}from"react";import{styled as Wr}from"storybook/theming";ve();Ue();lt();ve();Ue();lt();import Vt,{useState as Qm}from"react";import{styled as Hn,keyframes as RO}from"storybook/theming";var zO={autoLayout:"Auto Layout",componentStructure:"Structure",naming:"Naming",constraints:"Constraints",spacing:"Spacing",styles:"Styles",variants:"Variants"},NO=e=>e==="pass"?"\u2713":e==="warn"?"\u26A0":"\u2717",OO=Hn.div({position:"relative",display:"inline-flex"}),_O=RO`
31
31
  0% { transform: rotate(0deg); }
32
32
  100% { transform: rotate(360deg); }
33
- `,FO=Vn.button(({score:e,isLoading:t,theme:n})=>{let r=()=>t?n.color.secondary:e?e>=80?n.color.positive:e>=50?n.color.warning:n.color.negative:n.color.mediumdark;return{display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"10px",fontSize:n.typography.size.s1,fontWeight:n.typography.weight.bold,fontFamily:n.typography.fonts.base,backgroundColor:r(),color:n.color.inverseText,cursor:t?"wait":"pointer",transition:"all 0.15s",border:"none",outline:"none","&:hover:not(:disabled)":{transform:"scale(1.05)",opacity:.9},"&:disabled":{cursor:"not-allowed",opacity:.7}}}),EO=Vn.span`
33
+ `,$O=Hn.button(({score:e,isLoading:t,theme:n})=>{let r=()=>t?n.color.secondary:e?e>=80?n.color.positive:e>=50?n.color.warning:n.color.negative:n.color.mediumdark;return{display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"10px",fontSize:n.typography.size.s1,fontWeight:n.typography.weight.bold,fontFamily:n.typography.fonts.base,backgroundColor:r(),color:n.color.inverseText,cursor:t?"wait":"pointer",transition:"all 0.15s",border:"none",outline:"none","&:hover:not(:disabled)":{transform:"scale(1.05)",opacity:.9},"&:disabled":{cursor:"not-allowed",opacity:.7}}}),UO=Hn.span`
34
34
  display: inline-block;
35
35
  width: 10px;
36
36
  height: 10px;
37
37
  border: 2px solid rgba(255,255,255,0.3);
38
38
  border-top-color: #fff;
39
39
  border-radius: 50%;
40
- animation: ${IO} 0.8s linear infinite;
41
- `,AO=Vn.div(({theme:e})=>({position:"absolute",top:"100%",left:"0",marginTop:"6px",padding:"12px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.2)",zIndex:1e3,minWidth:"220px",fontSize:e.typography.size.s1})),PO=Vn.div(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"10px",paddingBottom:"8px",borderBottom:`1px solid ${e.appBorderColor}`})),LO=Vn.div(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText,fontSize:e.typography.size.s2})),MO=Vn.span(({score:e,theme:t})=>{let n=()=>e>=80?t.color.positive:e>=50?t.color.warning:t.color.negative;return{fontWeight:700,fontSize:t.typography.size.s3,color:n()}}),BO=Vn.div({display:"flex",flexDirection:"column",gap:"6px",marginBottom:"10px"}),DO=Vn.div(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:e.typography.size.s1,color:e.color.defaultText})),RO=Vn.span({display:"flex",alignItems:"center",gap:"4px"}),zO=Vn.span(({status:e,theme:t})=>({color:e==="pass"?t.color.positive:e==="warn"?t.color.warning:t.color.negative,fontSize:t.typography.size.s1})),NO=Vn.span(({theme:e})=>({fontWeight:500,color:e.color.mediumdark})),OO=Vn.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,lineHeight:1.4,fontStyle:"italic"})),_O=Vn.ul(({theme:e})=>({margin:"8px 0 0 0",padding:"0 0 0 14px",fontSize:e.typography.size.s1,color:e.color.defaultText,"& li":{marginBottom:"2px"}})),vk=({figmaFileUrl:e})=>{let{selectedProjectId:t}=Qe(),[n,r]=Wm(!1),[o,i]=Wm(!1),[s,a]=Wm(null),u=async()=>{if(!(!e||!t||o)){i(!0);try{let c=G(),l=localStorage.getItem("uicopilot_session_token"),d=await te(`${c}/api/figma/quality-check`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({projectId:t,figmaFileUrl:e,figmaMetadata:{}})});if(!d.ok)throw new Error("Failed to check quality");let g=await d.json();a(g),r(!0)}catch(c){console.error("[FigmaQualityBadge] Quality check error:",c)}finally{i(!1)}}};return e?qt.createElement(TO,{onMouseEnter:()=>s&&r(!0),onMouseLeave:()=>r(!1)},qt.createElement(FO,{score:s?.score,isLoading:o,onClick:u,disabled:o||!t,title:s?"Click to refresh quality check":"Click to check Figma design quality"},o?qt.createElement(qt.Fragment,null,qt.createElement(EO,null)," Checking..."):s?qt.createElement(qt.Fragment,null,"\u{1F3A8} ",Math.round(s.score),"%"):qt.createElement(qt.Fragment,null,"\u{1F3A8} Check Quality")),n&&s&&qt.createElement(AO,null,qt.createElement(PO,null,qt.createElement(LO,null,"Figma Design Quality"),qt.createElement(MO,{score:s.score},Math.round(s.score),"%")),qt.createElement(BO,null,Object.entries(s.categories).map(([c,l])=>qt.createElement(DO,{key:c},qt.createElement(RO,null,qt.createElement(zO,{status:l.status},CO(l.status)),kO[c]||c),qt.createElement(NO,null,l.score)))),s.summary&&qt.createElement(OO,null,s.summary),s.recommendations?.length>0&&qt.createElement(_O,null,s.recommendations.slice(0,2).map((c,l)=>qt.createElement("li",{key:l},c))))):null};var UO=Wr.div(({theme:e})=>({padding:"12px 16px",marginBottom:"16px"})),jO=Wr.div({display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"}),HO=Wr.label(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),WO=Wr.div({display:"flex",gap:"8px",alignItems:"center"}),VO=Wr.div({position:"relative",flex:1,display:"flex"}),GO=Wr.input(({theme:e})=>({width:"100%",padding:"8px 36px 8px 12px",fontSize:"13px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.input.background,color:e.input.color,outline:"none","&:focus":{borderColor:ae,boxShadow:`0 0 0 1px ${ae}`},"&::placeholder":{color:e.color.mediumlight}})),qO=Wr(an)({whiteSpace:"nowrap"}),YO=Wr.button(({theme:e})=>({padding:"8px",backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:"12px",transition:"all 0.15s","&:hover:not(:disabled)":{borderColor:e.color.negative,color:e.color.negative},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),KO=Wr.button(({theme:e,copied:t})=>({position:"absolute",top:"50%",right:"5px",transform:"translateY(-50%)",width:"26px",height:"26px",padding:0,border:"none",borderRadius:"5px",background:"transparent",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",color:t?e.color.positive:e.color.defaultText,transition:"color 0.15s, background 0.15s","&:hover":{color:t?e.color.positive:ae,background:e.background.hoverable}})),XO=()=>rn.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},rn.createElement("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),rn.createElement("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})),QO=()=>rn.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},rn.createElement("polyline",{points:"20 6 9 17 4 12"}));function JO(e){return e?e.includes("figma.com")?e:/^[a-zA-Z0-9]+$/.test(e)?`https://www.figma.com/design/${e}`:e:""}var ZO=Wr.span(({variant:e})=>({fontSize:"12px",color:e==="success"?"#16a34a":"#dc2626",marginTop:"4px",display:"block"})),kk=()=>{let{selectedProjectId:e,projects:t}=Qe(),{sessionToken:n}=Se(),{updateProject:r}=so(),o=t.find(x=>x.id===e),[i,s]=Yi(""),[a,u]=Yi(!1),[c,l]=Yi(null),[d,g]=Yi(!1),p=o?.figmaFileUrl||o?.figmaFileId||"",m=JO(p);$O(()=>{s(m),l(null)},[o?.id,m]);let b=i!==m,F=ic(async()=>{if(!(!e||!b))try{u(!0),l(null),await r(e,{figmaFileUrl:i.trim()||void 0});let x=G();try{await te(`${x}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({projectId:e})})}catch{}te(`${x}/api/figma/frames?projectId=${e}&type=COMPONENT_SET&page=1&limit=1&refresh=true`,{headers:{Authorization:`Bearer ${n}`}},6e4).catch(()=>{}),l({type:"success",message:"Saved \u2014 reloading Figma cache\u2026"}),setTimeout(()=>l(null),3e3)}catch(x){l({type:"error",message:x instanceof Error?x.message:"Failed to save"})}finally{u(!1)}},[e,i,b,r]),E=ic(x=>{x.key==="Enter"&&b&&!a&&F()},[b,a,F]),v=ic(async()=>{if(i)try{await navigator.clipboard.writeText(i),g(!0),setTimeout(()=>g(!1),1500)}catch{}},[i]),[D,O]=Yi(!1),[$,L]=Yi(!1),N=ic(async()=>{if(!(!e||!n))try{L(!0),await r(e,{figmaFileUrl:""});let x=G();await te(`${x}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({projectId:e})}).catch(()=>{}),await te(`${x}/api/figma/frames/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({projectId:e})}).catch(()=>{}),s(""),O(!1),l({type:"success",message:"Figma file removed and cache cleared"}),setTimeout(()=>l(null),3e3)}catch{l({type:"error",message:"Failed to remove Figma file"})}finally{L(!1)}},[e,n,r]);return e?rn.createElement(UO,null,rn.createElement(jO,null,rn.createElement(HO,null,"Figma File URL"),rn.createElement(vk,{figmaFileUrl:m})),rn.createElement(WO,null,rn.createElement(VO,null,rn.createElement(GO,{type:"text",value:i,onChange:x=>s(x.target.value),onKeyDown:E,placeholder:"https://www.figma.com/file/..."}),i&&rn.createElement(KO,{type:"button",copied:d,onClick:v,title:"Copy Figma URL to clipboard"},d?rn.createElement(QO,null):rn.createElement(XO,null))),rn.createElement(qO,{onClick:F,disabled:!b||a},a?"Saving...":"Save"),m&&rn.createElement(YO,{onClick:()=>O(!0),title:"Remove Figma file and clear cache"},"\u{1F5D1}")),rn.createElement(Hr,{isOpen:D,title:"Remove Figma File",message:"This will remove the Figma file link and clear all cached data (thumbnails, enrichment). Component mappings will be preserved but won't have design data until a new file is linked.",confirmLabel:$?"Removing...":"Remove",variant:"danger",onConfirm:N,onCancel:()=>O(!1)}),c&&rn.createElement(ZO,{variant:c.type},c.message)):null};import Et,{useState as bc,useEffect as u4}from"react";import{styled as nr}from"storybook/theming";ve();Ue();import Ze,{useState as Ji,useEffect as G$,useCallback as Oo}from"react";import{styled as on}from"storybook/theming";Ue();Ue();Ne();import X,{useState as Xi,useEffect as uC,useMemo as rh,useCallback as pC}from"react";import{styled as qe}from"storybook/theming";ct();import Me,{useState as cC,useEffect as e_,memo as t_}from"react";import{styled as he}from"storybook/theming";var Ck=he.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001}),Tk=he.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"6px",width:"90%",maxWidth:"900px",maxHeight:"85vh",display:"flex",flexDirection:"column",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.3)",border:`1px solid ${e.appBorderColor}`})),Ik=he.div(({theme:e})=>({padding:"16px 20px",borderBottom:`1px solid ${e.appBorderColor}`,display:"flex",justifyContent:"space-between",alignItems:"center"})),Fk=he.h2(({theme:e})=>({margin:0,fontSize:"16px",fontWeight:600,color:e.color.defaultText})),Ek=he(Pn)({fontSize:"20px",padding:"4px 8px"}),Ak=he.div({flex:1,overflow:"auto",padding:"20px"}),Pk=he(vo)({fontSize:"14px",marginBottom:"16px"}),Vm=he.div({display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"12px"}),Lk=he.button(({theme:e})=>({display:"flex",flexDirection:"column",padding:0,border:`2px solid ${e.appBorderColor}`,borderRadius:"8px",backgroundColor:e.background.app,color:e.color.defaultText,cursor:"pointer",overflow:"hidden",transition:"all 0.2s","&:hover":{borderColor:ae,transform:"translateY(-2px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"}})),Gm=he.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",minHeight:"80px",backgroundColor:e.background.app,backgroundImage:`linear-gradient(45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(-45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(45deg, transparent 75%, ${e.appBorderColor} 75%), linear-gradient(-45deg, transparent 75%, ${e.appBorderColor} 75%)`,backgroundSize:"8px 8px",backgroundPosition:"0 0, 0 4px, 4px -4px, -4px 0px",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",position:"relative"})),Mk=he.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",minHeight:"80px",backgroundColor:e.background.app,backgroundImage:`linear-gradient(45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(-45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(45deg, transparent 75%, ${e.appBorderColor} 75%), linear-gradient(-45deg, transparent 75%, ${e.appBorderColor} 75%)`,backgroundSize:"8px 8px",backgroundPosition:"0 0, 0 4px, 4px -4px, -4px 0px",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",position:"relative"})),Bk=he.img(({theme:e})=>({maxWidth:"100%",maxHeight:"100%",objectFit:"cover",display:"block",backgroundColor:e.background.content,borderRadius:"4px"})),ia=he.div(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",height:"100%",minHeight:"80px",backgroundColor:e.base==="dark"?"rgba(255,255,255,0.03)":"rgba(0,0,0,0.02)",color:e.color.mediumdark})),qm=he.div(({theme:e})=>({width:"32px",height:"32px",border:`3px solid ${e.appBorderColor}`,borderTopColor:ae,borderRadius:"50%",animation:"thumbnail-spin 0.8s linear infinite","@keyframes thumbnail-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),sa=he.div(({theme:e})=>({fontSize:"11px",fontWeight:500,color:e.color.mediumdark,textTransform:"uppercase",letterSpacing:"0.5px"})),Ym=he.div(({theme:e})=>({fontSize:"32px",opacity:.5,color:e.color.mediumdark})),Km=he.div(({theme:e})=>({padding:"12px",textAlign:"left",backgroundColor:e.background.content,borderTop:`1px solid ${e.appBorderColor}`})),Xm=he.div(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,marginBottom:"6px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.3})),Qm=he.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,textTransform:"uppercase",letterSpacing:"0.5px"})),Dk=he.div(({theme:e})=>({display:"flex",gap:"16px",marginBottom:"16px",padding:"12px",backgroundColor:e.background.app,borderRadius:"4px",border:`1px solid ${e.appBorderColor}`})),sc=he.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",fontSize:"13px",color:e.color.defaultText,cursor:"pointer",userSelect:"none","& input":{cursor:"pointer"}})),Rk=he.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"14px"})),zk=he.div(({theme:e})=>({padding:"20px",backgroundColor:e.background.critical,color:e.color.inverseText,borderRadius:"4px",fontSize:"14px"})),Nk=he.button(({theme:e})=>({position:"absolute",top:"8px",left:"8px",width:"24px",height:"24px",padding:0,background:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",fontSize:"14px",color:e.color.defaultText,zIndex:10,transition:"all 0.2s","&:hover":{background:e.background.hoverable,borderColor:ae}})),Ok=he.button(({theme:e})=>({display:"flex",flexDirection:"column",padding:0,border:`1px solid ${e.appBorderColor}`,borderLeft:`3px solid ${ae}`,borderRadius:"6px",backgroundColor:e.background.content,color:e.color.defaultText,cursor:"pointer",overflow:"hidden",transition:"all 0.2s",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.08)",height:"auto",minHeight:"200px","&:hover":{borderColor:ae,transform:"translateY(-2px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"}})),_k=he.div(({theme:e})=>({position:"absolute",top:"8px",right:"8px",padding:"2px 8px",background:ae,color:e.color.lightest,borderRadius:"4px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px",zIndex:10})),$k=he.div({display:"flex",flexWrap:"wrap",gap:"4px",marginTop:"4px",marginBottom:"4px"}),Gte=he.div(({theme:e})=>({padding:"20px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px",backgroundColor:e.background.app,border:`2px dashed ${e.appBorderColor}`,borderRadius:"8px",gridColumn:"1 / -1"})),Uk=he.div(({theme:e})=>({display:"flex",flexDirection:"column",border:`1px solid ${e.appBorderColor}`,borderLeft:`3px solid ${ae}`,borderRadius:"6px",backgroundColor:e.background.content,overflow:"hidden",minHeight:"200px"})),jk=he.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",backgroundColor:e.background.hoverable,position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:"-100%",height:"100%",width:"100%",background:`linear-gradient(90deg, transparent, ${e.background.app}40, transparent)`,animation:"shimmer 1.5s infinite"},"@keyframes shimmer":{"0%":{left:"-100%"},"100%":{left:"100%"}}})),Jm=he.div(({theme:e,width:t="70%"})=>({height:"12px",width:t,backgroundColor:e.background.hoverable,borderRadius:"4px",margin:"8px 12px",position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:"-100%",height:"100%",width:"100%",background:`linear-gradient(90deg, transparent, ${e.background.app}40, transparent)`,animation:"shimmer 1.5s infinite"}})),Hk=he.span(({theme:e})=>({display:"inline-block",padding:"3px 8px",background:e.background.app,borderRadius:"4px",fontSize:"11px",color:e.color.defaultText,border:`1px solid ${e.appBorderColor}`,lineHeight:1.2})),Wk=he.span(({theme:e})=>({fontWeight:600,color:e.color.mediumdark})),Vk=he.span(({theme:e})=>({color:e.color.defaultText})),ac=he.div(({theme:e,width:t="100%",height:n="40px"})=>({width:t,height:n,backgroundColor:e.appBorderColor,borderRadius:"4px",position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:"-100%",height:"100%",width:"100%",background:`linear-gradient(90deg, transparent, ${e.background.hoverable}, transparent)`,animation:"shimmer 1.5s infinite"},"@keyframes shimmer":{"0%":{left:"-100%"},"100%":{left:"100%"}}})),Gk=he.div(({theme:e})=>({display:"flex",flexDirection:"column",border:`2px solid ${e.appBorderColor}`,borderRadius:"8px",backgroundColor:e.background.app,overflow:"hidden"})),qk=he.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",marginBottom:"16px",padding:"12px",backgroundColor:e.background.app,borderRadius:"4px",border:`1px solid ${e.appBorderColor}`})),Yk=he.span(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText})),Kk=he(wn)({flex:1,width:"auto"}),Xk=he.span(({theme:e,hasMapping:t})=>({fontSize:"12px",color:t?e.color.positive:e.color.mediumdark,fontWeight:t?500:400})),Qk=he.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"8px 12px",marginBottom:"8px",backgroundColor:e.background.hoverable||"#f0f9ff",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,fontSize:e.typography.size.s1,flexWrap:"wrap"})),Jk=he.span(({theme:e})=>({color:e.color.secondary,fontWeight:e.typography.weight.bold})),Zk=he.span(({theme:e})=>({color:e.color.defaultText})),eC=he.button(({theme:e})=>({padding:"2px 8px",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.lightest,backgroundColor:e.color.secondary,border:"none",borderRadius:e.appBorderRadius,cursor:"pointer","&:hover":{opacity:.9}})),tC=he.button(({theme:e})=>({padding:"2px 6px",fontSize:e.typography.size.s1,color:e.color.mediumdark,backgroundColor:"transparent",border:"none",cursor:"pointer","&:hover":{color:e.color.defaultText}})),nC=he.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,marginBottom:"8px",fontStyle:"italic"})),lc=he.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",marginBottom:"12px",flexWrap:"wrap"})),aa=he.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),Ki=he(wn)(({theme:e,isActive:t})=>({width:"auto",padding:"6px 28px 6px 10px",fontSize:"12px",...t&&{borderColor:e.color.secondary,backgroundColor:`${e.color.secondary}14`}})),cc=he.button(({theme:e})=>({padding:"6px 10px",border:"none",borderRadius:"4px",backgroundColor:"transparent",color:e.color.negative,fontSize:"12px",cursor:"pointer","&:hover":{backgroundColor:`${e.color.negative}15`}})),rC=he.div(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",padding:"8px 0",borderBottom:`1px solid ${e.appBorderColor}`})),oC=he.button(({theme:e})=>({padding:"6px 12px",border:"none",borderRadius:"4px",backgroundColor:"transparent",color:ae,fontSize:"12px",cursor:"pointer","&:hover":{backgroundColor:"rgba(234, 88, 12, 0.08)"}})),iC=he.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),Zm=he.button(({theme:e,isSelected:t})=>({display:"flex",flexDirection:"column",padding:0,border:`2px solid ${t?ae:e.appBorderColor}`,borderRadius:"8px",backgroundColor:t?"rgba(234, 88, 12, 0.06)":e.background.app,color:e.color.defaultText,cursor:"pointer",overflow:"hidden",transition:"all 0.2s",position:"relative","&:hover":{borderColor:ae,transform:"translateY(-2px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"}})),eh=he.div(({theme:e,isSelected:t})=>({position:"absolute",top:"8px",left:"8px",width:"20px",height:"20px",borderRadius:"4px",border:`2px solid ${t?ae:e.appBorderColor}`,backgroundColor:t?ae:e.background.content,display:"flex",alignItems:"center",justifyContent:"center",zIndex:10,fontSize:"12px",color:t?e.color.lightest:"transparent"})),sC=he.div(({theme:e})=>({padding:"16px 20px",borderTop:`1px solid ${e.appBorderColor}`,display:"flex",justifyContent:"flex-end",gap:"12px"})),aC=he.button(({theme:e,disabled:t})=>({padding:"10px 20px",border:"none",borderRadius:"4px",backgroundColor:t?e.color.mediumdark:ae,color:e.color.lightest,fontSize:"14px",fontWeight:500,cursor:t?"not-allowed":"pointer",opacity:t?.6:1,transition:"all 0.2s","&:hover":{backgroundColor:t?e.color.mediumdark:ae,opacity:t?.6:.9}})),lC=he.span(({theme:e})=>({display:"inline-block",padding:"1px 5px",marginLeft:"6px",borderRadius:"3px",fontSize:"9px",fontWeight:700,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:"rgba(16, 185, 129, 0.15)",color:e.color.positive,verticalAlign:"middle"}));Ne();import{styled as n_}from"storybook/theming";var r_=n_.button(({theme:e})=>({gridColumn:"1 / -1",padding:"8px 16px",backgroundColor:"transparent",border:`1px dashed ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,fontSize:e.typography.size.s1,cursor:"pointer",transition:"all 0.15s","&:hover":{borderColor:e.color.secondary,color:e.color.secondary}})),th=t_(({src:e,alt:t,isComponentSet:n,loadingDone:r,failed:o})=>{let[i,s]=cC(!1),[a,u]=cC(!1);return e_(()=>{s(!1),u(!1)},[e]),i?Me.createElement(ia,null,Me.createElement(Ym,null,n?"\u229E":"\u{1F5BC}\uFE0F"),Me.createElement(sa,null,"Failed to load")):e?Me.createElement(Me.Fragment,null,!a&&Me.createElement(ia,{style:{position:"absolute",inset:0}},Me.createElement(qm,null),Me.createElement(sa,null,"Loading...")),Me.createElement(Bk,{src:e,alt:t,onLoad:()=>u(!0),onError:()=>s(!0),style:{opacity:a?1:0}})):r?Me.createElement(ia,null,Me.createElement(Ym,null,n?"\u229E":"\u{1F5BC}\uFE0F"),Me.createElement(sa,null,o?"Render failed":"No preview")):Me.createElement(ia,null,Me.createElement(qm,null),Me.createElement(sa,null,"Loading..."))}),la=({frame:e,thumbnail:t,thumbnails:n,variantThumbnails:r,variantChildren:o,variantFailed:i,isLoadingVariants:s=!1,isExpanded:a,isNew:u=!1,onToggleExpand:c,onSelect:l,multiSelect:d=!1,selectedFrames:g=new Set,variantFilters:p=[],variantPage:m=1,onShowMore:b})=>{let E=e.type==="COMPONENT_SET",v=E&&(e.children&&e.children.length>0||(e.childCount??0)>0),D=e.children||o||[],O=Me.useMemo(()=>D.length===0?[]:p.some(N=>N.value)?D.filter(N=>N.variantProperties?p.every(x=>x.value?N.variantProperties?.[x.property]===x.value:!0):!1):D,[D,p]),$=N=>{if(E){c(e.id,N);return}l(e)},L=d?Zm:Lk;return Me.createElement(Me.Fragment,null,Me.createElement(L,{onClick:$,title:e.name,isSelected:d?g.has(e.id):void 0,style:{cursor:"pointer"}},d&&!v&&Me.createElement(eh,{isSelected:g.has(e.id)},g.has(e.id)?"\u2713":""),E?Me.createElement(Mk,null,v&&Me.createElement(Nk,{onClick:N=>c(e.id,N),title:a?"Collapse variants":"Expand variants"},a?"\u25BC":"\u25B6"),v&&Me.createElement(_k,null,O.length>0&&O.length!==D.length?`${O.length} / ${D.length}`:e.childCount??D.length," ","variants"),Me.createElement(th,{src:t,alt:e.name,isComponentSet:!0})):Me.createElement(Gm,null,Me.createElement(th,{src:t,alt:e.name,isComponentSet:!1})),Me.createElement(Km,null,Me.createElement(Xm,null,e.name,u&&Me.createElement(lC,null,"New")),Me.createElement(Qm,null,e.type))),v&&a&&s&&Me.createElement(Me.Fragment,null,Array.from({length:Math.min(6,e.childCount??e.children?.length??6)}).map((N,x)=>Me.createElement(Uk,{key:`skeleton-${x}`},Me.createElement(jk,null),Me.createElement(Jm,{width:"80%"}),Me.createElement(Jm,{width:"50%"})))),v&&a&&!s&&O.slice(0,m*50).map(N=>Me.createElement(nh,{key:N.id,variant:N,thumbnail:r?.[N.id]||n[N.id],onSelect:l,multiSelect:d,isSelected:g.has(N.id),loadingDone:!!t||r!==void 0&&N.id in(r||{})||!!i?.has(N.id),failed:i?.has(N.id)})),v&&a&&!s&&O.length>m*50&&Me.createElement(r_,{onClick:()=>b?.(e.id)},"Show more (",O.length-m*50," ","remaining)"))},nh=({variant:e,thumbnail:t,onSelect:n,multiSelect:r=!1,isSelected:o=!1,loadingDone:i=!1,failed:s=!1})=>Me.createElement(r?Zm:Ok,{onClick:()=>{y.debug("[VariantCard] Clicked:",e.id,e.name),n(e)},title:e.name,isSelected:r?o:void 0},r&&Me.createElement(eh,{isSelected:o},o?"\u2713":""),Me.createElement(Gm,null,Me.createElement(th,{src:t,alt:e.name,isComponentSet:!1,loadingDone:i,failed:s})),Me.createElement(Km,null,Me.createElement(Xm,null,e.name),e.variantProperties&&Object.keys(e.variantProperties).length>0&&Me.createElement($k,null,Object.entries(e.variantProperties).map(([c,l])=>Me.createElement(Hk,{key:c},Me.createElement(Wk,null,c,":")," ",Me.createElement(Vk,null,l)))),Me.createElement(Qm,{style:{marginTop:"6px"}},"VARIANT")));var o_=qe.div({display:"flex",height:"100%",overflow:"hidden"}),i_=qe.div(({theme:e})=>({width:"380px",minWidth:"300px",borderRight:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",overflow:"hidden"})),s_=qe.div({flex:1,display:"flex",flexDirection:"column",overflow:"hidden"}),dC=qe.div(({theme:e})=>({padding:"12px 16px",borderBottom:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app})),gC=qe.h4(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.mediumdark,textTransform:"uppercase",letterSpacing:"0.5px",margin:0})),uc=qe.div({display:"flex",gap:"8px",marginTop:"10px"}),a_=qe(wn)({flex:1,width:"auto"}),fC=qe(vo)({flex:1,fontSize:"13px"}),l_=qe.div({flex:1,overflow:"auto",padding:"8px"}),c_=qe.div(({theme:e,selected:t,mapped:n})=>({padding:"12px",marginBottom:"8px",borderRadius:"8px",border:`2px solid ${t?e.color.secondary:n?e.color.positive:e.appBorderColor}`,backgroundColor:t?`${e.color.secondary}10`:e.background.content,cursor:"pointer",transition:"all 0.2s","&:hover":{borderColor:t?e.color.secondary:e.color.mediumlight}})),u_=qe.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}),p_=qe.div(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),d_=qe.span(({theme:e,mapped:t})=>({fontSize:"10px",fontWeight:500,padding:"2px 6px",borderRadius:"4px",backgroundColor:t?`${e.color.positive}20`:e.background.hoverable,color:t?e.color.positive:e.color.mediumdark})),g_=qe.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),f_=qe.div(({theme:e})=>({marginTop:"8px",padding:"8px",backgroundColor:`${e.color.positive}10`,borderRadius:"6px",fontSize:"11px",color:e.color.positive,display:"flex",alignItems:"center",gap:"8px",position:"relative"})),m_=qe.img(({theme:e})=>({width:"48px",height:"36px",objectFit:"contain",backgroundColor:e.background.content,borderRadius:"4px",border:`1px solid ${e.appBorderColor}`,flexShrink:0})),h_=qe.div({flex:1,overflow:"hidden"}),x_=qe.div({fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),y_=qe.div(({theme:e})=>({position:"absolute",bottom:"100%",left:"0",marginBottom:"8px",backgroundColor:e.background.content,borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.25)",border:`1px solid ${e.appBorderColor}`,padding:"8px",zIndex:100,maxWidth:"280px",animation:"fadeIn 0.15s ease-out","@keyframes fadeIn":{from:{opacity:0,transform:"translateY(4px)"},to:{opacity:1,transform:"translateY(0)"}}})),b_=qe.img(({theme:e})=>({width:"100%",maxWidth:"260px",maxHeight:"200px",objectFit:"contain",borderRadius:"4px",backgroundColor:e.background.app,display:"block"})),S_=qe.div(({theme:e})=>({marginTop:"8px",fontSize:"12px",fontWeight:500,color:e.color.defaultText,textAlign:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),w_=qe.div({flex:1,display:"flex",flexDirection:"column",overflow:"hidden",position:"relative"}),v_=qe.div({display:"flex",gap:"8px",flexWrap:"wrap"}),oh=qe.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"4px",fontSize:"12px",color:e.color.mediumdark,cursor:"pointer","& input":{cursor:"pointer"}})),k_=qe.div({flex:1,overflow:"auto",padding:"12px",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:"12px",alignContent:"start"}),ih=20,C_=qe.div(({theme:e})=>({gridColumn:"1 / -1",display:"flex",alignItems:"center",justifyContent:"center",gap:"12px",padding:"12px 0",borderTop:`1px solid ${e.appBorderColor}`,marginTop:"8px"})),T_=qe.button(({theme:e,disabled:t})=>({padding:"8px 16px",fontSize:"13px",fontWeight:500,color:t?e.color.mediumdark:e.color.secondary,backgroundColor:"transparent",border:`1px solid ${t?e.appBorderColor:e.color.secondary}`,borderRadius:"6px",cursor:t?"not-allowed":"pointer",opacity:t?.5:1,transition:"all 0.2s","&:hover":{backgroundColor:t?"transparent":`${e.color.secondary}10`}})),I_=qe.div(({theme:e})=>({gridColumn:"1 / -1",display:"flex",alignItems:"center",gap:"12px",padding:"8px 12px",backgroundColor:e.background.app,borderRadius:"6px",marginBottom:"8px"})),F_=qe.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"6px 12px",fontSize:"13px",fontWeight:500,color:e.color.secondary,backgroundColor:"transparent",border:`1px solid ${e.color.secondary}`,borderRadius:"4px",cursor:"pointer",transition:"all 0.2s","&:hover":{backgroundColor:`${e.color.secondary}10`}})),E_=qe.span(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),sh=qe.div(({theme:e})=>({gridColumn:"1 / -1",fontSize:"12px",color:e.color.mediumdark,textAlign:"center",padding:"8px 0"})),ah=qe.div(({theme:e})=>({flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:e.color.mediumdark,fontSize:"14px",gap:"8px"})),A_=qe.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:e.color.mediumdark,fontSize:"14px"})),P_=qe.div({flex:1,overflow:"auto",padding:"12px",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:"12px",alignContent:"start"}),mC=qe.div(({theme:e})=>({borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,overflow:"hidden",backgroundColor:e.background.content})),hC=qe.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",backgroundColor:e.background.hoverable,animation:"shimmer 1.5s infinite",background:`linear-gradient(90deg, ${e.background.hoverable} 25%, ${e.background.app} 50%, ${e.background.hoverable} 75%)`,backgroundSize:"200% 100%","@keyframes shimmer":{"0%":{backgroundPosition:"200% 0"},"100%":{backgroundPosition:"-200% 0"}}})),xC=qe.div(({theme:e,width:t="70%"})=>({height:"12px",width:t,backgroundColor:e.background.hoverable,borderRadius:"4px",margin:"12px",animation:"shimmer 1.5s infinite",background:`linear-gradient(90deg, ${e.background.hoverable} 25%, ${e.background.app} 50%, ${e.background.hoverable} 75%)`,backgroundSize:"200% 100%","@keyframes shimmer":{"0%":{backgroundPosition:"200% 0"},"100%":{backgroundPosition:"-200% 0"}}})),L_=()=>X.createElement(P_,null,Array.from({length:8}).map((e,t)=>X.createElement(mC,{key:t},X.createElement(hC,null),X.createElement(xC,{width:`${60+t%3*15}%`})))),M_=qe.div(({theme:e})=>({padding:"12px 16px",backgroundColor:`${e.color.secondary}10`,borderBottom:`1px solid ${e.appBorderColor}`,fontSize:"13px",color:e.color.defaultText,display:"flex",alignItems:"center",gap:"8px"})),B_=qe.div({position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.8)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",zIndex:50,gap:"8px"}),D_=qe.div(({theme:e})=>({width:"24px",height:"24px",border:`3px solid ${e.appBorderColor}`,borderTop:`3px solid ${e.color.secondary}`,borderRadius:"50%",animation:"spin 1s linear infinite","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),R_=qe.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark})),yC=({stories:e,loading:t,selectedStoryId:n,onSelectStory:r,onStoryMapped:o,projectId:i})=>{let s=ra({projectId:i,limit:ih,enabled:!!i}),[a,u]=Xi("all"),[c,l]=Xi(""),[d,g]=Xi(null),[p,m]=Xi(1),[b,F]=Xi(null),[E,v]=Xi(!1),D=rh(()=>{let f=new Set;return e.forEach(k=>{k.componentTitle&&f.add(k.componentTitle)}),Array.from(f).sort()},[e]),O=rh(()=>e.filter(f=>{if(a!=="all"&&f.componentTitle!==a)return!1;if(c){let k=c.toLowerCase();return f.name.toLowerCase().includes(k)||f.title.toLowerCase().includes(k)}return!0}),[e,a,c]),$=d?s.frames.find(f=>f.id===d):null,L=rh(()=>{if(!d)return[];let f=s.variantChildren[d]||[];return f.length===0?[]:s.variantFilters.some(k=>k.value)?f.filter(k=>k.variantProperties?s.variantFilters.every(T=>T.value?k.variantProperties?.[T.property]===T.value:!0):!1):f},[d,s.variantChildren,s.variantFilters]),N=L.slice(0,p*ih),x=L.length>p*ih;uC(()=>{if(!d||N.length===0)return;let f=N.map(k=>k.id);s.fetchVariantThumbnails(d,f)},[d,N.length,p]),uC(()=>{v(!1)},[]);let S=pC(async f=>{if(n)try{let k=G(),T=localStorage.getItem("uicopilot_session_token");if(!(await te(`${k}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${T}`},body:JSON.stringify({projectId:i,storyId:n,figmaNodeId:f.id,name:f.name})})).ok)throw new Error("Failed to save mapping");o(n,f.id,f.name)}catch(k){y.error("[MapStoriesTab] Error saving mapping:",k)}},[n,i,o]),w=pC((f,k)=>{if(k.stopPropagation(),d===f){g(null),m(1);return}g(f),m(1),!s.variantThumbnails[f]&&!s.loadingVariants.has(f)&&s.toggleExpanded(f,k)},[d,s]),P=e.find(f=>f.id===n);return t?X.createElement(A_,null,"Loading stories..."):X.createElement(o_,null,X.createElement(i_,null,X.createElement(dC,null,X.createElement(gC,null,"Storybook Stories"),X.createElement(uc,null,X.createElement(a_,{value:a,onChange:f=>u(f.target.value)},X.createElement("option",{value:"all"},"All Components"),D.map(f=>X.createElement("option",{key:f,value:f},f)))),X.createElement(uc,null,X.createElement(fC,{type:"text",placeholder:"Search stories...",value:c,onChange:f=>l(f.target.value)}))),X.createElement(l_,null,O.length===0?X.createElement(ah,null,"No stories found"):O.map(f=>X.createElement(c_,{key:f.id,selected:f.id===n,mapped:!!f.figmaMapping,onClick:()=>r(f.id)},X.createElement(u_,null,X.createElement(p_,null,f.name),X.createElement(d_,{mapped:!!f.figmaMapping},f.figmaMapping?"Mapped":"Unmapped")),X.createElement(g_,null,f.title),f.figmaMapping&&X.createElement(f_,{onMouseEnter:()=>F(f.id),onMouseLeave:()=>F(null)},(()=>{let k=f.figmaMapping?.figmaNodeId,T=k?s.resolveThumbnail(k):void 0;return X.createElement(X.Fragment,null,T?X.createElement(m_,{src:T,alt:f.figmaMapping?.figmaFrameName||""}):X.createElement("span",null,"\u{1F517}"),b===f.id&&T&&X.createElement(y_,null,X.createElement(b_,{src:T,alt:f.figmaMapping?.figmaFrameName||""}),X.createElement(S_,null,f.figmaMapping?.figmaFrameName)))})(),X.createElement(h_,null,X.createElement(x_,null,f.figmaMapping.figmaFrameName))))))),X.createElement(s_,null,n?X.createElement(X.Fragment,null,X.createElement(M_,null,X.createElement("span",null,"Click a Figma component below to link it to"," ",X.createElement("strong",null,P?.name))),X.createElement(dC,null,X.createElement(gC,null,"Figma Components"),X.createElement(uc,null,X.createElement(v_,null,X.createElement(oh,null,X.createElement("input",{type:"checkbox",checked:s.showComponentSets,onChange:f=>s.setShowComponentSets(f.target.checked)}),"Component Sets"),X.createElement(oh,null,X.createElement("input",{type:"checkbox",checked:s.showFrames,onChange:f=>s.setShowFrames(f.target.checked)}),"Frames"),X.createElement(oh,null,X.createElement("input",{type:"checkbox",checked:s.showComponents,onChange:f=>s.setShowComponents(f.target.checked)}),"Components")),s.availablePages.length>1&&X.createElement(Ki,{isActive:!!s.figmaPage,value:s.figmaPage,onChange:f=>s.setFigmaPage(f.target.value)},X.createElement("option",{value:""},"All pages"),s.availablePages.map(f=>X.createElement("option",{key:f,value:f},f)))),s.availableFilters.length>0&&X.createElement(lc,null,X.createElement(aa,null,"Filters:"),s.availableFilters.slice(0,5).map(({property:f,values:k})=>{let T=s.variantFilters.find(h=>h.property===f);return X.createElement(Ki,{key:f,isActive:!!T?.value,value:T?.value||"",onChange:h=>s.handleFilterChange(f,h.target.value)},X.createElement("option",{value:""},f),k.map(h=>X.createElement("option",{key:h,value:h},f,"=",h)))}),s.availableFilters.length>5&&X.createElement(aa,{style:{opacity:.6,fontSize:"11px"}},"+",s.availableFilters.length-5," more"),s.variantFilters.some(f=>f.value)&&X.createElement(cc,{onClick:s.clearFilters},"Clear All")),X.createElement(uc,null,X.createElement(fC,{type:"text",placeholder:"Search Figma components...",value:s.search,onChange:f=>s.setSearch(f.target.value)}))),X.createElement(w_,null,E&&X.createElement(B_,null,X.createElement(D_,null),X.createElement(R_,null,"Loading thumbnails...")),s.isLoading?X.createElement(L_,null):s.filteredFrames.length===0?X.createElement(ah,null,X.createElement("span",null,"No components match. Try a different search term, or check that your Figma file has component sets defined.")):X.createElement(k_,null,d&&$?X.createElement(X.Fragment,null,X.createElement(I_,null,X.createElement(F_,{onClick:()=>{g(null),m(1)}},"Back"),X.createElement(E_,null,$.name)),s.loadingVariants.has(d)?X.createElement(X.Fragment,null,X.createElement(sh,null,"Loading ",$.childCount??"..."," ","variants..."),Array.from({length:Math.min(8,$.childCount??8)}).map((f,k)=>X.createElement(mC,{key:`variant-skeleton-${k}`},X.createElement(hC,null),X.createElement(xC,{width:`${60+k%3*15}%`})))):X.createElement(X.Fragment,null,X.createElement(sh,null,"Showing ",N.length," of"," ",L.length," variants"),N.map(f=>X.createElement(nh,{key:f.id,variant:f,thumbnail:s.variantThumbnails[d]?.[f.id]||s.thumbnails[f.id],onSelect:S,loadingDone:s.variantThumbnails[d]!==void 0&&!s.loadingVariants.has(d),failed:s.variantFailed[d]?.has(f.id)})))):X.createElement(X.Fragment,null,X.createElement(sh,null,"Showing ",s.frames.length," of ",s.totalFrames," ","components"),s.filteredFrames.map(f=>X.createElement(la,{key:f.id,frame:f,thumbnail:s.thumbnails[f.id],thumbnails:s.thumbnails,variantThumbnails:s.variantThumbnails[f.id],variantChildren:s.variantChildren[f.id],variantFailed:s.variantFailed[f.id],isLoadingVariants:s.loadingVariants.has(f.id),isExpanded:!1,onToggleExpand:w,onSelect:S,variantFilters:s.variantFilters}))),(d?x:s.hasMore)&&X.createElement(C_,null,X.createElement(T_,{disabled:s.loadingMore,onClick:async()=>{d?m(f=>f+1):await s.loadMore()}},s.loadingMore?"Loading...":"Load More"))))):X.createElement(ah,null,X.createElement("span",null,"\u{1F448} Pick a story from the left, then browse your Figma file to find a matching frame. The mapping is saved per story."))))};Ue();import ot,{useState as lh,useMemo as bC,useCallback as SC}from"react";import{styled as Ut}from"storybook/theming";ct();var z_=Ut.div({display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"}),N_=Ut.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px 20px",backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`,flexWrap:"wrap"})),O_=Ut(wn)({width:"auto",minWidth:"200px"}),__=Ut(vo)({fontSize:"13px",minWidth:"250px"}),$_=Ut.button(({theme:e,active:t})=>({padding:"8px 12px",fontSize:"13px",fontWeight:500,border:`1px solid ${t?e.color.positive:e.appBorderColor}`,borderRadius:"6px",backgroundColor:t?`${e.color.positive}15`:e.background.content,color:t?e.color.positive:e.color.mediumdark,cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",transition:"all 0.2s","&:hover":{borderColor:e.color.positive}})),U_=Ut.button(({theme:e})=>({marginLeft:"auto",padding:"8px 12px",fontSize:"13px",fontWeight:500,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.background.content,color:e.color.defaultText,cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",transition:"all 0.2s","&:hover":{backgroundColor:e.background.hoverable}})),j_=Ut.div({flex:1,overflow:"auto"}),H_=Ut.table(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:"13px"})),W_=Ut.thead(({theme:e})=>({position:"sticky",top:0,backgroundColor:e.background.app,zIndex:1})),pc=Ut.th(({theme:e})=>({padding:"12px 20px",textAlign:"left",fontWeight:600,fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.5px",color:e.color.mediumdark,borderBottom:`1px solid ${e.appBorderColor}`})),V_=Ut.tbody({}),G_=Ut.tr(({theme:e,mapped:t})=>({backgroundColor:t?"transparent":`${e.color.warning}05`,"&:hover":{backgroundColor:e.background.hoverable}})),dc=Ut.td(({theme:e})=>({padding:"14px 20px",borderBottom:`1px solid ${e.appBorderColor}`,verticalAlign:"middle"})),q_=Ut.div({display:"flex",flexDirection:"column",gap:"2px"}),Y_=Ut.div(({theme:e})=>({fontWeight:500,color:e.color.defaultText})),K_=Ut.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark})),X_=Ut.div(({theme:e,mapped:t})=>({color:t?e.color.positive:e.color.mediumlight,fontWeight:t?500:400,display:"flex",alignItems:"center",gap:"6px"})),Q_=Ut.div({display:"flex",alignItems:"center",gap:"8px"}),J_=Ut.span(({theme:e,mapped:t})=>({width:"10px",height:"10px",borderRadius:"50%",backgroundColor:t?e.color.positive:e.color.mediumlight})),Z_=Ut.span(({theme:e,mapped:t})=>({color:t?e.color.positive:e.color.mediumdark,fontWeight:500})),wC=Ut.button(({theme:e,variant:t})=>({padding:"6px 12px",fontSize:"12px",fontWeight:500,border:`1px solid ${t==="link"?e.color.secondary:e.color.negative}`,borderRadius:"4px",backgroundColor:t==="link"?`${e.color.secondary}10`:`${e.color.negative}10`,color:t==="link"?e.color.secondary:e.color.negative,cursor:"pointer",transition:"all 0.2s","&:hover":{backgroundColor:t==="link"?`${e.color.secondary}20`:`${e.color.negative}20`}})),e$=Ut.div(({theme:e})=>({flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:e.color.mediumdark,fontSize:"14px",gap:"8px",padding:"40px"})),t$=Ut.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:e.color.mediumdark,fontSize:"14px"})),vC=({stories:e,loading:t,onLink:n,onUnlink:r,projectId:o})=>{let[i,s]=lh("all"),[a,u]=lh(""),[c,l]=lh(!0),d=bC(()=>{let F=new Set;return e.forEach(E=>{E.componentTitle&&F.add(E.componentTitle)}),Array.from(F).sort()},[e]),g=bC(()=>e.filter(F=>{if(i!=="all"&&F.componentTitle!==i||!c&&!F.figmaMapping)return!1;if(a){let E=a.toLowerCase();return F.name.toLowerCase().includes(E)||F.title.toLowerCase().includes(E)||(F.figmaMapping?.figmaFrameName?.toLowerCase().includes(E)??!1)}return!0}),[e,i,a,c]),p=SC(async F=>{try{let E=G(),v=localStorage.getItem("uicopilot_session_token");if(!(await te(`${E}/api/mappings?projectId=${o}&storyId=${F}`,{method:"DELETE",headers:{Authorization:`Bearer ${v}`}})).ok)throw new Error("Failed to delete mapping");r(F)}catch(E){console.error("[ViewAllMappingsTab] Error unlinking:",E)}},[o,r]),m=SC(()=>{let F=e.filter(O=>O.figmaMapping).map(O=>({storyId:O.id,storyName:O.name,storyTitle:O.title,figmaNodeId:O.figmaMapping.figmaNodeId,figmaFrameName:O.figmaMapping.figmaFrameName})),E=new Blob([JSON.stringify(F,null,2)],{type:"application/json"}),v=URL.createObjectURL(E),D=document.createElement("a");D.href=v,D.download=`figma-mappings-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(D),D.click(),document.body.removeChild(D),URL.revokeObjectURL(v)},[e]);if(t)return ot.createElement(t$,null,"Loading mappings...");let b=e.filter(F=>F.figmaMapping).length;return ot.createElement(z_,null,ot.createElement(N_,null,ot.createElement(O_,{value:i,onChange:F=>s(F.target.value)},ot.createElement("option",{value:"all"},"All Components"),d.map(F=>ot.createElement("option",{key:F,value:F},F))),ot.createElement(__,{type:"text",placeholder:"\u{1F50D} Search stories or Figma components...",value:a,onChange:F=>u(F.target.value)}),ot.createElement($_,{active:c,onClick:()=>l(!c)},c?"\u2611":"\u2610"," Show unmapped"),ot.createElement(U_,{onClick:m,disabled:b===0},"\u{1F4E5} Export JSON")),g.length===0?ot.createElement(e$,null,ot.createElement("span",null,"\u{1F4ED}"),a?"No stories match your search":"No stories found"):ot.createElement(j_,null,ot.createElement(H_,null,ot.createElement(W_,null,ot.createElement("tr",null,ot.createElement(pc,{style:{width:"35%"}},"Story"),ot.createElement(pc,{style:{width:"35%"}},"Figma Component"),ot.createElement(pc,{style:{width:"15%"}},"Status"),ot.createElement(pc,{style:{width:"15%"}},"Actions"))),ot.createElement(V_,null,g.map(F=>ot.createElement(G_,{key:F.id,mapped:!!F.figmaMapping},ot.createElement(dc,null,ot.createElement(q_,null,ot.createElement(Y_,null,F.name),ot.createElement(K_,null,F.title))),ot.createElement(dc,null,ot.createElement(X_,{mapped:!!F.figmaMapping},F.figmaMapping?ot.createElement(ot.Fragment,null,ot.createElement("span",null,"\u{1F3A8}"),F.figmaMapping.figmaFrameName):"\u2014")),ot.createElement(dc,null,ot.createElement(Q_,null,ot.createElement(J_,{mapped:!!F.figmaMapping}),ot.createElement(Z_,{mapped:!!F.figmaMapping},F.figmaMapping?"Mapped":"Unmapped"))),ot.createElement(dc,null,F.figmaMapping?ot.createElement(wC,{variant:"unlink",onClick:()=>p(F.id)},"Unlink"):ot.createElement(wC,{variant:"link",onClick:()=>n(F.id)},"Link"))))))))};import Ce,{useState as yc,useMemo as AC}from"react";import{styled as ht}from"storybook/theming";import kC from"react";import{styled as CC,keyframes as n$}from"storybook/theming";var r$=n$`
40
+ animation: ${_O} 0.8s linear infinite;
41
+ `,jO=Hn.div(({theme:e})=>({position:"absolute",top:"100%",left:"0",marginTop:"6px",padding:"12px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.2)",zIndex:1e3,minWidth:"220px",fontSize:e.typography.size.s1})),HO=Hn.div(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"10px",paddingBottom:"8px",borderBottom:`1px solid ${e.appBorderColor}`})),WO=Hn.div(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText,fontSize:e.typography.size.s2})),VO=Hn.span(({score:e,theme:t})=>{let n=()=>e>=80?t.color.positive:e>=50?t.color.warning:t.color.negative;return{fontWeight:700,fontSize:t.typography.size.s3,color:n()}}),GO=Hn.div({display:"flex",flexDirection:"column",gap:"6px",marginBottom:"10px"}),qO=Hn.div(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:e.typography.size.s1,color:e.color.defaultText})),YO=Hn.span({display:"flex",alignItems:"center",gap:"4px"}),KO=Hn.span(({status:e,theme:t})=>({color:e==="pass"?t.color.positive:e==="warn"?t.color.warning:t.color.negative,fontSize:t.typography.size.s1})),XO=Hn.span(({theme:e})=>({fontWeight:500,color:e.color.mediumdark})),QO=Hn.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,lineHeight:1.4,fontStyle:"italic"})),JO=Hn.ul(({theme:e})=>({margin:"8px 0 0 0",padding:"0 0 0 14px",fontSize:e.typography.size.s1,color:e.color.defaultText,"& li":{marginBottom:"2px"}})),Dk=({figmaFileUrl:e})=>{let{selectedProjectId:t}=Xe(),[n,r]=Qm(!1),[o,i]=Qm(!1),[s,a]=Qm(null),u=async()=>{if(!(!e||!t||o)){i(!0);try{let c=G(),l=localStorage.getItem("uicopilot_session_token"),d=await ne(`${c}/api/figma/quality-check`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({projectId:t,figmaFileUrl:e,figmaMetadata:{}})});if(!d.ok)throw new Error("Failed to check quality");let g=await d.json();a(g),r(!0)}catch(c){console.error("[FigmaQualityBadge] Quality check error:",c)}finally{i(!1)}}};return e?Vt.createElement(OO,{onMouseEnter:()=>s&&r(!0),onMouseLeave:()=>r(!1)},Vt.createElement($O,{score:s?.score,isLoading:o,onClick:u,disabled:o||!t,title:s?"Click to refresh quality check":"Click to check Figma design quality"},o?Vt.createElement(Vt.Fragment,null,Vt.createElement(UO,null)," Checking..."):s?Vt.createElement(Vt.Fragment,null,"\u{1F3A8} ",Math.round(s.score),"%"):Vt.createElement(Vt.Fragment,null,"\u{1F3A8} Check Quality")),n&&s&&Vt.createElement(jO,null,Vt.createElement(HO,null,Vt.createElement(WO,null,"Figma Design Quality"),Vt.createElement(VO,{score:s.score},Math.round(s.score),"%")),Vt.createElement(GO,null,Object.entries(s.categories).map(([c,l])=>Vt.createElement(qO,{key:c},Vt.createElement(YO,null,Vt.createElement(KO,{status:l.status},NO(l.status)),zO[c]||c),Vt.createElement(XO,null,l.score)))),s.summary&&Vt.createElement(QO,null,s.summary),s.recommendations?.length>0&&Vt.createElement(JO,null,s.recommendations.slice(0,2).map((c,l)=>Vt.createElement("li",{key:l},c))))):null};var e_=Wr.div(({theme:e})=>({padding:"12px 16px",marginBottom:"16px"})),t_=Wr.div({display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"}),n_=Wr.label(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),r_=Wr.div({display:"flex",gap:"8px",alignItems:"center"}),o_=Wr.div({position:"relative",flex:1,display:"flex"}),i_=Wr.input(({theme:e})=>({width:"100%",padding:"8px 36px 8px 12px",fontSize:"13px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.input.background,color:e.input.color,outline:"none","&:focus":{borderColor:le,boxShadow:`0 0 0 1px ${le}`},"&::placeholder":{color:e.color.mediumlight}})),s_=Wr(on)({whiteSpace:"nowrap"}),a_=Wr.button(({theme:e})=>({padding:"8px",backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:"12px",transition:"all 0.15s","&:hover:not(:disabled)":{borderColor:e.color.negative,color:e.color.negative},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),l_=Wr.button(({theme:e,copied:t})=>({position:"absolute",top:"50%",right:"5px",transform:"translateY(-50%)",width:"26px",height:"26px",padding:0,border:"none",borderRadius:"5px",background:"transparent",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",color:t?e.color.positive:e.color.defaultText,transition:"color 0.15s, background 0.15s","&:hover":{color:t?e.color.positive:le,background:e.background.hoverable}})),c_=()=>tn.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},tn.createElement("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),tn.createElement("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})),u_=()=>tn.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},tn.createElement("polyline",{points:"20 6 9 17 4 12"}));function p_(e){return e?e.includes("figma.com")?e:/^[a-zA-Z0-9]+$/.test(e)?`https://www.figma.com/design/${e}`:e:""}var d_=Wr.span(({variant:e})=>({fontSize:"12px",color:e==="success"?"#16a34a":"#dc2626",marginTop:"4px",display:"block"})),Rk=()=>{let{selectedProjectId:e,projects:t}=Xe(),{sessionToken:n}=Se(),{updateProject:r}=lo(),o=t.find(h=>h.id===e),[i,s]=Ki(""),[a,u]=Ki(!1),[c,l]=Ki(null),[d,g]=Ki(!1),p=o?.figmaFileUrl||o?.figmaFileId||"",m=p_(p);ZO(()=>{s(m),l(null)},[o?.id,m]);let b=i!==m,I=dc(async()=>{if(!(!e||!b))try{u(!0),l(null),await r(e,{figmaFileUrl:i.trim()||void 0});let h=G();try{await ne(`${h}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({projectId:e})})}catch{}ne(`${h}/api/figma/frames?projectId=${e}&type=COMPONENT_SET&page=1&limit=1&refresh=true`,{headers:{Authorization:`Bearer ${n}`}},6e4).catch(()=>{}),l({type:"success",message:"Saved \u2014 reloading Figma cache\u2026"}),setTimeout(()=>l(null),3e3)}catch(h){l({type:"error",message:h instanceof Error?h.message:"Failed to save"})}finally{u(!1)}},[e,i,b,r]),E=dc(h=>{h.key==="Enter"&&b&&!a&&I()},[b,a,I]),k=dc(async()=>{if(i)try{await navigator.clipboard.writeText(i),g(!0),setTimeout(()=>g(!1),1500)}catch{}},[i]),[D,N]=Ki(!1),[$,L]=Ki(!1),R=dc(async()=>{if(!(!e||!n))try{L(!0),await r(e,{figmaFileUrl:""});let h=G();await ne(`${h}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({projectId:e})}).catch(()=>{}),await ne(`${h}/api/figma/frames/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({projectId:e})}).catch(()=>{}),s(""),N(!1),l({type:"success",message:"Figma file removed and cache cleared"}),setTimeout(()=>l(null),3e3)}catch{l({type:"error",message:"Failed to remove Figma file"})}finally{L(!1)}},[e,n,r]);return e?tn.createElement(e_,null,tn.createElement(t_,null,tn.createElement(n_,null,"Figma File URL"),tn.createElement(Dk,{figmaFileUrl:m})),tn.createElement(r_,null,tn.createElement(o_,null,tn.createElement(i_,{type:"text",value:i,onChange:h=>s(h.target.value),onKeyDown:E,placeholder:"https://www.figma.com/file/..."}),i&&tn.createElement(l_,{type:"button",copied:d,onClick:k,title:"Copy Figma URL to clipboard"},d?tn.createElement(u_,null):tn.createElement(c_,null))),tn.createElement(s_,{onClick:I,disabled:!b||a},a?"Saving...":"Save"),m&&tn.createElement(a_,{onClick:()=>N(!0),title:"Remove Figma file and clear cache"},"\u{1F5D1}")),tn.createElement(Hr,{isOpen:D,title:"Remove Figma File",message:"This will remove the Figma file link and clear all cached data (thumbnails, enrichment). Component mappings will be preserved but won't have design data until a new file is linked.",confirmLabel:$?"Removing...":"Remove",variant:"danger",onConfirm:R,onCancel:()=>N(!1)}),c&&tn.createElement(d_,{variant:c.type},c.message)):null};import It,{useState as Ic,useEffect as k4}from"react";import{styled as er}from"storybook/theming";ve();Ue();import Je,{useState as Zi,useEffect as i4,useCallback as _o}from"react";import{styled as nn}from"storybook/theming";Ue();Ue();Ne();import Q,{useState as Qi,useEffect as vC,useMemo as uh,useCallback as kC}from"react";import{styled as Ge}from"storybook/theming";lt();import Me,{useState as wC,useEffect as g_,memo as f_}from"react";import{styled as he}from"storybook/theming";var zk=he.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001}),Nk=he.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"6px",width:"90%",maxWidth:"900px",maxHeight:"85vh",display:"flex",flexDirection:"column",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.3)",border:`1px solid ${e.appBorderColor}`})),Ok=he.div(({theme:e})=>({padding:"16px 20px",borderBottom:`1px solid ${e.appBorderColor}`,display:"flex",justifyContent:"space-between",alignItems:"center"})),_k=he.h2(({theme:e})=>({margin:0,fontSize:"16px",fontWeight:600,color:e.color.defaultText})),$k=he(An)({fontSize:"20px",padding:"4px 8px"}),Uk=he.div({flex:1,overflow:"auto",padding:"20px"}),jk=he(Co)({fontSize:"14px",marginBottom:"16px"}),Jm=he.div({display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"12px"}),Hk=he.button(({theme:e})=>({display:"flex",flexDirection:"column",padding:0,border:`2px solid ${e.appBorderColor}`,borderRadius:"8px",backgroundColor:e.background.app,color:e.color.defaultText,cursor:"pointer",overflow:"hidden",transition:"all 0.2s","&:hover":{borderColor:le,transform:"translateY(-2px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"}})),Zm=he.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",minHeight:"80px",backgroundColor:e.background.app,backgroundImage:`linear-gradient(45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(-45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(45deg, transparent 75%, ${e.appBorderColor} 75%), linear-gradient(-45deg, transparent 75%, ${e.appBorderColor} 75%)`,backgroundSize:"8px 8px",backgroundPosition:"0 0, 0 4px, 4px -4px, -4px 0px",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",position:"relative"})),Wk=he.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",minHeight:"80px",backgroundColor:e.background.app,backgroundImage:`linear-gradient(45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(-45deg, ${e.appBorderColor} 25%, transparent 25%), linear-gradient(45deg, transparent 75%, ${e.appBorderColor} 75%), linear-gradient(-45deg, transparent 75%, ${e.appBorderColor} 75%)`,backgroundSize:"8px 8px",backgroundPosition:"0 0, 0 4px, 4px -4px, -4px 0px",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",position:"relative"})),Vk=he.img(({theme:e})=>({maxWidth:"100%",maxHeight:"100%",objectFit:"cover",display:"block",backgroundColor:e.background.content,borderRadius:"4px"})),la=he.div(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",height:"100%",minHeight:"80px",backgroundColor:e.base==="dark"?"rgba(255,255,255,0.03)":"rgba(0,0,0,0.02)",color:e.color.mediumdark})),eh=he.div(({theme:e})=>({width:"32px",height:"32px",border:`3px solid ${e.appBorderColor}`,borderTopColor:le,borderRadius:"50%",animation:"thumbnail-spin 0.8s linear infinite","@keyframes thumbnail-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),ca=he.div(({theme:e})=>({fontSize:"11px",fontWeight:500,color:e.color.mediumdark,textTransform:"uppercase",letterSpacing:"0.5px"})),th=he.div(({theme:e})=>({fontSize:"32px",opacity:.5,color:e.color.mediumdark})),nh=he.div(({theme:e})=>({padding:"12px",textAlign:"left",backgroundColor:e.background.content,borderTop:`1px solid ${e.appBorderColor}`})),rh=he.div(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,marginBottom:"6px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.3})),oh=he.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,textTransform:"uppercase",letterSpacing:"0.5px"})),Gk=he.div(({theme:e})=>({display:"flex",gap:"16px",marginBottom:"16px",padding:"12px",backgroundColor:e.background.app,borderRadius:"4px",border:`1px solid ${e.appBorderColor}`})),gc=he.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",fontSize:"13px",color:e.color.defaultText,cursor:"pointer",userSelect:"none","& input":{cursor:"pointer"}})),qk=he.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"14px"})),Yk=he.div(({theme:e})=>({padding:"20px",backgroundColor:e.background.critical,color:e.color.inverseText,borderRadius:"4px",fontSize:"14px"})),Kk=he.button(({theme:e})=>({position:"absolute",top:"8px",left:"8px",width:"24px",height:"24px",padding:0,background:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",fontSize:"14px",color:e.color.defaultText,zIndex:10,transition:"all 0.2s","&:hover":{background:e.background.hoverable,borderColor:le}})),Xk=he.button(({theme:e})=>({display:"flex",flexDirection:"column",padding:0,border:`1px solid ${e.appBorderColor}`,borderLeft:`3px solid ${le}`,borderRadius:"6px",backgroundColor:e.background.content,color:e.color.defaultText,cursor:"pointer",overflow:"hidden",transition:"all 0.2s",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.08)",height:"auto",minHeight:"200px","&:hover":{borderColor:le,transform:"translateY(-2px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"}})),Qk=he.div(({theme:e})=>({position:"absolute",top:"8px",right:"8px",padding:"2px 8px",background:le,color:e.color.lightest,borderRadius:"4px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px",zIndex:10})),Jk=he.div({display:"flex",flexWrap:"wrap",gap:"4px",marginTop:"4px",marginBottom:"4px"}),ine=he.div(({theme:e})=>({padding:"20px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px",backgroundColor:e.background.app,border:`2px dashed ${e.appBorderColor}`,borderRadius:"8px",gridColumn:"1 / -1"})),Zk=he.div(({theme:e})=>({display:"flex",flexDirection:"column",border:`1px solid ${e.appBorderColor}`,borderLeft:`3px solid ${le}`,borderRadius:"6px",backgroundColor:e.background.content,overflow:"hidden",minHeight:"200px"})),eC=he.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",backgroundColor:e.background.hoverable,position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:"-100%",height:"100%",width:"100%",background:`linear-gradient(90deg, transparent, ${e.background.app}40, transparent)`,animation:"shimmer 1.5s infinite"},"@keyframes shimmer":{"0%":{left:"-100%"},"100%":{left:"100%"}}})),ih=he.div(({theme:e,width:t="70%"})=>({height:"12px",width:t,backgroundColor:e.background.hoverable,borderRadius:"4px",margin:"8px 12px",position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:"-100%",height:"100%",width:"100%",background:`linear-gradient(90deg, transparent, ${e.background.app}40, transparent)`,animation:"shimmer 1.5s infinite"}})),tC=he.span(({theme:e})=>({display:"inline-block",padding:"3px 8px",background:e.background.app,borderRadius:"4px",fontSize:"11px",color:e.color.defaultText,border:`1px solid ${e.appBorderColor}`,lineHeight:1.2})),nC=he.span(({theme:e})=>({fontWeight:600,color:e.color.mediumdark})),rC=he.span(({theme:e})=>({color:e.color.defaultText})),fc=he.div(({theme:e,width:t="100%",height:n="40px"})=>({width:t,height:n,backgroundColor:e.appBorderColor,borderRadius:"4px",position:"relative",overflow:"hidden","&::after":{content:'""',position:"absolute",top:0,left:"-100%",height:"100%",width:"100%",background:`linear-gradient(90deg, transparent, ${e.background.hoverable}, transparent)`,animation:"shimmer 1.5s infinite"},"@keyframes shimmer":{"0%":{left:"-100%"},"100%":{left:"100%"}}})),oC=he.div(({theme:e})=>({display:"flex",flexDirection:"column",border:`2px solid ${e.appBorderColor}`,borderRadius:"8px",backgroundColor:e.background.app,overflow:"hidden"})),iC=he.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",marginBottom:"16px",padding:"12px",backgroundColor:e.background.app,borderRadius:"4px",border:`1px solid ${e.appBorderColor}`})),sC=he.span(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText})),aC=he(Sn)({flex:1,width:"auto"}),lC=he.span(({theme:e,hasMapping:t})=>({fontSize:"12px",color:t?e.color.positive:e.color.mediumdark,fontWeight:t?500:400})),cC=he.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"8px 12px",marginBottom:"8px",backgroundColor:e.background.hoverable||"#f0f9ff",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,fontSize:e.typography.size.s1,flexWrap:"wrap"})),uC=he.span(({theme:e})=>({color:e.color.secondary,fontWeight:e.typography.weight.bold})),pC=he.span(({theme:e})=>({color:e.color.defaultText})),dC=he.button(({theme:e})=>({padding:"2px 8px",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.lightest,backgroundColor:e.color.secondary,border:"none",borderRadius:e.appBorderRadius,cursor:"pointer","&:hover":{opacity:.9}})),gC=he.button(({theme:e})=>({padding:"2px 6px",fontSize:e.typography.size.s1,color:e.color.mediumdark,backgroundColor:"transparent",border:"none",cursor:"pointer","&:hover":{color:e.color.defaultText}})),fC=he.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,marginBottom:"8px",fontStyle:"italic"})),mc=he.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",marginBottom:"12px",flexWrap:"wrap"})),ua=he.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),Xi=he(Sn)(({theme:e,isActive:t})=>({width:"auto",padding:"6px 28px 6px 10px",fontSize:"12px",...t&&{borderColor:e.color.secondary,backgroundColor:`${e.color.secondary}14`}})),hc=he.button(({theme:e})=>({padding:"6px 10px",border:"none",borderRadius:"4px",backgroundColor:"transparent",color:e.color.negative,fontSize:"12px",cursor:"pointer","&:hover":{backgroundColor:`${e.color.negative}15`}})),mC=he.div(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",padding:"8px 0",borderBottom:`1px solid ${e.appBorderColor}`})),hC=he.button(({theme:e})=>({padding:"6px 12px",border:"none",borderRadius:"4px",backgroundColor:"transparent",color:le,fontSize:"12px",cursor:"pointer","&:hover":{backgroundColor:"rgba(234, 88, 12, 0.08)"}})),xC=he.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),sh=he.button(({theme:e,isSelected:t})=>({display:"flex",flexDirection:"column",padding:0,border:`2px solid ${t?le:e.appBorderColor}`,borderRadius:"8px",backgroundColor:t?"rgba(234, 88, 12, 0.06)":e.background.app,color:e.color.defaultText,cursor:"pointer",overflow:"hidden",transition:"all 0.2s",position:"relative","&:hover":{borderColor:le,transform:"translateY(-2px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"}})),ah=he.div(({theme:e,isSelected:t})=>({position:"absolute",top:"8px",left:"8px",width:"20px",height:"20px",borderRadius:"4px",border:`2px solid ${t?le:e.appBorderColor}`,backgroundColor:t?le:e.background.content,display:"flex",alignItems:"center",justifyContent:"center",zIndex:10,fontSize:"12px",color:t?e.color.lightest:"transparent"})),yC=he.div(({theme:e})=>({padding:"16px 20px",borderTop:`1px solid ${e.appBorderColor}`,display:"flex",justifyContent:"flex-end",gap:"12px"})),bC=he.button(({theme:e,disabled:t})=>({padding:"10px 20px",border:"none",borderRadius:"4px",backgroundColor:t?e.color.mediumdark:le,color:e.color.lightest,fontSize:"14px",fontWeight:500,cursor:t?"not-allowed":"pointer",opacity:t?.6:1,transition:"all 0.2s","&:hover":{backgroundColor:t?e.color.mediumdark:le,opacity:t?.6:.9}})),SC=he.span(({theme:e})=>({display:"inline-block",padding:"1px 5px",marginLeft:"6px",borderRadius:"3px",fontSize:"9px",fontWeight:700,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:"rgba(16, 185, 129, 0.15)",color:e.color.positive,verticalAlign:"middle"}));Ne();import{styled as m_}from"storybook/theming";var h_=m_.button(({theme:e})=>({gridColumn:"1 / -1",padding:"8px 16px",backgroundColor:"transparent",border:`1px dashed ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,fontSize:e.typography.size.s1,cursor:"pointer",transition:"all 0.15s","&:hover":{borderColor:e.color.secondary,color:e.color.secondary}})),lh=f_(({src:e,alt:t,isComponentSet:n,loadingDone:r,failed:o})=>{let[i,s]=wC(!1),[a,u]=wC(!1);return g_(()=>{s(!1),u(!1)},[e]),i?Me.createElement(la,null,Me.createElement(th,null,n?"\u229E":"\u{1F5BC}\uFE0F"),Me.createElement(ca,null,"Failed to load")):e?Me.createElement(Me.Fragment,null,!a&&Me.createElement(la,{style:{position:"absolute",inset:0}},Me.createElement(eh,null),Me.createElement(ca,null,"Loading...")),Me.createElement(Vk,{src:e,alt:t,onLoad:()=>u(!0),onError:()=>s(!0),style:{opacity:a?1:0}})):r?Me.createElement(la,null,Me.createElement(th,null,n?"\u229E":"\u{1F5BC}\uFE0F"),Me.createElement(ca,null,o?"Render failed":"No preview")):Me.createElement(la,null,Me.createElement(eh,null),Me.createElement(ca,null,"Loading..."))}),pa=({frame:e,thumbnail:t,thumbnails:n,variantThumbnails:r,variantChildren:o,variantFailed:i,isLoadingVariants:s=!1,isExpanded:a,isNew:u=!1,onToggleExpand:c,onSelect:l,multiSelect:d=!1,selectedFrames:g=new Set,variantFilters:p=[],variantPage:m=1,onShowMore:b})=>{let E=e.type==="COMPONENT_SET",k=E&&(e.children&&e.children.length>0||(e.childCount??0)>0),D=e.children||o||[],N=Me.useMemo(()=>D.length===0?[]:p.some(R=>R.value)?D.filter(R=>R.variantProperties?p.every(h=>h.value?R.variantProperties?.[h.property]===h.value:!0):!1):D,[D,p]),$=R=>{if(E){c(e.id,R);return}l(e)},L=d?sh:Hk;return Me.createElement(Me.Fragment,null,Me.createElement(L,{onClick:$,title:e.name,isSelected:d?g.has(e.id):void 0,style:{cursor:"pointer"}},d&&!k&&Me.createElement(ah,{isSelected:g.has(e.id)},g.has(e.id)?"\u2713":""),E?Me.createElement(Wk,null,k&&Me.createElement(Kk,{onClick:R=>c(e.id,R),title:a?"Collapse variants":"Expand variants"},a?"\u25BC":"\u25B6"),k&&Me.createElement(Qk,null,N.length>0&&N.length!==D.length?`${N.length} / ${D.length}`:e.childCount??D.length," ","variants"),Me.createElement(lh,{src:t,alt:e.name,isComponentSet:!0})):Me.createElement(Zm,null,Me.createElement(lh,{src:t,alt:e.name,isComponentSet:!1})),Me.createElement(nh,null,Me.createElement(rh,null,e.name,u&&Me.createElement(SC,null,"New")),Me.createElement(oh,null,e.type))),k&&a&&s&&Me.createElement(Me.Fragment,null,Array.from({length:Math.min(6,e.childCount??e.children?.length??6)}).map((R,h)=>Me.createElement(Zk,{key:`skeleton-${h}`},Me.createElement(eC,null),Me.createElement(ih,{width:"80%"}),Me.createElement(ih,{width:"50%"})))),k&&a&&!s&&N.slice(0,m*50).map(R=>Me.createElement(ch,{key:R.id,variant:R,thumbnail:r?.[R.id]||n[R.id],onSelect:l,multiSelect:d,isSelected:g.has(R.id),loadingDone:!!t||r!==void 0&&R.id in(r||{})||!!i?.has(R.id),failed:i?.has(R.id)})),k&&a&&!s&&N.length>m*50&&Me.createElement(h_,{onClick:()=>b?.(e.id)},"Show more (",N.length-m*50," ","remaining)"))},ch=({variant:e,thumbnail:t,onSelect:n,multiSelect:r=!1,isSelected:o=!1,loadingDone:i=!1,failed:s=!1})=>Me.createElement(r?sh:Xk,{onClick:()=>{y.debug("[VariantCard] Clicked:",e.id,e.name),n(e)},title:e.name,isSelected:r?o:void 0},r&&Me.createElement(ah,{isSelected:o},o?"\u2713":""),Me.createElement(Zm,null,Me.createElement(lh,{src:t,alt:e.name,isComponentSet:!1,loadingDone:i,failed:s})),Me.createElement(nh,null,Me.createElement(rh,null,e.name),e.variantProperties&&Object.keys(e.variantProperties).length>0&&Me.createElement(Jk,null,Object.entries(e.variantProperties).map(([c,l])=>Me.createElement(tC,{key:c},Me.createElement(nC,null,c,":")," ",Me.createElement(rC,null,l)))),Me.createElement(oh,{style:{marginTop:"6px"}},"VARIANT")));var x_=Ge.div({display:"flex",height:"100%",overflow:"hidden"}),y_=Ge.div(({theme:e})=>({width:"380px",minWidth:"300px",borderRight:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",overflow:"hidden"})),b_=Ge.div({flex:1,display:"flex",flexDirection:"column",overflow:"hidden"}),CC=Ge.div(({theme:e})=>({padding:"12px 16px",borderBottom:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app})),TC=Ge.h4(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.mediumdark,textTransform:"uppercase",letterSpacing:"0.5px",margin:0})),xc=Ge.div({display:"flex",gap:"8px",marginTop:"10px"}),S_=Ge(Sn)({flex:1,width:"auto"}),IC=Ge(Co)({flex:1,fontSize:"13px"}),w_=Ge.div({flex:1,overflow:"auto",padding:"8px"}),v_=Ge.div(({theme:e,selected:t,mapped:n})=>({padding:"12px",marginBottom:"8px",borderRadius:"8px",border:`2px solid ${t?e.color.secondary:n?e.color.positive:e.appBorderColor}`,backgroundColor:t?`${e.color.secondary}10`:e.background.content,cursor:"pointer",transition:"all 0.2s","&:hover":{borderColor:t?e.color.secondary:e.color.mediumlight}})),k_=Ge.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}),C_=Ge.div(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),T_=Ge.span(({theme:e,mapped:t})=>({fontSize:"10px",fontWeight:500,padding:"2px 6px",borderRadius:"4px",backgroundColor:t?`${e.color.positive}20`:e.background.hoverable,color:t?e.color.positive:e.color.mediumdark})),I_=Ge.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),F_=Ge.div(({theme:e})=>({marginTop:"8px",padding:"8px",backgroundColor:`${e.color.positive}10`,borderRadius:"6px",fontSize:"11px",color:e.color.positive,display:"flex",alignItems:"center",gap:"8px",position:"relative"})),E_=Ge.img(({theme:e})=>({width:"48px",height:"36px",objectFit:"contain",backgroundColor:e.background.content,borderRadius:"4px",border:`1px solid ${e.appBorderColor}`,flexShrink:0})),A_=Ge.div({flex:1,overflow:"hidden"}),P_=Ge.div({fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),L_=Ge.div(({theme:e})=>({position:"absolute",bottom:"100%",left:"0",marginBottom:"8px",backgroundColor:e.background.content,borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.25)",border:`1px solid ${e.appBorderColor}`,padding:"8px",zIndex:100,maxWidth:"280px",animation:"fadeIn 0.15s ease-out","@keyframes fadeIn":{from:{opacity:0,transform:"translateY(4px)"},to:{opacity:1,transform:"translateY(0)"}}})),M_=Ge.img(({theme:e})=>({width:"100%",maxWidth:"260px",maxHeight:"200px",objectFit:"contain",borderRadius:"4px",backgroundColor:e.background.app,display:"block"})),B_=Ge.div(({theme:e})=>({marginTop:"8px",fontSize:"12px",fontWeight:500,color:e.color.defaultText,textAlign:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),D_=Ge.div({flex:1,display:"flex",flexDirection:"column",overflow:"hidden",position:"relative"}),R_=Ge.div({display:"flex",gap:"8px",flexWrap:"wrap"}),ph=Ge.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"4px",fontSize:"12px",color:e.color.mediumdark,cursor:"pointer","& input":{cursor:"pointer"}})),z_=Ge.div({flex:1,overflow:"auto",padding:"12px",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:"12px",alignContent:"start"}),dh=20,N_=Ge.div(({theme:e})=>({gridColumn:"1 / -1",display:"flex",alignItems:"center",justifyContent:"center",gap:"12px",padding:"12px 0",borderTop:`1px solid ${e.appBorderColor}`,marginTop:"8px"})),O_=Ge.button(({theme:e,disabled:t})=>({padding:"8px 16px",fontSize:"13px",fontWeight:500,color:t?e.color.mediumdark:e.color.secondary,backgroundColor:"transparent",border:`1px solid ${t?e.appBorderColor:e.color.secondary}`,borderRadius:"6px",cursor:t?"not-allowed":"pointer",opacity:t?.5:1,transition:"all 0.2s","&:hover":{backgroundColor:t?"transparent":`${e.color.secondary}10`}})),__=Ge.div(({theme:e})=>({gridColumn:"1 / -1",display:"flex",alignItems:"center",gap:"12px",padding:"8px 12px",backgroundColor:e.background.app,borderRadius:"6px",marginBottom:"8px"})),$_=Ge.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"6px 12px",fontSize:"13px",fontWeight:500,color:e.color.secondary,backgroundColor:"transparent",border:`1px solid ${e.color.secondary}`,borderRadius:"4px",cursor:"pointer",transition:"all 0.2s","&:hover":{backgroundColor:`${e.color.secondary}10`}})),U_=Ge.span(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),gh=Ge.div(({theme:e})=>({gridColumn:"1 / -1",fontSize:"12px",color:e.color.mediumdark,textAlign:"center",padding:"8px 0"})),fh=Ge.div(({theme:e})=>({flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:e.color.mediumdark,fontSize:"14px",gap:"8px"})),j_=Ge.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:e.color.mediumdark,fontSize:"14px"})),H_=Ge.div({flex:1,overflow:"auto",padding:"12px",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:"12px",alignContent:"start"}),FC=Ge.div(({theme:e})=>({borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,overflow:"hidden",backgroundColor:e.background.content})),EC=Ge.div(({theme:e})=>({width:"100%",aspectRatio:"4 / 3",backgroundColor:e.background.hoverable,animation:"shimmer 1.5s infinite",background:`linear-gradient(90deg, ${e.background.hoverable} 25%, ${e.background.app} 50%, ${e.background.hoverable} 75%)`,backgroundSize:"200% 100%","@keyframes shimmer":{"0%":{backgroundPosition:"200% 0"},"100%":{backgroundPosition:"-200% 0"}}})),AC=Ge.div(({theme:e,width:t="70%"})=>({height:"12px",width:t,backgroundColor:e.background.hoverable,borderRadius:"4px",margin:"12px",animation:"shimmer 1.5s infinite",background:`linear-gradient(90deg, ${e.background.hoverable} 25%, ${e.background.app} 50%, ${e.background.hoverable} 75%)`,backgroundSize:"200% 100%","@keyframes shimmer":{"0%":{backgroundPosition:"200% 0"},"100%":{backgroundPosition:"-200% 0"}}})),W_=()=>Q.createElement(H_,null,Array.from({length:8}).map((e,t)=>Q.createElement(FC,{key:t},Q.createElement(EC,null),Q.createElement(AC,{width:`${60+t%3*15}%`})))),V_=Ge.div(({theme:e})=>({padding:"12px 16px",backgroundColor:`${e.color.secondary}10`,borderBottom:`1px solid ${e.appBorderColor}`,fontSize:"13px",color:e.color.defaultText,display:"flex",alignItems:"center",gap:"8px"})),G_=Ge.div({position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.8)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",zIndex:50,gap:"8px"}),q_=Ge.div(({theme:e})=>({width:"24px",height:"24px",border:`3px solid ${e.appBorderColor}`,borderTop:`3px solid ${e.color.secondary}`,borderRadius:"50%",animation:"spin 1s linear infinite","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),Y_=Ge.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark})),PC=({stories:e,loading:t,selectedStoryId:n,onSelectStory:r,onStoryMapped:o,projectId:i})=>{let s=sa({projectId:i,limit:dh,enabled:!!i}),[a,u]=Qi("all"),[c,l]=Qi(""),[d,g]=Qi(null),[p,m]=Qi(1),[b,I]=Qi(null),[E,k]=Qi(!1),D=uh(()=>{let f=new Set;return e.forEach(v=>{v.componentTitle&&f.add(v.componentTitle)}),Array.from(f).sort()},[e]),N=uh(()=>e.filter(f=>{if(a!=="all"&&f.componentTitle!==a)return!1;if(c){let v=c.toLowerCase();return f.name.toLowerCase().includes(v)||f.title.toLowerCase().includes(v)}return!0}),[e,a,c]),$=d?s.frames.find(f=>f.id===d):null,L=uh(()=>{if(!d)return[];let f=s.variantChildren[d]||[];return f.length===0?[]:s.variantFilters.some(v=>v.value)?f.filter(v=>v.variantProperties?s.variantFilters.every(F=>F.value?v.variantProperties?.[F.property]===F.value:!0):!1):f},[d,s.variantChildren,s.variantFilters]),R=L.slice(0,p*dh),h=L.length>p*dh;vC(()=>{if(!d||R.length===0)return;let f=R.map(v=>v.id);s.fetchVariantThumbnails(d,f)},[d,R.length,p]),vC(()=>{k(!1)},[]);let S=kC(async f=>{if(n)try{let v=G(),F=localStorage.getItem("uicopilot_session_token");if(!(await ne(`${v}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({projectId:i,storyId:n,figmaNodeId:f.id,name:f.name})})).ok)throw new Error("Failed to save mapping");o(n,f.id,f.name)}catch(v){y.error("[MapStoriesTab] Error saving mapping:",v)}},[n,i,o]),w=kC((f,v)=>{if(v.stopPropagation(),d===f){g(null),m(1);return}g(f),m(1),!s.variantThumbnails[f]&&!s.loadingVariants.has(f)&&s.toggleExpanded(f,v)},[d,s]),A=e.find(f=>f.id===n);return t?Q.createElement(j_,null,"Loading stories..."):Q.createElement(x_,null,Q.createElement(y_,null,Q.createElement(CC,null,Q.createElement(TC,null,"Storybook Stories"),Q.createElement(xc,null,Q.createElement(S_,{value:a,onChange:f=>u(f.target.value)},Q.createElement("option",{value:"all"},"All Components"),D.map(f=>Q.createElement("option",{key:f,value:f},f)))),Q.createElement(xc,null,Q.createElement(IC,{type:"text",placeholder:"Search stories...",value:c,onChange:f=>l(f.target.value)}))),Q.createElement(w_,null,N.length===0?Q.createElement(fh,null,"No stories found"):N.map(f=>Q.createElement(v_,{key:f.id,selected:f.id===n,mapped:!!f.figmaMapping,onClick:()=>r(f.id)},Q.createElement(k_,null,Q.createElement(C_,null,f.name),Q.createElement(T_,{mapped:!!f.figmaMapping},f.figmaMapping?"Mapped":"Unmapped")),Q.createElement(I_,null,f.title),f.figmaMapping&&Q.createElement(F_,{onMouseEnter:()=>I(f.id),onMouseLeave:()=>I(null)},(()=>{let v=f.figmaMapping?.figmaNodeId,F=v?s.resolveThumbnail(v):void 0;return Q.createElement(Q.Fragment,null,F?Q.createElement(E_,{src:F,alt:f.figmaMapping?.figmaFrameName||""}):Q.createElement("span",null,"\u{1F517}"),b===f.id&&F&&Q.createElement(L_,null,Q.createElement(M_,{src:F,alt:f.figmaMapping?.figmaFrameName||""}),Q.createElement(B_,null,f.figmaMapping?.figmaFrameName)))})(),Q.createElement(A_,null,Q.createElement(P_,null,f.figmaMapping.figmaFrameName))))))),Q.createElement(b_,null,n?Q.createElement(Q.Fragment,null,Q.createElement(V_,null,Q.createElement("span",null,"Click a Figma component below to link it to"," ",Q.createElement("strong",null,A?.name))),Q.createElement(CC,null,Q.createElement(TC,null,"Figma Components"),Q.createElement(xc,null,Q.createElement(R_,null,Q.createElement(ph,null,Q.createElement("input",{type:"checkbox",checked:s.showComponentSets,onChange:f=>s.setShowComponentSets(f.target.checked)}),"Component Sets"),Q.createElement(ph,null,Q.createElement("input",{type:"checkbox",checked:s.showFrames,onChange:f=>s.setShowFrames(f.target.checked)}),"Frames"),Q.createElement(ph,null,Q.createElement("input",{type:"checkbox",checked:s.showComponents,onChange:f=>s.setShowComponents(f.target.checked)}),"Components")),s.availablePages.length>1&&Q.createElement(Xi,{isActive:!!s.figmaPage,value:s.figmaPage,onChange:f=>s.setFigmaPage(f.target.value)},Q.createElement("option",{value:""},"All pages"),s.availablePages.map(f=>Q.createElement("option",{key:f,value:f},f)))),s.availableFilters.length>0&&Q.createElement(mc,null,Q.createElement(ua,null,"Filters:"),s.availableFilters.slice(0,5).map(({property:f,values:v})=>{let F=s.variantFilters.find(x=>x.property===f);return Q.createElement(Xi,{key:f,isActive:!!F?.value,value:F?.value||"",onChange:x=>s.handleFilterChange(f,x.target.value)},Q.createElement("option",{value:""},f),v.map(x=>Q.createElement("option",{key:x,value:x},f,"=",x)))}),s.availableFilters.length>5&&Q.createElement(ua,{style:{opacity:.6,fontSize:"11px"}},"+",s.availableFilters.length-5," more"),s.variantFilters.some(f=>f.value)&&Q.createElement(hc,{onClick:s.clearFilters},"Clear All")),Q.createElement(xc,null,Q.createElement(IC,{type:"text",placeholder:"Search Figma components...",value:s.search,onChange:f=>s.setSearch(f.target.value)}))),Q.createElement(D_,null,E&&Q.createElement(G_,null,Q.createElement(q_,null),Q.createElement(Y_,null,"Loading thumbnails...")),s.isLoading?Q.createElement(W_,null):s.filteredFrames.length===0?Q.createElement(fh,null,Q.createElement("span",null,"No components match. Try a different search term, or check that your Figma file has component sets defined.")):Q.createElement(z_,null,d&&$?Q.createElement(Q.Fragment,null,Q.createElement(__,null,Q.createElement($_,{onClick:()=>{g(null),m(1)}},"Back"),Q.createElement(U_,null,$.name)),s.loadingVariants.has(d)?Q.createElement(Q.Fragment,null,Q.createElement(gh,null,"Loading ",$.childCount??"..."," ","variants..."),Array.from({length:Math.min(8,$.childCount??8)}).map((f,v)=>Q.createElement(FC,{key:`variant-skeleton-${v}`},Q.createElement(EC,null),Q.createElement(AC,{width:`${60+v%3*15}%`})))):Q.createElement(Q.Fragment,null,Q.createElement(gh,null,"Showing ",R.length," of"," ",L.length," variants"),R.map(f=>Q.createElement(ch,{key:f.id,variant:f,thumbnail:s.variantThumbnails[d]?.[f.id]||s.thumbnails[f.id],onSelect:S,loadingDone:s.variantThumbnails[d]!==void 0&&!s.loadingVariants.has(d),failed:s.variantFailed[d]?.has(f.id)})))):Q.createElement(Q.Fragment,null,Q.createElement(gh,null,"Showing ",s.frames.length," of ",s.totalFrames," ","components"),s.filteredFrames.map(f=>Q.createElement(pa,{key:f.id,frame:f,thumbnail:s.thumbnails[f.id],thumbnails:s.thumbnails,variantThumbnails:s.variantThumbnails[f.id],variantChildren:s.variantChildren[f.id],variantFailed:s.variantFailed[f.id],isLoadingVariants:s.loadingVariants.has(f.id),isExpanded:!1,onToggleExpand:w,onSelect:S,variantFilters:s.variantFilters}))),(d?h:s.hasMore)&&Q.createElement(N_,null,Q.createElement(O_,{disabled:s.loadingMore,onClick:async()=>{d?m(f=>f+1):await s.loadMore()}},s.loadingMore?"Loading...":"Load More"))))):Q.createElement(fh,null,Q.createElement("span",null,"\u{1F448} Pick a story from the left, then browse your Figma file to find a matching frame. The mapping is saved per story."))))};Ue();import rt,{useState as mh,useMemo as LC,useCallback as MC}from"react";import{styled as _t}from"storybook/theming";lt();var K_=_t.div({display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"}),X_=_t.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px 20px",backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`,flexWrap:"wrap"})),Q_=_t(Sn)({width:"auto",minWidth:"200px"}),J_=_t(Co)({fontSize:"13px",minWidth:"250px"}),Z_=_t.button(({theme:e,active:t})=>({padding:"8px 12px",fontSize:"13px",fontWeight:500,border:`1px solid ${t?e.color.positive:e.appBorderColor}`,borderRadius:"6px",backgroundColor:t?`${e.color.positive}15`:e.background.content,color:t?e.color.positive:e.color.mediumdark,cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",transition:"all 0.2s","&:hover":{borderColor:e.color.positive}})),e$=_t.button(({theme:e})=>({marginLeft:"auto",padding:"8px 12px",fontSize:"13px",fontWeight:500,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.background.content,color:e.color.defaultText,cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",transition:"all 0.2s","&:hover":{backgroundColor:e.background.hoverable}})),t$=_t.div({flex:1,overflow:"auto"}),n$=_t.table(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:"13px"})),r$=_t.thead(({theme:e})=>({position:"sticky",top:0,backgroundColor:e.background.app,zIndex:1})),yc=_t.th(({theme:e})=>({padding:"12px 20px",textAlign:"left",fontWeight:600,fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.5px",color:e.color.mediumdark,borderBottom:`1px solid ${e.appBorderColor}`})),o$=_t.tbody({}),i$=_t.tr(({theme:e,mapped:t})=>({backgroundColor:t?"transparent":`${e.color.warning}05`,"&:hover":{backgroundColor:e.background.hoverable}})),bc=_t.td(({theme:e})=>({padding:"14px 20px",borderBottom:`1px solid ${e.appBorderColor}`,verticalAlign:"middle"})),s$=_t.div({display:"flex",flexDirection:"column",gap:"2px"}),a$=_t.div(({theme:e})=>({fontWeight:500,color:e.color.defaultText})),l$=_t.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark})),c$=_t.div(({theme:e,mapped:t})=>({color:t?e.color.positive:e.color.mediumlight,fontWeight:t?500:400,display:"flex",alignItems:"center",gap:"6px"})),u$=_t.div({display:"flex",alignItems:"center",gap:"8px"}),p$=_t.span(({theme:e,mapped:t})=>({width:"10px",height:"10px",borderRadius:"50%",backgroundColor:t?e.color.positive:e.color.mediumlight})),d$=_t.span(({theme:e,mapped:t})=>({color:t?e.color.positive:e.color.mediumdark,fontWeight:500})),BC=_t.button(({theme:e,variant:t})=>({padding:"6px 12px",fontSize:"12px",fontWeight:500,border:`1px solid ${t==="link"?e.color.secondary:e.color.negative}`,borderRadius:"4px",backgroundColor:t==="link"?`${e.color.secondary}10`:`${e.color.negative}10`,color:t==="link"?e.color.secondary:e.color.negative,cursor:"pointer",transition:"all 0.2s","&:hover":{backgroundColor:t==="link"?`${e.color.secondary}20`:`${e.color.negative}20`}})),g$=_t.div(({theme:e})=>({flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:e.color.mediumdark,fontSize:"14px",gap:"8px",padding:"40px"})),f$=_t.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:e.color.mediumdark,fontSize:"14px"})),DC=({stories:e,loading:t,onLink:n,onUnlink:r,projectId:o})=>{let[i,s]=mh("all"),[a,u]=mh(""),[c,l]=mh(!0),d=LC(()=>{let I=new Set;return e.forEach(E=>{E.componentTitle&&I.add(E.componentTitle)}),Array.from(I).sort()},[e]),g=LC(()=>e.filter(I=>{if(i!=="all"&&I.componentTitle!==i||!c&&!I.figmaMapping)return!1;if(a){let E=a.toLowerCase();return I.name.toLowerCase().includes(E)||I.title.toLowerCase().includes(E)||(I.figmaMapping?.figmaFrameName?.toLowerCase().includes(E)??!1)}return!0}),[e,i,a,c]),p=MC(async I=>{try{let E=G(),k=localStorage.getItem("uicopilot_session_token");if(!(await ne(`${E}/api/mappings?projectId=${o}&storyId=${I}`,{method:"DELETE",headers:{Authorization:`Bearer ${k}`}})).ok)throw new Error("Failed to delete mapping");r(I)}catch(E){console.error("[ViewAllMappingsTab] Error unlinking:",E)}},[o,r]),m=MC(()=>{let I=e.filter(N=>N.figmaMapping).map(N=>({storyId:N.id,storyName:N.name,storyTitle:N.title,figmaNodeId:N.figmaMapping.figmaNodeId,figmaFrameName:N.figmaMapping.figmaFrameName})),E=new Blob([JSON.stringify(I,null,2)],{type:"application/json"}),k=URL.createObjectURL(E),D=document.createElement("a");D.href=k,D.download=`figma-mappings-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(D),D.click(),document.body.removeChild(D),URL.revokeObjectURL(k)},[e]);if(t)return rt.createElement(f$,null,"Loading mappings...");let b=e.filter(I=>I.figmaMapping).length;return rt.createElement(K_,null,rt.createElement(X_,null,rt.createElement(Q_,{value:i,onChange:I=>s(I.target.value)},rt.createElement("option",{value:"all"},"All Components"),d.map(I=>rt.createElement("option",{key:I,value:I},I))),rt.createElement(J_,{type:"text",placeholder:"\u{1F50D} Search stories or Figma components...",value:a,onChange:I=>u(I.target.value)}),rt.createElement(Z_,{active:c,onClick:()=>l(!c)},c?"\u2611":"\u2610"," Show unmapped"),rt.createElement(e$,{onClick:m,disabled:b===0},"\u{1F4E5} Export JSON")),g.length===0?rt.createElement(g$,null,rt.createElement("span",null,"\u{1F4ED}"),a?"No stories match your search":"No stories found"):rt.createElement(t$,null,rt.createElement(n$,null,rt.createElement(r$,null,rt.createElement("tr",null,rt.createElement(yc,{style:{width:"35%"}},"Story"),rt.createElement(yc,{style:{width:"35%"}},"Figma Component"),rt.createElement(yc,{style:{width:"15%"}},"Status"),rt.createElement(yc,{style:{width:"15%"}},"Actions"))),rt.createElement(o$,null,g.map(I=>rt.createElement(i$,{key:I.id,mapped:!!I.figmaMapping},rt.createElement(bc,null,rt.createElement(s$,null,rt.createElement(a$,null,I.name),rt.createElement(l$,null,I.title))),rt.createElement(bc,null,rt.createElement(c$,{mapped:!!I.figmaMapping},I.figmaMapping?rt.createElement(rt.Fragment,null,rt.createElement("span",null,"\u{1F3A8}"),I.figmaMapping.figmaFrameName):"\u2014")),rt.createElement(bc,null,rt.createElement(u$,null,rt.createElement(p$,{mapped:!!I.figmaMapping}),rt.createElement(d$,{mapped:!!I.figmaMapping},I.figmaMapping?"Mapped":"Unmapped"))),rt.createElement(bc,null,I.figmaMapping?rt.createElement(BC,{variant:"unlink",onClick:()=>p(I.id)},"Unlink"):rt.createElement(BC,{variant:"link",onClick:()=>n(I.id)},"Link"))))))))};import Ce,{useState as Tc,useMemo as UC}from"react";import{styled as ft}from"storybook/theming";import RC from"react";import{styled as zC,keyframes as m$}from"storybook/theming";var h$=m$`
42
42
  0% { transform: rotate(0deg); }
43
43
  100% { transform: rotate(360deg); }
44
- `,o$=CC.span(({theme:e})=>({display:"inline-block",width:"12px",height:"12px",border:`2px solid ${e.appBorderColor}`,borderTopColor:"currentColor",borderRadius:"50%",animation:`${r$} 0.6s linear infinite`,marginRight:"6px",verticalAlign:"middle"})),i$=CC.button(({theme:e,variant:t="default",disabled:n})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"5px 12px",fontSize:"12px",fontWeight:600,border:`1px solid ${e.color.medium}`,borderRadius:"5px",cursor:n?"not-allowed":"pointer",opacity:n?.6:1,transition:"all 0.2s",whiteSpace:"nowrap",...t==="default"&&{backgroundColor:e.background.content,color:e.color.defaultText,"&:hover":n?{}:{borderColor:e.color.secondary,color:e.color.secondary,backgroundColor:"rgba(30, 167, 253, 0.05)"}},...t==="ghost"&&{backgroundColor:"transparent",border:"none",color:e.color.mediumdark,padding:"5px 8px","&:hover":n?{}:{color:e.color.defaultText,backgroundColor:e.background.hoverable}}})),Mr=({loading:e=!1,disabled:t=!1,onClick:n,variant:r="default",children:o,loadingText:i})=>kC.createElement(i$,{variant:r,disabled:t||e,onClick:n},e&&kC.createElement(o$,null),e&&i?i:o);Ue();import dn from"react";import{styled as ca}from"storybook/theming";var TC=ca.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 16px",backgroundColor:e.background.hoverable,borderRadius:"6px",fontFamily:"Inter, sans-serif",fontSize:"11px",color:e.color.mediumdark,gap:"16px"})),s$=ca.div({display:"flex",alignItems:"center",gap:"12px"}),gc=ca.span({whiteSpace:"nowrap"}),IC=ca.div({display:"flex",alignItems:"center",gap:"8px"}),fc=ca.span(({theme:e})=>({fontWeight:600,color:e.color.defaultText})),mc=({inputTokens:e,outputTokens:t,costUsd:n,compact:r=!1})=>{let o=e+t,i=n*Lw;return r?dn.createElement(TC,null,dn.createElement(gc,null,o.toLocaleString()," tokens"),dn.createElement(IC,null,dn.createElement(fc,null,"$",n.toFixed(4)),dn.createElement("span",null,"\xB7"),dn.createElement(fc,null,"\u20AA",i.toFixed(2)))):dn.createElement(TC,null,dn.createElement(s$,null,dn.createElement(gc,null,e.toLocaleString()," input"),dn.createElement("span",null,"+"),dn.createElement(gc,null,t.toLocaleString()," output"),dn.createElement("span",null,"="),dn.createElement(gc,null,dn.createElement("strong",null,o.toLocaleString())," tokens")),dn.createElement(IC,null,dn.createElement(fc,null,"$",n.toFixed(4)),dn.createElement("span",null,"\xB7"),dn.createElement(fc,null,"\u20AA",i.toFixed(2))))};import Gn from"react";import{styled as Ro}from"storybook/theming";function ch(e){if(typeof e!="string")return e;try{let t=JSON.parse(e);if(t.summary)return t}catch{}return{summary:e}}var a$=Ro.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:`${e.layoutMargin*.5}px`})),FC=Ro.div(({theme:e,color:t})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:t||e.color.defaultText,lineHeight:"1.4"})),l$=Ro.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.25}px`,flexWrap:"wrap",fontSize:e.typography.size.s1,color:e.color.mediumdark})),c$=Ro.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:`${e.layoutMargin*.2}px`,padding:`1px ${e.layoutMargin*.5}px`,borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.mono})),u$=Ro.span(({theme:e})=>({color:e.color.mediumlight,fontSize:e.typography.size.s1})),p$=Ro.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,fontStyle:"italic"})),d$=Ro.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,display:"flex",gap:`${e.layoutMargin*.25}px`})),g$=Ro.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText})),EC=({data:e,color:t,compact:n})=>n?Gn.createElement(FC,{color:t},e.summary):Gn.createElement(a$,null,Gn.createElement(FC,{color:t},e.summary),e.mappings&&e.mappings.length>0&&Gn.createElement(l$,null,e.mappings.map((r,o)=>Gn.createElement(Gn.Fragment,{key:o},Gn.createElement(c$,null,r.from," ",Gn.createElement(u$,null,"\u2192")," ",r.to)))),e.candidates!=null&&e.candidates>1&&Gn.createElement(p$,null,e.candidates," candidate variants matched"),e.defaults&&e.defaults.length>0&&Gn.createElement(Gn.Fragment,null,e.defaults.map((r,o)=>Gn.createElement(d$,{key:o},Gn.createElement(g$,null,r.choice),Gn.createElement("span",null,"\u2014 ",r.why)))));var f$=ht.div({display:"flex",flexDirection:"column",flex:1,overflow:"hidden"}),m$=ht.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"20px 24px",borderBottom:`1px solid ${e.appBorderColor}`})),h$=ht.div({display:"flex",flexDirection:"column",gap:"4px"}),x$=ht.div({display:"flex",alignItems:"center",gap:"10px"}),y$=ht.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText,letterSpacing:"-0.3px"})),PC=ht.span(({theme:e,variant:t})=>({padding:"3px 10px",borderRadius:"20px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,fontWeight:500,backgroundColor:t==="success"?`${e.color.positive}1a`:t==="danger"?`${e.color.negative}1a`:`${e.color.secondary}1a`,color:t==="success"?e.color.positive:t==="danger"?e.color.negative:e.color.secondary})),b$=ht.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark})),S$=ht.div({display:"flex",gap:"8px"}),w$=ht.div(({theme:e})=>({display:"flex",alignItems:"center",padding:"12px 24px",gap:"12px",borderBottom:`1px solid ${e.appBorderColor}`})),v$=ht(vo)(({theme:e})=>({flex:1,fontSize:e.typography.size.s2})),k$=ht.div({display:"flex",gap:"4px"}),hc=ht.button(({theme:e,active:t})=>({padding:"6px 12px",borderRadius:"6px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:500,border:t?"none":`1px solid ${e.appBorderColor}`,backgroundColor:t?e.color.defaultText:e.background.content,color:t?e.color.inverseText:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","&:hover":{backgroundColor:t?e.color.defaultText:e.background.hoverable}})),C$=ht.div({display:"flex",flexDirection:"column",flex:1,padding:"16px 24px",gap:"8px",overflowY:"auto"}),T$=ht.div(({theme:e,dimmed:t})=>({display:"flex",alignItems:"center",padding:"12px 16px",border:`1px solid ${e.appBorderColor}`,borderRadius:"10px",gap:"12px",backgroundColor:e.background.content,opacity:t?.6:1,transition:"opacity 0.15s",position:"relative",zIndex:0,"&:hover":{zIndex:10}})),I$=ht.div(({theme:e,checked:t})=>({width:"18px",height:"18px",borderRadius:"4px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.15s",...t?{backgroundColor:e.color.defaultText,color:e.color.inverseText,fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold}:{border:`2px solid ${e.color.mediumlight}`}})),F$=ht.div(({theme:e,bgColor:t})=>({width:"48px",height:"40px",borderRadius:"6px",backgroundColor:t||e.background.hoverable,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,overflow:"hidden"})),xc=ht.div(({theme:e})=>({width:"120px",height:"80px",borderRadius:"8px",backgroundColor:e.background.hoverable,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,overflow:"hidden",border:`1px solid ${e.appBorderColor}`})),E$=ht.img({width:"100%",height:"100%",objectFit:"contain"}),RC=ht.div(({theme:e})=>({width:"16px",height:"16px",border:`2px solid ${e.appBorderColor}`,borderTopColor:e.color.secondary,borderRadius:"50%",animation:"uicopilot-spin 0.8s linear infinite","@keyframes uicopilot-spin":{to:{transform:"rotate(360deg)"}}})),LC=ht.div({flex:1,display:"flex",flexDirection:"column",gap:"2px",minWidth:0}),MC=ht.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:500,color:e.color.defaultText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),uh=ht.span(({theme:e,color:t})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,color:t||e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),Dne=ht.span(({theme:e,color:t})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,color:t||e.color.mediumdark,lineHeight:1.5,whiteSpace:"pre-line"})),A$=ht.div(({theme:e})=>({flexShrink:0,color:e.color.mediumlight,fontSize:"14px"})),P$=ht.span(({theme:e,level:t})=>({padding:"4px 10px",borderRadius:"20px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,flexShrink:0,backgroundColor:t==="high"?`${e.color.positive}1a`:t==="medium"?`${e.color.warning}1a`:`${e.color.negative}1a`,color:t==="high"?e.color.positive:t==="medium"?e.color.warning:e.color.negative})),L$=ht.button(({theme:e})=>({padding:"4px 8px",borderRadius:e.appBorderRadius,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,fontWeight:500,border:`1px solid ${e.appBorderColor}`,backgroundColor:"transparent",color:e.color.mediumdark,cursor:"pointer",flexShrink:0,transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText}})),M$=ht.div(({theme:e})=>({padding:"16px 0",marginTop:"8px",borderTop:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",gap:"8px"})),B$=ht.div({display:"flex",flexWrap:"wrap",gap:"6px"}),D$=ht.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"6px 12px",border:`1px dashed ${e.appBorderColor}`,borderRadius:"8px",backgroundColor:e.background.hoverable,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark})),R$=ht.span(({theme:e,variant:t})=>({padding:"3px 10px",borderRadius:"20px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,fontWeight:500,backgroundColor:t==="cache"?`${e.color.warning}1a`:`${e.color.positive}1a`,color:t==="cache"?e.color.warning:e.color.positive})),z$=ht.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"5px",padding:"5px 12px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:"transparent",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:500,color:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),Rne=ht.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 24px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.hoverable,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,color:e.color.mediumdark})),BC=({src:e,alt:t})=>{let[n,r]=yc(!1);return Ce.createElement(Ce.Fragment,null,!n&&Ce.createElement(RC,null),Ce.createElement(E$,{src:e,alt:t,onLoad:()=>r(!0),style:n?void 0:{position:"absolute",opacity:0}}))};function DC(e){return e>=90?"high":e>=70?"medium":"low"}function N$(e){return e==="high"?"#16a34a":e==="medium"?"#d97706":"#ef4444"}var zC=({results:e,stories:t,onApply:n,onCancel:r,onRerun:o,isApplying:i,isRerunning:s,source:a,resolveThumbnail:u,resolveStoryScreenshot:c,isCapturingScreenshots:l,onBrowse:d})=>{let[g,p]=yc(()=>{let w=new Set;for(let P of e.mappings)P.confidence>=90&&w.add(P.storyId);return w}),[m,b]=yc(""),[F,E]=yc("all"),v=AC(()=>{let w=new Map;for(let P of t)w.set(P.id,{name:P.name,title:P.title});return w},[t]),D=AC(()=>{let w=e.mappings;if(F!=="all"&&(w=w.filter(P=>DC(P.confidence)===F)),m.trim()){let P=m.toLowerCase();w=w.filter(f=>{let k=v.get(f.storyId);return k?.name.toLowerCase().includes(P)||k?.title.toLowerCase().includes(P)||f.componentSetName.toLowerCase().includes(P)||f.figmaFrameName.toLowerCase().includes(P)})}return w},[e.mappings,F,m,v]),O=w=>{p(P=>{let f=new Set(P);return f.has(w)?f.delete(w):f.add(w),f})},$=()=>{let w=e.mappings.filter(P=>g.has(P.storyId));n(w)},L=e.mappings.filter(w=>w.confidence>=90).length,N=e.mappings.filter(w=>w.confidence>=70&&w.confidence<90).length,x=e.mappings.filter(w=>w.confidence<70).length,S=e.usage;return Ce.createElement(f$,null,Ce.createElement(m$,null,Ce.createElement(h$,null,Ce.createElement(x$,null,Ce.createElement(y$,null,"Auto-Map Results"),Ce.createElement(PC,{variant:"success"},e.stats.matched," matched"),e.unmatched.length>0&&Ce.createElement(PC,{variant:"danger"},e.unmatched.length," unmatched"),a&&Ce.createElement(R$,{variant:a},a==="cache"?"Loaded from cache":"Fresh analysis")),Ce.createElement(b$,null,"Review matches below. Uncheck any incorrect mappings before applying.")),Ce.createElement(S$,null,a==="cache"&&o&&Ce.createElement(z$,{onClick:o,disabled:s},s?"Re-running...":"Re-run LLM"),Ce.createElement(Mr,{onClick:r,variant:"ghost"},"Cancel"),Ce.createElement(Mr,{loading:i,onClick:$,loadingText:"Applying..."},"Apply ",g.size," Selected"))),Ce.createElement(w$,null,Ce.createElement(v$,{type:"text",placeholder:"Filter stories...",value:m,onChange:w=>b(w.target.value)}),Ce.createElement(k$,null,Ce.createElement(hc,{active:F==="all",onClick:()=>E("all")},"All ",e.mappings.length),L>0&&Ce.createElement(hc,{active:F==="high",onClick:()=>E("high")},"\u226590% (",L,")"),N>0&&Ce.createElement(hc,{active:F==="medium",onClick:()=>E("medium")},"70-89% (",N,")"),x>0&&Ce.createElement(hc,{active:F==="low",onClick:()=>E("low")},"<70% (",x,")"))),Ce.createElement(C$,null,D.map(w=>{let P=v.get(w.storyId),f=DC(w.confidence),k=g.has(w.storyId),T=f==="low";return Ce.createElement(T$,{key:w.storyId,dimmed:T&&!k},Ce.createElement(I$,{checked:k,onClick:()=>O(w.storyId)},k?"\u2713":""),(()=>{let h=c?.(w.storyId);return h?Ce.createElement(xc,null,Ce.createElement(BC,{src:h,alt:P?.name||w.storyId})):l?Ce.createElement(xc,null,Ce.createElement(RC,null)):Ce.createElement(F$,{bgColor:T?"#f1f5f9":"#eff6ff"},Ce.createElement("span",{style:{fontFamily:"Inter",fontSize:"8px",fontWeight:500,color:T?"#94a3b8":"#3b82f6"}},(P?.name||"?").substring(0,4)))})(),Ce.createElement(LC,null,Ce.createElement(MC,null,P?.name||w.storyId),Ce.createElement(uh,null,P?.title||"")),Ce.createElement(A$,null,"\u2192"),(()=>{let h=u?.(w.figmaNodeId),I=ch(w.reason),A=I.summary+(I.candidates?` (${I.candidates} candidates)`:"");return h?Ce.createElement(xc,{title:A},Ce.createElement(BC,{src:h,alt:w.figmaFrameName})):Ce.createElement(xc,{title:A},Ce.createElement("span",{style:{fontFamily:"Inter",fontSize:"10px",fontWeight:500,color:"#94a3b8"}},"No thumbnail"))})(),Ce.createElement(LC,null,Ce.createElement(MC,null,w.componentSetName),Ce.createElement(uh,null,w.figmaFrameName),Ce.createElement(EC,{data:ch(w.reason),color:N$(f)})),Ce.createElement(P$,{level:f},w.confidence,"%"),d&&Ce.createElement(L$,{onClick:()=>d(w.componentSetName)},"Browse"))}),e.unmatched.length>0&&Ce.createElement(M$,null,Ce.createElement(uh,null,e.unmatched.length," stories couldn't be matched \u2014 map manually after applying"),Ce.createElement(B$,null,e.unmatched.map(w=>{let P=v.get(w);return Ce.createElement(D$,{key:w},Ce.createElement("span",{style:{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#cbd5e1"}}),P?`${P.name} (${P.title})`:w)})))),S&&a!=="cache"&&Ce.createElement("div",{style:{padding:"8px 24px",borderTop:"1px solid #f0f0f0"}},Ce.createElement(mc,{inputTokens:S.inputTokens||0,outputTokens:S.outputTokens||0,costUsd:S.costUsd||0})))};Ue();Ne();import{useState as zo,useCallback as No,useRef as O$}from"react";import{useStorybookApi as _$}from"storybook/manager-api";function NC({projectId:e}){let t=_$(),n=O$(null),[r,o]=zo(!1),[i,s]=zo(!1),[a,u]=zo(!1),[c,l]=zo(null),[d,g]=zo(null),[p,m]=zo(null),[b,F]=zo(""),[E,v]=zo(null),D=No(async()=>{let P=await fetch("/index.json");if(!P.ok)throw new Error("Failed to fetch Storybook index");let f=await P.json(),k=f.entries||f.stories||{},T=Object.keys(k).filter(A=>k[A].type==="story");y.debug(`[useAutoMap] Found ${T.length} stories in index.json`);let h=[];for(let A of T){let M=k[A],z=t.getData(A),C={...z?.initialArgs||{}},R=z?.argTypes||{};for(let[W,B]of Object.entries(R))if(!(W in C)){let ie=B;if(ie.defaultValue!==void 0)C[W]=ie.defaultValue;else if(ie.table?.defaultValue?.summary!==void 0){let Y=ie.table.defaultValue.summary;Y==="false"?C[W]=!1:Y==="true"?C[W]=!0:C[W]=Y}}h.push({id:A,name:M.name||A.split("--").pop()||A,title:M.title||"",initialArgs:C,argTypes:R})}let I=h.filter(A=>Object.keys(A.initialArgs).length>0);return y.debug(`[useAutoMap] Manifest: ${h.length} stories, ${I.length} with args`),h},[t]),O=No(async()=>{if(!e)return!1;try{let P=G(),f=localStorage.getItem("uicopilot_session_token");if(!f)return!1;let k=await fetch(`${P}/api/figma/auto-map?projectId=${e}`,{headers:{Authorization:`Bearer ${f}`}});if(!k.ok)return!1;let T=await k.json();return T.hasSuggestions&&T.mappings?.length>0?(g(T),v("cache"),F(`Loaded ${T.mappings.length} saved suggestions`),y.debug(`[useAutoMap] Loaded ${T.mappings.length} existing suggestions from DB`),!0):!1}catch{return!1}},[e]),$=No(async P=>{o(!0),F("Collecting story information...");let f;try{if(f=await D(),P?.length&&(f=f.filter(T=>!P.includes(T.id)),y.debug(`[useAutoMap] After excluding mapped: ${f.length} stories`)),f.length===0){l("No unmapped stories found"),o(!1);return}m(f)}catch(T){l(T instanceof Error?T.message:"Failed to collect story manifest"),o(!1);return}o(!1),s(!0),F(`Analyzing ${f.length} stories against Figma components...`);let k=new AbortController;n.current=k;try{let T=G(),h=localStorage.getItem("uicopilot_session_token");if(!h)throw new Error("Not authenticated");let I=await fetch(`${T}/api/figma/auto-map`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${h}`},body:JSON.stringify({projectId:e,stories:f.map(M=>({id:M.id,name:M.name,title:M.title,initialArgs:M.initialArgs,argTypes:M.argTypes}))}),signal:k.signal});if(!I.ok){let M=await I.json();throw new Error(M.error||"Auto-map failed")}let A=await I.json();g(A),v("llm"),F(`Found ${A.stats.matched} matches (${A.stats.highConfidence} high confidence)`),y.debug(`[useAutoMap] Results: ${A.stats.matched}/${A.stats.total} matched, ${A.unmatched.length} unmatched`)}catch(T){if(T instanceof DOMException&&T.name==="AbortError"){F("Cancelled");return}l(T instanceof Error?T.message:"Auto-map failed")}finally{s(!1),n.current=null}},[e,D]),L=No(async P=>{if(!e)return;if(l(null),g(null),v(null),o(!0),F("Checking for existing suggestions..."),await O()){o(!1);return}await $(P)},[e,O,$]),N=No(async P=>{e&&(l(null),g(null),v(null),await $(P))},[e,$]),x=No(async P=>{if(!(!e||P.length===0)){u(!0),F(`Applying ${P.length} mappings...`);try{let f=G(),k=localStorage.getItem("uicopilot_session_token");if(!k)throw new Error("Not authenticated");let T=0;for(let h of P)try{(await fetch(`${f}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${k}`},body:JSON.stringify({projectId:e,storyId:h.storyId,figmaNodeId:h.figmaNodeId,name:h.figmaFrameName||h.componentSetName})})).ok?T++:y.warn(`[useAutoMap] Failed to apply mapping for ${h.storyId}`)}catch(I){y.error(`[useAutoMap] Error applying mapping for ${h.storyId}:`,I)}F(`Applied ${T}/${P.length} mappings`),y.debug(`[useAutoMap] Applied ${T}/${P.length} mappings`)}catch(f){l(f instanceof Error?f.message:"Failed to apply mappings")}finally{u(!1)}}},[e]),S=No(()=>{n.current?.abort()},[]),w=No(()=>{g(null),m(null),l(null),F(""),v(null)},[]);return{collectAndMap:L,rerun:N,loadExisting:O,applyMappings:x,cancel:S,reset:w,isCollecting:r,isMapping:i,isApplying:a,error:c,results:d,manifest:p,progress:b,source:E}}Ne();import{useState as ph,useEffect as $$,useRef as OC}from"react";var _C=2;async function U$(e,t){try{let n=await fetch(`/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`,{signal:t});return n.ok&&(await n.json()).screenshot||null}catch{return null}}function $C(e){let[t,n]=ph({}),[r,o]=ph(0),[i,s]=ph(!1),a=OC(null),u=OC(""),c=e.join(",");return $$(()=>{if(!e.length||c===u.current)return;u.current=c,n({}),o(0),s(!0);let l=new AbortController;a.current=l;let d=0;return(async()=>{for(let p=0;p<e.length&&!l.signal.aborted;p+=_C){let m=e.slice(p,p+_C),b=await Promise.all(m.map(E=>U$(E,l.signal).then(v=>({id:E,img:v}))));if(l.signal.aborted)break;let F={};for(let{id:E,img:v}of b)d++,v&&(F[E]=v);Object.keys(F).length>0&&n(E=>({...E,...F})),o(d)}s(!1),y.debug(`[useStoryScreenshots] Captured ${d}/${e.length} screenshots`)})().catch(()=>s(!1)),()=>{l.abort()}},[c]),{screenshots:t,isCapturing:i,progress:{done:r,total:e.length}}}import be,{useState as dh,useEffect as ua,useMemo as j$,useCallback as H$}from"react";import{styled as W$}from"storybook/theming";Ne();var V$=W$.button(({theme:e})=>({gridColumn:"1 / -1",padding:"8px 16px",backgroundColor:"transparent",border:`1px dashed ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,fontSize:e.typography.size.s1,cursor:"pointer",transition:"all 0.15s","&:hover:not(:disabled)":{borderColor:e.color.secondary,color:e.color.secondary},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),Qi=({isOpen:e,onClose:t,onSelect:n,projectId:r,stories:o=[],currentStoryId:i,onStoryChange:s,multiSelect:a=!1,onMultiSelect:u,initialSearch:c})=>{let l=ra({projectId:r||"",enabled:e&&!!r}),d=be.useRef(!1);ua(()=>{e&&c&&!d.current&&(l.setSearch(c),d.current=!0),e||(d.current=!1)},[e,c]);let[g,p]=dh(new Set),[m,b]=dh(i||o[0]?.id||"");ua(()=>{i&&b(i)},[i]);let F=50,E=8,[v,D]=dh({}),O=H$(f=>{D(k=>({...k,[f]:(k[f]||1)+1}))},[]);ua(()=>{D({})},[l.variantFilters]),ua(()=>{l.expandedSets.forEach(f=>{let k=l.variantChildren[f];if(!k||k.length===0)return;let T=k;l.variantFilters.some(A=>A.value)&&(T=k.filter(A=>A.variantProperties?l.variantFilters.every(M=>M.value?A.variantProperties?.[M.property]===M.value:!0):!1));let h=v[f]||1,I=T.slice(0,h*F).map(A=>A.id);for(let A=0;A<I.length;A+=E){let M=I.slice(A,A+E),z=A/E*300;z===0?l.fetchVariantThumbnails(f,M):setTimeout(()=>l.fetchVariantThumbnails(f,M),z)}})},[l.expandedSets,l.variantChildren,l.variantFilters,v]),ua(()=>{p(new Set)},[m]);let $=j$(()=>{let f=[];return l.filteredFrames.forEach(k=>{if(k.type==="COMPONENT_SET"&&k.children){let T=l.variantFilters.some(h=>h.value)?k.children.filter(h=>h.variantProperties?l.variantFilters.every(I=>I.value?h.variantProperties?.[I.property]===I.value:!0):!1):k.children;f.push(...T)}else f.push(k)}),f},[l.filteredFrames,l.variantFilters]),L=f=>{if(a)p(k=>{let T=new Set(k);return T.has(f.id)?T.delete(f.id):T.add(f.id),T});else{let k=l.resolveThumbnail(f.id);try{n({...f,thumbnail:k})}catch(T){y.error("[ComponentBrowserModal] onSelect threw error:",T)}t()}},N=()=>{let f=$.map(T=>T.id),k=f.every(T=>g.has(T));p(k?new Set:new Set(f))},x=()=>{if(u&&g.size>0){let f=$.filter(k=>g.has(k.id)).map(k=>({...k,thumbnail:l.resolveThumbnail(k.id)}));u(f),p(new Set)}},S=f=>{b(f),s?.(f)},w=f=>{f.target===f.currentTarget&&t()},P=o.find(f=>f.id===m);return e?be.createElement(Ck,{onClick:w},be.createElement(Tk,null,be.createElement(Ik,null,be.createElement(Fk,null,"Link Figma Frames"),be.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center"}},be.createElement("button",{onClick:()=>l.refresh(),disabled:l.isLoading,style:{padding:"4px 8px",fontSize:"12px",cursor:l.isLoading?"not-allowed":"pointer",background:"transparent",border:"1px solid #ccc",borderRadius:"4px"},title:"Refresh from Figma"},"Refresh"),be.createElement(Ek,{onClick:t},"\xD7"))),be.createElement(Ak,null,l.error&&be.createElement(zk,null,l.error),!l.error&&be.createElement(be.Fragment,null,o.length>0&&be.createElement(qk,null,be.createElement(Yk,null,"Story:"),be.createElement(Kk,{value:m,onChange:f=>S(f.target.value)},o.map(f=>be.createElement("option",{key:f.id,value:f.id},f.name,f.mappingsCount?` (${f.mappingsCount} linked)`:""))),P?.mappingsCount?be.createElement(Xk,{hasMapping:!0},P.mappingsCount," frames linked"):null),be.createElement(Dk,null,be.createElement(sc,null,be.createElement("input",{type:"checkbox",checked:l.showComponentSets,onChange:f=>l.setShowComponentSets(f.target.checked)}),"Component Sets"),be.createElement(sc,null,be.createElement("input",{type:"checkbox",checked:l.showFrames,onChange:f=>l.setShowFrames(f.target.checked)}),"Frames"),be.createElement(sc,null,be.createElement("input",{type:"checkbox",checked:l.showComponents,onChange:f=>l.setShowComponents(f.target.checked)}),"Components"),l.availablePages.length>1&&be.createElement(Ki,{isActive:!!l.figmaPage,value:l.figmaPage,onChange:f=>l.setFigmaPage(f.target.value),style:{marginLeft:"auto"}},be.createElement("option",{value:""},"All pages"),l.availablePages.map(f=>be.createElement("option",{key:f,value:f},f)))),l.filterSuggestion&&be.createElement(Qk,null,be.createElement(Jk,null,"AI suggests:"),be.createElement(Zk,null,Object.entries(l.filterSuggestion.suggestedFilters).map(([f,k])=>`${f}=${k}`).join(", ")),be.createElement(eC,{onClick:l.applySuggestedFilters},"Apply"),be.createElement(tC,{onClick:l.dismissFilterSuggestion},"Dismiss")),l.filterSuggestionLoading&&be.createElement(nC,null,"Matching story args to Figma filters..."),l.availableFilters.length>0&&be.createElement(lc,null,be.createElement(aa,null,"Filters:"),l.availableFilters.map(({property:f,values:k})=>{let T=l.variantFilters.find(h=>h.property===f);return be.createElement(Ki,{key:f,isActive:!!T?.value,value:T?.value||"",onChange:h=>l.handleFilterChange(f,h.target.value)},be.createElement("option",{value:""},f),k.map(h=>be.createElement("option",{key:h,value:h},f,"=",h)))}),l.variantFilters.some(f=>f.value)&&be.createElement(cc,{onClick:l.clearFilters},"Clear All")),l.rateLimitError&&be.createElement("div",{style:{padding:"8px 12px",marginBottom:"8px",background:"rgba(234, 88, 12, 0.12)",border:"1px solid rgba(234, 88, 12, 0.3)",borderRadius:"6px",fontSize:"12px",color:"#ea580c"}},"\u26A0 Figma thumbnail previews unavailable \u2014"," ",l.rateLimitError,". You can still select by name."),be.createElement(Pk,{type:"text",placeholder:"Search frames...",value:l.search,onChange:f=>l.setSearch(f.target.value),autoFocus:!0}),a&&$.length>0&&be.createElement(rC,null,be.createElement(oC,{onClick:N},g.size===$.length?"Deselect All":"Select All Visible"),be.createElement(iC,null,g.size>0?`${g.size} selected of `:"Showing ",$.length," frames")),l.isLoading&&be.createElement(Vm,null,Array.from({length:6}).map((f,k)=>be.createElement(Gk,{key:k},be.createElement("div",{style:{width:"100%",aspectRatio:"4 / 3"}},be.createElement(ac,{width:"100%",height:"100%"})),be.createElement("div",{style:{padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},be.createElement(ac,{width:"80%",height:"16px"}),be.createElement(ac,{width:"50%",height:"12px"}))))),!l.isLoading&&l.filteredFrames.length===0&&be.createElement(Rk,null,l.search?"No frames match your search":"No frames found in this Figma file"),!l.isLoading&&l.filteredFrames.length>0&&be.createElement(Vm,null,l.filteredFrames.map(f=>be.createElement(la,{key:f.id,frame:f,thumbnail:l.thumbnails[f.id],thumbnails:l.thumbnails,variantThumbnails:l.variantThumbnails[f.id],variantChildren:l.variantChildren[f.id],variantFailed:l.variantFailed[f.id],isLoadingVariants:l.loadingVariants.has(f.id),isExpanded:l.expandedSets.has(f.id),isNew:l.recentlyAdded.has(f.name),onToggleExpand:l.toggleExpanded,onSelect:L,multiSelect:a,selectedFrames:g,variantFilters:l.variantFilters,variantPage:v[f.id]||1,onShowMore:O})),l.hasMore&&be.createElement(V$,{onClick:l.loadMore,disabled:l.loadingMore},l.loadingMore?"Loading...":`Show more (${l.totalFrames-l.frames.length} remaining)`)))),a&&be.createElement(sC,null,be.createElement(aC,{disabled:g.size===0,onClick:x},"Link ",g.size," Selected")))):null};ve();ct();var q$=on.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4}),Y$=on.div(({theme:e})=>({width:"90vw",maxWidth:"1100px",height:"75vh",backgroundColor:e.background.content,borderRadius:"12px",display:"flex",flexDirection:"column",boxShadow:"0 20px 60px rgba(0, 0, 0, 0.3)",overflow:"hidden"})),K$=on.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app})),X$=on.div({display:"flex",alignItems:"center",gap:"20px"}),Q$=on.h2(({theme:e})=>({fontSize:"16px",fontWeight:600,color:e.color.defaultText,margin:0,display:"flex",alignItems:"center",gap:"8px"})),J$=on.div({display:"flex",gap:"4px"}),UC=on(wo)(({theme:e,active:t})=>({padding:"8px 16px",borderBottom:"none",borderRadius:"6px",backgroundColor:t?e.background.hoverable:"transparent","&:hover":{backgroundColor:e.background.hoverable}})),Z$=on(Pn)({width:"32px",height:"32px",fontSize:"20px",borderRadius:"6px"}),e4=on.div({flex:1,overflow:"hidden",display:"flex",flexDirection:"column"}),t4=on.div(({theme:e})=>({padding:"12px 20px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,display:"flex",alignItems:"center",justifyContent:"space-between"})),n4=on.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,display:"flex",gap:"16px"})),r4=on.div({display:"flex",flexDirection:"column",flex:1,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(255, 255, 255, 0.95)",padding:"40px"}),o4=on.div({display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",maxWidth:"400px"}),i4=on.div(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText,textAlign:"center"})),s4=on.div(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark,textAlign:"center"})),a4=on.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden"})),l4=on.div(({theme:e})=>({width:"100%",height:"100%",backgroundColor:e.color.secondary,borderRadius:"4px",opacity:.6})),c4=on.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"6px 14px",backgroundColor:e.color.defaultText,color:"white",border:"none",borderRadius:"6px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,cursor:"pointer",transition:"opacity 0.15s","&:hover":{opacity:.85},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),jC=on.span(({theme:e,type:t})=>({display:"flex",alignItems:"center",gap:"6px","& .dot":{width:"8px",height:"8px",borderRadius:"50%",backgroundColor:t==="mapped"?e.color.positive:t==="unmapped"?e.color.mediumlight:"transparent"}})),HC=({isOpen:e,onClose:t,projectId:n})=>{let[r,o]=Ji("map"),[i,s]=Ji([]),[a,u]=Ji(!0),[c,l]=Ji(null),[d,g]=Ji(!1),[p,m]=Ji(null),b=NC({projectId:n}),{refreshMappings:F}=nt(),{featureFlags:E}=ce(),v=Ze.useMemo(()=>b.results?.mappings.map(h=>h.storyId)||[],[b.results]),D=$C(v),O=Oo(async()=>{u(!0);try{let h=await fetch("/index.json");if(!h.ok)throw new Error("Failed to fetch index.json");let I=await h.json(),A=I.entries||I.stories||{},M=Object.entries(A).filter(([,C])=>C.type==="story").map(([C,R])=>({id:C,name:R.name||C.split("--").pop()||C,title:R.title||"",importPath:R.importPath,componentTitle:R.title?.split("/").slice(0,-1).join("/")||R.title,figmaMapping:null}));try{let C=G(),R=localStorage.getItem("uicopilot_session_token"),W=await te(`${C}/api/mappings?projectId=${n}&_t=${Date.now()}`,{headers:{Authorization:`Bearer ${R}`}});if(W.ok){let B=await W.json(),ie=new Map((B.mappings||[]).map(Y=>[Y.storyId,Y]));M.forEach(Y=>{let se=ie.get(Y.id);se&&se.figmaNodeId&&(Y.figmaMapping={figmaNodeId:se.figmaNodeId,figmaFrameName:se.name||se.figmaFrameName||""})})}}catch(C){console.warn("[StoryMappingAssistant] Failed to fetch mappings (stories still loaded):",C)}s(M);let z=M.find(C=>!C.figmaMapping);z?l(z.id):M.length>0&&l(M[0].id)}catch(h){console.error("[StoryMappingAssistant] Error fetching stories:",h)}finally{u(!1)}},[n]);G$(()=>{e&&O()},[e,O]);let $=Oo((h,I,A)=>{s(C=>C.map(R=>R.id===h?{...R,figmaMapping:{figmaNodeId:I,figmaFrameName:A}}:R));let M=i.findIndex(C=>C.id===h),z=i.find((C,R)=>R>M&&!C.figmaMapping);z&&l(z.id)},[i]),L=Oo(h=>{s(I=>I.map(A=>A.id===h?{...A,figmaMapping:null}:A))},[]),N=Oo(h=>{l(h),o("map")},[]),x=Oo(()=>{let h=i.filter(I=>I.figmaMapping).map(I=>I.id);b.collectAndMap(h)},[i,b]),S=Oo(()=>{let h=i.filter(I=>I.figmaMapping).map(I=>I.id);g(!1),b.rerun(h)},[i,b]),w=Oo(async h=>{await b.applyMappings(h),g(!1),b.reset(),O(),F()},[b,O,F]),P=Oo(()=>{g(!1),b.reset()},[b]);Ze.useEffect(()=>{b.results&&g(!0)},[b.results]);let f=h=>{h.target===h.currentTarget&&t()};if(!e)return null;let k=i.filter(h=>h.figmaMapping).length,T=i.length;return Ze.createElement(Ze.Fragment,null,Ze.createElement(q$,{onClick:f},Ze.createElement(Y$,{onClick:h=>h.stopPropagation()},Ze.createElement(K$,null,Ze.createElement(X$,null,Ze.createElement(Q$,null,Ze.createElement("span",null,"\u{1F517}"),"Link Stories to Figma"),Ze.createElement(J$,null,Ze.createElement(UC,{active:r==="map",onClick:()=>o("map")},"Map Stories"),Ze.createElement(UC,{active:r==="view",onClick:()=>o("view")},"View All Mappings"))),Ze.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},E.enableAutoMap&&!d&&!b.isCollecting&&!b.isMapping&&Ze.createElement(c4,{onClick:x,disabled:a||i.length===0},Ze.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2"},Ze.createElement("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),Ze.createElement("path",{d:"M2 17l10 5 10-5"}),Ze.createElement("path",{d:"M2 12l10 5 10-5"})),"Auto-Map All"),Ze.createElement(Z$,{onClick:t},"\xD7"))),Ze.createElement(e4,null,(b.isCollecting||b.isMapping)&&Ze.createElement(r4,null,Ze.createElement(o4,null,Ze.createElement(a4,null,Ze.createElement(l4,null)),Ze.createElement(i4,null,"Auto-mapping stories to Figma"),Ze.createElement(s4,null,b.progress),Ze.createElement(Mr,{onClick:b.cancel,variant:"ghost"},"Cancel"))),d&&b.results&&Ze.createElement(zC,{results:b.results,stories:i,onApply:w,onCancel:P,onRerun:S,isApplying:b.isApplying,isRerunning:b.isCollecting||b.isMapping,source:b.source,resolveThumbnail:h=>b.results?.thumbnailUrls?.[h],resolveStoryScreenshot:h=>D.screenshots[h],isCapturingScreenshots:D.isCapturing,onBrowse:h=>m(h)}),!d&&!b.isCollecting&&!b.isMapping&&(r==="map"?Ze.createElement(yC,{stories:i,loading:a,selectedStoryId:c,onSelectStory:l,onStoryMapped:$,projectId:n}):Ze.createElement(vC,{stories:i,loading:a,onLink:N,onUnlink:L,projectId:n}))),Ze.createElement(t4,null,Ze.createElement(n4,null,Ze.createElement("span",null,"Total: ",T," stories"),Ze.createElement(jC,{type:"mapped"},Ze.createElement("span",{className:"dot"}),k," mapped"),Ze.createElement(jC,{type:"unmapped"},Ze.createElement("span",{className:"dot"}),T-k," unmapped"))))),Ze.createElement(Qi,{isOpen:!!p,onClose:()=>m(null),onSelect:()=>m(null),projectId:n,initialSearch:p||void 0}))};ct();var WC=nr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px 16px",backgroundColor:e.background.content,borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px",transition:"border-color 0.2s, box-shadow 0.2s","&:hover":{borderColor:e.color.mediumlight}})),p4=nr.div(({theme:e})=>({width:"20px",height:"20px",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,"& svg":{width:"16px",height:"16px"}})),d4=nr.div({display:"flex",alignItems:"center",gap:"12px",flex:1}),g4=nr.div({display:"flex",alignItems:"center",gap:"8px"}),f4=nr.div(({theme:e})=>({width:"60px",height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden"})),m4=nr.div(({theme:e,percent:t,state:n})=>({width:`${t}%`,height:"100%",borderRadius:"2px",backgroundColor:n==="complete"?e.color.positive:n==="partial"?e.color.warning:e.color.mediumlight,transition:"width 0.3s ease"})),h4=nr.span(({theme:e,state:t})=>({fontSize:"12px",fontWeight:600,color:t==="complete"?e.color.positive:t==="partial"?e.color.warning:e.color.mediumdark,whiteSpace:"nowrap"})),x4=nr.span(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText})),y4=nr(bu)({padding:"4px 10px",fontSize:"12px",fontWeight:600,marginLeft:"auto"}),b4=nr(bu)(({theme:e})=>({padding:"4px 10px",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.negative||"#dc2626","&:hover":{textDecoration:"none",backgroundColor:"rgba(220, 38, 38, 0.08)"}})),S4=nr.span(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,fontStyle:"italic"})),w4=nr.div(({theme:e})=>({width:"14px",height:"14px",border:`2px solid ${e.appBorderColor}`,borderTopColor:ae,borderRadius:"50%",animation:"figma-mapping-spin 0.8s linear infinite","@keyframes figma-mapping-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),v4=nr.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),VC=()=>{let[e,t]=bc(!1),[n,r]=bc({totalStories:0,mappedStories:0,loading:!0}),{selectedProjectId:o}=Qe(),{sessionToken:i}=Se();u4(()=>{o&&i?s():r({totalStories:0,mappedStories:0,loading:!1})},[o,i]);let s=async()=>{r($=>({...$,loading:!0}));try{let $=await fetch("/index.json");if(!$.ok)throw new Error("Failed to fetch Storybook index");let L=await $.json(),N=L.entries||L.stories||{},x=Object.keys(N).filter(k=>N[k].type==="story").length,S=Object.keys(N).filter(k=>N[k].type==="story"),w=G(),P=await te(`${w}/api/mappings?projectId=${o}`,{headers:{Authorization:`Bearer ${i}`}}),f=0;if(P.ok){let k=await P.json(),T=k.mappings||k||[];if(Array.isArray(T)){let h=new Set(T.map(I=>I.storyId).filter(Boolean));f=S.filter(I=>h.has(I)).length}else{let h=await te(`${w}/api/mappings/stats?projectId=${o}`,{headers:{Authorization:`Bearer ${i}`}});if(h.ok){let I=await h.json();f=Math.min(I.mappedStoriesCount||0,x)}}}r({totalStories:x,mappedStories:f,loading:!1})}catch($){console.error("[FigmaMappingsSection] Error fetching stats:",$),r(L=>({...L,loading:!1}))}},[a,u]=bc(!1),[c,l]=bc(!1),d=async()=>{!o||!i||l(!0)},g=async()=>{l(!1),u(!0);try{let $=G(),L=await te(`${$}/api/mappings?projectId=${o}`,{headers:{Authorization:`Bearer ${i}`}});if(!L.ok)throw new Error("Failed to fetch mappings");let x=(await L.json()).mappings||[];await Promise.all(x.map(S=>te(`${$}/api/mappings?id=${encodeURIComponent(S.id)}`,{method:"DELETE",headers:{Authorization:`Bearer ${i}`}}))),s()}catch($){console.error("[FigmaMappingsSection] Unlink all failed:",$)}finally{u(!1)}},p=()=>t(!0),m=()=>{t(!1),o&&i&&s()};if(!o)return Et.createElement(WC,null,Et.createElement(S4,null,"Select a project to link Figma designs"));let{totalStories:b,loading:F}=n,E=Math.min(n.mappedStories,b),v=E===0?"none":E>=b?"complete":"partial",D=b>0?Math.min(100,Math.round(E/b*100)):0,O=v==="none"?"Link designs":"Manage";return Et.createElement(Et.Fragment,null,Et.createElement(WC,null,Et.createElement(p4,null,Et.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Et.createElement("path",{d:"M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z",fill:"#1ABCFE"}),Et.createElement("path",{d:"M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z",fill:"#0ACF83"}),Et.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),Et.createElement("path",{d:"M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z",fill:"#F24E1E"}),Et.createElement("path",{d:"M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z",fill:"#A259FF"}))),Et.createElement(d4,null,Et.createElement(x4,null,"Figma Mappings"),Et.createElement(g4,null,F?Et.createElement(Et.Fragment,null,Et.createElement(w4,null),Et.createElement(v4,null,"Loading...")):Et.createElement(Et.Fragment,null,Et.createElement(f4,null,Et.createElement(m4,{percent:D,state:v})),Et.createElement(h4,{state:v},`${E}/${b}`)))),E>0&&Et.createElement(b4,{onClick:d,disabled:F||a},a?"Unlinking...":"Unlink All"),Et.createElement(y4,{onClick:p,disabled:F},O)),e&&Et.createElement(HC,{isOpen:e,onClose:m,projectId:o}),Et.createElement(Hr,{isOpen:c,title:"Unlink All Mappings",message:`Unlink all ${n.mappedStories} Figma mappings?`,confirmLabel:"Unlink All",variant:"danger",onConfirm:g,onCancel:()=>l(!1)}))};import le,{useState as Zi,useEffect as Sc,useCallback as GC,useRef as gh}from"react";import{styled as rr}from"storybook/theming";ve();Ue();ct();var fh=rr.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.background.content,borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px",fontSize:"12px"})),mh=rr.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),hh=rr.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),zre=rr(Or)({padding:"5px 12px",fontSize:"12px"}),xh=rr.div(({theme:e})=>({display:"flex",gap:"16px",color:e.color.mediumdark,marginBottom:"4px"})),wc=rr.span(({theme:e})=>({whiteSpace:"nowrap","& strong":{color:e.color.defaultText,fontWeight:600}})),k4=rr.span(({theme:e,status:t})=>({display:"inline-block",padding:"1px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:t==="cached"?`${e.color.positive}1a`:t==="expired"?`${e.color.warning}1a`:e.background.hoverable,color:t==="cached"?e.color.positive:t==="expired"?e.color.warning:e.color.mediumdark})),C4=rr.div(({theme:e})=>({marginTop:"6px",padding:"6px 8px",backgroundColor:e.background.hoverable,borderRadius:"4px",color:e.color.mediumdark,lineHeight:"1.4"})),yh=rr.span(({theme:e,type:t})=>({fontWeight:500,color:t==="added"?e.color.positive:t==="removed"?e.color.negative:e.color.warning})),T4=rr.span(({theme:e})=>({color:e.color.mediumdark,fontSize:"12px"})),vc=rr.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden",marginTop:"10px"})),kc=rr.div(({theme:e,percent:t})=>({width:`${t}%`,height:"100%",backgroundColor:e.color.secondary,borderRadius:"3px",transition:"width 0.5s ease"})),_o=rr.div(({theme:e})=>({display:"flex",justifyContent:"space-between",marginTop:"6px",fontSize:"12px",fontWeight:500,color:e.color.defaultText})),qC=new Set,YC=()=>{let{userRole:e,featureFlags:t}=ce(),[n,r]=Zi(null),[o,i]=Zi(!0),[s,a]=Zi(!1),[u,c]=Zi(!1),[l,d]=Zi(!1),[g,p]=Zi(!1),{selectedProjectId:m,projects:b}=Qe(),{sessionToken:F}=Se(),E=gh(null),v=gh(null),D=gh(null),O=GC(()=>{E.current&&(clearInterval(E.current),E.current=null),v.current&&(clearInterval(v.current),v.current=null),D.current&&(clearTimeout(D.current),D.current=null)},[]);Sc(()=>O,[O]);let $=GC(async()=>{if(!(!m||!F))try{let T=G(),h=await te(`${T}/api/figma/cache-status?projectId=${m}`,{headers:{Authorization:`Bearer ${F}`}});if(h.ok){let I=await h.json();r(I)}}catch(T){console.error("[FigmaCacheSection] Error:",T)}finally{i(!1)}},[m,F]);Sc(()=>{$()},[$]),Sc(()=>{if(o||s||!n||n.structureStatus!=="none"||!m||qC.has(m))return;let T=b.find(I=>I.id===m);(T?.figmaFileUrl||T?.figmaFileId)&&(qC.add(m),L())},[o,s,n?.structureStatus,m,b]),Sc(()=>{let T=n?.thumbnailProgress?.status,h=n?.enrichmentProgress?.status,I=n?.thumbnailProgress?.cached??0,A=n?.thumbnailProgress?.total??0,M=T==="in-progress"||T==="pending"||A>0&&I<A,z=h==="in-progress"||h==="pending",C=!n?.thumbnailProgress&&n?.structureStatus==="cached";if(!(M||z||C)||!n||n.structureStatus==="none")return;let W=setInterval(()=>{$()},3e3);return()=>{clearInterval(W)}},[n?.thumbnailProgress?.status,n?.thumbnailProgress?.cached,n?.thumbnailProgress?.total,n?.enrichmentProgress?.status,n?.structureStatus,$]);let L=async()=>{if(!(!m||!F)){a(!0);try{let T=G();await te(`${T}/api/figma/frames?projectId=${m}&type=COMPONENT_SET&page=1&limit=1&refresh=true`,{headers:{Authorization:`Bearer ${F}`}},6e4),await new Promise(h=>setTimeout(h,1e3)),await $(),setTimeout(async()=>{await $()},3e3)}catch(T){console.error("[FigmaCacheSection] Reload error:",T)}finally{a(!1)}}},N=async()=>{if(!(!m||!F)){c(!0);try{let T=G(),h=await te(`${T}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({projectId:m})});console.log("[FigmaCacheSection] Cache invalidate response:",h.status),await te(`${T}/api/figma/frames/invalidate?projectId=${m}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`}}).catch(()=>{}),r({structureStatus:"none",structureCachedAt:null,componentSetCount:0,componentCount:0,pageCount:0,pages:[],cacheDiff:null,thumbnailProgress:null,enrichmentProgress:null})}catch(T){console.error("[FigmaCacheSection] Clear cache error:",T)}finally{c(!1)}}},x=async()=>{if(!(!m||!F)){O(),d(!0);try{let T=G();await te(`${T}/api/figma/enrich`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({projectId:m})}),E.current=setInterval(async()=>{await $()},3e3),v.current=setInterval(()=>{(n?.enrichmentProgress?.status==="complete"||n?.enrichmentProgress?.status==="error")&&(O(),d(!1),$())},3e3),D.current=setTimeout(()=>{O(),d(!1)},6e5)}catch(T){console.error("[FigmaCacheSection] Enrich error:",T),O(),d(!1)}}},S=async()=>{if(!(!m||!F)){p(!0);try{let T=G();await te(`${T}/api/figma/cancel`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({projectId:m})}),await $()}catch(T){console.error("[FigmaCacheSection] Cancel error:",T)}finally{p(!1),d(!1),a(!1)}}},w=n?.thumbnailProgress?.status==="in-progress"||n?.enrichmentProgress?.status==="in-progress";if(!m)return null;if(o)return le.createElement(fh,null,le.createElement(mh,null,le.createElement(hh,null,"Figma Cache")),le.createElement(xh,null,le.createElement(wc,null,"Loading cache status\u2026")),le.createElement(vc,null,le.createElement(kc,{percent:100,style:{opacity:.3}})));if(!n||n.structureStatus==="none")return le.createElement(fh,null,le.createElement(mh,null,le.createElement(hh,null,"Figma Cache"),le.createElement(Mr,{loading:s,onClick:L,loadingText:"Loading..."},"\u21BB Load")),s?le.createElement(le.Fragment,null,le.createElement(vc,null,le.createElement(kc,{percent:30,style:{animation:"none",width:"100%",opacity:.3}})),le.createElement(_o,null,le.createElement("span",null,"Downloading structure from Figma... this may take 30-60 seconds"))):le.createElement(xh,null,le.createElement(wc,null,"No cache \u2014 click Load to fetch from Figma")));let P=T=>{let h=Date.now()-new Date(T).getTime(),I=Math.floor(h/6e4);if(I<1)return"just now";if(I<60)return`${I}m ago`;let A=Math.floor(I/60);return A<24?`${A}h ago`:`${Math.floor(A/24)}d ago`},f=n.cacheDiff,k=f&&(f.added.length>0||f.removed.length>0||f.renamed.length>0);return le.createElement(fh,null,le.createElement(mh,null,le.createElement(hh,null,"Figma Cache"," ",le.createElement(k4,{status:n.structureStatus},n.structureStatus)),le.createElement("div",{style:{display:"flex",gap:"6px"}},e==="admin"&&le.createElement(Mr,{loading:l,onClick:x,loadingText:"Enriching..."},"Enrich"),le.createElement(Mr,{loading:u,onClick:N,variant:"ghost",loadingText:"Clearing..."},"Clear"),le.createElement(Mr,{loading:s,onClick:L,loadingText:"Reloading..."},"\u21BB Reload"),w&&le.createElement(Mr,{loading:g,onClick:S,variant:"ghost",loadingText:"Cancelling..."},"\u2715 Cancel"))),s&&le.createElement(_o,null,le.createElement("span",null,"Downloading structure from Figma...")),le.createElement(xh,null,le.createElement(wc,null,le.createElement("strong",null,n.componentSetCount)," component sets"),le.createElement(wc,null,le.createElement("strong",null,n.pageCount)," pages"),n.structureCachedAt&&le.createElement(T4,null,"Updated ",P(n.structureCachedAt))),k&&le.createElement(C4,null,"Since last reload:"," ",f.added.length>0&&le.createElement(yh,{type:"added"},"+",f.added.length," added"),f.added.length>0&&f.removed.length>0&&" \xB7 ",f.removed.length>0&&le.createElement(yh,{type:"removed"},"\u2212",f.removed.length," removed"),(f.added.length>0||f.removed.length>0)&&f.renamed.length>0&&" \xB7 ",f.renamed.length>0&&le.createElement(yh,{type:"renamed"},f.renamed.length," renamed")),n.thumbnailProgress&&n.thumbnailProgress.status==="in-progress"&&le.createElement(le.Fragment,null,le.createElement(vc,null,le.createElement(kc,{percent:n.thumbnailProgress.total>0?Math.round(n.thumbnailProgress.cached/n.thumbnailProgress.total*100):0})),le.createElement(_o,null,le.createElement("span",null,"Variant thumbnails: caching to CDN\u2026",n.thumbnailProgress.currentName&&le.createElement(le.Fragment,null," ",n.thumbnailProgress.currentName)),le.createElement("span",null,n.thumbnailProgress.cached," of"," ",n.thumbnailProgress.total," variants"))),n.thumbnailProgress&&n.thumbnailProgress.status==="complete"&&le.createElement(_o,null,le.createElement("span",null,"Variant thumbnails: ",n.thumbnailProgress.cached," of"," ",n.thumbnailProgress.total," cached to CDN \u2713")),(!n.thumbnailProgress||n.thumbnailProgress.status==="pending"&&n.thumbnailProgress.cached===0)&&le.createElement(_o,null,le.createElement("span",null,"Variant thumbnails: not yet cached",n.thumbnailProgress?.total?` (${n.thumbnailProgress.total} components)`:""," ","\u2014 click Reload to generate")),n.thumbnailProgress&&n.thumbnailProgress.status==="pending"&&n.thumbnailProgress.cached>0&&le.createElement(_o,null,le.createElement("span",null,"Variant thumbnails: ",n.thumbnailProgress.cached," of"," ",n.thumbnailProgress.total," cached to CDN (partial)")),n.enrichmentProgress&&n.enrichmentProgress.status==="in-progress"&&le.createElement(le.Fragment,null,le.createElement(vc,null,le.createElement(kc,{percent:n.enrichmentProgress.total>0?Math.round(n.enrichmentProgress.enriched/n.enrichmentProgress.total*100):0})),le.createElement(_o,null,le.createElement("span",null,"AI descriptions: generating\u2026",n.enrichmentProgress.currentName&&le.createElement(le.Fragment,null," ",n.enrichmentProgress.currentName)),le.createElement("span",null,n.enrichmentProgress.enriched," of"," ",n.enrichmentProgress.total," component sets"))),n.enrichmentProgress&&n.enrichmentProgress.status==="complete"&&le.createElement(le.Fragment,null,le.createElement(_o,null,le.createElement("span",null,"AI descriptions: ",n.enrichmentProgress.enriched," of"," ",n.enrichmentProgress.total," component sets \u2713"))),n.enrichmentProgress&&n.enrichmentProgress.status==="in-progress"&&t.showCosts&&n.enrichmentProgress.costUsd!=null&&n.enrichmentProgress.costUsd>0&&le.createElement("div",{style:{marginTop:"6px"}},le.createElement(mc,{inputTokens:n.enrichmentProgress.inputTokens||0,outputTokens:n.enrichmentProgress.outputTokens||0,costUsd:n.enrichmentProgress.costUsd,compact:!0})))};import vt,{useState as es}from"react";import{styled as Vr}from"storybook/theming";ve();Ue();ct();var bh=Vr.div({padding:"12px 16px"}),I4=Vr.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),KC=Vr.label(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),XC=Vr.button(({theme:e})=>({background:"none",border:"none",fontSize:"12px",color:ae,cursor:"pointer",padding:0,"&:hover":{textDecoration:"underline"}})),F4=Vr.div({display:"flex",gap:"8px",alignItems:"center"}),E4=Vr.input(({theme:e})=>({flex:1,padding:"8px 12px",fontSize:"13px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.input.background,color:e.input.color,outline:"none",fontFamily:"monospace","&:focus":{borderColor:ae,boxShadow:`0 0 0 1px ${ae}`},"&::placeholder":{color:e.color.mediumlight,fontFamily:"inherit"}})),QC=Vr.span(({variant:e})=>({fontSize:"12px",color:e==="success"?"#16a34a":e==="error"?"#dc2626":"#6b7280",marginTop:"6px",display:"block",lineHeight:1.4})),A4=Vr.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"8px",lineHeight:1.5,"& a":{color:ae,textDecoration:"none","&:hover":{textDecoration:"underline"}},"& ol":{margin:"4px 0 0 16px",padding:0},"& li":{marginBottom:"2px"}})),P4=Vr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"8px 12px",borderRadius:"6px",backgroundColor:"#16a34a10",border:"1px solid #16a34a30",fontSize:"12px",color:e.color.defaultText})),L4=Vr.button(({theme:e})=>({background:"none",border:"none",fontSize:"11px",color:"#dc2626",cursor:"pointer",marginLeft:"auto","&:hover":{textDecoration:"underline"}})),JC=({onConnected:e})=>{let{sessionToken:t}=Se(),[n,r]=es(!1),[o,i]=es(""),[s,a]=es(!1),[u,c]=es(null),[l,d]=es(null),[g,p]=es(!1),m=async()=>{if(!(!o.trim()||!t)){a(!0),c(null);try{let b=G(),F=await te(`${b}/api/figma/pat`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({token:o.trim()})}),E=await F.json();if(!F.ok){c({type:"error",message:E.error||"Failed to save token"});return}d(E.figmaUser?.handle||E.figmaUser?.email||"Connected"),c({type:"success",message:`Connected as ${E.figmaUser?.handle||"Figma user"}`}),i(""),e?.()}catch{c({type:"error",message:"Failed to connect. Check your token and try again."})}finally{a(!1)}}};return l?vt.createElement(bh,null,vt.createElement(KC,null,"Figma Personal Access Token"),vt.createElement(P4,null,vt.createElement("span",null,"\u2713 Connected as ",vt.createElement("strong",null,l)),vt.createElement(L4,{onClick:()=>{d(null),c(null)}},"Change token"))):n?vt.createElement(bh,null,vt.createElement(I4,null,vt.createElement(KC,null,"Figma Personal Access Token"),vt.createElement(XC,{onClick:()=>p(!g)},g?"Hide instructions":"How to generate")),g&&vt.createElement(A4,null,vt.createElement("ol",null,vt.createElement("li",null,"Open ",vt.createElement("a",{href:"https://www.figma.com/settings",target:"_blank",rel:"noopener noreferrer"},"Figma Settings")),vt.createElement("li",null,"Click the ",vt.createElement("strong",null,"Security")," tab"),vt.createElement("li",null,"Scroll to ",vt.createElement("strong",null,"Personal access tokens")),vt.createElement("li",null,"Click ",vt.createElement("strong",null,"Generate new token")),vt.createElement("li",null,"Enable ",vt.createElement("strong",null,"File content: Read only")," under Scopes"),vt.createElement("li",null,"Copy the token and paste it below"))),vt.createElement(F4,null,vt.createElement(E4,{type:"password",value:o,onChange:b=>i(b.target.value),placeholder:"figd_...",onKeyDown:b=>{b.key==="Enter"&&o.trim()&&m()}}),vt.createElement(an,{onClick:m,disabled:!o.trim()||s},s?"Verifying...":"Save & Verify")),u&&vt.createElement(QC,{variant:u.type},u.message),vt.createElement(QC,{variant:"info"},"Read-only access. Your token is stored securely and never shared.")):vt.createElement(bh,null,vt.createElement(XC,{onClick:()=>r(!0)},"Or use a Personal Access Token \u2192"))};ve();Ue();ct();var B4=kt.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},kt.createElement("path",{d:"M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z",fill:"#1ABCFE"}),kt.createElement("path",{d:"M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z",fill:"#0ACF83"}),kt.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),kt.createElement("path",{d:"M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z",fill:"#F24E1E"}),kt.createElement("path",{d:"M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z",fill:"#A259FF"})),Sh=Br.div(({theme:e})=>({border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",marginBottom:"16px",backgroundColor:e.background.content})),D4=Br.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"10px 16px",backgroundColor:e.background.hoverable,borderBottom:`1px solid ${e.appBorderColor}`})),R4=Br.div({width:"16px",height:"16px",display:"flex",alignItems:"center","& svg":{width:"14px",height:"14px"}}),z4=Br.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,flex:1})),wh=Br.div({"& > *":{border:"none",borderRadius:0,marginBottom:0,borderBottom:"1px solid rgba(0,0,0,0.06)","&:last-child":{borderBottom:"none"}}}),N4=Br.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.base==="dark"?"rgba(0, 204, 102, 0.2)":"rgba(0, 204, 102, 0.1)",border:`1px solid ${e.color.positive}`,borderRadius:"8px",margin:"12px 16px",display:"flex",alignItems:"center",justifyContent:"space-between"})),O4=Br.div({display:"flex",alignItems:"center",gap:"8px"}),_4=Br(An)(({theme:e})=>({backgroundColor:`${e.base==="dark"?"rgba(197, 48, 48, 0.15)":"rgba(254, 178, 178, 0.3)"} !important`,color:`${e.color.negative} !important`,border:`1px solid ${e.color.negative} !important`,padding:"6px 12px !important",fontSize:"12px !important"})),$4=Br.div({padding:"20px 16px",display:"flex",flexDirection:"column",gap:"12px"}),noe=Br.button({display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",padding:"8px 16px",backgroundColor:"#A259FF",color:"#fff",border:"none",borderRadius:"6px",fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{backgroundColor:"#8a3de8"}}),U4=Br.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",fontSize:"12px",color:e.color.mediumdark,"&::before, &::after":{content:'""',flex:1,height:"1px",backgroundColor:e.appBorderColor}})),e1=({hideHeader:e=!1})=>{let{sessionToken:t}=Se(),[n,r]=Cc(!1),[o,i]=Cc(()=>{try{let p=sessionStorage.getItem("uicopilot_figma_connection");if(p){let{connected:m,ts:b}=JSON.parse(p);if(Date.now()-b<300*1e3)return m}}catch{}return null}),[s,a]=Cc(!1),[u,c]=Cc(!1);M4(()=>{if(!t)return;let p=G();te(`${p}/api/figma/connection-status`,{headers:{Authorization:`Bearer ${t}`}}).then(m=>m.json()).then(m=>{let b=!!m.connected;a(!!m.expired),i(b);try{sessionStorage.setItem("uicopilot_figma_connection",JSON.stringify({connected:b,ts:Date.now()}))}catch{}}).catch(()=>i(!1))},[t]);let l=ZC(()=>{let p=G(),m=`${p}/api/auth/figma/login?addon=true`;window.open(m,"figma-oauth","width=600,height=700,left=200,top=100");let b=setInterval(async()=>{try{(await(await te(`${p}/api/figma/connection-status`,{headers:t?{Authorization:`Bearer ${t}`}:{}})).json()).connected&&(clearInterval(b),i(!0))}catch{}},2e3);setTimeout(()=>clearInterval(b),300*1e3)},[t]),d=ZC(async()=>{try{r(!0);let p=G(),m=await te(`${p}/api/figma/disconnect`,{method:"POST",headers:{Authorization:`Bearer ${t}`}});if(m.ok||m.status===404){i(!1);try{sessionStorage.removeItem("uicopilot_figma_connection")}catch{}}}catch{}finally{r(!1)}},[t]),g=e?null:kt.createElement(D4,null,kt.createElement(R4,null,B4),kt.createElement(z4,null,"Figma Integration"));return o===null?kt.createElement(Sh,null,g,kt.createElement(wh,null,kt.createElement("div",{style:{padding:"16px",fontSize:"13px",color:"#9ca3af"}},"Checking Figma connection..."))):o===!1?kt.createElement(Sh,null,g,kt.createElement(wh,null,kt.createElement($4,null,s&&kt.createElement("div",{style:{padding:"10px 12px",backgroundColor:"rgba(245, 158, 11, 0.1)",border:"1px solid rgba(245, 158, 11, 0.4)",borderRadius:"6px",fontSize:"12px",color:"#92400e"}},"\u26A0\uFE0F Your Figma access has expired. Please reconnect."),kt.createElement(an,{onClick:l,style:{width:"100%"}},s?"Reconnect Figma":"Connect with Figma"),kt.createElement(U4,null,"or"),kt.createElement(JC,{onConnected:()=>i(!0)})))):kt.createElement(Sh,null,g,kt.createElement(N4,null,kt.createElement(O4,null,kt.createElement("span",{style:{fontSize:"18px"}},"\u2713"),kt.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"#00cc66"}},"Connected to Figma")),kt.createElement(_4,{onClick:()=>c(!0),disabled:n},n?"Disconnecting...":"Disconnect")),kt.createElement(Hr,{isOpen:u,title:"Disconnect Figma",message:"Your mappings, cache, and review history will be preserved. You will need to re-authenticate to make new Figma API calls.",confirmLabel:"Disconnect",variant:"danger",onConfirm:()=>{c(!1),d()},onCancel:()=>c(!1)}),kt.createElement(wh,null,kt.createElement(kk,null),kt.createElement(VC,null),kt.createElement(YC,null)))};ve();Un();var W4=mr.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.4)",zIndex:1e3,display:"flex",justifyContent:"center",alignItems:"flex-start",paddingTop:"32px"}),V4=mr.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"14px",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.22)",width:"520px",maxWidth:"94%",maxHeight:"calc(100vh - 64px)",overflow:"auto",position:"relative"})),G4=mr.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px 12px",position:"sticky",top:0,backgroundColor:e.background.content,borderRadius:"14px 14px 0 0",zIndex:1})),q4=mr.h2(({theme:e})=>({margin:0,fontSize:"16px",fontWeight:600,color:e.color.defaultText})),Y4=mr(Pn)({fontSize:"18px",padding:"2px 8px",lineHeight:1,background:"transparent",border:"none"}),K4=mr.div({display:"flex",flexDirection:"column",gap:"16px",padding:"0 20px 20px"}),t1=mr.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"14px",padding:"16px",borderRadius:"12px",border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),n1=mr.div({display:"flex",alignItems:"center",gap:"10px"}),r1=mr.h3(({theme:e})=>({margin:0,fontSize:"14px",fontWeight:600,color:e.color.defaultText,flex:1})),X4=mr.div({width:"28px",height:"28px",borderRadius:"7px",backgroundColor:ae,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:700,letterSpacing:"0.3px",flexShrink:0}),Q4=mr.div({width:"22px",height:"22px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center","& svg":{width:"22px",height:"22px"}}),o1=mr.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"12px",fontSize:"12px","& > div, & > section":{padding:0},'[class*="AuthPanelContainer"], [class*="SectionContainer"]':{padding:0},"h3, h4":{fontSize:"12px",margin:"0 0 6px 0"},label:{fontSize:"12px"},"input, select":{fontSize:"12px",padding:"6px 10px",height:"auto"},button:{fontSize:"11px"},p:{fontSize:"11px",margin:"2px 0"}})),i1=({onClose:e})=>{let{isConnected:t}=Se(),{selectedProjectId:n}=Qe(),r=H4(t);return j4(()=>{!r.current&&t&&n&&e(),r.current=t},[t,n,e]),Rt.createElement(W4,{onClick:e},Rt.createElement(V4,{onClick:o=>o.stopPropagation()},Rt.createElement(G4,null,Rt.createElement(q4,null,"Settings"),Rt.createElement(Y4,{onClick:e,title:"Close settings"},"\xD7")),Rt.createElement(K4,null,Rt.createElement(t1,null,Rt.createElement(n1,null,Rt.createElement(X4,null,"UI"),Rt.createElement(r1,null,Pt.NAME)),Rt.createElement(o1,null,Rt.createElement(xk,{onConnect:e}),t&&Rt.createElement(wk,null))),t&&n&&Rt.createElement(t1,null,Rt.createElement(n1,null,Rt.createElement(Q4,null,Rt.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Rt.createElement("path",{d:"M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z",fill:"#1ABCFE"}),Rt.createElement("path",{d:"M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z",fill:"#0ACF83"}),Rt.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),Rt.createElement("path",{d:"M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z",fill:"#F24E1E"}),Rt.createElement("path",{d:"M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z",fill:"#A259FF"}))),Rt.createElement(r1,null,"Figma Integration")),Rt.createElement(o1,null,Rt.createElement(e1,{hideHeader:!0}))))))};import pt,{useEffect as h1,useMemo as C5,useState as T5,useRef as I5}from"react";import{styled as Bn,keyframes as F5}from"storybook/theming";ve();Un();ve();import Zt,{useState as J4}from"react";import{styled as qn}from"storybook/theming";var uo=[{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",provider:"anthropic",description:"Latest Claude Sonnet \u2014 best balance of speed and quality"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Current default \u2014 proven for design comparison"},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4",provider:"anthropic",description:"Previous generation Sonnet"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet",provider:"anthropic",description:"Best balance of speed and quality"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",provider:"anthropic",description:"Fastest, most affordable"},{id:"claude-3-opus-20240229",name:"Claude 3 Opus",provider:"anthropic",description:"Most capable Claude 3 model"},{id:"gpt-5.2",name:"GPT-5.2 Thinking",provider:"openai",description:"47% cheaper, reasoning"},{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Instant",provider:"openai",description:"86% cheaper (default)"},{id:"gpt-4o",name:"GPT-4o",provider:"openai",description:"GPT-4 multimodal flagship"},{id:"gpt-4o-mini",name:"GPT-4o Mini",provider:"openai",description:"GPT-4 affordable model"},{id:"o1-preview",name:"o1 Preview",provider:"openai",description:"Reasoning model (slower, advanced)"},{id:"o1-mini",name:"o1 Mini",provider:"openai",description:"Faster reasoning model"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",provider:"google",description:"Fast & cheap, great vision"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",provider:"google",description:"Best Gemini quality"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",provider:"google",description:"Previous gen, very fast"}];var Z4=qn.div({display:"flex",alignItems:"center",gap:"8px",width:"100%"}),e5=qn.div({display:"inline-flex",flexWrap:"nowrap",gap:"4px",alignItems:"center"}),t5=qn.div(({theme:e,disabled:t,provider:n})=>{let r={anthropic:{background:"#D4A574",text:"#ffffff"},openai:{background:e.color.positive||"#10b981",text:"#ffffff"},google:{background:"#4285F4",text:"#ffffff"}},o=n?r[n]:r.anthropic;return{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 8px",backgroundColor:o.background,color:o.text,fontSize:"11px",fontWeight:500,borderRadius:"12px",opacity:t?.6:1,cursor:t?"not-allowed":"default",transition:"opacity 0.15s"}}),n5=qn.button(({theme:e,disabled:t})=>({background:"none",border:"none",color:e.color.inverseText,fontSize:"12px",cursor:t?"not-allowed":"pointer",padding:"0 2px",lineHeight:1,opacity:t?.5:.8,transition:"opacity 0.15s","&:hover":{opacity:t?.5:1}})),r5=qn.div({position:"relative",display:"inline-block"}),o5=qn.button(({disabled:e,isOpen:t,theme:n})=>({padding:`${n.layoutMargin*.8}px 32px ${n.layoutMargin*.8}px ${n.layoutMargin}px`,fontSize:n.typography.size.s2,fontFamily:n.typography.fonts.base,fontWeight:500,color:n.color.defaultText,backgroundColor:n.input.background,border:`1px solid ${t?n.color.secondary:n.appBorderColor}`,borderRadius:n.appBorderRadius,cursor:e?"not-allowed":"pointer",opacity:e?.6:1,whiteSpace:"nowrap",display:"flex",gap:`${n.layoutMargin*.8}px`,alignItems:"center",justifyContent:"space-between",minWidth:"200px",transition:"border-color 0.15s, box-shadow 0.15s",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 10px center",backgroundSize:"12px","&:hover":{borderColor:e?n.appBorderColor:n.color.mediumdark}})),i5=qn.div(({theme:e})=>({position:"absolute",top:"100%",left:0,right:0,marginTop:"4px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,boxShadow:e.base==="dark"?"0 4px 12px rgba(0, 0, 0, 0.3)":"0 4px 12px rgba(0, 0, 0, 0.1)",zIndex:1e3,maxHeight:"280px",overflowY:"auto"})),vh=qn.div(({theme:e})=>({borderBottom:`1px solid ${e.appBorderColor}`,"&:last-child":{borderBottom:"none"}})),kh=qn.div(({theme:e})=>({padding:"8px 12px",fontSize:"10px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:e.background.app})),s5=qn.div(({theme:e,disabled:t})=>({padding:"8px 12px",fontSize:"12px",cursor:t?"not-allowed":"pointer",opacity:t?.5:1,display:"flex",alignItems:"center",gap:"8px",transition:"background-color 0.15s",color:e.color.defaultText,"&:hover":{backgroundColor:t?"transparent":e.background.hoverable}})),a5=qn.input({cursor:"pointer",flexShrink:0,"&:disabled":{cursor:"not-allowed"}}),l5=qn.div({flex:1,minWidth:0}),c5=qn.div({fontSize:"12px",fontWeight:500,marginBottom:"2px"}),u5=qn.div(({theme:e})=>({fontSize:"10px",color:e.textMutedColor,lineHeight:"1.2"})),p5=5,s1=()=>{let{selectedModels:e,toggleModel:t,isReviewing:n}=ce(),[r,o]=J4(!1),i=uo.filter(p=>p.provider==="anthropic"&&!e.includes(p.id)),s=uo.filter(p=>p.provider==="openai"&&!e.includes(p.id)),a=uo.filter(p=>p.provider==="google"&&!e.includes(p.id)),u=uo.filter(p=>e.includes(p.id)),c=e.length<p5,l=(p,m)=>{m.stopPropagation(),e.length>1&&!n&&t(p)},d=p=>{let m=e.includes(p);m&&e.length===1||!m&&!c||n||(t(p),o(!1))},g=p=>{let m=e.includes(p.id),b=m&&e.length===1,F=n||b||!m&&!c;return Zt.createElement(s5,{key:p.id,disabled:F,onClick:()=>d(p.id)},Zt.createElement(a5,{type:"checkbox",checked:m,disabled:F,onChange:()=>{},onClick:E=>E.stopPropagation()}),Zt.createElement(l5,null,Zt.createElement(c5,null,p.name),p.description&&Zt.createElement(u5,null,p.description)))};return Zt.createElement(Z4,null,Zt.createElement(r5,null,Zt.createElement(o5,{disabled:n,isOpen:r,onClick:()=>o(!r)},Zt.createElement("span",null,"Select model"),Zt.createElement("span",null,r?"\u25B2":"\u25BC")),r&&Zt.createElement(i5,null,Zt.createElement(vh,null,Zt.createElement(kh,null,"Anthropic"),i.map(g)),Zt.createElement(vh,null,Zt.createElement(kh,null,"OpenAI"),s.map(g)),Zt.createElement(vh,null,Zt.createElement(kh,null,"Google"),a.map(g)))),Zt.createElement(e5,null,u.map(p=>Zt.createElement(t5,{key:p.id,disabled:n,provider:p.provider},p.name,e.length>1&&Zt.createElement(n5,{disabled:n,onClick:m=>l(p.id,m),title:"Remove model"},"\xD7")))))};import De,{useState as d5,useEffect as g5}from"react";import{styled as sn,keyframes as ts}from"storybook/theming";ve();var f5=ts`
44
+ `,x$=zC.span(({theme:e})=>({display:"inline-block",width:"12px",height:"12px",border:`2px solid ${e.appBorderColor}`,borderTopColor:"currentColor",borderRadius:"50%",animation:`${h$} 0.6s linear infinite`,marginRight:"6px",verticalAlign:"middle"})),y$=zC.button(({theme:e,variant:t="default",disabled:n})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"5px 12px",fontSize:"12px",fontWeight:600,border:`1px solid ${e.color.medium}`,borderRadius:"5px",cursor:n?"not-allowed":"pointer",opacity:n?.6:1,transition:"all 0.2s",whiteSpace:"nowrap",...t==="default"&&{backgroundColor:e.background.content,color:e.color.defaultText,"&:hover":n?{}:{borderColor:e.color.secondary,color:e.color.secondary,backgroundColor:"rgba(30, 167, 253, 0.05)"}},...t==="ghost"&&{backgroundColor:"transparent",border:"none",color:e.color.mediumdark,padding:"5px 8px","&:hover":n?{}:{color:e.color.defaultText,backgroundColor:e.background.hoverable}}})),Mr=({loading:e=!1,disabled:t=!1,onClick:n,variant:r="default",children:o,loadingText:i})=>RC.createElement(y$,{variant:r,disabled:t||e,onClick:n},e&&RC.createElement(x$,null),e&&i?i:o);Ue();import un from"react";import{styled as da}from"storybook/theming";var NC=da.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 16px",backgroundColor:e.background.hoverable,borderRadius:"6px",fontFamily:"Inter, sans-serif",fontSize:"11px",color:e.color.mediumdark,gap:"16px"})),b$=da.div({display:"flex",alignItems:"center",gap:"12px"}),Sc=da.span({whiteSpace:"nowrap"}),OC=da.div({display:"flex",alignItems:"center",gap:"8px"}),wc=da.span(({theme:e})=>({fontWeight:600,color:e.color.defaultText})),vc=({inputTokens:e,outputTokens:t,costUsd:n,compact:r=!1})=>{let o=e+t,i=n*Hw;return r?un.createElement(NC,null,un.createElement(Sc,null,o.toLocaleString()," tokens"),un.createElement(OC,null,un.createElement(wc,null,"$",n.toFixed(4)),un.createElement("span",null,"\xB7"),un.createElement(wc,null,"\u20AA",i.toFixed(2)))):un.createElement(NC,null,un.createElement(b$,null,un.createElement(Sc,null,e.toLocaleString()," input"),un.createElement("span",null,"+"),un.createElement(Sc,null,t.toLocaleString()," output"),un.createElement("span",null,"="),un.createElement(Sc,null,un.createElement("strong",null,o.toLocaleString())," tokens")),un.createElement(OC,null,un.createElement(wc,null,"$",n.toFixed(4)),un.createElement("span",null,"\xB7"),un.createElement(wc,null,"\u20AA",i.toFixed(2))))};import Wn from"react";import{styled as zo}from"storybook/theming";function hh(e){if(typeof e!="string")return e;try{let t=JSON.parse(e);if(t.summary)return t}catch{}return{summary:e}}var S$=zo.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:`${e.layoutMargin*.5}px`})),_C=zo.div(({theme:e,color:t})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:t||e.color.defaultText,lineHeight:"1.4"})),w$=zo.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.25}px`,flexWrap:"wrap",fontSize:e.typography.size.s1,color:e.color.mediumdark})),v$=zo.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:`${e.layoutMargin*.2}px`,padding:`1px ${e.layoutMargin*.5}px`,borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.mono})),k$=zo.span(({theme:e})=>({color:e.color.mediumlight,fontSize:e.typography.size.s1})),C$=zo.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,fontStyle:"italic"})),T$=zo.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,display:"flex",gap:`${e.layoutMargin*.25}px`})),I$=zo.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText})),$C=({data:e,color:t,compact:n})=>n?Wn.createElement(_C,{color:t},e.summary):Wn.createElement(S$,null,Wn.createElement(_C,{color:t},e.summary),e.mappings&&e.mappings.length>0&&Wn.createElement(w$,null,e.mappings.map((r,o)=>Wn.createElement(Wn.Fragment,{key:o},Wn.createElement(v$,null,r.from," ",Wn.createElement(k$,null,"\u2192")," ",r.to)))),e.candidates!=null&&e.candidates>1&&Wn.createElement(C$,null,e.candidates," candidate variants matched"),e.defaults&&e.defaults.length>0&&Wn.createElement(Wn.Fragment,null,e.defaults.map((r,o)=>Wn.createElement(T$,{key:o},Wn.createElement(I$,null,r.choice),Wn.createElement("span",null,"\u2014 ",r.why)))));var F$=ft.div({display:"flex",flexDirection:"column",flex:1,overflow:"hidden"}),E$=ft.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"20px 24px",borderBottom:`1px solid ${e.appBorderColor}`})),A$=ft.div({display:"flex",flexDirection:"column",gap:"4px"}),P$=ft.div({display:"flex",alignItems:"center",gap:"10px"}),L$=ft.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText,letterSpacing:"-0.3px"})),jC=ft.span(({theme:e,variant:t})=>({padding:"3px 10px",borderRadius:"20px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,fontWeight:500,backgroundColor:t==="success"?`${e.color.positive}1a`:t==="danger"?`${e.color.negative}1a`:`${e.color.secondary}1a`,color:t==="success"?e.color.positive:t==="danger"?e.color.negative:e.color.secondary})),M$=ft.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark})),B$=ft.div({display:"flex",gap:"8px"}),D$=ft.div(({theme:e})=>({display:"flex",alignItems:"center",padding:"12px 24px",gap:"12px",borderBottom:`1px solid ${e.appBorderColor}`})),R$=ft(Co)(({theme:e})=>({flex:1,fontSize:e.typography.size.s2})),z$=ft.div({display:"flex",gap:"4px"}),kc=ft.button(({theme:e,active:t})=>({padding:"6px 12px",borderRadius:"6px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:500,border:t?"none":`1px solid ${e.appBorderColor}`,backgroundColor:t?e.color.defaultText:e.background.content,color:t?e.color.inverseText:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","&:hover":{backgroundColor:t?e.color.defaultText:e.background.hoverable}})),N$=ft.div({display:"flex",flexDirection:"column",flex:1,padding:"16px 24px",gap:"8px",overflowY:"auto"}),O$=ft.div(({theme:e,dimmed:t})=>({display:"flex",alignItems:"center",padding:"12px 16px",border:`1px solid ${e.appBorderColor}`,borderRadius:"10px",gap:"12px",backgroundColor:e.background.content,opacity:t?.6:1,transition:"opacity 0.15s",position:"relative",zIndex:0,"&:hover":{zIndex:10}})),_$=ft.div(({theme:e,checked:t})=>({width:"18px",height:"18px",borderRadius:"4px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.15s",...t?{backgroundColor:e.color.defaultText,color:e.color.inverseText,fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold}:{border:`2px solid ${e.color.mediumlight}`}})),$$=ft.div(({theme:e,bgColor:t})=>({width:"48px",height:"40px",borderRadius:"6px",backgroundColor:t||e.background.hoverable,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,overflow:"hidden"})),Cc=ft.div(({theme:e})=>({width:"120px",height:"80px",borderRadius:"8px",backgroundColor:e.background.hoverable,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,overflow:"hidden",border:`1px solid ${e.appBorderColor}`})),U$=ft.img({width:"100%",height:"100%",objectFit:"contain"}),qC=ft.div(({theme:e})=>({width:"16px",height:"16px",border:`2px solid ${e.appBorderColor}`,borderTopColor:e.color.secondary,borderRadius:"50%",animation:"uicopilot-spin 0.8s linear infinite","@keyframes uicopilot-spin":{to:{transform:"rotate(360deg)"}}})),HC=ft.div({flex:1,display:"flex",flexDirection:"column",gap:"2px",minWidth:0}),WC=ft.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:500,color:e.color.defaultText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),xh=ft.span(({theme:e,color:t})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,color:t||e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),qne=ft.span(({theme:e,color:t})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,color:t||e.color.mediumdark,lineHeight:1.5,whiteSpace:"pre-line"})),j$=ft.div(({theme:e})=>({flexShrink:0,color:e.color.mediumlight,fontSize:"14px"})),H$=ft.span(({theme:e,level:t})=>({padding:"4px 10px",borderRadius:"20px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,flexShrink:0,backgroundColor:t==="high"?`${e.color.positive}1a`:t==="medium"?`${e.color.warning}1a`:`${e.color.negative}1a`,color:t==="high"?e.color.positive:t==="medium"?e.color.warning:e.color.negative})),W$=ft.button(({theme:e})=>({padding:"4px 8px",borderRadius:e.appBorderRadius,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,fontWeight:500,border:`1px solid ${e.appBorderColor}`,backgroundColor:"transparent",color:e.color.mediumdark,cursor:"pointer",flexShrink:0,transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText}})),V$=ft.div(({theme:e})=>({padding:"16px 0",marginTop:"8px",borderTop:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",gap:"8px"})),G$=ft.div({display:"flex",flexWrap:"wrap",gap:"6px"}),q$=ft.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"6px 12px",border:`1px dashed ${e.appBorderColor}`,borderRadius:"8px",backgroundColor:e.background.hoverable,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark})),Y$=ft.span(({theme:e,variant:t})=>({padding:"3px 10px",borderRadius:"20px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,fontWeight:500,backgroundColor:t==="cache"?`${e.color.warning}1a`:`${e.color.positive}1a`,color:t==="cache"?e.color.warning:e.color.positive})),K$=ft.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"5px",padding:"5px 12px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:"transparent",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:500,color:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),Yne=ft.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 24px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.hoverable,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s1,color:e.color.mediumdark})),VC=({src:e,alt:t})=>{let[n,r]=Tc(!1);return Ce.createElement(Ce.Fragment,null,!n&&Ce.createElement(qC,null),Ce.createElement(U$,{src:e,alt:t,onLoad:()=>r(!0),style:n?void 0:{position:"absolute",opacity:0}}))};function GC(e){return e>=90?"high":e>=70?"medium":"low"}function X$(e){return e==="high"?"#16a34a":e==="medium"?"#d97706":"#ef4444"}var YC=({results:e,stories:t,onApply:n,onCancel:r,onRerun:o,isApplying:i,isRerunning:s,source:a,resolveThumbnail:u,resolveStoryScreenshot:c,isCapturingScreenshots:l,onBrowse:d})=>{let[g,p]=Tc(()=>{let w=new Set;for(let A of e.mappings)A.confidence>=90&&w.add(A.storyId);return w}),[m,b]=Tc(""),[I,E]=Tc("all"),k=UC(()=>{let w=new Map;for(let A of t)w.set(A.id,{name:A.name,title:A.title});return w},[t]),D=UC(()=>{let w=e.mappings;if(I!=="all"&&(w=w.filter(A=>GC(A.confidence)===I)),m.trim()){let A=m.toLowerCase();w=w.filter(f=>{let v=k.get(f.storyId);return v?.name.toLowerCase().includes(A)||v?.title.toLowerCase().includes(A)||f.componentSetName.toLowerCase().includes(A)||f.figmaFrameName.toLowerCase().includes(A)})}return w},[e.mappings,I,m,k]),N=w=>{p(A=>{let f=new Set(A);return f.has(w)?f.delete(w):f.add(w),f})},$=()=>{let w=e.mappings.filter(A=>g.has(A.storyId));n(w)},L=e.mappings.filter(w=>w.confidence>=90).length,R=e.mappings.filter(w=>w.confidence>=70&&w.confidence<90).length,h=e.mappings.filter(w=>w.confidence<70).length,S=e.usage;return Ce.createElement(F$,null,Ce.createElement(E$,null,Ce.createElement(A$,null,Ce.createElement(P$,null,Ce.createElement(L$,null,"Auto-Map Results"),Ce.createElement(jC,{variant:"success"},e.stats.matched," matched"),e.unmatched.length>0&&Ce.createElement(jC,{variant:"danger"},e.unmatched.length," unmatched"),a&&Ce.createElement(Y$,{variant:a},a==="cache"?"Loaded from cache":"Fresh analysis")),Ce.createElement(M$,null,"Review matches below. Uncheck any incorrect mappings before applying.")),Ce.createElement(B$,null,a==="cache"&&o&&Ce.createElement(K$,{onClick:o,disabled:s},s?"Re-running...":"Re-run LLM"),Ce.createElement(Mr,{onClick:r,variant:"ghost"},"Cancel"),Ce.createElement(Mr,{loading:i,onClick:$,loadingText:"Applying..."},"Apply ",g.size," Selected"))),Ce.createElement(D$,null,Ce.createElement(R$,{type:"text",placeholder:"Filter stories...",value:m,onChange:w=>b(w.target.value)}),Ce.createElement(z$,null,Ce.createElement(kc,{active:I==="all",onClick:()=>E("all")},"All ",e.mappings.length),L>0&&Ce.createElement(kc,{active:I==="high",onClick:()=>E("high")},"\u226590% (",L,")"),R>0&&Ce.createElement(kc,{active:I==="medium",onClick:()=>E("medium")},"70-89% (",R,")"),h>0&&Ce.createElement(kc,{active:I==="low",onClick:()=>E("low")},"<70% (",h,")"))),Ce.createElement(N$,null,D.map(w=>{let A=k.get(w.storyId),f=GC(w.confidence),v=g.has(w.storyId),F=f==="low";return Ce.createElement(O$,{key:w.storyId,dimmed:F&&!v},Ce.createElement(_$,{checked:v,onClick:()=>N(w.storyId)},v?"\u2713":""),(()=>{let x=c?.(w.storyId);return x?Ce.createElement(Cc,null,Ce.createElement(VC,{src:x,alt:A?.name||w.storyId})):l?Ce.createElement(Cc,null,Ce.createElement(qC,null)):Ce.createElement($$,{bgColor:F?"#f1f5f9":"#eff6ff"},Ce.createElement("span",{style:{fontFamily:"Inter",fontSize:"8px",fontWeight:500,color:F?"#94a3b8":"#3b82f6"}},(A?.name||"?").substring(0,4)))})(),Ce.createElement(HC,null,Ce.createElement(WC,null,A?.name||w.storyId),Ce.createElement(xh,null,A?.title||"")),Ce.createElement(j$,null,"\u2192"),(()=>{let x=u?.(w.figmaNodeId),C=hh(w.reason),P=C.summary+(C.candidates?` (${C.candidates} candidates)`:"");return x?Ce.createElement(Cc,{title:P},Ce.createElement(VC,{src:x,alt:w.figmaFrameName})):Ce.createElement(Cc,{title:P},Ce.createElement("span",{style:{fontFamily:"Inter",fontSize:"10px",fontWeight:500,color:"#94a3b8"}},"No thumbnail"))})(),Ce.createElement(HC,null,Ce.createElement(WC,null,w.componentSetName),Ce.createElement(xh,null,w.figmaFrameName),Ce.createElement($C,{data:hh(w.reason),color:X$(f)})),Ce.createElement(H$,{level:f},w.confidence,"%"),d&&Ce.createElement(W$,{onClick:()=>d(w.componentSetName)},"Browse"))}),e.unmatched.length>0&&Ce.createElement(V$,null,Ce.createElement(xh,null,e.unmatched.length," stories couldn't be matched \u2014 map manually after applying"),Ce.createElement(G$,null,e.unmatched.map(w=>{let A=k.get(w);return Ce.createElement(q$,{key:w},Ce.createElement("span",{style:{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#cbd5e1"}}),A?`${A.name} (${A.title})`:w)})))),S&&a!=="cache"&&Ce.createElement("div",{style:{padding:"8px 24px",borderTop:"1px solid #f0f0f0"}},Ce.createElement(vc,{inputTokens:S.inputTokens||0,outputTokens:S.outputTokens||0,costUsd:S.costUsd||0})))};Ue();Ne();import{useState as No,useCallback as Oo,useRef as Q$}from"react";import{useStorybookApi as J$}from"storybook/manager-api";function KC({projectId:e}){let t=J$(),n=Q$(null),[r,o]=No(!1),[i,s]=No(!1),[a,u]=No(!1),[c,l]=No(null),[d,g]=No(null),[p,m]=No(null),[b,I]=No(""),[E,k]=No(null),D=Oo(async()=>{let A=await fetch("/index.json");if(!A.ok)throw new Error("Failed to fetch Storybook index");let f=await A.json(),v=f.entries||f.stories||{},F=Object.keys(v).filter(P=>v[P].type==="story");y.debug(`[useAutoMap] Found ${F.length} stories in index.json`);let x=[];for(let P of F){let B=v[P],O=t.getData(P),T={...O?.initialArgs||{}},z=O?.argTypes||{};for(let[W,M]of Object.entries(z))if(!(W in T)){let ie=M;if(ie.defaultValue!==void 0)T[W]=ie.defaultValue;else if(ie.table?.defaultValue?.summary!==void 0){let Y=ie.table.defaultValue.summary;Y==="false"?T[W]=!1:Y==="true"?T[W]=!0:T[W]=Y}}x.push({id:P,name:B.name||P.split("--").pop()||P,title:B.title||"",initialArgs:T,argTypes:z})}let C=x.filter(P=>Object.keys(P.initialArgs).length>0);return y.debug(`[useAutoMap] Manifest: ${x.length} stories, ${C.length} with args`),x},[t]),N=Oo(async()=>{if(!e)return!1;try{let A=G(),f=localStorage.getItem("uicopilot_session_token");if(!f)return!1;let v=await fetch(`${A}/api/figma/auto-map?projectId=${e}`,{headers:{Authorization:`Bearer ${f}`}});if(!v.ok)return!1;let F=await v.json();return F.hasSuggestions&&F.mappings?.length>0?(g(F),k("cache"),I(`Loaded ${F.mappings.length} saved suggestions`),y.debug(`[useAutoMap] Loaded ${F.mappings.length} existing suggestions from DB`),!0):!1}catch{return!1}},[e]),$=Oo(async A=>{o(!0),I("Collecting story information...");let f;try{if(f=await D(),A?.length&&(f=f.filter(F=>!A.includes(F.id)),y.debug(`[useAutoMap] After excluding mapped: ${f.length} stories`)),f.length===0){l("No unmapped stories found"),o(!1);return}m(f)}catch(F){l(F instanceof Error?F.message:"Failed to collect story manifest"),o(!1);return}o(!1),s(!0),I(`Analyzing ${f.length} stories against Figma components...`);let v=new AbortController;n.current=v;try{let F=G(),x=localStorage.getItem("uicopilot_session_token");if(!x)throw new Error("Not authenticated");let C=await fetch(`${F}/api/figma/auto-map`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${x}`},body:JSON.stringify({projectId:e,stories:f.map(B=>({id:B.id,name:B.name,title:B.title,initialArgs:B.initialArgs,argTypes:B.argTypes}))}),signal:v.signal});if(!C.ok){let B=await C.json();throw new Error(B.error||"Auto-map failed")}let P=await C.json();g(P),k("llm"),I(`Found ${P.stats.matched} matches (${P.stats.highConfidence} high confidence)`),y.debug(`[useAutoMap] Results: ${P.stats.matched}/${P.stats.total} matched, ${P.unmatched.length} unmatched`)}catch(F){if(F instanceof DOMException&&F.name==="AbortError"){I("Cancelled");return}l(F instanceof Error?F.message:"Auto-map failed")}finally{s(!1),n.current=null}},[e,D]),L=Oo(async A=>{if(!e)return;if(l(null),g(null),k(null),o(!0),I("Checking for existing suggestions..."),await N()){o(!1);return}await $(A)},[e,N,$]),R=Oo(async A=>{e&&(l(null),g(null),k(null),await $(A))},[e,$]),h=Oo(async A=>{if(!(!e||A.length===0)){u(!0),I(`Applying ${A.length} mappings...`);try{let f=G(),v=localStorage.getItem("uicopilot_session_token");if(!v)throw new Error("Not authenticated");let F=0;for(let x of A)try{(await fetch(`${f}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${v}`},body:JSON.stringify({projectId:e,storyId:x.storyId,figmaNodeId:x.figmaNodeId,name:x.figmaFrameName||x.componentSetName})})).ok?F++:y.warn(`[useAutoMap] Failed to apply mapping for ${x.storyId}`)}catch(C){y.error(`[useAutoMap] Error applying mapping for ${x.storyId}:`,C)}I(`Applied ${F}/${A.length} mappings`),y.debug(`[useAutoMap] Applied ${F}/${A.length} mappings`)}catch(f){l(f instanceof Error?f.message:"Failed to apply mappings")}finally{u(!1)}}},[e]),S=Oo(()=>{n.current?.abort()},[]),w=Oo(()=>{g(null),m(null),l(null),I(""),k(null)},[]);return{collectAndMap:L,rerun:R,loadExisting:N,applyMappings:h,cancel:S,reset:w,isCollecting:r,isMapping:i,isApplying:a,error:c,results:d,manifest:p,progress:b,source:E}}Ne();import{useState as yh,useEffect as Z$,useRef as XC}from"react";var QC=2;async function e4(e,t){try{let n=await fetch(`/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`,{signal:t});return n.ok&&(await n.json()).screenshot||null}catch{return null}}function JC(e){let[t,n]=yh({}),[r,o]=yh(0),[i,s]=yh(!1),a=XC(null),u=XC(""),c=e.join(",");return Z$(()=>{if(!e.length||c===u.current)return;u.current=c,n({}),o(0),s(!0);let l=new AbortController;a.current=l;let d=0;return(async()=>{for(let p=0;p<e.length&&!l.signal.aborted;p+=QC){let m=e.slice(p,p+QC),b=await Promise.all(m.map(E=>e4(E,l.signal).then(k=>({id:E,img:k}))));if(l.signal.aborted)break;let I={};for(let{id:E,img:k}of b)d++,k&&(I[E]=k);Object.keys(I).length>0&&n(E=>({...E,...I})),o(d)}s(!1),y.debug(`[useStoryScreenshots] Captured ${d}/${e.length} screenshots`)})().catch(()=>s(!1)),()=>{l.abort()}},[c]),{screenshots:t,isCapturing:i,progress:{done:r,total:e.length}}}import be,{useState as bh,useEffect as ga,useMemo as t4,useCallback as n4}from"react";import{styled as r4}from"storybook/theming";Ne();var o4=r4.button(({theme:e})=>({gridColumn:"1 / -1",padding:"8px 16px",backgroundColor:"transparent",border:`1px dashed ${e.appBorderColor}`,borderRadius:e.appBorderRadius,color:e.color.mediumdark,fontSize:e.typography.size.s1,cursor:"pointer",transition:"all 0.15s","&:hover:not(:disabled)":{borderColor:e.color.secondary,color:e.color.secondary},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),Ji=({isOpen:e,onClose:t,onSelect:n,projectId:r,stories:o=[],currentStoryId:i,onStoryChange:s,multiSelect:a=!1,onMultiSelect:u,initialSearch:c})=>{let l=sa({projectId:r||"",enabled:e&&!!r}),d=be.useRef(!1);ga(()=>{e&&c&&!d.current&&(l.setSearch(c),d.current=!0),e||(d.current=!1)},[e,c]);let[g,p]=bh(new Set),[m,b]=bh(i||o[0]?.id||"");ga(()=>{i&&b(i)},[i]);let I=50,E=8,[k,D]=bh({}),N=n4(f=>{D(v=>({...v,[f]:(v[f]||1)+1}))},[]);ga(()=>{D({})},[l.variantFilters]),ga(()=>{l.expandedSets.forEach(f=>{let v=l.variantChildren[f];if(!v||v.length===0)return;let F=v;l.variantFilters.some(P=>P.value)&&(F=v.filter(P=>P.variantProperties?l.variantFilters.every(B=>B.value?P.variantProperties?.[B.property]===B.value:!0):!1));let x=k[f]||1,C=F.slice(0,x*I).map(P=>P.id);for(let P=0;P<C.length;P+=E){let B=C.slice(P,P+E),O=P/E*300;O===0?l.fetchVariantThumbnails(f,B):setTimeout(()=>l.fetchVariantThumbnails(f,B),O)}})},[l.expandedSets,l.variantChildren,l.variantFilters,k]),ga(()=>{p(new Set)},[m]);let $=t4(()=>{let f=[];return l.filteredFrames.forEach(v=>{if(v.type==="COMPONENT_SET"&&v.children){let F=l.variantFilters.some(x=>x.value)?v.children.filter(x=>x.variantProperties?l.variantFilters.every(C=>C.value?x.variantProperties?.[C.property]===C.value:!0):!1):v.children;f.push(...F)}else f.push(v)}),f},[l.filteredFrames,l.variantFilters]),L=f=>{if(a)p(v=>{let F=new Set(v);return F.has(f.id)?F.delete(f.id):F.add(f.id),F});else{let v=l.resolveThumbnail(f.id);try{n({...f,thumbnail:v})}catch(F){y.error("[ComponentBrowserModal] onSelect threw error:",F)}t()}},R=()=>{let f=$.map(F=>F.id),v=f.every(F=>g.has(F));p(v?new Set:new Set(f))},h=()=>{if(u&&g.size>0){let f=$.filter(v=>g.has(v.id)).map(v=>({...v,thumbnail:l.resolveThumbnail(v.id)}));u(f),p(new Set)}},S=f=>{b(f),s?.(f)},w=f=>{f.target===f.currentTarget&&t()},A=o.find(f=>f.id===m);return e?be.createElement(zk,{onClick:w},be.createElement(Nk,null,be.createElement(Ok,null,be.createElement(_k,null,"Link Figma Frames"),be.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center"}},be.createElement("button",{onClick:()=>l.refresh(),disabled:l.isLoading,style:{padding:"4px 8px",fontSize:"12px",cursor:l.isLoading?"not-allowed":"pointer",background:"transparent",border:"1px solid #ccc",borderRadius:"4px"},title:"Refresh from Figma"},"Refresh"),be.createElement($k,{onClick:t},"\xD7"))),be.createElement(Uk,null,l.error&&be.createElement(Yk,null,l.error),!l.error&&be.createElement(be.Fragment,null,o.length>0&&be.createElement(iC,null,be.createElement(sC,null,"Story:"),be.createElement(aC,{value:m,onChange:f=>S(f.target.value)},o.map(f=>be.createElement("option",{key:f.id,value:f.id},f.name,f.mappingsCount?` (${f.mappingsCount} linked)`:""))),A?.mappingsCount?be.createElement(lC,{hasMapping:!0},A.mappingsCount," frames linked"):null),be.createElement(Gk,null,be.createElement(gc,null,be.createElement("input",{type:"checkbox",checked:l.showComponentSets,onChange:f=>l.setShowComponentSets(f.target.checked)}),"Component Sets"),be.createElement(gc,null,be.createElement("input",{type:"checkbox",checked:l.showFrames,onChange:f=>l.setShowFrames(f.target.checked)}),"Frames"),be.createElement(gc,null,be.createElement("input",{type:"checkbox",checked:l.showComponents,onChange:f=>l.setShowComponents(f.target.checked)}),"Components"),l.availablePages.length>1&&be.createElement(Xi,{isActive:!!l.figmaPage,value:l.figmaPage,onChange:f=>l.setFigmaPage(f.target.value),style:{marginLeft:"auto"}},be.createElement("option",{value:""},"All pages"),l.availablePages.map(f=>be.createElement("option",{key:f,value:f},f)))),l.filterSuggestion&&be.createElement(cC,null,be.createElement(uC,null,"AI suggests:"),be.createElement(pC,null,Object.entries(l.filterSuggestion.suggestedFilters).map(([f,v])=>`${f}=${v}`).join(", ")),be.createElement(dC,{onClick:l.applySuggestedFilters},"Apply"),be.createElement(gC,{onClick:l.dismissFilterSuggestion},"Dismiss")),l.filterSuggestionLoading&&be.createElement(fC,null,"Matching story args to Figma filters..."),l.availableFilters.length>0&&be.createElement(mc,null,be.createElement(ua,null,"Filters:"),l.availableFilters.map(({property:f,values:v})=>{let F=l.variantFilters.find(x=>x.property===f);return be.createElement(Xi,{key:f,isActive:!!F?.value,value:F?.value||"",onChange:x=>l.handleFilterChange(f,x.target.value)},be.createElement("option",{value:""},f),v.map(x=>be.createElement("option",{key:x,value:x},f,"=",x)))}),l.variantFilters.some(f=>f.value)&&be.createElement(hc,{onClick:l.clearFilters},"Clear All")),l.rateLimitError&&be.createElement("div",{style:{padding:"8px 12px",marginBottom:"8px",background:"rgba(234, 88, 12, 0.12)",border:"1px solid rgba(234, 88, 12, 0.3)",borderRadius:"6px",fontSize:"12px",color:"#ea580c"}},"\u26A0 Figma thumbnail previews unavailable \u2014"," ",l.rateLimitError,". You can still select by name."),be.createElement(jk,{type:"text",placeholder:"Search frames...",value:l.search,onChange:f=>l.setSearch(f.target.value),autoFocus:!0}),a&&$.length>0&&be.createElement(mC,null,be.createElement(hC,{onClick:R},g.size===$.length?"Deselect All":"Select All Visible"),be.createElement(xC,null,g.size>0?`${g.size} selected of `:"Showing ",$.length," frames")),l.isLoading&&be.createElement(Jm,null,Array.from({length:6}).map((f,v)=>be.createElement(oC,{key:v},be.createElement("div",{style:{width:"100%",aspectRatio:"4 / 3"}},be.createElement(fc,{width:"100%",height:"100%"})),be.createElement("div",{style:{padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},be.createElement(fc,{width:"80%",height:"16px"}),be.createElement(fc,{width:"50%",height:"12px"}))))),!l.isLoading&&l.filteredFrames.length===0&&be.createElement(qk,null,l.search?"No frames match your search":"No frames found in this Figma file"),!l.isLoading&&l.filteredFrames.length>0&&be.createElement(Jm,null,l.filteredFrames.map(f=>be.createElement(pa,{key:f.id,frame:f,thumbnail:l.thumbnails[f.id],thumbnails:l.thumbnails,variantThumbnails:l.variantThumbnails[f.id],variantChildren:l.variantChildren[f.id],variantFailed:l.variantFailed[f.id],isLoadingVariants:l.loadingVariants.has(f.id),isExpanded:l.expandedSets.has(f.id),isNew:l.recentlyAdded.has(f.name),onToggleExpand:l.toggleExpanded,onSelect:L,multiSelect:a,selectedFrames:g,variantFilters:l.variantFilters,variantPage:k[f.id]||1,onShowMore:N})),l.hasMore&&be.createElement(o4,{onClick:l.loadMore,disabled:l.loadingMore},l.loadingMore?"Loading...":`Show more (${l.totalFrames-l.frames.length} remaining)`)))),a&&be.createElement(yC,null,be.createElement(bC,{disabled:g.size===0,onClick:h},"Link ",g.size," Selected")))):null};ve();lt();var s4=nn.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4}),a4=nn.div(({theme:e})=>({width:"90vw",maxWidth:"1100px",height:"75vh",backgroundColor:e.background.content,borderRadius:"12px",display:"flex",flexDirection:"column",boxShadow:"0 20px 60px rgba(0, 0, 0, 0.3)",overflow:"hidden"})),l4=nn.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app})),c4=nn.div({display:"flex",alignItems:"center",gap:"20px"}),u4=nn.h2(({theme:e})=>({fontSize:"16px",fontWeight:600,color:e.color.defaultText,margin:0,display:"flex",alignItems:"center",gap:"8px"})),p4=nn.div({display:"flex",gap:"4px"}),ZC=nn(ko)(({theme:e,active:t})=>({padding:"8px 16px",borderBottom:"none",borderRadius:"6px",backgroundColor:t?e.background.hoverable:"transparent","&:hover":{backgroundColor:e.background.hoverable}})),d4=nn(An)({width:"32px",height:"32px",fontSize:"20px",borderRadius:"6px"}),g4=nn.div({flex:1,overflow:"hidden",display:"flex",flexDirection:"column"}),f4=nn.div(({theme:e})=>({padding:"12px 20px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,display:"flex",alignItems:"center",justifyContent:"space-between"})),m4=nn.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,display:"flex",gap:"16px"})),h4=nn.div({display:"flex",flexDirection:"column",flex:1,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(255, 255, 255, 0.95)",padding:"40px"}),x4=nn.div({display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",maxWidth:"400px"}),y4=nn.div(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText,textAlign:"center"})),b4=nn.div(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark,textAlign:"center"})),S4=nn.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden"})),w4=nn.div(({theme:e})=>({width:"100%",height:"100%",backgroundColor:e.color.secondary,borderRadius:"4px",opacity:.6})),v4=nn.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",padding:"6px 14px",backgroundColor:e.color.defaultText,color:"white",border:"none",borderRadius:"6px",fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,cursor:"pointer",transition:"opacity 0.15s","&:hover":{opacity:.85},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),e1=nn.span(({theme:e,type:t})=>({display:"flex",alignItems:"center",gap:"6px","& .dot":{width:"8px",height:"8px",borderRadius:"50%",backgroundColor:t==="mapped"?e.color.positive:t==="unmapped"?e.color.mediumlight:"transparent"}})),t1=({isOpen:e,onClose:t,projectId:n})=>{let[r,o]=Zi("map"),[i,s]=Zi([]),[a,u]=Zi(!0),[c,l]=Zi(null),[d,g]=Zi(!1),[p,m]=Zi(null),b=KC({projectId:n}),{refreshMappings:I}=tt(),{featureFlags:E}=ue(),k=Je.useMemo(()=>b.results?.mappings.map(x=>x.storyId)||[],[b.results]),D=JC(k),N=_o(async()=>{u(!0);try{let x=await fetch("/index.json");if(!x.ok)throw new Error("Failed to fetch index.json");let C=await x.json(),P=C.entries||C.stories||{},B=Object.entries(P).filter(([,T])=>T.type==="story").map(([T,z])=>({id:T,name:z.name||T.split("--").pop()||T,title:z.title||"",importPath:z.importPath,componentTitle:z.title?.split("/").slice(0,-1).join("/")||z.title,figmaMapping:null}));try{let T=G(),z=localStorage.getItem("uicopilot_session_token"),W=await ne(`${T}/api/mappings?projectId=${n}&_t=${Date.now()}`,{headers:{Authorization:`Bearer ${z}`}});if(W.ok){let M=await W.json(),ie=new Map((M.mappings||[]).map(Y=>[Y.storyId,Y]));B.forEach(Y=>{let se=ie.get(Y.id);se&&se.figmaNodeId&&(Y.figmaMapping={figmaNodeId:se.figmaNodeId,figmaFrameName:se.name||se.figmaFrameName||""})})}}catch(T){console.warn("[StoryMappingAssistant] Failed to fetch mappings (stories still loaded):",T)}s(B);let O=B.find(T=>!T.figmaMapping);O?l(O.id):B.length>0&&l(B[0].id)}catch(x){console.error("[StoryMappingAssistant] Error fetching stories:",x)}finally{u(!1)}},[n]);i4(()=>{e&&N()},[e,N]);let $=_o((x,C,P)=>{s(T=>T.map(z=>z.id===x?{...z,figmaMapping:{figmaNodeId:C,figmaFrameName:P}}:z));let B=i.findIndex(T=>T.id===x),O=i.find((T,z)=>z>B&&!T.figmaMapping);O&&l(O.id)},[i]),L=_o(x=>{s(C=>C.map(P=>P.id===x?{...P,figmaMapping:null}:P))},[]),R=_o(x=>{l(x),o("map")},[]),h=_o(()=>{let x=i.filter(C=>C.figmaMapping).map(C=>C.id);b.collectAndMap(x)},[i,b]),S=_o(()=>{let x=i.filter(C=>C.figmaMapping).map(C=>C.id);g(!1),b.rerun(x)},[i,b]),w=_o(async x=>{await b.applyMappings(x),g(!1),b.reset(),N(),I()},[b,N,I]),A=_o(()=>{g(!1),b.reset()},[b]);Je.useEffect(()=>{b.results&&g(!0)},[b.results]);let f=x=>{x.target===x.currentTarget&&t()};if(!e)return null;let v=i.filter(x=>x.figmaMapping).length,F=i.length;return Je.createElement(Je.Fragment,null,Je.createElement(s4,{onClick:f},Je.createElement(a4,{onClick:x=>x.stopPropagation()},Je.createElement(l4,null,Je.createElement(c4,null,Je.createElement(u4,null,Je.createElement("span",null,"\u{1F517}"),"Link Stories to Figma"),Je.createElement(p4,null,Je.createElement(ZC,{active:r==="map",onClick:()=>o("map")},"Map Stories"),Je.createElement(ZC,{active:r==="view",onClick:()=>o("view")},"View All Mappings"))),Je.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},E.enableAutoMap&&!d&&!b.isCollecting&&!b.isMapping&&Je.createElement(v4,{onClick:h,disabled:a||i.length===0},Je.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2"},Je.createElement("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),Je.createElement("path",{d:"M2 17l10 5 10-5"}),Je.createElement("path",{d:"M2 12l10 5 10-5"})),"Auto-Map All"),Je.createElement(d4,{onClick:t},"\xD7"))),Je.createElement(g4,null,(b.isCollecting||b.isMapping)&&Je.createElement(h4,null,Je.createElement(x4,null,Je.createElement(S4,null,Je.createElement(w4,null)),Je.createElement(y4,null,"Auto-mapping stories to Figma"),Je.createElement(b4,null,b.progress),Je.createElement(Mr,{onClick:b.cancel,variant:"ghost"},"Cancel"))),d&&b.results&&Je.createElement(YC,{results:b.results,stories:i,onApply:w,onCancel:A,onRerun:S,isApplying:b.isApplying,isRerunning:b.isCollecting||b.isMapping,source:b.source,resolveThumbnail:x=>b.results?.thumbnailUrls?.[x],resolveStoryScreenshot:x=>D.screenshots[x],isCapturingScreenshots:D.isCapturing,onBrowse:x=>m(x)}),!d&&!b.isCollecting&&!b.isMapping&&(r==="map"?Je.createElement(PC,{stories:i,loading:a,selectedStoryId:c,onSelectStory:l,onStoryMapped:$,projectId:n}):Je.createElement(DC,{stories:i,loading:a,onLink:R,onUnlink:L,projectId:n}))),Je.createElement(f4,null,Je.createElement(m4,null,Je.createElement("span",null,"Total: ",F," stories"),Je.createElement(e1,{type:"mapped"},Je.createElement("span",{className:"dot"}),v," mapped"),Je.createElement(e1,{type:"unmapped"},Je.createElement("span",{className:"dot"}),F-v," unmapped"))))),Je.createElement(Ji,{isOpen:!!p,onClose:()=>m(null),onSelect:()=>m(null),projectId:n,initialSearch:p||void 0}))};lt();var n1=er.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px 16px",backgroundColor:e.background.content,borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px",transition:"border-color 0.2s, box-shadow 0.2s","&:hover":{borderColor:e.color.mediumlight}})),C4=er.div(({theme:e})=>({width:"20px",height:"20px",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,"& svg":{width:"16px",height:"16px"}})),T4=er.div({display:"flex",alignItems:"center",gap:"12px",flex:1}),I4=er.div({display:"flex",alignItems:"center",gap:"8px"}),F4=er.div(({theme:e})=>({width:"60px",height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden"})),E4=er.div(({theme:e,percent:t,state:n})=>({width:`${t}%`,height:"100%",borderRadius:"2px",backgroundColor:n==="complete"?e.color.positive:n==="partial"?e.color.warning:e.color.mediumlight,transition:"width 0.3s ease"})),A4=er.span(({theme:e,state:t})=>({fontSize:"12px",fontWeight:600,color:t==="complete"?e.color.positive:t==="partial"?e.color.warning:e.color.mediumdark,whiteSpace:"nowrap"})),P4=er.span(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText})),L4=er(Iu)({padding:"4px 10px",fontSize:"12px",fontWeight:600,marginLeft:"auto"}),M4=er(Iu)(({theme:e})=>({padding:"4px 10px",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.negative||"#dc2626","&:hover":{textDecoration:"none",backgroundColor:"rgba(220, 38, 38, 0.08)"}})),B4=er.span(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,fontStyle:"italic"})),D4=er.div(({theme:e})=>({width:"14px",height:"14px",border:`2px solid ${e.appBorderColor}`,borderTopColor:le,borderRadius:"50%",animation:"figma-mapping-spin 0.8s linear infinite","@keyframes figma-mapping-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),R4=er.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),r1=()=>{let[e,t]=Ic(!1),[n,r]=Ic({totalStories:0,mappedStories:0,loading:!0}),{selectedProjectId:o}=Xe(),{sessionToken:i}=Se();k4(()=>{o&&i?s():r({totalStories:0,mappedStories:0,loading:!1})},[o,i]);let s=async()=>{r($=>({...$,loading:!0}));try{let $=await fetch("/index.json");if(!$.ok)throw new Error("Failed to fetch Storybook index");let L=await $.json(),R=L.entries||L.stories||{},h=Object.keys(R).filter(v=>R[v].type==="story").length,S=Object.keys(R).filter(v=>R[v].type==="story"),w=G(),A=await ne(`${w}/api/mappings?projectId=${o}`,{headers:{Authorization:`Bearer ${i}`}}),f=0;if(A.ok){let v=await A.json(),F=v.mappings||v||[];if(Array.isArray(F)){let x=new Set(F.map(C=>C.storyId).filter(Boolean));f=S.filter(C=>x.has(C)).length}else{let x=await ne(`${w}/api/mappings/stats?projectId=${o}`,{headers:{Authorization:`Bearer ${i}`}});if(x.ok){let C=await x.json();f=Math.min(C.mappedStoriesCount||0,h)}}}r({totalStories:h,mappedStories:f,loading:!1})}catch($){console.error("[FigmaMappingsSection] Error fetching stats:",$),r(L=>({...L,loading:!1}))}},[a,u]=Ic(!1),[c,l]=Ic(!1),d=async()=>{!o||!i||l(!0)},g=async()=>{l(!1),u(!0);try{let $=G(),L=await ne(`${$}/api/mappings?projectId=${o}`,{headers:{Authorization:`Bearer ${i}`}});if(!L.ok)throw new Error("Failed to fetch mappings");let h=(await L.json()).mappings||[];await Promise.all(h.map(S=>ne(`${$}/api/mappings?id=${encodeURIComponent(S.id)}`,{method:"DELETE",headers:{Authorization:`Bearer ${i}`}}))),s()}catch($){console.error("[FigmaMappingsSection] Unlink all failed:",$)}finally{u(!1)}},p=()=>t(!0),m=()=>{t(!1),o&&i&&s()};if(!o)return It.createElement(n1,null,It.createElement(B4,null,"Select a project to link Figma designs"));let{totalStories:b,loading:I}=n,E=Math.min(n.mappedStories,b),k=E===0?"none":E>=b?"complete":"partial",D=b>0?Math.min(100,Math.round(E/b*100)):0,N=k==="none"?"Link designs":"Manage";return It.createElement(It.Fragment,null,It.createElement(n1,null,It.createElement(C4,null,It.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},It.createElement("path",{d:"M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z",fill:"#1ABCFE"}),It.createElement("path",{d:"M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z",fill:"#0ACF83"}),It.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),It.createElement("path",{d:"M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z",fill:"#F24E1E"}),It.createElement("path",{d:"M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z",fill:"#A259FF"}))),It.createElement(T4,null,It.createElement(P4,null,"Figma Mappings"),It.createElement(I4,null,I?It.createElement(It.Fragment,null,It.createElement(D4,null),It.createElement(R4,null,"Loading...")):It.createElement(It.Fragment,null,It.createElement(F4,null,It.createElement(E4,{percent:D,state:k})),It.createElement(A4,{state:k},`${E}/${b}`)))),E>0&&It.createElement(M4,{onClick:d,disabled:I||a},a?"Unlinking...":"Unlink All"),It.createElement(L4,{onClick:p,disabled:I},N)),e&&It.createElement(t1,{isOpen:e,onClose:m,projectId:o}),It.createElement(Hr,{isOpen:c,title:"Unlink All Mappings",message:`Unlink all ${n.mappedStories} Figma mappings?`,confirmLabel:"Unlink All",variant:"danger",onConfirm:g,onCancel:()=>l(!1)}))};import ce,{useState as es,useEffect as Fc,useCallback as o1,useRef as Sh}from"react";import{styled as tr}from"storybook/theming";ve();Ue();lt();var wh=tr.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.background.content,borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px",fontSize:"12px"})),vh=tr.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),kh=tr.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),Kre=tr(Or)({padding:"5px 12px",fontSize:"12px"}),Ch=tr.div(({theme:e})=>({display:"flex",gap:"16px",color:e.color.mediumdark,marginBottom:"4px"})),Ec=tr.span(({theme:e})=>({whiteSpace:"nowrap","& strong":{color:e.color.defaultText,fontWeight:600}})),z4=tr.span(({theme:e,status:t})=>({display:"inline-block",padding:"1px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:t==="cached"?`${e.color.positive}1a`:t==="expired"?`${e.color.warning}1a`:e.background.hoverable,color:t==="cached"?e.color.positive:t==="expired"?e.color.warning:e.color.mediumdark})),N4=tr.div(({theme:e})=>({marginTop:"6px",padding:"6px 8px",backgroundColor:e.background.hoverable,borderRadius:"4px",color:e.color.mediumdark,lineHeight:"1.4"})),Th=tr.span(({theme:e,type:t})=>({fontWeight:500,color:t==="added"?e.color.positive:t==="removed"?e.color.negative:e.color.warning})),O4=tr.span(({theme:e})=>({color:e.color.mediumdark,fontSize:"12px"})),Ac=tr.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden",marginTop:"10px"})),Pc=tr.div(({theme:e,percent:t})=>({width:`${t}%`,height:"100%",backgroundColor:e.color.secondary,borderRadius:"3px",transition:"width 0.5s ease"})),$o=tr.div(({theme:e})=>({display:"flex",justifyContent:"space-between",marginTop:"6px",fontSize:"12px",fontWeight:500,color:e.color.defaultText})),i1=new Set,s1=()=>{let{userRole:e,featureFlags:t}=ue(),[n,r]=es(null),[o,i]=es(!0),[s,a]=es(!1),[u,c]=es(!1),[l,d]=es(!1),[g,p]=es(!1),{selectedProjectId:m,projects:b}=Xe(),{sessionToken:I}=Se(),E=Sh(null),k=Sh(null),D=Sh(null),N=o1(()=>{E.current&&(clearInterval(E.current),E.current=null),k.current&&(clearInterval(k.current),k.current=null),D.current&&(clearTimeout(D.current),D.current=null)},[]);Fc(()=>N,[N]);let $=o1(async()=>{if(!(!m||!I))try{let F=G(),x=await ne(`${F}/api/figma/cache-status?projectId=${m}`,{headers:{Authorization:`Bearer ${I}`}});if(x.ok){let C=await x.json();r(C)}}catch(F){console.error("[FigmaCacheSection] Error:",F)}finally{i(!1)}},[m,I]);Fc(()=>{$()},[$]),Fc(()=>{if(o||s||!n||n.structureStatus!=="none"||!m||i1.has(m))return;let F=b.find(C=>C.id===m);(F?.figmaFileUrl||F?.figmaFileId)&&(i1.add(m),L())},[o,s,n?.structureStatus,m,b]),Fc(()=>{let F=n?.thumbnailProgress?.status,x=n?.enrichmentProgress?.status,C=n?.thumbnailProgress?.cached??0,P=n?.thumbnailProgress?.total??0,B=F==="in-progress"||F==="pending"||P>0&&C<P,O=x==="in-progress"||x==="pending",T=!n?.thumbnailProgress&&n?.structureStatus==="cached";if(!(B||O||T)||!n||n.structureStatus==="none")return;let W=setInterval(()=>{$()},3e3);return()=>{clearInterval(W)}},[n?.thumbnailProgress?.status,n?.thumbnailProgress?.cached,n?.thumbnailProgress?.total,n?.enrichmentProgress?.status,n?.structureStatus,$]);let L=async()=>{if(!(!m||!I)){a(!0);try{let F=G();await ne(`${F}/api/figma/frames?projectId=${m}&type=COMPONENT_SET&page=1&limit=1&refresh=true`,{headers:{Authorization:`Bearer ${I}`}},6e4),await new Promise(x=>setTimeout(x,1e3)),await $(),setTimeout(async()=>{await $()},3e3)}catch(F){console.error("[FigmaCacheSection] Reload error:",F)}finally{a(!1)}}},R=async()=>{if(!(!m||!I)){c(!0);try{let F=G(),x=await ne(`${F}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({projectId:m})});console.log("[FigmaCacheSection] Cache invalidate response:",x.status),await ne(`${F}/api/figma/frames/invalidate?projectId=${m}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`}}).catch(()=>{}),r({structureStatus:"none",structureCachedAt:null,componentSetCount:0,componentCount:0,pageCount:0,pages:[],cacheDiff:null,thumbnailProgress:null,enrichmentProgress:null})}catch(F){console.error("[FigmaCacheSection] Clear cache error:",F)}finally{c(!1)}}},h=async()=>{if(!(!m||!I)){N(),d(!0);try{let F=G();await ne(`${F}/api/figma/enrich`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({projectId:m})}),E.current=setInterval(async()=>{await $()},3e3),k.current=setInterval(()=>{(n?.enrichmentProgress?.status==="complete"||n?.enrichmentProgress?.status==="error")&&(N(),d(!1),$())},3e3),D.current=setTimeout(()=>{N(),d(!1)},6e5)}catch(F){console.error("[FigmaCacheSection] Enrich error:",F),N(),d(!1)}}},S=async()=>{if(!(!m||!I)){p(!0);try{let F=G();await ne(`${F}/api/figma/cancel`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({projectId:m})}),await $()}catch(F){console.error("[FigmaCacheSection] Cancel error:",F)}finally{p(!1),d(!1),a(!1)}}},w=n?.thumbnailProgress?.status==="in-progress"||n?.enrichmentProgress?.status==="in-progress";if(!m)return null;if(o)return ce.createElement(wh,null,ce.createElement(vh,null,ce.createElement(kh,null,"Figma Cache")),ce.createElement(Ch,null,ce.createElement(Ec,null,"Loading cache status\u2026")),ce.createElement(Ac,null,ce.createElement(Pc,{percent:100,style:{opacity:.3}})));if(!n||n.structureStatus==="none")return ce.createElement(wh,null,ce.createElement(vh,null,ce.createElement(kh,null,"Figma Cache"),ce.createElement(Mr,{loading:s,onClick:L,loadingText:"Loading..."},"\u21BB Load")),s?ce.createElement(ce.Fragment,null,ce.createElement(Ac,null,ce.createElement(Pc,{percent:30,style:{animation:"none",width:"100%",opacity:.3}})),ce.createElement($o,null,ce.createElement("span",null,"Downloading structure from Figma... this may take 30-60 seconds"))):ce.createElement(Ch,null,ce.createElement(Ec,null,"No cache \u2014 click Load to fetch from Figma")));let A=F=>{let x=Date.now()-new Date(F).getTime(),C=Math.floor(x/6e4);if(C<1)return"just now";if(C<60)return`${C}m ago`;let P=Math.floor(C/60);return P<24?`${P}h ago`:`${Math.floor(P/24)}d ago`},f=n.cacheDiff,v=f&&(f.added.length>0||f.removed.length>0||f.renamed.length>0);return ce.createElement(wh,null,ce.createElement(vh,null,ce.createElement(kh,null,"Figma Cache"," ",ce.createElement(z4,{status:n.structureStatus},n.structureStatus)),ce.createElement("div",{style:{display:"flex",gap:"6px"}},e==="admin"&&ce.createElement(Mr,{loading:l,onClick:h,loadingText:"Enriching..."},"Enrich"),ce.createElement(Mr,{loading:u,onClick:R,variant:"ghost",loadingText:"Clearing..."},"Clear"),ce.createElement(Mr,{loading:s,onClick:L,loadingText:"Reloading..."},"\u21BB Reload"),w&&ce.createElement(Mr,{loading:g,onClick:S,variant:"ghost",loadingText:"Cancelling..."},"\u2715 Cancel"))),s&&ce.createElement($o,null,ce.createElement("span",null,"Downloading structure from Figma...")),ce.createElement(Ch,null,ce.createElement(Ec,null,ce.createElement("strong",null,n.componentSetCount)," component sets"),ce.createElement(Ec,null,ce.createElement("strong",null,n.pageCount)," pages"),n.structureCachedAt&&ce.createElement(O4,null,"Updated ",A(n.structureCachedAt))),v&&ce.createElement(N4,null,"Since last reload:"," ",f.added.length>0&&ce.createElement(Th,{type:"added"},"+",f.added.length," added"),f.added.length>0&&f.removed.length>0&&" \xB7 ",f.removed.length>0&&ce.createElement(Th,{type:"removed"},"\u2212",f.removed.length," removed"),(f.added.length>0||f.removed.length>0)&&f.renamed.length>0&&" \xB7 ",f.renamed.length>0&&ce.createElement(Th,{type:"renamed"},f.renamed.length," renamed")),n.thumbnailProgress&&n.thumbnailProgress.status==="in-progress"&&ce.createElement(ce.Fragment,null,ce.createElement(Ac,null,ce.createElement(Pc,{percent:n.thumbnailProgress.total>0?Math.round(n.thumbnailProgress.cached/n.thumbnailProgress.total*100):0})),ce.createElement($o,null,ce.createElement("span",null,"Variant thumbnails: caching to CDN\u2026",n.thumbnailProgress.currentName&&ce.createElement(ce.Fragment,null," ",n.thumbnailProgress.currentName)),ce.createElement("span",null,n.thumbnailProgress.cached," of"," ",n.thumbnailProgress.total," variants"))),n.thumbnailProgress&&n.thumbnailProgress.status==="complete"&&ce.createElement($o,null,ce.createElement("span",null,"Variant thumbnails: ",n.thumbnailProgress.cached," of"," ",n.thumbnailProgress.total," cached to CDN \u2713")),(!n.thumbnailProgress||n.thumbnailProgress.status==="pending"&&n.thumbnailProgress.cached===0)&&ce.createElement($o,null,ce.createElement("span",null,"Variant thumbnails: not yet cached",n.thumbnailProgress?.total?` (${n.thumbnailProgress.total} components)`:""," ","\u2014 click Reload to generate")),n.thumbnailProgress&&n.thumbnailProgress.status==="pending"&&n.thumbnailProgress.cached>0&&ce.createElement($o,null,ce.createElement("span",null,"Variant thumbnails: ",n.thumbnailProgress.cached," of"," ",n.thumbnailProgress.total," cached to CDN (partial)")),n.enrichmentProgress&&n.enrichmentProgress.status==="in-progress"&&ce.createElement(ce.Fragment,null,ce.createElement(Ac,null,ce.createElement(Pc,{percent:n.enrichmentProgress.total>0?Math.round(n.enrichmentProgress.enriched/n.enrichmentProgress.total*100):0})),ce.createElement($o,null,ce.createElement("span",null,"AI descriptions: generating\u2026",n.enrichmentProgress.currentName&&ce.createElement(ce.Fragment,null," ",n.enrichmentProgress.currentName)),ce.createElement("span",null,n.enrichmentProgress.enriched," of"," ",n.enrichmentProgress.total," component sets"))),n.enrichmentProgress&&n.enrichmentProgress.status==="complete"&&ce.createElement(ce.Fragment,null,ce.createElement($o,null,ce.createElement("span",null,"AI descriptions: ",n.enrichmentProgress.enriched," of"," ",n.enrichmentProgress.total," component sets \u2713"))),n.enrichmentProgress&&n.enrichmentProgress.status==="in-progress"&&t.showCosts&&n.enrichmentProgress.costUsd!=null&&n.enrichmentProgress.costUsd>0&&ce.createElement("div",{style:{marginTop:"6px"}},ce.createElement(vc,{inputTokens:n.enrichmentProgress.inputTokens||0,outputTokens:n.enrichmentProgress.outputTokens||0,costUsd:n.enrichmentProgress.costUsd,compact:!0})))};import bt,{useState as ts}from"react";import{styled as Vr}from"storybook/theming";ve();Ue();lt();var Ih=Vr.div({padding:"12px 16px"}),_4=Vr.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),a1=Vr.label(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),l1=Vr.button(({theme:e})=>({background:"none",border:"none",fontSize:"12px",color:le,cursor:"pointer",padding:0,"&:hover":{textDecoration:"underline"}})),$4=Vr.div({display:"flex",gap:"8px",alignItems:"center"}),U4=Vr.input(({theme:e})=>({flex:1,padding:"8px 12px",fontSize:"13px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.input.background,color:e.input.color,outline:"none",fontFamily:"monospace","&:focus":{borderColor:le,boxShadow:`0 0 0 1px ${le}`},"&::placeholder":{color:e.color.mediumlight,fontFamily:"inherit"}})),c1=Vr.span(({variant:e})=>({fontSize:"12px",color:e==="success"?"#16a34a":e==="error"?"#dc2626":"#6b7280",marginTop:"6px",display:"block",lineHeight:1.4})),j4=Vr.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"8px",lineHeight:1.5,"& a":{color:le,textDecoration:"none","&:hover":{textDecoration:"underline"}},"& ol":{margin:"4px 0 0 16px",padding:0},"& li":{marginBottom:"2px"}})),H4=Vr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"8px 12px",borderRadius:"6px",backgroundColor:"#16a34a10",border:"1px solid #16a34a30",fontSize:"12px",color:e.color.defaultText})),W4=Vr.button(({theme:e})=>({background:"none",border:"none",fontSize:"11px",color:"#dc2626",cursor:"pointer",marginLeft:"auto","&:hover":{textDecoration:"underline"}})),u1=({onConnected:e})=>{let{sessionToken:t}=Se(),[n,r]=ts(!1),[o,i]=ts(""),[s,a]=ts(!1),[u,c]=ts(null),[l,d]=ts(null),[g,p]=ts(!1),m=async()=>{if(!(!o.trim()||!t)){a(!0),c(null);try{let b=G(),I=await ne(`${b}/api/figma/pat`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({token:o.trim()})}),E=await I.json();if(!I.ok){c({type:"error",message:E.error||"Failed to save token"});return}d(E.figmaUser?.handle||E.figmaUser?.email||"Connected"),c({type:"success",message:`Connected as ${E.figmaUser?.handle||"Figma user"}`}),i(""),e?.()}catch{c({type:"error",message:"Failed to connect. Check your token and try again."})}finally{a(!1)}}};return l?bt.createElement(Ih,null,bt.createElement(a1,null,"Figma Personal Access Token"),bt.createElement(H4,null,bt.createElement("span",null,"\u2713 Connected as ",bt.createElement("strong",null,l)),bt.createElement(W4,{onClick:()=>{d(null),c(null)}},"Change token"))):n?bt.createElement(Ih,null,bt.createElement(_4,null,bt.createElement(a1,null,"Figma Personal Access Token"),bt.createElement(l1,{onClick:()=>p(!g)},g?"Hide instructions":"How to generate")),g&&bt.createElement(j4,null,bt.createElement("ol",null,bt.createElement("li",null,"Open ",bt.createElement("a",{href:"https://www.figma.com/settings",target:"_blank",rel:"noopener noreferrer"},"Figma Settings")),bt.createElement("li",null,"Click the ",bt.createElement("strong",null,"Security")," tab"),bt.createElement("li",null,"Scroll to ",bt.createElement("strong",null,"Personal access tokens")),bt.createElement("li",null,"Click ",bt.createElement("strong",null,"Generate new token")),bt.createElement("li",null,"Enable ",bt.createElement("strong",null,"File content: Read only")," under Scopes"),bt.createElement("li",null,"Copy the token and paste it below"))),bt.createElement($4,null,bt.createElement(U4,{type:"password",value:o,onChange:b=>i(b.target.value),placeholder:"figd_...",onKeyDown:b=>{b.key==="Enter"&&o.trim()&&m()}}),bt.createElement(on,{onClick:m,disabled:!o.trim()||s},s?"Verifying...":"Save & Verify")),u&&bt.createElement(c1,{variant:u.type},u.message),bt.createElement(c1,{variant:"info"},"Read-only access. Your token is stored securely and never shared.")):bt.createElement(Ih,null,bt.createElement(l1,{onClick:()=>r(!0)},"Or use a Personal Access Token \u2192"))};ve();Ue();lt();var G4=St.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},St.createElement("path",{d:"M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z",fill:"#1ABCFE"}),St.createElement("path",{d:"M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z",fill:"#0ACF83"}),St.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),St.createElement("path",{d:"M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z",fill:"#F24E1E"}),St.createElement("path",{d:"M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z",fill:"#A259FF"})),Fh=Br.div(({theme:e})=>({border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",marginBottom:"16px",backgroundColor:e.background.content})),q4=Br.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"10px 16px",backgroundColor:e.background.hoverable,borderBottom:`1px solid ${e.appBorderColor}`})),Y4=Br.div({width:"16px",height:"16px",display:"flex",alignItems:"center","& svg":{width:"14px",height:"14px"}}),K4=Br.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,flex:1})),Eh=Br.div({"& > *":{border:"none",borderRadius:0,marginBottom:0,borderBottom:"1px solid rgba(0,0,0,0.06)","&:last-child":{borderBottom:"none"}}}),X4=Br.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.base==="dark"?"rgba(0, 204, 102, 0.2)":"rgba(0, 204, 102, 0.1)",border:`1px solid ${e.color.positive}`,borderRadius:"8px",margin:"12px 16px",display:"flex",alignItems:"center",justifyContent:"space-between"})),Q4=Br.div({display:"flex",alignItems:"center",gap:"8px"}),J4=Br(En)(({theme:e})=>({backgroundColor:`${e.base==="dark"?"rgba(197, 48, 48, 0.15)":"rgba(254, 178, 178, 0.3)"} !important`,color:`${e.color.negative} !important`,border:`1px solid ${e.color.negative} !important`,padding:"6px 12px !important",fontSize:"12px !important"})),Z4=Br.div({padding:"20px 16px",display:"flex",flexDirection:"column",gap:"12px"}),moe=Br.button({display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",padding:"8px 16px",backgroundColor:"#A259FF",color:"#fff",border:"none",borderRadius:"6px",fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{backgroundColor:"#8a3de8"}}),e5=Br.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",fontSize:"12px",color:e.color.mediumdark,"&::before, &::after":{content:'""',flex:1,height:"1px",backgroundColor:e.appBorderColor}})),d1=({hideHeader:e=!1})=>{let{sessionToken:t}=Se(),[n,r]=Lc(!1),[o,i]=Lc(()=>{try{let p=sessionStorage.getItem("uicopilot_figma_connection");if(p){let{connected:m,ts:b}=JSON.parse(p);if(Date.now()-b<300*1e3)return m}}catch{}return null}),[s,a]=Lc(!1),[u,c]=Lc(!1);V4(()=>{if(!t)return;let p=G();ne(`${p}/api/figma/connection-status`,{headers:{Authorization:`Bearer ${t}`}}).then(m=>m.json()).then(m=>{let b=!!m.connected;a(!!m.expired),i(b);try{sessionStorage.setItem("uicopilot_figma_connection",JSON.stringify({connected:b,ts:Date.now()}))}catch{}}).catch(()=>i(!1))},[t]);let l=p1(()=>{let p=G(),m=`${p}/api/auth/figma/login?addon=true`;window.open(m,"figma-oauth","width=600,height=700,left=200,top=100");let b=setInterval(async()=>{try{(await(await ne(`${p}/api/figma/connection-status`,{headers:t?{Authorization:`Bearer ${t}`}:{}})).json()).connected&&(clearInterval(b),i(!0))}catch{}},2e3);setTimeout(()=>clearInterval(b),300*1e3)},[t]),d=p1(async()=>{try{r(!0);let p=G(),m=await ne(`${p}/api/figma/disconnect`,{method:"POST",headers:{Authorization:`Bearer ${t}`}});if(m.ok||m.status===404){i(!1);try{sessionStorage.removeItem("uicopilot_figma_connection")}catch{}}}catch{}finally{r(!1)}},[t]),g=e?null:St.createElement(q4,null,St.createElement(Y4,null,G4),St.createElement(K4,null,"Figma Integration"));return o===null?St.createElement(Fh,null,g,St.createElement(Eh,null,St.createElement("div",{style:{padding:"16px",fontSize:"13px",color:"#9ca3af"}},"Checking Figma connection..."))):o===!1?St.createElement(Fh,null,g,St.createElement(Eh,null,St.createElement(Z4,null,s&&St.createElement("div",{style:{padding:"10px 12px",backgroundColor:"rgba(245, 158, 11, 0.1)",border:"1px solid rgba(245, 158, 11, 0.4)",borderRadius:"6px",fontSize:"12px",color:"#92400e"}},"\u26A0\uFE0F Your Figma access has expired. Please reconnect."),St.createElement(on,{onClick:l,style:{width:"100%"}},s?"Reconnect Figma":"Connect with Figma"),St.createElement(e5,null,"or"),St.createElement(u1,{onConnected:()=>i(!0)})))):St.createElement(Fh,null,g,St.createElement(X4,null,St.createElement(Q4,null,St.createElement("span",{style:{fontSize:"18px"}},"\u2713"),St.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"#00cc66"}},"Connected to Figma")),St.createElement(J4,{onClick:()=>c(!0),disabled:n},n?"Disconnecting...":"Disconnect")),St.createElement(Hr,{isOpen:u,title:"Disconnect Figma",message:"Your mappings, cache, and review history will be preserved. You will need to re-authenticate to make new Figma API calls.",confirmLabel:"Disconnect",variant:"danger",onConfirm:()=>{c(!1),d()},onCancel:()=>c(!1)}),St.createElement(Eh,null,St.createElement(Rk,null),St.createElement(r1,null),St.createElement(s1,null)))};ve();hn();var r5=fr.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.4)",zIndex:1e3,display:"flex",justifyContent:"center",alignItems:"flex-start",paddingTop:"32px"}),o5=fr.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"14px",boxShadow:"0 16px 48px rgba(0, 0, 0, 0.22)",width:"520px",maxWidth:"94%",maxHeight:"calc(100vh - 64px)",overflow:"auto",position:"relative"})),i5=fr.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px 12px",position:"sticky",top:0,backgroundColor:e.background.content,borderRadius:"14px 14px 0 0",zIndex:1})),s5=fr.h2(({theme:e})=>({margin:0,fontSize:"16px",fontWeight:600,color:e.color.defaultText})),a5=fr(An)({fontSize:"18px",padding:"2px 8px",lineHeight:1,background:"transparent",border:"none"}),l5=fr.div({display:"flex",flexDirection:"column",gap:"16px",padding:"0 20px 20px"}),g1=fr.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"14px",padding:"16px",borderRadius:"12px",border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),f1=fr.div({display:"flex",alignItems:"center",gap:"10px"}),m1=fr.h3(({theme:e})=>({margin:0,fontSize:"14px",fontWeight:600,color:e.color.defaultText,flex:1})),c5=fr.div({width:"28px",height:"28px",borderRadius:"7px",backgroundColor:le,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:700,letterSpacing:"0.3px",flexShrink:0}),u5=fr.div({width:"22px",height:"22px",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center","& svg":{width:"22px",height:"22px"}}),h1=fr.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"12px",fontSize:"12px","& > div, & > section":{padding:0},'[class*="AuthPanelContainer"], [class*="SectionContainer"]':{padding:0},"h3, h4":{fontSize:"12px",margin:"0 0 6px 0"},label:{fontSize:"12px"},"input, select":{fontSize:"12px",padding:"6px 10px",height:"auto"},button:{fontSize:"11px"},p:{fontSize:"11px",margin:"2px 0"}})),x1=({onClose:e})=>{let{isConnected:t}=Se(),{selectedProjectId:n}=Xe(),r=n5(t);return t5(()=>{!r.current&&t&&n&&e(),r.current=t},[t,n,e]),Bt.createElement(r5,{onClick:e},Bt.createElement(o5,{onClick:o=>o.stopPropagation()},Bt.createElement(i5,null,Bt.createElement(s5,null,"Settings"),Bt.createElement(a5,{onClick:e,title:"Close settings"},"\xD7")),Bt.createElement(l5,null,Bt.createElement(g1,null,Bt.createElement(f1,null,Bt.createElement(c5,null,"UI"),Bt.createElement(m1,null,Et.NAME)),Bt.createElement(h1,null,Bt.createElement(Ak,{onConnect:e}),t&&Bt.createElement(Bk,null))),t&&n&&Bt.createElement(g1,null,Bt.createElement(f1,null,Bt.createElement(u5,null,Bt.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Bt.createElement("path",{d:"M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z",fill:"#1ABCFE"}),Bt.createElement("path",{d:"M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z",fill:"#0ACF83"}),Bt.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),Bt.createElement("path",{d:"M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z",fill:"#F24E1E"}),Bt.createElement("path",{d:"M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z",fill:"#A259FF"}))),Bt.createElement(m1,null,"Figma Integration")),Bt.createElement(h1,null,Bt.createElement(d1,{hideHeader:!0}))))))};import ut,{useEffect as E1,useMemo as N5,useState as O5,useRef as _5}from"react";import{styled as Mn,keyframes as $5}from"storybook/theming";ve();hn();hn();function Ah(e){let t=e.complianceScore??0;if(!e.issues||e.issues.length===0)return{score:t,band:e.issues?"A":void 0};let n=Vl(e.issues.map(r=>({...r,dismissed:r.dismissed??!1})));return{score:Math.min(t,io[n]),band:n}}ve();import Qt,{useState as p5}from"react";import{styled as Vn}from"storybook/theming";var go=[{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",provider:"anthropic",description:"Latest Claude Sonnet \u2014 best balance of speed and quality"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Current default \u2014 proven for design comparison"},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4",provider:"anthropic",description:"Previous generation Sonnet"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet",provider:"anthropic",description:"Best balance of speed and quality"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",provider:"anthropic",description:"Fastest, most affordable"},{id:"claude-3-opus-20240229",name:"Claude 3 Opus",provider:"anthropic",description:"Most capable Claude 3 model"},{id:"gpt-5.2",name:"GPT-5.2 Thinking",provider:"openai",description:"47% cheaper, reasoning"},{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Instant",provider:"openai",description:"86% cheaper (default)"},{id:"gpt-4o",name:"GPT-4o",provider:"openai",description:"GPT-4 multimodal flagship"},{id:"gpt-4o-mini",name:"GPT-4o Mini",provider:"openai",description:"GPT-4 affordable model"},{id:"o1-preview",name:"o1 Preview",provider:"openai",description:"Reasoning model (slower, advanced)"},{id:"o1-mini",name:"o1 Mini",provider:"openai",description:"Faster reasoning model"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",provider:"google",description:"Fast & cheap, great vision"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",provider:"google",description:"Best Gemini quality"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",provider:"google",description:"Previous gen, very fast"}];var d5=Vn.div({display:"flex",alignItems:"center",gap:"8px",width:"100%"}),g5=Vn.div({display:"inline-flex",flexWrap:"nowrap",gap:"4px",alignItems:"center"}),f5=Vn.div(({theme:e,disabled:t,provider:n})=>{let r={anthropic:{background:"#D4A574",text:"#ffffff"},openai:{background:e.color.positive||"#10b981",text:"#ffffff"},google:{background:"#4285F4",text:"#ffffff"}},o=n?r[n]:r.anthropic;return{display:"inline-flex",alignItems:"center",gap:"4px",padding:"4px 8px",backgroundColor:o.background,color:o.text,fontSize:"11px",fontWeight:500,borderRadius:"12px",opacity:t?.6:1,cursor:t?"not-allowed":"default",transition:"opacity 0.15s"}}),m5=Vn.button(({theme:e,disabled:t})=>({background:"none",border:"none",color:e.color.inverseText,fontSize:"12px",cursor:t?"not-allowed":"pointer",padding:"0 2px",lineHeight:1,opacity:t?.5:.8,transition:"opacity 0.15s","&:hover":{opacity:t?.5:1}})),h5=Vn.div({position:"relative",display:"inline-block"}),x5=Vn.button(({disabled:e,isOpen:t,theme:n})=>({padding:`${n.layoutMargin*.8}px 32px ${n.layoutMargin*.8}px ${n.layoutMargin}px`,fontSize:n.typography.size.s2,fontFamily:n.typography.fonts.base,fontWeight:500,color:n.color.defaultText,backgroundColor:n.input.background,border:`1px solid ${t?n.color.secondary:n.appBorderColor}`,borderRadius:n.appBorderRadius,cursor:e?"not-allowed":"pointer",opacity:e?.6:1,whiteSpace:"nowrap",display:"flex",gap:`${n.layoutMargin*.8}px`,alignItems:"center",justifyContent:"space-between",minWidth:"200px",transition:"border-color 0.15s, box-shadow 0.15s",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 10px center",backgroundSize:"12px","&:hover":{borderColor:e?n.appBorderColor:n.color.mediumdark}})),y5=Vn.div(({theme:e})=>({position:"absolute",top:"100%",left:0,right:0,marginTop:"4px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,boxShadow:e.base==="dark"?"0 4px 12px rgba(0, 0, 0, 0.3)":"0 4px 12px rgba(0, 0, 0, 0.1)",zIndex:1e3,maxHeight:"280px",overflowY:"auto"})),Ph=Vn.div(({theme:e})=>({borderBottom:`1px solid ${e.appBorderColor}`,"&:last-child":{borderBottom:"none"}})),Lh=Vn.div(({theme:e})=>({padding:"8px 12px",fontSize:"10px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:e.background.app})),b5=Vn.div(({theme:e,disabled:t})=>({padding:"8px 12px",fontSize:"12px",cursor:t?"not-allowed":"pointer",opacity:t?.5:1,display:"flex",alignItems:"center",gap:"8px",transition:"background-color 0.15s",color:e.color.defaultText,"&:hover":{backgroundColor:t?"transparent":e.background.hoverable}})),S5=Vn.input({cursor:"pointer",flexShrink:0,"&:disabled":{cursor:"not-allowed"}}),w5=Vn.div({flex:1,minWidth:0}),v5=Vn.div({fontSize:"12px",fontWeight:500,marginBottom:"2px"}),k5=Vn.div(({theme:e})=>({fontSize:"10px",color:e.textMutedColor,lineHeight:"1.2"})),C5=5,y1=()=>{let{selectedModels:e,toggleModel:t,isReviewing:n}=ue(),[r,o]=p5(!1),i=go.filter(p=>p.provider==="anthropic"&&!e.includes(p.id)),s=go.filter(p=>p.provider==="openai"&&!e.includes(p.id)),a=go.filter(p=>p.provider==="google"&&!e.includes(p.id)),u=go.filter(p=>e.includes(p.id)),c=e.length<C5,l=(p,m)=>{m.stopPropagation(),e.length>1&&!n&&t(p)},d=p=>{let m=e.includes(p);m&&e.length===1||!m&&!c||n||(t(p),o(!1))},g=p=>{let m=e.includes(p.id),b=m&&e.length===1,I=n||b||!m&&!c;return Qt.createElement(b5,{key:p.id,disabled:I,onClick:()=>d(p.id)},Qt.createElement(S5,{type:"checkbox",checked:m,disabled:I,onChange:()=>{},onClick:E=>E.stopPropagation()}),Qt.createElement(w5,null,Qt.createElement(v5,null,p.name),p.description&&Qt.createElement(k5,null,p.description)))};return Qt.createElement(d5,null,Qt.createElement(h5,null,Qt.createElement(x5,{disabled:n,isOpen:r,onClick:()=>o(!r)},Qt.createElement("span",null,"Select model"),Qt.createElement("span",null,r?"\u25B2":"\u25BC")),r&&Qt.createElement(y5,null,Qt.createElement(Ph,null,Qt.createElement(Lh,null,"Anthropic"),i.map(g)),Qt.createElement(Ph,null,Qt.createElement(Lh,null,"OpenAI"),s.map(g)),Qt.createElement(Ph,null,Qt.createElement(Lh,null,"Google"),a.map(g)))),Qt.createElement(g5,null,u.map(p=>Qt.createElement(f5,{key:p.id,disabled:n,provider:p.provider},p.name,e.length>1&&Qt.createElement(m5,{disabled:n,onClick:m=>l(p.id,m),title:"Remove model"},"\xD7")))))};hn();import De,{useState as T5,useEffect as I5}from"react";import{styled as rn,keyframes as ns}from"storybook/theming";ve();var F5=ns`
45
45
  0%, 100% {
46
46
  opacity: 1;
47
47
  transform: scale(1);
@@ -50,20 +50,20 @@ ${at}`).join(`
50
50
  opacity: 0.4;
51
51
  transform: scale(0.8);
52
52
  }
53
- `,m5=ts`
53
+ `,E5=ns`
54
54
  0% { transform: rotate(0deg); }
55
55
  100% { transform: rotate(360deg); }
56
- `,c1=ts`
56
+ `,w1=ns`
57
57
  0% { opacity: 0; transform: translateY(2px); }
58
58
  100% { opacity: 1; transform: translateY(0); }
59
- `,h5=ts`
59
+ `,A5=ns`
60
60
  0%, 100% {
61
61
  opacity: 1;
62
62
  }
63
63
  50% {
64
64
  opacity: 0.6;
65
65
  }
66
- `,x5=ts`
66
+ `,P5=ns`
67
67
  0% {
68
68
  transform: translateY(0) rotate(0deg) scale(1);
69
69
  opacity: 1;
@@ -75,59 +75,59 @@ ${at}`).join(`
75
75
  transform: translateY(60px) rotate(720deg) scale(0.5);
76
76
  opacity: 0;
77
77
  }
78
- `;var Poe=sn.div({display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap"}),Ch=sn.div({display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"}),Loe=sn.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.6}px`,padding:`${e.layoutMargin*.4}px ${e.layoutMargin}px`,borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable||"#f3f4f6",border:`1px solid ${e.appBorderColor}`,fontSize:e.typography.size.s1,fontWeight:e.typography.weight.regular,color:e.textMutedColor,animation:`${c1} 0.3s ease-out`})),y5=ts`
78
+ `;var Goe=rn.div({display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap"}),Mh=rn.div({display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"}),qoe=rn.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.6}px`,padding:`${e.layoutMargin*.4}px ${e.layoutMargin}px`,borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable||"#f3f4f6",border:`1px solid ${e.appBorderColor}`,fontSize:e.typography.size.s1,fontWeight:e.typography.weight.regular,color:e.textMutedColor,animation:`${w1} 0.3s ease-out`})),L5=ns`
79
79
  from { transform: rotate(0deg); }
80
80
  to { transform: rotate(360deg); }
81
- `,Moe=sn.div(({theme:e})=>({width:"12px",height:"12px",borderRadius:"50%",border:"2px solid transparent",borderTopColor:e.textMutedColor,animation:`${y5} 0.8s linear infinite`,flexShrink:0})),a1=sn.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:`${e.layoutMargin*.5}px`,padding:`${e.layoutMargin*.3}px ${e.layoutMargin*.9}px`,borderRadius:e.appBorderRadius*2,backgroundColor:e.base==="dark"?"rgba(220, 38, 38, 0.18)":"#fee2e2",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.negative||"#dc2626",whiteSpace:"nowrap"})),b5=sn.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:`${e.layoutMargin*.5}px`,padding:`${e.layoutMargin*.3}px ${e.layoutMargin*.9}px`,borderRadius:e.appBorderRadius*2,backgroundColor:e.base==="dark"?"rgba(22, 163, 74, 0.18)":"#dcfce7",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.positive||"#16a34a",whiteSpace:"nowrap",position:"relative",overflow:"visible"})),Boe=sn.span(({delay:e,left:t,color:n,size:r})=>({position:"absolute",top:"-10px",left:`${t}%`,width:`${r}px`,height:`${r}px`,backgroundColor:n,borderRadius:r>6?"50%":"2px",animation:`${x5} 2.5s ease-out ${e}s forwards`,pointerEvents:"none",zIndex:1e3}));var pa=sn.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"14px",fontWeight:300})),da=sn.span(({theme:e,color:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"12px",fontWeight:500,color:t??e.color.mediumdark,whiteSpace:"nowrap"})),l1=sn.span(({theme:e,color:t})=>({fontSize:"12px",color:t??e.color.mediumdark})),ga=sn.span(({color:e})=>({fontWeight:700,color:e})),S5=sn.div(({tint:e,theme:t})=>({display:"inline-flex",alignItems:"center",gap:`${t.layoutMargin*.6}px`,padding:`${t.layoutMargin*.3}px ${t.layoutMargin}px`,borderRadius:t.appBorderRadius*2,backgroundColor:`${e}1a`,border:`1px solid ${e}33`,"& .score-label":{fontSize:t.typography.size.s1,color:t.textMutedColor},"& .score-value":{fontFamily:t.typography.fonts.mono,fontSize:t.typography.size.s2,fontWeight:t.typography.weight.bold,color:e,lineHeight:1},"& .score-dot":{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:e}})),Doe=sn.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"12px"})),Roe=sn.span(({color:e=ae})=>({display:"inline-block",fontSize:"12px",color:e,animation:`${f5} 1.2s ease-in-out infinite`,marginRight:"4px"})),zoe=sn.span(({theme:e,variant:t="muted"})=>({fontSize:"12px",fontWeight:700,color:(()=>{switch(t){case"issues":return ae;case"score-high":return"#16a34a";case"score-medium":return"#ca8a04";case"score-low":return"#dc2626";case"cost":return"#7c3aed";case"tokens":return e.color.mediumdark;case"analyzing":return ae;case"verifying":return"#7c3aed";default:return e.color.mediumdark}})(),whiteSpace:"nowrap",...t==="analyzing"||t==="verifying"?{animation:`${h5} 1.5s ease-in-out infinite`}:{}})),Noe=sn.span(({theme:e})=>({fontSize:"12px",fontWeight:400,color:e.color.mediumdark})),Ooe=sn.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,fontWeight:400})),w5=sn.span({display:"inline-flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",animation:`${m5} 1.2s linear infinite`,flexShrink:0}),v5=({color:e=ae})=>De.createElement(w5,null,De.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none"},Array.from({length:8}).map((t,n)=>{let o=n*360/8*Math.PI/180,i=12+Math.cos(o)*4,s=12+Math.sin(o)*4,a=12+Math.cos(o)*10,u=12+Math.sin(o)*10;return De.createElement("line",{key:n,x1:i,y1:s,x2:a,y2:u,stroke:e,strokeWidth:2,strokeLinecap:"round",opacity:.3+n/8*.7})}))),_oe=sn.span(({color:e="#6b7280"})=>({fontSize:"12px",fontWeight:500,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',color:e,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",animation:`${c1} 0.3s ease-out`}));function k5(e){let[t,n]=d5(0);return g5(()=>{if(!e){n(0);return}let r=setInterval(()=>{n(o=>o+1)},1e3);return()=>clearInterval(r)},[e]),t}var u1=({isReviewing:e,isValidating:t,streamingStatus:n,issueCount:r=0,score:o,visualSimilarity:i,costUsd:s,inputTokens:a,outputTokens:u,showTimer:c=!0,cacheCreationTokens:l,cacheReadTokens:d,durationSeconds:g})=>{let p=k5(e||t),{featureFlags:m}=ce(),b=m.showCosts,F=3.65,E=L=>L<.01?`$${L.toFixed(4)}`:L<.1?`$${L.toFixed(3)}`:`$${L.toFixed(2)}`,v=L=>{let N=L*F;return N<.01?`\u20AA${N.toFixed(4)}`:N<.1?`\u20AA${N.toFixed(3)}`:`\u20AA${N.toFixed(2)}`},D=L=>L>=1e3?`${(L/1e3).toFixed(1)}K`:L.toString(),O=L=>L>=80?"score-high":L>=50?"score-medium":"score-low",$=L=>L>=80?"high":L>=50?"medium":"low";if(e)return De.createElement(Ch,null,De.createElement("span",{style:{fontSize:"12px",color:"#9ca3af"}},p,"s \xB7 Esc to stop"));if(t)return De.createElement(Ch,null,De.createElement(a1,null,De.createElement("span",null,"\u2298"),r," issue",r!==1?"s":""),De.createElement(pa,null,"|"),De.createElement(da,null,De.createElement(v5,{color:"#7c3aed"}),De.createElement(ga,{color:"#7c3aed"},"Verifying...")),c&&De.createElement(De.Fragment,null,De.createElement(pa,null,"|"),De.createElement(da,null,De.createElement("span",{style:{color:"#6b7280"}},p,"s"))));if(r>0||o!==void 0){let L=(a||0)+(u||0),N=(d||0)>0,x=N&&a?Math.round(d/a*100):0,S=Math.max(o??0,i??0),w=f=>f>=80?"#16a34a":f>=50?"#ca8a04":"#dc2626",P=f=>f>=100?"\u25CF":f>=50?"\u25D0":"\u25CB";return De.createElement(Ch,null,r===0&&(o===void 0||o>=100)?De.createElement(b5,null,De.createElement("span",null,"\u2713"),"Perfect!"):De.createElement(a1,null,De.createElement("span",null,"\u2298"),r," issue",r!==1?"s":""),De.createElement(S5,{tint:w(S),title:`MQM compliance: ${o??0}% | Visual similarity: ${i??0}%`},De.createElement("span",{className:"score-dot"}),De.createElement("span",{className:"score-label"},"Score"),De.createElement("span",{className:"score-value"},S)),b&&s!==void 0&&s>0&&De.createElement(De.Fragment,null,De.createElement(pa,null,"|"),De.createElement(da,null,De.createElement(ga,{color:"#16a34a"},E(s)),De.createElement("span",{style:{color:"#6b7280"}},"/"),De.createElement(ga,{color:"#16a34a"},v(s)))),b&&L>0&&De.createElement(De.Fragment,null,De.createElement(pa,null,"|"),De.createElement(da,{title:`Input: ${a?.toLocaleString()||0} \xB7 Output: ${u?.toLocaleString()||0}${N?` \xB7 Cached: ${d?.toLocaleString()}`:""}`},De.createElement(l1,{color:"#7c3aed"},"#"),De.createElement(ga,{color:"#7c3aed"},D(L)),De.createElement("span",{style:{color:"#6b7280"}},"tokens"),N&&De.createElement("span",{style:{color:"#16a34a",marginLeft:"4px"}},"\u26A1",x,"%"))),g!==void 0&&g>0&&De.createElement(De.Fragment,null,De.createElement(pa,null,"|"),De.createElement(da,null,De.createElement(l1,{color:"#6b7280"},"\u23F1"),De.createElement(ga,{color:"#6b7280"},g,"s"))))}return null};var E5=Bn.div({display:"flex",flexDirection:"column",gap:"12px",marginBottom:"16px"}),Koe=Bn.div({display:"flex",gap:"8px",alignItems:"center"}),A5=F5({from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}),P5=Bn.span({display:"inline-block",width:"16px",height:"16px",borderRadius:"50%",border:"2px solid rgba(255, 255, 255, 0.35)",borderTopColor:"#ffffff",animation:`${A5} 0.8s linear infinite`,marginRight:"8px",verticalAlign:"middle"}),L5=Bn.span({display:"inline-flex",alignItems:"center",marginRight:"8px","& svg":{width:"16px",height:"16px"}}),M5=Bn.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin}px`,padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.2}px`,borderRadius:e.appBorderRadius*2,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content,boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)",flexWrap:"wrap"})),B5=Bn.button(({theme:e,variant:t="orange",disabled:n})=>{let r={green:n?e.textMutedColor:e.color.positive||"#10b981",purple:n?e.textMutedColor:"#7c3aed",yellow:n?e.textMutedColor:"#c4b5fd",orange:n?e.textMutedColor:qa},o=t==="purple"||t==="yellow"?"124, 58, 237":"255, 107, 53";return{width:"auto",backgroundColor:r[t],color:e.color.inverseText,border:"none",padding:`${e.layoutMargin*.7}px ${e.layoutMargin*1.4}px`,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,borderRadius:e.appBorderRadius,cursor:n?"not-allowed":"pointer",opacity:n?.6:1,whiteSpace:"nowrap",transition:"all 0.2s",boxShadow:n?"none":`0 2px 6px rgba(${o}, 0.3)`,flexShrink:0,"&:hover":{opacity:n?.6:.9,transform:n?"none":"translateY(-1px)",boxShadow:n?"none":`0 4px 10px rgba(${o}, 0.4)`}}}),D5=Bn.div(({theme:e})=>({marginTop:"8px",fontSize:"12px",color:e.color.warning||"#f59e0b",display:"flex",alignItems:"center",gap:"6px"})),R5=Bn.div({marginLeft:"auto",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",minWidth:0}),z5=Bn(wn)({width:"auto",minWidth:"180px",maxWidth:"260px"}),p1=Bn.span(({theme:e,variant:t})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,padding:"3px 8px",borderRadius:"10px",whiteSpace:"nowrap",color:t==="latest"?e.color.positive:e.color.mediumdark,backgroundColor:t==="latest"?`${e.color.positive}1a`:e.background.hoverable})),N5=Bn.div({display:"flex",gap:"16px",alignItems:"center",marginTop:"4px"}),d1=Bn.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",fontSize:"12px",color:e.color.defaultText,cursor:"pointer",userSelect:"none"})),g1=Bn.div(({theme:e,checked:t})=>({width:"32px",height:"18px",borderRadius:"9px",backgroundColor:t?qa:e.appBorderColor||"#d1d5db",position:"relative",transition:"background-color 0.2s ease",flexShrink:0})),f1=Bn.div(({checked:e})=>({width:"14px",height:"14px",borderRadius:"50%",backgroundColor:"#fff",position:"absolute",top:"2px",left:e?"16px":"2px",transition:"left 0.2s ease",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.2)"})),m1=Bn.input({position:"absolute",opacity:0,width:0,height:0}),O5=()=>{let[e,t]=T5(0),n=I5();h1(()=>(n.current=setInterval(()=>t(s=>s+1),1e3),()=>clearInterval(n.current)),[]);let r=Math.floor(e/60),o=e%60,i=`${r}:${o.toString().padStart(2,"0")}`;return pt.createElement("span",{style:{fontFamily:"ui-monospace, monospace",fontSize:"12px",opacity:.8,fontVariantNumeric:"tabular-nums"}},i)},Th=()=>{let{sessionToken:e}=Gs(),{usageData:t}=Se(),{selectedProjectId:n}=so(),{currentMapping:r,hasMapping:o}=ii(),{loadingMapping:i,currentStoryId:s}=nt(),{startReview:a,cancelReview:u,isReviewing:c}=vm(),{isLoadingScreenshots:l}=ri(),{storybookImageUrl:d,figmaImageUrl:g,currentReviewId:p,reviewHistory:m,setReviewDetailTab:b,setReviewResults:F,setFigmaImageUrl:E,setStorybookImageUrl:v,setFullPrompt:D,setFullResponse:O,includeTextComparison:$,setIncludeTextComparison:L,usePromptCache:N,setUsePromptCache:x,isValidating:S,validationUsage:w,isGenerating:P,isApplying:f,streamingStatus:k,featureFlags:T,userRole:h,roleOverride:I,isReviewing:A}=ce(),M=t?.reviewCredits??t?.creditBalance??0,z=m.find(xe=>xe.id===p),R=(z?.issues||[]).filter(xe=>!xe.dismissed).length,W=z?.complianceScore,B=z?.visualSimilarity,ie=(z?.costUsd||0)+(w?.costUsd||0),Y=(z?.inputTokens||0)+(w?.inputTokens||0),se=(z?.outputTokens||0)+(w?.outputTokens||0),me=C5(()=>{let xe=s?m.filter(gt=>gt.storyId===s):m,St=xe.filter(gt=>!gt.parentReviewId).sort((gt,Ge)=>new Date(Ge.createdAt).getTime()-new Date(gt.createdAt).getTime()),fe=xe.filter(gt=>gt.parentReviewId),ne=[];for(let gt of St){ne.push(gt);let Ge=fe.filter(_=>_.parentReviewId===gt.id).sort((_,j)=>(_.iterationNumber||0)-(j.iterationNumber||0));ne.push(...Ge)}let Ke=fe.filter(gt=>!St.some(Ge=>Ge.id===gt.parentReviewId));return ne.push(...Ke),ne},[m,s]);h1(()=>{if(!c)return;let xe=St=>{St.key==="Escape"&&(St.preventDefault(),u())};return window.addEventListener("keydown",xe),()=>window.removeEventListener("keydown",xe)},[c,u]);let Fe=o&&r?.figmaNodeId,et=P||f,ee=M>0,Ee=!!(e&&n&&!c&&!l&&!et&&s&&d&&Fe&&g&&ee),Te=async(xe=!1)=>{if(!s){console.error("[ReviewActions] No story selected");return}try{b("chat"),await a({isIteration:xe,parentReviewId:xe?p:void 0})}catch(St){console.error("[ReviewActions] Review error:",St)}},ue=()=>Te(!1),Be=xe=>{let St=xe.target.value;if(St){let fe=m.find(ne=>ne.id===St);fe&&(F({id:fe.id,componentId:fe.componentId,storyId:fe.storyId,modelId:fe.modelId,complianceScore:fe.complianceScore,issuesCount:fe.issuesCount,issues:fe.issues,createdAt:new Date(fe.createdAt),visualSimilarity:fe.visualSimilarity,timestamp:new Date(fe.createdAt).toISOString(),costUsd:fe.costUsd,inputTokens:fe.inputTokens,outputTokens:fe.outputTokens,cacheCreationTokens:fe.cacheCreationTokens,cacheReadTokens:fe.cacheReadTokens,reviewDurationMs:fe.reviewDurationMs}),fe.figmaImageData&&E(fe.figmaImageData),fe.storybookImageData&&v(fe.storybookImageData),(I??h)==="admin"&&(D(fe.aiPrompt||""),O(fe.aiResponse||"")),b("issues"))}},ge=xe=>{let St=new Date(xe),ne=new Date().getTime()-St.getTime(),Ke=Math.floor(ne/6e4),gt=Math.floor(ne/36e5),Ge=Math.floor(ne/864e5);return Ke<1?"Just now":Ke<60?`${Ke}m ago`:gt<24?`${gt}h ago`:Ge<7?`${Ge}d ago`:St.toLocaleDateString()},tt=xe=>xe?xe.includes("haiku")?"Haiku":xe.includes("sonnet")?"Sonnet":xe.includes("opus")?"Opus":xe.includes("gpt-4o-mini")?"GPT-4o mini":xe.includes("gpt-4o")?"GPT-4o":xe.includes("gpt-4")?"GPT-4":xe.includes("o3")?"o3":xe.includes("o1")?"o1":xe.split("-")[0]||"":"",xt=xe=>{let St=xe.split("--"),fe=St[St.length-1]||xe;return fe.charAt(0).toUpperCase()+fe.slice(1)},Sn=(I??h)==="admin";return pt.createElement("div",null,pt.createElement(E5,null,T.enableModelSelection&&pt.createElement(s1,null),Sn&&pt.createElement(N5,null,pt.createElement(d1,{title:"Compare text content between Figma design and Storybook component"},pt.createElement(m1,{type:"checkbox",checked:$,onChange:xe=>L(xe.target.checked)}),pt.createElement(g1,{checked:$},pt.createElement(f1,{checked:$})),"Compare text"),T.showCosts&&pt.createElement(d1,{title:"Cache prompt for 5 min to reduce costs on repeat reviews (dev optimization)"},pt.createElement(m1,{type:"checkbox",checked:N,onChange:xe=>x(xe.target.checked)}),pt.createElement(g1,{checked:N},pt.createElement(f1,{checked:N})),"Cache prompt")),pt.createElement(M5,null,pt.createElement(B5,{variant:c?"yellow":"purple",disabled:c?!1:!Ee,onClick:c?u:ue,title:c?"Click to stop review":e?n?s?Fe?l?"Loading screenshots...":et?"Wait for fixes to complete...":d?g?ee?"Review this component implementation":"No credits \u2014 click \u26A1 in the toolbar to get more":"Waiting for Figma design image...":"Waiting for Storybook screenshot...":'Figma mapping required - use "Map to Figma" in the Review tab':"No story selected":"Please select a project first":`Please connect to ${Pt.NAME} first`},c?pt.createElement(pt.Fragment,null,pt.createElement(P5,null),"Reviewing",pt.createElement(O5,null)):pt.createElement(pt.Fragment,null,pt.createElement(L5,null,pt.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},pt.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),pt.createElement("circle",{cx:"12",cy:"12",r:"3"}))),"Review")),A?null:S||z?pt.createElement(u1,{isReviewing:!1,isValidating:S,streamingStatus:k,issueCount:R,score:W,visualSimilarity:B,costUsd:ie||z?.costUsd,inputTokens:Y||z?.inputTokens,outputTokens:se||z?.outputTokens,cacheCreationTokens:z?.cacheCreationTokens,cacheReadTokens:z?.cacheReadTokens,durationSeconds:z?.reviewDurationMs?Math.round(z.reviewDurationMs/1e3):void 0}):null,me.length>0&&pt.createElement(R5,null,p&&(p===me[0]?.id?pt.createElement(p1,{variant:"latest",title:"You're viewing the most recent review for this story"},"Latest"):pt.createElement(p1,{variant:"older",title:"You're viewing an older review \u2014 pick the top entry to see the latest"},"Older review")),pt.createElement(z5,{value:p||"",onChange:Be,title:"Review history"},pt.createElement("option",{value:""},"Select a review..."),me.map(xe=>{let St=!!xe.parentReviewId,fe=St?" \u21B3 ":"\u25CF ",ne=St&&xe.iterationNumber?`Iter ${xe.iterationNumber} - `:"",Ke=xe.issuesCount??xe.issues?.length??0,gt=xe.complianceScore??"--",Ge=tt(xe.modelId);return pt.createElement("option",{key:xe.id,value:xe.id},fe,ne,ge(xe.createdAt)," - ",Ke," issues (",gt,"%)",T.showCosts&&Ge?` \xB7 ${Ge}`:"",!s&&xe.storyId?` \xB7 ${xt(xe.storyId)}`:"")}))))),!Fe&&!i&&pt.createElement(D5,null,'\u26A0\uFE0F Figma mapping required. Use "Map to Figma" button to link this story to a Figma frame before reviewing.'))};import Joe,{useState as Zoe}from"react";import{styled as x1}from"storybook/theming";var nie=x1.div(({theme:e})=>({display:"flex",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"12px",gap:"4px"})),rie=x1(wo)({padding:"8px 12px",fontSize:"12px"});import sie,{useState as aie}from"react";import{styled as Ih}from"storybook/theming";ve();Ue();Ne();ct();var fie=Ih.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px",backgroundColor:e.background.app,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",fontSize:"13px"})),mie=Ih(Or)({padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"}),hie=Ih.span(({theme:e})=>({color:e.textMutedColor,fontSize:"12px",flex:1}));import bie from"react";import{styled as _5}from"storybook/theming";var vie=_5.div(({theme:e})=>({border:`2px dashed ${e.appBorderColor}`,borderRadius:"8px",padding:"40px",textAlign:"center",marginBottom:"20px",backgroundColor:e.background.app}));ve();import Tie from"react";import{styled as Gr}from"storybook/theming";var Eie=Gr.div(({theme:e})=>({marginBottom:"16px",border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",backgroundColor:e.background.content})),Aie=Gr.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`})),Pie=Gr.div({display:"flex",alignItems:"center",gap:"8px",flex:1}),Lie=Gr.div(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),Mie=Gr.div(({theme:e})=>({flex:1,height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden",marginLeft:"12px"})),Bie=Gr.div(({theme:e,progress:t})=>({height:"100%",backgroundColor:t===100?e.color.positive||"#10b981":e.color.secondary,width:`${t}%`,transition:"width 0.3s ease, background-color 0.3s ease"})),Die=Gr.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontWeight:500,minWidth:"40px",textAlign:"right"})),Rie=Gr.div(({theme:e})=>({padding:"16px",backgroundColor:e.background.app,textAlign:"center"})),zie=Gr.div(({theme:e})=>({display:"inline-block",width:"14px",height:"14px",border:`2px solid ${e.appBorderColor}`,borderTopColor:e.color.secondary,borderRadius:"50%",animation:"spin 0.8s linear infinite",marginLeft:"8px","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),Nie=Gr.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontStyle:"italic"}));ve();import $ie,{useState as Uie}from"react";import{styled as qr}from"storybook/theming";var Wie=qr.div(({theme:e})=>{let t=(e.base==="dark","102, 126, 234");return{padding:"10px 12px",backgroundColor:`rgba(${t}, 0.08)`,borderRadius:"6px",marginBottom:"16px",border:`1px solid rgba(${t}, 0.2)`}}),Vie=qr.div({display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",userSelect:"none"}),Gie=qr.div({display:"flex",alignItems:"center",gap:"8px"}),qie=qr.span({fontSize:"12px",opacity:.7}),Yie=qr.span({fontSize:"13px",fontWeight:500}),Kie=qr.div(({score:e,theme:t})=>({display:"inline-block",padding:"4px 10px",borderRadius:"12px",fontSize:"13px",fontWeight:600,backgroundColor:e>=90?t.color.positive||"#10b981":e>=70?t.color.warning||"#f59e0b":t.color.negative||"#ef4444",color:t.color.inverseText})),Xie=qr.div({marginTop:"12px",fontSize:"11px"}),Qie=qr.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px",marginBottom:"8px"}),Jie=qr.div(({status:e,theme:t})=>({display:"flex",alignItems:"center",gap:"4px",color:e==="success"?"inherit":e==="success"?t.color.positive||"#10b981":e==="warning"?t.color.warning||"#f59e0b":t.color.negative||"#ef4444"})),Zie=qr.span({fontSize:"12px"});Ne();Ue();import en from"react";import{styled as ps}from"storybook/theming";import zr,{useEffect as OW}from"react";import{styled as Pa}from"storybook/theming";ve();import mi,{useState as tj}from"react";import{styled as ls}from"storybook/theming";var y1={fontBase:'"Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontMono:'"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace',sizeXs:"11px",sizeSm:"12px",sizeMd:"13px",sizeLg:"14px",sizeXl:"16px",weightRegular:400,weightMedium:500,weightBold:600};function b1(e,t){let n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}var $5=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,U5=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,j5={};function Tc(e,t){return((t||j5).jsx?U5:$5).test(e)}var H5=/[ \t\n\f\r]/g;function Fh(e){return typeof e=="object"?e.type==="text"?S1(e.value):!1:S1(e)}function S1(e){return e.replace(H5,"")===""}var po=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};po.prototype.normal={};po.prototype.property={};po.prototype.space=void 0;function Eh(e,t){let n={},r={};for(let o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new po(n,r,t)}function fa(e){return e.toLowerCase()}var gn=class{constructor(t,n){this.attribute=n,this.property=t}};gn.prototype.attribute="";gn.prototype.booleanish=!1;gn.prototype.boolean=!1;gn.prototype.commaOrSpaceSeparated=!1;gn.prototype.commaSeparated=!1;gn.prototype.defined=!1;gn.prototype.mustUseProperty=!1;gn.prototype.number=!1;gn.prototype.overloadedBoolean=!1;gn.prototype.property="";gn.prototype.spaceSeparated=!1;gn.prototype.space=void 0;var ma={};ye(ma,{boolean:()=>We,booleanish:()=>Ht,commaOrSpaceSeparated:()=>Yn,commaSeparated:()=>$o,number:()=>K,overloadedBoolean:()=>Ic,spaceSeparated:()=>It});var W5=0,We=li(),Ht=li(),Ic=li(),K=li(),It=li(),$o=li(),Yn=li();function li(){return 2**++W5}var Ah=Object.keys(ma),ci=class extends gn{constructor(t,n,r,o){let i=-1;if(super(t,n),w1(this,"space",o),typeof r=="number")for(;++i<Ah.length;){let s=Ah[i];w1(this,Ah[i],(r&ma[s])===ma[s])}}};ci.prototype.defined=!0;function w1(e,t,n){n&&(e[t]=n)}function hr(e){let t={},n={};for(let[r,o]of Object.entries(e.properties)){let i=new ci(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[fa(r)]=r,n[fa(i.attribute)]=r}return new po(t,n,e.space)}var Ph=hr({properties:{ariaActiveDescendant:null,ariaAtomic:Ht,ariaAutoComplete:null,ariaBusy:Ht,ariaChecked:Ht,ariaColCount:K,ariaColIndex:K,ariaColSpan:K,ariaControls:It,ariaCurrent:null,ariaDescribedBy:It,ariaDetails:null,ariaDisabled:Ht,ariaDropEffect:It,ariaErrorMessage:null,ariaExpanded:Ht,ariaFlowTo:It,ariaGrabbed:Ht,ariaHasPopup:null,ariaHidden:Ht,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:It,ariaLevel:K,ariaLive:null,ariaModal:Ht,ariaMultiLine:Ht,ariaMultiSelectable:Ht,ariaOrientation:null,ariaOwns:It,ariaPlaceholder:null,ariaPosInSet:K,ariaPressed:Ht,ariaReadOnly:Ht,ariaRelevant:null,ariaRequired:Ht,ariaRoleDescription:It,ariaRowCount:K,ariaRowIndex:K,ariaRowSpan:K,ariaSelected:Ht,ariaSetSize:K,ariaSort:null,ariaValueMax:K,ariaValueMin:K,ariaValueNow:K,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Fc(e,t){return t in e?e[t]:t}function Ec(e,t){return Fc(e,t.toLowerCase())}var v1=hr({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:$o,acceptCharset:It,accessKey:It,action:null,allow:null,allowFullScreen:We,allowPaymentRequest:We,allowUserMedia:We,alt:null,as:null,async:We,autoCapitalize:null,autoComplete:It,autoFocus:We,autoPlay:We,blocking:It,capture:null,charSet:null,checked:We,cite:null,className:It,cols:K,colSpan:null,content:null,contentEditable:Ht,controls:We,controlsList:It,coords:K|$o,crossOrigin:null,data:null,dateTime:null,decoding:null,default:We,defer:We,dir:null,dirName:null,disabled:We,download:Ic,draggable:Ht,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:We,formTarget:null,headers:It,height:K,hidden:Ic,high:K,href:null,hrefLang:null,htmlFor:It,httpEquiv:It,id:null,imageSizes:null,imageSrcSet:null,inert:We,inputMode:null,integrity:null,is:null,isMap:We,itemId:null,itemProp:It,itemRef:It,itemScope:We,itemType:It,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:We,low:K,manifest:null,max:null,maxLength:K,media:null,method:null,min:null,minLength:K,multiple:We,muted:We,name:null,nonce:null,noModule:We,noValidate:We,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:We,optimum:K,pattern:null,ping:It,placeholder:null,playsInline:We,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:We,referrerPolicy:null,rel:It,required:We,reversed:We,rows:K,rowSpan:K,sandbox:It,scope:null,scoped:We,seamless:We,selected:We,shadowRootClonable:We,shadowRootDelegatesFocus:We,shadowRootMode:null,shape:null,size:K,sizes:null,slot:null,span:K,spellCheck:Ht,src:null,srcDoc:null,srcLang:null,srcSet:null,start:K,step:null,style:null,tabIndex:K,target:null,title:null,translate:null,type:null,typeMustMatch:We,useMap:null,value:Ht,width:K,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:It,axis:null,background:null,bgColor:null,border:K,borderColor:null,bottomMargin:K,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:We,declare:We,event:null,face:null,frame:null,frameBorder:null,hSpace:K,leftMargin:K,link:null,longDesc:null,lowSrc:null,marginHeight:K,marginWidth:K,noResize:We,noHref:We,noShade:We,noWrap:We,object:null,profile:null,prompt:null,rev:null,rightMargin:K,rules:null,scheme:null,scrolling:Ht,standby:null,summary:null,text:null,topMargin:K,valueType:null,version:null,vAlign:null,vLink:null,vSpace:K,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:We,disableRemotePlayback:We,prefix:null,property:null,results:K,security:null,unselectable:null},space:"html",transform:Ec});var k1=hr({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Yn,accentHeight:K,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:K,amplitude:K,arabicForm:null,ascent:K,attributeName:null,attributeType:null,azimuth:K,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:K,by:null,calcMode:null,capHeight:K,className:It,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:K,diffuseConstant:K,direction:null,display:null,dur:null,divisor:K,dominantBaseline:null,download:We,dx:null,dy:null,edgeMode:null,editable:null,elevation:K,enableBackground:null,end:null,event:null,exponent:K,externalResourcesRequired:null,fill:null,fillOpacity:K,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:$o,g2:$o,glyphName:$o,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:K,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:K,horizOriginX:K,horizOriginY:K,id:null,ideographic:K,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:K,k:K,k1:K,k2:K,k3:K,k4:K,kernelMatrix:Yn,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:K,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:K,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:K,overlineThickness:K,paintOrder:null,panose1:null,path:null,pathLength:K,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:It,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:K,pointsAtY:K,pointsAtZ:K,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Yn,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Yn,rev:Yn,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Yn,requiredFeatures:Yn,requiredFonts:Yn,requiredFormats:Yn,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:K,specularExponent:K,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:K,strikethroughThickness:K,string:null,stroke:null,strokeDashArray:Yn,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:K,strokeOpacity:K,strokeWidth:null,style:null,surfaceScale:K,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Yn,tabIndex:K,tableValues:null,target:null,targetX:K,targetY:K,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Yn,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:K,underlineThickness:K,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:K,values:null,vAlphabetic:K,vMathematical:K,vectorEffect:null,vHanging:K,vIdeographic:K,version:null,vertAdvY:K,vertOriginX:K,vertOriginY:K,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:K,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Fc});var Lh=hr({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}});var Mh=hr({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Ec});var Bh=hr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}});var Dh={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var V5=/[A-Z]/g,C1=/-[a-z]/g,G5=/^data[-\w.:]+$/i;function Rh(e,t){let n=fa(t),r=t,o=gn;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&G5.test(t)){if(t.charAt(4)==="-"){let i=t.slice(5).replace(C1,Y5);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{let i=t.slice(4);if(!C1.test(i)){let s=i.replace(V5,q5);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}o=ci}return new o(r,t)}function q5(e){return"-"+e.toLowerCase()}function Y5(e){return e.charAt(1).toUpperCase()}var T1=Eh([Ph,v1,Lh,Mh,Bh],"html"),Ac=Eh([Ph,k1,Lh,Mh,Bh],"svg");function I1(e){return e.join(" ").trim()}var U1=Ga(N1(),1);var Lc=O1("end"),ns=O1("start");function O1(e){return t;function t(n){let r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Oh(e){let t=ns(e),n=Lc(e);if(t&&n)return{start:t,end:n}}function Uo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?_1(e.position):"start"in e||"end"in e?_1(e):"line"in e||"column"in e?_h(e):""}function _h(e){return $1(e&&e.line)+":"+$1(e&&e.column)}function _1(e){return _h(e&&e.start)+"-"+_h(e&&e.end)}function $1(e){return e&&typeof e=="number"?e:1}var Yt=class extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let o="",i={},s=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?o=t:!i.cause&&t&&(s=!0,o=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){let u=r.indexOf(":");u===-1?i.ruleId=r:(i.source=r.slice(0,u),i.ruleId=r.slice(u+1))}if(!i.place&&i.ancestors&&i.ancestors){let u=i.ancestors[i.ancestors.length-1];u&&(i.place=u.position)}let a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=a?a.line:void 0,this.name=Uo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=s&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};Yt.prototype.file="";Yt.prototype.name="";Yt.prototype.reason="";Yt.prototype.message="";Yt.prototype.stack="";Yt.prototype.column=void 0;Yt.prototype.line=void 0;Yt.prototype.ancestors=void 0;Yt.prototype.cause=void 0;Yt.prototype.fatal=void 0;Yt.prototype.place=void 0;Yt.prototype.ruleId=void 0;Yt.prototype.source=void 0;var $h={}.hasOwnProperty,S3=new Map,w3=/[A-Z]/g,v3=new Set(["table","tbody","thead","tfoot","tr"]),k3=new Set(["td","th"]),j1="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Uh(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=L3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=P3(n,t.jsx,t.jsxs)}let o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Ac:T1,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=H1(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function H1(e,t,n){if(t.type==="element")return C3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return T3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return F3(e,t,n);if(t.type==="mdxjsEsm")return I3(e,t);if(t.type==="root")return E3(e,t,n);if(t.type==="text")return A3(e,t)}function C3(e,t,n){let r=e.schema,o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=Ac,e.schema=o),e.ancestors.push(t);let i=V1(e,t.tagName,!1),s=M3(e,t),a=Hh(e,t);return v3.has(t.tagName)&&(a=a.filter(function(u){return typeof u=="string"?!Fh(u):!0})),W1(e,s,i,t),jh(s,a),e.ancestors.pop(),e.schema=r,e.create(t,i,s,n)}function T3(e,t){if(t.data&&t.data.estree&&e.evaluater){let r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}xa(e,t.position)}function I3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);xa(e,t.position)}function F3(e,t,n){let r=e.schema,o=r;t.name==="svg"&&r.space==="html"&&(o=Ac,e.schema=o),e.ancestors.push(t);let i=t.name===null?e.Fragment:V1(e,t.name,!0),s=B3(e,t),a=Hh(e,t);return W1(e,s,i,t),jh(s,a),e.ancestors.pop(),e.schema=r,e.create(t,i,s,n)}function E3(e,t,n){let r={};return jh(r,Hh(e,t)),e.create(t,e.Fragment,r,n)}function A3(e,t){return t.value}function W1(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function jh(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function P3(e,t,n){return r;function r(o,i,s,a){let c=Array.isArray(s.children)?n:t;return a?c(i,s,a):c(i,s)}}function L3(e,t){return n;function n(r,o,i,s){let a=Array.isArray(i.children),u=ns(r);return t(o,i,s,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function M3(e,t){let n={},r,o;for(o in t.properties)if(o!=="children"&&$h.call(t.properties,o)){let i=D3(e,o,t.properties[o]);if(i){let[s,a]=i;e.tableCellAlignToStyle&&s==="align"&&typeof a=="string"&&k3.has(t.tagName)?r=a:n[s]=a}}if(r){let i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function B3(e,t){let n={};for(let r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){let i=r.data.estree.body[0];i.type;let s=i.expression;s.type;let a=s.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else xa(e,t.position);else{let o=r.name,i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){let a=r.value.data.estree.body[0];a.type,i=e.evaluater.evaluateExpression(a.expression)}else xa(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function Hh(e,t){let n=[],r=-1,o=e.passKeys?new Map:S3;for(;++r<t.children.length;){let i=t.children[r],s;if(e.passKeys){let u=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(u){let c=o.get(u)||0;s=u+"-"+c,o.set(u,c+1)}}let a=H1(e,i,s);a!==void 0&&n.push(a)}return n}function D3(e,t,n){let r=Rh(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?b1(n):I1(n)),r.property==="style"){let o=typeof n=="object"?n:R3(e,String(n));return e.stylePropertyNameCase==="css"&&(o=z3(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?Dh[r.property]||r.property:r.attribute,n]}}function R3(e,t){try{return(0,U1.default)(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let r=n,o=new Yt("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw o.file=e.filePath||void 0,o.url=j1+"#cannot-parse-style-attribute",o}}function V1(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){let o=t.split("."),i=-1,s;for(;++i<o.length;){let a=Tc(o[i])?{type:"Identifier",name:o[i]}:{type:"Literal",value:o[i]};s=s?{type:"MemberExpression",object:s,property:a,computed:!!(i&&a.type==="Literal"),optional:!1}:a}r=s}else r=Tc(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){let o=r.value;return $h.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);xa(e)}function xa(e,t){let n=new Yt("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=j1+"#cannot-handle-mdx-estrees-without-createevaluater",n}function z3(e){let t={},n;for(n in e)$h.call(e,n)&&(t[N3(n)]=e[n]);return t}function N3(e){let t=e.replace(w3,O3);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function O3(e){return"-"+e.toLowerCase()}var ya={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]};import{Fragment as GU,jsx as qU,jsxs as YU}from"react/jsx-runtime";import{useEffect as pge,useState as dge}from"react";var _3={};function Wh(e,t){let n=t||_3,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return q1(e,r,o)}function q1(e,t,n){if($3(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return G1(e.children,t,n)}return Array.isArray(e)?G1(e,t,n):""}function G1(e,t,n){let r=[],o=-1;for(;++o<e.length;)r[o]=q1(e[o],t,n);return r.join("")}function $3(e){return!!(e&&typeof e=="object")}var Y1=document.createElement("i");function rs(e){let t="&"+e+";";Y1.innerHTML=t;let n=Y1.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function yn(e,t,n,r){let o=e.length,i=0,s;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)s=Array.from(r),s.unshift(t,n),e.splice(...s);else for(n&&e.splice(t,n);i<r.length;)s=r.slice(i,i+1e4),s.unshift(t,0),e.splice(...s),i+=1e4,t+=1e4}function Dn(e,t){return e.length>0?(yn(e,e.length,0,t),e):t}var K1={}.hasOwnProperty;function X1(e){let t={},n=-1;for(;++n<e.length;)U3(t,e[n]);return t}function U3(e,t){let n;for(n in t){let o=(K1.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],s;if(i)for(s in i){K1.call(o,s)||(o[s]=[]);let a=i[s];j3(o[s],Array.isArray(a)?a:a?[a]:[])}}}function j3(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);yn(e,0,0,r)}function Mc(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"\uFFFD":String.fromCodePoint(n)}function go(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var or=jo(/[A-Za-z]/),fn=jo(/[\dA-Za-z]/),Q1=jo(/[#-'*+\--9=?A-Z^-~]/);function ba(e){return e!==null&&(e<32||e===127)}var Sa=jo(/\d/),J1=jo(/[\dA-Fa-f]/),Z1=jo(/[!-/:-@[-`{-~]/);function pe(e){return e!==null&&e<-2}function Kt(e){return e!==null&&(e<0||e===32)}function je(e){return e===-2||e===-1||e===32}var eT=jo(/\p{P}|\p{S}/u),tT=jo(/\s/);function jo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function xr(e){let t=[],n=-1,r=0,o=0;for(;++n<e.length;){let i=e.charCodeAt(n),s="";if(i===37&&fn(e.charCodeAt(n+1))&&fn(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(s=String.fromCharCode(i));else if(i>55295&&i<57344){let a=e.charCodeAt(n+1);i<56320&&a>56319&&a<57344?(s=String.fromCharCode(i,a),o=1):s="\uFFFD"}else s=String.fromCharCode(i);s&&(t.push(e.slice(r,n),encodeURIComponent(s)),r=n+o+1,s=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function Ve(e,t,n,r){let o=r?r-1:Number.POSITIVE_INFINITY,i=0;return s;function s(u){return je(u)?(e.enter(n),a(u)):t(u)}function a(u){return je(u)&&i++<o?(e.consume(u),a):(e.exit(n),t(u))}}var nT={tokenize:H3};function H3(e){let t=e.attempt(this.parser.constructs.contentInitial,r,o),n;return t;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),Ve(e,t,"linePrefix")}function o(a){return e.enter("paragraph"),i(a)}function i(a){let u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,s(a)}function s(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return pe(a)?(e.consume(a),e.exit("chunkText"),i):(e.consume(a),s)}}var oT={tokenize:W3},rT={tokenize:V3};function W3(e){let t=this,n=[],r=0,o,i,s;return a;function a(D){if(r<n.length){let O=n[r];return t.containerState=O[1],e.attempt(O[0].continuation,u,c)(D)}return c(D)}function u(D){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&v();let O=t.events.length,$=O,L;for(;$--;)if(t.events[$][0]==="exit"&&t.events[$][1].type==="chunkFlow"){L=t.events[$][1].end;break}E(r);let N=O;for(;N<t.events.length;)t.events[N][1].end={...L},N++;return yn(t.events,$+1,0,t.events.slice(O)),t.events.length=N,c(D)}return a(D)}function c(D){if(r===n.length){if(!o)return g(D);if(o.currentConstruct&&o.currentConstruct.concrete)return m(D);t.interrupt=!!(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(rT,l,d)(D)}function l(D){return o&&v(),E(r),g(D)}function d(D){return t.parser.lazy[t.now().line]=r!==n.length,s=t.now().offset,m(D)}function g(D){return t.containerState={},e.attempt(rT,p,m)(D)}function p(D){return r++,n.push([t.currentConstruct,t.containerState]),g(D)}function m(D){if(D===null){o&&v(),E(0),e.consume(D);return}return o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:o,contentType:"flow",previous:i}),b(D)}function b(D){if(D===null){F(e.exit("chunkFlow"),!0),E(0),e.consume(D);return}return pe(D)?(e.consume(D),F(e.exit("chunkFlow")),r=0,t.interrupt=void 0,a):(e.consume(D),b)}function F(D,O){let $=t.sliceStream(D);if(O&&$.push(null),D.previous=i,i&&(i.next=D),i=D,o.defineSkip(D.start),o.write($),t.parser.lazy[D.start.line]){let L=o.events.length;for(;L--;)if(o.events[L][1].start.offset<s&&(!o.events[L][1].end||o.events[L][1].end.offset>s))return;let N=t.events.length,x=N,S,w;for(;x--;)if(t.events[x][0]==="exit"&&t.events[x][1].type==="chunkFlow"){if(S){w=t.events[x][1].end;break}S=!0}for(E(r),L=N;L<t.events.length;)t.events[L][1].end={...w},L++;yn(t.events,x+1,0,t.events.slice(N)),t.events.length=L}}function E(D){let O=n.length;for(;O-- >D;){let $=n[O];t.containerState=$[1],$[0].exit.call(t,e)}n.length=D}function v(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function V3(e,t,n){return Ve(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Vh(e){if(e===null||Kt(e)||tT(e))return 1;if(eT(e))return 2}function os(e,t,n){let r=[],o=-1;for(;++o<e.length;){let i=e[o].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}var wa={name:"attention",resolveAll:G3,tokenize:q3};function G3(e,t){let n=-1,r,o,i,s,a,u,c,l;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;u=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},g={...e[n][1].start};iT(d,-u),iT(g,u),s={type:u>1?"strongSequence":"emphasisSequence",start:d,end:{...e[r][1].end}},a={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},i={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},o={type:u>1?"strong":"emphasis",start:{...s.start},end:{...a.end}},e[r][1].end={...s.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=Dn(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=Dn(c,[["enter",o,t],["enter",s,t],["exit",s,t],["enter",i,t]]),c=Dn(c,os(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=Dn(c,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(l=2,c=Dn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):l=0,yn(e,r-1,n-r+3,c),n=r+c.length-l-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function q3(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=Vh(r),i;return s;function s(u){return i=u,e.enter("attentionSequence"),a(u)}function a(u){if(u===i)return e.consume(u),a;let c=e.exit("attentionSequence"),l=Vh(u),d=!l||l===2&&o||n.includes(u),g=!o||o===2&&l||n.includes(r);return c._open=!!(i===42?d:d&&(o||!g)),c._close=!!(i===42?g:g&&(l||!d)),t(u)}}function iT(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Gh={name:"autolink",tokenize:Y3};function Y3(e,t,n){let r=0;return o;function o(p){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(p){return or(p)?(e.consume(p),s):p===64?n(p):c(p)}function s(p){return p===43||p===45||p===46||fn(p)?(r=1,a(p)):c(p)}function a(p){return p===58?(e.consume(p),r=0,u):(p===43||p===45||p===46||fn(p))&&r++<32?(e.consume(p),a):(r=0,c(p))}function u(p){return p===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):p===null||p===32||p===60||ba(p)?n(p):(e.consume(p),u)}function c(p){return p===64?(e.consume(p),l):Q1(p)?(e.consume(p),c):n(p)}function l(p){return fn(p)?d(p):n(p)}function d(p){return p===46?(e.consume(p),r=0,l):p===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):g(p)}function g(p){if((p===45||fn(p))&&r++<63){let m=p===45?g:d;return e.consume(p),m}return n(p)}}var Ho={partial:!0,tokenize:K3};function K3(e,t,n){return r;function r(i){return je(i)?Ve(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||pe(i)?t(i):n(i)}}var Bc={continuation:{tokenize:Q3},exit:J3,name:"blockQuote",tokenize:X3};function X3(e,t,n){let r=this;return o;function o(s){if(s===62){let a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(s),e.exit("blockQuoteMarker"),i}return n(s)}function i(s){return je(s)?(e.enter("blockQuotePrefixWhitespace"),e.consume(s),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(s))}}function Q3(e,t,n){let r=this;return o;function o(s){return je(s)?Ve(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s):i(s)}function i(s){return e.attempt(Bc,t,n)(s)}}function J3(e){e.exit("blockQuote")}var Dc={name:"characterEscape",tokenize:Z3};function Z3(e,t,n){return r;function r(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),o}function o(i){return Z1(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}var Rc={name:"characterReference",tokenize:e6};function e6(e,t,n){let r=this,o=0,i,s;return a;function a(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),u}function u(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),i=31,s=fn,l(d))}function c(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,s=J1,l):(e.enter("characterReferenceValue"),i=7,s=Sa,l(d))}function l(d){if(d===59&&o){let g=e.exit("characterReferenceValue");return s===fn&&!rs(r.sliceSerialize(g))?n(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return s(d)&&o++<i?(e.consume(d),l):n(d)}}var sT={partial:!0,tokenize:n6},zc={concrete:!0,name:"codeFenced",tokenize:t6};function t6(e,t,n){let r=this,o={partial:!0,tokenize:$},i=0,s=0,a;return u;function u(L){return c(L)}function c(L){let N=r.events[r.events.length-1];return i=N&&N[1].type==="linePrefix"?N[2].sliceSerialize(N[1],!0).length:0,a=L,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(L)}function l(L){return L===a?(s++,e.consume(L),l):s<3?n(L):(e.exit("codeFencedFenceSequence"),je(L)?Ve(e,d,"whitespace")(L):d(L))}function d(L){return L===null||pe(L)?(e.exit("codeFencedFence"),r.interrupt?t(L):e.check(sT,b,O)(L)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(L))}function g(L){return L===null||pe(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),d(L)):je(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ve(e,p,"whitespace")(L)):L===96&&L===a?n(L):(e.consume(L),g)}function p(L){return L===null||pe(L)?d(L):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),m(L))}function m(L){return L===null||pe(L)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),d(L)):L===96&&L===a?n(L):(e.consume(L),m)}function b(L){return e.attempt(o,O,F)(L)}function F(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),E}function E(L){return i>0&&je(L)?Ve(e,v,"linePrefix",i+1)(L):v(L)}function v(L){return L===null||pe(L)?e.check(sT,b,O)(L):(e.enter("codeFlowValue"),D(L))}function D(L){return L===null||pe(L)?(e.exit("codeFlowValue"),v(L)):(e.consume(L),D)}function O(L){return e.exit("codeFenced"),t(L)}function $(L,N,x){let S=0;return w;function w(h){return L.enter("lineEnding"),L.consume(h),L.exit("lineEnding"),P}function P(h){return L.enter("codeFencedFence"),je(h)?Ve(L,f,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(h):f(h)}function f(h){return h===a?(L.enter("codeFencedFenceSequence"),k(h)):x(h)}function k(h){return h===a?(S++,L.consume(h),k):S>=s?(L.exit("codeFencedFenceSequence"),je(h)?Ve(L,T,"whitespace")(h):T(h)):x(h)}function T(h){return h===null||pe(h)?(L.exit("codeFencedFence"),N(h)):x(h)}}}function n6(e,t,n){let r=this;return o;function o(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i)}function i(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}var va={name:"codeIndented",tokenize:o6},r6={partial:!0,tokenize:i6};function o6(e,t,n){let r=this;return o;function o(c){return e.enter("codeIndented"),Ve(e,i,"linePrefix",5)(c)}function i(c){let l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?s(c):n(c)}function s(c){return c===null?u(c):pe(c)?e.attempt(r6,s,u)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||pe(c)?(e.exit("codeFlowValue"),s(c)):(e.consume(c),a)}function u(c){return e.exit("codeIndented"),t(c)}}function i6(e,t,n){let r=this;return o;function o(s){return r.parser.lazy[r.now().line]?n(s):pe(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o):Ve(e,i,"linePrefix",5)(s)}function i(s){let a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(s):pe(s)?o(s):n(s)}}var qh={name:"codeText",previous:a6,resolve:s6,tokenize:l6};function s6(e){let t=e.length-4,n=3,r,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)o===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(o=r):(r===t||e[r][1].type==="lineEnding")&&(e[o][1].type="codeTextData",r!==o+2&&(e[o][1].end=e[r-1][1].end,e.splice(o+2,r-o-2),t-=r-o-2,r=o+2),o=void 0);return e}function a6(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function l6(e,t,n){let r=this,o=0,i,s;return a;function a(g){return e.enter("codeText"),e.enter("codeTextSequence"),u(g)}function u(g){return g===96?(e.consume(g),o++,u):(e.exit("codeTextSequence"),c(g))}function c(g){return g===null?n(g):g===32?(e.enter("space"),e.consume(g),e.exit("space"),c):g===96?(s=e.enter("codeTextSequence"),i=0,d(g)):pe(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),c):(e.enter("codeTextData"),l(g))}function l(g){return g===null||g===32||g===96||pe(g)?(e.exit("codeTextData"),c(g)):(e.consume(g),l)}function d(g){return g===96?(e.consume(g),i++,d):i===o?(e.exit("codeTextSequence"),e.exit("codeText"),t(g)):(s.type="codeTextData",l(g))}}var Nc=class{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){let r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){let o=n||0;this.setCursor(Math.trunc(t));let i=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return r&&ka(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),ka(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),ka(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){let n=this.left.splice(t,Number.POSITIVE_INFINITY);ka(this.right,n.reverse())}else{let n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);ka(this.left,n.reverse())}}};function ka(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Oc(e){let t={},n=-1,r,o,i,s,a,u,c,l=new Nc(e);for(;++n<l.length;){for(;n in t;)n=t[n];if(r=l.get(n),n&&r[1].type==="chunkFlow"&&l.get(n-1)[1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,i=0,i<u.length&&u[i][1].type==="lineEndingBlank"&&(i+=2),i<u.length&&u[i][1].type==="content"))for(;++i<u.length&&u[i][1].type!=="content";)u[i][1].type==="chunkText"&&(u[i][1]._isInFirstContentOfListItem=!0,i++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,c6(l,n)),n=t[n],c=!0);else if(r[1]._container){for(i=n,o=void 0;i--;)if(s=l.get(i),s[1].type==="lineEnding"||s[1].type==="lineEndingBlank")s[0]==="enter"&&(o&&(l.get(o)[1].type="lineEndingBlank"),s[1].type="lineEnding",o=i);else if(!(s[1].type==="linePrefix"||s[1].type==="listItemIndent"))break;o&&(r[1].end={...l.get(o)[1].start},a=l.slice(o,n),a.unshift(r),l.splice(o,n-o+1,a))}}return yn(e,0,Number.POSITIVE_INFINITY,l.slice(0)),!c}function c6(e,t){let n=e.get(t)[1],r=e.get(t)[2],o=t-1,i=[],s=n._tokenizer;s||(s=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(s._contentTypeTextTrailing=!0));let a=s.events,u=[],c={},l,d,g=-1,p=n,m=0,b=0,F=[b];for(;p;){for(;e.get(++o)[1]!==p;);i.push(o),p._tokenizer||(l=r.sliceStream(p),p.next||l.push(null),d&&s.defineSkip(p.start),p._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=!0),s.write(l),p._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++g<a.length;)a[g][0]==="exit"&&a[g-1][0]==="enter"&&a[g][1].type===a[g-1][1].type&&a[g][1].start.line!==a[g][1].end.line&&(b=g+1,F.push(b),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(s.events=[],p?(p._tokenizer=void 0,p.previous=void 0):F.pop(),g=F.length;g--;){let E=a.slice(F[g],F[g+1]),v=i.pop();u.push([v,v+E.length-1]),e.splice(v,2,E)}for(u.reverse(),g=-1;++g<u.length;)c[m+u[g][0]]=m+u[g][1],m+=u[g][1]-u[g][0]-1;return c}var Yh={resolve:p6,tokenize:d6},u6={partial:!0,tokenize:g6};function p6(e){return Oc(e),e}function d6(e,t){let n;return r;function r(a){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(a)}function o(a){return a===null?i(a):pe(a)?e.check(u6,s,i)(a):(e.consume(a),o)}function i(a){return e.exit("chunkContent"),e.exit("content"),t(a)}function s(a){return e.consume(a),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,o}}function g6(e,t,n){let r=this;return o;function o(s){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Ve(e,i,"linePrefix")}function i(s){if(s===null||pe(s))return n(s);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(s):e.interrupt(r.parser.constructs.flow,n,t)(s)}}function _c(e,t,n,r,o,i,s,a,u){let c=u||Number.POSITIVE_INFINITY,l=0;return d;function d(E){return E===60?(e.enter(r),e.enter(o),e.enter(i),e.consume(E),e.exit(i),g):E===null||E===32||E===41||ba(E)?n(E):(e.enter(r),e.enter(s),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(E))}function g(E){return E===62?(e.enter(i),e.consume(E),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(E))}function p(E){return E===62?(e.exit("chunkString"),e.exit(a),g(E)):E===null||E===60||pe(E)?n(E):(e.consume(E),E===92?m:p)}function m(E){return E===60||E===62||E===92?(e.consume(E),p):p(E)}function b(E){return!l&&(E===null||E===41||Kt(E))?(e.exit("chunkString"),e.exit(a),e.exit(s),e.exit(r),t(E)):l<c&&E===40?(e.consume(E),l++,b):E===41?(e.consume(E),l--,b):E===null||E===32||E===40||ba(E)?n(E):(e.consume(E),E===92?F:b)}function F(E){return E===40||E===41||E===92?(e.consume(E),b):b(E)}}function $c(e,t,n,r,o,i){let s=this,a=0,u;return c;function c(p){return e.enter(r),e.enter(o),e.consume(p),e.exit(o),e.enter(i),l}function l(p){return a>999||p===null||p===91||p===93&&!u||p===94&&!a&&"_hiddenFootnoteSupport"in s.parser.constructs?n(p):p===93?(e.exit(i),e.enter(o),e.consume(p),e.exit(o),e.exit(r),t):pe(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||pe(p)||a++>999?(e.exit("chunkString"),l(p)):(e.consume(p),u||(u=!je(p)),p===92?g:d)}function g(p){return p===91||p===92||p===93?(e.consume(p),a++,d):d(p)}}function Uc(e,t,n,r,o,i){let s;return a;function a(g){return g===34||g===39||g===40?(e.enter(r),e.enter(o),e.consume(g),e.exit(o),s=g===40?41:g,u):n(g)}function u(g){return g===s?(e.enter(o),e.consume(g),e.exit(o),e.exit(r),t):(e.enter(i),c(g))}function c(g){return g===s?(e.exit(i),u(s)):g===null?n(g):pe(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Ve(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(g))}function l(g){return g===s||g===null||pe(g)?(e.exit("chunkString"),c(g)):(e.consume(g),g===92?d:l)}function d(g){return g===s||g===92?(e.consume(g),l):l(g)}}function pi(e,t){let n;return r;function r(o){return pe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):je(o)?Ve(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}var Kh={name:"definition",tokenize:m6},f6={partial:!0,tokenize:h6};function m6(e,t,n){let r=this,o;return i;function i(p){return e.enter("definition"),s(p)}function s(p){return $c.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return o=go(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),u):n(p)}function u(p){return Kt(p)?pi(e,c)(p):c(p)}function c(p){return _c(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function l(p){return e.attempt(f6,d,d)(p)}function d(p){return je(p)?Ve(e,g,"whitespace")(p):g(p)}function g(p){return p===null||pe(p)?(e.exit("definition"),r.parser.defined.push(o),t(p)):n(p)}}function h6(e,t,n){return r;function r(a){return Kt(a)?pi(e,o)(a):n(a)}function o(a){return Uc(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return je(a)?Ve(e,s,"whitespace")(a):s(a)}function s(a){return a===null||pe(a)?t(a):n(a)}}var Xh={name:"hardBreakEscape",tokenize:x6};function x6(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return pe(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}var Qh={name:"headingAtx",resolve:y6,tokenize:b6};function y6(e,t){let n=e.length-2,r=3,o,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(o={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},yn(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function b6(e,t,n){let r=0;return o;function o(l){return e.enter("atxHeading"),i(l)}function i(l){return e.enter("atxHeadingSequence"),s(l)}function s(l){return l===35&&r++<6?(e.consume(l),s):l===null||Kt(l)?(e.exit("atxHeadingSequence"),a(l)):n(l)}function a(l){return l===35?(e.enter("atxHeadingSequence"),u(l)):l===null||pe(l)?(e.exit("atxHeading"),t(l)):je(l)?Ve(e,a,"whitespace")(l):(e.enter("atxHeadingText"),c(l))}function u(l){return l===35?(e.consume(l),u):(e.exit("atxHeadingSequence"),a(l))}function c(l){return l===null||l===35||Kt(l)?(e.exit("atxHeadingText"),a(l)):(e.consume(l),c)}}var aT=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jh=["pre","script","style","textarea"];var Zh={concrete:!0,name:"htmlFlow",resolveTo:v6,tokenize:k6},S6={partial:!0,tokenize:T6},w6={partial:!0,tokenize:C6};function v6(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function k6(e,t,n){let r=this,o,i,s,a,u;return c;function c(B){return l(B)}function l(B){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(B),d}function d(B){return B===33?(e.consume(B),g):B===47?(e.consume(B),i=!0,b):B===63?(e.consume(B),o=3,r.interrupt?t:C):or(B)?(e.consume(B),s=String.fromCharCode(B),F):n(B)}function g(B){return B===45?(e.consume(B),o=2,p):B===91?(e.consume(B),o=5,a=0,m):or(B)?(e.consume(B),o=4,r.interrupt?t:C):n(B)}function p(B){return B===45?(e.consume(B),r.interrupt?t:C):n(B)}function m(B){let ie="CDATA[";return B===ie.charCodeAt(a++)?(e.consume(B),a===ie.length?r.interrupt?t:f:m):n(B)}function b(B){return or(B)?(e.consume(B),s=String.fromCharCode(B),F):n(B)}function F(B){if(B===null||B===47||B===62||Kt(B)){let ie=B===47,Y=s.toLowerCase();return!ie&&!i&&Jh.includes(Y)?(o=1,r.interrupt?t(B):f(B)):aT.includes(s.toLowerCase())?(o=6,ie?(e.consume(B),E):r.interrupt?t(B):f(B)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(B):i?v(B):D(B))}return B===45||fn(B)?(e.consume(B),s+=String.fromCharCode(B),F):n(B)}function E(B){return B===62?(e.consume(B),r.interrupt?t:f):n(B)}function v(B){return je(B)?(e.consume(B),v):w(B)}function D(B){return B===47?(e.consume(B),w):B===58||B===95||or(B)?(e.consume(B),O):je(B)?(e.consume(B),D):w(B)}function O(B){return B===45||B===46||B===58||B===95||fn(B)?(e.consume(B),O):$(B)}function $(B){return B===61?(e.consume(B),L):je(B)?(e.consume(B),$):D(B)}function L(B){return B===null||B===60||B===61||B===62||B===96?n(B):B===34||B===39?(e.consume(B),u=B,N):je(B)?(e.consume(B),L):x(B)}function N(B){return B===u?(e.consume(B),u=null,S):B===null||pe(B)?n(B):(e.consume(B),N)}function x(B){return B===null||B===34||B===39||B===47||B===60||B===61||B===62||B===96||Kt(B)?$(B):(e.consume(B),x)}function S(B){return B===47||B===62||je(B)?D(B):n(B)}function w(B){return B===62?(e.consume(B),P):n(B)}function P(B){return B===null||pe(B)?f(B):je(B)?(e.consume(B),P):n(B)}function f(B){return B===45&&o===2?(e.consume(B),I):B===60&&o===1?(e.consume(B),A):B===62&&o===4?(e.consume(B),R):B===63&&o===3?(e.consume(B),C):B===93&&o===5?(e.consume(B),z):pe(B)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(S6,W,k)(B)):B===null||pe(B)?(e.exit("htmlFlowData"),k(B)):(e.consume(B),f)}function k(B){return e.check(w6,T,W)(B)}function T(B){return e.enter("lineEnding"),e.consume(B),e.exit("lineEnding"),h}function h(B){return B===null||pe(B)?k(B):(e.enter("htmlFlowData"),f(B))}function I(B){return B===45?(e.consume(B),C):f(B)}function A(B){return B===47?(e.consume(B),s="",M):f(B)}function M(B){if(B===62){let ie=s.toLowerCase();return Jh.includes(ie)?(e.consume(B),R):f(B)}return or(B)&&s.length<8?(e.consume(B),s+=String.fromCharCode(B),M):f(B)}function z(B){return B===93?(e.consume(B),C):f(B)}function C(B){return B===62?(e.consume(B),R):B===45&&o===2?(e.consume(B),C):f(B)}function R(B){return B===null||pe(B)?(e.exit("htmlFlowData"),W(B)):(e.consume(B),R)}function W(B){return e.exit("htmlFlow"),t(B)}}function C6(e,t,n){let r=this;return o;function o(s){return pe(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i):n(s)}function i(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}function T6(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Ho,t,n)}}var ex={name:"htmlText",tokenize:I6};function I6(e,t,n){let r=this,o,i,s;return a;function a(C){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(C),u}function u(C){return C===33?(e.consume(C),c):C===47?(e.consume(C),$):C===63?(e.consume(C),D):or(C)?(e.consume(C),x):n(C)}function c(C){return C===45?(e.consume(C),l):C===91?(e.consume(C),i=0,m):or(C)?(e.consume(C),v):n(C)}function l(C){return C===45?(e.consume(C),p):n(C)}function d(C){return C===null?n(C):C===45?(e.consume(C),g):pe(C)?(s=d,A(C)):(e.consume(C),d)}function g(C){return C===45?(e.consume(C),p):d(C)}function p(C){return C===62?I(C):C===45?g(C):d(C)}function m(C){let R="CDATA[";return C===R.charCodeAt(i++)?(e.consume(C),i===R.length?b:m):n(C)}function b(C){return C===null?n(C):C===93?(e.consume(C),F):pe(C)?(s=b,A(C)):(e.consume(C),b)}function F(C){return C===93?(e.consume(C),E):b(C)}function E(C){return C===62?I(C):C===93?(e.consume(C),E):b(C)}function v(C){return C===null||C===62?I(C):pe(C)?(s=v,A(C)):(e.consume(C),v)}function D(C){return C===null?n(C):C===63?(e.consume(C),O):pe(C)?(s=D,A(C)):(e.consume(C),D)}function O(C){return C===62?I(C):D(C)}function $(C){return or(C)?(e.consume(C),L):n(C)}function L(C){return C===45||fn(C)?(e.consume(C),L):N(C)}function N(C){return pe(C)?(s=N,A(C)):je(C)?(e.consume(C),N):I(C)}function x(C){return C===45||fn(C)?(e.consume(C),x):C===47||C===62||Kt(C)?S(C):n(C)}function S(C){return C===47?(e.consume(C),I):C===58||C===95||or(C)?(e.consume(C),w):pe(C)?(s=S,A(C)):je(C)?(e.consume(C),S):I(C)}function w(C){return C===45||C===46||C===58||C===95||fn(C)?(e.consume(C),w):P(C)}function P(C){return C===61?(e.consume(C),f):pe(C)?(s=P,A(C)):je(C)?(e.consume(C),P):S(C)}function f(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),o=C,k):pe(C)?(s=f,A(C)):je(C)?(e.consume(C),f):(e.consume(C),T)}function k(C){return C===o?(e.consume(C),o=void 0,h):C===null?n(C):pe(C)?(s=k,A(C)):(e.consume(C),k)}function T(C){return C===null||C===34||C===39||C===60||C===61||C===96?n(C):C===47||C===62||Kt(C)?S(C):(e.consume(C),T)}function h(C){return C===47||C===62||Kt(C)?S(C):n(C)}function I(C){return C===62?(e.consume(C),e.exit("htmlTextData"),e.exit("htmlText"),t):n(C)}function A(C){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),M}function M(C){return je(C)?Ve(e,z,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(C):z(C)}function z(C){return e.enter("htmlTextData"),s(C)}}var di={name:"labelEnd",resolveAll:P6,resolveTo:L6,tokenize:M6},F6={tokenize:B6},E6={tokenize:D6},A6={tokenize:R6};function P6(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){let o=r.type==="labelImage"?4:2;r.type="data",t+=o}}return e.length!==n.length&&yn(e,0,e.length,n),e}function L6(e,t){let n=e.length,r=0,o,i,s,a;for(;n--;)if(o=e[n][1],i){if(o.type==="link"||o.type==="labelLink"&&o._inactive)break;e[n][0]==="enter"&&o.type==="labelLink"&&(o._inactive=!0)}else if(s){if(e[n][0]==="enter"&&(o.type==="labelImage"||o.type==="labelLink")&&!o._balanced&&(i=n,o.type!=="labelLink")){r=2;break}}else o.type==="labelEnd"&&(s=n);let u={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},c={type:"label",start:{...e[i][1].start},end:{...e[s][1].end}},l={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[s-2][1].start}};return a=[["enter",u,t],["enter",c,t]],a=Dn(a,e.slice(i+1,i+r+3)),a=Dn(a,[["enter",l,t]]),a=Dn(a,os(t.parser.constructs.insideSpan.null,e.slice(i+r+4,s-3),t)),a=Dn(a,[["exit",l,t],e[s-2],e[s-1],["exit",c,t]]),a=Dn(a,e.slice(s+1)),a=Dn(a,[["exit",u,t]]),yn(e,i,e.length,a),e}function M6(e,t,n){let r=this,o=r.events.length,i,s;for(;o--;)if((r.events[o][1].type==="labelImage"||r.events[o][1].type==="labelLink")&&!r.events[o][1]._balanced){i=r.events[o][1];break}return a;function a(g){return i?i._inactive?d(g):(s=r.parser.defined.includes(go(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(g),e.exit("labelMarker"),e.exit("labelEnd"),u):n(g)}function u(g){return g===40?e.attempt(F6,l,s?l:d)(g):g===91?e.attempt(E6,l,s?c:d)(g):s?l(g):d(g)}function c(g){return e.attempt(A6,l,d)(g)}function l(g){return t(g)}function d(g){return i._balanced=!0,n(g)}}function B6(e,t,n){return r;function r(d){return e.enter("resource"),e.enter("resourceMarker"),e.consume(d),e.exit("resourceMarker"),o}function o(d){return Kt(d)?pi(e,i)(d):i(d)}function i(d){return d===41?l(d):_c(e,s,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(d)}function s(d){return Kt(d)?pi(e,u)(d):l(d)}function a(d){return n(d)}function u(d){return d===34||d===39||d===40?Uc(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(d):l(d)}function c(d){return Kt(d)?pi(e,l)(d):l(d)}function l(d){return d===41?(e.enter("resourceMarker"),e.consume(d),e.exit("resourceMarker"),e.exit("resource"),t):n(d)}}function D6(e,t,n){let r=this;return o;function o(a){return $c.call(r,e,i,s,"reference","referenceMarker","referenceString")(a)}function i(a){return r.parser.defined.includes(go(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(a):n(a)}function s(a){return n(a)}}function R6(e,t,n){return r;function r(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),o}function o(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):n(i)}}var tx={name:"labelStartImage",resolveAll:di.resolveAll,tokenize:z6};function z6(e,t,n){let r=this;return o;function o(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),i}function i(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),s):n(a)}function s(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}var nx={name:"labelStartLink",resolveAll:di.resolveAll,tokenize:N6};function N6(e,t,n){let r=this;return o;function o(s){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelLink"),i}function i(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}var Ca={name:"lineEnding",tokenize:O6};function O6(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),Ve(e,t,"linePrefix")}}var gi={name:"thematicBreak",tokenize:_6};function _6(e,t,n){let r=0,o;return i;function i(c){return e.enter("thematicBreak"),s(c)}function s(c){return o=c,a(c)}function a(c){return c===o?(e.enter("thematicBreakSequence"),u(c)):r>=3&&(c===null||pe(c))?(e.exit("thematicBreak"),t(c)):n(c)}function u(c){return c===o?(e.consume(c),r++,u):(e.exit("thematicBreakSequence"),je(c)?Ve(e,a,"whitespace")(c):a(c))}}var In={continuation:{tokenize:H6},exit:V6,name:"list",tokenize:j6},$6={partial:!0,tokenize:G6},U6={partial:!0,tokenize:W6};function j6(e,t,n){let r=this,o=r.events[r.events.length-1],i=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,s=0;return a;function a(p){let m=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Sa(p)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(gi,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(p)}return n(p)}function u(p){return Sa(p)&&++s<10?(e.consume(p),u):(!r.interrupt||s<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Ho,r.interrupt?n:l,e.attempt($6,g,d))}function l(p){return r.containerState.initialBlankLine=!0,i++,g(p)}function d(p){return je(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),g):n(p)}function g(p){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function H6(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Ho,o,i);function o(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ve(e,t,"listItemIndent",r.containerState.size+1)(a)}function i(a){return r.containerState.furtherBlankLines||!je(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,s(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(U6,t,s)(a))}function s(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ve(e,e.attempt(In,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function W6(e,t,n){let r=this;return Ve(e,o,"listItemIndent",r.containerState.size+1);function o(i){let s=r.events[r.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===r.containerState.size?t(i):n(i)}}function V6(e){e.exit(this.containerState.type)}function G6(e,t,n){let r=this;return Ve(e,o,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){let s=r.events[r.events.length-1];return!je(i)&&s&&s[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}var jc={name:"setextUnderline",resolveTo:q6,tokenize:Y6};function q6(e,t){let n=e.length,r,o,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);let s={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",i?(e.splice(o,0,["enter",s,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=s,e.push(["exit",s,t]),e}function Y6(e,t,n){let r=this,o;return i;function i(c){let l=r.events.length,d;for(;l--;)if(r.events[l][1].type!=="lineEnding"&&r.events[l][1].type!=="linePrefix"&&r.events[l][1].type!=="content"){d=r.events[l][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||d)?(e.enter("setextHeadingLine"),o=c,s(c)):n(c)}function s(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===o?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),je(c)?Ve(e,u,"lineSuffix")(c):u(c))}function u(c){return c===null||pe(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}var lT={tokenize:K6};function K6(e){let t=this,n=e.attempt(Ho,r,e.attempt(this.parser.constructs.flowInitial,o,Ve(e,e.attempt(this.parser.constructs.flow,o,e.attempt(Yh,o)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}var cT={resolveAll:gT()},uT=dT("string"),pT=dT("text");function dT(e){return{resolveAll:gT(e==="text"?X6:void 0),tokenize:t};function t(n){let r=this,o=this.parser.constructs[e],i=n.attempt(o,s,a);return s;function s(l){return c(l)?i(l):a(l)}function a(l){if(l===null){n.consume(l);return}return n.enter("data"),n.consume(l),u}function u(l){return c(l)?(n.exit("data"),i(l)):(n.consume(l),u)}function c(l){if(l===null)return!0;let d=o[l],g=-1;if(d)for(;++g<d.length;){let p=d[g];if(!p.previous||p.previous.call(r,r.previous))return!0}return!1}}}function gT(e){return t;function t(n,r){let o=-1,i;for(;++o<=n.length;)i===void 0?n[o]&&n[o][1].type==="data"&&(i=o,o++):(!n[o]||n[o][1].type!=="data")&&(o!==i+2&&(n[i][1].end=n[o-1][1].end,n.splice(i+2,o-i-2),o=i+2),i=void 0);return e?e(n,r):n}}function X6(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){let r=e[n-1][1],o=t.sliceStream(r),i=o.length,s=-1,a=0,u;for(;i--;){let c=o[i];if(typeof c=="string"){for(s=c.length;c.charCodeAt(s-1)===32;)a++,s--;if(s)break;s=-1}else if(c===-2)u=!0,a++;else if(c!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(a=0),a){let c={type:n===e.length||u||a<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?s:r.start._bufferIndex+s,_index:r.start._index+i,line:r.end.line,column:r.end.column-a,offset:r.end.offset-a},end:{...r.end}};r.end={...c.start},r.start.offset===r.end.offset?Object.assign(r,c):(e.splice(n,0,["enter",c,t],["exit",c,t]),n+=2)}n++}return e}var rx={};ye(rx,{attentionMarkers:()=>oU,contentInitial:()=>J6,disable:()=>iU,document:()=>Q6,flow:()=>eU,flowInitial:()=>Z6,insideSpan:()=>rU,string:()=>tU,text:()=>nU});var Q6={42:In,43:In,45:In,48:In,49:In,50:In,51:In,52:In,53:In,54:In,55:In,56:In,57:In,62:Bc},J6={91:Kh},Z6={[-2]:va,[-1]:va,32:va},eU={35:Qh,42:gi,45:[jc,gi],60:Zh,61:jc,95:gi,96:zc,126:zc},tU={38:Rc,92:Dc},nU={[-5]:Ca,[-4]:Ca,[-3]:Ca,33:tx,38:Rc,42:wa,60:[Gh,ex],91:nx,92:[Xh,Dc],93:di,95:wa,96:qh},rU={null:[wa,cT]},oU={null:[42,95]},iU={null:[]};function fT(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},o={},i=[],s=[],a=[],u=!0,c={attempt:S(N),check:S(x),consume:O,enter:$,exit:L,interrupt:S(x,{interrupt:!0})},l={code:null,containerState:{},defineSkip:E,events:[],now:F,parser:e,previous:null,sliceSerialize:m,sliceStream:b,write:p},d=t.tokenize.call(l,c),g;return t.resolveAll&&i.push(t),l;function p(k){return s=Dn(s,k),v(),s[s.length-1]!==null?[]:(w(t,0),l.events=os(i,l.events,l),l.events)}function m(k,T){return aU(b(k),T)}function b(k){return sU(s,k)}function F(){let{_bufferIndex:k,_index:T,line:h,column:I,offset:A}=r;return{_bufferIndex:k,_index:T,line:h,column:I,offset:A}}function E(k){o[k.line]=k.column,f()}function v(){let k;for(;r._index<s.length;){let T=s[r._index];if(typeof T=="string")for(k=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===k&&r._bufferIndex<T.length;)D(T.charCodeAt(r._bufferIndex));else D(T)}}function D(k){u=void 0,g=k,d=d(k)}function O(k){pe(k)?(r.line++,r.column=1,r.offset+=k===-3?2:1,f()):k!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===s[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=k,u=!0}function $(k,T){let h=T||{};return h.type=k,h.start=F(),l.events.push(["enter",h,l]),a.push(h),h}function L(k){let T=a.pop();return T.end=F(),l.events.push(["exit",T,l]),T}function N(k,T){w(k,T.from)}function x(k,T){T.restore()}function S(k,T){return h;function h(I,A,M){let z,C,R,W;return Array.isArray(I)?ie(I):"tokenize"in I?ie([I]):B(I);function B(Fe){return et;function et(ee){let Ee=ee!==null&&Fe[ee],Te=ee!==null&&Fe.null,ue=[...Array.isArray(Ee)?Ee:Ee?[Ee]:[],...Array.isArray(Te)?Te:Te?[Te]:[]];return ie(ue)(ee)}}function ie(Fe){return z=Fe,C=0,Fe.length===0?M:Y(Fe[C])}function Y(Fe){return et;function et(ee){return W=P(),R=Fe,Fe.partial||(l.currentConstruct=Fe),Fe.name&&l.parser.constructs.disable.null.includes(Fe.name)?me(ee):Fe.tokenize.call(T?Object.assign(Object.create(l),T):l,c,se,me)(ee)}}function se(Fe){return u=!0,k(R,W),A}function me(Fe){return u=!0,W.restore(),++C<z.length?Y(z[C]):M}}}function w(k,T){k.resolveAll&&!i.includes(k)&&i.push(k),k.resolve&&yn(l.events,T,l.events.length-T,k.resolve(l.events.slice(T),l)),k.resolveTo&&(l.events=k.resolveTo(l.events,l))}function P(){let k=F(),T=l.previous,h=l.currentConstruct,I=l.events.length,A=Array.from(a);return{from:I,restore:M};function M(){r=k,l.previous=T,l.currentConstruct=h,l.events.length=I,a=A,f()}}function f(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function sU(e,t){let n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex,s;if(n===o)s=[e[n].slice(r,i)];else{if(s=e.slice(n,o),r>-1){let a=s[0];typeof a=="string"?s[0]=a.slice(r):s.shift()}i>0&&s.push(e[o].slice(0,i))}return s}function aU(e,t){let n=-1,r=[],o;for(;++n<e.length;){let i=e[n],s;if(typeof i=="string")s=i;else switch(i){case-5:{s="\r";break}case-4:{s=`
81
+ `,Yoe=rn.div(({theme:e})=>({width:"12px",height:"12px",borderRadius:"50%",border:"2px solid transparent",borderTopColor:e.textMutedColor,animation:`${L5} 0.8s linear infinite`,flexShrink:0})),b1=rn.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:`${e.layoutMargin*.5}px`,padding:`${e.layoutMargin*.3}px ${e.layoutMargin*.9}px`,borderRadius:e.appBorderRadius*2,backgroundColor:e.base==="dark"?"rgba(220, 38, 38, 0.18)":"#fee2e2",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.negative||"#dc2626",whiteSpace:"nowrap"})),M5=rn.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:`${e.layoutMargin*.5}px`,padding:`${e.layoutMargin*.3}px ${e.layoutMargin*.9}px`,borderRadius:e.appBorderRadius*2,backgroundColor:e.base==="dark"?"rgba(22, 163, 74, 0.18)":"#dcfce7",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:e.color.positive||"#16a34a",whiteSpace:"nowrap",position:"relative",overflow:"visible"})),Koe=rn.span(({delay:e,left:t,color:n,size:r})=>({position:"absolute",top:"-10px",left:`${t}%`,width:`${r}px`,height:`${r}px`,backgroundColor:n,borderRadius:r>6?"50%":"2px",animation:`${P5} 2.5s ease-out ${e}s forwards`,pointerEvents:"none",zIndex:1e3}));var fa=rn.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"14px",fontWeight:300})),ma=rn.span(({theme:e,color:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"12px",fontWeight:500,color:t??e.color.mediumdark,whiteSpace:"nowrap"})),S1=rn.span(({theme:e,color:t})=>({fontSize:"12px",color:t??e.color.mediumdark})),ha=rn.span(({color:e})=>({fontWeight:700,color:e})),B5=rn.div(({tint:e,theme:t})=>({display:"inline-flex",alignItems:"center",gap:`${t.layoutMargin*.6}px`,padding:`${t.layoutMargin*.3}px ${t.layoutMargin}px`,borderRadius:t.appBorderRadius*2,backgroundColor:`${e}1a`,border:`1px solid ${e}33`,"& .score-label":{fontSize:t.typography.size.s1,color:t.textMutedColor},"& .score-value":{fontFamily:t.typography.fonts.mono,fontSize:t.typography.size.s2,fontWeight:t.typography.weight.bold,color:e,lineHeight:1},"& .score-dot":{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:e}})),Xoe=rn.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"12px"})),Qoe=rn.span(({color:e=le})=>({display:"inline-block",fontSize:"12px",color:e,animation:`${F5} 1.2s ease-in-out infinite`,marginRight:"4px"})),Joe=rn.span(({theme:e,variant:t="muted"})=>({fontSize:"12px",fontWeight:700,color:(()=>{switch(t){case"issues":return le;case"score-high":return"#16a34a";case"score-medium":return"#ca8a04";case"score-low":return"#dc2626";case"cost":return"#7c3aed";case"tokens":return e.color.mediumdark;case"analyzing":return le;case"verifying":return"#7c3aed";default:return e.color.mediumdark}})(),whiteSpace:"nowrap",...t==="analyzing"||t==="verifying"?{animation:`${A5} 1.5s ease-in-out infinite`}:{}})),Zoe=rn.span(({theme:e})=>({fontSize:"12px",fontWeight:400,color:e.color.mediumdark})),eie=rn.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,fontWeight:400})),D5=rn.span({display:"inline-flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",animation:`${E5} 1.2s linear infinite`,flexShrink:0}),R5=({color:e=le})=>De.createElement(D5,null,De.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none"},Array.from({length:8}).map((t,n)=>{let o=n*360/8*Math.PI/180,i=12+Math.cos(o)*4,s=12+Math.sin(o)*4,a=12+Math.cos(o)*10,u=12+Math.sin(o)*10;return De.createElement("line",{key:n,x1:i,y1:s,x2:a,y2:u,stroke:e,strokeWidth:2,strokeLinecap:"round",opacity:.3+n/8*.7})}))),tie=rn.span(({color:e="#6b7280"})=>({fontSize:"12px",fontWeight:500,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',color:e,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",animation:`${w1} 0.3s ease-out`}));function z5(e){let[t,n]=T5(0);return I5(()=>{if(!e){n(0);return}let r=setInterval(()=>{n(o=>o+1)},1e3);return()=>clearInterval(r)},[e]),t}var v1=({isReviewing:e,isValidating:t,streamingStatus:n,issueCount:r=0,score:o,band:i,visualSimilarity:s,costUsd:a,inputTokens:u,outputTokens:c,showTimer:l=!0,cacheCreationTokens:d,cacheReadTokens:g,durationSeconds:p})=>{let m=z5(e||t),{featureFlags:b}=ue(),I=b.showCosts,E=3.65,k=R=>R<.01?`$${R.toFixed(4)}`:R<.1?`$${R.toFixed(3)}`:`$${R.toFixed(2)}`,D=R=>{let h=R*E;return h<.01?`\u20AA${h.toFixed(4)}`:h<.1?`\u20AA${h.toFixed(3)}`:`\u20AA${h.toFixed(2)}`},N=R=>R>=1e3?`${(R/1e3).toFixed(1)}K`:R.toString(),$=R=>R>=80?"score-high":R>=50?"score-medium":"score-low",L=R=>R>=80?"high":R>=50?"medium":"low";if(e)return De.createElement(Mh,null,De.createElement("span",{style:{fontSize:"12px",color:"#9ca3af"}},m,"s \xB7 Esc to stop"));if(t)return De.createElement(Mh,null,De.createElement(b1,null,De.createElement("span",null,"\u2298"),r," issue",r!==1?"s":""),De.createElement(fa,null,"|"),De.createElement(ma,null,De.createElement(R5,{color:"#7c3aed"}),De.createElement(ha,{color:"#7c3aed"},"Verifying...")),l&&De.createElement(De.Fragment,null,De.createElement(fa,null,"|"),De.createElement(ma,null,De.createElement("span",{style:{color:"#6b7280"}},m,"s"))));if(r>0||o!==void 0){let R=(u||0)+(c||0),h=(g||0)>0,S=h&&u?Math.round(g/u*100):0,w=i?io[i]:100,A=Math.min(Math.max(o??0,s??0),w),f=F=>F>=80?"#16a34a":F>=50?"#ca8a04":"#dc2626",v=F=>F>=100?"\u25CF":F>=50?"\u25D0":"\u25CB";return De.createElement(Mh,null,r===0&&(o===void 0||o>=100)?De.createElement(M5,null,De.createElement("span",null,"\u2713"),"Perfect!"):De.createElement(b1,null,De.createElement("span",null,"\u2298"),r," issue",r!==1?"s":""),De.createElement(B5,{tint:f(A),title:i==="D"?`Band D \u2014 has critical issues. Fix criticals to score above ${io.D}.`:i==="C"?`Band C \u2014 has major issues. Fix majors to score above ${io.C}.`:i==="B"?"Band B \u2014 minor issues only.":i==="A"?"Band A \u2014 no open issues.":`Compliance score: ${A}%`},De.createElement("span",{className:"score-dot"}),De.createElement("span",{className:"score-label"},"Score"),De.createElement("span",{className:"score-value"},A,i?` \xB7 ${i}`:"")),I&&a!==void 0&&a>0&&De.createElement(De.Fragment,null,De.createElement(fa,null,"|"),De.createElement(ma,null,De.createElement(ha,{color:"#16a34a"},k(a)),De.createElement("span",{style:{color:"#6b7280"}},"/"),De.createElement(ha,{color:"#16a34a"},D(a)))),I&&R>0&&De.createElement(De.Fragment,null,De.createElement(fa,null,"|"),De.createElement(ma,{title:`Input: ${u?.toLocaleString()||0} \xB7 Output: ${c?.toLocaleString()||0}${h?` \xB7 Cached: ${g?.toLocaleString()}`:""}`},De.createElement(S1,{color:"#7c3aed"},"#"),De.createElement(ha,{color:"#7c3aed"},N(R)),De.createElement("span",{style:{color:"#6b7280"}},"tokens"),h&&De.createElement("span",{style:{color:"#16a34a",marginLeft:"4px"}},"\u26A1",S,"%"))),p!==void 0&&p>0&&De.createElement(De.Fragment,null,De.createElement(fa,null,"|"),De.createElement(ma,null,De.createElement(S1,{color:"#6b7280"},"\u23F1"),De.createElement(ha,{color:"#6b7280"},p,"s"))))}return null};var U5=Mn.div({display:"flex",flexDirection:"column",gap:"12px",marginBottom:"16px"}),die=Mn.div({display:"flex",gap:"8px",alignItems:"center"}),j5=$5({from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}),H5=Mn.span({display:"inline-block",width:"16px",height:"16px",borderRadius:"50%",border:"2px solid rgba(255, 255, 255, 0.35)",borderTopColor:"#ffffff",animation:`${j5} 0.8s linear infinite`,marginRight:"8px",verticalAlign:"middle"}),W5=Mn.span({display:"inline-flex",alignItems:"center",marginRight:"8px","& svg":{width:"16px",height:"16px"}}),V5=Mn.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin}px`,padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.2}px`,borderRadius:e.appBorderRadius*2,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content,boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)",flexWrap:"wrap"})),G5=Mn.button(({theme:e,variant:t="orange",disabled:n})=>{let r={green:n?e.textMutedColor:e.color.positive||"#10b981",purple:n?e.textMutedColor:"#7c3aed",yellow:n?e.textMutedColor:"#c4b5fd",orange:n?e.textMutedColor:Xa},o=t==="purple"||t==="yellow"?"124, 58, 237":"255, 107, 53";return{width:"auto",backgroundColor:r[t],color:e.color.inverseText,border:"none",padding:`${e.layoutMargin*.7}px ${e.layoutMargin*1.4}px`,fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,borderRadius:e.appBorderRadius,cursor:n?"not-allowed":"pointer",opacity:n?.6:1,whiteSpace:"nowrap",transition:"all 0.2s",boxShadow:n?"none":`0 2px 6px rgba(${o}, 0.3)`,flexShrink:0,"&:hover":{opacity:n?.6:.9,transform:n?"none":"translateY(-1px)",boxShadow:n?"none":`0 4px 10px rgba(${o}, 0.4)`}}}),q5=Mn.div(({theme:e})=>({marginTop:"8px",fontSize:"12px",color:e.color.warning||"#f59e0b",display:"flex",alignItems:"center",gap:"6px"})),Y5=Mn.div({marginLeft:"auto",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",minWidth:0}),K5=Mn(Sn)({width:"auto",minWidth:"180px",maxWidth:"260px"}),k1=Mn.span(({theme:e,variant:t})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,padding:"3px 8px",borderRadius:"10px",whiteSpace:"nowrap",color:t==="latest"?e.color.positive:e.color.mediumdark,backgroundColor:t==="latest"?`${e.color.positive}1a`:e.background.hoverable})),X5=Mn.div({display:"flex",gap:"16px",alignItems:"center",marginTop:"4px"}),C1=Mn.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",fontSize:"12px",color:e.color.defaultText,cursor:"pointer",userSelect:"none"})),T1=Mn.div(({theme:e,checked:t})=>({width:"32px",height:"18px",borderRadius:"9px",backgroundColor:t?Xa:e.appBorderColor||"#d1d5db",position:"relative",transition:"background-color 0.2s ease",flexShrink:0})),I1=Mn.div(({checked:e})=>({width:"14px",height:"14px",borderRadius:"50%",backgroundColor:"#fff",position:"absolute",top:"2px",left:e?"16px":"2px",transition:"left 0.2s ease",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.2)"})),F1=Mn.input({position:"absolute",opacity:0,width:0,height:0}),Q5=()=>{let[e,t]=O5(0),n=_5();E1(()=>(n.current=setInterval(()=>t(s=>s+1),1e3),()=>clearInterval(n.current)),[]);let r=Math.floor(e/60),o=e%60,i=`${r}:${o.toString().padStart(2,"0")}`;return ut.createElement("span",{style:{fontFamily:"ui-monospace, monospace",fontSize:"12px",opacity:.8,fontVariantNumeric:"tabular-nums"}},i)},Bh=()=>{let{sessionToken:e}=Ks(),{usageData:t}=Se(),{selectedProjectId:n}=lo(),{currentMapping:r,hasMapping:o}=si(),{loadingMapping:i,currentStoryId:s}=tt(),{startReview:a,cancelReview:u,isReviewing:c}=Am(),{isLoadingScreenshots:l}=oi(),{storybookImageUrl:d,figmaImageUrl:g,currentReviewId:p,reviewHistory:m,setReviewDetailTab:b,setReviewResults:I,setFigmaImageUrl:E,setStorybookImageUrl:k,setFullPrompt:D,setFullResponse:N,includeTextComparison:$,setIncludeTextComparison:L,usePromptCache:R,setUsePromptCache:h,isValidating:S,validationUsage:w,isGenerating:A,isApplying:f,streamingStatus:v,featureFlags:F,userRole:x,roleOverride:C,isReviewing:P}=ue(),B=t?.reviewCredits??t?.creditBalance??0,O=m.find(ae=>ae.id===p),z=(O?.issues||[]).filter(ae=>!ae.dismissed).length,W=O?Ah(O):null,M=W?.score,ie=W?.band,Y=O?.visualSimilarity,se=(O?.costUsd||0)+(w?.costUsd||0),xe=(O?.inputTokens||0)+(w?.inputTokens||0),Pe=(O?.outputTokens||0)+(w?.outputTokens||0),Ye=N5(()=>{let ae=s?m.filter(_=>_.storyId===s):m,Z=ae.filter(_=>!_.parentReviewId).sort((_,j)=>new Date(j.createdAt).getTime()-new Date(_.createdAt).getTime()),ge=ae.filter(_=>_.parentReviewId),Tt=[];for(let _ of Z){Tt.push(_);let j=ge.filter(H=>H.parentReviewId===_.id).sort((H,X)=>(H.iterationNumber||0)-(X.iterationNumber||0));Tt.push(...j)}let et=ge.filter(_=>!Z.some(j=>j.id===_.parentReviewId));return Tt.push(...et),Tt},[m,s]);E1(()=>{if(!c)return;let ae=Z=>{Z.key==="Escape"&&(Z.preventDefault(),u())};return window.addEventListener("keydown",ae),()=>window.removeEventListener("keydown",ae)},[c,u]);let te=o&&r?.figmaNodeId,Ie=A||f,Te=B>0,pe=!!(e&&n&&!c&&!l&&!Ie&&s&&d&&te&&g&&Te),Be=async(ae=!1)=>{if(!s){console.error("[ReviewActions] No story selected");return}try{b("chat"),await a({isIteration:ae,parentReviewId:ae?p:void 0})}catch(Z){console.error("[ReviewActions] Review error:",Z)}},me=()=>Be(!1),Ze=ae=>{let Z=ae.target.value;if(Z){let ge=m.find(Tt=>Tt.id===Z);ge&&(I({id:ge.id,componentId:ge.componentId,storyId:ge.storyId,modelId:ge.modelId,complianceScore:ge.complianceScore,issuesCount:ge.issuesCount,issues:ge.issues,createdAt:new Date(ge.createdAt),visualSimilarity:ge.visualSimilarity,timestamp:new Date(ge.createdAt).toISOString(),costUsd:ge.costUsd,inputTokens:ge.inputTokens,outputTokens:ge.outputTokens,cacheCreationTokens:ge.cacheCreationTokens,cacheReadTokens:ge.cacheReadTokens,reviewDurationMs:ge.reviewDurationMs}),ge.figmaImageData&&E(ge.figmaImageData),ge.storybookImageData&&k(ge.storybookImageData),(C??x)==="admin"&&(D(ge.aiPrompt||""),N(ge.aiResponse||"")),b("issues"))}},mt=ae=>{let Z=new Date(ae),Tt=new Date().getTime()-Z.getTime(),et=Math.floor(Tt/6e4),_=Math.floor(Tt/36e5),j=Math.floor(Tt/864e5);return et<1?"Just now":et<60?`${et}m ago`:_<24?`${_}h ago`:j<7?`${j}d ago`:Z.toLocaleDateString()},bn=ae=>ae?ae.includes("haiku")?"Haiku":ae.includes("sonnet")?"Sonnet":ae.includes("opus")?"Opus":ae.includes("gpt-4o-mini")?"GPT-4o mini":ae.includes("gpt-4o")?"GPT-4o":ae.includes("gpt-4")?"GPT-4":ae.includes("o3")?"o3":ae.includes("o1")?"o1":ae.split("-")[0]||"":"",br=ae=>{let Z=ae.split("--"),ge=Z[Z.length-1]||ae;return ge.charAt(0).toUpperCase()+ge.slice(1)},rr=(C??x)==="admin";return ut.createElement("div",null,ut.createElement(U5,null,F.enableModelSelection&&ut.createElement(y1,null),rr&&ut.createElement(X5,null,ut.createElement(C1,{title:"Compare text content between Figma design and Storybook component"},ut.createElement(F1,{type:"checkbox",checked:$,onChange:ae=>L(ae.target.checked)}),ut.createElement(T1,{checked:$},ut.createElement(I1,{checked:$})),"Compare text"),F.showCosts&&ut.createElement(C1,{title:"Cache prompt for 5 min to reduce costs on repeat reviews (dev optimization)"},ut.createElement(F1,{type:"checkbox",checked:R,onChange:ae=>h(ae.target.checked)}),ut.createElement(T1,{checked:R},ut.createElement(I1,{checked:R})),"Cache prompt")),ut.createElement(V5,null,ut.createElement(G5,{variant:c?"yellow":"purple",disabled:c?!1:!pe,onClick:c?u:me,title:c?"Click to stop review":e?n?s?te?l?"Loading screenshots...":Ie?"Wait for fixes to complete...":d?g?Te?"Review this component implementation":"No credits \u2014 click \u26A1 in the toolbar to get more":"Waiting for Figma design image...":"Waiting for Storybook screenshot...":'Figma mapping required - use "Map to Figma" in the Review tab':"No story selected":"Please select a project first":`Please connect to ${Et.NAME} first`},c?ut.createElement(ut.Fragment,null,ut.createElement(H5,null),"Reviewing",ut.createElement(Q5,null)):ut.createElement(ut.Fragment,null,ut.createElement(W5,null,ut.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},ut.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),ut.createElement("circle",{cx:"12",cy:"12",r:"3"}))),"Review")),P?null:S||O?ut.createElement(v1,{isReviewing:!1,isValidating:S,streamingStatus:v,issueCount:z,score:M,band:ie,visualSimilarity:Y,costUsd:se||O?.costUsd,inputTokens:xe||O?.inputTokens,outputTokens:Pe||O?.outputTokens,cacheCreationTokens:O?.cacheCreationTokens,cacheReadTokens:O?.cacheReadTokens,durationSeconds:O?.reviewDurationMs?Math.round(O.reviewDurationMs/1e3):void 0}):null,Ye.length>0&&ut.createElement(Y5,null,p&&(p===Ye[0]?.id?ut.createElement(k1,{variant:"latest",title:"You're viewing the most recent review for this story"},"Latest"):ut.createElement(k1,{variant:"older",title:"You're viewing an older review \u2014 pick the top entry to see the latest"},"Older review")),ut.createElement(K5,{value:p||"",onChange:Ze,title:"Review history"},ut.createElement("option",{value:""},"Select a review..."),Ye.map(ae=>{let Z=!!ae.parentReviewId,ge=Z?" \u21B3 ":"\u25CF ",Tt=Z&&ae.iterationNumber?`Iter ${ae.iterationNumber} - `:"",et=ae.issuesCount??ae.issues?.length??0,{score:_,band:j}=Ah(ae),H=ae.complianceScore!=null?_:"--",X=bn(ae.modelId);return ut.createElement("option",{key:ae.id,value:ae.id},ge,Tt,mt(ae.createdAt)," - ",et," issues (",H,"%",j?` \xB7 ${j}`:"",")",F.showCosts&&X?` \xB7 ${X}`:"",!s&&ae.storyId?` \xB7 ${br(ae.storyId)}`:"")}))))),!te&&!i&&ut.createElement(q5,null,'\u26A0\uFE0F Figma mapping required. Use "Map to Figma" button to link this story to a Figma frame before reviewing.'))};import mie,{useState as hie}from"react";import{styled as A1}from"storybook/theming";var bie=A1.div(({theme:e})=>({display:"flex",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"12px",gap:"4px"})),Sie=A1(ko)({padding:"8px 12px",fontSize:"12px"});import kie,{useState as Cie}from"react";import{styled as Dh}from"storybook/theming";ve();Ue();Ne();lt();var Lie=Dh.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px",backgroundColor:e.background.app,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",fontSize:"13px"})),Mie=Dh(Or)({padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"}),Bie=Dh.span(({theme:e})=>({color:e.textMutedColor,fontSize:"12px",flex:1}));import zie from"react";import{styled as J5}from"storybook/theming";var _ie=J5.div(({theme:e})=>({border:`2px dashed ${e.appBorderColor}`,borderRadius:"8px",padding:"40px",textAlign:"center",marginBottom:"20px",backgroundColor:e.background.app}));ve();import jie from"react";import{styled as Gr}from"storybook/theming";var Vie=Gr.div(({theme:e})=>({marginBottom:"16px",border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",backgroundColor:e.background.content})),Gie=Gr.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`})),qie=Gr.div({display:"flex",alignItems:"center",gap:"8px",flex:1}),Yie=Gr.div(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),Kie=Gr.div(({theme:e})=>({flex:1,height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden",marginLeft:"12px"})),Xie=Gr.div(({theme:e,progress:t})=>({height:"100%",backgroundColor:t===100?e.color.positive||"#10b981":e.color.secondary,width:`${t}%`,transition:"width 0.3s ease, background-color 0.3s ease"})),Qie=Gr.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontWeight:500,minWidth:"40px",textAlign:"right"})),Jie=Gr.div(({theme:e})=>({padding:"16px",backgroundColor:e.background.app,textAlign:"center"})),Zie=Gr.div(({theme:e})=>({display:"inline-block",width:"14px",height:"14px",border:`2px solid ${e.appBorderColor}`,borderTopColor:e.color.secondary,borderRadius:"50%",animation:"spin 0.8s linear infinite",marginLeft:"8px","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),ese=Gr.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontStyle:"italic"}));ve();import rse,{useState as ose}from"react";import{styled as qr}from"storybook/theming";var ase=qr.div(({theme:e})=>{let t=(e.base==="dark","102, 126, 234");return{padding:"10px 12px",backgroundColor:`rgba(${t}, 0.08)`,borderRadius:"6px",marginBottom:"16px",border:`1px solid rgba(${t}, 0.2)`}}),lse=qr.div({display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",userSelect:"none"}),cse=qr.div({display:"flex",alignItems:"center",gap:"8px"}),use=qr.span({fontSize:"12px",opacity:.7}),pse=qr.span({fontSize:"13px",fontWeight:500}),dse=qr.div(({score:e,theme:t})=>({display:"inline-block",padding:"4px 10px",borderRadius:"12px",fontSize:"13px",fontWeight:600,backgroundColor:e>=90?t.color.positive||"#10b981":e>=70?t.color.warning||"#f59e0b":t.color.negative||"#ef4444",color:t.color.inverseText})),gse=qr.div({marginTop:"12px",fontSize:"11px"}),fse=qr.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px",marginBottom:"8px"}),mse=qr.div(({status:e,theme:t})=>({display:"flex",alignItems:"center",gap:"4px",color:e==="success"?"inherit":e==="success"?t.color.positive||"#10b981":e==="warning"?t.color.warning||"#f59e0b":t.color.negative||"#ef4444"})),hse=qr.span({fontSize:"12px"});Ne();Ue();import Jt from"react";import{styled as ds}from"storybook/theming";import zr,{useEffect as QW}from"react";import{styled as Ba}from"storybook/theming";ve();import hi,{useState as fj}from"react";import{styled as cs}from"storybook/theming";var P1={fontBase:'"Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontMono:'"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace',sizeXs:"11px",sizeSm:"12px",sizeMd:"13px",sizeLg:"14px",sizeXl:"16px",weightRegular:400,weightMedium:500,weightBold:600};function L1(e,t){let n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}var Z5=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,e3=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,t3={};function Mc(e,t){return((t||t3).jsx?e3:Z5).test(e)}var n3=/[ \t\n\f\r]/g;function Rh(e){return typeof e=="object"?e.type==="text"?M1(e.value):!1:M1(e)}function M1(e){return e.replace(n3,"")===""}var fo=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};fo.prototype.normal={};fo.prototype.property={};fo.prototype.space=void 0;function zh(e,t){let n={},r={};for(let o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new fo(n,r,t)}function xa(e){return e.toLowerCase()}var pn=class{constructor(t,n){this.attribute=n,this.property=t}};pn.prototype.attribute="";pn.prototype.booleanish=!1;pn.prototype.boolean=!1;pn.prototype.commaOrSpaceSeparated=!1;pn.prototype.commaSeparated=!1;pn.prototype.defined=!1;pn.prototype.mustUseProperty=!1;pn.prototype.number=!1;pn.prototype.overloadedBoolean=!1;pn.prototype.property="";pn.prototype.spaceSeparated=!1;pn.prototype.space=void 0;var ya={};ye(ya,{boolean:()=>We,booleanish:()=>Ut,commaOrSpaceSeparated:()=>Gn,commaSeparated:()=>Uo,number:()=>K,overloadedBoolean:()=>Bc,spaceSeparated:()=>kt});var r3=0,We=ci(),Ut=ci(),Bc=ci(),K=ci(),kt=ci(),Uo=ci(),Gn=ci();function ci(){return 2**++r3}var Nh=Object.keys(ya),ui=class extends pn{constructor(t,n,r,o){let i=-1;if(super(t,n),B1(this,"space",o),typeof r=="number")for(;++i<Nh.length;){let s=Nh[i];B1(this,Nh[i],(r&ya[s])===ya[s])}}};ui.prototype.defined=!0;function B1(e,t,n){n&&(e[t]=n)}function mr(e){let t={},n={};for(let[r,o]of Object.entries(e.properties)){let i=new ui(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[xa(r)]=r,n[xa(i.attribute)]=r}return new fo(t,n,e.space)}var Oh=mr({properties:{ariaActiveDescendant:null,ariaAtomic:Ut,ariaAutoComplete:null,ariaBusy:Ut,ariaChecked:Ut,ariaColCount:K,ariaColIndex:K,ariaColSpan:K,ariaControls:kt,ariaCurrent:null,ariaDescribedBy:kt,ariaDetails:null,ariaDisabled:Ut,ariaDropEffect:kt,ariaErrorMessage:null,ariaExpanded:Ut,ariaFlowTo:kt,ariaGrabbed:Ut,ariaHasPopup:null,ariaHidden:Ut,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:kt,ariaLevel:K,ariaLive:null,ariaModal:Ut,ariaMultiLine:Ut,ariaMultiSelectable:Ut,ariaOrientation:null,ariaOwns:kt,ariaPlaceholder:null,ariaPosInSet:K,ariaPressed:Ut,ariaReadOnly:Ut,ariaRelevant:null,ariaRequired:Ut,ariaRoleDescription:kt,ariaRowCount:K,ariaRowIndex:K,ariaRowSpan:K,ariaSelected:Ut,ariaSetSize:K,ariaSort:null,ariaValueMax:K,ariaValueMin:K,ariaValueNow:K,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Dc(e,t){return t in e?e[t]:t}function Rc(e,t){return Dc(e,t.toLowerCase())}var D1=mr({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Uo,acceptCharset:kt,accessKey:kt,action:null,allow:null,allowFullScreen:We,allowPaymentRequest:We,allowUserMedia:We,alt:null,as:null,async:We,autoCapitalize:null,autoComplete:kt,autoFocus:We,autoPlay:We,blocking:kt,capture:null,charSet:null,checked:We,cite:null,className:kt,cols:K,colSpan:null,content:null,contentEditable:Ut,controls:We,controlsList:kt,coords:K|Uo,crossOrigin:null,data:null,dateTime:null,decoding:null,default:We,defer:We,dir:null,dirName:null,disabled:We,download:Bc,draggable:Ut,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:We,formTarget:null,headers:kt,height:K,hidden:Bc,high:K,href:null,hrefLang:null,htmlFor:kt,httpEquiv:kt,id:null,imageSizes:null,imageSrcSet:null,inert:We,inputMode:null,integrity:null,is:null,isMap:We,itemId:null,itemProp:kt,itemRef:kt,itemScope:We,itemType:kt,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:We,low:K,manifest:null,max:null,maxLength:K,media:null,method:null,min:null,minLength:K,multiple:We,muted:We,name:null,nonce:null,noModule:We,noValidate:We,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:We,optimum:K,pattern:null,ping:kt,placeholder:null,playsInline:We,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:We,referrerPolicy:null,rel:kt,required:We,reversed:We,rows:K,rowSpan:K,sandbox:kt,scope:null,scoped:We,seamless:We,selected:We,shadowRootClonable:We,shadowRootDelegatesFocus:We,shadowRootMode:null,shape:null,size:K,sizes:null,slot:null,span:K,spellCheck:Ut,src:null,srcDoc:null,srcLang:null,srcSet:null,start:K,step:null,style:null,tabIndex:K,target:null,title:null,translate:null,type:null,typeMustMatch:We,useMap:null,value:Ut,width:K,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:kt,axis:null,background:null,bgColor:null,border:K,borderColor:null,bottomMargin:K,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:We,declare:We,event:null,face:null,frame:null,frameBorder:null,hSpace:K,leftMargin:K,link:null,longDesc:null,lowSrc:null,marginHeight:K,marginWidth:K,noResize:We,noHref:We,noShade:We,noWrap:We,object:null,profile:null,prompt:null,rev:null,rightMargin:K,rules:null,scheme:null,scrolling:Ut,standby:null,summary:null,text:null,topMargin:K,valueType:null,version:null,vAlign:null,vLink:null,vSpace:K,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:We,disableRemotePlayback:We,prefix:null,property:null,results:K,security:null,unselectable:null},space:"html",transform:Rc});var R1=mr({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Gn,accentHeight:K,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:K,amplitude:K,arabicForm:null,ascent:K,attributeName:null,attributeType:null,azimuth:K,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:K,by:null,calcMode:null,capHeight:K,className:kt,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:K,diffuseConstant:K,direction:null,display:null,dur:null,divisor:K,dominantBaseline:null,download:We,dx:null,dy:null,edgeMode:null,editable:null,elevation:K,enableBackground:null,end:null,event:null,exponent:K,externalResourcesRequired:null,fill:null,fillOpacity:K,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Uo,g2:Uo,glyphName:Uo,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:K,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:K,horizOriginX:K,horizOriginY:K,id:null,ideographic:K,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:K,k:K,k1:K,k2:K,k3:K,k4:K,kernelMatrix:Gn,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:K,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:K,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:K,overlineThickness:K,paintOrder:null,panose1:null,path:null,pathLength:K,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:kt,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:K,pointsAtY:K,pointsAtZ:K,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Gn,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Gn,rev:Gn,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Gn,requiredFeatures:Gn,requiredFonts:Gn,requiredFormats:Gn,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:K,specularExponent:K,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:K,strikethroughThickness:K,string:null,stroke:null,strokeDashArray:Gn,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:K,strokeOpacity:K,strokeWidth:null,style:null,surfaceScale:K,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Gn,tabIndex:K,tableValues:null,target:null,targetX:K,targetY:K,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Gn,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:K,underlineThickness:K,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:K,values:null,vAlphabetic:K,vMathematical:K,vectorEffect:null,vHanging:K,vIdeographic:K,version:null,vertAdvY:K,vertOriginX:K,vertOriginY:K,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:K,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Dc});var _h=mr({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}});var $h=mr({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Rc});var Uh=mr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}});var jh={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var o3=/[A-Z]/g,z1=/-[a-z]/g,i3=/^data[-\w.:]+$/i;function Hh(e,t){let n=xa(t),r=t,o=pn;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&i3.test(t)){if(t.charAt(4)==="-"){let i=t.slice(5).replace(z1,a3);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{let i=t.slice(4);if(!z1.test(i)){let s=i.replace(o3,s3);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}o=ui}return new o(r,t)}function s3(e){return"-"+e.toLowerCase()}function a3(e){return e.charAt(1).toUpperCase()}var N1=zh([Oh,D1,_h,$h,Uh],"html"),zc=zh([Oh,R1,_h,$h,Uh],"svg");function O1(e){return e.join(" ").trim()}var Z1=Ka(K1(),1);var Oc=X1("end"),rs=X1("start");function X1(e){return t;function t(n){let r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Gh(e){let t=rs(e),n=Oc(e);if(t&&n)return{start:t,end:n}}function jo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Q1(e.position):"start"in e||"end"in e?Q1(e):"line"in e||"column"in e?qh(e):""}function qh(e){return J1(e&&e.line)+":"+J1(e&&e.column)}function Q1(e){return qh(e&&e.start)+"-"+qh(e&&e.end)}function J1(e){return e&&typeof e=="number"?e:1}var Gt=class extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let o="",i={},s=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?o=t:!i.cause&&t&&(s=!0,o=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){let u=r.indexOf(":");u===-1?i.ruleId=r:(i.source=r.slice(0,u),i.ruleId=r.slice(u+1))}if(!i.place&&i.ancestors&&i.ancestors){let u=i.ancestors[i.ancestors.length-1];u&&(i.place=u.position)}let a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=a?a.line:void 0,this.name=jo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=s&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};Gt.prototype.file="";Gt.prototype.name="";Gt.prototype.reason="";Gt.prototype.message="";Gt.prototype.stack="";Gt.prototype.column=void 0;Gt.prototype.line=void 0;Gt.prototype.ancestors=void 0;Gt.prototype.cause=void 0;Gt.prototype.fatal=void 0;Gt.prototype.place=void 0;Gt.prototype.ruleId=void 0;Gt.prototype.source=void 0;var Yh={}.hasOwnProperty,B3=new Map,D3=/[A-Z]/g,R3=new Set(["table","tbody","thead","tfoot","tr"]),z3=new Set(["td","th"]),eT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Kh(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=W3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=H3(n,t.jsx,t.jsxs)}let o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?zc:N1,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=tT(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function tT(e,t,n){if(t.type==="element")return N3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return O3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return $3(e,t,n);if(t.type==="mdxjsEsm")return _3(e,t);if(t.type==="root")return U3(e,t,n);if(t.type==="text")return j3(e,t)}function N3(e,t,n){let r=e.schema,o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=zc,e.schema=o),e.ancestors.push(t);let i=rT(e,t.tagName,!1),s=V3(e,t),a=Qh(e,t);return R3.has(t.tagName)&&(a=a.filter(function(u){return typeof u=="string"?!Rh(u):!0})),nT(e,s,i,t),Xh(s,a),e.ancestors.pop(),e.schema=r,e.create(t,i,s,n)}function O3(e,t){if(t.data&&t.data.estree&&e.evaluater){let r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}Sa(e,t.position)}function _3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Sa(e,t.position)}function $3(e,t,n){let r=e.schema,o=r;t.name==="svg"&&r.space==="html"&&(o=zc,e.schema=o),e.ancestors.push(t);let i=t.name===null?e.Fragment:rT(e,t.name,!0),s=G3(e,t),a=Qh(e,t);return nT(e,s,i,t),Xh(s,a),e.ancestors.pop(),e.schema=r,e.create(t,i,s,n)}function U3(e,t,n){let r={};return Xh(r,Qh(e,t)),e.create(t,e.Fragment,r,n)}function j3(e,t){return t.value}function nT(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Xh(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function H3(e,t,n){return r;function r(o,i,s,a){let c=Array.isArray(s.children)?n:t;return a?c(i,s,a):c(i,s)}}function W3(e,t){return n;function n(r,o,i,s){let a=Array.isArray(i.children),u=rs(r);return t(o,i,s,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function V3(e,t){let n={},r,o;for(o in t.properties)if(o!=="children"&&Yh.call(t.properties,o)){let i=q3(e,o,t.properties[o]);if(i){let[s,a]=i;e.tableCellAlignToStyle&&s==="align"&&typeof a=="string"&&z3.has(t.tagName)?r=a:n[s]=a}}if(r){let i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function G3(e,t){let n={};for(let r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){let i=r.data.estree.body[0];i.type;let s=i.expression;s.type;let a=s.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else Sa(e,t.position);else{let o=r.name,i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){let a=r.value.data.estree.body[0];a.type,i=e.evaluater.evaluateExpression(a.expression)}else Sa(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function Qh(e,t){let n=[],r=-1,o=e.passKeys?new Map:B3;for(;++r<t.children.length;){let i=t.children[r],s;if(e.passKeys){let u=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(u){let c=o.get(u)||0;s=u+"-"+c,o.set(u,c+1)}}let a=tT(e,i,s);a!==void 0&&n.push(a)}return n}function q3(e,t,n){let r=Hh(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?L1(n):O1(n)),r.property==="style"){let o=typeof n=="object"?n:Y3(e,String(n));return e.stylePropertyNameCase==="css"&&(o=K3(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?jh[r.property]||r.property:r.attribute,n]}}function Y3(e,t){try{return(0,Z1.default)(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let r=n,o=new Gt("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw o.file=e.filePath||void 0,o.url=eT+"#cannot-parse-style-attribute",o}}function rT(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){let o=t.split("."),i=-1,s;for(;++i<o.length;){let a=Mc(o[i])?{type:"Identifier",name:o[i]}:{type:"Literal",value:o[i]};s=s?{type:"MemberExpression",object:s,property:a,computed:!!(i&&a.type==="Literal"),optional:!1}:a}r=s}else r=Mc(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){let o=r.value;return Yh.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);Sa(e)}function Sa(e,t){let n=new Gt("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=eT+"#cannot-handle-mdx-estrees-without-createevaluater",n}function K3(e){let t={},n;for(n in e)Yh.call(e,n)&&(t[X3(n)]=e[n]);return t}function X3(e){let t=e.replace(D3,Q3);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function Q3(e){return"-"+e.toLowerCase()}var wa={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]};import{Fragment as ij,jsx as sj,jsxs as aj}from"react/jsx-runtime";import{useEffect as Ege,useState as Age}from"react";var J3={};function Jh(e,t){let n=t||J3,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return iT(e,r,o)}function iT(e,t,n){if(Z3(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return oT(e.children,t,n)}return Array.isArray(e)?oT(e,t,n):""}function oT(e,t,n){let r=[],o=-1;for(;++o<e.length;)r[o]=iT(e[o],t,n);return r.join("")}function Z3(e){return!!(e&&typeof e=="object")}var sT=document.createElement("i");function os(e){let t="&"+e+";";sT.innerHTML=t;let n=sT.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function xn(e,t,n,r){let o=e.length,i=0,s;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)s=Array.from(r),s.unshift(t,n),e.splice(...s);else for(n&&e.splice(t,n);i<r.length;)s=r.slice(i,i+1e4),s.unshift(t,0),e.splice(...s),i+=1e4,t+=1e4}function Bn(e,t){return e.length>0?(xn(e,e.length,0,t),e):t}var aT={}.hasOwnProperty;function lT(e){let t={},n=-1;for(;++n<e.length;)e6(t,e[n]);return t}function e6(e,t){let n;for(n in t){let o=(aT.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],s;if(i)for(s in i){aT.call(o,s)||(o[s]=[]);let a=i[s];t6(o[s],Array.isArray(a)?a:a?[a]:[])}}}function t6(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);xn(e,0,0,r)}function _c(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"\uFFFD":String.fromCodePoint(n)}function mo(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var nr=Ho(/[A-Za-z]/),dn=Ho(/[\dA-Za-z]/),cT=Ho(/[#-'*+\--9=?A-Z^-~]/);function va(e){return e!==null&&(e<32||e===127)}var ka=Ho(/\d/),uT=Ho(/[\dA-Fa-f]/),pT=Ho(/[!-/:-@[-`{-~]/);function de(e){return e!==null&&e<-2}function qt(e){return e!==null&&(e<0||e===32)}function je(e){return e===-2||e===-1||e===32}var dT=Ho(/\p{P}|\p{S}/u),gT=Ho(/\s/);function Ho(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function hr(e){let t=[],n=-1,r=0,o=0;for(;++n<e.length;){let i=e.charCodeAt(n),s="";if(i===37&&dn(e.charCodeAt(n+1))&&dn(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(s=String.fromCharCode(i));else if(i>55295&&i<57344){let a=e.charCodeAt(n+1);i<56320&&a>56319&&a<57344?(s=String.fromCharCode(i,a),o=1):s="\uFFFD"}else s=String.fromCharCode(i);s&&(t.push(e.slice(r,n),encodeURIComponent(s)),r=n+o+1,s=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function Ve(e,t,n,r){let o=r?r-1:Number.POSITIVE_INFINITY,i=0;return s;function s(u){return je(u)?(e.enter(n),a(u)):t(u)}function a(u){return je(u)&&i++<o?(e.consume(u),a):(e.exit(n),t(u))}}var fT={tokenize:n6};function n6(e){let t=e.attempt(this.parser.constructs.contentInitial,r,o),n;return t;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),Ve(e,t,"linePrefix")}function o(a){return e.enter("paragraph"),i(a)}function i(a){let u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,s(a)}function s(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return de(a)?(e.consume(a),e.exit("chunkText"),i):(e.consume(a),s)}}var hT={tokenize:r6},mT={tokenize:o6};function r6(e){let t=this,n=[],r=0,o,i,s;return a;function a(D){if(r<n.length){let N=n[r];return t.containerState=N[1],e.attempt(N[0].continuation,u,c)(D)}return c(D)}function u(D){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&k();let N=t.events.length,$=N,L;for(;$--;)if(t.events[$][0]==="exit"&&t.events[$][1].type==="chunkFlow"){L=t.events[$][1].end;break}E(r);let R=N;for(;R<t.events.length;)t.events[R][1].end={...L},R++;return xn(t.events,$+1,0,t.events.slice(N)),t.events.length=R,c(D)}return a(D)}function c(D){if(r===n.length){if(!o)return g(D);if(o.currentConstruct&&o.currentConstruct.concrete)return m(D);t.interrupt=!!(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(mT,l,d)(D)}function l(D){return o&&k(),E(r),g(D)}function d(D){return t.parser.lazy[t.now().line]=r!==n.length,s=t.now().offset,m(D)}function g(D){return t.containerState={},e.attempt(mT,p,m)(D)}function p(D){return r++,n.push([t.currentConstruct,t.containerState]),g(D)}function m(D){if(D===null){o&&k(),E(0),e.consume(D);return}return o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:o,contentType:"flow",previous:i}),b(D)}function b(D){if(D===null){I(e.exit("chunkFlow"),!0),E(0),e.consume(D);return}return de(D)?(e.consume(D),I(e.exit("chunkFlow")),r=0,t.interrupt=void 0,a):(e.consume(D),b)}function I(D,N){let $=t.sliceStream(D);if(N&&$.push(null),D.previous=i,i&&(i.next=D),i=D,o.defineSkip(D.start),o.write($),t.parser.lazy[D.start.line]){let L=o.events.length;for(;L--;)if(o.events[L][1].start.offset<s&&(!o.events[L][1].end||o.events[L][1].end.offset>s))return;let R=t.events.length,h=R,S,w;for(;h--;)if(t.events[h][0]==="exit"&&t.events[h][1].type==="chunkFlow"){if(S){w=t.events[h][1].end;break}S=!0}for(E(r),L=R;L<t.events.length;)t.events[L][1].end={...w},L++;xn(t.events,h+1,0,t.events.slice(R)),t.events.length=L}}function E(D){let N=n.length;for(;N-- >D;){let $=n[N];t.containerState=$[1],$[0].exit.call(t,e)}n.length=D}function k(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function o6(e,t,n){return Ve(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Zh(e){if(e===null||qt(e)||gT(e))return 1;if(dT(e))return 2}function is(e,t,n){let r=[],o=-1;for(;++o<e.length;){let i=e[o].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}var Ca={name:"attention",resolveAll:i6,tokenize:s6};function i6(e,t){let n=-1,r,o,i,s,a,u,c,l;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;u=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},g={...e[n][1].start};xT(d,-u),xT(g,u),s={type:u>1?"strongSequence":"emphasisSequence",start:d,end:{...e[r][1].end}},a={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},i={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},o={type:u>1?"strong":"emphasis",start:{...s.start},end:{...a.end}},e[r][1].end={...s.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=Bn(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=Bn(c,[["enter",o,t],["enter",s,t],["exit",s,t],["enter",i,t]]),c=Bn(c,is(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=Bn(c,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(l=2,c=Bn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):l=0,xn(e,r-1,n-r+3,c),n=r+c.length-l-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function s6(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=Zh(r),i;return s;function s(u){return i=u,e.enter("attentionSequence"),a(u)}function a(u){if(u===i)return e.consume(u),a;let c=e.exit("attentionSequence"),l=Zh(u),d=!l||l===2&&o||n.includes(u),g=!o||o===2&&l||n.includes(r);return c._open=!!(i===42?d:d&&(o||!g)),c._close=!!(i===42?g:g&&(l||!d)),t(u)}}function xT(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var ex={name:"autolink",tokenize:a6};function a6(e,t,n){let r=0;return o;function o(p){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(p){return nr(p)?(e.consume(p),s):p===64?n(p):c(p)}function s(p){return p===43||p===45||p===46||dn(p)?(r=1,a(p)):c(p)}function a(p){return p===58?(e.consume(p),r=0,u):(p===43||p===45||p===46||dn(p))&&r++<32?(e.consume(p),a):(r=0,c(p))}function u(p){return p===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):p===null||p===32||p===60||va(p)?n(p):(e.consume(p),u)}function c(p){return p===64?(e.consume(p),l):cT(p)?(e.consume(p),c):n(p)}function l(p){return dn(p)?d(p):n(p)}function d(p){return p===46?(e.consume(p),r=0,l):p===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):g(p)}function g(p){if((p===45||dn(p))&&r++<63){let m=p===45?g:d;return e.consume(p),m}return n(p)}}var Wo={partial:!0,tokenize:l6};function l6(e,t,n){return r;function r(i){return je(i)?Ve(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||de(i)?t(i):n(i)}}var $c={continuation:{tokenize:u6},exit:p6,name:"blockQuote",tokenize:c6};function c6(e,t,n){let r=this;return o;function o(s){if(s===62){let a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(s),e.exit("blockQuoteMarker"),i}return n(s)}function i(s){return je(s)?(e.enter("blockQuotePrefixWhitespace"),e.consume(s),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(s))}}function u6(e,t,n){let r=this;return o;function o(s){return je(s)?Ve(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s):i(s)}function i(s){return e.attempt($c,t,n)(s)}}function p6(e){e.exit("blockQuote")}var Uc={name:"characterEscape",tokenize:d6};function d6(e,t,n){return r;function r(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),o}function o(i){return pT(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}var jc={name:"characterReference",tokenize:g6};function g6(e,t,n){let r=this,o=0,i,s;return a;function a(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),u}function u(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),i=31,s=dn,l(d))}function c(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,s=uT,l):(e.enter("characterReferenceValue"),i=7,s=ka,l(d))}function l(d){if(d===59&&o){let g=e.exit("characterReferenceValue");return s===dn&&!os(r.sliceSerialize(g))?n(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return s(d)&&o++<i?(e.consume(d),l):n(d)}}var yT={partial:!0,tokenize:m6},Hc={concrete:!0,name:"codeFenced",tokenize:f6};function f6(e,t,n){let r=this,o={partial:!0,tokenize:$},i=0,s=0,a;return u;function u(L){return c(L)}function c(L){let R=r.events[r.events.length-1];return i=R&&R[1].type==="linePrefix"?R[2].sliceSerialize(R[1],!0).length:0,a=L,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(L)}function l(L){return L===a?(s++,e.consume(L),l):s<3?n(L):(e.exit("codeFencedFenceSequence"),je(L)?Ve(e,d,"whitespace")(L):d(L))}function d(L){return L===null||de(L)?(e.exit("codeFencedFence"),r.interrupt?t(L):e.check(yT,b,N)(L)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(L))}function g(L){return L===null||de(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),d(L)):je(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ve(e,p,"whitespace")(L)):L===96&&L===a?n(L):(e.consume(L),g)}function p(L){return L===null||de(L)?d(L):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),m(L))}function m(L){return L===null||de(L)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),d(L)):L===96&&L===a?n(L):(e.consume(L),m)}function b(L){return e.attempt(o,N,I)(L)}function I(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),E}function E(L){return i>0&&je(L)?Ve(e,k,"linePrefix",i+1)(L):k(L)}function k(L){return L===null||de(L)?e.check(yT,b,N)(L):(e.enter("codeFlowValue"),D(L))}function D(L){return L===null||de(L)?(e.exit("codeFlowValue"),k(L)):(e.consume(L),D)}function N(L){return e.exit("codeFenced"),t(L)}function $(L,R,h){let S=0;return w;function w(x){return L.enter("lineEnding"),L.consume(x),L.exit("lineEnding"),A}function A(x){return L.enter("codeFencedFence"),je(x)?Ve(L,f,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(x):f(x)}function f(x){return x===a?(L.enter("codeFencedFenceSequence"),v(x)):h(x)}function v(x){return x===a?(S++,L.consume(x),v):S>=s?(L.exit("codeFencedFenceSequence"),je(x)?Ve(L,F,"whitespace")(x):F(x)):h(x)}function F(x){return x===null||de(x)?(L.exit("codeFencedFence"),R(x)):h(x)}}}function m6(e,t,n){let r=this;return o;function o(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i)}function i(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}var Ta={name:"codeIndented",tokenize:x6},h6={partial:!0,tokenize:y6};function x6(e,t,n){let r=this;return o;function o(c){return e.enter("codeIndented"),Ve(e,i,"linePrefix",5)(c)}function i(c){let l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?s(c):n(c)}function s(c){return c===null?u(c):de(c)?e.attempt(h6,s,u)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||de(c)?(e.exit("codeFlowValue"),s(c)):(e.consume(c),a)}function u(c){return e.exit("codeIndented"),t(c)}}function y6(e,t,n){let r=this;return o;function o(s){return r.parser.lazy[r.now().line]?n(s):de(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o):Ve(e,i,"linePrefix",5)(s)}function i(s){let a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(s):de(s)?o(s):n(s)}}var tx={name:"codeText",previous:S6,resolve:b6,tokenize:w6};function b6(e){let t=e.length-4,n=3,r,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)o===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(o=r):(r===t||e[r][1].type==="lineEnding")&&(e[o][1].type="codeTextData",r!==o+2&&(e[o][1].end=e[r-1][1].end,e.splice(o+2,r-o-2),t-=r-o-2,r=o+2),o=void 0);return e}function S6(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function w6(e,t,n){let r=this,o=0,i,s;return a;function a(g){return e.enter("codeText"),e.enter("codeTextSequence"),u(g)}function u(g){return g===96?(e.consume(g),o++,u):(e.exit("codeTextSequence"),c(g))}function c(g){return g===null?n(g):g===32?(e.enter("space"),e.consume(g),e.exit("space"),c):g===96?(s=e.enter("codeTextSequence"),i=0,d(g)):de(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),c):(e.enter("codeTextData"),l(g))}function l(g){return g===null||g===32||g===96||de(g)?(e.exit("codeTextData"),c(g)):(e.consume(g),l)}function d(g){return g===96?(e.consume(g),i++,d):i===o?(e.exit("codeTextSequence"),e.exit("codeText"),t(g)):(s.type="codeTextData",l(g))}}var Wc=class{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){let r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){let o=n||0;this.setCursor(Math.trunc(t));let i=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return r&&Ia(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Ia(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Ia(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){let n=this.left.splice(t,Number.POSITIVE_INFINITY);Ia(this.right,n.reverse())}else{let n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Ia(this.left,n.reverse())}}};function Ia(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Vc(e){let t={},n=-1,r,o,i,s,a,u,c,l=new Wc(e);for(;++n<l.length;){for(;n in t;)n=t[n];if(r=l.get(n),n&&r[1].type==="chunkFlow"&&l.get(n-1)[1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,i=0,i<u.length&&u[i][1].type==="lineEndingBlank"&&(i+=2),i<u.length&&u[i][1].type==="content"))for(;++i<u.length&&u[i][1].type!=="content";)u[i][1].type==="chunkText"&&(u[i][1]._isInFirstContentOfListItem=!0,i++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,v6(l,n)),n=t[n],c=!0);else if(r[1]._container){for(i=n,o=void 0;i--;)if(s=l.get(i),s[1].type==="lineEnding"||s[1].type==="lineEndingBlank")s[0]==="enter"&&(o&&(l.get(o)[1].type="lineEndingBlank"),s[1].type="lineEnding",o=i);else if(!(s[1].type==="linePrefix"||s[1].type==="listItemIndent"))break;o&&(r[1].end={...l.get(o)[1].start},a=l.slice(o,n),a.unshift(r),l.splice(o,n-o+1,a))}}return xn(e,0,Number.POSITIVE_INFINITY,l.slice(0)),!c}function v6(e,t){let n=e.get(t)[1],r=e.get(t)[2],o=t-1,i=[],s=n._tokenizer;s||(s=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(s._contentTypeTextTrailing=!0));let a=s.events,u=[],c={},l,d,g=-1,p=n,m=0,b=0,I=[b];for(;p;){for(;e.get(++o)[1]!==p;);i.push(o),p._tokenizer||(l=r.sliceStream(p),p.next||l.push(null),d&&s.defineSkip(p.start),p._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=!0),s.write(l),p._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++g<a.length;)a[g][0]==="exit"&&a[g-1][0]==="enter"&&a[g][1].type===a[g-1][1].type&&a[g][1].start.line!==a[g][1].end.line&&(b=g+1,I.push(b),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(s.events=[],p?(p._tokenizer=void 0,p.previous=void 0):I.pop(),g=I.length;g--;){let E=a.slice(I[g],I[g+1]),k=i.pop();u.push([k,k+E.length-1]),e.splice(k,2,E)}for(u.reverse(),g=-1;++g<u.length;)c[m+u[g][0]]=m+u[g][1],m+=u[g][1]-u[g][0]-1;return c}var nx={resolve:C6,tokenize:T6},k6={partial:!0,tokenize:I6};function C6(e){return Vc(e),e}function T6(e,t){let n;return r;function r(a){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(a)}function o(a){return a===null?i(a):de(a)?e.check(k6,s,i)(a):(e.consume(a),o)}function i(a){return e.exit("chunkContent"),e.exit("content"),t(a)}function s(a){return e.consume(a),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,o}}function I6(e,t,n){let r=this;return o;function o(s){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Ve(e,i,"linePrefix")}function i(s){if(s===null||de(s))return n(s);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(s):e.interrupt(r.parser.constructs.flow,n,t)(s)}}function Gc(e,t,n,r,o,i,s,a,u){let c=u||Number.POSITIVE_INFINITY,l=0;return d;function d(E){return E===60?(e.enter(r),e.enter(o),e.enter(i),e.consume(E),e.exit(i),g):E===null||E===32||E===41||va(E)?n(E):(e.enter(r),e.enter(s),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(E))}function g(E){return E===62?(e.enter(i),e.consume(E),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(E))}function p(E){return E===62?(e.exit("chunkString"),e.exit(a),g(E)):E===null||E===60||de(E)?n(E):(e.consume(E),E===92?m:p)}function m(E){return E===60||E===62||E===92?(e.consume(E),p):p(E)}function b(E){return!l&&(E===null||E===41||qt(E))?(e.exit("chunkString"),e.exit(a),e.exit(s),e.exit(r),t(E)):l<c&&E===40?(e.consume(E),l++,b):E===41?(e.consume(E),l--,b):E===null||E===32||E===40||va(E)?n(E):(e.consume(E),E===92?I:b)}function I(E){return E===40||E===41||E===92?(e.consume(E),b):b(E)}}function qc(e,t,n,r,o,i){let s=this,a=0,u;return c;function c(p){return e.enter(r),e.enter(o),e.consume(p),e.exit(o),e.enter(i),l}function l(p){return a>999||p===null||p===91||p===93&&!u||p===94&&!a&&"_hiddenFootnoteSupport"in s.parser.constructs?n(p):p===93?(e.exit(i),e.enter(o),e.consume(p),e.exit(o),e.exit(r),t):de(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||de(p)||a++>999?(e.exit("chunkString"),l(p)):(e.consume(p),u||(u=!je(p)),p===92?g:d)}function g(p){return p===91||p===92||p===93?(e.consume(p),a++,d):d(p)}}function Yc(e,t,n,r,o,i){let s;return a;function a(g){return g===34||g===39||g===40?(e.enter(r),e.enter(o),e.consume(g),e.exit(o),s=g===40?41:g,u):n(g)}function u(g){return g===s?(e.enter(o),e.consume(g),e.exit(o),e.exit(r),t):(e.enter(i),c(g))}function c(g){return g===s?(e.exit(i),u(s)):g===null?n(g):de(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Ve(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(g))}function l(g){return g===s||g===null||de(g)?(e.exit("chunkString"),c(g)):(e.consume(g),g===92?d:l)}function d(g){return g===s||g===92?(e.consume(g),l):l(g)}}function di(e,t){let n;return r;function r(o){return de(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):je(o)?Ve(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}var rx={name:"definition",tokenize:E6},F6={partial:!0,tokenize:A6};function E6(e,t,n){let r=this,o;return i;function i(p){return e.enter("definition"),s(p)}function s(p){return qc.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return o=mo(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),u):n(p)}function u(p){return qt(p)?di(e,c)(p):c(p)}function c(p){return Gc(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function l(p){return e.attempt(F6,d,d)(p)}function d(p){return je(p)?Ve(e,g,"whitespace")(p):g(p)}function g(p){return p===null||de(p)?(e.exit("definition"),r.parser.defined.push(o),t(p)):n(p)}}function A6(e,t,n){return r;function r(a){return qt(a)?di(e,o)(a):n(a)}function o(a){return Yc(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return je(a)?Ve(e,s,"whitespace")(a):s(a)}function s(a){return a===null||de(a)?t(a):n(a)}}var ox={name:"hardBreakEscape",tokenize:P6};function P6(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return de(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}var ix={name:"headingAtx",resolve:L6,tokenize:M6};function L6(e,t){let n=e.length-2,r=3,o,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(o={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},xn(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function M6(e,t,n){let r=0;return o;function o(l){return e.enter("atxHeading"),i(l)}function i(l){return e.enter("atxHeadingSequence"),s(l)}function s(l){return l===35&&r++<6?(e.consume(l),s):l===null||qt(l)?(e.exit("atxHeadingSequence"),a(l)):n(l)}function a(l){return l===35?(e.enter("atxHeadingSequence"),u(l)):l===null||de(l)?(e.exit("atxHeading"),t(l)):je(l)?Ve(e,a,"whitespace")(l):(e.enter("atxHeadingText"),c(l))}function u(l){return l===35?(e.consume(l),u):(e.exit("atxHeadingSequence"),a(l))}function c(l){return l===null||l===35||qt(l)?(e.exit("atxHeadingText"),a(l)):(e.consume(l),c)}}var bT=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],sx=["pre","script","style","textarea"];var ax={concrete:!0,name:"htmlFlow",resolveTo:R6,tokenize:z6},B6={partial:!0,tokenize:O6},D6={partial:!0,tokenize:N6};function R6(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function z6(e,t,n){let r=this,o,i,s,a,u;return c;function c(M){return l(M)}function l(M){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(M),d}function d(M){return M===33?(e.consume(M),g):M===47?(e.consume(M),i=!0,b):M===63?(e.consume(M),o=3,r.interrupt?t:T):nr(M)?(e.consume(M),s=String.fromCharCode(M),I):n(M)}function g(M){return M===45?(e.consume(M),o=2,p):M===91?(e.consume(M),o=5,a=0,m):nr(M)?(e.consume(M),o=4,r.interrupt?t:T):n(M)}function p(M){return M===45?(e.consume(M),r.interrupt?t:T):n(M)}function m(M){let ie="CDATA[";return M===ie.charCodeAt(a++)?(e.consume(M),a===ie.length?r.interrupt?t:f:m):n(M)}function b(M){return nr(M)?(e.consume(M),s=String.fromCharCode(M),I):n(M)}function I(M){if(M===null||M===47||M===62||qt(M)){let ie=M===47,Y=s.toLowerCase();return!ie&&!i&&sx.includes(Y)?(o=1,r.interrupt?t(M):f(M)):bT.includes(s.toLowerCase())?(o=6,ie?(e.consume(M),E):r.interrupt?t(M):f(M)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(M):i?k(M):D(M))}return M===45||dn(M)?(e.consume(M),s+=String.fromCharCode(M),I):n(M)}function E(M){return M===62?(e.consume(M),r.interrupt?t:f):n(M)}function k(M){return je(M)?(e.consume(M),k):w(M)}function D(M){return M===47?(e.consume(M),w):M===58||M===95||nr(M)?(e.consume(M),N):je(M)?(e.consume(M),D):w(M)}function N(M){return M===45||M===46||M===58||M===95||dn(M)?(e.consume(M),N):$(M)}function $(M){return M===61?(e.consume(M),L):je(M)?(e.consume(M),$):D(M)}function L(M){return M===null||M===60||M===61||M===62||M===96?n(M):M===34||M===39?(e.consume(M),u=M,R):je(M)?(e.consume(M),L):h(M)}function R(M){return M===u?(e.consume(M),u=null,S):M===null||de(M)?n(M):(e.consume(M),R)}function h(M){return M===null||M===34||M===39||M===47||M===60||M===61||M===62||M===96||qt(M)?$(M):(e.consume(M),h)}function S(M){return M===47||M===62||je(M)?D(M):n(M)}function w(M){return M===62?(e.consume(M),A):n(M)}function A(M){return M===null||de(M)?f(M):je(M)?(e.consume(M),A):n(M)}function f(M){return M===45&&o===2?(e.consume(M),C):M===60&&o===1?(e.consume(M),P):M===62&&o===4?(e.consume(M),z):M===63&&o===3?(e.consume(M),T):M===93&&o===5?(e.consume(M),O):de(M)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(B6,W,v)(M)):M===null||de(M)?(e.exit("htmlFlowData"),v(M)):(e.consume(M),f)}function v(M){return e.check(D6,F,W)(M)}function F(M){return e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),x}function x(M){return M===null||de(M)?v(M):(e.enter("htmlFlowData"),f(M))}function C(M){return M===45?(e.consume(M),T):f(M)}function P(M){return M===47?(e.consume(M),s="",B):f(M)}function B(M){if(M===62){let ie=s.toLowerCase();return sx.includes(ie)?(e.consume(M),z):f(M)}return nr(M)&&s.length<8?(e.consume(M),s+=String.fromCharCode(M),B):f(M)}function O(M){return M===93?(e.consume(M),T):f(M)}function T(M){return M===62?(e.consume(M),z):M===45&&o===2?(e.consume(M),T):f(M)}function z(M){return M===null||de(M)?(e.exit("htmlFlowData"),W(M)):(e.consume(M),z)}function W(M){return e.exit("htmlFlow"),t(M)}}function N6(e,t,n){let r=this;return o;function o(s){return de(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i):n(s)}function i(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}function O6(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Wo,t,n)}}var lx={name:"htmlText",tokenize:_6};function _6(e,t,n){let r=this,o,i,s;return a;function a(T){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(T),u}function u(T){return T===33?(e.consume(T),c):T===47?(e.consume(T),$):T===63?(e.consume(T),D):nr(T)?(e.consume(T),h):n(T)}function c(T){return T===45?(e.consume(T),l):T===91?(e.consume(T),i=0,m):nr(T)?(e.consume(T),k):n(T)}function l(T){return T===45?(e.consume(T),p):n(T)}function d(T){return T===null?n(T):T===45?(e.consume(T),g):de(T)?(s=d,P(T)):(e.consume(T),d)}function g(T){return T===45?(e.consume(T),p):d(T)}function p(T){return T===62?C(T):T===45?g(T):d(T)}function m(T){let z="CDATA[";return T===z.charCodeAt(i++)?(e.consume(T),i===z.length?b:m):n(T)}function b(T){return T===null?n(T):T===93?(e.consume(T),I):de(T)?(s=b,P(T)):(e.consume(T),b)}function I(T){return T===93?(e.consume(T),E):b(T)}function E(T){return T===62?C(T):T===93?(e.consume(T),E):b(T)}function k(T){return T===null||T===62?C(T):de(T)?(s=k,P(T)):(e.consume(T),k)}function D(T){return T===null?n(T):T===63?(e.consume(T),N):de(T)?(s=D,P(T)):(e.consume(T),D)}function N(T){return T===62?C(T):D(T)}function $(T){return nr(T)?(e.consume(T),L):n(T)}function L(T){return T===45||dn(T)?(e.consume(T),L):R(T)}function R(T){return de(T)?(s=R,P(T)):je(T)?(e.consume(T),R):C(T)}function h(T){return T===45||dn(T)?(e.consume(T),h):T===47||T===62||qt(T)?S(T):n(T)}function S(T){return T===47?(e.consume(T),C):T===58||T===95||nr(T)?(e.consume(T),w):de(T)?(s=S,P(T)):je(T)?(e.consume(T),S):C(T)}function w(T){return T===45||T===46||T===58||T===95||dn(T)?(e.consume(T),w):A(T)}function A(T){return T===61?(e.consume(T),f):de(T)?(s=A,P(T)):je(T)?(e.consume(T),A):S(T)}function f(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),o=T,v):de(T)?(s=f,P(T)):je(T)?(e.consume(T),f):(e.consume(T),F)}function v(T){return T===o?(e.consume(T),o=void 0,x):T===null?n(T):de(T)?(s=v,P(T)):(e.consume(T),v)}function F(T){return T===null||T===34||T===39||T===60||T===61||T===96?n(T):T===47||T===62||qt(T)?S(T):(e.consume(T),F)}function x(T){return T===47||T===62||qt(T)?S(T):n(T)}function C(T){return T===62?(e.consume(T),e.exit("htmlTextData"),e.exit("htmlText"),t):n(T)}function P(T){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),B}function B(T){return je(T)?Ve(e,O,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(T):O(T)}function O(T){return e.enter("htmlTextData"),s(T)}}var gi={name:"labelEnd",resolveAll:H6,resolveTo:W6,tokenize:V6},$6={tokenize:G6},U6={tokenize:q6},j6={tokenize:Y6};function H6(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){let o=r.type==="labelImage"?4:2;r.type="data",t+=o}}return e.length!==n.length&&xn(e,0,e.length,n),e}function W6(e,t){let n=e.length,r=0,o,i,s,a;for(;n--;)if(o=e[n][1],i){if(o.type==="link"||o.type==="labelLink"&&o._inactive)break;e[n][0]==="enter"&&o.type==="labelLink"&&(o._inactive=!0)}else if(s){if(e[n][0]==="enter"&&(o.type==="labelImage"||o.type==="labelLink")&&!o._balanced&&(i=n,o.type!=="labelLink")){r=2;break}}else o.type==="labelEnd"&&(s=n);let u={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},c={type:"label",start:{...e[i][1].start},end:{...e[s][1].end}},l={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[s-2][1].start}};return a=[["enter",u,t],["enter",c,t]],a=Bn(a,e.slice(i+1,i+r+3)),a=Bn(a,[["enter",l,t]]),a=Bn(a,is(t.parser.constructs.insideSpan.null,e.slice(i+r+4,s-3),t)),a=Bn(a,[["exit",l,t],e[s-2],e[s-1],["exit",c,t]]),a=Bn(a,e.slice(s+1)),a=Bn(a,[["exit",u,t]]),xn(e,i,e.length,a),e}function V6(e,t,n){let r=this,o=r.events.length,i,s;for(;o--;)if((r.events[o][1].type==="labelImage"||r.events[o][1].type==="labelLink")&&!r.events[o][1]._balanced){i=r.events[o][1];break}return a;function a(g){return i?i._inactive?d(g):(s=r.parser.defined.includes(mo(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(g),e.exit("labelMarker"),e.exit("labelEnd"),u):n(g)}function u(g){return g===40?e.attempt($6,l,s?l:d)(g):g===91?e.attempt(U6,l,s?c:d)(g):s?l(g):d(g)}function c(g){return e.attempt(j6,l,d)(g)}function l(g){return t(g)}function d(g){return i._balanced=!0,n(g)}}function G6(e,t,n){return r;function r(d){return e.enter("resource"),e.enter("resourceMarker"),e.consume(d),e.exit("resourceMarker"),o}function o(d){return qt(d)?di(e,i)(d):i(d)}function i(d){return d===41?l(d):Gc(e,s,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(d)}function s(d){return qt(d)?di(e,u)(d):l(d)}function a(d){return n(d)}function u(d){return d===34||d===39||d===40?Yc(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(d):l(d)}function c(d){return qt(d)?di(e,l)(d):l(d)}function l(d){return d===41?(e.enter("resourceMarker"),e.consume(d),e.exit("resourceMarker"),e.exit("resource"),t):n(d)}}function q6(e,t,n){let r=this;return o;function o(a){return qc.call(r,e,i,s,"reference","referenceMarker","referenceString")(a)}function i(a){return r.parser.defined.includes(mo(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(a):n(a)}function s(a){return n(a)}}function Y6(e,t,n){return r;function r(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),o}function o(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):n(i)}}var cx={name:"labelStartImage",resolveAll:gi.resolveAll,tokenize:K6};function K6(e,t,n){let r=this;return o;function o(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),i}function i(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),s):n(a)}function s(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}var ux={name:"labelStartLink",resolveAll:gi.resolveAll,tokenize:X6};function X6(e,t,n){let r=this;return o;function o(s){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelLink"),i}function i(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}var Fa={name:"lineEnding",tokenize:Q6};function Q6(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),Ve(e,t,"linePrefix")}}var fi={name:"thematicBreak",tokenize:J6};function J6(e,t,n){let r=0,o;return i;function i(c){return e.enter("thematicBreak"),s(c)}function s(c){return o=c,a(c)}function a(c){return c===o?(e.enter("thematicBreakSequence"),u(c)):r>=3&&(c===null||de(c))?(e.exit("thematicBreak"),t(c)):n(c)}function u(c){return c===o?(e.consume(c),r++,u):(e.exit("thematicBreakSequence"),je(c)?Ve(e,a,"whitespace")(c):a(c))}}var Tn={continuation:{tokenize:nU},exit:oU,name:"list",tokenize:tU},Z6={partial:!0,tokenize:iU},eU={partial:!0,tokenize:rU};function tU(e,t,n){let r=this,o=r.events[r.events.length-1],i=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,s=0;return a;function a(p){let m=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:ka(p)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(fi,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(p)}return n(p)}function u(p){return ka(p)&&++s<10?(e.consume(p),u):(!r.interrupt||s<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Wo,r.interrupt?n:l,e.attempt(Z6,g,d))}function l(p){return r.containerState.initialBlankLine=!0,i++,g(p)}function d(p){return je(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),g):n(p)}function g(p){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function nU(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Wo,o,i);function o(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ve(e,t,"listItemIndent",r.containerState.size+1)(a)}function i(a){return r.containerState.furtherBlankLines||!je(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,s(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(eU,t,s)(a))}function s(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ve(e,e.attempt(Tn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function rU(e,t,n){let r=this;return Ve(e,o,"listItemIndent",r.containerState.size+1);function o(i){let s=r.events[r.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===r.containerState.size?t(i):n(i)}}function oU(e){e.exit(this.containerState.type)}function iU(e,t,n){let r=this;return Ve(e,o,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){let s=r.events[r.events.length-1];return!je(i)&&s&&s[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}var Kc={name:"setextUnderline",resolveTo:sU,tokenize:aU};function sU(e,t){let n=e.length,r,o,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);let s={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",i?(e.splice(o,0,["enter",s,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=s,e.push(["exit",s,t]),e}function aU(e,t,n){let r=this,o;return i;function i(c){let l=r.events.length,d;for(;l--;)if(r.events[l][1].type!=="lineEnding"&&r.events[l][1].type!=="linePrefix"&&r.events[l][1].type!=="content"){d=r.events[l][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||d)?(e.enter("setextHeadingLine"),o=c,s(c)):n(c)}function s(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===o?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),je(c)?Ve(e,u,"lineSuffix")(c):u(c))}function u(c){return c===null||de(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}var ST={tokenize:lU};function lU(e){let t=this,n=e.attempt(Wo,r,e.attempt(this.parser.constructs.flowInitial,o,Ve(e,e.attempt(this.parser.constructs.flow,o,e.attempt(nx,o)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}var wT={resolveAll:TT()},vT=CT("string"),kT=CT("text");function CT(e){return{resolveAll:TT(e==="text"?cU:void 0),tokenize:t};function t(n){let r=this,o=this.parser.constructs[e],i=n.attempt(o,s,a);return s;function s(l){return c(l)?i(l):a(l)}function a(l){if(l===null){n.consume(l);return}return n.enter("data"),n.consume(l),u}function u(l){return c(l)?(n.exit("data"),i(l)):(n.consume(l),u)}function c(l){if(l===null)return!0;let d=o[l],g=-1;if(d)for(;++g<d.length;){let p=d[g];if(!p.previous||p.previous.call(r,r.previous))return!0}return!1}}}function TT(e){return t;function t(n,r){let o=-1,i;for(;++o<=n.length;)i===void 0?n[o]&&n[o][1].type==="data"&&(i=o,o++):(!n[o]||n[o][1].type!=="data")&&(o!==i+2&&(n[i][1].end=n[o-1][1].end,n.splice(i+2,o-i-2),o=i+2),i=void 0);return e?e(n,r):n}}function cU(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){let r=e[n-1][1],o=t.sliceStream(r),i=o.length,s=-1,a=0,u;for(;i--;){let c=o[i];if(typeof c=="string"){for(s=c.length;c.charCodeAt(s-1)===32;)a++,s--;if(s)break;s=-1}else if(c===-2)u=!0,a++;else if(c!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(a=0),a){let c={type:n===e.length||u||a<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?s:r.start._bufferIndex+s,_index:r.start._index+i,line:r.end.line,column:r.end.column-a,offset:r.end.offset-a},end:{...r.end}};r.end={...c.start},r.start.offset===r.end.offset?Object.assign(r,c):(e.splice(n,0,["enter",c,t],["exit",c,t]),n+=2)}n++}return e}var px={};ye(px,{attentionMarkers:()=>xU,contentInitial:()=>pU,disable:()=>yU,document:()=>uU,flow:()=>gU,flowInitial:()=>dU,insideSpan:()=>hU,string:()=>fU,text:()=>mU});var uU={42:Tn,43:Tn,45:Tn,48:Tn,49:Tn,50:Tn,51:Tn,52:Tn,53:Tn,54:Tn,55:Tn,56:Tn,57:Tn,62:$c},pU={91:rx},dU={[-2]:Ta,[-1]:Ta,32:Ta},gU={35:ix,42:fi,45:[Kc,fi],60:ax,61:Kc,95:fi,96:Hc,126:Hc},fU={38:jc,92:Uc},mU={[-5]:Fa,[-4]:Fa,[-3]:Fa,33:cx,38:jc,42:Ca,60:[ex,lx],91:ux,92:[ox,Uc],93:gi,95:Ca,96:tx},hU={null:[Ca,wT]},xU={null:[42,95]},yU={null:[]};function IT(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},o={},i=[],s=[],a=[],u=!0,c={attempt:S(R),check:S(h),consume:N,enter:$,exit:L,interrupt:S(h,{interrupt:!0})},l={code:null,containerState:{},defineSkip:E,events:[],now:I,parser:e,previous:null,sliceSerialize:m,sliceStream:b,write:p},d=t.tokenize.call(l,c),g;return t.resolveAll&&i.push(t),l;function p(v){return s=Bn(s,v),k(),s[s.length-1]!==null?[]:(w(t,0),l.events=is(i,l.events,l),l.events)}function m(v,F){return SU(b(v),F)}function b(v){return bU(s,v)}function I(){let{_bufferIndex:v,_index:F,line:x,column:C,offset:P}=r;return{_bufferIndex:v,_index:F,line:x,column:C,offset:P}}function E(v){o[v.line]=v.column,f()}function k(){let v;for(;r._index<s.length;){let F=s[r._index];if(typeof F=="string")for(v=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===v&&r._bufferIndex<F.length;)D(F.charCodeAt(r._bufferIndex));else D(F)}}function D(v){u=void 0,g=v,d=d(v)}function N(v){de(v)?(r.line++,r.column=1,r.offset+=v===-3?2:1,f()):v!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===s[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=v,u=!0}function $(v,F){let x=F||{};return x.type=v,x.start=I(),l.events.push(["enter",x,l]),a.push(x),x}function L(v){let F=a.pop();return F.end=I(),l.events.push(["exit",F,l]),F}function R(v,F){w(v,F.from)}function h(v,F){F.restore()}function S(v,F){return x;function x(C,P,B){let O,T,z,W;return Array.isArray(C)?ie(C):"tokenize"in C?ie([C]):M(C);function M(Pe){return Ye;function Ye(te){let Ie=te!==null&&Pe[te],Te=te!==null&&Pe.null,pe=[...Array.isArray(Ie)?Ie:Ie?[Ie]:[],...Array.isArray(Te)?Te:Te?[Te]:[]];return ie(pe)(te)}}function ie(Pe){return O=Pe,T=0,Pe.length===0?B:Y(Pe[T])}function Y(Pe){return Ye;function Ye(te){return W=A(),z=Pe,Pe.partial||(l.currentConstruct=Pe),Pe.name&&l.parser.constructs.disable.null.includes(Pe.name)?xe(te):Pe.tokenize.call(F?Object.assign(Object.create(l),F):l,c,se,xe)(te)}}function se(Pe){return u=!0,v(z,W),P}function xe(Pe){return u=!0,W.restore(),++T<O.length?Y(O[T]):B}}}function w(v,F){v.resolveAll&&!i.includes(v)&&i.push(v),v.resolve&&xn(l.events,F,l.events.length-F,v.resolve(l.events.slice(F),l)),v.resolveTo&&(l.events=v.resolveTo(l.events,l))}function A(){let v=I(),F=l.previous,x=l.currentConstruct,C=l.events.length,P=Array.from(a);return{from:C,restore:B};function B(){r=v,l.previous=F,l.currentConstruct=x,l.events.length=C,a=P,f()}}function f(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function bU(e,t){let n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex,s;if(n===o)s=[e[n].slice(r,i)];else{if(s=e.slice(n,o),r>-1){let a=s[0];typeof a=="string"?s[0]=a.slice(r):s.shift()}i>0&&s.push(e[o].slice(0,i))}return s}function SU(e,t){let n=-1,r=[],o;for(;++n<e.length;){let i=e[n],s;if(typeof i=="string")s=i;else switch(i){case-5:{s="\r";break}case-4:{s=`
82
82
  `;break}case-3:{s=`\r
83
- `;break}case-2:{s=t?" ":" ";break}case-1:{if(!t&&o)continue;s=" ";break}default:s=String.fromCharCode(i)}o=i===-2,r.push(s)}return r.join("")}function ox(e){let r={constructs:X1([rx,...(e||{}).extensions||[]]),content:o(nT),defined:[],document:o(oT),flow:o(lT),lazy:{},string:o(uT),text:o(pT)};return r;function o(i){return s;function s(a){return fT(r,i,a)}}}function ix(e){for(;!Oc(e););return e}var mT=/[\0\t\n\r]/g;function sx(){let e=1,t="",n=!0,r;return o;function o(i,s,a){let u=[],c,l,d,g,p;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(s||void 0).decode(i)),d=0,t="",n&&(i.charCodeAt(0)===65279&&d++,n=void 0);d<i.length;){if(mT.lastIndex=d,c=mT.exec(i),g=c&&c.index!==void 0?c.index:i.length,p=i.charCodeAt(g),!c){t=i.slice(d);break}if(p===10&&d===g&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),d<g&&(u.push(i.slice(d,g)),e+=g-d),p){case 0:{u.push(65533),e++;break}case 9:{for(l=Math.ceil(e/4)*4,u.push(-2);e++<l;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}d=g+1}return a&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}var lU=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function hT(e){return e.replace(lU,cU)}function cU(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let o=n.charCodeAt(1),i=o===120||o===88;return Mc(n.slice(i?2:1),i?16:10)}return rs(n)||e}var yT={}.hasOwnProperty;function ax(e,t,n){return typeof t!="string"&&(n=t,t=void 0),uU(n)(ix(ox(n).document().write(sx()(e,t,!0))))}function uU(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(xe),autolinkProtocol:S,autolinkEmail:S,atxHeading:i(ge),blockQuote:i(ee),characterEscape:S,characterReference:S,codeFenced:i(Ee),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:i(Ee,s),codeText:i(Te,s),codeTextData:S,data:S,codeFlowValue:S,definition:i(ue),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:i(Be),hardBreakEscape:i(tt),hardBreakTrailing:i(tt),htmlFlow:i(xt,s),htmlFlowData:S,htmlText:i(xt,s),htmlTextData:S,image:i(Sn),label:s,link:i(xe),listItem:i(fe),listItemValue:g,listOrdered:i(St,d),listUnordered:i(St),paragraph:i(ne),reference:B,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:i(ge),strong:i(Ke),thematicBreak:i(Ge)},exit:{atxHeading:u(),atxHeadingSequence:$,autolink:u(),autolinkEmail:et,autolinkProtocol:Fe,blockQuote:u(),characterEscapeValue:w,characterReferenceMarkerHexadecimal:Y,characterReferenceMarkerNumeric:Y,characterReferenceValue:se,characterReference:me,codeFenced:u(F),codeFencedFence:b,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:w,codeIndented:u(E),codeText:u(h),codeTextData:w,data:w,definition:u(),definitionDestinationString:O,definitionLabelString:v,definitionTitleString:D,emphasis:u(),hardBreakEscape:u(f),hardBreakTrailing:u(f),htmlFlow:u(k),htmlFlowData:w,htmlText:u(T),htmlTextData:w,image:u(A),label:z,labelText:M,lineEnding:P,link:u(I),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:ie,resourceDestinationString:C,resourceTitleString:R,resource:W,setextHeading:u(x),setextHeadingLineSequence:N,setextHeadingText:L,strong:u(),thematicBreak:u()}};bT(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(_){let j={type:"root",children:[]},H={stack:[j],tokenStack:[],config:t,enter:a,exit:c,buffer:s,resume:l,data:n},Z=[],re=-1;for(;++re<_.length;)if(_[re][1].type==="listOrdered"||_[re][1].type==="listUnordered")if(_[re][0]==="enter")Z.push(re);else{let Oe=Z.pop();re=o(_,Oe,re)}for(re=-1;++re<_.length;){let Oe=t[_[re][0]];yT.call(Oe,_[re][1].type)&&Oe[_[re][1].type].call(Object.assign({sliceSerialize:_[re][2].sliceSerialize},H),_[re][1])}if(H.tokenStack.length>0){let Oe=H.tokenStack[H.tokenStack.length-1];(Oe[1]||xT).call(H,void 0,Oe[0])}for(j.position={start:Wo(_.length>0?_[0][1].start:{line:1,column:1,offset:0}),end:Wo(_.length>0?_[_.length-2][1].end:{line:1,column:1,offset:0})},re=-1;++re<t.transforms.length;)j=t.transforms[re](j)||j;return j}function o(_,j,H){let Z=j-1,re=-1,Oe=!1,ir,Ct,Sr,xo;for(;++Z<=H;){let jt=_[Z];switch(jt[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{jt[0]==="enter"?re++:re--,xo=void 0;break}case"lineEndingBlank":{jt[0]==="enter"&&(ir&&!xo&&!re&&!Sr&&(Sr=Z),xo=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:xo=void 0}if(!re&&jt[0]==="enter"&&jt[1].type==="listItemPrefix"||re===-1&&jt[0]==="exit"&&(jt[1].type==="listUnordered"||jt[1].type==="listOrdered")){if(ir){let Xr=Z;for(Ct=void 0;Xr--;){let wr=_[Xr];if(wr[1].type==="lineEnding"||wr[1].type==="lineEndingBlank"){if(wr[0]==="exit")continue;Ct&&(_[Ct][1].type="lineEndingBlank",Oe=!0),wr[1].type="lineEnding",Ct=Xr}else if(!(wr[1].type==="linePrefix"||wr[1].type==="blockQuotePrefix"||wr[1].type==="blockQuotePrefixWhitespace"||wr[1].type==="blockQuoteMarker"||wr[1].type==="listItemIndent"))break}Sr&&(!Ct||Sr<Ct)&&(ir._spread=!0),ir.end=Object.assign({},Ct?_[Ct][1].start:jt[1].end),_.splice(Ct||Z,0,["exit",ir,jt[2]]),Z++,H++}if(jt[1].type==="listItemPrefix"){let Xr={type:"listItem",_spread:!1,start:Object.assign({},jt[1].start),end:void 0};ir=Xr,_.splice(Z,0,["enter",Xr,jt[2]]),Z++,H++,Sr=void 0,xo=!0}}}return _[j][1]._spread=Oe,H}function i(_,j){return H;function H(Z){a.call(this,_(Z),Z),j&&j.call(this,Z)}}function s(){this.stack.push({type:"fragment",children:[]})}function a(_,j,H){this.stack[this.stack.length-1].children.push(_),this.stack.push(_),this.tokenStack.push([j,H||void 0]),_.position={start:Wo(j.start),end:void 0}}function u(_){return j;function j(H){_&&_.call(this,H),c.call(this,H)}}function c(_,j){let H=this.stack.pop(),Z=this.tokenStack.pop();if(Z)Z[0].type!==_.type&&(j?j.call(this,_,Z[0]):(Z[1]||xT).call(this,_,Z[0]));else throw new Error("Cannot close `"+_.type+"` ("+Uo({start:_.start,end:_.end})+"): it\u2019s not open");H.position.end=Wo(_.end)}function l(){return Wh(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function g(_){if(this.data.expectingFirstListItemValue){let j=this.stack[this.stack.length-2];j.start=Number.parseInt(this.sliceSerialize(_),10),this.data.expectingFirstListItemValue=void 0}}function p(){let _=this.resume(),j=this.stack[this.stack.length-1];j.lang=_}function m(){let _=this.resume(),j=this.stack[this.stack.length-1];j.meta=_}function b(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function F(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function E(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_.replace(/(\r?\n|\r)$/g,"")}function v(_){let j=this.resume(),H=this.stack[this.stack.length-1];H.label=j,H.identifier=go(this.sliceSerialize(_)).toLowerCase()}function D(){let _=this.resume(),j=this.stack[this.stack.length-1];j.title=_}function O(){let _=this.resume(),j=this.stack[this.stack.length-1];j.url=_}function $(_){let j=this.stack[this.stack.length-1];if(!j.depth){let H=this.sliceSerialize(_).length;j.depth=H}}function L(){this.data.setextHeadingSlurpLineEnding=!0}function N(_){let j=this.stack[this.stack.length-1];j.depth=this.sliceSerialize(_).codePointAt(0)===61?1:2}function x(){this.data.setextHeadingSlurpLineEnding=void 0}function S(_){let H=this.stack[this.stack.length-1].children,Z=H[H.length-1];(!Z||Z.type!=="text")&&(Z=gt(),Z.position={start:Wo(_.start),end:void 0},H.push(Z)),this.stack.push(Z)}function w(_){let j=this.stack.pop();j.value+=this.sliceSerialize(_),j.position.end=Wo(_.end)}function P(_){let j=this.stack[this.stack.length-1];if(this.data.atHardBreak){let H=j.children[j.children.length-1];H.position.end=Wo(_.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(j.type)&&(S.call(this,_),w.call(this,_))}function f(){this.data.atHardBreak=!0}function k(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_}function T(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_}function h(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_}function I(){let _=this.stack[this.stack.length-1];if(this.data.inReference){let j=this.data.referenceType||"shortcut";_.type+="Reference",_.referenceType=j,delete _.url,delete _.title}else delete _.identifier,delete _.label;this.data.referenceType=void 0}function A(){let _=this.stack[this.stack.length-1];if(this.data.inReference){let j=this.data.referenceType||"shortcut";_.type+="Reference",_.referenceType=j,delete _.url,delete _.title}else delete _.identifier,delete _.label;this.data.referenceType=void 0}function M(_){let j=this.sliceSerialize(_),H=this.stack[this.stack.length-2];H.label=hT(j),H.identifier=go(j).toLowerCase()}function z(){let _=this.stack[this.stack.length-1],j=this.resume(),H=this.stack[this.stack.length-1];if(this.data.inReference=!0,H.type==="link"){let Z=_.children;H.children=Z}else H.alt=j}function C(){let _=this.resume(),j=this.stack[this.stack.length-1];j.url=_}function R(){let _=this.resume(),j=this.stack[this.stack.length-1];j.title=_}function W(){this.data.inReference=void 0}function B(){this.data.referenceType="collapsed"}function ie(_){let j=this.resume(),H=this.stack[this.stack.length-1];H.label=j,H.identifier=go(this.sliceSerialize(_)).toLowerCase(),this.data.referenceType="full"}function Y(_){this.data.characterReferenceType=_.type}function se(_){let j=this.sliceSerialize(_),H=this.data.characterReferenceType,Z;H?(Z=Mc(j,H==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Z=rs(j);let re=this.stack[this.stack.length-1];re.value+=Z}function me(_){let j=this.stack.pop();j.position.end=Wo(_.end)}function Fe(_){w.call(this,_);let j=this.stack[this.stack.length-1];j.url=this.sliceSerialize(_)}function et(_){w.call(this,_);let j=this.stack[this.stack.length-1];j.url="mailto:"+this.sliceSerialize(_)}function ee(){return{type:"blockquote",children:[]}}function Ee(){return{type:"code",lang:null,meta:null,value:""}}function Te(){return{type:"inlineCode",value:""}}function ue(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Be(){return{type:"emphasis",children:[]}}function ge(){return{type:"heading",depth:0,children:[]}}function tt(){return{type:"break"}}function xt(){return{type:"html",value:""}}function Sn(){return{type:"image",title:null,url:"",alt:null}}function xe(){return{type:"link",title:null,url:"",children:[]}}function St(_){return{type:"list",ordered:_.type==="listOrdered",start:null,spread:_._spread,children:[]}}function fe(_){return{type:"listItem",spread:_._spread,checked:null,children:[]}}function ne(){return{type:"paragraph",children:[]}}function Ke(){return{type:"strong",children:[]}}function gt(){return{type:"text",value:""}}function Ge(){return{type:"thematicBreak"}}}function Wo(e){return{line:e.line,column:e.column,offset:e.offset}}function bT(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?bT(e,r):pU(e,r)}}function pU(e,t){let n;for(n in t)if(yT.call(t,n))switch(n){case"canContainEols":{let r=t[n];r&&e[n].push(...r);break}case"transforms":{let r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{let r=t[n];r&&Object.assign(e[n],r);break}}}function xT(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Uo({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Uo({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Uo({start:t.start,end:t.end})+") is still open")}function Hc(e){let t=this;t.parser=n;function n(r){return ax(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function ST(e,t){let n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function wT(e,t){let n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
84
- `}]}function vT(e,t){let n=t.value?t.value+`
85
- `:"",r={},o=t.lang?t.lang.split(/\s+/):[];o.length>0&&(r.className=["language-"+o[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function kT(e,t){let n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function CT(e,t){let n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function TT(e,t){let n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=xr(r.toLowerCase()),i=e.footnoteOrder.indexOf(r),s,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),s=e.footnoteOrder.length):s=i+1,a+=1,e.footnoteCounts.set(r,a);let u={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(s)}]};e.patch(t,u);let c={type:"element",tagName:"sup",properties:{},children:[u]};return e.patch(t,c),e.applyData(t,c)}function IT(e,t){let n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function FT(e,t){if(e.options.allowDangerousHtml){let n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function Wc(e,t){let n=t.referenceType,r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];let o=e.all(t),i=o[0];i&&i.type==="text"?i.value="["+i.value:o.unshift({type:"text",value:"["});let s=o[o.length-1];return s&&s.type==="text"?s.value+=r:o.push({type:"text",value:r}),o}function ET(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Wc(e,t);let o={src:xr(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(o.title=r.title);let i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)}function AT(e,t){let n={src:xr(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function PT(e,t){let n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);let r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function LT(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Wc(e,t);let o={href:xr(r.url||"")};r.title!==null&&r.title!==void 0&&(o.title=r.title);let i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function MT(e,t){let n={href:xr(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function BT(e,t,n){let r=e.all(t),o=n?dU(n):DT(t),i={},s=[];if(typeof t.checked=="boolean"){let l=r[0],d;l&&l.type==="element"&&l.tagName==="p"?d=l:(d={type:"element",tagName:"p",properties:{},children:[]},r.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let a=-1;for(;++a<r.length;){let l=r[a];(o||a!==0||l.type!=="element"||l.tagName!=="p")&&s.push({type:"text",value:`
83
+ `;break}case-2:{s=t?" ":" ";break}case-1:{if(!t&&o)continue;s=" ";break}default:s=String.fromCharCode(i)}o=i===-2,r.push(s)}return r.join("")}function dx(e){let r={constructs:lT([px,...(e||{}).extensions||[]]),content:o(fT),defined:[],document:o(hT),flow:o(ST),lazy:{},string:o(vT),text:o(kT)};return r;function o(i){return s;function s(a){return IT(r,i,a)}}}function gx(e){for(;!Vc(e););return e}var FT=/[\0\t\n\r]/g;function fx(){let e=1,t="",n=!0,r;return o;function o(i,s,a){let u=[],c,l,d,g,p;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(s||void 0).decode(i)),d=0,t="",n&&(i.charCodeAt(0)===65279&&d++,n=void 0);d<i.length;){if(FT.lastIndex=d,c=FT.exec(i),g=c&&c.index!==void 0?c.index:i.length,p=i.charCodeAt(g),!c){t=i.slice(d);break}if(p===10&&d===g&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),d<g&&(u.push(i.slice(d,g)),e+=g-d),p){case 0:{u.push(65533),e++;break}case 9:{for(l=Math.ceil(e/4)*4,u.push(-2);e++<l;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}d=g+1}return a&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}var wU=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function ET(e){return e.replace(wU,vU)}function vU(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let o=n.charCodeAt(1),i=o===120||o===88;return _c(n.slice(i?2:1),i?16:10)}return os(n)||e}var PT={}.hasOwnProperty;function mx(e,t,n){return typeof t!="string"&&(n=t,t=void 0),kU(n)(gx(dx(n).document().write(fx()(e,t,!0))))}function kU(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(br),autolinkProtocol:S,autolinkEmail:S,atxHeading:i(me),blockQuote:i(te),characterEscape:S,characterReference:S,codeFenced:i(Ie),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:i(Ie,s),codeText:i(Te,s),codeTextData:S,data:S,codeFlowValue:S,definition:i(pe),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:i(Be),hardBreakEscape:i(Ze),hardBreakTrailing:i(Ze),htmlFlow:i(mt,s),htmlFlowData:S,htmlText:i(mt,s),htmlTextData:S,image:i(bn),label:s,link:i(br),listItem:i(ae),listItemValue:g,listOrdered:i(rr,d),listUnordered:i(rr),paragraph:i(Z),reference:M,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:i(me),strong:i(ge),thematicBreak:i(et)},exit:{atxHeading:u(),atxHeadingSequence:$,autolink:u(),autolinkEmail:Ye,autolinkProtocol:Pe,blockQuote:u(),characterEscapeValue:w,characterReferenceMarkerHexadecimal:Y,characterReferenceMarkerNumeric:Y,characterReferenceValue:se,characterReference:xe,codeFenced:u(I),codeFencedFence:b,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:w,codeIndented:u(E),codeText:u(x),codeTextData:w,data:w,definition:u(),definitionDestinationString:N,definitionLabelString:k,definitionTitleString:D,emphasis:u(),hardBreakEscape:u(f),hardBreakTrailing:u(f),htmlFlow:u(v),htmlFlowData:w,htmlText:u(F),htmlTextData:w,image:u(P),label:O,labelText:B,lineEnding:A,link:u(C),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:ie,resourceDestinationString:T,resourceTitleString:z,resource:W,setextHeading:u(h),setextHeadingLineSequence:R,setextHeadingText:L,strong:u(),thematicBreak:u()}};LT(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(_){let j={type:"root",children:[]},H={stack:[j],tokenStack:[],config:t,enter:a,exit:c,buffer:s,resume:l,data:n},X=[],re=-1;for(;++re<_.length;)if(_[re][1].type==="listOrdered"||_[re][1].type==="listUnordered")if(_[re][0]==="enter")X.push(re);else{let Oe=X.pop();re=o(_,Oe,re)}for(re=-1;++re<_.length;){let Oe=t[_[re][0]];PT.call(Oe,_[re][1].type)&&Oe[_[re][1].type].call(Object.assign({sliceSerialize:_[re][2].sliceSerialize},H),_[re][1])}if(H.tokenStack.length>0){let Oe=H.tokenStack[H.tokenStack.length-1];(Oe[1]||AT).call(H,void 0,Oe[0])}for(j.position={start:Vo(_.length>0?_[0][1].start:{line:1,column:1,offset:0}),end:Vo(_.length>0?_[_.length-2][1].end:{line:1,column:1,offset:0})},re=-1;++re<t.transforms.length;)j=t.transforms[re](j)||j;return j}function o(_,j,H){let X=j-1,re=-1,Oe=!1,or,wt,Sr,bo;for(;++X<=H;){let $t=_[X];switch($t[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{$t[0]==="enter"?re++:re--,bo=void 0;break}case"lineEndingBlank":{$t[0]==="enter"&&(or&&!bo&&!re&&!Sr&&(Sr=X),bo=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:bo=void 0}if(!re&&$t[0]==="enter"&&$t[1].type==="listItemPrefix"||re===-1&&$t[0]==="exit"&&($t[1].type==="listUnordered"||$t[1].type==="listOrdered")){if(or){let Xr=X;for(wt=void 0;Xr--;){let wr=_[Xr];if(wr[1].type==="lineEnding"||wr[1].type==="lineEndingBlank"){if(wr[0]==="exit")continue;wt&&(_[wt][1].type="lineEndingBlank",Oe=!0),wr[1].type="lineEnding",wt=Xr}else if(!(wr[1].type==="linePrefix"||wr[1].type==="blockQuotePrefix"||wr[1].type==="blockQuotePrefixWhitespace"||wr[1].type==="blockQuoteMarker"||wr[1].type==="listItemIndent"))break}Sr&&(!wt||Sr<wt)&&(or._spread=!0),or.end=Object.assign({},wt?_[wt][1].start:$t[1].end),_.splice(wt||X,0,["exit",or,$t[2]]),X++,H++}if($t[1].type==="listItemPrefix"){let Xr={type:"listItem",_spread:!1,start:Object.assign({},$t[1].start),end:void 0};or=Xr,_.splice(X,0,["enter",Xr,$t[2]]),X++,H++,Sr=void 0,bo=!0}}}return _[j][1]._spread=Oe,H}function i(_,j){return H;function H(X){a.call(this,_(X),X),j&&j.call(this,X)}}function s(){this.stack.push({type:"fragment",children:[]})}function a(_,j,H){this.stack[this.stack.length-1].children.push(_),this.stack.push(_),this.tokenStack.push([j,H||void 0]),_.position={start:Vo(j.start),end:void 0}}function u(_){return j;function j(H){_&&_.call(this,H),c.call(this,H)}}function c(_,j){let H=this.stack.pop(),X=this.tokenStack.pop();if(X)X[0].type!==_.type&&(j?j.call(this,_,X[0]):(X[1]||AT).call(this,_,X[0]));else throw new Error("Cannot close `"+_.type+"` ("+jo({start:_.start,end:_.end})+"): it\u2019s not open");H.position.end=Vo(_.end)}function l(){return Jh(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function g(_){if(this.data.expectingFirstListItemValue){let j=this.stack[this.stack.length-2];j.start=Number.parseInt(this.sliceSerialize(_),10),this.data.expectingFirstListItemValue=void 0}}function p(){let _=this.resume(),j=this.stack[this.stack.length-1];j.lang=_}function m(){let _=this.resume(),j=this.stack[this.stack.length-1];j.meta=_}function b(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function I(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function E(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_.replace(/(\r?\n|\r)$/g,"")}function k(_){let j=this.resume(),H=this.stack[this.stack.length-1];H.label=j,H.identifier=mo(this.sliceSerialize(_)).toLowerCase()}function D(){let _=this.resume(),j=this.stack[this.stack.length-1];j.title=_}function N(){let _=this.resume(),j=this.stack[this.stack.length-1];j.url=_}function $(_){let j=this.stack[this.stack.length-1];if(!j.depth){let H=this.sliceSerialize(_).length;j.depth=H}}function L(){this.data.setextHeadingSlurpLineEnding=!0}function R(_){let j=this.stack[this.stack.length-1];j.depth=this.sliceSerialize(_).codePointAt(0)===61?1:2}function h(){this.data.setextHeadingSlurpLineEnding=void 0}function S(_){let H=this.stack[this.stack.length-1].children,X=H[H.length-1];(!X||X.type!=="text")&&(X=Tt(),X.position={start:Vo(_.start),end:void 0},H.push(X)),this.stack.push(X)}function w(_){let j=this.stack.pop();j.value+=this.sliceSerialize(_),j.position.end=Vo(_.end)}function A(_){let j=this.stack[this.stack.length-1];if(this.data.atHardBreak){let H=j.children[j.children.length-1];H.position.end=Vo(_.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(j.type)&&(S.call(this,_),w.call(this,_))}function f(){this.data.atHardBreak=!0}function v(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_}function F(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_}function x(){let _=this.resume(),j=this.stack[this.stack.length-1];j.value=_}function C(){let _=this.stack[this.stack.length-1];if(this.data.inReference){let j=this.data.referenceType||"shortcut";_.type+="Reference",_.referenceType=j,delete _.url,delete _.title}else delete _.identifier,delete _.label;this.data.referenceType=void 0}function P(){let _=this.stack[this.stack.length-1];if(this.data.inReference){let j=this.data.referenceType||"shortcut";_.type+="Reference",_.referenceType=j,delete _.url,delete _.title}else delete _.identifier,delete _.label;this.data.referenceType=void 0}function B(_){let j=this.sliceSerialize(_),H=this.stack[this.stack.length-2];H.label=ET(j),H.identifier=mo(j).toLowerCase()}function O(){let _=this.stack[this.stack.length-1],j=this.resume(),H=this.stack[this.stack.length-1];if(this.data.inReference=!0,H.type==="link"){let X=_.children;H.children=X}else H.alt=j}function T(){let _=this.resume(),j=this.stack[this.stack.length-1];j.url=_}function z(){let _=this.resume(),j=this.stack[this.stack.length-1];j.title=_}function W(){this.data.inReference=void 0}function M(){this.data.referenceType="collapsed"}function ie(_){let j=this.resume(),H=this.stack[this.stack.length-1];H.label=j,H.identifier=mo(this.sliceSerialize(_)).toLowerCase(),this.data.referenceType="full"}function Y(_){this.data.characterReferenceType=_.type}function se(_){let j=this.sliceSerialize(_),H=this.data.characterReferenceType,X;H?(X=_c(j,H==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):X=os(j);let re=this.stack[this.stack.length-1];re.value+=X}function xe(_){let j=this.stack.pop();j.position.end=Vo(_.end)}function Pe(_){w.call(this,_);let j=this.stack[this.stack.length-1];j.url=this.sliceSerialize(_)}function Ye(_){w.call(this,_);let j=this.stack[this.stack.length-1];j.url="mailto:"+this.sliceSerialize(_)}function te(){return{type:"blockquote",children:[]}}function Ie(){return{type:"code",lang:null,meta:null,value:""}}function Te(){return{type:"inlineCode",value:""}}function pe(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Be(){return{type:"emphasis",children:[]}}function me(){return{type:"heading",depth:0,children:[]}}function Ze(){return{type:"break"}}function mt(){return{type:"html",value:""}}function bn(){return{type:"image",title:null,url:"",alt:null}}function br(){return{type:"link",title:null,url:"",children:[]}}function rr(_){return{type:"list",ordered:_.type==="listOrdered",start:null,spread:_._spread,children:[]}}function ae(_){return{type:"listItem",spread:_._spread,checked:null,children:[]}}function Z(){return{type:"paragraph",children:[]}}function ge(){return{type:"strong",children:[]}}function Tt(){return{type:"text",value:""}}function et(){return{type:"thematicBreak"}}}function Vo(e){return{line:e.line,column:e.column,offset:e.offset}}function LT(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?LT(e,r):CU(e,r)}}function CU(e,t){let n;for(n in t)if(PT.call(t,n))switch(n){case"canContainEols":{let r=t[n];r&&e[n].push(...r);break}case"transforms":{let r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{let r=t[n];r&&Object.assign(e[n],r);break}}}function AT(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+jo({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+jo({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+jo({start:t.start,end:t.end})+") is still open")}function Xc(e){let t=this;t.parser=n;function n(r){return mx(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function MT(e,t){let n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function BT(e,t){let n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
84
+ `}]}function DT(e,t){let n=t.value?t.value+`
85
+ `:"",r={},o=t.lang?t.lang.split(/\s+/):[];o.length>0&&(r.className=["language-"+o[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function RT(e,t){let n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zT(e,t){let n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function NT(e,t){let n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=hr(r.toLowerCase()),i=e.footnoteOrder.indexOf(r),s,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),s=e.footnoteOrder.length):s=i+1,a+=1,e.footnoteCounts.set(r,a);let u={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(s)}]};e.patch(t,u);let c={type:"element",tagName:"sup",properties:{},children:[u]};return e.patch(t,c),e.applyData(t,c)}function OT(e,t){let n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function _T(e,t){if(e.options.allowDangerousHtml){let n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function Qc(e,t){let n=t.referenceType,r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];let o=e.all(t),i=o[0];i&&i.type==="text"?i.value="["+i.value:o.unshift({type:"text",value:"["});let s=o[o.length-1];return s&&s.type==="text"?s.value+=r:o.push({type:"text",value:r}),o}function $T(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Qc(e,t);let o={src:hr(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(o.title=r.title);let i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)}function UT(e,t){let n={src:hr(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function jT(e,t){let n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);let r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function HT(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Qc(e,t);let o={href:hr(r.url||"")};r.title!==null&&r.title!==void 0&&(o.title=r.title);let i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function WT(e,t){let n={href:hr(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function VT(e,t,n){let r=e.all(t),o=n?TU(n):GT(t),i={},s=[];if(typeof t.checked=="boolean"){let l=r[0],d;l&&l.type==="element"&&l.tagName==="p"?d=l:(d={type:"element",tagName:"p",properties:{},children:[]},r.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let a=-1;for(;++a<r.length;){let l=r[a];(o||a!==0||l.type!=="element"||l.tagName!=="p")&&s.push({type:"text",value:`
86
86
  `}),l.type==="element"&&l.tagName==="p"&&!o?s.push(...l.children):s.push(l)}let u=r[r.length-1];u&&(o||u.type!=="element"||u.tagName!=="p")&&s.push({type:"text",value:`
87
- `});let c={type:"element",tagName:"li",properties:i,children:s};return e.patch(t,c),e.applyData(t,c)}function dU(e){let t=!1;if(e.type==="list"){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r<n.length;)t=DT(n[r])}return t}function DT(e){let t=e.spread;return t??e.children.length>1}function RT(e,t){let n={},r=e.all(t),o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o<r.length;){let s=r[o];if(s.type==="element"&&s.tagName==="li"&&s.properties&&Array.isArray(s.properties.className)&&s.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}let i={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,i),e.applyData(t,i)}function zT(e,t){let n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function NT(e,t){let n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function OT(e,t){let n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function _T(e,t){let n=e.all(t),r=n.shift(),o=[];if(r){let s={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],s),o.push(s)}if(n.length>0){let s={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=ns(t.children[1]),u=Lc(t.children[t.children.length-1]);a&&u&&(s.position={start:a,end:u}),o.push(s)}let i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)}function $T(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",s=n&&n.type==="table"?n.align:void 0,a=s?s.length:t.children.length,u=-1,c=[];for(;++u<a;){let d=t.children[u],g={},p=s?s[u]:void 0;p&&(g.align=p);let m={type:"element",tagName:i,properties:g,children:[]};d&&(m.children=e.all(d),e.patch(d,m),m=e.applyData(d,m)),c.push(m)}let l={type:"element",tagName:"tr",properties:{},children:e.wrap(c,!0)};return e.patch(t,l),e.applyData(t,l)}function UT(e,t){let n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function HT(e){let t=String(e),n=/\r?\n|\r/g,r=n.exec(t),o=0,i=[];for(;r;)i.push(jT(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(jT(t.slice(o),o>0,!1)),i.join("")}function jT(e,t,n){let r=0,o=e.length;if(t){let i=e.codePointAt(r);for(;i===9||i===32;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(o-1);for(;i===9||i===32;)o--,i=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}function WT(e,t){let n={type:"text",value:HT(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function VT(e,t){let n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var GT={blockquote:ST,break:wT,code:vT,delete:kT,emphasis:CT,footnoteReference:TT,heading:IT,html:FT,imageReference:ET,image:AT,inlineCode:PT,linkReference:LT,link:MT,listItem:BT,list:RT,paragraph:zT,root:NT,strong:OT,table:_T,tableCell:UT,tableRow:$T,text:WT,thematicBreak:VT,toml:Vc,yaml:Vc,definition:Vc,footnoteDefinition:Vc};function Vc(){}var qT=typeof self=="object"?self:globalThis,hU=(e,t)=>{let n=(o,i)=>(e.set(i,o),o),r=o=>{if(e.has(o))return e.get(o);let[i,s]=t[o];switch(i){case 0:case-1:return n(s,o);case 1:{let a=n([],o);for(let u of s)a.push(r(u));return a}case 2:{let a=n({},o);for(let[u,c]of s)a[r(u)]=r(c);return a}case 3:return n(new Date(s),o);case 4:{let{source:a,flags:u}=s;return n(new RegExp(a,u),o)}case 5:{let a=n(new Map,o);for(let[u,c]of s)a.set(r(u),r(c));return a}case 6:{let a=n(new Set,o);for(let u of s)a.add(r(u));return a}case 7:{let{name:a,message:u}=s;return n(new qT[a](u),o)}case 8:return n(BigInt(s),o);case"BigInt":return n(Object(BigInt(s)),o);case"ArrayBuffer":return n(new Uint8Array(s).buffer,s);case"DataView":{let{buffer:a}=new Uint8Array(s);return n(new DataView(a),s)}}return n(new qT[i](s),o)};return r},ux=e=>hU(new Map,e)(0);var is="",{toString:xU}={},{keys:yU}=Object,Ta=e=>{let t=typeof e;if(t!=="object"||!e)return[0,t];let n=xU.call(e).slice(8,-1);switch(n){case"Array":return[1,is];case"Object":return[2,is];case"Date":return[3,is];case"RegExp":return[4,is];case"Map":return[5,is];case"Set":return[6,is];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},qc=([e,t])=>e===0&&(t==="function"||t==="symbol"),bU=(e,t,n,r)=>{let o=(s,a)=>{let u=r.push(s)-1;return n.set(a,u),u},i=s=>{if(n.has(s))return n.get(s);let[a,u]=Ta(s);switch(a){case 0:{let l=s;switch(u){case"bigint":a=8,l=s.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);l=null;break;case"undefined":return o([-1],s)}return o([a,l],s)}case 1:{if(u){let g=s;return u==="DataView"?g=new Uint8Array(s.buffer):u==="ArrayBuffer"&&(g=new Uint8Array(s)),o([u,[...g]],s)}let l=[],d=o([a,l],s);for(let g of s)l.push(i(g));return d}case 2:{if(u)switch(u){case"BigInt":return o([u,s.toString()],s);case"Boolean":case"Number":case"String":return o([u,s.valueOf()],s)}if(t&&"toJSON"in s)return i(s.toJSON());let l=[],d=o([a,l],s);for(let g of yU(s))(e||!qc(Ta(s[g])))&&l.push([i(g),i(s[g])]);return d}case 3:return o([a,s.toISOString()],s);case 4:{let{source:l,flags:d}=s;return o([a,{source:l,flags:d}],s)}case 5:{let l=[],d=o([a,l],s);for(let[g,p]of s)(e||!(qc(Ta(g))||qc(Ta(p))))&&l.push([i(g),i(p)]);return d}case 6:{let l=[],d=o([a,l],s);for(let g of s)(e||!qc(Ta(g)))&&l.push(i(g));return d}}let{message:c}=s;return o([a,{name:u,message:c}],s)};return i},px=(e,{json:t,lossy:n}={})=>{let r=[];return bU(!(t||n),!!t,new Map,r)(e),r};var ss=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?ux(px(e,t)):structuredClone(e):(e,t)=>ux(px(e,t));function SU(e,t){let n=[{type:"text",value:"\u21A9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function wU(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function JT(e){let t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||SU,r=e.options.footnoteBackLabel||wU,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",s=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[],u=-1;for(;++u<e.footnoteOrder.length;){let c=e.footnoteById.get(e.footnoteOrder[u]);if(!c)continue;let l=e.all(c),d=String(c.identifier).toUpperCase(),g=xr(d.toLowerCase()),p=0,m=[],b=e.footnoteCounts.get(d);for(;b!==void 0&&++p<=b;){m.length>0&&m.push({type:"text",value:" "});let v=typeof n=="string"?n:n(u,p);typeof v=="string"&&(v={type:"text",value:v}),m.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(u,p),className:["data-footnote-backref"]},children:Array.isArray(v)?v:[v]})}let F=l[l.length-1];if(F&&F.type==="element"&&F.tagName==="p"){let v=F.children[F.children.length-1];v&&v.type==="text"?v.value+=" ":F.children.push({type:"text",value:" "}),F.children.push(...m)}else l.push(...m);let E={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(l,!0)};e.patch(c,E),a.push(E)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...ss(s),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:`
87
+ `});let c={type:"element",tagName:"li",properties:i,children:s};return e.patch(t,c),e.applyData(t,c)}function TU(e){let t=!1;if(e.type==="list"){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r<n.length;)t=GT(n[r])}return t}function GT(e){let t=e.spread;return t??e.children.length>1}function qT(e,t){let n={},r=e.all(t),o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o<r.length;){let s=r[o];if(s.type==="element"&&s.tagName==="li"&&s.properties&&Array.isArray(s.properties.className)&&s.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}let i={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,i),e.applyData(t,i)}function YT(e,t){let n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function KT(e,t){let n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function XT(e,t){let n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function QT(e,t){let n=e.all(t),r=n.shift(),o=[];if(r){let s={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],s),o.push(s)}if(n.length>0){let s={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=rs(t.children[1]),u=Oc(t.children[t.children.length-1]);a&&u&&(s.position={start:a,end:u}),o.push(s)}let i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)}function JT(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",s=n&&n.type==="table"?n.align:void 0,a=s?s.length:t.children.length,u=-1,c=[];for(;++u<a;){let d=t.children[u],g={},p=s?s[u]:void 0;p&&(g.align=p);let m={type:"element",tagName:i,properties:g,children:[]};d&&(m.children=e.all(d),e.patch(d,m),m=e.applyData(d,m)),c.push(m)}let l={type:"element",tagName:"tr",properties:{},children:e.wrap(c,!0)};return e.patch(t,l),e.applyData(t,l)}function ZT(e,t){let n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function tI(e){let t=String(e),n=/\r?\n|\r/g,r=n.exec(t),o=0,i=[];for(;r;)i.push(eI(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(eI(t.slice(o),o>0,!1)),i.join("")}function eI(e,t,n){let r=0,o=e.length;if(t){let i=e.codePointAt(r);for(;i===9||i===32;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(o-1);for(;i===9||i===32;)o--,i=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}function nI(e,t){let n={type:"text",value:tI(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function rI(e,t){let n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var oI={blockquote:MT,break:BT,code:DT,delete:RT,emphasis:zT,footnoteReference:NT,heading:OT,html:_T,imageReference:$T,image:UT,inlineCode:jT,linkReference:HT,link:WT,listItem:VT,list:qT,paragraph:YT,root:KT,strong:XT,table:QT,tableCell:ZT,tableRow:JT,text:nI,thematicBreak:rI,toml:Jc,yaml:Jc,definition:Jc,footnoteDefinition:Jc};function Jc(){}var iI=typeof self=="object"?self:globalThis,AU=(e,t)=>{let n=(o,i)=>(e.set(i,o),o),r=o=>{if(e.has(o))return e.get(o);let[i,s]=t[o];switch(i){case 0:case-1:return n(s,o);case 1:{let a=n([],o);for(let u of s)a.push(r(u));return a}case 2:{let a=n({},o);for(let[u,c]of s)a[r(u)]=r(c);return a}case 3:return n(new Date(s),o);case 4:{let{source:a,flags:u}=s;return n(new RegExp(a,u),o)}case 5:{let a=n(new Map,o);for(let[u,c]of s)a.set(r(u),r(c));return a}case 6:{let a=n(new Set,o);for(let u of s)a.add(r(u));return a}case 7:{let{name:a,message:u}=s;return n(new iI[a](u),o)}case 8:return n(BigInt(s),o);case"BigInt":return n(Object(BigInt(s)),o);case"ArrayBuffer":return n(new Uint8Array(s).buffer,s);case"DataView":{let{buffer:a}=new Uint8Array(s);return n(new DataView(a),s)}}return n(new iI[i](s),o)};return r},yx=e=>AU(new Map,e)(0);var ss="",{toString:PU}={},{keys:LU}=Object,Ea=e=>{let t=typeof e;if(t!=="object"||!e)return[0,t];let n=PU.call(e).slice(8,-1);switch(n){case"Array":return[1,ss];case"Object":return[2,ss];case"Date":return[3,ss];case"RegExp":return[4,ss];case"Map":return[5,ss];case"Set":return[6,ss];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},eu=([e,t])=>e===0&&(t==="function"||t==="symbol"),MU=(e,t,n,r)=>{let o=(s,a)=>{let u=r.push(s)-1;return n.set(a,u),u},i=s=>{if(n.has(s))return n.get(s);let[a,u]=Ea(s);switch(a){case 0:{let l=s;switch(u){case"bigint":a=8,l=s.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);l=null;break;case"undefined":return o([-1],s)}return o([a,l],s)}case 1:{if(u){let g=s;return u==="DataView"?g=new Uint8Array(s.buffer):u==="ArrayBuffer"&&(g=new Uint8Array(s)),o([u,[...g]],s)}let l=[],d=o([a,l],s);for(let g of s)l.push(i(g));return d}case 2:{if(u)switch(u){case"BigInt":return o([u,s.toString()],s);case"Boolean":case"Number":case"String":return o([u,s.valueOf()],s)}if(t&&"toJSON"in s)return i(s.toJSON());let l=[],d=o([a,l],s);for(let g of LU(s))(e||!eu(Ea(s[g])))&&l.push([i(g),i(s[g])]);return d}case 3:return o([a,s.toISOString()],s);case 4:{let{source:l,flags:d}=s;return o([a,{source:l,flags:d}],s)}case 5:{let l=[],d=o([a,l],s);for(let[g,p]of s)(e||!(eu(Ea(g))||eu(Ea(p))))&&l.push([i(g),i(p)]);return d}case 6:{let l=[],d=o([a,l],s);for(let g of s)(e||!eu(Ea(g)))&&l.push(i(g));return d}}let{message:c}=s;return o([a,{name:u,message:c}],s)};return i},bx=(e,{json:t,lossy:n}={})=>{let r=[];return MU(!(t||n),!!t,new Map,r)(e),r};var as=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?yx(bx(e,t)):structuredClone(e):(e,t)=>yx(bx(e,t));function BU(e,t){let n=[{type:"text",value:"\u21A9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function DU(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function uI(e){let t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||BU,r=e.options.footnoteBackLabel||DU,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",s=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[],u=-1;for(;++u<e.footnoteOrder.length;){let c=e.footnoteById.get(e.footnoteOrder[u]);if(!c)continue;let l=e.all(c),d=String(c.identifier).toUpperCase(),g=hr(d.toLowerCase()),p=0,m=[],b=e.footnoteCounts.get(d);for(;b!==void 0&&++p<=b;){m.length>0&&m.push({type:"text",value:" "});let k=typeof n=="string"?n:n(u,p);typeof k=="string"&&(k={type:"text",value:k}),m.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(u,p),className:["data-footnote-backref"]},children:Array.isArray(k)?k:[k]})}let I=l[l.length-1];if(I&&I.type==="element"&&I.tagName==="p"){let k=I.children[I.children.length-1];k&&k.type==="text"?k.value+=" ":I.children.push({type:"text",value:" "}),I.children.push(...m)}else l.push(...m);let E={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(l,!0)};e.patch(c,E),a.push(E)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...as(s),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:`
88
88
  `},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:`
89
- `}]}}var Yc=(function(e){if(e==null)return TU;if(typeof e=="function")return Kc(e);if(typeof e=="object")return Array.isArray(e)?vU(e):kU(e);if(typeof e=="string")return CU(e);throw new Error("Expected function, string, or object as test")});function vU(e){let t=[],n=-1;for(;++n<e.length;)t[n]=Yc(e[n]);return Kc(r);function r(...o){let i=-1;for(;++i<t.length;)if(t[i].apply(this,o))return!0;return!1}}function kU(e){let t=e;return Kc(n);function n(r){let o=r,i;for(i in e)if(o[i]!==t[i])return!1;return!0}}function CU(e){return Kc(t);function t(n){return n&&n.type===e}}function Kc(e){return t;function t(n,r,o){return!!(IU(n)&&e.call(this,n,typeof r=="number"?r:void 0,o||void 0))}}function TU(){return!0}function IU(e){return e!==null&&typeof e=="object"&&"type"in e}var ZT=[],dx=!0,Xc=!1,gx="skip";function fx(e,t,n,r){let o;typeof t=="function"&&typeof n!="function"?(r=n,n=t):o=t;let i=Yc(o),s=r?-1:1;a(e,void 0,[])();function a(u,c,l){let d=u&&typeof u=="object"?u:{};if(typeof d.type=="string"){let p=typeof d.tagName=="string"?d.tagName:typeof d.name=="string"?d.name:void 0;Object.defineProperty(g,"name",{value:"node ("+(u.type+(p?"<"+p+">":""))+")"})}return g;function g(){let p=ZT,m,b,F;if((!t||i(u,c,l[l.length-1]||void 0))&&(p=FU(n(u,l)),p[0]===Xc))return p;if("children"in u&&u.children){let E=u;if(E.children&&p[0]!==gx)for(b=(r?E.children.length:-1)+s,F=l.concat(E);b>-1&&b<E.children.length;){let v=E.children[b];if(m=a(v,b,F)(),m[0]===Xc)return m;b=typeof m[1]=="number"?m[1]:b+s}}return p}}}function FU(e){return Array.isArray(e)?e:typeof e=="number"?[dx,e]:e==null?ZT:[e]}function Ia(e,t,n,r){let o,i,s;typeof t=="function"&&typeof n!="function"?(i=void 0,s=t,o=n):(i=t,s=n,o=r),fx(e,i,a,o);function a(u,c){let l=c[c.length-1],d=l?l.children.indexOf(u):void 0;return s(u,d,l)}}var mx={}.hasOwnProperty,EU={};function tI(e,t){let n=t||EU,r=new Map,o=new Map,i=new Map,s={...GT,...n.handlers},a={all:c,applyData:PU,definitionById:r,footnoteById:o,footnoteCounts:i,footnoteOrder:[],handlers:s,one:u,options:n,patch:AU,wrap:MU};return Ia(e,function(l){if(l.type==="definition"||l.type==="footnoteDefinition"){let d=l.type==="definition"?r:o,g=String(l.identifier).toUpperCase();d.has(g)||d.set(g,l)}}),a;function u(l,d){let g=l.type,p=a.handlers[g];if(mx.call(a.handlers,g)&&p)return p(a,l,d);if(a.options.passThrough&&a.options.passThrough.includes(g)){if("children"in l){let{children:b,...F}=l,E=ss(F);return E.children=a.all(l),E}return ss(l)}return(a.options.unknownHandler||LU)(a,l,d)}function c(l){let d=[];if("children"in l){let g=l.children,p=-1;for(;++p<g.length;){let m=a.one(g[p],l);if(m){if(p&&g[p-1].type==="break"&&(!Array.isArray(m)&&m.type==="text"&&(m.value=eI(m.value)),!Array.isArray(m)&&m.type==="element")){let b=m.children[0];b&&b.type==="text"&&(b.value=eI(b.value))}Array.isArray(m)?d.push(...m):d.push(m)}}}return d}}function AU(e,t){e.position&&(t.position=Oh(e))}function PU(e,t){let n=t;if(e&&e.data){let r=e.data.hName,o=e.data.hChildren,i=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{let s="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:s}}n.type==="element"&&i&&Object.assign(n.properties,ss(i)),"children"in n&&n.children&&o!==null&&o!==void 0&&(n.children=o)}return n}function LU(e,t){let n=t.data||{},r="value"in t&&!(mx.call(n,"hProperties")||mx.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function MU(e,t){let n=[],r=-1;for(t&&n.push({type:"text",value:`
89
+ `}]}}var tu=(function(e){if(e==null)return OU;if(typeof e=="function")return nu(e);if(typeof e=="object")return Array.isArray(e)?RU(e):zU(e);if(typeof e=="string")return NU(e);throw new Error("Expected function, string, or object as test")});function RU(e){let t=[],n=-1;for(;++n<e.length;)t[n]=tu(e[n]);return nu(r);function r(...o){let i=-1;for(;++i<t.length;)if(t[i].apply(this,o))return!0;return!1}}function zU(e){let t=e;return nu(n);function n(r){let o=r,i;for(i in e)if(o[i]!==t[i])return!1;return!0}}function NU(e){return nu(t);function t(n){return n&&n.type===e}}function nu(e){return t;function t(n,r,o){return!!(_U(n)&&e.call(this,n,typeof r=="number"?r:void 0,o||void 0))}}function OU(){return!0}function _U(e){return e!==null&&typeof e=="object"&&"type"in e}var pI=[],Sx=!0,ru=!1,wx="skip";function vx(e,t,n,r){let o;typeof t=="function"&&typeof n!="function"?(r=n,n=t):o=t;let i=tu(o),s=r?-1:1;a(e,void 0,[])();function a(u,c,l){let d=u&&typeof u=="object"?u:{};if(typeof d.type=="string"){let p=typeof d.tagName=="string"?d.tagName:typeof d.name=="string"?d.name:void 0;Object.defineProperty(g,"name",{value:"node ("+(u.type+(p?"<"+p+">":""))+")"})}return g;function g(){let p=pI,m,b,I;if((!t||i(u,c,l[l.length-1]||void 0))&&(p=$U(n(u,l)),p[0]===ru))return p;if("children"in u&&u.children){let E=u;if(E.children&&p[0]!==wx)for(b=(r?E.children.length:-1)+s,I=l.concat(E);b>-1&&b<E.children.length;){let k=E.children[b];if(m=a(k,b,I)(),m[0]===ru)return m;b=typeof m[1]=="number"?m[1]:b+s}}return p}}}function $U(e){return Array.isArray(e)?e:typeof e=="number"?[Sx,e]:e==null?pI:[e]}function Aa(e,t,n,r){let o,i,s;typeof t=="function"&&typeof n!="function"?(i=void 0,s=t,o=n):(i=t,s=n,o=r),vx(e,i,a,o);function a(u,c){let l=c[c.length-1],d=l?l.children.indexOf(u):void 0;return s(u,d,l)}}var kx={}.hasOwnProperty,UU={};function gI(e,t){let n=t||UU,r=new Map,o=new Map,i=new Map,s={...oI,...n.handlers},a={all:c,applyData:HU,definitionById:r,footnoteById:o,footnoteCounts:i,footnoteOrder:[],handlers:s,one:u,options:n,patch:jU,wrap:VU};return Aa(e,function(l){if(l.type==="definition"||l.type==="footnoteDefinition"){let d=l.type==="definition"?r:o,g=String(l.identifier).toUpperCase();d.has(g)||d.set(g,l)}}),a;function u(l,d){let g=l.type,p=a.handlers[g];if(kx.call(a.handlers,g)&&p)return p(a,l,d);if(a.options.passThrough&&a.options.passThrough.includes(g)){if("children"in l){let{children:b,...I}=l,E=as(I);return E.children=a.all(l),E}return as(l)}return(a.options.unknownHandler||WU)(a,l,d)}function c(l){let d=[];if("children"in l){let g=l.children,p=-1;for(;++p<g.length;){let m=a.one(g[p],l);if(m){if(p&&g[p-1].type==="break"&&(!Array.isArray(m)&&m.type==="text"&&(m.value=dI(m.value)),!Array.isArray(m)&&m.type==="element")){let b=m.children[0];b&&b.type==="text"&&(b.value=dI(b.value))}Array.isArray(m)?d.push(...m):d.push(m)}}}return d}}function jU(e,t){e.position&&(t.position=Gh(e))}function HU(e,t){let n=t;if(e&&e.data){let r=e.data.hName,o=e.data.hChildren,i=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{let s="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:s}}n.type==="element"&&i&&Object.assign(n.properties,as(i)),"children"in n&&n.children&&o!==null&&o!==void 0&&(n.children=o)}return n}function WU(e,t){let n=t.data||{},r="value"in t&&!(kx.call(n,"hProperties")||kx.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function VU(e,t){let n=[],r=-1;for(t&&n.push({type:"text",value:`
90
90
  `});++r<e.length;)r&&n.push({type:"text",value:`
91
91
  `}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:`
92
- `}),n}function eI(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Qc(e,t){let n=tI(e,t),r=n.one(e,void 0),o=JT(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return o&&("children"in i,i.children.push({type:"text",value:`
93
- `},o)),i}function Jc(e,t){return e&&"run"in e?async function(n,r){let o=Qc(n,{file:r,...t});await e.run(o,r)}:function(n,r){return Qc(n,{file:r,...e||t})}}function hx(e){if(e)throw e}var tu=Ga(uI(),1);function Fa(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function xx(){let e=[],t={run:n,use:r};return t;function n(...o){let i=-1,s=o.pop();if(typeof s!="function")throw new TypeError("Expected function as last argument, not "+s);a(null,...o);function a(u,...c){let l=e[++i],d=-1;if(u){s(u);return}for(;++d<o.length;)(c[d]===null||c[d]===void 0)&&(c[d]=o[d]);o=c,l?pI(l,a)(...c):s(null,...c)}}function r(o){if(typeof o!="function")throw new TypeError("Expected `middelware` to be a function, not "+o);return e.push(o),t}}function pI(e,t){let n;return r;function r(...s){let a=e.length>s.length,u;a&&s.push(o);try{u=e.apply(this,s)}catch(c){let l=c;if(a&&n)throw l;return o(l)}a||(u&&u.then&&typeof u.then=="function"?u.then(i,o):u instanceof Error?o(u):i(u))}function o(s,...a){n||(n=!0,t(s,...a))}function i(s){o(null,s)}}var Dr={basename:BU,dirname:DU,extname:RU,join:zU,sep:"/"};function BU(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ea(e);let n=0,r=-1,o=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else r<0&&(i=!0,r=o+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let s=-1,a=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else s<0&&(i=!0,s=o+1),a>-1&&(e.codePointAt(o)===t.codePointAt(a--)?a<0&&(r=o):(a=-1,r=s));return n===r?r=s:r<0&&(r=e.length),e.slice(n,r)}function DU(e){if(Ea(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function RU(e){Ea(e);let t=e.length,n=-1,r=0,o=-1,i=0,s;for(;t--;){let a=e.codePointAt(t);if(a===47){if(s){r=t+1;break}continue}n<0&&(s=!0,n=t+1),a===46?o<0?o=t:i!==1&&(i=1):o>-1&&(i=-1)}return o<0||n<0||i===0||i===1&&o===n-1&&o===r+1?"":e.slice(o,n)}function zU(...e){let t=-1,n;for(;++t<e.length;)Ea(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":NU(n)}function NU(e){Ea(e);let t=e.codePointAt(0)===47,n=OU(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function OU(e,t){let n="",r=0,o=-1,i=0,s=-1,a,u;for(;++s<=e.length;){if(s<e.length)a=e.codePointAt(s);else{if(a===47)break;a=47}if(a===47){if(!(o===s-1||i===1))if(o!==s-1&&i===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(u=n.lastIndexOf("/"),u!==n.length-1){u<0?(n="",r=0):(n=n.slice(0,u),r=n.length-1-n.lastIndexOf("/")),o=s,i=0;continue}}else if(n.length>0){n="",r=0,o=s,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(o+1,s):n=e.slice(o+1,s),r=s-o-1;o=s,i=0}else a===46&&i>-1?i++:i=-1}return n}function Ea(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var dI={cwd:_U};function _U(){return"/"}function as(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gI(e){if(typeof e=="string")e=new URL(e);else if(!as(e)){let t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){let t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return $U(e)}function $U(e){if(e.hostname!==""){let r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}let t=e.pathname,n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){let r=t.codePointAt(n+2);if(r===70||r===102){let o=new TypeError("File URL path must not include encoded / characters");throw o.code="ERR_INVALID_FILE_URL_PATH",o}}return decodeURIComponent(t)}var yx=["history","path","basename","stem","extname","dirname"],fi=class{constructor(t){let n;t?as(t)?n={path:t}:typeof t=="string"||UU(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":dI.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<yx.length;){let i=yx[r];i in n&&n[i]!==void 0&&n[i]!==null&&(this[i]=i==="history"?[...n[i]]:n[i])}let o;for(o in n)yx.includes(o)||(this[o]=n[o])}get basename(){return typeof this.path=="string"?Dr.basename(this.path):void 0}set basename(t){Sx(t,"basename"),bx(t,"basename"),this.path=Dr.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?Dr.dirname(this.path):void 0}set dirname(t){fI(this.basename,"dirname"),this.path=Dr.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?Dr.extname(this.path):void 0}set extname(t){if(bx(t,"extname"),fI(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Dr.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){as(t)&&(t=gI(t)),Sx(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?Dr.basename(this.path,this.extname):void 0}set stem(t){Sx(t,"stem"),bx(t,"stem"),this.path=Dr.join(this.dirname||"",t+(this.extname||""))}fail(t,n,r){let o=this.message(t,n,r);throw o.fatal=!0,o}info(t,n,r){let o=this.message(t,n,r);return o.fatal=void 0,o}message(t,n,r){let o=new Yt(t,n,r);return this.path&&(o.name=this.path+":"+o.name,o.file=this.path),o.fatal=!1,this.messages.push(o),o}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}};function bx(e,t){if(e&&e.includes(Dr.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Dr.sep+"`")}function Sx(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function fI(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function UU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}var mI=(function(e){let r=this.constructor.prototype,o=r[e],i=function(){return o.apply(i,arguments)};return Object.setPrototypeOf(i,r),i});var jU={}.hasOwnProperty,Cx=class e extends mI{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=xx()}copy(){let t=new e,n=-1;for(;++n<this.attachers.length;){let r=this.attachers[n];t.use(...r)}return t.data((0,tu.default)(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(kx("data",this.frozen),this.namespace[t]=n,this):jU.call(this.namespace,t)&&this.namespace[t]||void 0:t?(kx("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;let t=this;for(;++this.freezeIndex<this.attachers.length;){let[n,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);let o=n.call(t,...r);typeof o=="function"&&this.transformers.use(o)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();let n=eu(t),r=this.parser||this.Parser;return wx("parse",r),r(String(n),n)}process(t,n){let r=this;return this.freeze(),wx("process",this.parser||this.Parser),vx("process",this.compiler||this.Compiler),n?o(void 0,n):new Promise(o);function o(i,s){let a=eu(t),u=r.parse(a);r.run(u,a,function(l,d,g){if(l||!d||!g)return c(l);let p=d,m=r.stringify(p,g);WU(m)?g.value=m:g.result=m,c(l,g)});function c(l,d){l||!d?s(l):i?i(d):n(void 0,d)}}}processSync(t){let n=!1,r;return this.freeze(),wx("processSync",this.parser||this.Parser),vx("processSync",this.compiler||this.Compiler),this.process(t,o),xI("processSync","process",n),r;function o(i,s){n=!0,hx(i),r=s}}run(t,n,r){hI(t),this.freeze();let o=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?i(void 0,r):new Promise(i);function i(s,a){let u=eu(n);o.run(t,u,c);function c(l,d,g){let p=d||t;l?a(l):s?s(p):r(void 0,p,g)}}}runSync(t,n){let r=!1,o;return this.run(t,n,i),xI("runSync","run",r),o;function i(s,a){hx(s),o=a,r=!0}}stringify(t,n){this.freeze();let r=eu(n),o=this.compiler||this.Compiler;return vx("stringify",o),hI(t),o(t,r)}use(t,...n){let r=this.attachers,o=this.namespace;if(kx("use",this.frozen),t!=null)if(typeof t=="function")u(t,n);else if(typeof t=="object")Array.isArray(t)?a(t):s(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function i(c){if(typeof c=="function")u(c,[]);else if(typeof c=="object")if(Array.isArray(c)){let[l,...d]=c;u(l,d)}else s(c);else throw new TypeError("Expected usable value, not `"+c+"`")}function s(c){if(!("plugins"in c)&&!("settings"in c))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");a(c.plugins),c.settings&&(o.settings=(0,tu.default)(!0,o.settings,c.settings))}function a(c){let l=-1;if(c!=null)if(Array.isArray(c))for(;++l<c.length;){let d=c[l];i(d)}else throw new TypeError("Expected a list of plugins, not `"+c+"`")}function u(c,l){let d=-1,g=-1;for(;++d<r.length;)if(r[d][0]===c){g=d;break}if(g===-1)r.push([c,...l]);else if(l.length>0){let[p,...m]=l,b=r[g][1];Fa(b)&&Fa(p)&&(p=(0,tu.default)(!0,b,p)),r[g]=[c,p,...m]}}}},Tx=new Cx().freeze();function wx(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function vx(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function kx(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function hI(e){if(!Fa(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function xI(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function eu(e){return HU(e)?e:new fi(e)}function HU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function WU(e){return typeof e=="string"||VU(e)}function VU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}var KU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",yI=[],bI={allowDangerousHtml:!0},XU=/^(https?|ircs?|mailto|xmpp)$/i,QU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Ix(e){let t=JU(e),n=ZU(e);return ej(t.runSync(t.parse(n),n),e)}function JU(e){let t=e.rehypePlugins||yI,n=e.remarkPlugins||yI,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...bI}:bI;return Tx().use(Hc).use(n).use(Jc,r).use(t)}function ZU(e){let t=e.children||"",n=new fi;return typeof t=="string"?n.value=t:(""+t,void 0),n}function ej(e,t){let n=t.allowedElements,r=t.allowElement,o=t.components,i=t.disallowedElements,s=t.skipHtml,a=t.unwrapDisallowed,u=t.urlTransform||SI;for(let l of QU)Object.hasOwn(t,l.from)&&(""+l.from+(l.to?"use `"+l.to+"` instead":"remove it")+KU+l.id,void 0);return n&&i&&void 0,Ia(e,c),Uh(e,{Fragment:GU,components:o,ignoreInvalidStyle:!0,jsx:qU,jsxs:YU,passKeys:!0,passNode:!0});function c(l,d,g){if(l.type==="raw"&&g&&typeof d=="number")return s?g.children.splice(d,1):g.children[d]={type:"text",value:l.value},d;if(l.type==="element"){let p;for(p in ya)if(Object.hasOwn(ya,p)&&Object.hasOwn(l.properties,p)){let m=l.properties[p],b=ya[p];(b===null||b.includes(l.tagName))&&(l.properties[p]=u(String(m||""),p,l))}}if(l.type==="element"){let p=n?!n.includes(l.tagName):i?i.includes(l.tagName):!1;if(!p&&r&&typeof d=="number"&&(p=!r(l,d,g)),p&&g&&typeof d=="number")return a&&l.children?g.children.splice(d,1,...l.children):g.children.splice(d,1),d}}}function SI(e){let t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),o=e.indexOf("/");return t===-1||o!==-1&&t>o||n!==-1&&t>n||r!==-1&&t>r||XU.test(e.slice(0,t))?e:""}ve();var nj=ls.div({display:"flex",flexDirection:"column",gap:"12px"}),rj=ls.div({display:"flex",justifyContent:"space-between",alignItems:"center"}),oj=ls.div(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),ij=ls(An)({padding:"6px 12px",fontSize:"12px"}),sj=ls.div(({theme:e})=>({backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",padding:"12px",fontSize:"12px",color:e.color.defaultText,overflowY:"auto",maxHeight:"400px",lineHeight:"1.6","& h1, & h2, & h3, & h4":{marginTop:"16px",marginBottom:"8px",fontWeight:600,color:e.color.defaultText},"& h1":{fontSize:"18px"},"& h2":{fontSize:"16px"},"& h3":{fontSize:"14px"},"& h4":{fontSize:"13px"},"& p":{margin:"8px 0"},"& ul, & ol":{paddingLeft:"20px",margin:"8px 0"},"& li":{margin:"4px 0"},"& code":{backgroundColor:e.background.app,padding:"2px 4px",borderRadius:"3px",fontFamily:y1.fontMono,fontSize:"11px"},"& pre":{backgroundColor:e.background.app,padding:"8px",borderRadius:"4px",overflowX:"auto","& code":{backgroundColor:"transparent",padding:0}},"& strong":{fontWeight:600},"& blockquote":{borderLeft:`3px solid ${e.color.secondary}`,paddingLeft:"12px",margin:"8px 0",color:e.color.mediumdark}})),aj=ls.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),Fx=()=>{let{fullPrompt:e,userRole:t,roleOverride:n}=ce(),[r,o]=tj(!1);if((n??t)!=="admin")return null;let s=async()=>{try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),2e3)}catch(a){console.error("Failed to copy:",a)}};return e?mi.createElement(nj,null,mi.createElement(rj,null,mi.createElement(oj,null,"Full Prompt"),mi.createElement(ij,{onClick:s,disabled:r},r?"\u2713 Copied!":"\u{1F4CB} Copy")),mi.createElement(sj,null,mi.createElement(Ix,null,e))):mi.createElement(aj,null,"No prompt available. Generate a prompt or run a review to see the full prompt here.")};import fo,{useRef as lj}from"react";import{styled as Rr}from"storybook/theming";ve();var cj=Rr.div({display:"flex",flexDirection:"column",gap:"8px"}),Dge=Rr.div(({theme:e,variant:t,value:n})=>{let o=t==="issues"?n===0?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n<=3?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n<=6?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"}:n>=80?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n>=60?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n>=40?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"};return{fontSize:"11px",fontWeight:700,color:o.text,backgroundColor:o.bg,padding:"3px 10px",borderRadius:"12px",border:`1px solid ${o.border}`,whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px"}}),uj=Rr.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"6px",maxHeight:"200px",overflowY:"auto",scrollBehavior:"smooth",padding:"6px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.background.app})),pj=Rr.div(({role:e,theme:t})=>({padding:"8px 10px",borderRadius:"4px",fontSize:"11px",lineHeight:"1.4",backgroundColor:e==="system"?t.background.hoverable:t.background.content,border:`1px solid ${t.appBorderColor}`,color:t.color.defaultText})),Rge=Rr.div(({theme:e})=>({fontSize:"11px",fontWeight:600,textTransform:"uppercase",color:e.color.mediumdark,marginBottom:"6px",letterSpacing:"0.5px"})),wI=Rr.div(({theme:e})=>({whiteSpace:"pre-wrap",wordWrap:"break-word",fontFamily:'Monaco, Menlo, "Ubuntu Mono", monospace',fontSize:"10px","& .section-header":{fontSize:"11px",fontWeight:700,color:e.color.secondary,marginTop:"8px",marginBottom:"4px",display:"block"},"& .issue-header":{fontWeight:600,marginTop:"6px",marginBottom:"2px",display:"block"},"& .severity-critical":{color:e.color.negative||"#dc2626",fontWeight:700},"& .severity-major":{color:e.color.warning||ae,fontWeight:700},"& .severity-minor":{color:e.color.warning||"#ca8a04",fontWeight:700},"& .issue-type":{color:e.color.secondary,fontWeight:600},"& .source-tag":{color:e.base==="dark"?"#22d3ee":"#0891b2",backgroundColor:e.base==="dark"?"rgba(34, 211, 238, 0.2)":"#cffafe",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600},"& .field-label":{color:e.textMutedColor,fontWeight:600},"& .field-value":{color:e.color.defaultText},"& .score":{fontSize:"11px",fontWeight:700,color:e.color.positive||"#16a34a",display:"inline-block",padding:"1px 6px",backgroundColor:e.background.positive||"#dcfce7",borderRadius:"3px"},"& .score-low":{color:e.color.negative||"#dc2626",backgroundColor:e.background.negative||"#fee2e2"},"& .score-medium":{color:e.color.warning||ae,backgroundColor:e.background.warning||"#ffedd5"}})),dj=Rr.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),gj=Rr.div(({theme:e})=>({padding:"12px 16px",borderRadius:"8px",backgroundColor:e.background.positive||"#dcfce7",border:`1px solid ${e.color.positive||"#86efac"}`,color:e.color.positive||"#166534",fontSize:"13px",fontWeight:500,lineHeight:1.5,marginBottom:"12px"})),fj=Rr.div({fontWeight:700,fontSize:"14px",marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"}),mj=Rr.div(({theme:e})=>({fontSize:"12px",opacity:.9,color:e.color.positive||"#166534"})),zge=Rr.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"8px",textAlign:"right"}));function hj(e){let t=e;return t=t.replace(/^(?:\*?\*?)?(?:##?)?\s*SCORE:\s*\d+.*$/gm,""),t=t.replace(/^(ISSUES:|SUMMARY:)/gm,'<span class="section-header">$1</span>'),t=t.replace(/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g,(n,r,o,i,s)=>{let a=o.toLowerCase().includes("critical")?"severity-critical":o.toLowerCase().includes("major")?"severity-major":"severity-minor";return`<span class="issue-header"><span class="issue-type">[${r}]</span> <span class="${a}">[${o}]</span> <span class="source-tag">[${i}]</span> - ${s}</span>`}),t=t.replace(/^(Expected:|Actual:|Property:|Source:|Fix:|Visual Difference:)\s*(.+)/gm,'<span class="field-label">$1</span> <span class="field-value">$2</span>'),t}var Ex=()=>{let{streamingMessages:e,fullResponse:t,reviewHistory:n,currentReviewId:r,userRole:o,roleOverride:i}=ce(),s=lj(null);if((i??o)!=="admin")return null;let u=r?n.find(m=>m.id===r):null,c=u?u.issues.length>0&&u.issues.every(m=>m.dismissed):!1,l=u&&(u.complianceScore===100||c),d=e.filter(m=>m.role==="assistant"||m.role==="system"&&m.content.includes("auto-dismissed")),g=d.length===0&&!!t;if(d.length===0&&!g)return fo.createElement(dj,null,"No AI response yet. The AI's analysis will appear here as it streams.");let p=d.length>0?d:[{role:"assistant",content:t}];return fo.createElement(cj,null,l&&fo.createElement(gj,null,fo.createElement(fj,null,"Component Matches Design"),fo.createElement(mj,null,c&&u?.issues.length?`All ${u.issues.length} issue${u.issues.length===1?"":"s"} identified by the AI ${u.issues.length===1?"was":"were"} validated as false positive${u.issues.length===1?"":"s"} and auto-dismissed.`:"No design discrepancies found. The implementation matches the Figma design.")),fo.createElement(uj,{ref:s},p.map((m,b)=>fo.createElement(pj,{key:b,role:m.role},m.role==="system"?fo.createElement(wI,null,m.content):fo.createElement(wI,{dangerouslySetInnerHTML:{__html:hj(m.content)}})))))};import yr from"react";import{styled as Vo}from"storybook/theming";ve();Ne();var xj=Vo.div({display:"flex",flexDirection:"column",gap:"12px"}),yj=Vo.div(({theme:e})=>({display:"flex",gap:"6px",borderBottom:`2px solid ${e.appBorderColor}`,overflowX:"auto",paddingBottom:"2px"})),bj=Vo.button(({theme:e,isActive:t,provider:n})=>{let o={anthropic:{background:"#D4A574",text:"#ffffff",hover:"#C49564"},openai:{background:e.color.positive||"#10b981",text:"#ffffff",hover:e.base==="dark"?"#34d399":"#059669"},google:{background:"#4285F4",text:"#ffffff",hover:"#3367D6"}}[n];return{display:"flex",alignItems:"center",gap:"6px",padding:"8px 16px",fontSize:"12px",fontWeight:600,color:t?o.text:e.textMutedColor,backgroundColor:t?o.background:"transparent",border:"none",borderRadius:"6px 6px 0 0",cursor:"pointer",whiteSpace:"nowrap",transition:"all 0.2s",opacity:t?1:.6,"&:hover":{opacity:1,backgroundColor:t?o.hover:e.background.hoverable}}}),vI=Vo.div(({theme:e,variant:t,value:n})=>{let o=t==="issues"?n===0?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n<=3?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n<=6?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"}:n>=80?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n>=60?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n>=40?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"};return{fontSize:"10px",fontWeight:700,color:o.text,backgroundColor:o.bg,padding:"2px 8px",borderRadius:"10px",border:`1px solid ${o.border}`,whiteSpace:"nowrap"}}),Sj=Vo.div(({theme:e})=>({padding:"12px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.background.app,minHeight:"200px",maxHeight:"400px",overflowY:"auto",scrollBehavior:"smooth"})),kI=Vo.div(({theme:e})=>({fontSize:"12px",lineHeight:"1.5",whiteSpace:"pre-wrap",wordWrap:"break-word",fontFamily:'Monaco, Menlo, "Ubuntu Mono", monospace',color:e.color.defaultText,"& .section-header":{fontSize:"13px",fontWeight:700,color:e.color.secondary,marginTop:"12px",marginBottom:"6px",display:"block"},"& .issue-header":{fontWeight:600,marginTop:"10px",marginBottom:"4px",display:"block"},"& .severity-critical":{color:e.color.negative||"#dc2626",fontWeight:700},"& .severity-major":{color:e.color.warning||ae,fontWeight:700},"& .severity-minor":{color:e.color.warning||"#ca8a04",fontWeight:700},"& .issue-type":{color:e.color.secondary,fontWeight:600},"& .source-tag":{color:e.base==="dark"?"#22d3ee":"#0891b2",backgroundColor:e.base==="dark"?"rgba(34, 211, 238, 0.2)":"#cffafe",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600},"& .field-label":{color:e.textMutedColor,fontWeight:600},"& .field-value":{color:e.color.defaultText},"& .score":{fontSize:"14px",fontWeight:700,color:e.color.positive||"#16a34a",display:"inline-block",padding:"2px 8px",backgroundColor:e.background.positive||"#dcfce7",borderRadius:"4px"},"& .score-low":{color:e.color.negative||"#dc2626",backgroundColor:e.background.negative||"#fee2e2"},"& .score-medium":{color:e.color.warning||ae,backgroundColor:e.background.warning||"#ffedd5"}})),CI=Vo.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),wj=Vo.div({width:"12px",height:"12px",border:"2px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 0.8s linear infinite",display:"inline-block",marginLeft:"6px","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}});function TI(e){let t=e;return t=t.replace(/^(ISSUES:|SCORE:|SUMMARY:)/gm,'<span class="section-header">$1</span>'),t=t.replace(/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g,(n,r,o,i,s)=>{let a=o.toLowerCase().includes("critical")?"severity-critical":o.toLowerCase().includes("major")?"severity-major":"severity-minor";return`<span class="issue-header"><span class="issue-type">[${r}]</span> <span class="${a}">[${o}]</span> <span class="source-tag">[${i}]</span> - ${s}</span>`}),t=t.replace(/^(Expected:|Actual:|Property:|Source:|Fix:|Visual Difference:)\s*(.+)/gm,'<span class="field-label">$1</span> <span class="field-value">$2</span>'),t=t.replace(/SCORE:\s*(\d+)/g,(n,r)=>{let o=parseInt(r,10);return`SCORE: <span class="${o>=80?"score":o>=60?"score score-medium":"score score-low"}">${r}</span>`}),t}function vj(e){let t=e.match(/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-/g),n=t?t.length:0,r=e.match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i),o=r?parseInt(r[1],10):null;return{issueCount:n,score:o}}var II=()=>{let{multiModelResults:e,isReviewing:t,setActiveModelId:n,selectedModels:r,userRole:o,roleOverride:i}=ce();if((i??o)!=="admin")return null;yr.useEffect(()=>{e&&(y.debug("[ModelResultsTabs] multiModelResults:",e),Object.entries(e.byModel).forEach(([l,d])=>{y.debug(`[ModelResultsTabs] ${l}:`,{hasStreamingMessages:!!d.streamingMessages,streamingMessagesLength:d.streamingMessages?.length||0,streamingMessagesPreview:d.streamingMessages?.[0]?.content?.substring(0,100),hasFullResponse:!!d.fullResponse,fullResponsePreview:d.fullResponse?.substring(0,100)})}))},[e]);let a=e&&Object.keys(e.byModel).length>0?Object.keys(e.byModel):r,u=e?.activeModelId||(a.length>0?a[0]:""),c=e?.byModel||{};return a.length===0?yr.createElement(CI,null,"No models selected. Select multiple models to compare results."):yr.createElement(xj,null,yr.createElement(yj,null,a.map(l=>{let d=uo.find(E=>E.id===l),g=c[l],m=vj(t&&g?.streamingMessages&&g.streamingMessages.length>0?g.streamingMessages[0].content||"":g?.fullResponse?g.fullResponse:""),b=l===u;if(!d)return null;let F=t&&!g?.completed;return yr.createElement(bj,{key:l,isActive:b,provider:d.provider,onClick:()=>n(l)},d.name,g&&m.issueCount>0&&yr.createElement(vI,{variant:"issues",value:m.issueCount},m.issueCount," issues"),g&&m.score!==null&&yr.createElement(vI,{variant:"score",value:m.score},"Score: ",m.score),F&&yr.createElement(wj,null))})),yr.createElement(Sj,null,c[u]?.streamingMessages&&c[u].streamingMessages.length>0?c[u].streamingMessages.map((l,d)=>yr.createElement(kI,{key:d,dangerouslySetInnerHTML:{__html:TI(l.content)}})):c[u]?.fullResponse?yr.createElement(kI,{dangerouslySetInnerHTML:{__html:TI(c[u].fullResponse)}}):yr.createElement(CI,null,t?`Waiting for ${uo.find(l=>l.id===u)?.name}...`:`No response yet for ${uo.find(l=>l.id===u)?.name}`)))};import ze from"react";import{styled as At}from"storybook/theming";ve();Un();ve();import{useCallback as Ax}from"react";Ne();function FI(){let{dismissIssue:e,undismissIssue:t,reviewHistory:n}=ce(),{sessionToken:r}=Se(),o=Ax(a=>{for(let u of n){let c=u.issues.find(l=>l.id===a);if(c)return c.dbId||c.id||null}return null},[n]),i=Ax((a,u)=>{e(a,u,"user");let c=o(a);if(!c){y.debug("[useIssuePersistence] Dismiss skipped server sync \u2014 no dbId for",a);return}if(!r){y.debug("[useIssuePersistence] Dismiss skipped \u2014 no session token");return}tc(c,!0,u,"user",r).then(l=>{l.success||y.warn("[useIssuePersistence] Dismiss server sync failed:",l.error)})},[e,o,r]),s=Ax(a=>{t(a);let u=o(a);if(!u){y.debug("[useIssuePersistence] Undismiss skipped server sync \u2014 no dbId for",a);return}if(!r){y.debug("[useIssuePersistence] Undismiss skipped \u2014 no session token");return}tc(u,!1,void 0,"user",r).then(c=>{c.success||y.warn("[useIssuePersistence] Undismiss server sync failed:",c.error)})},[t,o,r]);return{dismissAndSync:i,undismissAndSync:s}}import q,{useMemo as WH,useState as VH,useEffect as GH}from"react";import{styled as st,keyframes as qH}from"storybook/theming";import J,{useState as Dx,useRef as D8,useCallback as WI,memo as R8}from"react";import{styled as Pe}from"storybook/theming";import dt,{useState as EI}from"react";import{styled as Fn}from"storybook/theming";var kj=()=>dt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},dt.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),dt.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Cj=()=>dt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},dt.createElement("circle",{cx:"12",cy:"12",r:"10"}),dt.createElement("polyline",{points:"12 6 12 12 16 14"})),Tj=()=>dt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},dt.createElement("circle",{cx:"12",cy:"12",r:"10"}),dt.createElement("line",{x1:"4.93",y1:"4.93",x2:"19.07",y2:"19.07"})),Ij=()=>dt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},dt.createElement("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"})),Fj=()=>dt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},dt.createElement("path",{d:"M12 3l1.68 5.17L19 10l-5.32 1.83L12 17l-1.68-5.17L5 10l5.32-1.83z"}),dt.createElement("path",{d:"M5 3l.74 2.26L8 6l-2.26.74L5 9l-.74-2.26L2 6l2.26-.74z"}),dt.createElement("path",{d:"M19 15l.74 2.26L22 18l-2.26.74L19 21l-.74-2.26L16 18l2.26-.74z"})),AI=[{id:"false-positive",Icon:kj,label:"False positive",description:"The AI flagged something that isn't actually a design issue",color:"#9ca3af",bg:"rgba(156,163,175,0.15)"},{id:"planned",Icon:Cj,label:"Planned",description:"Valid issue \u2014 logged and scheduled to fix in a future sprint",color:"#60a5fa",bg:"rgba(96,165,250,0.15)"},{id:"wont-fix",Icon:Tj,label:"Won't fix",description:"Intentional deviation \u2014 design has approved this difference",color:"#fbbf24",bg:"rgba(251,191,36,0.15)"},{id:"no-figma-state",Icon:Ij,label:"No Figma state",description:"No Figma frame exists for this specific story variant or state",color:"#a78bfa",bg:"rgba(167,139,250,0.15)"},{id:"design-pending",Icon:Fj,label:"Design pending",description:"Code was built first \u2014 designer will add the Figma spec later",color:"#34d399",bg:"rgba(52,211,153,0.15)"}],Ej=Fn.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999}),Aj=Fn.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"10px",padding:"24px",maxWidth:"480px",width:"90%",boxShadow:"0 10px 40px rgba(0,0,0,0.25)",border:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",gap:"20px"})),Pj=Fn.div({display:"flex",flexDirection:"column",gap:"4px"}),Lj=Fn.h3(({theme:e})=>({fontSize:"17px",fontWeight:700,color:e.color.defaultText,margin:0})),Mj=Fn.p(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,margin:0,fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),Bj=Fn.div({display:"flex",flexDirection:"column",gap:"6px"}),Dj=Fn.button(({theme:e,selected:t,accentColor:n})=>({display:"flex",alignItems:"flex-start",gap:"12px",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${t?n:e.appBorderColor}`,backgroundColor:t?`${n}10`:e.background.app,boxShadow:t?`0 0 0 1px ${n}`:"none",cursor:"pointer",textAlign:"left",width:"100%",transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable}})),Rj=Fn.div(({color:e,bg:t})=>({width:"36px",height:"36px",borderRadius:"7px",backgroundColor:t,color:e,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0})),zj=Fn.div({display:"flex",flexDirection:"column",gap:"2px",minWidth:0,flex:1}),Nj=Fn.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,lineHeight:"1.3"})),Oj=Fn.span(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,lineHeight:"1.4"})),_j=Fn.div({display:"flex",flexDirection:"column",gap:"6px"}),$j=Fn.label(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.defaultText})),Uj=Fn.textarea(({theme:e})=>({width:"100%",minHeight:"72px",padding:"8px 10px",fontSize:"13px",borderRadius:"6px",border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,color:e.color.defaultText,fontFamily:"inherit",resize:"vertical",boxSizing:"border-box","&:focus":{outline:"none",borderColor:e.color.secondary},"&::placeholder":{color:e.textMutedColor}})),jj=Fn.div({display:"flex",justifyContent:"flex-end",gap:"8px"}),Hj=Fn.button(({theme:e,disabled:t,accentColor:n})=>({padding:"8px 18px",fontSize:"13px",fontWeight:600,borderRadius:"6px",border:"none",cursor:t?"not-allowed":"pointer",backgroundColor:t?e.color.medium:n||e.color.secondary,color:"#ffffff",opacity:t?.5:1,transition:"opacity 0.15s","&:hover":{opacity:t?.5:.85}})),PI=({isOpen:e,issueTitle:t,onConfirm:n,onCancel:r})=>{let[o,i]=EI(null),[s,a]=EI("");if(!e)return null;let u=AI.find(d=>d.id===o),c=()=>{o&&(n(o,s.trim()||void 0),i(null),a(""))},l=()=>{i(null),a(""),r()};return dt.createElement(Ej,{onClick:d=>d.target===d.currentTarget&&l()},dt.createElement(Aj,null,dt.createElement(Pj,null,dt.createElement(Lj,null,"Dismiss Issue"),dt.createElement(Mj,{title:t},t)),dt.createElement(Bj,{role:"radiogroup"},AI.map(({id:d,Icon:g,label:p,description:m,color:b,bg:F})=>dt.createElement(Dj,{key:d,selected:o===d,accentColor:b,onClick:()=>i(d),role:"radio","aria-checked":o===d},dt.createElement(Rj,{color:b,bg:F},dt.createElement(g,null)),dt.createElement(zj,null,dt.createElement(Nj,null,p),dt.createElement(Oj,null,m))))),dt.createElement(_j,null,dt.createElement($j,{htmlFor:"dismiss-note"},"Note (optional)"),dt.createElement(Uj,{id:"dismiss-note",placeholder:"Add context\u2026",value:s,onChange:d=>a(d.target.value),rows:3})),dt.createElement(jj,null,dt.createElement(Or,{onClick:l},"Cancel"),dt.createElement(Hj,{disabled:!o,accentColor:u?.color,onClick:c},"Dismiss Issue"))))};ve();import Ae from"react";import{styled as it}from"storybook/theming";var Re={outerBg:"#f0f0f0",borderBoxBg:"#fff",borderBoxStroke:"#999",paddingBg:"#dceefb",paddingStroke:"rgba(0,0,0,0.08)",contentStroke:"#888",text:"#333",dim:"#999",dash:"#aaa",blue:"#4a90d9",pink:"#e91e8c",err:"#d32f2f",errBg:"rgba(211,47,47,0.12)",ok:"#2e7d32"},Wj=it.div(({theme:e})=>({marginTop:6,borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content,overflow:"hidden",maxWidth:340})),Vj=it.div(({theme:e})=>({padding:"6px 10px",fontSize:11,fontWeight:500,color:e.color.defaultText,borderBottom:`1px solid ${e.appBorderColor}`})),Gj=it.div({position:"relative",backgroundColor:Re.outerBg,padding:"8px 12px 24px",fontFamily:"monospace",fontSize:11}),rfe=it.div({display:"flex",justifyContent:"space-between",alignItems:"center",color:Re.dash,padding:"0 8px",height:18,fontSize:11}),ofe=it.div({position:"absolute",color:Re.dash,fontSize:11,top:"50%",transform:"translateY(-50%)"},e=>({...e.side==="left"&&{left:8},...e.side==="right"&&{right:8}})),ife=it.div(e=>({position:"absolute",backgroundColor:e.color,color:"#fff",fontSize:10,fontWeight:600,fontFamily:"monospace",padding:"1px 6px",borderRadius:3,zIndex:2,...e.side==="top"&&{top:4,left:"50%",transform:"translateX(-50%)"},...e.side==="bottom"&&{bottom:4,left:"50%",transform:"translateX(-50%)"},...e.side==="left"&&{left:4,top:"50%",transform:"translateY(-50%)"},...e.side==="right"&&{right:4,top:"50%",transform:"translateY(-50%)"}})),sfe=it.div(e=>({position:"absolute",backgroundColor:e.color,zIndex:1,...e.orient==="v"&&{width:1,left:"50%"},...e.orient==="h"&&{height:1,top:"50%"},...e.side==="top"&&{top:18,height:10},...e.side==="bottom"&&{bottom:18,height:10},...e.side==="left"&&{left:30,width:20},...e.side==="right"&&{right:30,width:20}})),qj=it.div(e=>({position:"relative",backgroundColor:e.isErr?Re.errBg:Re.borderBoxBg,border:`1px solid ${e.isErr?Re.err:Re.borderBoxStroke}`,borderRadius:6,padding:0})),Yj=it.div({display:"flex",justifyContent:"space-between",alignItems:"center",padding:"4px 10px",fontSize:11,color:Re.text}),Kj=it.span({fontWeight:500,fontSize:11}),afe=it.span({color:Re.dash}),Xj=it.div(e=>({position:"relative",backgroundColor:e.isErr?Re.errBg:Re.paddingBg,border:`1px solid ${e.isErr?Re.err:Re.paddingStroke}`,margin:"0 8px 8px",padding:"18px 28px"})),Qj=it.span({position:"absolute",top:3,left:8,fontSize:10,fontWeight:500,color:Re.text,fontStyle:"italic"}),nu=it.span(e=>({position:"absolute",fontSize:11,fontFamily:"monospace",color:e.isErr?Re.err:Re.text,fontWeight:e.isErr?700:400,...e.side==="top"&&{top:3,left:"50%",transform:"translateX(-50%)"},...e.side==="bottom"&&{bottom:3,left:"50%",transform:"translateX(-50%)"},...e.side==="left"&&{left:8,top:"50%",transform:"translateY(-50%)"},...e.side==="right"&&{right:8,top:"50%",transform:"translateY(-50%)"}})),Jj=it.div(e=>({backgroundColor:e.isErr?Re.errBg:"#fff",border:`1.5px dashed ${e.isErr?Re.err:Re.contentStroke}`,display:"flex",alignItems:"center",justifyContent:"center",padding:"10px 20px",fontSize:11,fontFamily:"monospace",color:e.isErr?Re.err:Re.text,fontWeight:e.isErr?600:400})),Zj=it.span({position:"absolute",bottom:4,right:8,fontSize:9,color:Re.dim,fontFamily:"monospace"}),e8=it.div({display:"flex",alignItems:"center",gap:4,fontSize:10,fontWeight:600,color:Re.ok,padding:"4px 8px 6px"}),lfe=it.div({fontSize:11,fontWeight:600,color:Re.text,padding:"4px 12px 2px",display:"flex",alignItems:"center",gap:6}),cfe=it.span({fontSize:12,color:Re.dim}),t8=it.img({maxWidth:"100%",maxHeight:40,objectFit:"contain",borderRadius:2}),n8=it.div({fontSize:9,color:Re.dim,marginTop:2}),r8=({property:e,currentValue:t,expectedValue:n,figmaContext:r,elementName:o})=>{let i=e.toLowerCase(),s=i.includes("padding"),a=i.includes("border")||i.includes("stroke")||i.includes("box-shadow"),u=i.includes("width")||i.includes("height")||i==="dimensions",c=i.includes("radius"),{figmaImageUrl:l}=ce(),d=r||{},p=!(!!r&&Object.keys(r).length>0)&&s?p8(n):null,m=d.padding||p||{top:0,right:0,bottom:0,left:0},b=d.strokeWeight??(a?cs(n)??0:0),F=d.width??(u?d8(n)??"\u2014":"\u2014"),E=d.height??(u?g8(n)??"\u2014":"\u2014");return Ae.createElement(Ae.Fragment,null,Ae.createElement(Gj,null,Ae.createElement(qj,{isErr:a},Ae.createElement(Yj,null,Ae.createElement(Kj,null,"Border"),Ae.createElement("span",{style:{fontSize:11,fontFamily:"monospace",color:a?Re.err:Re.dim}},b)),Ae.createElement(Xj,{isErr:s},Ae.createElement(Qj,null,"Padding"),Ae.createElement(nu,{side:"top",isErr:s},m.top),Ae.createElement(nu,{side:"right",isErr:s},m.right),Ae.createElement(nu,{side:"bottom",isErr:s},m.bottom),Ae.createElement(nu,{side:"left",isErr:s},m.left),Ae.createElement(Jj,{isErr:u,style:{flexDirection:"column",gap:4}},l&&Ae.createElement(t8,{src:l,alt:"Figma element"}),Ae.createElement(n8,null,F," \xD7 ",E)))),Ae.createElement(Zj,null,"border-box")),Ae.createElement(e8,null,"\u2192 ",n))},LI=it.div({backgroundColor:Re.outerBg,padding:"24px 16px 16px",display:"flex",flexDirection:"column",alignItems:"center",gap:8}),o8=it.div({position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"12px 20px"}),Px=it.span(e=>({fontSize:e.fSize||"42px",fontWeight:e.fWeight||"600",color:Re.text,lineHeight:1,fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", sans-serif',position:"relative",zIndex:1})),i8=it.div({position:"absolute",border:`1.5px dashed ${Re.err}`,pointerEvents:"none",zIndex:0}),s8=it.div({position:"absolute",border:`1.5px dashed ${Re.blue}`,pointerEvents:"none",zIndex:0}),MI=it.div(e=>({position:"absolute",backgroundColor:e.color,color:"#fff",fontSize:10,fontWeight:600,fontFamily:"monospace",padding:"2px 6px",borderRadius:3,zIndex:2,whiteSpace:"nowrap",...e.side==="left"&&{left:-4,top:"50%",transform:"translate(-100%, -50%)"},...e.side==="right"&&{right:-4,top:"50%",transform:"translate(100%, -50%)"}})),ufe=it.div({fontSize:12,color:Re.text,fontWeight:500,fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", sans-serif'}),a8=it.div({display:"flex",alignItems:"center",gap:6,fontSize:10,fontFamily:"monospace"}),BI=it.span(e=>({padding:"1px 6px",borderRadius:3,fontWeight:600,fontSize:10,color:"#fff",backgroundColor:e.variant==="err"?Re.err:Re.ok})),l8=it.div({display:"flex",alignItems:"flex-end",justifyContent:"center",gap:16,padding:"4px 0"}),DI=it.div({display:"flex",flexDirection:"column",alignItems:"center",gap:4}),RI=it.div(e=>({fontSize:9,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.3px",color:e.variant==="err"?Re.err:Re.ok})),zI=it.div(e=>({fontSize:10,fontFamily:"monospace",fontWeight:600,color:e.variant==="err"?Re.err:Re.ok,textDecoration:e.variant==="err"?"line-through":"none"})),c8=it.span({fontSize:16,color:Re.dim,paddingBottom:20}),NI=it.div(e=>({fontSize:9,color:e.color,fontFamily:"monospace",textAlign:"center",marginTop:2}));function OI(e){return e>=800?"ExtraBold":e>=700?"Bold":e>=600?"Semibold":e>=500?"Medium":e>=400?"Regular":e>=300?"Light":"Thin"}var u8=({property:e,currentValue:t,expectedValue:n,figmaContext:r})=>{let o=r||{},i=e.toLowerCase(),s=i.includes("size"),a=i.includes("weight"),u=i.includes("lineheight")||i.includes("line-height"),c=i.includes("text")||i.includes("content"),l=i.includes("family"),d=s||u,g=o.fontSize??(s?cs(n):14),p=o.fontWeight??(a?cs(n):600),b=(o.lineHeight??(u?cs(n):null))||Math.round((g||14)*1.43),F=`${Math.min(Math.max(g||14,24),48)}px`;if(d)return Ae.createElement(Ae.Fragment,null,Ae.createElement(LI,null,Ae.createElement(o8,null,Ae.createElement(s8,{style:{top:-6,left:0,right:0,bottom:-6}}),Ae.createElement(i8,{style:{top:2,left:8,right:8,bottom:2}}),Ae.createElement(MI,{color:s?Re.err:"#7b3030",side:"left"},s?t:`${g}px`),Ae.createElement(MI,{color:u?Re.err:"#7b3030",side:"right"},u?t:`${b}px`),Ae.createElement(Px,{fSize:F,fWeight:String(p||600)},"Ag")),Ae.createElement("div",{style:{display:"flex",gap:16,justifyContent:"center"}},Ae.createElement(NI,{color:Re.err},"\u2508\u2508 font-size",s?" \u2717":""),Ae.createElement(NI,{color:Re.blue},"\u2508\u2508 line-height",u?" \u2717":"")),Ae.createElement(a8,null,Ae.createElement(BI,{variant:"err"},t),Ae.createElement("span",{style:{color:Re.dim}},"\u2192"),Ae.createElement(BI,{variant:"ok"},n))));let E=a?t:String(p||600),v=a?n:E,D=cs(t),O=cs(n);return Ae.createElement(Ae.Fragment,null,Ae.createElement(LI,null,Ae.createElement(l8,null,Ae.createElement(DI,null,Ae.createElement(RI,{variant:"err"},"Current"),Ae.createElement(Px,{fSize:F,fWeight:a?E:String(p||600),style:{color:Re.err}},c?t:"Ag"),Ae.createElement(zI,{variant:"err"},a&&D?`${t} (${OI(D)})`:t)),Ae.createElement(c8,null,"\u2192"),Ae.createElement(DI,null,Ae.createElement(RI,{variant:"ok"},"Figma"),Ae.createElement(Px,{fSize:F,fWeight:a?v:String(p||600),style:{color:Re.ok}},c?n:"Ag"),Ae.createElement(zI,{variant:"ok"},a&&O?`${n} (${OI(O)})`:n)))))};function p8(e){let t=e.match(/(\d+(?:\.\d+)?)\s*px/g);if(!t)return null;let n=t.map(r=>parseFloat(r));return n.length===1?{top:n[0],right:n[0],bottom:n[0],left:n[0]}:n.length===2?{top:n[0],right:n[1],bottom:n[0],left:n[1]}:n.length===3?{top:n[0],right:n[1],bottom:n[2],left:n[1]}:n.length>=4?{top:n[0],right:n[1],bottom:n[2],left:n[3]}:null}function cs(e){let t=e.match(/(\d+(?:\.\d+)?)\s*(?:px)?/);return t?parseFloat(t[1]):null}function d8(e){let t=e.match(/(\d+(?:\.\d+)?)\s*[×x]\s*(\d+(?:\.\d+)?)/);return t?parseFloat(t[1]):null}function g8(e){let t=e.match(/(\d+(?:\.\d+)?)\s*[×x]\s*(\d+(?:\.\d+)?)/);return t?parseFloat(t[2]):null}var _I=new Set(["fontSize","font-size","fontWeight","font-weight","lineHeight","line-height","letterSpacing","letter-spacing","fontFamily","font-family","textContent","text-content"]);function f8(e){if(_I.has(e))return!0;let t=e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return _I.has(t)}var $I=e=>{let t=!!e.figmaContext&&Object.keys(e.figmaContext).length>0,n=f8(e.property);return Ae.createElement(Wj,null,Ae.createElement(Vj,null,"\u25BE Layer properties",t?"":" (from review)"),n?Ae.createElement(u8,{...e}):Ae.createElement(r8,{...e}))};import Yr from"react";import{styled as Kr}from"storybook/theming";var m8={color:{text:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)",border:"rgba(59, 130, 246, 0.25)"},border:{text:"#10b981",bg:"rgba(16, 185, 129, 0.1)",border:"rgba(16, 185, 129, 0.25)"},spacing:{text:"#f97316",bg:"rgba(249, 115, 22, 0.1)",border:"rgba(249, 115, 22, 0.25)"},layout:{text:"#14b8a6",bg:"rgba(20, 184, 166, 0.1)",border:"rgba(20, 184, 166, 0.25)"},sizing:{text:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)",border:"rgba(139, 92, 246, 0.25)"},typography:{text:"#ec4899",bg:"rgba(236, 72, 153, 0.1)",border:"rgba(236, 72, 153, 0.25)"}},h8=Kr.div({display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"12px"}),x8=Kr.div(({theme:e,category:t})=>{let n=m8[t||""]||{text:e.textMutedColor,bg:"rgba(148, 163, 184, 0.1)",border:"rgba(148, 163, 184, 0.2)"};return{fontSize:"11px",fontWeight:500,color:n.text,backgroundColor:n.bg,padding:"2px 8px",borderRadius:"4px",border:`1px solid ${n.border}`}}),y8=Kr.div(({status:e})=>{let n=(()=>{switch(e){case"pending":return{bg:"rgba(148, 163, 184, 0.15)",text:"#64748b",dot:"#94a3b8"};case"applied":return{bg:"rgba(245, 158, 11, 0.1)",text:"#d97706",dot:"#f59e0b"};case"verified":return{bg:"rgba(16, 185, 129, 0.1)",text:"#059669",dot:"#10b981"};case"failed":return{bg:"rgba(239, 68, 68, 0.1)",text:"#dc2626",dot:"#ef4444"};default:return{bg:"rgba(148, 163, 184, 0.15)",text:"#64748b",dot:"#94a3b8"}}})();return{fontSize:"11px",fontWeight:500,color:n.text,backgroundColor:n.bg,padding:"2px 8px",borderRadius:"4px",display:"flex",alignItems:"center",gap:"5px","&::before":{content:'""',display:"inline-block",width:"6px",height:"6px",borderRadius:"50%",backgroundColor:n.dot}}}),b8=Kr.div({fontSize:"11px",fontWeight:500,color:"#059669",backgroundColor:"rgba(16, 185, 129, 0.1)",padding:"2px 8px",borderRadius:"4px",border:"1px solid rgba(16, 185, 129, 0.2)",display:"flex",alignItems:"center",gap:"5px","&::before":{content:'""',display:"inline-block",width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#10b981"}}),S8=Kr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",marginLeft:"12px",paddingLeft:"12px",borderLeft:`1px solid ${e.appBorderColor}`})),w8=Kr.div({fontSize:"10px",fontWeight:600,color:"#0891b2",backgroundColor:"#ecfeff",padding:"2px 8px",borderRadius:"10px",border:"1px solid #0891b2",display:"flex",alignItems:"center",gap:"3px","&::before":{content:'"\u{1F9E0}"',fontSize:"9px"}}),v8=Kr.div({fontSize:"10px",fontWeight:600,color:"#7c3aed",backgroundColor:"#ede9fe",padding:"2px 8px",borderRadius:"10px",border:"1px solid #7c3aed",display:"flex",alignItems:"center",gap:"3px","&::before":{content:'"\u{1F50D}"',fontSize:"9px"}}),k8=Kr.div({fontSize:"10px",fontWeight:600,color:"#d97706",backgroundColor:"#fef3c7",padding:"2px 8px",borderRadius:"10px",border:"1px solid #d97706",display:"flex",alignItems:"center",gap:"3px","&::before":{content:'"\u26A0\uFE0F"',fontSize:"9px"}}),C8=Kr.div(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"10px",fontWeight:600,color:e.color.negative,backgroundColor:e.background.negative,padding:"2px 8px",borderRadius:"10px",border:`1px solid ${e.color.negative}`})),T8=Kr.span(({theme:e})=>({fontSize:"11px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',color:e.textMutedColor,marginLeft:"auto"})),I8=e=>{if(!e)return{};let t={};if(e.includes("+")){let n=e.split("+");for(let r of n)r.startsWith("programmatic-")?t.programmatic=r.replace("programmatic-","").replace("-detection",""):r==="ai"||r==="ai-review"?t.ai="AI Review":r==="ai-validation"&&(t.ai="AI Validation");return t}return e.startsWith("programmatic-")?t.programmatic=e.replace("programmatic-","").replace("-detection",""):e==="ai-review"?t.ai="AI Review":e==="ai-validation"&&(t.ai="AI Validation"),t},UI=({issue:e,modelDisplayName:t,showModel:n=!1,showDetection:r=!1,dominantDetector:o,showFilePath:i=!0,enableFilePath:s=!1,unreliable:a=!1,validationErrorMessage:u})=>{let c=I8(e.detectedBy),l=o&&c.ai===o,d=r&&!l&&(c.ai||c.programmatic),g=e.generatedFix?.filePath||e.file;return Yr.createElement(h8,null,Yr.createElement(x8,{category:e.type},e.type),e.status!=="pending"&&Yr.createElement(y8,{status:e.status},e.status),n&&t&&Yr.createElement(b8,null,t),d&&Yr.createElement(S8,null,c.ai&&!l&&Yr.createElement(w8,null,c.ai),c.programmatic&&Yr.createElement(v8,null,"Pre-filter: ",c.programmatic)),a&&Yr.createElement(k8,{title:u},"Unreliable"),e.dismissed&&Yr.createElement(C8,null,"Dismissed"),i&&s&&g&&Yr.createElement(T8,null,g))};import Kn from"react";import{styled as Go}from"storybook/theming";var F8=e=>{if(!e)return null;let n=(typeof e=="string"?e:typeof e=="object"?JSON.stringify(e):String(e)).match(/#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\b/);return n?n[0]:null},E8=e=>e?typeof e=="string"?e:typeof e=="object"?JSON.stringify(e):String(e):"",A8=Go.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',marginTop:"8px",padding:"8px 10px",backgroundColor:e.background.app,borderRadius:"4px"})),Lx=Go.div({display:"flex",gap:"8px",alignItems:"baseline"}),Mx=Go.span(({theme:e})=>({color:e.textMutedColor,fontWeight:500,width:"60px",flexShrink:0,fontSize:"11px"})),Bx=Go.span(({theme:e})=>({color:e.color.defaultText,fontFamily:"inherit",fontSize:"11px",fontWeight:500})),P8=Go(Bx)(({theme:e})=>({color:e.color.negative,textDecoration:"line-through",opacity:.7})),L8=Go(Bx)(({theme:e})=>({color:e.color.positive,fontWeight:600})),M8=Go.span(({color:e})=>({display:"inline-block",width:"14px",height:"14px",borderRadius:"3px",backgroundImage:`
92
+ `}),n}function dI(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function ou(e,t){let n=gI(e,t),r=n.one(e,void 0),o=uI(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return o&&("children"in i,i.children.push({type:"text",value:`
93
+ `},o)),i}function iu(e,t){return e&&"run"in e?async function(n,r){let o=ou(n,{file:r,...t});await e.run(o,r)}:function(n,r){return ou(n,{file:r,...e||t})}}function Cx(e){if(e)throw e}var lu=Ka(vI(),1);function Pa(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Tx(){let e=[],t={run:n,use:r};return t;function n(...o){let i=-1,s=o.pop();if(typeof s!="function")throw new TypeError("Expected function as last argument, not "+s);a(null,...o);function a(u,...c){let l=e[++i],d=-1;if(u){s(u);return}for(;++d<o.length;)(c[d]===null||c[d]===void 0)&&(c[d]=o[d]);o=c,l?kI(l,a)(...c):s(null,...c)}}function r(o){if(typeof o!="function")throw new TypeError("Expected `middelware` to be a function, not "+o);return e.push(o),t}}function kI(e,t){let n;return r;function r(...s){let a=e.length>s.length,u;a&&s.push(o);try{u=e.apply(this,s)}catch(c){let l=c;if(a&&n)throw l;return o(l)}a||(u&&u.then&&typeof u.then=="function"?u.then(i,o):u instanceof Error?o(u):i(u))}function o(s,...a){n||(n=!0,t(s,...a))}function i(s){o(null,s)}}var Dr={basename:GU,dirname:qU,extname:YU,join:KU,sep:"/"};function GU(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');La(e);let n=0,r=-1,o=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else r<0&&(i=!0,r=o+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let s=-1,a=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else s<0&&(i=!0,s=o+1),a>-1&&(e.codePointAt(o)===t.codePointAt(a--)?a<0&&(r=o):(a=-1,r=s));return n===r?r=s:r<0&&(r=e.length),e.slice(n,r)}function qU(e){if(La(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function YU(e){La(e);let t=e.length,n=-1,r=0,o=-1,i=0,s;for(;t--;){let a=e.codePointAt(t);if(a===47){if(s){r=t+1;break}continue}n<0&&(s=!0,n=t+1),a===46?o<0?o=t:i!==1&&(i=1):o>-1&&(i=-1)}return o<0||n<0||i===0||i===1&&o===n-1&&o===r+1?"":e.slice(o,n)}function KU(...e){let t=-1,n;for(;++t<e.length;)La(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":XU(n)}function XU(e){La(e);let t=e.codePointAt(0)===47,n=QU(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function QU(e,t){let n="",r=0,o=-1,i=0,s=-1,a,u;for(;++s<=e.length;){if(s<e.length)a=e.codePointAt(s);else{if(a===47)break;a=47}if(a===47){if(!(o===s-1||i===1))if(o!==s-1&&i===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(u=n.lastIndexOf("/"),u!==n.length-1){u<0?(n="",r=0):(n=n.slice(0,u),r=n.length-1-n.lastIndexOf("/")),o=s,i=0;continue}}else if(n.length>0){n="",r=0,o=s,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(o+1,s):n=e.slice(o+1,s),r=s-o-1;o=s,i=0}else a===46&&i>-1?i++:i=-1}return n}function La(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var CI={cwd:JU};function JU(){return"/"}function ls(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function TI(e){if(typeof e=="string")e=new URL(e);else if(!ls(e)){let t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){let t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return ZU(e)}function ZU(e){if(e.hostname!==""){let r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}let t=e.pathname,n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){let r=t.codePointAt(n+2);if(r===70||r===102){let o=new TypeError("File URL path must not include encoded / characters");throw o.code="ERR_INVALID_FILE_URL_PATH",o}}return decodeURIComponent(t)}var Ix=["history","path","basename","stem","extname","dirname"],mi=class{constructor(t){let n;t?ls(t)?n={path:t}:typeof t=="string"||ej(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":CI.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<Ix.length;){let i=Ix[r];i in n&&n[i]!==void 0&&n[i]!==null&&(this[i]=i==="history"?[...n[i]]:n[i])}let o;for(o in n)Ix.includes(o)||(this[o]=n[o])}get basename(){return typeof this.path=="string"?Dr.basename(this.path):void 0}set basename(t){Ex(t,"basename"),Fx(t,"basename"),this.path=Dr.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?Dr.dirname(this.path):void 0}set dirname(t){II(this.basename,"dirname"),this.path=Dr.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?Dr.extname(this.path):void 0}set extname(t){if(Fx(t,"extname"),II(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Dr.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){ls(t)&&(t=TI(t)),Ex(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?Dr.basename(this.path,this.extname):void 0}set stem(t){Ex(t,"stem"),Fx(t,"stem"),this.path=Dr.join(this.dirname||"",t+(this.extname||""))}fail(t,n,r){let o=this.message(t,n,r);throw o.fatal=!0,o}info(t,n,r){let o=this.message(t,n,r);return o.fatal=void 0,o}message(t,n,r){let o=new Gt(t,n,r);return this.path&&(o.name=this.path+":"+o.name,o.file=this.path),o.fatal=!1,this.messages.push(o),o}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}};function Fx(e,t){if(e&&e.includes(Dr.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Dr.sep+"`")}function Ex(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function II(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function ej(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}var FI=(function(e){let r=this.constructor.prototype,o=r[e],i=function(){return o.apply(i,arguments)};return Object.setPrototypeOf(i,r),i});var tj={}.hasOwnProperty,Mx=class e extends FI{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=Tx()}copy(){let t=new e,n=-1;for(;++n<this.attachers.length;){let r=this.attachers[n];t.use(...r)}return t.data((0,lu.default)(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(Lx("data",this.frozen),this.namespace[t]=n,this):tj.call(this.namespace,t)&&this.namespace[t]||void 0:t?(Lx("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;let t=this;for(;++this.freezeIndex<this.attachers.length;){let[n,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);let o=n.call(t,...r);typeof o=="function"&&this.transformers.use(o)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();let n=au(t),r=this.parser||this.Parser;return Ax("parse",r),r(String(n),n)}process(t,n){let r=this;return this.freeze(),Ax("process",this.parser||this.Parser),Px("process",this.compiler||this.Compiler),n?o(void 0,n):new Promise(o);function o(i,s){let a=au(t),u=r.parse(a);r.run(u,a,function(l,d,g){if(l||!d||!g)return c(l);let p=d,m=r.stringify(p,g);rj(m)?g.value=m:g.result=m,c(l,g)});function c(l,d){l||!d?s(l):i?i(d):n(void 0,d)}}}processSync(t){let n=!1,r;return this.freeze(),Ax("processSync",this.parser||this.Parser),Px("processSync",this.compiler||this.Compiler),this.process(t,o),AI("processSync","process",n),r;function o(i,s){n=!0,Cx(i),r=s}}run(t,n,r){EI(t),this.freeze();let o=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?i(void 0,r):new Promise(i);function i(s,a){let u=au(n);o.run(t,u,c);function c(l,d,g){let p=d||t;l?a(l):s?s(p):r(void 0,p,g)}}}runSync(t,n){let r=!1,o;return this.run(t,n,i),AI("runSync","run",r),o;function i(s,a){Cx(s),o=a,r=!0}}stringify(t,n){this.freeze();let r=au(n),o=this.compiler||this.Compiler;return Px("stringify",o),EI(t),o(t,r)}use(t,...n){let r=this.attachers,o=this.namespace;if(Lx("use",this.frozen),t!=null)if(typeof t=="function")u(t,n);else if(typeof t=="object")Array.isArray(t)?a(t):s(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function i(c){if(typeof c=="function")u(c,[]);else if(typeof c=="object")if(Array.isArray(c)){let[l,...d]=c;u(l,d)}else s(c);else throw new TypeError("Expected usable value, not `"+c+"`")}function s(c){if(!("plugins"in c)&&!("settings"in c))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");a(c.plugins),c.settings&&(o.settings=(0,lu.default)(!0,o.settings,c.settings))}function a(c){let l=-1;if(c!=null)if(Array.isArray(c))for(;++l<c.length;){let d=c[l];i(d)}else throw new TypeError("Expected a list of plugins, not `"+c+"`")}function u(c,l){let d=-1,g=-1;for(;++d<r.length;)if(r[d][0]===c){g=d;break}if(g===-1)r.push([c,...l]);else if(l.length>0){let[p,...m]=l,b=r[g][1];Pa(b)&&Pa(p)&&(p=(0,lu.default)(!0,b,p)),r[g]=[c,p,...m]}}}},Bx=new Mx().freeze();function Ax(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Px(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Lx(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function EI(e){if(!Pa(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function AI(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function au(e){return nj(e)?e:new mi(e)}function nj(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function rj(e){return typeof e=="string"||oj(e)}function oj(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}var lj="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",PI=[],LI={allowDangerousHtml:!0},cj=/^(https?|ircs?|mailto|xmpp)$/i,uj=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Dx(e){let t=pj(e),n=dj(e);return gj(t.runSync(t.parse(n),n),e)}function pj(e){let t=e.rehypePlugins||PI,n=e.remarkPlugins||PI,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...LI}:LI;return Bx().use(Xc).use(n).use(iu,r).use(t)}function dj(e){let t=e.children||"",n=new mi;return typeof t=="string"?n.value=t:(""+t,void 0),n}function gj(e,t){let n=t.allowedElements,r=t.allowElement,o=t.components,i=t.disallowedElements,s=t.skipHtml,a=t.unwrapDisallowed,u=t.urlTransform||MI;for(let l of uj)Object.hasOwn(t,l.from)&&(""+l.from+(l.to?"use `"+l.to+"` instead":"remove it")+lj+l.id,void 0);return n&&i&&void 0,Aa(e,c),Kh(e,{Fragment:ij,components:o,ignoreInvalidStyle:!0,jsx:sj,jsxs:aj,passKeys:!0,passNode:!0});function c(l,d,g){if(l.type==="raw"&&g&&typeof d=="number")return s?g.children.splice(d,1):g.children[d]={type:"text",value:l.value},d;if(l.type==="element"){let p;for(p in wa)if(Object.hasOwn(wa,p)&&Object.hasOwn(l.properties,p)){let m=l.properties[p],b=wa[p];(b===null||b.includes(l.tagName))&&(l.properties[p]=u(String(m||""),p,l))}}if(l.type==="element"){let p=n?!n.includes(l.tagName):i?i.includes(l.tagName):!1;if(!p&&r&&typeof d=="number"&&(p=!r(l,d,g)),p&&g&&typeof d=="number")return a&&l.children?g.children.splice(d,1,...l.children):g.children.splice(d,1),d}}}function MI(e){let t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),o=e.indexOf("/");return t===-1||o!==-1&&t>o||n!==-1&&t>n||r!==-1&&t>r||cj.test(e.slice(0,t))?e:""}ve();var mj=cs.div({display:"flex",flexDirection:"column",gap:"12px"}),hj=cs.div({display:"flex",justifyContent:"space-between",alignItems:"center"}),xj=cs.div(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),yj=cs(En)({padding:"6px 12px",fontSize:"12px"}),bj=cs.div(({theme:e})=>({backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",padding:"12px",fontSize:"12px",color:e.color.defaultText,overflowY:"auto",maxHeight:"400px",lineHeight:"1.6","& h1, & h2, & h3, & h4":{marginTop:"16px",marginBottom:"8px",fontWeight:600,color:e.color.defaultText},"& h1":{fontSize:"18px"},"& h2":{fontSize:"16px"},"& h3":{fontSize:"14px"},"& h4":{fontSize:"13px"},"& p":{margin:"8px 0"},"& ul, & ol":{paddingLeft:"20px",margin:"8px 0"},"& li":{margin:"4px 0"},"& code":{backgroundColor:e.background.app,padding:"2px 4px",borderRadius:"3px",fontFamily:P1.fontMono,fontSize:"11px"},"& pre":{backgroundColor:e.background.app,padding:"8px",borderRadius:"4px",overflowX:"auto","& code":{backgroundColor:"transparent",padding:0}},"& strong":{fontWeight:600},"& blockquote":{borderLeft:`3px solid ${e.color.secondary}`,paddingLeft:"12px",margin:"8px 0",color:e.color.mediumdark}})),Sj=cs.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),Rx=()=>{let{fullPrompt:e,userRole:t,roleOverride:n}=ue(),[r,o]=fj(!1);if((n??t)!=="admin")return null;let s=async()=>{try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),2e3)}catch(a){console.error("Failed to copy:",a)}};return e?hi.createElement(mj,null,hi.createElement(hj,null,hi.createElement(xj,null,"Full Prompt"),hi.createElement(yj,{onClick:s,disabled:r},r?"\u2713 Copied!":"\u{1F4CB} Copy")),hi.createElement(bj,null,hi.createElement(Dx,null,e))):hi.createElement(Sj,null,"No prompt available. Generate a prompt or run a review to see the full prompt here.")};import ho,{useRef as wj}from"react";import{styled as Rr}from"storybook/theming";ve();var vj=Rr.div({display:"flex",flexDirection:"column",gap:"8px"}),Qge=Rr.div(({theme:e,variant:t,value:n})=>{let o=t==="issues"?n===0?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n<=3?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n<=6?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"}:n>=80?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n>=60?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n>=40?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"};return{fontSize:"11px",fontWeight:700,color:o.text,backgroundColor:o.bg,padding:"3px 10px",borderRadius:"12px",border:`1px solid ${o.border}`,whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px"}}),kj=Rr.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"6px",maxHeight:"200px",overflowY:"auto",scrollBehavior:"smooth",padding:"6px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.background.app})),Cj=Rr.div(({role:e,theme:t})=>({padding:"8px 10px",borderRadius:"4px",fontSize:"11px",lineHeight:"1.4",backgroundColor:e==="system"?t.background.hoverable:t.background.content,border:`1px solid ${t.appBorderColor}`,color:t.color.defaultText})),Jge=Rr.div(({theme:e})=>({fontSize:"11px",fontWeight:600,textTransform:"uppercase",color:e.color.mediumdark,marginBottom:"6px",letterSpacing:"0.5px"})),BI=Rr.div(({theme:e})=>({whiteSpace:"pre-wrap",wordWrap:"break-word",fontFamily:'Monaco, Menlo, "Ubuntu Mono", monospace',fontSize:"10px","& .section-header":{fontSize:"11px",fontWeight:700,color:e.color.secondary,marginTop:"8px",marginBottom:"4px",display:"block"},"& .issue-header":{fontWeight:600,marginTop:"6px",marginBottom:"2px",display:"block"},"& .severity-critical":{color:e.color.negative||"#dc2626",fontWeight:700},"& .severity-major":{color:e.color.warning||le,fontWeight:700},"& .severity-minor":{color:e.color.warning||"#ca8a04",fontWeight:700},"& .issue-type":{color:e.color.secondary,fontWeight:600},"& .source-tag":{color:e.base==="dark"?"#22d3ee":"#0891b2",backgroundColor:e.base==="dark"?"rgba(34, 211, 238, 0.2)":"#cffafe",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600},"& .field-label":{color:e.textMutedColor,fontWeight:600},"& .field-value":{color:e.color.defaultText},"& .score":{fontSize:"11px",fontWeight:700,color:e.color.positive||"#16a34a",display:"inline-block",padding:"1px 6px",backgroundColor:e.background.positive||"#dcfce7",borderRadius:"3px"},"& .score-low":{color:e.color.negative||"#dc2626",backgroundColor:e.background.negative||"#fee2e2"},"& .score-medium":{color:e.color.warning||le,backgroundColor:e.background.warning||"#ffedd5"}})),Tj=Rr.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),Ij=Rr.div(({theme:e})=>({padding:"12px 16px",borderRadius:"8px",backgroundColor:e.background.positive||"#dcfce7",border:`1px solid ${e.color.positive||"#86efac"}`,color:e.color.positive||"#166534",fontSize:"13px",fontWeight:500,lineHeight:1.5,marginBottom:"12px"})),Fj=Rr.div({fontWeight:700,fontSize:"14px",marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"}),Ej=Rr.div(({theme:e})=>({fontSize:"12px",opacity:.9,color:e.color.positive||"#166534"})),Zge=Rr.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"8px",textAlign:"right"}));function Aj(e){let t=e;return t=t.replace(/^(?:\*?\*?)?(?:##?)?\s*SCORE:\s*\d+.*$/gm,""),t=t.replace(/^(ISSUES:|SUMMARY:)/gm,'<span class="section-header">$1</span>'),t=t.replace(/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g,(n,r,o,i,s)=>{let a=o.toLowerCase().includes("critical")?"severity-critical":o.toLowerCase().includes("major")?"severity-major":"severity-minor";return`<span class="issue-header"><span class="issue-type">[${r}]</span> <span class="${a}">[${o}]</span> <span class="source-tag">[${i}]</span> - ${s}</span>`}),t=t.replace(/^(Expected:|Actual:|Property:|Source:|Fix:|Visual Difference:)\s*(.+)/gm,'<span class="field-label">$1</span> <span class="field-value">$2</span>'),t}var zx=()=>{let{streamingMessages:e,fullResponse:t,reviewHistory:n,currentReviewId:r,userRole:o,roleOverride:i}=ue(),s=wj(null);if((i??o)!=="admin")return null;let u=r?n.find(m=>m.id===r):null,c=u?u.issues.length>0&&u.issues.every(m=>m.dismissed):!1,l=u&&(u.complianceScore===100||c),d=e.filter(m=>m.role==="assistant"||m.role==="system"&&m.content.includes("auto-dismissed")),g=d.length===0&&!!t;if(d.length===0&&!g)return ho.createElement(Tj,null,"No AI response yet. The AI's analysis will appear here as it streams.");let p=d.length>0?d:[{role:"assistant",content:t}];return ho.createElement(vj,null,l&&ho.createElement(Ij,null,ho.createElement(Fj,null,"Component Matches Design"),ho.createElement(Ej,null,c&&u?.issues.length?`All ${u.issues.length} issue${u.issues.length===1?"":"s"} identified by the AI ${u.issues.length===1?"was":"were"} validated as false positive${u.issues.length===1?"":"s"} and auto-dismissed.`:"No design discrepancies found. The implementation matches the Figma design.")),ho.createElement(kj,{ref:s},p.map((m,b)=>ho.createElement(Cj,{key:b,role:m.role},m.role==="system"?ho.createElement(BI,null,m.content):ho.createElement(BI,{dangerouslySetInnerHTML:{__html:Aj(m.content)}})))))};import xr from"react";import{styled as Go}from"storybook/theming";ve();Ne();var Pj=Go.div({display:"flex",flexDirection:"column",gap:"12px"}),Lj=Go.div(({theme:e})=>({display:"flex",gap:"6px",borderBottom:`2px solid ${e.appBorderColor}`,overflowX:"auto",paddingBottom:"2px"})),Mj=Go.button(({theme:e,isActive:t,provider:n})=>{let o={anthropic:{background:"#D4A574",text:"#ffffff",hover:"#C49564"},openai:{background:e.color.positive||"#10b981",text:"#ffffff",hover:e.base==="dark"?"#34d399":"#059669"},google:{background:"#4285F4",text:"#ffffff",hover:"#3367D6"}}[n];return{display:"flex",alignItems:"center",gap:"6px",padding:"8px 16px",fontSize:"12px",fontWeight:600,color:t?o.text:e.textMutedColor,backgroundColor:t?o.background:"transparent",border:"none",borderRadius:"6px 6px 0 0",cursor:"pointer",whiteSpace:"nowrap",transition:"all 0.2s",opacity:t?1:.6,"&:hover":{opacity:1,backgroundColor:t?o.hover:e.background.hoverable}}}),DI=Go.div(({theme:e,variant:t,value:n})=>{let o=t==="issues"?n===0?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n<=3?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n<=6?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"}:n>=80?{bg:e.background.positive||"#dcfce7",text:e.color.positive||"#166534",border:e.color.positive||"#86efac"}:n>=60?{bg:e.background.warning||"#fef3c7",text:e.color.warning||"#92400e",border:e.color.warning||"#fde68a"}:n>=40?{bg:e.background.warning||"#fed7aa",text:e.color.warning||"#9a3412",border:e.color.warning||"#fdba74"}:{bg:e.background.negative||"#fecaca",text:e.color.negative||"#991b1b",border:e.color.negative||"#fca5a5"};return{fontSize:"10px",fontWeight:700,color:o.text,backgroundColor:o.bg,padding:"2px 8px",borderRadius:"10px",border:`1px solid ${o.border}`,whiteSpace:"nowrap"}}),Bj=Go.div(({theme:e})=>({padding:"12px",border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",backgroundColor:e.background.app,minHeight:"200px",maxHeight:"400px",overflowY:"auto",scrollBehavior:"smooth"})),RI=Go.div(({theme:e})=>({fontSize:"12px",lineHeight:"1.5",whiteSpace:"pre-wrap",wordWrap:"break-word",fontFamily:'Monaco, Menlo, "Ubuntu Mono", monospace',color:e.color.defaultText,"& .section-header":{fontSize:"13px",fontWeight:700,color:e.color.secondary,marginTop:"12px",marginBottom:"6px",display:"block"},"& .issue-header":{fontWeight:600,marginTop:"10px",marginBottom:"4px",display:"block"},"& .severity-critical":{color:e.color.negative||"#dc2626",fontWeight:700},"& .severity-major":{color:e.color.warning||le,fontWeight:700},"& .severity-minor":{color:e.color.warning||"#ca8a04",fontWeight:700},"& .issue-type":{color:e.color.secondary,fontWeight:600},"& .source-tag":{color:e.base==="dark"?"#22d3ee":"#0891b2",backgroundColor:e.base==="dark"?"rgba(34, 211, 238, 0.2)":"#cffafe",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600},"& .field-label":{color:e.textMutedColor,fontWeight:600},"& .field-value":{color:e.color.defaultText},"& .score":{fontSize:"14px",fontWeight:700,color:e.color.positive||"#16a34a",display:"inline-block",padding:"2px 8px",backgroundColor:e.background.positive||"#dcfce7",borderRadius:"4px"},"& .score-low":{color:e.color.negative||"#dc2626",backgroundColor:e.background.negative||"#fee2e2"},"& .score-medium":{color:e.color.warning||le,backgroundColor:e.background.warning||"#ffedd5"}})),zI=Go.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),Dj=Go.div({width:"12px",height:"12px",border:"2px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 0.8s linear infinite",display:"inline-block",marginLeft:"6px","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}});function NI(e){let t=e;return t=t.replace(/^(ISSUES:|SCORE:|SUMMARY:)/gm,'<span class="section-header">$1</span>'),t=t.replace(/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g,(n,r,o,i,s)=>{let a=o.toLowerCase().includes("critical")?"severity-critical":o.toLowerCase().includes("major")?"severity-major":"severity-minor";return`<span class="issue-header"><span class="issue-type">[${r}]</span> <span class="${a}">[${o}]</span> <span class="source-tag">[${i}]</span> - ${s}</span>`}),t=t.replace(/^(Expected:|Actual:|Property:|Source:|Fix:|Visual Difference:)\s*(.+)/gm,'<span class="field-label">$1</span> <span class="field-value">$2</span>'),t=t.replace(/SCORE:\s*(\d+)/g,(n,r)=>{let o=parseInt(r,10);return`SCORE: <span class="${o>=80?"score":o>=60?"score score-medium":"score score-low"}">${r}</span>`}),t}function Rj(e){let t=e.match(/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-/g),n=t?t.length:0,r=e.match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i),o=r?parseInt(r[1],10):null;return{issueCount:n,score:o}}var OI=()=>{let{multiModelResults:e,isReviewing:t,setActiveModelId:n,selectedModels:r,userRole:o,roleOverride:i}=ue();if((i??o)!=="admin")return null;xr.useEffect(()=>{e&&(y.debug("[ModelResultsTabs] multiModelResults:",e),Object.entries(e.byModel).forEach(([l,d])=>{y.debug(`[ModelResultsTabs] ${l}:`,{hasStreamingMessages:!!d.streamingMessages,streamingMessagesLength:d.streamingMessages?.length||0,streamingMessagesPreview:d.streamingMessages?.[0]?.content?.substring(0,100),hasFullResponse:!!d.fullResponse,fullResponsePreview:d.fullResponse?.substring(0,100)})}))},[e]);let a=e&&Object.keys(e.byModel).length>0?Object.keys(e.byModel):r,u=e?.activeModelId||(a.length>0?a[0]:""),c=e?.byModel||{};return a.length===0?xr.createElement(zI,null,"No models selected. Select multiple models to compare results."):xr.createElement(Pj,null,xr.createElement(Lj,null,a.map(l=>{let d=go.find(E=>E.id===l),g=c[l],m=Rj(t&&g?.streamingMessages&&g.streamingMessages.length>0?g.streamingMessages[0].content||"":g?.fullResponse?g.fullResponse:""),b=l===u;if(!d)return null;let I=t&&!g?.completed;return xr.createElement(Mj,{key:l,isActive:b,provider:d.provider,onClick:()=>n(l)},d.name,g&&m.issueCount>0&&xr.createElement(DI,{variant:"issues",value:m.issueCount},m.issueCount," issues"),g&&m.score!==null&&xr.createElement(DI,{variant:"score",value:m.score},"Score: ",m.score),I&&xr.createElement(Dj,null))})),xr.createElement(Bj,null,c[u]?.streamingMessages&&c[u].streamingMessages.length>0?c[u].streamingMessages.map((l,d)=>xr.createElement(RI,{key:d,dangerouslySetInnerHTML:{__html:NI(l.content)}})):c[u]?.fullResponse?xr.createElement(RI,{dangerouslySetInnerHTML:{__html:NI(c[u].fullResponse)}}):xr.createElement(zI,null,t?`Waiting for ${go.find(l=>l.id===u)?.name}...`:`No response yet for ${go.find(l=>l.id===u)?.name}`)))};import ze from"react";import{styled as Ft}from"storybook/theming";ve();hn();ve();import{useCallback as Nx}from"react";Ne();function _I(){let{dismissIssue:e,undismissIssue:t,reviewHistory:n}=ue(),{sessionToken:r}=Se(),o=Nx(a=>{for(let u of n){let c=u.issues.find(l=>l.id===a);if(c)return c.dbId||c.id||null}return null},[n]),i=Nx((a,u)=>{e(a,u,"user");let c=o(a);if(!c){y.debug("[useIssuePersistence] Dismiss skipped server sync \u2014 no dbId for",a);return}if(!r){y.debug("[useIssuePersistence] Dismiss skipped \u2014 no session token");return}lc(c,!0,u,"user",r).then(l=>{l.success||y.warn("[useIssuePersistence] Dismiss server sync failed:",l.error)})},[e,o,r]),s=Nx(a=>{t(a);let u=o(a);if(!u){y.debug("[useIssuePersistence] Undismiss skipped server sync \u2014 no dbId for",a);return}if(!r){y.debug("[useIssuePersistence] Undismiss skipped \u2014 no session token");return}lc(u,!1,void 0,"user",r).then(c=>{c.success||y.warn("[useIssuePersistence] Undismiss server sync failed:",c.error)})},[t,o,r]);return{dismissAndSync:i,undismissAndSync:s}}import q,{useMemo as rW,useState as oW,useEffect as iW}from"react";import{styled as it,keyframes as sW}from"storybook/theming";import ee,{useState as jx,useRef as q8,useCallback as nF,memo as Y8}from"react";import{styled as Ae}from"storybook/theming";import pt,{useState as $I}from"react";import{styled as In}from"storybook/theming";var zj=()=>pt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},pt.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),pt.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Nj=()=>pt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},pt.createElement("circle",{cx:"12",cy:"12",r:"10"}),pt.createElement("polyline",{points:"12 6 12 12 16 14"})),Oj=()=>pt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},pt.createElement("circle",{cx:"12",cy:"12",r:"10"}),pt.createElement("line",{x1:"4.93",y1:"4.93",x2:"19.07",y2:"19.07"})),_j=()=>pt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},pt.createElement("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"})),$j=()=>pt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},pt.createElement("path",{d:"M12 3l1.68 5.17L19 10l-5.32 1.83L12 17l-1.68-5.17L5 10l5.32-1.83z"}),pt.createElement("path",{d:"M5 3l.74 2.26L8 6l-2.26.74L5 9l-.74-2.26L2 6l2.26-.74z"}),pt.createElement("path",{d:"M19 15l.74 2.26L22 18l-2.26.74L19 21l-.74-2.26L16 18l2.26-.74z"})),UI=[{id:"false-positive",Icon:zj,label:"False positive",description:"The AI flagged something that isn't actually a design issue",color:"#9ca3af",bg:"rgba(156,163,175,0.15)"},{id:"planned",Icon:Nj,label:"Planned",description:"Valid issue \u2014 logged and scheduled to fix in a future sprint",color:"#60a5fa",bg:"rgba(96,165,250,0.15)"},{id:"wont-fix",Icon:Oj,label:"Won't fix",description:"Intentional deviation \u2014 design has approved this difference",color:"#fbbf24",bg:"rgba(251,191,36,0.15)"},{id:"no-figma-state",Icon:_j,label:"No Figma state",description:"No Figma frame exists for this specific story variant or state",color:"#a78bfa",bg:"rgba(167,139,250,0.15)"},{id:"design-pending",Icon:$j,label:"Design pending",description:"Code was built first \u2014 designer will add the Figma spec later",color:"#34d399",bg:"rgba(52,211,153,0.15)"}],Uj=In.div({position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999}),jj=In.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"10px",padding:"24px",maxWidth:"480px",width:"90%",boxShadow:"0 10px 40px rgba(0,0,0,0.25)",border:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",gap:"20px"})),Hj=In.div({display:"flex",flexDirection:"column",gap:"4px"}),Wj=In.h3(({theme:e})=>({fontSize:"17px",fontWeight:700,color:e.color.defaultText,margin:0})),Vj=In.p(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,margin:0,fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),Gj=In.div({display:"flex",flexDirection:"column",gap:"6px"}),qj=In.button(({theme:e,selected:t,accentColor:n})=>({display:"flex",alignItems:"flex-start",gap:"12px",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${t?n:e.appBorderColor}`,backgroundColor:t?`${n}10`:e.background.app,boxShadow:t?`0 0 0 1px ${n}`:"none",cursor:"pointer",textAlign:"left",width:"100%",transition:"all 0.15s","&:hover":{backgroundColor:e.background.hoverable}})),Yj=In.div(({color:e,bg:t})=>({width:"36px",height:"36px",borderRadius:"7px",backgroundColor:t,color:e,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0})),Kj=In.div({display:"flex",flexDirection:"column",gap:"2px",minWidth:0,flex:1}),Xj=In.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,lineHeight:"1.3"})),Qj=In.span(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,lineHeight:"1.4"})),Jj=In.div({display:"flex",flexDirection:"column",gap:"6px"}),Zj=In.label(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.defaultText})),e8=In.textarea(({theme:e})=>({width:"100%",minHeight:"72px",padding:"8px 10px",fontSize:"13px",borderRadius:"6px",border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,color:e.color.defaultText,fontFamily:"inherit",resize:"vertical",boxSizing:"border-box","&:focus":{outline:"none",borderColor:e.color.secondary},"&::placeholder":{color:e.textMutedColor}})),t8=In.div({display:"flex",justifyContent:"flex-end",gap:"8px"}),n8=In.button(({theme:e,disabled:t,accentColor:n})=>({padding:"8px 18px",fontSize:"13px",fontWeight:600,borderRadius:"6px",border:"none",cursor:t?"not-allowed":"pointer",backgroundColor:t?e.color.medium:n||e.color.secondary,color:"#ffffff",opacity:t?.5:1,transition:"opacity 0.15s","&:hover":{opacity:t?.5:.85}})),jI=({isOpen:e,issueTitle:t,onConfirm:n,onCancel:r})=>{let[o,i]=$I(null),[s,a]=$I("");if(!e)return null;let u=UI.find(d=>d.id===o),c=()=>{o&&(n(o,s.trim()||void 0),i(null),a(""))},l=()=>{i(null),a(""),r()};return pt.createElement(Uj,{onClick:d=>d.target===d.currentTarget&&l()},pt.createElement(jj,null,pt.createElement(Hj,null,pt.createElement(Wj,null,"Dismiss Issue"),pt.createElement(Vj,{title:t},t)),pt.createElement(Gj,{role:"radiogroup"},UI.map(({id:d,Icon:g,label:p,description:m,color:b,bg:I})=>pt.createElement(qj,{key:d,selected:o===d,accentColor:b,onClick:()=>i(d),role:"radio","aria-checked":o===d},pt.createElement(Yj,{color:b,bg:I},pt.createElement(g,null)),pt.createElement(Kj,null,pt.createElement(Xj,null,p),pt.createElement(Qj,null,m))))),pt.createElement(Jj,null,pt.createElement(Zj,{htmlFor:"dismiss-note"},"Note (optional)"),pt.createElement(e8,{id:"dismiss-note",placeholder:"Add context\u2026",value:s,onChange:d=>a(d.target.value),rows:3})),pt.createElement(t8,null,pt.createElement(Or,{onClick:l},"Cancel"),pt.createElement(n8,{disabled:!o,accentColor:u?.color,onClick:c},"Dismiss Issue"))))};ve();import Ee from"react";import{styled as ot}from"storybook/theming";var Re={outerBg:"#f0f0f0",borderBoxBg:"#fff",borderBoxStroke:"#999",paddingBg:"#dceefb",paddingStroke:"rgba(0,0,0,0.08)",contentStroke:"#888",text:"#333",dim:"#999",dash:"#aaa",blue:"#4a90d9",pink:"#e91e8c",err:"#d32f2f",errBg:"rgba(211,47,47,0.12)",ok:"#2e7d32"},r8=ot.div(({theme:e})=>({marginTop:6,borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content,overflow:"hidden",maxWidth:340})),o8=ot.div(({theme:e})=>({padding:"6px 10px",fontSize:11,fontWeight:500,color:e.color.defaultText,borderBottom:`1px solid ${e.appBorderColor}`})),i8=ot.div({position:"relative",backgroundColor:Re.outerBg,padding:"8px 12px 24px",fontFamily:"monospace",fontSize:11}),Sfe=ot.div({display:"flex",justifyContent:"space-between",alignItems:"center",color:Re.dash,padding:"0 8px",height:18,fontSize:11}),wfe=ot.div({position:"absolute",color:Re.dash,fontSize:11,top:"50%",transform:"translateY(-50%)"},e=>({...e.side==="left"&&{left:8},...e.side==="right"&&{right:8}})),vfe=ot.div(e=>({position:"absolute",backgroundColor:e.color,color:"#fff",fontSize:10,fontWeight:600,fontFamily:"monospace",padding:"1px 6px",borderRadius:3,zIndex:2,...e.side==="top"&&{top:4,left:"50%",transform:"translateX(-50%)"},...e.side==="bottom"&&{bottom:4,left:"50%",transform:"translateX(-50%)"},...e.side==="left"&&{left:4,top:"50%",transform:"translateY(-50%)"},...e.side==="right"&&{right:4,top:"50%",transform:"translateY(-50%)"}})),kfe=ot.div(e=>({position:"absolute",backgroundColor:e.color,zIndex:1,...e.orient==="v"&&{width:1,left:"50%"},...e.orient==="h"&&{height:1,top:"50%"},...e.side==="top"&&{top:18,height:10},...e.side==="bottom"&&{bottom:18,height:10},...e.side==="left"&&{left:30,width:20},...e.side==="right"&&{right:30,width:20}})),s8=ot.div(e=>({position:"relative",backgroundColor:e.isErr?Re.errBg:Re.borderBoxBg,border:`1px solid ${e.isErr?Re.err:Re.borderBoxStroke}`,borderRadius:6,padding:0})),a8=ot.div({display:"flex",justifyContent:"space-between",alignItems:"center",padding:"4px 10px",fontSize:11,color:Re.text}),l8=ot.span({fontWeight:500,fontSize:11}),Cfe=ot.span({color:Re.dash}),c8=ot.div(e=>({position:"relative",backgroundColor:e.isErr?Re.errBg:Re.paddingBg,border:`1px solid ${e.isErr?Re.err:Re.paddingStroke}`,margin:"0 8px 8px",padding:"18px 28px"})),u8=ot.span({position:"absolute",top:3,left:8,fontSize:10,fontWeight:500,color:Re.text,fontStyle:"italic"}),cu=ot.span(e=>({position:"absolute",fontSize:11,fontFamily:"monospace",color:e.isErr?Re.err:Re.text,fontWeight:e.isErr?700:400,...e.side==="top"&&{top:3,left:"50%",transform:"translateX(-50%)"},...e.side==="bottom"&&{bottom:3,left:"50%",transform:"translateX(-50%)"},...e.side==="left"&&{left:8,top:"50%",transform:"translateY(-50%)"},...e.side==="right"&&{right:8,top:"50%",transform:"translateY(-50%)"}})),p8=ot.div(e=>({backgroundColor:e.isErr?Re.errBg:"#fff",border:`1.5px dashed ${e.isErr?Re.err:Re.contentStroke}`,display:"flex",alignItems:"center",justifyContent:"center",padding:"10px 20px",fontSize:11,fontFamily:"monospace",color:e.isErr?Re.err:Re.text,fontWeight:e.isErr?600:400})),d8=ot.span({position:"absolute",bottom:4,right:8,fontSize:9,color:Re.dim,fontFamily:"monospace"}),g8=ot.div({display:"flex",alignItems:"center",gap:4,fontSize:10,fontWeight:600,color:Re.ok,padding:"4px 8px 6px"}),Tfe=ot.div({fontSize:11,fontWeight:600,color:Re.text,padding:"4px 12px 2px",display:"flex",alignItems:"center",gap:6}),Ife=ot.span({fontSize:12,color:Re.dim}),f8=ot.img({maxWidth:"100%",maxHeight:40,objectFit:"contain",borderRadius:2}),m8=ot.div({fontSize:9,color:Re.dim,marginTop:2}),h8=({property:e,currentValue:t,expectedValue:n,figmaContext:r,elementName:o})=>{let i=e.toLowerCase(),s=i.includes("padding"),a=i.includes("border")||i.includes("stroke")||i.includes("box-shadow"),u=i.includes("width")||i.includes("height")||i==="dimensions",c=i.includes("radius"),{figmaImageUrl:l}=ue(),d=r||{},p=!(!!r&&Object.keys(r).length>0)&&s?C8(n):null,m=d.padding||p||{top:0,right:0,bottom:0,left:0},b=d.strokeWeight??(a?us(n)??0:0),I=d.width??(u?T8(n)??"\u2014":"\u2014"),E=d.height??(u?I8(n)??"\u2014":"\u2014");return Ee.createElement(Ee.Fragment,null,Ee.createElement(i8,null,Ee.createElement(s8,{isErr:a},Ee.createElement(a8,null,Ee.createElement(l8,null,"Border"),Ee.createElement("span",{style:{fontSize:11,fontFamily:"monospace",color:a?Re.err:Re.dim}},b)),Ee.createElement(c8,{isErr:s},Ee.createElement(u8,null,"Padding"),Ee.createElement(cu,{side:"top",isErr:s},m.top),Ee.createElement(cu,{side:"right",isErr:s},m.right),Ee.createElement(cu,{side:"bottom",isErr:s},m.bottom),Ee.createElement(cu,{side:"left",isErr:s},m.left),Ee.createElement(p8,{isErr:u,style:{flexDirection:"column",gap:4}},l&&Ee.createElement(f8,{src:l,alt:"Figma element"}),Ee.createElement(m8,null,I," \xD7 ",E)))),Ee.createElement(d8,null,"border-box")),Ee.createElement(g8,null,"\u2192 ",n))},HI=ot.div({backgroundColor:Re.outerBg,padding:"24px 16px 16px",display:"flex",flexDirection:"column",alignItems:"center",gap:8}),x8=ot.div({position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"12px 20px"}),Ox=ot.span(e=>({fontSize:e.fSize||"42px",fontWeight:e.fWeight||"600",color:Re.text,lineHeight:1,fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", sans-serif',position:"relative",zIndex:1})),y8=ot.div({position:"absolute",border:`1.5px dashed ${Re.err}`,pointerEvents:"none",zIndex:0}),b8=ot.div({position:"absolute",border:`1.5px dashed ${Re.blue}`,pointerEvents:"none",zIndex:0}),WI=ot.div(e=>({position:"absolute",backgroundColor:e.color,color:"#fff",fontSize:10,fontWeight:600,fontFamily:"monospace",padding:"2px 6px",borderRadius:3,zIndex:2,whiteSpace:"nowrap",...e.side==="left"&&{left:-4,top:"50%",transform:"translate(-100%, -50%)"},...e.side==="right"&&{right:-4,top:"50%",transform:"translate(100%, -50%)"}})),Ffe=ot.div({fontSize:12,color:Re.text,fontWeight:500,fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", sans-serif'}),S8=ot.div({display:"flex",alignItems:"center",gap:6,fontSize:10,fontFamily:"monospace"}),VI=ot.span(e=>({padding:"1px 6px",borderRadius:3,fontWeight:600,fontSize:10,color:"#fff",backgroundColor:e.variant==="err"?Re.err:Re.ok})),w8=ot.div({display:"flex",alignItems:"flex-end",justifyContent:"center",gap:16,padding:"4px 0"}),GI=ot.div({display:"flex",flexDirection:"column",alignItems:"center",gap:4}),qI=ot.div(e=>({fontSize:9,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.3px",color:e.variant==="err"?Re.err:Re.ok})),YI=ot.div(e=>({fontSize:10,fontFamily:"monospace",fontWeight:600,color:e.variant==="err"?Re.err:Re.ok,textDecoration:e.variant==="err"?"line-through":"none"})),v8=ot.span({fontSize:16,color:Re.dim,paddingBottom:20}),KI=ot.div(e=>({fontSize:9,color:e.color,fontFamily:"monospace",textAlign:"center",marginTop:2}));function XI(e){return e>=800?"ExtraBold":e>=700?"Bold":e>=600?"Semibold":e>=500?"Medium":e>=400?"Regular":e>=300?"Light":"Thin"}var k8=({property:e,currentValue:t,expectedValue:n,figmaContext:r})=>{let o=r||{},i=e.toLowerCase(),s=i.includes("size"),a=i.includes("weight"),u=i.includes("lineheight")||i.includes("line-height"),c=i.includes("text")||i.includes("content"),l=i.includes("family"),d=s||u,g=o.fontSize??(s?us(n):14),p=o.fontWeight??(a?us(n):600),b=(o.lineHeight??(u?us(n):null))||Math.round((g||14)*1.43),I=`${Math.min(Math.max(g||14,24),48)}px`;if(d)return Ee.createElement(Ee.Fragment,null,Ee.createElement(HI,null,Ee.createElement(x8,null,Ee.createElement(b8,{style:{top:-6,left:0,right:0,bottom:-6}}),Ee.createElement(y8,{style:{top:2,left:8,right:8,bottom:2}}),Ee.createElement(WI,{color:s?Re.err:"#7b3030",side:"left"},s?t:`${g}px`),Ee.createElement(WI,{color:u?Re.err:"#7b3030",side:"right"},u?t:`${b}px`),Ee.createElement(Ox,{fSize:I,fWeight:String(p||600)},"Ag")),Ee.createElement("div",{style:{display:"flex",gap:16,justifyContent:"center"}},Ee.createElement(KI,{color:Re.err},"\u2508\u2508 font-size",s?" \u2717":""),Ee.createElement(KI,{color:Re.blue},"\u2508\u2508 line-height",u?" \u2717":"")),Ee.createElement(S8,null,Ee.createElement(VI,{variant:"err"},t),Ee.createElement("span",{style:{color:Re.dim}},"\u2192"),Ee.createElement(VI,{variant:"ok"},n))));let E=a?t:String(p||600),k=a?n:E,D=us(t),N=us(n);return Ee.createElement(Ee.Fragment,null,Ee.createElement(HI,null,Ee.createElement(w8,null,Ee.createElement(GI,null,Ee.createElement(qI,{variant:"err"},"Current"),Ee.createElement(Ox,{fSize:I,fWeight:a?E:String(p||600),style:{color:Re.err}},c?t:"Ag"),Ee.createElement(YI,{variant:"err"},a&&D?`${t} (${XI(D)})`:t)),Ee.createElement(v8,null,"\u2192"),Ee.createElement(GI,null,Ee.createElement(qI,{variant:"ok"},"Figma"),Ee.createElement(Ox,{fSize:I,fWeight:a?k:String(p||600),style:{color:Re.ok}},c?n:"Ag"),Ee.createElement(YI,{variant:"ok"},a&&N?`${n} (${XI(N)})`:n)))))};function C8(e){let t=e.match(/(\d+(?:\.\d+)?)\s*px/g);if(!t)return null;let n=t.map(r=>parseFloat(r));return n.length===1?{top:n[0],right:n[0],bottom:n[0],left:n[0]}:n.length===2?{top:n[0],right:n[1],bottom:n[0],left:n[1]}:n.length===3?{top:n[0],right:n[1],bottom:n[2],left:n[1]}:n.length>=4?{top:n[0],right:n[1],bottom:n[2],left:n[3]}:null}function us(e){let t=e.match(/(\d+(?:\.\d+)?)\s*(?:px)?/);return t?parseFloat(t[1]):null}function T8(e){let t=e.match(/(\d+(?:\.\d+)?)\s*[×x]\s*(\d+(?:\.\d+)?)/);return t?parseFloat(t[1]):null}function I8(e){let t=e.match(/(\d+(?:\.\d+)?)\s*[×x]\s*(\d+(?:\.\d+)?)/);return t?parseFloat(t[2]):null}var QI=new Set(["fontSize","font-size","fontWeight","font-weight","lineHeight","line-height","letterSpacing","letter-spacing","fontFamily","font-family","textContent","text-content"]);function F8(e){if(QI.has(e))return!0;let t=e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return QI.has(t)}var JI=e=>{let t=!!e.figmaContext&&Object.keys(e.figmaContext).length>0,n=F8(e.property);return Ee.createElement(r8,null,Ee.createElement(o8,null,"\u25BE Layer properties",t?"":" (from review)"),n?Ee.createElement(k8,{...e}):Ee.createElement(h8,{...e}))};import Yr from"react";import{styled as Kr}from"storybook/theming";var E8={color:{text:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)",border:"rgba(59, 130, 246, 0.25)"},border:{text:"#10b981",bg:"rgba(16, 185, 129, 0.1)",border:"rgba(16, 185, 129, 0.25)"},spacing:{text:"#f97316",bg:"rgba(249, 115, 22, 0.1)",border:"rgba(249, 115, 22, 0.25)"},layout:{text:"#14b8a6",bg:"rgba(20, 184, 166, 0.1)",border:"rgba(20, 184, 166, 0.25)"},sizing:{text:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)",border:"rgba(139, 92, 246, 0.25)"},typography:{text:"#ec4899",bg:"rgba(236, 72, 153, 0.1)",border:"rgba(236, 72, 153, 0.25)"}},A8=Kr.div({display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"12px"}),P8=Kr.div(({theme:e,category:t})=>{let n=E8[t||""]||{text:e.textMutedColor,bg:"rgba(148, 163, 184, 0.1)",border:"rgba(148, 163, 184, 0.2)"};return{fontSize:"11px",fontWeight:500,color:n.text,backgroundColor:n.bg,padding:"2px 8px",borderRadius:"4px",border:`1px solid ${n.border}`}}),L8=Kr.div(({status:e})=>{let n=(()=>{switch(e){case"pending":return{bg:"rgba(148, 163, 184, 0.15)",text:"#64748b",dot:"#94a3b8"};case"applied":return{bg:"rgba(245, 158, 11, 0.1)",text:"#d97706",dot:"#f59e0b"};case"verified":return{bg:"rgba(16, 185, 129, 0.1)",text:"#059669",dot:"#10b981"};case"failed":return{bg:"rgba(239, 68, 68, 0.1)",text:"#dc2626",dot:"#ef4444"};default:return{bg:"rgba(148, 163, 184, 0.15)",text:"#64748b",dot:"#94a3b8"}}})();return{fontSize:"11px",fontWeight:500,color:n.text,backgroundColor:n.bg,padding:"2px 8px",borderRadius:"4px",display:"flex",alignItems:"center",gap:"5px","&::before":{content:'""',display:"inline-block",width:"6px",height:"6px",borderRadius:"50%",backgroundColor:n.dot}}}),M8=Kr.div({fontSize:"11px",fontWeight:500,color:"#059669",backgroundColor:"rgba(16, 185, 129, 0.1)",padding:"2px 8px",borderRadius:"4px",border:"1px solid rgba(16, 185, 129, 0.2)",display:"flex",alignItems:"center",gap:"5px","&::before":{content:'""',display:"inline-block",width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#10b981"}}),B8=Kr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",marginLeft:"12px",paddingLeft:"12px",borderLeft:`1px solid ${e.appBorderColor}`})),D8=Kr.div({fontSize:"10px",fontWeight:600,color:"#0891b2",backgroundColor:"#ecfeff",padding:"2px 8px",borderRadius:"10px",border:"1px solid #0891b2",display:"flex",alignItems:"center",gap:"3px","&::before":{content:'"\u{1F9E0}"',fontSize:"9px"}}),R8=Kr.div({fontSize:"10px",fontWeight:600,color:"#7c3aed",backgroundColor:"#ede9fe",padding:"2px 8px",borderRadius:"10px",border:"1px solid #7c3aed",display:"flex",alignItems:"center",gap:"3px","&::before":{content:'"\u{1F50D}"',fontSize:"9px"}}),z8=Kr.div({fontSize:"10px",fontWeight:600,color:"#d97706",backgroundColor:"#fef3c7",padding:"2px 8px",borderRadius:"10px",border:"1px solid #d97706",display:"flex",alignItems:"center",gap:"3px","&::before":{content:'"\u26A0\uFE0F"',fontSize:"9px"}}),N8=Kr.div(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"10px",fontWeight:600,color:e.color.negative,backgroundColor:e.background.negative,padding:"2px 8px",borderRadius:"10px",border:`1px solid ${e.color.negative}`})),O8=Kr.span(({theme:e})=>({fontSize:"11px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',color:e.textMutedColor,marginLeft:"auto"})),_8=e=>{if(!e)return{};let t={};if(e.includes("+")){let n=e.split("+");for(let r of n)r.startsWith("programmatic-")?t.programmatic=r.replace("programmatic-","").replace("-detection",""):r==="ai"||r==="ai-review"?t.ai="AI Review":r==="ai-validation"&&(t.ai="AI Validation");return t}return e.startsWith("programmatic-")?t.programmatic=e.replace("programmatic-","").replace("-detection",""):e==="ai-review"?t.ai="AI Review":e==="ai-validation"&&(t.ai="AI Validation"),t},ZI=({issue:e,modelDisplayName:t,showModel:n=!1,showDetection:r=!1,dominantDetector:o,showFilePath:i=!0,enableFilePath:s=!1,unreliable:a=!1,validationErrorMessage:u})=>{let c=_8(e.detectedBy),l=o&&c.ai===o,d=r&&!l&&(c.ai||c.programmatic),g=e.generatedFix?.filePath||e.file;return Yr.createElement(A8,null,Yr.createElement(P8,{category:e.type},e.type),e.status!=="pending"&&Yr.createElement(L8,{status:e.status},e.status),n&&t&&Yr.createElement(M8,null,t),d&&Yr.createElement(B8,null,c.ai&&!l&&Yr.createElement(D8,null,c.ai),c.programmatic&&Yr.createElement(R8,null,"Pre-filter: ",c.programmatic)),a&&Yr.createElement(z8,{title:u},"Unreliable"),e.dismissed&&Yr.createElement(N8,null,"Dismissed"),i&&s&&g&&Yr.createElement(O8,null,g))};import qn from"react";import{styled as qo}from"storybook/theming";var $8=e=>{if(!e)return null;let n=(typeof e=="string"?e:typeof e=="object"?JSON.stringify(e):String(e)).match(/#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\b/);return n?n[0]:null},U8=e=>e?typeof e=="string"?e:typeof e=="object"?JSON.stringify(e):String(e):"",j8=qo.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',marginTop:"8px",padding:"8px 10px",backgroundColor:e.background.app,borderRadius:"4px"})),_x=qo.div({display:"flex",gap:"8px",alignItems:"baseline"}),$x=qo.span(({theme:e})=>({color:e.textMutedColor,fontWeight:500,width:"60px",flexShrink:0,fontSize:"11px"})),Ux=qo.span(({theme:e})=>({color:e.color.defaultText,fontFamily:"inherit",fontSize:"11px",fontWeight:500})),H8=qo(Ux)(({theme:e})=>({color:e.color.negative,textDecoration:"line-through",opacity:.7})),W8=qo(Ux)(({theme:e})=>({color:e.color.positive,fontWeight:600})),V8=qo.span(({color:e})=>({display:"inline-block",width:"14px",height:"14px",borderRadius:"3px",backgroundImage:`
94
94
  linear-gradient(${e}, ${e}),
95
95
  linear-gradient(45deg, rgba(0,0,0,0.08) 25%, transparent 25%, transparent 75%, rgba(0,0,0,0.08) 75%),
96
96
  linear-gradient(45deg, rgba(0,0,0,0.08) 25%, transparent 25%, transparent 75%, rgba(0,0,0,0.08) 75%)
97
- `,backgroundSize:"100% 100%, 6px 6px, 6px 6px",backgroundPosition:"0 0, 0 0, 3px 3px",border:"1px solid rgba(0, 0, 0, 0.15)",marginRight:"6px",verticalAlign:"middle",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.15)"})),B8=Go.span({display:"flex",alignItems:"center"}),jI=({value:e,isStrikethrough:t=!1})=>{let n=F8(e),r=E8(e),o=t?P8:L8;return n?Kn.createElement(B8,null,Kn.createElement(M8,{color:n,title:`Color: ${n}`}),Kn.createElement(o,null,r)):Kn.createElement(o,null,r)},HI=({property:e,currentValue:t,suggestedValue:n})=>Kn.createElement(A8,null,Kn.createElement(Lx,null,Kn.createElement(Mx,null,"Property"),Kn.createElement(Bx,{style:{fontWeight:600}},e)),t!=null&&t!==""&&Kn.createElement(Lx,null,Kn.createElement(Mx,null,"Current"),Kn.createElement(jI,{value:t,isStrikethrough:!0})),n!=null&&n!==""&&Kn.createElement(Lx,null,Kn.createElement(Mx,null,"Expected"),Kn.createElement(jI,{value:n,isStrikethrough:!1})));ve();var VI=new Set(["dimensions","width","height","minWidth","minHeight","maxWidth","maxHeight","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","padding-top","padding-right","padding-bottom","padding-left","border","borderWidth","border-width","border / box-shadow","borderRadius","border-radius","gap","rowGap","columnGap"]);function z8(e){if(VI.has(e))return!0;let t=e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return VI.has(t)}var N8=Pe.div(({theme:e,dismissed:t,fixApplied:n})=>({padding:"14px 16px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:t?e.background.negative:n?e.background.positive:"transparent",opacity:t?.7:n?.6:1,position:"relative",transition:"background-color 0.15s","&:hover":{backgroundColor:t||n?void 0:e.base==="dark"?"rgba(255, 255, 255, 0.03)":"rgba(0, 0, 0, 0.02)"},"&:first-of-type":{borderTop:"none"}})),Ife=Pe.div({display:"flex",alignItems:"flex-start",gap:"8px",marginBottom:"12px"}),O8=Pe.div({display:"flex",alignItems:"flex-start",gap:"8px",marginBottom:"12px"}),_8=Pe.p(({theme:e})=>({flex:1,minWidth:0,margin:0,fontSize:"14px",fontWeight:400,lineHeight:"1.5",color:e.color.defaultText})),$8=Pe.input(({theme:e})=>({appearance:"none",WebkitAppearance:"none",marginTop:"2px",width:"14px",height:"14px",cursor:"pointer",flexShrink:0,border:`1.5px solid ${e.color.mediumdark||"#cbd5e1"}`,borderRadius:"3px",backgroundColor:e.background.content,position:"relative",transition:"all 0.15s","&:hover":{borderColor:ae},"&:checked":{backgroundColor:ae,borderColor:ae},"&:checked::after":{content:'""',position:"absolute",left:"3px",top:"0px",width:"4px",height:"8px",border:"solid #fff",borderWidth:"0 2px 2px 0",transform:"rotate(45deg)"},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),U8=Pe.span(({theme:e,severity:t})=>({flexShrink:0,marginTop:"2px",display:"flex",alignItems:"center",color:t==="critical"?e.color.negative:t==="major"?e.color.warning:e.color.mediumdark,"& svg":{width:"16px",height:"16px"}})),j8=Pe.span(({theme:e,severity:t})=>({flexShrink:0,fontSize:"10px",fontWeight:e.typography.weight.bold,textTransform:"uppercase",letterSpacing:"0.04em",color:t==="critical"?e.color.negative:t==="major"?e.color.warning:e.color.mediumdark})),Ffe=Pe.div({flex:1,minWidth:0}),Efe=Pe.div({display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px",marginBottom:"6px"}),H8=Pe.div({display:"flex",alignItems:"center",gap:"12px",flexShrink:0}),Rx=Pe.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"0",fontSize:"11px",fontWeight:400,color:e.textMutedColor,backgroundColor:"transparent",border:"none",cursor:"pointer",transition:"color 0.15s","&:hover":{color:e.color.defaultText},"& svg":{width:"11px",height:"11px"}})),W8=Pe(Rx)(({theme:e})=>({"&:hover":{color:e.color.negative}})),Afe=Pe.div(({theme:e})=>({fontSize:"14px",fontWeight:500,color:e.color.defaultText,marginBottom:"4px",lineHeight:"1.5"})),Pfe=Pe.div({display:"flex",gap:"6px",alignItems:"center",flexWrap:"wrap"}),V8=Pe.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,lineHeight:"1.5",marginBottom:"10px"})),Lfe=Pe.pre(({theme:e})=>({fontSize:"13px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',backgroundColor:e.base==="dark"?"#1e293b":"#f8fafc",color:e.base==="dark"?"#e2e8f0":"#1e293b",padding:"12px",borderRadius:"4px",overflowX:"auto",margin:"8px 0 0 0",lineHeight:"1.5"})),Mfe=Pe.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',marginTop:"4px"})),G8=Pe.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,marginTop:"6px",fontStyle:"italic",display:"flex",alignItems:"baseline",gap:"4px","& strong":{fontStyle:"normal",fontWeight:600,color:"#7c3aed",fontSize:"10px"}})),q8=Pe.div(({theme:e})=>({marginTop:"8px",padding:"10px",backgroundColor:e.background.app,borderRadius:"4px",borderLeft:`3px solid ${ae}`})),Y8=Pe.div(({theme:e})=>({fontSize:"11px",fontWeight:600,color:ae,marginBottom:"8px",display:"flex",alignItems:"center",gap:"6px"})),K8=Pe.div(({theme:e})=>({display:"grid",gridTemplateColumns:"1fr auto auto",gap:"8px",alignItems:"center",padding:"4px 0",fontSize:"11px",borderBottom:`1px solid ${e.appBorderColor}`,"&:last-child":{borderBottom:"none"}})),X8=Pe.span(({theme:e})=>({fontFamily:"monospace",fontWeight:600,color:e.color.defaultText})),GI=Pe.span(({theme:e,type:t})=>({fontFamily:"monospace",fontSize:"10px",padding:"2px 6px",borderRadius:"3px",backgroundColor:t==="current"?e.background.negative:e.background.positive,color:t==="current"?e.color.negative:e.color.positive,textDecoration:t==="current"?"line-through":"none"})),Bfe=Pe.div({position:"absolute",top:"10px",right:"10px",display:"flex",alignItems:"center",gap:"2px"}),Q8=Pe(Pn)({width:"24px",height:"24px",padding:0,fontSize:"12px"}),Dfe=Pe(Q8)(({theme:e})=>({"&:hover":{backgroundColor:e.background.negative,color:e.color.negative}})),J8=Pe.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,fontStyle:"italic",marginTop:"8px",padding:"8px",backgroundColor:e.background.app,borderRadius:"4px",borderLeft:`3px solid ${e.color.negative}`})),qI=Pe.div(({theme:e})=>({fontSize:"11px",color:e.color.negative,backgroundColor:e.background.negative,padding:"10px",borderRadius:"4px",marginTop:"10px",borderLeft:`3px solid ${e.color.negative}`,fontFamily:"monospace",lineHeight:"1.5"})),Z8=Pe.div(({theme:e,compact:t})=>({marginTop:"12px",padding:t?"8px 12px":"12px",backgroundColor:e.background.positive,borderRadius:"6px",border:`1px solid ${e.color.positive}`})),eH=Pe.div({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"8px"}),tH=Pe.div(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.positive,display:"flex",alignItems:"center",gap:"6px","&::before":{content:'"\u{1F916}"',fontSize:"14px"}})),nH=Pe.span(({theme:e,confidence:t})=>({padding:"4px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:600,backgroundColor:t>=.8?e.background.positive:t>=.6?e.background.warning:e.background.negative,color:t>=.8?e.color.positive:t>=.6?e.color.warning:e.color.negative})),YI=Pe.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,marginBottom:"8px"})),KI=Pe.details({marginBottom:"8px"}),XI=Pe.summary(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.positive,cursor:"pointer",userSelect:"none",marginBottom:"8px","&:hover":{opacity:.8}})),rH=Pe.pre(({theme:e})=>({fontSize:"11px",fontFamily:"monospace",backgroundColor:e.base==="dark"?"#1e293b":"#f8fafc",color:e.base==="dark"?"#e2e8f0":"#1e293b",padding:"10px",borderRadius:"4px",overflowX:"auto",margin:0,lineHeight:"1.5",maxHeight:"300px",overflowY:"auto"})),oH=Pe.div({display:"flex",gap:"8px",marginTop:"8px"}),iH=Pe(An)(({theme:e})=>({padding:"6px 12px",fontSize:"12px",backgroundColor:e.color.positive})),sH=Pe(Or)({padding:"6px 12px",fontSize:"12px"}),Rfe=Pe(an)(({theme:e,copied:t})=>({padding:"6px 12px",fontSize:"12px",minWidth:"90px",...t?{backgroundColor:e.color.positive}:{}})),zfe=Pe.div({display:"flex",flexDirection:"column",gap:"10px",padding:"8px 0"}),aH=Pe.div({display:"flex",alignItems:"center",gap:"12px"}),lH=Pe.div(({theme:e})=>({width:"16px",height:"16px",border:`2px solid ${e.appBorderColor}`,borderTopColor:ae,borderRadius:"50%",animation:"spin 0.8s linear infinite","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),cH=Pe.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontStyle:"italic"})),Nfe=Pe.div(({theme:e,width:t="100%"})=>({height:"10px",backgroundColor:e.background.app,borderRadius:"4px",width:t,animation:"pulse 1.5s ease-in-out infinite","@keyframes pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.5}}})),uH=Pe.div(({theme:e})=>({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",overflow:"hidden",fontSize:"11px",fontFamily:"monospace",lineHeight:"1.5",marginTop:"8px"})),QI=Pe.div(({theme:e,side:t})=>({backgroundColor:t==="old"?e.background.negative:e.background.positive,borderRight:t==="old"?`1px solid ${e.appBorderColor}`:"none",minWidth:0,overflow:"hidden"})),JI=Pe.div(({theme:e,side:t})=>({padding:"6px 8px",fontWeight:600,fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:t==="old"?e.background.negative:e.background.positive,color:t==="old"?e.color.negative:e.color.positive,borderBottom:`1px solid ${e.appBorderColor}`})),ZI=Pe.div({display:"flex",flexDirection:"column",overflowX:"auto",maxHeight:"300px",overflowY:"auto"}),eF=Pe.div(({theme:e,type:t})=>{let n="transparent",r=e.color.defaultText;return t==="removed"?(n=e.background.negative,r=e.color.negative):t==="added"?(n=e.background.positive,r=e.color.positive):t==="empty"&&(n=e.background.app,r=e.textMutedColor),{padding:"2px 8px",backgroundColor:n,color:r,whiteSpace:"pre",minHeight:"20px",borderBottom:"1px solid rgba(0, 0, 0, 0.05)"}}),tF=Pe.div(({theme:e,status:t})=>({fontSize:"12px",color:e.color.positive,fontStyle:t==="applying"?"italic":"normal",fontWeight:t==="applied"?600:400})),nF=e=>{let t=e.split(`
98
- `),n=[];for(let r=0;r<t.length;r++){let o=t[r];if(!o.startsWith("@@"))if(o.startsWith("-"))n.push({oldLine:{type:"removed",content:o.substring(1)},newLine:{type:"empty",content:""}});else if(o.startsWith("+"))n.push({oldLine:{type:"empty",content:""},newLine:{type:"added",content:o.substring(1)}});else{let i=o.startsWith(" ")?o.substring(1):o;n.push({oldLine:{type:"context",content:i},newLine:{type:"context",content:i}})}}return n},pH=e=>{switch(e){case"post-ai-validation":return"Pre-filter (programmatic)";case"ai-validation":return"Haiku AI";case"user":return"Manual";default:return"Unknown"}},dH=e=>({"claude-sonnet-4-6":"Sonnet 4.6","claude-sonnet-4-20250514":"Sonnet 4","claude-sonnet-3-5-20240620":"Sonnet 3.5","claude-3-opus-20240229":"Opus 3","gpt-5":"GPT-5","gpt-5-mini":"GPT-5 Mini","gpt-5.2-chat-latest":"GPT-5.2 Instant","gpt-4o":"GPT-4o"})[e]||e,rF=R8(({issue:e,modelId:t,dominantDetector:n,showFilePath:r=!0,onToggleSelection:o,onDismiss:i,onUndismiss:s,onApplyFix:a,onRegenerateFix:u})=>{let{featureFlags:c,userRole:l,setHoveredIssueId:d}=ce(),[g,p]=Dx(!1),[m,b]=Dx(!1),[F,E]=Dx(!1),v=D8(null),D=WI(()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{d(e.id),E(!0)},100)},[e.id,d]),O=WI(()=>{v.current&&clearTimeout(v.current),v.current=null,d(null),E(!1)},[d]),$=()=>{e.dismissed?s(e.id):p(!0)},L=(S,w)=>{let P=w?`${S}: ${w}`:S;i(e.id,P),p(!1)},N=async()=>{let S=[`**${e.title}**`,`Type: ${e.type} | Severity: ${e.severity} | Status: ${e.status}`,e.description];if(e.property&&S.push(`Property: ${e.property}`),e.currentValue&&S.push(`Current: ${e.currentValue}`),e.suggestedValue&&S.push(`Expected: ${e.suggestedValue}`),e.file&&S.push(`File: ${e.file}${e.lineNumber!==void 0?`:${e.lineNumber}`:""}`),e.relatedTo&&e.relatedTo.length>0&&S.push(`Caused by: ${e.relatedTo.join(", ")}`),e.suggestedCode&&S.push(`
97
+ `,backgroundSize:"100% 100%, 6px 6px, 6px 6px",backgroundPosition:"0 0, 0 0, 3px 3px",border:"1px solid rgba(0, 0, 0, 0.15)",marginRight:"6px",verticalAlign:"middle",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.15)"})),G8=qo.span({display:"flex",alignItems:"center"}),eF=({value:e,isStrikethrough:t=!1})=>{let n=$8(e),r=U8(e),o=t?H8:W8;return n?qn.createElement(G8,null,qn.createElement(V8,{color:n,title:`Color: ${n}`}),qn.createElement(o,null,r)):qn.createElement(o,null,r)},tF=({property:e,currentValue:t,suggestedValue:n})=>qn.createElement(j8,null,qn.createElement(_x,null,qn.createElement($x,null,"Property"),qn.createElement(Ux,{style:{fontWeight:600}},e)),t!=null&&t!==""&&qn.createElement(_x,null,qn.createElement($x,null,"Current"),qn.createElement(eF,{value:t,isStrikethrough:!0})),n!=null&&n!==""&&qn.createElement(_x,null,qn.createElement($x,null,"Expected"),qn.createElement(eF,{value:n,isStrikethrough:!1})));ve();var rF=new Set(["dimensions","width","height","minWidth","minHeight","maxWidth","maxHeight","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","padding-top","padding-right","padding-bottom","padding-left","border","borderWidth","border-width","border / box-shadow","borderRadius","border-radius","gap","rowGap","columnGap"]);function K8(e){if(rF.has(e))return!0;let t=e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return rF.has(t)}var X8=Ae.div(({theme:e,dismissed:t,fixApplied:n})=>({padding:"14px 16px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:t?e.background.negative:n?e.background.positive:"transparent",opacity:t?.7:n?.6:1,position:"relative",transition:"background-color 0.15s","&:hover":{backgroundColor:t||n?void 0:e.base==="dark"?"rgba(255, 255, 255, 0.03)":"rgba(0, 0, 0, 0.02)"},"&:first-of-type":{borderTop:"none"}})),Hfe=Ae.div({display:"flex",alignItems:"flex-start",gap:"8px",marginBottom:"12px"}),Q8=Ae.div({display:"flex",alignItems:"flex-start",gap:"8px",marginBottom:"12px"}),J8=Ae.p(({theme:e})=>({flex:1,minWidth:0,margin:0,fontSize:"14px",fontWeight:400,lineHeight:"1.5",color:e.color.defaultText})),Z8=Ae.input(({theme:e})=>({appearance:"none",WebkitAppearance:"none",marginTop:"2px",width:"14px",height:"14px",cursor:"pointer",flexShrink:0,border:`1.5px solid ${e.color.mediumdark||"#cbd5e1"}`,borderRadius:"3px",backgroundColor:e.background.content,position:"relative",transition:"all 0.15s","&:hover":{borderColor:le},"&:checked":{backgroundColor:le,borderColor:le},"&:checked::after":{content:'""',position:"absolute",left:"3px",top:"0px",width:"4px",height:"8px",border:"solid #fff",borderWidth:"0 2px 2px 0",transform:"rotate(45deg)"},"&:disabled":{opacity:.4,cursor:"not-allowed"}})),eH=Ae.span(({theme:e,severity:t})=>({flexShrink:0,marginTop:"2px",display:"flex",alignItems:"center",color:t==="critical"?e.color.negative:t==="major"?e.color.warning:e.color.mediumdark,"& svg":{width:"16px",height:"16px"}})),tH=Ae.span(({theme:e,severity:t})=>({flexShrink:0,fontSize:"10px",fontWeight:e.typography.weight.bold,textTransform:"uppercase",letterSpacing:"0.04em",color:t==="critical"?e.color.negative:t==="major"?e.color.warning:e.color.mediumdark})),Wfe=Ae.div({flex:1,minWidth:0}),Vfe=Ae.div({display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px",marginBottom:"6px"}),nH=Ae.div({display:"flex",alignItems:"center",gap:"12px",flexShrink:0}),Hx=Ae.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"0",fontSize:"11px",fontWeight:400,color:e.textMutedColor,backgroundColor:"transparent",border:"none",cursor:"pointer",transition:"color 0.15s","&:hover":{color:e.color.defaultText},"& svg":{width:"11px",height:"11px"}})),rH=Ae(Hx)(({theme:e})=>({"&:hover":{color:e.color.negative}})),Gfe=Ae.div(({theme:e})=>({fontSize:"14px",fontWeight:500,color:e.color.defaultText,marginBottom:"4px",lineHeight:"1.5"})),qfe=Ae.div({display:"flex",gap:"6px",alignItems:"center",flexWrap:"wrap"}),oH=Ae.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,lineHeight:"1.5",marginBottom:"10px"})),Yfe=Ae.pre(({theme:e})=>({fontSize:"13px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',backgroundColor:e.base==="dark"?"#1e293b":"#f8fafc",color:e.base==="dark"?"#e2e8f0":"#1e293b",padding:"12px",borderRadius:"4px",overflowX:"auto",margin:"8px 0 0 0",lineHeight:"1.5"})),Kfe=Ae.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',marginTop:"4px"})),iH=Ae.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,marginTop:"6px",fontStyle:"italic",display:"flex",alignItems:"baseline",gap:"4px","& strong":{fontStyle:"normal",fontWeight:600,color:"#7c3aed",fontSize:"10px"}})),sH=Ae.div(({theme:e})=>({marginTop:"8px",padding:"10px",backgroundColor:e.background.app,borderRadius:"4px",borderLeft:`3px solid ${le}`})),aH=Ae.div(({theme:e})=>({fontSize:"11px",fontWeight:600,color:le,marginBottom:"8px",display:"flex",alignItems:"center",gap:"6px"})),lH=Ae.div(({theme:e})=>({display:"grid",gridTemplateColumns:"1fr auto auto",gap:"8px",alignItems:"center",padding:"4px 0",fontSize:"11px",borderBottom:`1px solid ${e.appBorderColor}`,"&:last-child":{borderBottom:"none"}})),cH=Ae.span(({theme:e})=>({fontFamily:"monospace",fontWeight:600,color:e.color.defaultText})),oF=Ae.span(({theme:e,type:t})=>({fontFamily:"monospace",fontSize:"10px",padding:"2px 6px",borderRadius:"3px",backgroundColor:t==="current"?e.background.negative:e.background.positive,color:t==="current"?e.color.negative:e.color.positive,textDecoration:t==="current"?"line-through":"none"})),Xfe=Ae.div({position:"absolute",top:"10px",right:"10px",display:"flex",alignItems:"center",gap:"2px"}),uH=Ae(An)({width:"24px",height:"24px",padding:0,fontSize:"12px"}),Qfe=Ae(uH)(({theme:e})=>({"&:hover":{backgroundColor:e.background.negative,color:e.color.negative}})),pH=Ae.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,fontStyle:"italic",marginTop:"8px",padding:"8px",backgroundColor:e.background.app,borderRadius:"4px",borderLeft:`3px solid ${e.color.negative}`})),iF=Ae.div(({theme:e})=>({fontSize:"11px",color:e.color.negative,backgroundColor:e.background.negative,padding:"10px",borderRadius:"4px",marginTop:"10px",borderLeft:`3px solid ${e.color.negative}`,fontFamily:"monospace",lineHeight:"1.5"})),dH=Ae.div(({theme:e,compact:t})=>({marginTop:"12px",padding:t?"8px 12px":"12px",backgroundColor:e.background.positive,borderRadius:"6px",border:`1px solid ${e.color.positive}`})),gH=Ae.div({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"8px"}),fH=Ae.div(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.positive,display:"flex",alignItems:"center",gap:"6px","&::before":{content:'"\u{1F916}"',fontSize:"14px"}})),mH=Ae.span(({theme:e,confidence:t})=>({padding:"4px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:600,backgroundColor:t>=.8?e.background.positive:t>=.6?e.background.warning:e.background.negative,color:t>=.8?e.color.positive:t>=.6?e.color.warning:e.color.negative})),sF=Ae.div(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,marginBottom:"8px"})),aF=Ae.details({marginBottom:"8px"}),lF=Ae.summary(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.positive,cursor:"pointer",userSelect:"none",marginBottom:"8px","&:hover":{opacity:.8}})),hH=Ae.pre(({theme:e})=>({fontSize:"11px",fontFamily:"monospace",backgroundColor:e.base==="dark"?"#1e293b":"#f8fafc",color:e.base==="dark"?"#e2e8f0":"#1e293b",padding:"10px",borderRadius:"4px",overflowX:"auto",margin:0,lineHeight:"1.5",maxHeight:"300px",overflowY:"auto"})),xH=Ae.div({display:"flex",gap:"8px",marginTop:"8px"}),yH=Ae(En)(({theme:e})=>({padding:"6px 12px",fontSize:"12px",backgroundColor:e.color.positive})),bH=Ae(Or)({padding:"6px 12px",fontSize:"12px"}),Jfe=Ae(on)(({theme:e,copied:t})=>({padding:"6px 12px",fontSize:"12px",minWidth:"90px",...t?{backgroundColor:e.color.positive}:{}})),Zfe=Ae.div({display:"flex",flexDirection:"column",gap:"10px",padding:"8px 0"}),SH=Ae.div({display:"flex",alignItems:"center",gap:"12px"}),wH=Ae.div(({theme:e})=>({width:"16px",height:"16px",border:`2px solid ${e.appBorderColor}`,borderTopColor:le,borderRadius:"50%",animation:"spin 0.8s linear infinite","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),vH=Ae.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontStyle:"italic"})),eme=Ae.div(({theme:e,width:t="100%"})=>({height:"10px",backgroundColor:e.background.app,borderRadius:"4px",width:t,animation:"pulse 1.5s ease-in-out infinite","@keyframes pulse":{"0%, 100%":{opacity:1},"50%":{opacity:.5}}})),kH=Ae.div(({theme:e})=>({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",overflow:"hidden",fontSize:"11px",fontFamily:"monospace",lineHeight:"1.5",marginTop:"8px"})),cF=Ae.div(({theme:e,side:t})=>({backgroundColor:t==="old"?e.background.negative:e.background.positive,borderRight:t==="old"?`1px solid ${e.appBorderColor}`:"none",minWidth:0,overflow:"hidden"})),uF=Ae.div(({theme:e,side:t})=>({padding:"6px 8px",fontWeight:600,fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:t==="old"?e.background.negative:e.background.positive,color:t==="old"?e.color.negative:e.color.positive,borderBottom:`1px solid ${e.appBorderColor}`})),pF=Ae.div({display:"flex",flexDirection:"column",overflowX:"auto",maxHeight:"300px",overflowY:"auto"}),dF=Ae.div(({theme:e,type:t})=>{let n="transparent",r=e.color.defaultText;return t==="removed"?(n=e.background.negative,r=e.color.negative):t==="added"?(n=e.background.positive,r=e.color.positive):t==="empty"&&(n=e.background.app,r=e.textMutedColor),{padding:"2px 8px",backgroundColor:n,color:r,whiteSpace:"pre",minHeight:"20px",borderBottom:"1px solid rgba(0, 0, 0, 0.05)"}}),gF=Ae.div(({theme:e,status:t})=>({fontSize:"12px",color:e.color.positive,fontStyle:t==="applying"?"italic":"normal",fontWeight:t==="applied"?600:400})),fF=e=>{let t=e.split(`
98
+ `),n=[];for(let r=0;r<t.length;r++){let o=t[r];if(!o.startsWith("@@"))if(o.startsWith("-"))n.push({oldLine:{type:"removed",content:o.substring(1)},newLine:{type:"empty",content:""}});else if(o.startsWith("+"))n.push({oldLine:{type:"empty",content:""},newLine:{type:"added",content:o.substring(1)}});else{let i=o.startsWith(" ")?o.substring(1):o;n.push({oldLine:{type:"context",content:i},newLine:{type:"context",content:i}})}}return n},CH=e=>{switch(e){case"post-ai-validation":return"Pre-filter (programmatic)";case"ai-validation":return"Haiku AI";case"user":return"Manual";default:return"Unknown"}},TH=e=>({"claude-sonnet-4-6":"Sonnet 4.6","claude-sonnet-4-20250514":"Sonnet 4","claude-sonnet-3-5-20240620":"Sonnet 3.5","claude-3-opus-20240229":"Opus 3","gpt-5":"GPT-5","gpt-5-mini":"GPT-5 Mini","gpt-5.2-chat-latest":"GPT-5.2 Instant","gpt-4o":"GPT-4o"})[e]||e,mF=Y8(({issue:e,modelId:t,dominantDetector:n,showFilePath:r=!0,onToggleSelection:o,onDismiss:i,onUndismiss:s,onApplyFix:a,onRegenerateFix:u})=>{let{featureFlags:c,userRole:l,setHoveredIssueId:d}=ue(),[g,p]=jx(!1),[m,b]=jx(!1),[I,E]=jx(!1),k=q8(null),D=nF(()=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{d(e.id),E(!0)},100)},[e.id,d]),N=nF(()=>{k.current&&clearTimeout(k.current),k.current=null,d(null),E(!1)},[d]),$=()=>{e.dismissed?s(e.id):p(!0)},L=(S,w)=>{let A=w?`${S}: ${w}`:S;i(e.id,A),p(!1)},R=async()=>{let S=[`**${e.title}**`,`Type: ${e.type} | Severity: ${e.severity} | Status: ${e.status}`,e.description];if(e.property&&S.push(`Property: ${e.property}`),e.currentValue&&S.push(`Current: ${e.currentValue}`),e.suggestedValue&&S.push(`Expected: ${e.suggestedValue}`),e.file&&S.push(`File: ${e.file}${e.lineNumber!==void 0?`:${e.lineNumber}`:""}`),e.relatedTo&&e.relatedTo.length>0&&S.push(`Caused by: ${e.relatedTo.join(", ")}`),e.suggestedCode&&S.push(`
99
99
  Suggested code:
100
100
  \`\`\`
101
101
  ${e.suggestedCode}
102
- \`\`\``),e.generatedFix){let P=e.generatedFix;if(S.push(`
103
- --- AI-Generated Fix ---`),S.push(`Status: ${P.status}`),P.confidence!==void 0){let f=P.confidence>1?P.confidence:Math.round(P.confidence*100);S.push(`Confidence: ${f}%`)}P.strategy&&S.push(`Strategy: ${P.strategy}`),P.filePath&&S.push(`Target file: ${P.filePath}`),P.code&&S.push(`
102
+ \`\`\``),e.generatedFix){let A=e.generatedFix;if(S.push(`
103
+ --- AI-Generated Fix ---`),S.push(`Status: ${A.status}`),A.confidence!==void 0){let f=A.confidence>1?A.confidence:Math.round(A.confidence*100);S.push(`Confidence: ${f}%`)}A.strategy&&S.push(`Strategy: ${A.strategy}`),A.filePath&&S.push(`Target file: ${A.filePath}`),A.code&&S.push(`
104
104
  Generated code:
105
105
  \`\`\`
106
- ${P.code}
107
- \`\`\``),P.diffPreview&&S.push(`
106
+ ${A.code}
107
+ \`\`\``),A.diffPreview&&S.push(`
108
108
  Diff:
109
109
  \`\`\`diff
110
- ${P.diffPreview}
111
- \`\`\``),P.error&&S.push(`Error: ${P.error}`)}let w=S.filter(Boolean).join(`
112
- `);try{await navigator.clipboard.writeText(w),b(!0),setTimeout(()=>b(!1),2e3)}catch(P){console.error("Failed to copy:",P)}},x=e.generatedFix?.status==="applied";return J.createElement(J.Fragment,null,J.createElement(N8,{dismissed:!!e.dismissed,fixApplied:x,onMouseEnter:D,onMouseLeave:O},J.createElement(O8,null,J.createElement($8,{type:"checkbox",checked:e.selectedForFix,onChange:()=>o(e.id),disabled:e.dismissed||e.generatedFix?.status==="failed"}),J.createElement(U8,{severity:e.severity},e.severity==="critical"?J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("circle",{cx:"12",cy:"12",r:"10"}),J.createElement("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),J.createElement("line",{x1:"9",y1:"9",x2:"15",y2:"15"})):e.severity==="major"?J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),J.createElement("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),J.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})):J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("circle",{cx:"12",cy:"12",r:"10"}),J.createElement("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),J.createElement("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"}))),J.createElement(j8,{severity:e.severity},e.severity),J.createElement(_8,null,e.title),J.createElement(H8,null,J.createElement(Rx,{onClick:N,title:"Copy issue details"},m?J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("polyline",{points:"20 6 9 17 4 12"})):J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),J.createElement("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})),"Copy"),e.dismissed?J.createElement(Rx,{onClick:$,title:"Restore issue"},J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("polyline",{points:"1 4 1 10 7 10"}),J.createElement("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})),"Restore"):J.createElement(W8,{onClick:$,title:"Dismiss issue"},J.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},J.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),J.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),"Dismiss"))),J.createElement(UI,{issue:e,modelDisplayName:dH(t),showModel:c.enableModelSelection,showDetection:l==="admin",dominantDetector:n,showFilePath:r,enableFilePath:c.enableFixGeneration,unreliable:e._unreliable,validationErrorMessage:e._validationError?.message}),e.description&&e.description!==e.title&&J.createElement(V8,null,e.description),e.property&&J.createElement(HI,{property:e.property,currentValue:e.currentValue,suggestedValue:e.suggestedValue}),l==="admin"&&F&&e.property&&e.currentValue&&e.suggestedValue&&z8(e.property)&&J.createElement($I,{property:e.property,currentValue:e.currentValue,expectedValue:e.suggestedValue,figmaContext:e.figmaContext}),e.relatedTo&&e.relatedTo.length>0&&J.createElement(G8,null,J.createElement("strong",null,"Caused by:")," ",e.relatedTo.join(", ")),e.relatedProperties&&e.relatedProperties.length>0&&J.createElement(q8,null,J.createElement(Y8,null,"Affected Properties (",e.relatedProperties.length,")"),e.relatedProperties.map((S,w)=>J.createElement(K8,{key:`${S.property}-${w}`},J.createElement(X8,null,S.property),J.createElement(GI,{type:"current"},S.currentValue),J.createElement(GI,{type:"suggested"},S.suggestedValue)))),e.dismissed&&J.createElement(J8,null,J.createElement("strong",null,"Filtered by:")," ",pH(e.dismissedBy),e.dismissReason&&J.createElement(J.Fragment,null,J.createElement("br",null),"Reason: ",e.dismissReason)),e.status==="failed"&&e.error&&J.createElement(qI,null,J.createElement("strong",null,"Error:")," ",e.error),e.generatedFix&&J.createElement(Z8,{compact:e.generatedFix.status==="generating"},e.generatedFix.status==="generating"?J.createElement(aH,{style:{margin:0}},J.createElement(lH,null),J.createElement(cH,{style:{margin:0}},"Generating fix...")):J.createElement(J.Fragment,null,J.createElement(eH,null,J.createElement(tH,null,"AI-Generated Fix"),J.createElement(nH,{confidence:e.generatedFix.confidence},Math.round(e.generatedFix.confidence>1?e.generatedFix.confidence:e.generatedFix.confidence*100),"% confidence")),e.generatedFix.strategy&&J.createElement(YI,null,"Strategy: ",e.generatedFix.strategy),e.generatedFix.noChangesExplanation&&J.createElement(YI,{style:{fontStyle:"italic"}},"Reason: ",e.generatedFix.noChangesExplanation),e.generatedFix.diffPreview?J.createElement(KI,null,J.createElement(XI,null,"View Diff"),J.createElement(uH,null,J.createElement(QI,{side:"old"},J.createElement(JI,{side:"old"},"Old"),J.createElement(ZI,null,nF(e.generatedFix.diffPreview).map((S,w)=>J.createElement(eF,{key:`old-${w}`,type:S.oldLine.type},S.oldLine.content||"\xA0")))),J.createElement(QI,{side:"new"},J.createElement(JI,{side:"new"},"New"),J.createElement(ZI,null,nF(e.generatedFix.diffPreview).map((S,w)=>J.createElement(eF,{key:`new-${w}`,type:S.newLine.type},S.newLine.content||"\xA0")))))):e.generatedFix.code&&J.createElement(KI,null,J.createElement(XI,null,"View Generated Code"),J.createElement(rH,null,e.generatedFix.code)),e.generatedFix.status==="failed"&&e.generatedFix.error&&J.createElement(qI,null,J.createElement("strong",null,"Fix generation failed:")," ",e.generatedFix.error),e.generatedFix.status==="ready"&&c.enableFixApply&&a&&J.createElement(oH,null,J.createElement(iH,{onClick:()=>a(e.id)},"Apply Fix"),u&&J.createElement(sH,{onClick:()=>u(e.id)},"Regenerate")),e.generatedFix.status==="applying"&&J.createElement(tF,{status:"applying"},"Applying fix..."),e.generatedFix.status==="applied"&&J.createElement(tF,{status:"applied"},"\u2713 Fix applied successfully")))),J.createElement(PI,{isOpen:g,issueTitle:e.title,onConfirm:L,onCancel:()=>p(!1)}))});import zx from"react";import{styled as Nx,keyframes as gH}from"storybook/theming";var fH=gH`
110
+ ${A.diffPreview}
111
+ \`\`\``),A.error&&S.push(`Error: ${A.error}`)}let w=S.filter(Boolean).join(`
112
+ `);try{await navigator.clipboard.writeText(w),b(!0),setTimeout(()=>b(!1),2e3)}catch(A){console.error("Failed to copy:",A)}},h=e.generatedFix?.status==="applied";return ee.createElement(ee.Fragment,null,ee.createElement(X8,{dismissed:!!e.dismissed,fixApplied:h,onMouseEnter:D,onMouseLeave:N},ee.createElement(Q8,null,ee.createElement(Z8,{type:"checkbox",checked:e.selectedForFix,onChange:()=>o(e.id),disabled:e.dismissed||e.generatedFix?.status==="failed"}),ee.createElement(eH,{severity:e.severity},e.severity==="critical"?ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("circle",{cx:"12",cy:"12",r:"10"}),ee.createElement("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),ee.createElement("line",{x1:"9",y1:"9",x2:"15",y2:"15"})):e.severity==="major"?ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),ee.createElement("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),ee.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})):ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("circle",{cx:"12",cy:"12",r:"10"}),ee.createElement("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),ee.createElement("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"}))),ee.createElement(tH,{severity:e.severity},e.severity),ee.createElement(J8,null,e.title),ee.createElement(nH,null,ee.createElement(Hx,{onClick:R,title:"Copy issue details"},m?ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("polyline",{points:"20 6 9 17 4 12"})):ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),ee.createElement("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})),"Copy"),e.dismissed?ee.createElement(Hx,{onClick:$,title:"Restore issue"},ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("polyline",{points:"1 4 1 10 7 10"}),ee.createElement("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})),"Restore"):ee.createElement(rH,{onClick:$,title:"Dismiss issue"},ee.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ee.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),ee.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),"Dismiss"))),ee.createElement(ZI,{issue:e,modelDisplayName:TH(t),showModel:c.enableModelSelection,showDetection:l==="admin",dominantDetector:n,showFilePath:r,enableFilePath:c.enableFixGeneration,unreliable:e._unreliable,validationErrorMessage:e._validationError?.message}),e.description&&e.description!==e.title&&ee.createElement(oH,null,e.description),e.property&&ee.createElement(tF,{property:e.property,currentValue:e.currentValue,suggestedValue:e.suggestedValue}),l==="admin"&&I&&e.property&&e.currentValue&&e.suggestedValue&&K8(e.property)&&ee.createElement(JI,{property:e.property,currentValue:e.currentValue,expectedValue:e.suggestedValue,figmaContext:e.figmaContext}),e.relatedTo&&e.relatedTo.length>0&&ee.createElement(iH,null,ee.createElement("strong",null,"Caused by:")," ",e.relatedTo.join(", ")),e.relatedProperties&&e.relatedProperties.length>0&&ee.createElement(sH,null,ee.createElement(aH,null,"Affected Properties (",e.relatedProperties.length,")"),e.relatedProperties.map((S,w)=>ee.createElement(lH,{key:`${S.property}-${w}`},ee.createElement(cH,null,S.property),ee.createElement(oF,{type:"current"},S.currentValue),ee.createElement(oF,{type:"suggested"},S.suggestedValue)))),e.dismissed&&ee.createElement(pH,null,ee.createElement("strong",null,"Filtered by:")," ",CH(e.dismissedBy),e.dismissReason&&ee.createElement(ee.Fragment,null,ee.createElement("br",null),"Reason: ",e.dismissReason)),e.status==="failed"&&e.error&&ee.createElement(iF,null,ee.createElement("strong",null,"Error:")," ",e.error),e.generatedFix&&ee.createElement(dH,{compact:e.generatedFix.status==="generating"},e.generatedFix.status==="generating"?ee.createElement(SH,{style:{margin:0}},ee.createElement(wH,null),ee.createElement(vH,{style:{margin:0}},"Generating fix...")):ee.createElement(ee.Fragment,null,ee.createElement(gH,null,ee.createElement(fH,null,"AI-Generated Fix"),ee.createElement(mH,{confidence:e.generatedFix.confidence},Math.round(e.generatedFix.confidence>1?e.generatedFix.confidence:e.generatedFix.confidence*100),"% confidence")),e.generatedFix.strategy&&ee.createElement(sF,null,"Strategy: ",e.generatedFix.strategy),e.generatedFix.noChangesExplanation&&ee.createElement(sF,{style:{fontStyle:"italic"}},"Reason: ",e.generatedFix.noChangesExplanation),e.generatedFix.diffPreview?ee.createElement(aF,null,ee.createElement(lF,null,"View Diff"),ee.createElement(kH,null,ee.createElement(cF,{side:"old"},ee.createElement(uF,{side:"old"},"Old"),ee.createElement(pF,null,fF(e.generatedFix.diffPreview).map((S,w)=>ee.createElement(dF,{key:`old-${w}`,type:S.oldLine.type},S.oldLine.content||"\xA0")))),ee.createElement(cF,{side:"new"},ee.createElement(uF,{side:"new"},"New"),ee.createElement(pF,null,fF(e.generatedFix.diffPreview).map((S,w)=>ee.createElement(dF,{key:`new-${w}`,type:S.newLine.type},S.newLine.content||"\xA0")))))):e.generatedFix.code&&ee.createElement(aF,null,ee.createElement(lF,null,"View Generated Code"),ee.createElement(hH,null,e.generatedFix.code)),e.generatedFix.status==="failed"&&e.generatedFix.error&&ee.createElement(iF,null,ee.createElement("strong",null,"Fix generation failed:")," ",e.generatedFix.error),e.generatedFix.status==="ready"&&c.enableFixApply&&a&&ee.createElement(xH,null,ee.createElement(yH,{onClick:()=>a(e.id)},"Apply Fix"),u&&ee.createElement(bH,{onClick:()=>u(e.id)},"Regenerate")),e.generatedFix.status==="applying"&&ee.createElement(gF,{status:"applying"},"Applying fix..."),e.generatedFix.status==="applied"&&ee.createElement(gF,{status:"applied"},"\u2713 Fix applied successfully")))),ee.createElement(jI,{isOpen:g,issueTitle:e.title,onConfirm:L,onCancel:()=>p(!1)}))});import Wx from"react";import{styled as Vx,keyframes as IH}from"storybook/theming";var FH=IH`
113
113
  0% { transform: rotate(0deg); }
114
114
  100% { transform: rotate(360deg); }
115
- `,mH=Nx.div({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"32px",gap:"12px"}),hH=Nx.div(({theme:e})=>({width:"24px",height:"24px",border:`3px solid ${e.appBorderColor}`,borderTopColor:"#7c3aed",borderRadius:"50%",animation:`${fH} 0.8s linear infinite`})),xH=Nx.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),ru=({label:e="Loading..."})=>zx.createElement(mH,null,zx.createElement(hH,null),zx.createElement(xH,null,e));ve();import bt,{useState as yH,useEffect as bH,useRef as SH}from"react";import{styled as bn,keyframes as Aa}from"storybook/theming";var us="#8b6cc1",wH="rgba(139, 108, 193, 0.2)",sF="rgba(139, 108, 193, 0.15)",vH="rgba(139, 108, 193, 0.1)",kH="rgba(139, 108, 193, 0.5)",aF=Aa`
115
+ `,EH=Vx.div({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"32px",gap:"12px"}),AH=Vx.div(({theme:e})=>({width:"24px",height:"24px",border:`3px solid ${e.appBorderColor}`,borderTopColor:"#7c3aed",borderRadius:"50%",animation:`${FH} 0.8s linear infinite`})),PH=Vx.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),uu=({label:e="Loading..."})=>Wx.createElement(EH,null,Wx.createElement(AH,null),Wx.createElement(PH,null,e));ve();import xt,{useState as LH,useEffect as MH,useRef as BH}from"react";import{styled as yn,keyframes as Ma}from"storybook/theming";var ps="#8b6cc1",DH="rgba(139, 108, 193, 0.2)",yF="rgba(139, 108, 193, 0.15)",RH="rgba(139, 108, 193, 0.1)",zH="rgba(139, 108, 193, 0.5)",bF=Ma`
116
116
  from { transform: rotate(0deg); }
117
117
  to { transform: rotate(360deg); }
118
- `,CH=Aa`
118
+ `,NH=Ma`
119
119
  from { transform: rotate(0deg); }
120
120
  to { transform: rotate(-360deg); }
121
- `,TH=Aa`
121
+ `,OH=Ma`
122
122
  0%, 100% { opacity: 1; transform: scale(1); }
123
123
  50% { opacity: 0.6; transform: scale(1.05); }
124
- `,IH=Aa`
124
+ `,_H=Ma`
125
125
  from { opacity: 0; transform: translateY(8px); }
126
126
  to { opacity: 1; transform: translateY(0); }
127
- `,FH=Aa`
127
+ `,$H=Ma`
128
128
  0%, 100% { opacity: 1; }
129
129
  50% { opacity: 0.4; }
130
- `,EH=bn.div({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"60px 20px",textAlign:"center",animation:`${IH} 0.4s ease-out`}),AH=bn.div({position:"relative",width:"80px",height:"80px",marginBottom:"32px"}),PH=bn.div({position:"absolute",inset:0,borderRadius:"50%",background:`radial-gradient(circle, ${sF} 0%, transparent 70%)`,animation:`${TH} 2s ease-in-out infinite`}),LH=bn.div({position:"absolute",inset:0,borderRadius:"50%",border:`2px solid ${wH}`}),MH=bn.div({position:"absolute",inset:0,borderRadius:"50%",border:"2px solid transparent",borderTopColor:us,borderRightColor:us,animation:`${aF} 1.2s linear infinite`}),BH=bn.div({position:"absolute",inset:"12px",borderRadius:"50%",border:`1px solid ${sF}`}),DH=bn.div({position:"absolute",inset:"12px",borderRadius:"50%",border:"1px solid transparent",borderBottomColor:kH,animation:`${CH} 1.8s linear infinite`}),RH=bn.div({position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center"}),zH=bn.div({position:"absolute",inset:0,animation:`${aF} 3s linear infinite`}),NH=bn.div({position:"absolute",top:0,left:"50%",transform:"translate(-50%, -50%)",width:"8px",height:"8px",borderRadius:"50%",backgroundColor:us}),OH=()=>bt.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:us,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},bt.createElement("path",{d:"M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z"}),bt.createElement("path",{d:"M5 3v4"}),bt.createElement("path",{d:"M3 5h4"}),bt.createElement("path",{d:"M19 17v4"}),bt.createElement("path",{d:"M17 19h4"})),_H=bn.div(({theme:e})=>({fontSize:"15px",fontWeight:600,color:e.color.defaultText,letterSpacing:"-0.01em"})),$H=bn.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.textMutedColor,marginTop:"6px",maxWidth:"220px"})),UH=bn.div({display:"flex",alignItems:"center",gap:"8px",marginTop:"24px"}),Ox=bn.div(({theme:e,variant:t})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 10px",borderRadius:"999px",fontSize:"11px",fontWeight:500,...t==="done"&&{backgroundColor:e.color.positive?`${e.color.positive}1a`:"rgba(16, 185, 129, 0.1)",color:e.color.positive||"#10b981"},...t==="active"&&{backgroundColor:vH,color:us},...t==="pending"&&{backgroundColor:e.background.hoverable||"#f3f4f6",color:e.textMutedColor}})),oF=bn.div(({theme:e})=>({width:"16px",height:"1px",backgroundColor:e.appBorderColor})),iF=bn.div({width:"6px",height:"6px",borderRadius:"50%",backgroundColor:us,animation:`${FH} 1.5s ease-in-out infinite`}),jH=bn.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,marginTop:"16px"})),HH=()=>bt.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},bt.createElement("polyline",{points:"20 6 9 17 4 12"})),lF=()=>{let{streamingProgress:e}=ce(),t=(e||0)>25,[n,r]=yH(0),o=SH();return bH(()=>(o.current=setInterval(()=>r(i=>i+1),1e3),()=>clearInterval(o.current)),[]),bt.createElement(EH,null,bt.createElement(AH,null,bt.createElement(PH,null),bt.createElement(LH,null),bt.createElement(MH,null),bt.createElement(BH,null),bt.createElement(DH,null),bt.createElement(RH,null,bt.createElement(OH,null)),bt.createElement(zH,null,bt.createElement(NH,null))),bt.createElement(_H,null,"Analyzing designs"),bt.createElement($H,null,"AI is comparing screenshots and detecting issues"),bt.createElement(UH,null,bt.createElement(Ox,{variant:t?"done":"active"},t?bt.createElement(HH,null):bt.createElement(iF,null),"Screenshots"),bt.createElement(oF,null),bt.createElement(Ox,{variant:t?"active":"pending"},t?bt.createElement(iF,null):null,"Analysis"),bt.createElement(oF,null),bt.createElement(Ox,{variant:"pending"},"Report")),bt.createElement(jH,null,n,"s \xB7 Esc to stop"))};ve();var tme=st.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"4px",fontSize:"11px",color:e.textMutedColor,cursor:"pointer",padding:"4px 8px",borderRadius:"4px",backgroundColor:e.background.app,"&:hover":{backgroundColor:e.background.hoverable}})),nme=st.input(({theme:e})=>({width:"14px",height:"14px",cursor:"pointer",accentColor:ae})),YH=st.div({display:"flex",flexDirection:"column",gap:"12px",padding:"12px"}),KH=st.div({display:"flex",gap:"8px"}),cF=st(wn)({flex:1}),XH=st.div(({theme:e,isOpen:t})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderRadius:t?"8px 8px 0 0":"8px",border:`1px solid ${e.appBorderColor}`,borderBottom:t?"none":`1px solid ${e.appBorderColor}`,cursor:"pointer",transition:"background-color 0.15s ease","&:hover":{backgroundColor:e.background.hoverable}})),QH=st.div({display:"flex",alignItems:"center",gap:"10px",fontSize:"12px"}),JH=st.span(({theme:e,isOpen:t})=>({display:"flex",alignItems:"center",color:e.textMutedColor,transition:"transform 0.15s ease",transform:t?"rotate(0deg)":"rotate(-90deg)","& svg":{width:"14px",height:"14px"}})),ZH=st.div(({theme:e})=>({border:`1px solid ${e.appBorderColor}`,borderTop:"none",borderRadius:"0 0 8px 8px",display:"flex",flexDirection:"column"})),eW=st.div({display:"flex",alignItems:"center",gap:"2px"}),ou=st(Pn)({padding:"4px 8px",fontSize:"11px",fontWeight:500}),_x=st.span(({theme:e,variant:t})=>({fontSize:"11px",fontWeight:500,color:t==="critical"?e.color.negative:t==="major"?e.color.warning:e.textMutedColor})),tW=st.span(({theme:e})=>({fontWeight:600,color:e.color.defaultText})),rme=st.div(({theme:e})=>({display:"flex",gap:"12px",alignItems:"center",fontSize:"12px",color:e.textMutedColor})),qo=st.div(({theme:e,variant:t})=>{let r=(()=>{switch(t){case"total":return{bg:e.background.app,text:e.color.defaultText};case"critical":return{bg:e.background.negative,text:e.color.negative};case"major":return{bg:e.background.warning,text:e.color.warning};case"minor":return{bg:e.color.tertiary,text:ae};case"selected":return{bg:e.color.tertiary,text:ae};case"score":return{bg:e.background.positive,text:e.color.positive};case"cost":return{bg:e.background.warning,text:e.color.warning};case"timing":return{bg:e.color.tertiary,text:ae};case"tokens":return{bg:e.background.app,text:e.color.mediumdark};case"model":return{bg:e.background.app,text:e.color.mediumdark}}})();return{padding:"3px 8px",borderRadius:"10px",backgroundColor:r.bg,color:r.text,fontWeight:600,fontSize:"11px",whiteSpace:"nowrap"}}),nW=st.div({display:"flex",flexDirection:"column"}),rW=st.span(({theme:e})=>({fontSize:"11px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',color:e.textMutedColor,marginLeft:"4px"})),uF=st.div(({theme:e})=>({textAlign:"center",padding:"40px 20px",color:e.textMutedColor})),pF=st.div({fontSize:"36px",marginBottom:"12px"}),dF=st.div(({theme:e})=>({fontSize:"14px",fontWeight:600,marginBottom:"6px",color:e.textMutedColor})),gF=st.div({fontSize:"12px"}),oW=qH`
130
+ `,UH=yn.div({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"60px 20px",textAlign:"center",animation:`${_H} 0.4s ease-out`}),jH=yn.div({position:"relative",width:"80px",height:"80px",marginBottom:"32px"}),HH=yn.div({position:"absolute",inset:0,borderRadius:"50%",background:`radial-gradient(circle, ${yF} 0%, transparent 70%)`,animation:`${OH} 2s ease-in-out infinite`}),WH=yn.div({position:"absolute",inset:0,borderRadius:"50%",border:`2px solid ${DH}`}),VH=yn.div({position:"absolute",inset:0,borderRadius:"50%",border:"2px solid transparent",borderTopColor:ps,borderRightColor:ps,animation:`${bF} 1.2s linear infinite`}),GH=yn.div({position:"absolute",inset:"12px",borderRadius:"50%",border:`1px solid ${yF}`}),qH=yn.div({position:"absolute",inset:"12px",borderRadius:"50%",border:"1px solid transparent",borderBottomColor:zH,animation:`${NH} 1.8s linear infinite`}),YH=yn.div({position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center"}),KH=yn.div({position:"absolute",inset:0,animation:`${bF} 3s linear infinite`}),XH=yn.div({position:"absolute",top:0,left:"50%",transform:"translate(-50%, -50%)",width:"8px",height:"8px",borderRadius:"50%",backgroundColor:ps}),QH=()=>xt.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:ps,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},xt.createElement("path",{d:"M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z"}),xt.createElement("path",{d:"M5 3v4"}),xt.createElement("path",{d:"M3 5h4"}),xt.createElement("path",{d:"M19 17v4"}),xt.createElement("path",{d:"M17 19h4"})),JH=yn.div(({theme:e})=>({fontSize:"15px",fontWeight:600,color:e.color.defaultText,letterSpacing:"-0.01em"})),ZH=yn.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.textMutedColor,marginTop:"6px",maxWidth:"220px"})),eW=yn.div({display:"flex",alignItems:"center",gap:"8px",marginTop:"24px"}),Gx=yn.div(({theme:e,variant:t})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 10px",borderRadius:"999px",fontSize:"11px",fontWeight:500,...t==="done"&&{backgroundColor:e.color.positive?`${e.color.positive}1a`:"rgba(16, 185, 129, 0.1)",color:e.color.positive||"#10b981"},...t==="active"&&{backgroundColor:RH,color:ps},...t==="pending"&&{backgroundColor:e.background.hoverable||"#f3f4f6",color:e.textMutedColor}})),hF=yn.div(({theme:e})=>({width:"16px",height:"1px",backgroundColor:e.appBorderColor})),xF=yn.div({width:"6px",height:"6px",borderRadius:"50%",backgroundColor:ps,animation:`${$H} 1.5s ease-in-out infinite`}),tW=yn.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,marginTop:"16px"})),nW=()=>xt.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"},xt.createElement("polyline",{points:"20 6 9 17 4 12"})),SF=()=>{let{streamingProgress:e}=ue(),t=(e||0)>25,[n,r]=LH(0),o=BH();return MH(()=>(o.current=setInterval(()=>r(i=>i+1),1e3),()=>clearInterval(o.current)),[]),xt.createElement(UH,null,xt.createElement(jH,null,xt.createElement(HH,null),xt.createElement(WH,null),xt.createElement(VH,null),xt.createElement(GH,null),xt.createElement(qH,null),xt.createElement(YH,null,xt.createElement(QH,null)),xt.createElement(KH,null,xt.createElement(XH,null))),xt.createElement(JH,null,"Analyzing designs"),xt.createElement(ZH,null,"AI is comparing screenshots and detecting issues"),xt.createElement(eW,null,xt.createElement(Gx,{variant:t?"done":"active"},t?xt.createElement(nW,null):xt.createElement(xF,null),"Screenshots"),xt.createElement(hF,null),xt.createElement(Gx,{variant:t?"active":"pending"},t?xt.createElement(xF,null):null,"Analysis"),xt.createElement(hF,null),xt.createElement(Gx,{variant:"pending"},"Report")),xt.createElement(tW,null,n,"s \xB7 Esc to stop"))};ve();var yme=it.label(({theme:e})=>({display:"flex",alignItems:"center",gap:"4px",fontSize:"11px",color:e.textMutedColor,cursor:"pointer",padding:"4px 8px",borderRadius:"4px",backgroundColor:e.background.app,"&:hover":{backgroundColor:e.background.hoverable}})),bme=it.input(({theme:e})=>({width:"14px",height:"14px",cursor:"pointer",accentColor:le})),aW=it.div({display:"flex",flexDirection:"column",gap:"12px",padding:"12px"}),lW=it.div({display:"flex",gap:"8px"}),wF=it(Sn)({flex:1}),cW=it.div(({theme:e,isOpen:t})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderRadius:t?"8px 8px 0 0":"8px",border:`1px solid ${e.appBorderColor}`,borderBottom:t?"none":`1px solid ${e.appBorderColor}`,cursor:"pointer",transition:"background-color 0.15s ease","&:hover":{backgroundColor:e.background.hoverable}})),uW=it.div({display:"flex",alignItems:"center",gap:"10px",fontSize:"12px"}),pW=it.span(({theme:e,isOpen:t})=>({display:"flex",alignItems:"center",color:e.textMutedColor,transition:"transform 0.15s ease",transform:t?"rotate(0deg)":"rotate(-90deg)","& svg":{width:"14px",height:"14px"}})),dW=it.div(({theme:e})=>({border:`1px solid ${e.appBorderColor}`,borderTop:"none",borderRadius:"0 0 8px 8px",display:"flex",flexDirection:"column"})),gW=it.div({display:"flex",alignItems:"center",gap:"2px"}),pu=it(An)({padding:"4px 8px",fontSize:"11px",fontWeight:500}),qx=it.span(({theme:e,variant:t})=>({fontSize:"11px",fontWeight:500,color:t==="critical"?e.color.negative:t==="major"?e.color.warning:e.textMutedColor})),fW=it.span(({theme:e})=>({fontWeight:600,color:e.color.defaultText})),Sme=it.div(({theme:e})=>({display:"flex",gap:"12px",alignItems:"center",fontSize:"12px",color:e.textMutedColor})),Yo=it.div(({theme:e,variant:t})=>{let r=(()=>{switch(t){case"total":return{bg:e.background.app,text:e.color.defaultText};case"critical":return{bg:e.background.negative,text:e.color.negative};case"major":return{bg:e.background.warning,text:e.color.warning};case"minor":return{bg:e.color.tertiary,text:le};case"selected":return{bg:e.color.tertiary,text:le};case"score":return{bg:e.background.positive,text:e.color.positive};case"cost":return{bg:e.background.warning,text:e.color.warning};case"timing":return{bg:e.color.tertiary,text:le};case"tokens":return{bg:e.background.app,text:e.color.mediumdark};case"model":return{bg:e.background.app,text:e.color.mediumdark}}})();return{padding:"3px 8px",borderRadius:"10px",backgroundColor:r.bg,color:r.text,fontWeight:600,fontSize:"11px",whiteSpace:"nowrap"}}),mW=it.div({display:"flex",flexDirection:"column"}),hW=it.span(({theme:e})=>({fontSize:"11px",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',color:e.textMutedColor,marginLeft:"4px"})),vF=it.div(({theme:e})=>({textAlign:"center",padding:"40px 20px",color:e.textMutedColor})),kF=it.div({fontSize:"36px",marginBottom:"12px"}),CF=it.div(({theme:e})=>({fontSize:"14px",fontWeight:600,marginBottom:"6px",color:e.textMutedColor})),TF=it.div({fontSize:"12px"}),xW=sW`
131
131
  0% {
132
132
  transform: translateY(0) rotate(0deg) scale(1);
133
133
  opacity: 1;
@@ -139,35 +139,35 @@ ${P.diffPreview}
139
139
  transform: translateY(120px) rotate(720deg) scale(0.3);
140
140
  opacity: 0;
141
141
  }
142
- `;var ome=st.div({position:"relative",width:"100%",height:"60px",marginBottom:"10px",overflow:"visible"}),ime=st.span(({delay:e,left:t,color:n,size:r})=>({position:"absolute",top:"0",left:`${t}%`,width:`${r}px`,height:`${r}px`,backgroundColor:n,borderRadius:r>8?"50%":"2px",animation:`${oW} 3s ease-out ${e}s forwards`,pointerEvents:"none"}));var iW=st.div(({theme:e,variant:t})=>({display:"flex",alignItems:"center",gap:"8px",padding:"12px 16px",borderRadius:"6px",fontSize:"13px",fontWeight:600,backgroundColor:t==="success"?e.background.positive:e.background.warning,color:t==="success"?e.color.positive:e.color.warning,border:`2px solid ${t==="success"?e.color.positive:e.color.warning}`,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",animation:"slideIn 0.3s ease-out","@keyframes slideIn":{"0%":{transform:"translateY(-10px)",opacity:0},"100%":{transform:"translateY(0)",opacity:1}}})),sW=st(Pn)(({theme:e})=>({marginLeft:"auto",padding:"2px 6px",fontSize:"10px",backgroundColor:e.background.hoverable,color:e.color.defaultText})),fF=st.div({display:"flex",gap:"8px",alignItems:"center",justifyContent:"flex-end"}),mF=st(An)(({theme:e})=>({padding:"6px 12px",fontSize:"12px",backgroundColor:e.color.positive})),hF=st(an)(({theme:e,copied:t})=>({padding:"6px 12px",fontSize:"12px",minWidth:"120px",...t?{backgroundColor:e.color.positive}:{}})),xF=st(an)({padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"}),aW=st.div(({theme:e,confidence:t})=>{let n=t>=90?"#16a34a":t>=70?"#ca8a04":"#dc2626";return{padding:"10px 14px",borderRadius:"8px",border:`1px solid ${n}30`,backgroundColor:`${n}08`,marginTop:"8px",fontSize:"12px",lineHeight:1.5}}),lW=st.div({display:"flex",alignItems:"center",gap:"8px",marginBottom:"6px"}),cW=st.span(({confidence:e,theme:t})=>{let n=e>=90?"#16a34a":e>=70?"#ca8a04":"#dc2626";return{display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"10px",backgroundColor:t.base==="dark"?e>=90?"rgba(22, 163, 74, 0.18)":e>=70?"rgba(202, 138, 4, 0.18)":"rgba(220, 38, 38, 0.18)":e>=90?"#dcfce7":e>=70?"#fef9c3":"#fee2e2",color:n,fontSize:"11px",fontWeight:700}}),uW=st.span(({theme:e})=>({fontSize:"11px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px"})),pW=st.div(({theme:e})=>({color:e.color.defaultText,fontSize:"12px","& ul":{margin:"4px 0",paddingLeft:"16px"},"& li":{marginBottom:"2px"}})),iu=st.div(({theme:e})=>({marginTop:"6px","&:first-of-type":{marginTop:0}})),su=st.span(({theme:e})=>({fontWeight:600,color:e.textMutedColor,fontSize:"11px"})),dW=e=>{if(["layout","content"].includes(e.type))return!0;if(e.type==="typography"){let n=(e.description||"").toLowerCase(),r=(e.property||"").toLowerCase();if(n.includes("text content")||n.includes("text differs")||r.includes("content")||r.includes("innerhtml")||r.includes("textcontent"))return!0}return!1},yF=({issues:e,modelId:t,complianceScore:n,visualSimilarity:r,costUsd:o,reviewDurationMs:i,inputTokens:s,outputTokens:a,cacheCreationTokens:u,cacheReadTokens:c,onToggleSelection:l,onSelectAll:d,onSelectNone:g,onSelectAllFixes:p,onApplyFixes:m,onApplyFix:b,onCopyAllFixes:F,onGenerateFixes:E,onDismiss:v,onUndismiss:D,isGenerating:O=!1,isApplying:$=!1,isCopying:L=!1,applyFixesResult:N,onDismissResult:x,generationTiming:S,generationUsage:w,generationProgress:P,autoApplySupported:f=!0,hasReviewBeenRun:k=!1,isLoadingReview:T=!1,isReviewing:h=!1,selfReview:I})=>{let[A,M]=q.useState("all"),[z,C]=q.useState("all"),[R,W]=q.useState(!1),[B,ie]=q.useState(!0),{includeComponentIssues:Y,setIncludeComponentIssues:se,featureFlags:me}=ce(),Fe=q.useRef(null),[et,ee]=VH(0);GH(()=>{if(!O){ee(0);return}let ne=setInterval(()=>ee(Ke=>Ke+1),1e3);return()=>clearInterval(ne)},[O]);let Ee=async()=>{let ne=Te.map(H=>{let Z=[`[${H.severity.toUpperCase()}] ${H.title||H.description}`,`Status: ${H.status}`,H.description&&H.description!==H.title?`Description: ${H.description}`:"",H.property?`Property: ${H.property}`:"",H.currentValue?`Current: ${H.currentValue}`:"",H.suggestedValue?`Expected: ${H.suggestedValue}`:"",H.file?`File: ${H.file}${H.lineNumber!==void 0?`:${H.lineNumber}`:""}`:"",H.suggestedCode?`Suggested code: ${H.suggestedCode}`:""];if(H.generatedFix){let re=H.generatedFix;if(Z.push(""),Z.push("--- AI-Generated Fix ---"),Z.push(`Fix Status: ${re.status}`),re.confidence!==void 0){let Oe=re.confidence>1?re.confidence:Math.round(re.confidence*100);Z.push(`Confidence: ${Oe}%`)}re.strategy&&Z.push(`Strategy: ${re.strategy}`),re.filePath&&Z.push(`Target file: ${re.filePath}`),re.code&&Z.push(`Generated code:
143
- ${re.code}`),re.diffPreview&&Z.push(`Diff:
144
- ${re.diffPreview}`),re.error&&Z.push(`Error: ${re.error}`)}return Z.push(""),Z.filter(Boolean).join(`
142
+ `;var wme=it.div({position:"relative",width:"100%",height:"60px",marginBottom:"10px",overflow:"visible"}),vme=it.span(({delay:e,left:t,color:n,size:r})=>({position:"absolute",top:"0",left:`${t}%`,width:`${r}px`,height:`${r}px`,backgroundColor:n,borderRadius:r>8?"50%":"2px",animation:`${xW} 3s ease-out ${e}s forwards`,pointerEvents:"none"}));var yW=it.div(({theme:e,variant:t})=>({display:"flex",alignItems:"center",gap:"8px",padding:"12px 16px",borderRadius:"6px",fontSize:"13px",fontWeight:600,backgroundColor:t==="success"?e.background.positive:e.background.warning,color:t==="success"?e.color.positive:e.color.warning,border:`2px solid ${t==="success"?e.color.positive:e.color.warning}`,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",animation:"slideIn 0.3s ease-out","@keyframes slideIn":{"0%":{transform:"translateY(-10px)",opacity:0},"100%":{transform:"translateY(0)",opacity:1}}})),bW=it(An)(({theme:e})=>({marginLeft:"auto",padding:"2px 6px",fontSize:"10px",backgroundColor:e.background.hoverable,color:e.color.defaultText})),IF=it.div({display:"flex",gap:"8px",alignItems:"center",justifyContent:"flex-end"}),FF=it(En)(({theme:e})=>({padding:"6px 12px",fontSize:"12px",backgroundColor:e.color.positive})),EF=it(on)(({theme:e,copied:t})=>({padding:"6px 12px",fontSize:"12px",minWidth:"120px",...t?{backgroundColor:e.color.positive}:{}})),AF=it(on)({padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"}),SW=it.div(({theme:e,confidence:t})=>{let n=t>=90?"#16a34a":t>=70?"#ca8a04":"#dc2626";return{padding:"10px 14px",borderRadius:"8px",border:`1px solid ${n}30`,backgroundColor:`${n}08`,marginTop:"8px",fontSize:"12px",lineHeight:1.5}}),wW=it.div({display:"flex",alignItems:"center",gap:"8px",marginBottom:"6px"}),vW=it.span(({confidence:e,theme:t})=>{let n=e>=90?"#16a34a":e>=70?"#ca8a04":"#dc2626";return{display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"10px",backgroundColor:t.base==="dark"?e>=90?"rgba(22, 163, 74, 0.18)":e>=70?"rgba(202, 138, 4, 0.18)":"rgba(220, 38, 38, 0.18)":e>=90?"#dcfce7":e>=70?"#fef9c3":"#fee2e2",color:n,fontSize:"11px",fontWeight:700}}),kW=it.span(({theme:e})=>({fontSize:"11px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px"})),CW=it.div(({theme:e})=>({color:e.color.defaultText,fontSize:"12px","& ul":{margin:"4px 0",paddingLeft:"16px"},"& li":{marginBottom:"2px"}})),du=it.div(({theme:e})=>({marginTop:"6px","&:first-of-type":{marginTop:0}})),gu=it.span(({theme:e})=>({fontWeight:600,color:e.textMutedColor,fontSize:"11px"})),TW=e=>{if(["layout","content"].includes(e.type))return!0;if(e.type==="typography"){let n=(e.description||"").toLowerCase(),r=(e.property||"").toLowerCase();if(n.includes("text content")||n.includes("text differs")||r.includes("content")||r.includes("innerhtml")||r.includes("textcontent"))return!0}return!1},PF=({issues:e,modelId:t,complianceScore:n,visualSimilarity:r,costUsd:o,reviewDurationMs:i,inputTokens:s,outputTokens:a,cacheCreationTokens:u,cacheReadTokens:c,onToggleSelection:l,onSelectAll:d,onSelectNone:g,onSelectAllFixes:p,onApplyFixes:m,onApplyFix:b,onCopyAllFixes:I,onGenerateFixes:E,onDismiss:k,onUndismiss:D,isGenerating:N=!1,isApplying:$=!1,isCopying:L=!1,applyFixesResult:R,onDismissResult:h,generationTiming:S,generationUsage:w,generationProgress:A,autoApplySupported:f=!0,hasReviewBeenRun:v=!1,isLoadingReview:F=!1,isReviewing:x=!1,selfReview:C})=>{let[P,B]=q.useState("all"),[O,T]=q.useState("all"),[z,W]=q.useState(!1),[M,ie]=q.useState(!0),{includeComponentIssues:Y,setIncludeComponentIssues:se,featureFlags:xe}=ue(),Pe=q.useRef(null),[Ye,te]=oW(0);iW(()=>{if(!N){te(0);return}let Z=setInterval(()=>te(ge=>ge+1),1e3);return()=>clearInterval(Z)},[N]);let Ie=async()=>{let Z=Te.map(H=>{let X=[`[${H.severity.toUpperCase()}] ${H.title||H.description}`,`Status: ${H.status}`,H.description&&H.description!==H.title?`Description: ${H.description}`:"",H.property?`Property: ${H.property}`:"",H.currentValue?`Current: ${H.currentValue}`:"",H.suggestedValue?`Expected: ${H.suggestedValue}`:"",H.file?`File: ${H.file}${H.lineNumber!==void 0?`:${H.lineNumber}`:""}`:"",H.suggestedCode?`Suggested code: ${H.suggestedCode}`:""];if(H.generatedFix){let re=H.generatedFix;if(X.push(""),X.push("--- AI-Generated Fix ---"),X.push(`Fix Status: ${re.status}`),re.confidence!==void 0){let Oe=re.confidence>1?re.confidence:Math.round(re.confidence*100);X.push(`Confidence: ${Oe}%`)}re.strategy&&X.push(`Strategy: ${re.strategy}`),re.filePath&&X.push(`Target file: ${re.filePath}`),re.code&&X.push(`Generated code:
143
+ ${re.code}`),re.diffPreview&&X.push(`Diff:
144
+ ${re.diffPreview}`),re.error&&X.push(`Error: ${re.error}`)}return X.push(""),X.filter(Boolean).join(`
145
145
  `)}).join(`
146
146
  ---
147
147
 
148
- `),Ke=Te.filter(H=>H.generatedFix?.status==="applied").length,gt=Te.filter(H=>H.generatedFix?.status==="ready").length,Ge=Ke>0||gt>0?` | Fixes: ${Ke} applied, ${gt} ready`:"",_=r!==void 0?` | Similarity: ${r}%`:"",j=`Score: ${n}/100${_} | ${Te.length} issues${Ge}
148
+ `),ge=Te.filter(H=>H.generatedFix?.status==="applied").length,Tt=Te.filter(H=>H.generatedFix?.status==="ready").length,et=ge>0||Tt>0?` | Fixes: ${ge} applied, ${Tt} ready`:"",_=r!==void 0?` | Similarity: ${r}%`:"",j=`Score: ${n}/100${_} | ${Te.length} issues${et}
149
149
 
150
- `;try{await navigator.clipboard.writeText(j+ne),W(!0),setTimeout(()=>W(!1),2e3)}catch(H){console.error("Failed to copy:",H)}};q.useEffect(()=>{N&&Fe.current&&Fe.current.scrollIntoView({behavior:"smooth",block:"start"})},[N]);let Te=WH(()=>e.filter(ne=>{let Ke=A==="all"||ne.severity===A,gt=z==="all"||ne.status===z,Ge=Y||!dW(ne);return Ke&&gt&&Ge}),[e,A,z,Y]),ue=()=>{Te.forEach(ne=>{ne.selectedForFix||l(ne.id)})},Be=()=>{Te.forEach(ne=>{ne.selectedForFix&&l(ne.id)})},ge=()=>{Te.forEach(ne=>{ne.generatedFix&&ne.generatedFix.status==="ready"&&!ne.selectedForFix&&l(ne.id)})},tt=Te.filter(ne=>ne.selectedForFix).length,xt=Te.filter(ne=>ne.severity==="critical").length,Sn=Te.filter(ne=>ne.severity==="major").length,xe=Te.filter(ne=>ne.severity==="minor").length,St=Te.filter(ne=>ne.generatedFix&&ne.generatedFix.status==="ready").length,fe=Te.filter(ne=>ne.selectedForFix&&ne.generatedFix&&ne.generatedFix.status==="ready").length;return e.length===0?T?q.createElement(ru,{label:"Loading review..."}):h?q.createElement(lF,null):q.createElement(uF,null,q.createElement(pF,null,k?"\u2728":"\u{1F441}\uFE0F"),q.createElement(dF,null,k?"No issues found":"No review yet"),q.createElement(gF,null,k?"This review didn't detect any issues. Great work!":'Click the "Review" button to analyze your component.')):q.createElement(YH,{"data-testid":"issues-panel"},q.createElement(KH,null,q.createElement(cF,{value:A,onChange:ne=>M(ne.target.value)},q.createElement("option",{value:"all"},"All Severities"),q.createElement("option",{value:"critical"},"Critical Only"),q.createElement("option",{value:"major"},"Major Only"),q.createElement("option",{value:"minor"},"Minor Only")),q.createElement(cF,{value:z,onChange:ne=>C(ne.target.value)},q.createElement("option",{value:"all"},"All Statuses"),q.createElement("option",{value:"pending"},"Pending"),q.createElement("option",{value:"applied"},"Applied"),q.createElement("option",{value:"verified"},"Verified"),q.createElement("option",{value:"failed"},"Failed"))),q.createElement("div",null,q.createElement(XH,{isOpen:B,onClick:()=>ie(!B)},q.createElement(QH,null,q.createElement(JH,{isOpen:B},q.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},q.createElement("polyline",{points:"6 9 12 15 18 9"}))),q.createElement(tW,null,Te.length," issues"),(()=>{if(Te.length===0)return null;let ne=Te.map(Ge=>Ge.generatedFix?.filePath||Ge.file).filter(Boolean);if(ne.length===0)return null;let Ke=ne[0];return ne.every(Ge=>Ge===Ke)?q.createElement(rW,null,"in ",Ke):null})(),q.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},xt>0&&q.createElement(_x,{variant:"critical"},xt," critical"),Sn>0&&q.createElement(_x,{variant:"major"},Sn," major"),xe>0&&q.createElement(_x,{variant:"minor"},xe," minor"))),q.createElement(eW,{onClick:ne=>ne.stopPropagation()},q.createElement(ou,{onClick:ue},"All"),q.createElement(ou,{onClick:Be},"None"),q.createElement(ou,{onClick:Ee},R?"\u2713":"\u2398"," Copy"),St>0&&q.createElement(ou,{onClick:ge},"Fixes (",St,")"))),N&&q.createElement(iW,{ref:Fe,variant:N.error||N.failed>0?"warning":"success"},N.error?q.createElement(q.Fragment,null,N.error):N.failed>0?q.createElement(q.Fragment,null,"Applied ",N.succeeded,"/",N.total," ","fixes. ",N.failed," failed. Run a new review to verify."):q.createElement(q.Fragment,null,"Applied ",N.total," fix",N.total!==1?"es":"","! Run a new review to verify changes."),x&&q.createElement(sW,{onClick:x},"\u2715")),tt>0&&q.createElement(fF,null,S&&q.createElement(qo,{variant:"timing"},S.durationSec,"s (",S.issueCount," ","fixes)"),w&&q.createElement(q.Fragment,null,q.createElement(qo,{variant:"cost"},"$",w.costUsd.toFixed(3)," / \u20AA",(w.costUsd*3.65).toFixed(2)),q.createElement(qo,{variant:"tokens",title:`Input: ${w.inputTokens.toLocaleString()} \xB7 Output: ${w.outputTokens.toLocaleString()}`},"#"," ",((w.inputTokens+w.outputTokens)/1e3).toFixed(1),"K"),q.createElement(qo,{variant:"model",title:w.modelId},w.modelId.replace("claude-","").replace(/-\d{8}$/,""))),me.enableFixGeneration&&E&&q.createElement(xF,{disabled:O||$||L,onClick:E},q.createElement("span",null,"\u{1F916}"),O&&P?`Generating ${P.completed}/${P.total}... (${et}s)`:O?`Generating... (${et}s)`:`Generate Fixes for ${tt} Issue${tt>1?"s":""}`),me.enableFixApply&&f&&m&&q.createElement(mF,{disabled:O||$||fe===0,onClick:m},$?"Applying...":O?"Generating...":fe>0?`Apply ${fe} Ready Fix${fe>1?"es":""}`:"Apply Fixes (generate first)"),me.enableFixApply&&!f&&F&&q.createElement(hF,{disabled:O||L||fe===0,copied:L,onClick:F},L?"Copied!":fe>0?`Copy ${fe} Fix${fe>1?"es":""}`:"Copy Fixes (generate first)")),I&&!O&&q.createElement(aW,{confidence:I.overallConfidence},q.createElement(lW,null,q.createElement(uW,null,"AI Self-Review"),q.createElement(cW,{confidence:I.overallConfidence},I.wouldReachPerfect?"\u2713":"\u25B3"," ",I.overallConfidence,"% confidence")),q.createElement(pW,null,I.variantSafety&&q.createElement(iu,null,q.createElement(su,null,"Variant safety:"," "),I.variantSafety),I.gaps.length>0&&q.createElement(iu,null,q.createElement(su,null,"Gaps: "),q.createElement("ul",null,I.gaps.map((ne,Ke)=>q.createElement("li",{key:Ke},ne)))),!I.wouldReachPerfect&&I.reasonsNotPerfect.length>0&&q.createElement(iu,null,q.createElement(su,null,"Why not 100%:"," "),q.createElement("ul",null,I.reasonsNotPerfect.map((ne,Ke)=>q.createElement("li",{key:Ke},ne)))),I.suggestions&&I.suggestions.length>0&&q.createElement(iu,null,q.createElement(su,null,"Suggestions: "),q.createElement("ul",null,I.suggestions.map((ne,Ke)=>q.createElement("li",{key:Ke},ne)))))),B&&q.createElement(ZH,null,Te.length===0?q.createElement(uF,null,q.createElement(pF,null,"\u{1F50D}"),q.createElement(dF,null,"No issues match current filters"),q.createElement(gF,null,"Try adjusting your severity or status filters")):q.createElement(nW,null,(()=>{let ne={};Te.forEach(j=>{let H=j.detectedBy;H&&(ne[H]=(ne[H]||0)+1)});let Ke=Object.entries(ne).sort((j,H)=>H[1]-j[1])[0],gt=Ke&&Ke[1]>Te.length/2?Ke[0]:void 0,Ge=Te.map(j=>j.generatedFix?.filePath||j.file).filter(Boolean),_=Ge.length>0&&Ge.every(j=>j===Ge[0]);return Te.map(j=>q.createElement(rF,{key:j.id,issue:j,modelId:t,dominantDetector:gt,showFilePath:!_,onToggleSelection:l,onDismiss:v,onUndismiss:D,onApplyFix:b}))})()))),tt>0&&q.createElement(fF,null,S&&q.createElement(qo,{variant:"timing"},S.durationSec,"s (",S.issueCount," ","fixes)"),w&&q.createElement(q.Fragment,null,q.createElement(qo,{variant:"cost"},"$",w.costUsd.toFixed(3)," / \u20AA",(w.costUsd*3.65).toFixed(2)),q.createElement(qo,{variant:"tokens",title:`Input: ${w.inputTokens.toLocaleString()} \xB7 Output: ${w.outputTokens.toLocaleString()}`},"#"," ",((w.inputTokens+w.outputTokens)/1e3).toFixed(1),"K"),q.createElement(qo,{variant:"model",title:w.modelId},w.modelId.replace("claude-","").replace(/-\d{8}$/,""))),me.enableFixGeneration&&E&&q.createElement(xF,{disabled:O||$||L,onClick:E},q.createElement("span",null,"\u{1F916}"),O&&P?`Generating ${P.completed}/${P.total}... (${et}s)`:O?`Generating... (${et}s)`:`Generate Fixes for ${tt} Issue${tt>1?"s":""}`),me.enableFixApply&&f&&m&&q.createElement(mF,{disabled:O||$||fe===0,onClick:m},$?"Applying...":O?"Generating...":fe>0?`Apply ${fe} Ready Fix${fe>1?"es":""}`:"Apply Fixes (generate first)"),me.enableFixApply&&!f&&F&&q.createElement(hF,{disabled:O||L||fe===0,copied:L,onClick:F},L?"Copied!":fe>0?`Copy ${fe} Fix${fe>1?"es":""}`:"Copy Fixes (generate first)")))};Ne();var gW=At.div({display:"flex",flexDirection:"column"}),fW=At.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.background.positive,borderBottom:`1px solid ${e.appBorderColor}`,display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"})),mW=At.span(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.positive})),$x=At.span(({theme:e,variant:t})=>{let n={resolved:{bg:e.background.positive,text:e.color.positive},remaining:{bg:e.background.warning,text:e.color.warning},new:{bg:e.color.tertiary,text:ae}};return{padding:"2px 8px",borderRadius:"10px",fontSize:"11px",fontWeight:600,backgroundColor:n[t].bg,color:n[t].text}}),hW=At.span(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,marginLeft:"auto"})),xme=At.div(({theme:e})=>({textAlign:"center",padding:"60px 20px",color:e.textMutedColor})),yme=At.div({fontSize:"48px",marginBottom:"16px"}),bme=At.div(({theme:e})=>({fontSize:"16px",fontWeight:600,marginBottom:"8px",color:e.color.defaultText})),Sme=At.div({fontSize:"14px",opacity:.8}),xW=At.div(({theme:e})=>({borderTop:`1px solid ${e.appBorderColor}`,marginTop:"8px"})),yW=At.div(({theme:e})=>({width:"100%",display:"flex",alignItems:"center",gap:"8px",padding:"12px 16px",backgroundColor:e.background.app,fontSize:"12px",color:e.textMutedColor})),bW=At(Pn)({display:"flex",gap:"8px",padding:"0",fontSize:"12px"}),SW=At(Or)(({theme:e})=>({marginLeft:"auto",padding:"4px 10px",fontSize:"11px",color:e.color.secondary})),wW=At.span(({theme:e})=>({backgroundColor:e.color.medium,color:e.textMutedColor,padding:"2px 8px",borderRadius:"10px",fontSize:"11px",fontWeight:600})),vW=At.div(({theme:e})=>({padding:"8px 16px",backgroundColor:e.background.app})),kW=At.div(({theme:e})=>({padding:"12px 14px",marginBottom:"8px",backgroundColor:e.background.content,borderRadius:"6px",border:`1px solid ${e.appBorderColor}`})),CW=At.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"4px"}),TW=At.button(({theme:e})=>({background:"none",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",padding:"2px 8px",fontSize:"11px",color:e.color.mediumdark,cursor:"pointer","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText,borderColor:e.color.secondary}})),IW=At.div(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText,lineHeight:"1.4"})),FW=At.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,marginTop:"8px",paddingTop:"8px",borderTop:`1px solid ${e.appBorderColor}`,lineHeight:"1.4"})),EW=At.div(({theme:e})=>({fontSize:"11px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px",padding:"12px 0 8px 0",marginTop:"8px",borderBottom:`1px solid ${e.appBorderColor}`,display:"flex",alignItems:"center",gap:"8px","&:first-of-type":{marginTop:0}})),AW=At.span(({theme:e})=>({fontSize:"10px",fontWeight:600,color:e.textMutedColor,backgroundColor:e.background.hoverable,padding:"2px 6px",borderRadius:"8px"})),au={"false-positive":{icon:"\u2715",label:"False positive",group:"False Positive"},planned:{icon:"\u25F7",label:"Planned",group:"Planned"},"wont-fix":{icon:"\u2298",label:"Won't fix",group:"Won't Fix"},"no-figma-state":{icon:"\u25FB",label:"No Figma state",group:"No Figma State"},"design-pending":{icon:"\u2726",label:"Design pending",group:"Design Pending"}},wF=e=>{if(!e)return{categoryId:null,note:""};let t=e.indexOf(": "),n=t>-1?e.slice(0,t):e.trim();return au[n]?{categoryId:n,note:t>-1?e.slice(t+2):""}:{categoryId:null,note:e}},PW=e=>{if(!e)return"Other";let{categoryId:t}=wF(e);if(t&&au[t])return au[t].group;let n=e.toLowerCase();return n.includes("hug")||n.includes("fill")||n.includes("content-driven")?"HUG/FILL Sizing":n.includes("sub-pixel")||n.includes("negligible")?"Sub-pixel Differences":n.includes("values match")||n.includes("values already match")||n.includes("identical")?"Values Match":n.includes("no fix needed")||n.includes("no changes needed")?"No Fix Needed":"Other"},bF=e=>{if(!e)return"";let t=e.replace(/^Auto-dismissed:\s*/i,"").replace(/^Programmatic:\s*/i,"").replace(/^Two-Pass:\s*/i,"");return t=t.replace(/Sub-pixel difference \([\d.]+px\) - within [\d.]+px tolerance/i,"Sub-pixel difference").replace(/Dimension issue with HUG\/FILL sizing - width is content-driven, not fixed/i,"Width is content-driven").replace(/Height issue with HUG sizing - dimension is content-driven, not actionable/i,"Height is content-driven").replace(/Width issue with HUG sizing - dimension is content-driven, not actionable/i,"Width is content-driven").replace(/no-changes-needed - values already match/i,"Values already match").replace(/Values are the same - no difference/i,"Values match"),t},LW=At.span(({theme:e,phase:t})=>{let n={"post-ai-validation":{bg:"#4b5563",text:"#ffffff"},"ai-validation":{bg:"#0369a1",text:"#ffffff"},user:{bg:"#7c3aed",text:"#ffffff"}},{bg:r,text:o}=n[t]||n["post-ai-validation"];return{display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"11px",fontWeight:600,color:o,backgroundColor:r,padding:"3px 10px",borderRadius:"10px",marginBottom:"8px"}}),MW=At.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"8px",marginLeft:"8px",fontSize:"11px",color:e.textMutedColor,"& > span":{display:"inline-flex",alignItems:"center",gap:"3px"}})),jx=e=>{if(!e)return;let t=e.toLowerCase();if(t.includes("no-changes-needed")||t.includes("values already match")||t.includes("sub-pixel")||t.includes("negligible")||t.includes("hug")||t.includes("fill")||t.includes("content-driven")||t.includes("equivalent")||t.includes("layout mechanism"))return"post-ai-validation"},BW=(e,t)=>{switch(e||jx(t)){case"post-ai-validation":return"\u2699\uFE0F";case"ai-validation":return"\u2726";case"user":return"\u{1F464}";default:return"\u2699\uFE0F"}},SF=(e,t)=>{switch(e||jx(t)){case"post-ai-validation":return"Pre-filter";case"ai-validation":return"Auto";case"user":return"Manual";default:return"Auto"}},DW=At.div(({theme:e})=>({padding:"20px",margin:"20px",backgroundColor:e.background.negative,borderRadius:"8px",borderLeft:`4px solid ${e.color.negative}`})),RW=At.h3(({theme:e})=>({fontSize:"16px",fontWeight:600,color:e.color.negative,marginTop:0,marginBottom:"8px"})),zW=At.pre(({theme:e})=>({fontSize:"12px",color:e.color.negative,backgroundColor:e.background.app,padding:"12px",borderRadius:"4px",overflow:"auto",maxHeight:"200px",fontFamily:"monospace",lineHeight:"1.5"})),NW=At(fy)({marginTop:"12px"}),Ux=class extends ze.Component{constructor(n){super(n);this.handleReset=()=>{this.setState({hasError:!1,error:null})};this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){y.error("[IssuesPanel ErrorBoundary] Caught error:",n,r)}render(){return this.state.hasError?ze.createElement(DW,null,ze.createElement(RW,null,"\u26A0\uFE0F Issues Panel Error"),ze.createElement("p",null,"Something went wrong displaying the issues. This might happen if a fix failed or there's invalid data."),ze.createElement(zW,null,this.state.error?.message||"Unknown error",`
150
+ `;try{await navigator.clipboard.writeText(j+Z),W(!0),setTimeout(()=>W(!1),2e3)}catch(H){console.error("Failed to copy:",H)}};q.useEffect(()=>{R&&Pe.current&&Pe.current.scrollIntoView({behavior:"smooth",block:"start"})},[R]);let Te=rW(()=>e.filter(Z=>{let ge=P==="all"||Z.severity===P,Tt=O==="all"||Z.status===O,et=Y||!TW(Z);return ge&&Tt&&et}),[e,P,O,Y]),pe=()=>{Te.forEach(Z=>{Z.selectedForFix||l(Z.id)})},Be=()=>{Te.forEach(Z=>{Z.selectedForFix&&l(Z.id)})},me=()=>{Te.forEach(Z=>{Z.generatedFix&&Z.generatedFix.status==="ready"&&!Z.selectedForFix&&l(Z.id)})},Ze=Te.filter(Z=>Z.selectedForFix).length,mt=Te.filter(Z=>Z.severity==="critical").length,bn=Te.filter(Z=>Z.severity==="major").length,br=Te.filter(Z=>Z.severity==="minor").length,rr=Te.filter(Z=>Z.generatedFix&&Z.generatedFix.status==="ready").length,ae=Te.filter(Z=>Z.selectedForFix&&Z.generatedFix&&Z.generatedFix.status==="ready").length;return e.length===0?F?q.createElement(uu,{label:"Loading review..."}):x?q.createElement(SF,null):q.createElement(vF,null,q.createElement(kF,null,v?"\u2728":"\u{1F441}\uFE0F"),q.createElement(CF,null,v?"No issues found":"No review yet"),q.createElement(TF,null,v?"This review didn't detect any issues. Great work!":'Click the "Review" button to analyze your component.')):q.createElement(aW,{"data-testid":"issues-panel"},q.createElement(lW,null,q.createElement(wF,{value:P,onChange:Z=>B(Z.target.value)},q.createElement("option",{value:"all"},"All Severities"),q.createElement("option",{value:"critical"},"Critical Only"),q.createElement("option",{value:"major"},"Major Only"),q.createElement("option",{value:"minor"},"Minor Only")),q.createElement(wF,{value:O,onChange:Z=>T(Z.target.value)},q.createElement("option",{value:"all"},"All Statuses"),q.createElement("option",{value:"pending"},"Pending"),q.createElement("option",{value:"applied"},"Applied"),q.createElement("option",{value:"verified"},"Verified"),q.createElement("option",{value:"failed"},"Failed"))),q.createElement("div",null,q.createElement(cW,{isOpen:M,onClick:()=>ie(!M)},q.createElement(uW,null,q.createElement(pW,{isOpen:M},q.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},q.createElement("polyline",{points:"6 9 12 15 18 9"}))),q.createElement(fW,null,Te.length," issues"),(()=>{if(Te.length===0)return null;let Z=Te.map(et=>et.generatedFix?.filePath||et.file).filter(Boolean);if(Z.length===0)return null;let ge=Z[0];return Z.every(et=>et===ge)?q.createElement(hW,null,"in ",ge):null})(),q.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},mt>0&&q.createElement(qx,{variant:"critical"},mt," critical"),bn>0&&q.createElement(qx,{variant:"major"},bn," major"),br>0&&q.createElement(qx,{variant:"minor"},br," minor"))),q.createElement(gW,{onClick:Z=>Z.stopPropagation()},q.createElement(pu,{onClick:pe},"All"),q.createElement(pu,{onClick:Be},"None"),q.createElement(pu,{onClick:Ie},z?"\u2713":"\u2398"," Copy"),rr>0&&q.createElement(pu,{onClick:me},"Fixes (",rr,")"))),R&&q.createElement(yW,{ref:Pe,variant:R.error||R.failed>0?"warning":"success"},R.error?q.createElement(q.Fragment,null,R.error):R.failed>0?q.createElement(q.Fragment,null,"Applied ",R.succeeded,"/",R.total," ","fixes. ",R.failed," failed. Run a new review to verify."):q.createElement(q.Fragment,null,"Applied ",R.total," fix",R.total!==1?"es":"","! Run a new review to verify changes."),h&&q.createElement(bW,{onClick:h},"\u2715")),Ze>0&&q.createElement(IF,null,S&&q.createElement(Yo,{variant:"timing"},S.durationSec,"s (",S.issueCount," ","fixes)"),w&&q.createElement(q.Fragment,null,q.createElement(Yo,{variant:"cost"},"$",w.costUsd.toFixed(3)," / \u20AA",(w.costUsd*3.65).toFixed(2)),q.createElement(Yo,{variant:"tokens",title:`Input: ${w.inputTokens.toLocaleString()} \xB7 Output: ${w.outputTokens.toLocaleString()}`},"#"," ",((w.inputTokens+w.outputTokens)/1e3).toFixed(1),"K"),q.createElement(Yo,{variant:"model",title:w.modelId},w.modelId.replace("claude-","").replace(/-\d{8}$/,""))),xe.enableFixGeneration&&E&&q.createElement(AF,{disabled:N||$||L,onClick:E},q.createElement("span",null,"\u{1F916}"),N&&A?`Generating ${A.completed}/${A.total}... (${Ye}s)`:N?`Generating... (${Ye}s)`:`Generate Fixes for ${Ze} Issue${Ze>1?"s":""}`),xe.enableFixApply&&f&&m&&q.createElement(FF,{disabled:N||$||ae===0,onClick:m},$?"Applying...":N?"Generating...":ae>0?`Apply ${ae} Ready Fix${ae>1?"es":""}`:"Apply Fixes (generate first)"),xe.enableFixApply&&!f&&I&&q.createElement(EF,{disabled:N||L||ae===0,copied:L,onClick:I},L?"Copied!":ae>0?`Copy ${ae} Fix${ae>1?"es":""}`:"Copy Fixes (generate first)")),C&&!N&&q.createElement(SW,{confidence:C.overallConfidence},q.createElement(wW,null,q.createElement(kW,null,"AI Self-Review"),q.createElement(vW,{confidence:C.overallConfidence},C.wouldReachPerfect?"\u2713":"\u25B3"," ",C.overallConfidence,"% confidence")),q.createElement(CW,null,C.variantSafety&&q.createElement(du,null,q.createElement(gu,null,"Variant safety:"," "),C.variantSafety),C.gaps.length>0&&q.createElement(du,null,q.createElement(gu,null,"Gaps: "),q.createElement("ul",null,C.gaps.map((Z,ge)=>q.createElement("li",{key:ge},Z)))),!C.wouldReachPerfect&&C.reasonsNotPerfect.length>0&&q.createElement(du,null,q.createElement(gu,null,"Why not 100%:"," "),q.createElement("ul",null,C.reasonsNotPerfect.map((Z,ge)=>q.createElement("li",{key:ge},Z)))),C.suggestions&&C.suggestions.length>0&&q.createElement(du,null,q.createElement(gu,null,"Suggestions: "),q.createElement("ul",null,C.suggestions.map((Z,ge)=>q.createElement("li",{key:ge},Z)))))),M&&q.createElement(dW,null,Te.length===0?q.createElement(vF,null,q.createElement(kF,null,"\u{1F50D}"),q.createElement(CF,null,"No issues match current filters"),q.createElement(TF,null,"Try adjusting your severity or status filters")):q.createElement(mW,null,(()=>{let Z={};Te.forEach(j=>{let H=j.detectedBy;H&&(Z[H]=(Z[H]||0)+1)});let ge=Object.entries(Z).sort((j,H)=>H[1]-j[1])[0],Tt=ge&&ge[1]>Te.length/2?ge[0]:void 0,et=Te.map(j=>j.generatedFix?.filePath||j.file).filter(Boolean),_=et.length>0&&et.every(j=>j===et[0]);return Te.map(j=>q.createElement(mF,{key:j.id,issue:j,modelId:t,dominantDetector:Tt,showFilePath:!_,onToggleSelection:l,onDismiss:k,onUndismiss:D,onApplyFix:b}))})()))),Ze>0&&q.createElement(IF,null,S&&q.createElement(Yo,{variant:"timing"},S.durationSec,"s (",S.issueCount," ","fixes)"),w&&q.createElement(q.Fragment,null,q.createElement(Yo,{variant:"cost"},"$",w.costUsd.toFixed(3)," / \u20AA",(w.costUsd*3.65).toFixed(2)),q.createElement(Yo,{variant:"tokens",title:`Input: ${w.inputTokens.toLocaleString()} \xB7 Output: ${w.outputTokens.toLocaleString()}`},"#"," ",((w.inputTokens+w.outputTokens)/1e3).toFixed(1),"K"),q.createElement(Yo,{variant:"model",title:w.modelId},w.modelId.replace("claude-","").replace(/-\d{8}$/,""))),xe.enableFixGeneration&&E&&q.createElement(AF,{disabled:N||$||L,onClick:E},q.createElement("span",null,"\u{1F916}"),N&&A?`Generating ${A.completed}/${A.total}... (${Ye}s)`:N?`Generating... (${Ye}s)`:`Generate Fixes for ${Ze} Issue${Ze>1?"s":""}`),xe.enableFixApply&&f&&m&&q.createElement(FF,{disabled:N||$||ae===0,onClick:m},$?"Applying...":N?"Generating...":ae>0?`Apply ${ae} Ready Fix${ae>1?"es":""}`:"Apply Fixes (generate first)"),xe.enableFixApply&&!f&&I&&q.createElement(EF,{disabled:N||L||ae===0,copied:L,onClick:I},L?"Copied!":ae>0?`Copy ${ae} Fix${ae>1?"es":""}`:"Copy Fixes (generate first)")))};Ne();var IW=Ft.div({display:"flex",flexDirection:"column"}),FW=Ft.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.background.positive,borderBottom:`1px solid ${e.appBorderColor}`,display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"})),EW=Ft.span(({theme:e})=>({fontSize:"12px",fontWeight:600,color:e.color.positive})),Yx=Ft.span(({theme:e,variant:t})=>{let n={resolved:{bg:e.background.positive,text:e.color.positive},remaining:{bg:e.background.warning,text:e.color.warning},new:{bg:e.color.tertiary,text:le}};return{padding:"2px 8px",borderRadius:"10px",fontSize:"11px",fontWeight:600,backgroundColor:n[t].bg,color:n[t].text}}),AW=Ft.span(({theme:e})=>({fontSize:"11px",color:e.textMutedColor,marginLeft:"auto"})),Dme=Ft.div(({theme:e})=>({textAlign:"center",padding:"60px 20px",color:e.textMutedColor})),Rme=Ft.div({fontSize:"48px",marginBottom:"16px"}),zme=Ft.div(({theme:e})=>({fontSize:"16px",fontWeight:600,marginBottom:"8px",color:e.color.defaultText})),Nme=Ft.div({fontSize:"14px",opacity:.8}),PW=Ft.div(({theme:e})=>({borderTop:`1px solid ${e.appBorderColor}`,marginTop:"8px"})),LW=Ft.div(({theme:e})=>({width:"100%",display:"flex",alignItems:"center",gap:"8px",padding:"12px 16px",backgroundColor:e.background.app,fontSize:"12px",color:e.textMutedColor})),MW=Ft(An)({display:"flex",gap:"8px",padding:"0",fontSize:"12px"}),BW=Ft(Or)(({theme:e})=>({marginLeft:"auto",padding:"4px 10px",fontSize:"11px",color:e.color.secondary})),DW=Ft.span(({theme:e})=>({backgroundColor:e.color.medium,color:e.textMutedColor,padding:"2px 8px",borderRadius:"10px",fontSize:"11px",fontWeight:600})),RW=Ft.div(({theme:e})=>({padding:"8px 16px",backgroundColor:e.background.app})),zW=Ft.div(({theme:e})=>({padding:"12px 14px",marginBottom:"8px",backgroundColor:e.background.content,borderRadius:"6px",border:`1px solid ${e.appBorderColor}`})),NW=Ft.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"4px"}),OW=Ft.button(({theme:e})=>({background:"none",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",padding:"2px 8px",fontSize:"11px",color:e.color.mediumdark,cursor:"pointer","&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText,borderColor:e.color.secondary}})),_W=Ft.div(({theme:e})=>({fontSize:"13px",fontWeight:500,color:e.color.defaultText,lineHeight:"1.4"})),$W=Ft.div(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,marginTop:"8px",paddingTop:"8px",borderTop:`1px solid ${e.appBorderColor}`,lineHeight:"1.4"})),UW=Ft.div(({theme:e})=>({fontSize:"11px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px",padding:"12px 0 8px 0",marginTop:"8px",borderBottom:`1px solid ${e.appBorderColor}`,display:"flex",alignItems:"center",gap:"8px","&:first-of-type":{marginTop:0}})),jW=Ft.span(({theme:e})=>({fontSize:"10px",fontWeight:600,color:e.textMutedColor,backgroundColor:e.background.hoverable,padding:"2px 6px",borderRadius:"8px"})),fu={"false-positive":{icon:"\u2715",label:"False positive",group:"False Positive"},planned:{icon:"\u25F7",label:"Planned",group:"Planned"},"wont-fix":{icon:"\u2298",label:"Won't fix",group:"Won't Fix"},"no-figma-state":{icon:"\u25FB",label:"No Figma state",group:"No Figma State"},"design-pending":{icon:"\u2726",label:"Design pending",group:"Design Pending"}},BF=e=>{if(!e)return{categoryId:null,note:""};let t=e.indexOf(": "),n=t>-1?e.slice(0,t):e.trim();return fu[n]?{categoryId:n,note:t>-1?e.slice(t+2):""}:{categoryId:null,note:e}},HW=e=>{if(!e)return"Other";let{categoryId:t}=BF(e);if(t&&fu[t])return fu[t].group;let n=e.toLowerCase();return n.includes("hug")||n.includes("fill")||n.includes("content-driven")?"HUG/FILL Sizing":n.includes("sub-pixel")||n.includes("negligible")?"Sub-pixel Differences":n.includes("values match")||n.includes("values already match")||n.includes("identical")?"Values Match":n.includes("no fix needed")||n.includes("no changes needed")?"No Fix Needed":"Other"},LF=e=>{if(!e)return"";let t=e.replace(/^Auto-dismissed:\s*/i,"").replace(/^Programmatic:\s*/i,"").replace(/^Two-Pass:\s*/i,"");return t=t.replace(/Sub-pixel difference \([\d.]+px\) - within [\d.]+px tolerance/i,"Sub-pixel difference").replace(/Dimension issue with HUG\/FILL sizing - width is content-driven, not fixed/i,"Width is content-driven").replace(/Height issue with HUG sizing - dimension is content-driven, not actionable/i,"Height is content-driven").replace(/Width issue with HUG sizing - dimension is content-driven, not actionable/i,"Width is content-driven").replace(/no-changes-needed - values already match/i,"Values already match").replace(/Values are the same - no difference/i,"Values match"),t},WW=Ft.span(({theme:e,phase:t})=>{let n={"post-ai-validation":{bg:"#4b5563",text:"#ffffff"},"ai-validation":{bg:"#0369a1",text:"#ffffff"},user:{bg:"#7c3aed",text:"#ffffff"}},{bg:r,text:o}=n[t]||n["post-ai-validation"];return{display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"11px",fontWeight:600,color:o,backgroundColor:r,padding:"3px 10px",borderRadius:"10px",marginBottom:"8px"}}),VW=Ft.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"8px",marginLeft:"8px",fontSize:"11px",color:e.textMutedColor,"& > span":{display:"inline-flex",alignItems:"center",gap:"3px"}})),Xx=e=>{if(!e)return;let t=e.toLowerCase();if(t.includes("no-changes-needed")||t.includes("values already match")||t.includes("sub-pixel")||t.includes("negligible")||t.includes("hug")||t.includes("fill")||t.includes("content-driven")||t.includes("equivalent")||t.includes("layout mechanism"))return"post-ai-validation"},GW=(e,t)=>{switch(e||Xx(t)){case"post-ai-validation":return"\u2699\uFE0F";case"ai-validation":return"\u2726";case"user":return"\u{1F464}";default:return"\u2699\uFE0F"}},MF=(e,t)=>{switch(e||Xx(t)){case"post-ai-validation":return"Pre-filter";case"ai-validation":return"Auto";case"user":return"Manual";default:return"Auto"}},qW=Ft.div(({theme:e})=>({padding:"20px",margin:"20px",backgroundColor:e.background.negative,borderRadius:"8px",borderLeft:`4px solid ${e.color.negative}`})),YW=Ft.h3(({theme:e})=>({fontSize:"16px",fontWeight:600,color:e.color.negative,marginTop:0,marginBottom:"8px"})),KW=Ft.pre(({theme:e})=>({fontSize:"12px",color:e.color.negative,backgroundColor:e.background.app,padding:"12px",borderRadius:"4px",overflow:"auto",maxHeight:"200px",fontFamily:"monospace",lineHeight:"1.5"})),XW=Ft(vy)({marginTop:"12px"}),Kx=class extends ze.Component{constructor(n){super(n);this.handleReset=()=>{this.setState({hasError:!1,error:null})};this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){y.error("[IssuesPanel ErrorBoundary] Caught error:",n,r)}render(){return this.state.hasError?ze.createElement(qW,null,ze.createElement(YW,null,"\u26A0\uFE0F Issues Panel Error"),ze.createElement("p",null,"Something went wrong displaying the issues. This might happen if a fix failed or there's invalid data."),ze.createElement(KW,null,this.state.error?.message||"Unknown error",`
151
151
 
152
- `,this.state.error?.stack),ze.createElement(NW,{onClick:this.handleReset},"Try Again")):this.props.children}},vF=()=>{let{currentStoryId:e}=nt(),{currentReviewId:t,isReviewing:n,reviewingStoryId:r,reviewHistory:o,reviewHistoryLoading:i,toggleIssueSelection:s,applyFixesResult:a,setApplyFixesResult:u}=ce(),c=n&&!!e&&e===r,{dismissAndSync:l,undismissAndSync:d}=FI(),{loadingMapping:g}=nt(),p=!!e&&!t&&!c&&(g||i),[m,b]=ze.useState(!1),[F,E]=ze.useState(!1),[v,D]=ze.useState(!1),{isSupported:O,isDetecting:$}=Pm(),{refreshStorybookOnly:L}=ri(),{generateBatchFixes:N,isGenerating:x,error:S,timing:w,progress:P,usage:f,selfReview:k,lastStorybookRoot:T}=Im(),{applyFixes:h,isApplying:I}=Tm({onComplete:L,storybookRoot:T}),A=o.find(_=>_.id===t),M=A?.issues||[],z=ze.useMemo(()=>M.filter(_=>!_.dismissed),[M]),C=ze.useMemo(()=>M.filter(_=>_.dismissed),[M]),R=ze.useMemo(()=>{let _={postAiValidation:0,aiValidation:0,user:0};for(let j of C)switch(j.dismissedBy){case"post-ai-validation":_.postAiValidation++;break;case"ai-validation":_.aiValidation++;break;default:_.user++;break}return _},[C]),W=z,B=A?.modelId||"unknown",ie=z.filter(_=>_.severity==="critical").length,Y=z.filter(_=>_.severity==="major").length,se=z.filter(_=>_.severity==="minor").length,me=A?Eo(ie,Y,se):void 0;ze.useEffect(()=>{!e||me==null||jr(e,{score:me,issueCount:z.length,criticalCount:ie,majorCount:Y,minorCount:se})},[me,e,z.length,ie,Y,se]);let Fe=A?.visualSimilarity,et=A?.costUsd,ee=A?.reviewDurationMs,Ee=A?.inputTokens,Te=A?.outputTokens,ue=A?.cacheCreationTokens,Be=A?.cacheReadTokens,ge=A?.parentReviewId?o.find(_=>_.id===A.parentReviewId):null,tt=ze.useMemo(()=>{if(!ge||!A)return null;let _=new Set(ge.issues.map(Oe=>`${Oe.type}:${Oe.property||""}:${Oe.description}`)),j=new Set(W.map(Oe=>`${Oe.type}:${Oe.property||""}:${Oe.description}`)),H=ge.issues.filter(Oe=>!j.has(`${Oe.type}:${Oe.property||""}:${Oe.description}`)).length,Z=W.filter(Oe=>_.has(`${Oe.type}:${Oe.property||""}:${Oe.description}`)).length,re=W.filter(Oe=>!_.has(`${Oe.type}:${Oe.property||""}:${Oe.description}`)).length;return{resolved:H,remaining:Z,newIssues:re}},[ge,A,W]),xt=()=>{W.forEach(_=>{_.selectedForFix||s(_.id)})},Sn=()=>{W.forEach(_=>{_.selectedForFix&&s(_.id)})},xe=()=>{W.forEach(_=>{_.generatedFix&&_.generatedFix.status==="ready"&&!_.selectedForFix&&s(_.id)})},{featureFlags:St}=ce(),fe=()=>{if(!St.enableFixGeneration){y.warn("[IssuesPanel] Fix generation is disabled by feature flag");return}let _=W.filter(j=>j.selectedForFix);if(_.length===0){y.warn("[IssuesPanel] No issues selected for fix generation");return}y.debug(`[IssuesPanel] Generating fixes for ${_.length} issue(s)`,_),N(_)},ne=()=>{if(!St.enableFixApply){y.warn("[IssuesPanel] Fix apply is disabled by feature flag");return}let _=W.filter(H=>H.selectedForFix&&H.generatedFix&&H.generatedFix.status==="ready"&&H.generatedFix.code&&H.generatedFix.filePath);if(_.length===0){y.warn("[IssuesPanel] No issues with ready AI-generated fixes selected");return}let j=_.map(H=>({id:H.id,reviewId:H.reviewId,type:H.type,severity:H.severity,title:H.title,description:H.description,generatedFix:H.generatedFix,storyId:A?.storyId||""}));y.debug(`[IssuesPanel] Applying AI-generated fixes for ${j.length} issue(s)`,j),h(j)},Ke=_=>{let j=W.find(Z=>Z.id===_);if(!j){y.warn("[IssuesPanel] Issue not found:",_);return}if(!j.generatedFix||j.generatedFix.status!=="ready"||!j.generatedFix.code||!j.generatedFix.filePath){y.warn("[IssuesPanel] Issue does not have a ready AI-generated fix:",_);return}let H={id:j.id,reviewId:j.reviewId,type:j.type,severity:j.severity,title:j.title,description:j.description,generatedFix:j.generatedFix,storyId:A?.storyId||""};y.debug("[IssuesPanel] Applying single AI-generated fix for issue:",H),h([H])},gt=async()=>{let _=W.filter(H=>H.selectedForFix&&H.generatedFix&&H.generatedFix.status==="ready"&&H.generatedFix.code&&H.generatedFix.filePath);if(_.length===0){y.warn("[IssuesPanel] No issues with ready AI-generated fixes selected");return}let j=_.map(H=>{let Z=H.generatedFix,re=[];return re.push(`// File: ${Z.filePath}`),re.push(`// Issue: ${H.title||H.description}`),H.currentValue&&re.push(`// Actual: ${H.currentValue}`),H.suggestedValue&&re.push(`// Expected (Figma): ${H.suggestedValue}`),Z.diffPreview&&(re.push("//"),re.push("// Diff:"),Z.diffPreview.split(`
153
- `).forEach(Oe=>{re.push(`// ${Oe}`)})),re.push("//"),re.push("// Full Fixed Code:"),re.push(Z.code),re.join(`
152
+ `,this.state.error?.stack),ze.createElement(XW,{onClick:this.handleReset},"Try Again")):this.props.children}},DF=()=>{let{currentStoryId:e}=tt(),{currentReviewId:t,isReviewing:n,reviewingStoryId:r,reviewHistory:o,reviewHistoryLoading:i,toggleIssueSelection:s,applyFixesResult:a,setApplyFixesResult:u}=ue(),c=n&&!!e&&e===r,{dismissAndSync:l,undismissAndSync:d}=_I(),{loadingMapping:g}=tt(),p=!!e&&!t&&!c&&(g||i),[m,b]=ze.useState(!1),[I,E]=ze.useState(!1),[k,D]=ze.useState(!1),{isSupported:N,isDetecting:$}=Nm(),{refreshStorybookOnly:L}=oi(),{generateBatchFixes:R,isGenerating:h,error:S,timing:w,progress:A,usage:f,selfReview:v,lastStorybookRoot:F}=Bm(),{applyFixes:x,isApplying:C}=Mm({onComplete:L,storybookRoot:F}),P=o.find(_=>_.id===t),B=P?.issues||[],O=ze.useMemo(()=>B.filter(_=>!_.dismissed),[B]),T=ze.useMemo(()=>B.filter(_=>_.dismissed),[B]),z=ze.useMemo(()=>{let _={postAiValidation:0,aiValidation:0,user:0};for(let j of T)switch(j.dismissedBy){case"post-ai-validation":_.postAiValidation++;break;case"ai-validation":_.aiValidation++;break;default:_.user++;break}return _},[T]),W=O,M=P?.modelId||"unknown",ie=O.filter(_=>_.severity==="critical").length,Y=O.filter(_=>_.severity==="major").length,se=O.filter(_=>_.severity==="minor").length,xe=P?so(ie,Y,se):void 0;ze.useEffect(()=>{!e||xe==null||jr(e,{score:xe,issueCount:O.length,criticalCount:ie,majorCount:Y,minorCount:se})},[xe,e,O.length,ie,Y,se]);let Pe=P?.visualSimilarity,Ye=P?.costUsd,te=P?.reviewDurationMs,Ie=P?.inputTokens,Te=P?.outputTokens,pe=P?.cacheCreationTokens,Be=P?.cacheReadTokens,me=P?.parentReviewId?o.find(_=>_.id===P.parentReviewId):null,Ze=ze.useMemo(()=>{if(!me||!P)return null;let _=new Set(me.issues.map(Oe=>`${Oe.type}:${Oe.property||""}:${Oe.description}`)),j=new Set(W.map(Oe=>`${Oe.type}:${Oe.property||""}:${Oe.description}`)),H=me.issues.filter(Oe=>!j.has(`${Oe.type}:${Oe.property||""}:${Oe.description}`)).length,X=W.filter(Oe=>_.has(`${Oe.type}:${Oe.property||""}:${Oe.description}`)).length,re=W.filter(Oe=>!_.has(`${Oe.type}:${Oe.property||""}:${Oe.description}`)).length;return{resolved:H,remaining:X,newIssues:re}},[me,P,W]),mt=()=>{W.forEach(_=>{_.selectedForFix||s(_.id)})},bn=()=>{W.forEach(_=>{_.selectedForFix&&s(_.id)})},br=()=>{W.forEach(_=>{_.generatedFix&&_.generatedFix.status==="ready"&&!_.selectedForFix&&s(_.id)})},{featureFlags:rr}=ue(),ae=()=>{if(!rr.enableFixGeneration){y.warn("[IssuesPanel] Fix generation is disabled by feature flag");return}let _=W.filter(j=>j.selectedForFix);if(_.length===0){y.warn("[IssuesPanel] No issues selected for fix generation");return}y.debug(`[IssuesPanel] Generating fixes for ${_.length} issue(s)`,_),R(_)},Z=()=>{if(!rr.enableFixApply){y.warn("[IssuesPanel] Fix apply is disabled by feature flag");return}let _=W.filter(H=>H.selectedForFix&&H.generatedFix&&H.generatedFix.status==="ready"&&H.generatedFix.code&&H.generatedFix.filePath);if(_.length===0){y.warn("[IssuesPanel] No issues with ready AI-generated fixes selected");return}let j=_.map(H=>({id:H.id,reviewId:H.reviewId,type:H.type,severity:H.severity,title:H.title,description:H.description,generatedFix:H.generatedFix,storyId:P?.storyId||""}));y.debug(`[IssuesPanel] Applying AI-generated fixes for ${j.length} issue(s)`,j),x(j)},ge=_=>{let j=W.find(X=>X.id===_);if(!j){y.warn("[IssuesPanel] Issue not found:",_);return}if(!j.generatedFix||j.generatedFix.status!=="ready"||!j.generatedFix.code||!j.generatedFix.filePath){y.warn("[IssuesPanel] Issue does not have a ready AI-generated fix:",_);return}let H={id:j.id,reviewId:j.reviewId,type:j.type,severity:j.severity,title:j.title,description:j.description,generatedFix:j.generatedFix,storyId:P?.storyId||""};y.debug("[IssuesPanel] Applying single AI-generated fix for issue:",H),x([H])},Tt=async()=>{let _=W.filter(H=>H.selectedForFix&&H.generatedFix&&H.generatedFix.status==="ready"&&H.generatedFix.code&&H.generatedFix.filePath);if(_.length===0){y.warn("[IssuesPanel] No issues with ready AI-generated fixes selected");return}let j=_.map(H=>{let X=H.generatedFix,re=[];return re.push(`// File: ${X.filePath}`),re.push(`// Issue: ${H.title||H.description}`),H.currentValue&&re.push(`// Actual: ${H.currentValue}`),H.suggestedValue&&re.push(`// Expected (Figma): ${H.suggestedValue}`),X.diffPreview&&(re.push("//"),re.push("// Diff:"),X.diffPreview.split(`
153
+ `).forEach(Oe=>{re.push(`// ${Oe}`)})),re.push("//"),re.push("// Full Fixed Code:"),re.push(X.code),re.join(`
154
154
  `)}).join(`
155
155
 
156
156
  `+"=".repeat(60)+`
157
157
 
158
- `);E(!0);try{await Lm(j)?y.debug(`[IssuesPanel] Copied ${_.length} fix(es) to clipboard`):y.error("[IssuesPanel] Failed to copy fixes to clipboard"),setTimeout(()=>E(!1),1500)}catch(H){y.error("[IssuesPanel] Error copying fixes:",H),E(!1)}},Ge=async _=>{_.stopPropagation();let j=C.map(Z=>[`[${Z.severity.toUpperCase()}] ${Z.title||Z.description}`,`Phase: ${SF(Z.dismissedBy,Z.dismissReason)}`,Z.dismissReason?`Reason: ${bF(Z.dismissReason)}`:"",Z.property?`Property: ${Z.property}`:"",Z.currentValue?`Current: ${Z.currentValue}`:"",Z.suggestedValue?`Expected: ${Z.suggestedValue}`:""].filter(Boolean).join(`
158
+ `);E(!0);try{await Om(j)?y.debug(`[IssuesPanel] Copied ${_.length} fix(es) to clipboard`):y.error("[IssuesPanel] Failed to copy fixes to clipboard"),setTimeout(()=>E(!1),1500)}catch(H){y.error("[IssuesPanel] Error copying fixes:",H),E(!1)}},et=async _=>{_.stopPropagation();let j=T.map(X=>[`[${X.severity.toUpperCase()}] ${X.title||X.description}`,`Phase: ${MF(X.dismissedBy,X.dismissReason)}`,X.dismissReason?`Reason: ${LF(X.dismissReason)}`:"",X.property?`Property: ${X.property}`:"",X.currentValue?`Current: ${X.currentValue}`:"",X.suggestedValue?`Expected: ${X.suggestedValue}`:""].filter(Boolean).join(`
159
159
  `)).join(`
160
160
 
161
161
  ---
162
162
 
163
- `),H=`Filtered Issues (${C.length})
163
+ `),H=`Filtered Issues (${T.length})
164
164
  ${"=".repeat(40)}
165
165
 
166
- `;try{await navigator.clipboard.writeText(H+j),D(!0),setTimeout(()=>D(!1),2e3)}catch(Z){y.error("Failed to copy dismissed issues:",Z)}};return ze.createElement(gW,null,tt&&ze.createElement(fW,null,ze.createElement(mW,null,"\u{1F4CA} Progress:"),ze.createElement($x,{variant:"resolved"},"\u2705 ",tt.resolved," resolved"),ze.createElement($x,{variant:"remaining"},"\u23F3 ",tt.remaining," remaining"),tt.newIssues>0&&ze.createElement($x,{variant:"new"},"\u{1F195} ",tt.newIssues," new"),ze.createElement(hW,null,"Iteration ",A?.iterationNumber||1)),ze.createElement(Ux,null,ze.createElement(yF,{issues:W,modelId:B,complianceScore:me,visualSimilarity:Fe,costUsd:et,reviewDurationMs:ee,inputTokens:Ee,outputTokens:Te,cacheCreationTokens:ue,cacheReadTokens:Be,onToggleSelection:s,onSelectAll:xt,onSelectNone:Sn,onSelectAllFixes:xe,onGenerateFixes:fe,onApplyFixes:ne,onApplyFix:Ke,onCopyAllFixes:gt,onDismiss:l,onUndismiss:d,isGenerating:x,isApplying:I,isCopying:F,applyFixesResult:a,onDismissResult:()=>u(null),generationTiming:w,generationUsage:f,hasReviewBeenRun:!!A,isLoadingReview:p,isReviewing:c,generationProgress:P,autoApplySupported:O,selfReview:k})),C.length>0&&ze.createElement(xW,null,ze.createElement(yW,null,ze.createElement(bW,{onClick:()=>b(!m)},ze.createElement("span",null,m?"\u25BC":"\u25B6"),ze.createElement("span",null,"Filtered out"),ze.createElement(wW,null,C.length),ze.createElement(MW,null,R.postAiValidation>0&&ze.createElement("span",null,"\u2699\uFE0F ",R.postAiValidation),R.aiValidation>0&&ze.createElement("span",null,"\u2726 ",R.aiValidation),R.user>0&&ze.createElement("span",null,"\u{1F464} ",R.user))),ze.createElement(SW,{onClick:Ge},v?"\u2713 Copied!":"Copy")),m&&ze.createElement(vW,null,(()=>{let _=C.reduce((Z,re)=>{let Oe=PW(re.dismissReason);return Z[Oe]||(Z[Oe]=[]),Z[Oe].push(re),Z},{}),j=["HUG/FILL Sizing","Sub-pixel Differences","Values Match","No Fix Needed","Other"];return Object.keys(_).sort((Z,re)=>j.indexOf(Z)-j.indexOf(re)).map(Z=>ze.createElement(ze.Fragment,{key:Z},ze.createElement(EW,null,Z,ze.createElement(AW,null,_[Z].length)),_[Z].map(re=>ze.createElement(kW,{key:re.id},ze.createElement(CW,null,ze.createElement(LW,{phase:re.dismissedBy||jx(re.dismissReason)||"post-ai-validation"},BW(re.dismissedBy,re.dismissReason)," ",SF(re.dismissedBy,re.dismissReason)),ze.createElement(TW,{onClick:()=>d(re.id),title:"Restore to active issues"},"\u21A9 Restore")),ze.createElement(IW,null,"[",re.severity.toUpperCase(),"]"," ",re.title||re.description),re.dismissReason&&(()=>{let{categoryId:Oe,note:ir}=wF(re.dismissReason),Ct=Oe?au[Oe]:null;return ze.createElement(FW,null,Ct?ze.createElement(ze.Fragment,null,Ct.icon," ",Ct.label,ir?` \u2014 ${ir}`:""):bF(re.dismissReason))})()))))})())))};var _W=Pa.div({marginTop:"20px"}),$W=Pa.div(({theme:e})=>({display:"flex",alignItems:"center",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"16px"})),UW=Pa.div({display:"flex",alignItems:"center"}),Hx=Pa(wo)({padding:"10px 16px"}),jW=Pa.div({minHeight:"200px"}),Wx=()=>{let{reviewDetailTab:e,setReviewDetailTab:t,multiModelResults:n,selectedModels:r,userRole:o,roleOverride:i}=ce(),a=(i??o)==="admin",u=r.length>1||n&&Object.keys(n.byModel).length>1;return OW(()=>{!a&&(e==="chat"||e==="prompt")&&t("issues")},[a,e,t]),zr.createElement(_W,null,zr.createElement($W,null,zr.createElement(UW,null,a&&zr.createElement(Hx,{active:e==="prompt",onClick:()=>t("prompt")},"Prompt"),a&&zr.createElement(Hx,{active:e==="chat",onClick:()=>t("chat")},u?"Models":"Chat"),zr.createElement(Hx,{active:e==="issues",onClick:()=>t("issues")},"Issues"))),zr.createElement(jW,null,a&&e==="chat"&&(u?zr.createElement(II,null):zr.createElement(Ex,null)),e==="issues"&&zr.createElement(vF,null),a&&e==="prompt"&&zr.createElement(Fx,null)))};ve();import V,{useState as mo,useRef as Kx,useEffect as GW,useMemo as qW}from"react";import{styled as Ft,useTheme as YW}from"storybook/theming";Ue();Ne();var lu={enableIssueTracking:!1,enableAutoFix:!1,enableFileModification:!1,enableMultiModelComparison:!0,enableBulkFixApplication:!1,enableFixUndo:!1,enableHoverHighlight:!0,enableEvaluationFixtures:!1,enableDebugMode:!1},La="uicopilot_feature_flags";function Vx(){try{let e=localStorage.getItem(La);if(e){let t=JSON.parse(e);return{...lu,...t}}}catch(e){y.warn("[FeatureFlags] Failed to load from localStorage:",e)}return lu}function HW(e,t){try{let r={...Vx(),[e]:t},o={};for(let i in r){let s=i;r[s]!==lu[s]&&(o[s]=r[s])}Object.keys(o).length>0?localStorage.setItem(La,JSON.stringify(o)):localStorage.removeItem(La),y.debug(`[FeatureFlags] Set ${e} = ${t}`)}catch(n){y.error("[FeatureFlags] Failed to set flag:",n)}}function WW(){try{localStorage.removeItem(La),y.debug("[FeatureFlags] Reset to defaults")}catch(e){y.error("[FeatureFlags] Failed to reset:",e)}}function Gx(e){return Vx()[e]}function VW(){let e=Object.keys(lu).reduce((t,n)=>({...t,[n]:!0}),{});try{localStorage.setItem(La,JSON.stringify(e)),y.debug("[FeatureFlags] All features enabled! Reload to apply.")}catch(t){y.error("[FeatureFlags] Failed to enable all features:",t)}}typeof window<"u"&&(window.uicopilot={...window.uicopilot,featureFlags:{get:Vx,set:HW,reset:WW,enableAll:VW,isEnabled:Gx}});Ne();ct();import Dt from"react";var kF=()=>Dt.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Dt.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),Dt.createElement("circle",{cx:"12",cy:"12",r:"3"}));var Ma={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},Ba=()=>Dt.createElement("svg",{...Ma},Dt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Dt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),CF=()=>Dt.createElement("svg",{...Ma},Dt.createElement("path",{d:"M18.84 12.25l1.72-1.71a5 5 0 0 0-7.07-7.07l-1.71 1.71"}),Dt.createElement("path",{d:"M5.17 11.75l-1.71 1.71a5 5 0 0 0 7.07 7.07l1.71-1.71"}),Dt.createElement("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),Dt.createElement("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),Dt.createElement("line",{x1:"16",y1:"22",x2:"16",y2:"19"}),Dt.createElement("line",{x1:"22",y1:"16",x2:"19",y2:"16"})),TF=()=>Dt.createElement("svg",{...Ma},Dt.createElement("polyline",{points:"23 4 23 10 17 10"}),Dt.createElement("polyline",{points:"1 20 1 14 7 14"}),Dt.createElement("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})),qx=()=>Dt.createElement("svg",{...Ma},Dt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Dt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),Dt.createElement("line",{x1:"11",y1:"8",x2:"11",y2:"14"}),Dt.createElement("line",{x1:"8",y1:"11",x2:"14",y2:"11"})),Yx=()=>Dt.createElement("svg",{...Ma},Dt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Dt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),Dt.createElement("line",{x1:"8",y1:"11",x2:"14",y2:"11"}));var Da=Ft.div({marginTop:"20px"}),cu=Ft.div({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",flexWrap:"wrap",gap:"8px"}),uu=Ft.div({display:"flex",alignItems:"center",gap:"12px"}),Ra=Ft.div(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),Vme=Ft.div({display:"flex",gap:"8px"}),Gme=Ft.button(({active:e,theme:t})=>({padding:"4px 12px",backgroundColor:e?t.color.secondary:"transparent",color:e?"#fff":t.color.mediumdark,border:`1px solid ${e?t.color.secondary:t.appBorderColor}`,borderRadius:"4px",fontSize:"11px",fontWeight:500,cursor:"pointer",transition:"all 0.2s","&:hover":{opacity:.9}})),IF=Ft.div(({theme:e,layout:t})=>({display:t==="side-by-side"?"grid":"flex",gridTemplateColumns:t==="side-by-side"?"minmax(0, 1fr) minmax(0, 1fr)":void 0,gap:t==="side-by-side"?`${e.layoutMargin}px`:0,position:"relative",width:"100%",justifyContent:t==="overlay"?"center":void 0})),za=Ft.div(({theme:e,zoomed:t})=>({position:"relative",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,overflow:"hidden",backgroundColor:e.background.app,minHeight:"60px",maxHeight:t?"400px":"150px",display:"flex",alignItems:"center",justifyContent:"center",transition:"max-height 0.2s ease, box-shadow 0.2s ease",boxShadow:t?"0 8px 30px rgba(0, 0, 0, 0.15)":"none","& img":t?{maxWidth:"100%",maxHeight:"400px"}:void 0})),Na=Ft.div(({theme:e})=>({position:"absolute",top:"6px",left:"6px",backgroundColor:e.base==="dark"?"rgba(255, 255, 255, 0.92)":"rgba(0, 0, 0, 0.7)",color:e.base==="dark"?"#0a0a0f":e.color.inverseText,padding:"3px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600,zIndex:10})),Oa=Ft.div({position:"absolute",top:"6px",right:"6px",display:"flex",gap:"4px",zIndex:10}),Yo=Ft.button(({theme:e,accent:t})=>({width:"24px",height:"24px",padding:"0",backgroundColor:e.base==="dark"?"rgba(255, 255, 255, 0.12)":"rgba(255, 255, 255, 0.92)",border:`1px solid ${t}55`,borderRadius:e.appBorderRadius,color:t,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"all 0.15s",backdropFilter:"blur(4px)","&:hover:not(:disabled)":{backgroundColor:t,color:"#ffffff",borderColor:t},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),KW=Ft.img(({opacity:e=1})=>({maxWidth:"150px",maxHeight:"150px",height:"auto",display:"block",objectFit:"contain",opacity:e})),XW=Ft.img({display:"block",objectFit:"contain",maxHeight:"150px",maxWidth:"150px"}),QW=Ft.div({position:"relative",display:"inline-block",maxHeight:"150px",overflow:"hidden"}),qme=Ft.svg(({isVisible:e})=>({position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",opacity:e?1:0,transition:"opacity 150ms ease-in",...!e&&{transition:"opacity 100ms ease-out"}})),JW=Ft.div({position:"relative",display:"inline-block"}),Yme=Ft.div(({width:e,height:t,theme:n})=>({position:"relative",width:e?`${e}px`:"auto",height:t?`${t}px`:"auto",border:`1px solid ${n.appBorderColor}`,borderRadius:"4px",overflow:"hidden",backgroundColor:n.background.app})),ZW=Ft.img({display:"block",maxWidth:"100%",height:"auto",objectFit:"contain"}),eV=Ft.img({position:"absolute",top:"0",left:"0",pointerEvents:"none"}),tV=Ft.div({marginTop:"12px",display:"flex",alignItems:"center",gap:"12px"}),nV=Ft.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,minWidth:"80px"})),rV=Ft.input({flex:1}),Xx=Ft.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px",border:`1px dashed ${e.appBorderColor}`,borderRadius:"4px"})),Kme=Ft.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),Qx=Ft.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px"}),hi=Ft.div(({theme:e})=>({position:"relative",border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",backgroundColor:e.background.content,minHeight:"80px",maxHeight:"120px",display:"flex",alignItems:"center",justifyContent:"center","&::before":{content:'""',position:"absolute",top:0,left:"-100%",width:"100%",height:"100%",background:e.base==="dark"?"linear-gradient(90deg, transparent, rgba(255,255,255,0.04), transparent)":"linear-gradient(90deg, transparent, rgba(0,0,0,0.04), transparent)",animation:"shimmer 1.5s ease-in-out infinite",pointerEvents:"none"},"@keyframes shimmer":{"0%":{left:"-100%"},"100%":{left:"100%"}}})),xi=Ft.div({textAlign:"center",zIndex:1}),yi=Ft.div(({theme:e})=>({width:"32px",height:"32px",border:`3px solid ${e.appBorderColor}`,borderTop:`3px solid ${e.color.secondary}`,borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"12px","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),bi=Ft.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,fontWeight:500})),Jx=({isLoading:e=!1,isLoadingFigma:t=!1,isLoadingStorybook:n=!1})=>{let r=YW(),{currentMapping:o,loadingMapping:i}=nt(),{figmaImageUrl:s,storybookImageUrl:a,figmaDimensions:u,setFigmaImageUrl:c,hoveredIssueId:l,reviewHistory:d,currentReviewId:g}=ce(),{selectedProjectId:p}=Qe(),{sessionToken:m}=Se(),{openComponentBrowser:b}=Ys(),{hasMapping:F,deleteMapping:E,setCurrentMapping:v}=ii(),D=Gx("enableHoverHighlight"),[O,$]=mo("side-by-side"),[L,N]=mo(.5),[x,S]=mo(!1),[w,P]=mo(!1),[f,k]=mo(!1),[T,h]=mo(!1),[I,A]=mo(!1),M=async()=>{k(!1);try{let ee=o?.id;ee&&await E(ee),v(null)}catch(ee){y.error("[ScreenshotComparison] Failed to unlink:",ee)}};GW(()=>{P(!1)},[s]);let[z,C]=mo(null),[R,W]=mo(null),B=Kx(null),ie=Kx(null),Y=Kx(null),se=qW(()=>{if(!D||!l||!g)return null;let ee=d.find(Ee=>Ee.id===g);return ee?.issues&&ee.issues.find(Ee=>Ee.id===l)||null},[l,g,d]),me=ee=>{let Ee=ee.currentTarget;P(!0),!yt.getState().figmaDimensions&&Ee.naturalWidth&&Ee.naturalHeight&&yt.getState().setFigmaDimensions({width:Ee.naturalWidth,height:Ee.naturalHeight}),requestAnimationFrame(()=>{if(ie.current){let{clientWidth:ue,clientHeight:Be}=ie.current;ue&&Be&&W({width:ue,height:Be})}})},Fe=()=>{requestAnimationFrame(()=>{if(B.current){let{clientWidth:ee,clientHeight:Ee}=B.current;ee&&Ee&&C({width:ee,height:Ee})}})},et=async()=>{if(!(!p||!m)){S(!0);try{let ee=G();await te(`${ee}/api/figma/frames/invalidate?projectId=${p}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`},credentials:"include"}),c(null),y.debug("Figma cache cleared, image will reload on next review")}catch(ee){y.error("Failed to refresh Figma:",ee)}finally{S(!1)}}};return e?V.createElement(Da,null,V.createElement(cu,null,V.createElement(uu,null,V.createElement(Ra,null,"Screenshots from this review"))),V.createElement(Qx,null,V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,"Loading Figma..."))),V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,"Loading Storybook..."))))):!s&&!a&&!o?i?V.createElement(Da,null,V.createElement(cu,null,V.createElement(uu,null,V.createElement(Ra,null,"Screenshots from this review"))),V.createElement(Qx,null,V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,"Loading..."))))):V.createElement(Da,null,V.createElement(Ra,null,"Screenshots from this review"),V.createElement(za,null,V.createElement(Na,null,"Figma Design"),V.createElement(Oa,null,V.createElement(Yo,{accent:r.color.secondary,onClick:b,disabled:!p,title:"Browse Figma to map this component","aria-label":"Browse Figma to map this component"},V.createElement(Ba,null))),V.createElement(Xx,{style:{border:"none",padding:"20px 16px",lineHeight:"1.6"}},V.createElement("div",{style:{fontSize:"14px",marginBottom:"6px"}},"\u2728 This story isn't linked to a Figma frame yet"),V.createElement("div",{style:{fontSize:"12px",opacity:.75}},"Click the \u{1F50D} above to browse your Figma file and pick a matching frame. Once linked, run a Review to compare your code with the design.")))):!s&&!a?V.createElement(Da,null,V.createElement(cu,null,V.createElement(uu,null,V.createElement(Ra,null,"Screenshots from this review"))),V.createElement(Qx,null,V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,"Loading..."))))):V.createElement(Da,{ref:Y},V.createElement(cu,null,V.createElement(uu,null,V.createElement(Ra,null,"Screenshots from this review"))),O==="side-by-side"?V.createElement(IF,{layout:"side-by-side"},o&&s&&!t?V.createElement(za,{zoomed:T},V.createElement(Na,null,"Figma Design"),V.createElement(Oa,null,V.createElement(Yo,{accent:r.color.secondary,onClick:()=>h(ee=>!ee),title:T?"Shrink preview":"Enlarge preview","aria-label":T?"Shrink preview":"Enlarge preview"},T?V.createElement(Yx,null):V.createElement(qx,null)),F&&V.createElement(Yo,{accent:r.color.secondary,onClick:b,title:"Browse Figma \u2014 change mapping","aria-label":"Browse Figma"},V.createElement(Ba,null)),V.createElement(Yo,{accent:r.color.positive,onClick:et,disabled:x,title:"Refresh Figma cache and reload image","aria-label":"Refresh Figma cache"},V.createElement(TF,null)),F&&V.createElement(Yo,{accent:r.color.negative,onClick:()=>k(!0),title:"Unlink Figma mapping","aria-label":"Unlink Figma mapping"},V.createElement(CF,null))),V.createElement(QW,null,V.createElement(XW,{ref:ie,src:s,alt:"Figma design",onLoad:me,style:{opacity:w?1:0,transition:"opacity 150ms ease-in"}}))):o&&!s&&!t?V.createElement(za,null,V.createElement(Na,null,"Figma Design"),V.createElement(Oa,null,V.createElement(Yo,{accent:r.color.secondary,onClick:b,disabled:!p,title:"Change Figma mapping","aria-label":"Change Figma mapping"},V.createElement(Ba,null))),V.createElement(Xx,{style:{border:"none",padding:"16px"}},"Figma image unavailable. Try mapping to a specific variant.")):!o&&!i?V.createElement(za,null,V.createElement(Na,null,"Figma Design"),V.createElement(Oa,null,V.createElement(Yo,{accent:r.color.secondary,onClick:b,disabled:!p,title:"Browse Figma to map this component","aria-label":"Browse Figma to map this component"},V.createElement(Ba,null))),V.createElement(Xx,{style:{border:"none",padding:"16px"}},"No Figma mapping.")):V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,t?"Refreshing Figma...":"Loading Figma..."))),a&&!n?V.createElement(za,{zoomed:I},V.createElement(Na,null,"Storybook Component"),V.createElement(Oa,null,V.createElement(Yo,{accent:r.color.secondary,onClick:()=>A(ee=>!ee),title:I?"Shrink preview":"Enlarge preview","aria-label":I?"Shrink preview":"Enlarge preview"},I?V.createElement(Yx,null):V.createElement(qx,null))),V.createElement(KW,{ref:B,src:a,alt:"Storybook component",onLoad:Fe})):V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,n?"Refreshing Storybook...":"Loading Storybook...")))):V.createElement(V.Fragment,null,V.createElement(IF,{layout:"overlay"},V.createElement(JW,null,s&&a?V.createElement(V.Fragment,null,V.createElement("div",{style:{position:"relative",display:"inline-block",border:"1px solid #ccc",borderRadius:"4px",overflow:"hidden"}},V.createElement(ZW,{ref:B,src:a,alt:"Storybook component",onLoad:Fe,style:{maxHeight:"150px"}}),z&&V.createElement(eV,{src:s,alt:"Figma design overlay",style:{opacity:L,width:z.width,height:z.height,objectFit:"fill"}})),V.createElement("div",{style:{fontSize:"10px",color:r.color.mediumdark,marginTop:"8px",textAlign:"center"}},V.createElement("span",{style:{color:"#1ea7fd"}},"Storybook (base)")," + ",V.createElement("span",{style:{color:"#667eea"}},"Figma (overlay)"),z&&` \u2022 ${z.width}\xD7${z.height}px`)):V.createElement(hi,null,V.createElement(xi,null,V.createElement(yi,null),V.createElement(bi,null,"Loading Images..."))))),a&&s&&V.createElement(tV,null,V.createElement(nV,null,"Figma Opacity:"),V.createElement(rV,{type:"range",min:"0",max:"1",step:"0.01",value:L,onChange:ee=>N(parseFloat(ee.target.value))}),V.createElement("span",null,Math.round(L*100),"%"))),V.createElement(Hr,{isOpen:f,title:"Unlink Figma Mapping",message:"Unlink this story from its Figma mapping?",confirmLabel:"Unlink",variant:"danger",onConfirm:M,onCancel:()=>k(!1)}))};ve();ct();var oV=ps.div({height:"100%"}),Zx=ps.div({marginBottom:"20px"}),FF=ps.div(({theme:e})=>({padding:"12px",backgroundColor:e.background.negative||"#fee2e2",border:`1px solid ${e.color.negative||"#fca5a5"}`,borderRadius:"6px",color:e.color.negative||"#991b1b",fontSize:"13px",marginBottom:"16px",display:"flex",alignItems:"flex-start",gap:"8px"})),EF=ps.span({fontSize:"16px",flexShrink:0}),iV=ps.div(({theme:e})=>({padding:"10px 12px",backgroundColor:`${e.color.warning}1a`,border:`1px solid ${e.color.warning}`,borderRadius:"6px",color:e.color.warning,fontSize:e.typography.size.s2,marginBottom:"16px",display:"flex",alignItems:"center",gap:"8px",lineHeight:1.4})),AF=ps.div({flex:1}),ey=()=>{let{reviewError:e,getCurrentReview:t}=ce(),n=t(),{showComponentBrowser:r,closeComponentBrowser:o,figmaFileUrl:i}=Ys(),{selectedProjectId:s}=so(),{setCurrentMapping:a}=ii(),{currentStoryId:u,currentStoryName:c}=nt(),{isLoadingScreenshots:l,isLoadingFigma:d,isLoadingStorybook:g,screenshotError:p,setFigmaImageDirect:m}=ri(),b=async F=>{y.debug("[ReviewPanel] handleSelectFrame CALLED with frame:",F),y.debug("[ReviewPanel] frame.id:",F?.id);let E=yt.getState(),v=E.selectedProjectId,D=E.currentStoryId,O=E.currentStoryName,$=E.figmaFileUrl;y.debug("[ReviewPanel] selectedProjectId (from store):",v),y.debug("[ReviewPanel] currentStoryId (from store):",D),y.debug("[ReviewPanel] currentStoryName (from store):",O),F.thumbnail&&D&&(y.debug("[ReviewPanel] Setting Figma image directly BEFORE mapping save (instant display)"),m(D,F.id,F.thumbnail));try{let L=G(),N=localStorage.getItem("uicopilot_session_token");if(y.debug("[ReviewPanel] sessionToken exists:",!!N),y.debug("[ReviewPanel] dashboardUrl:",L),!N||!v||!D){y.error("[ReviewPanel] Missing required data for saving mapping:",{hasSessionToken:!!N,selectedProjectId:v,currentStoryId:D});return}let x=$?.match(/\/file\/([^\/]+)/)?.[1]||void 0;y.debug("[ReviewPanel] Making POST to /api/mappings with:",{projectId:v,storyId:D,name:O,figmaNodeId:F.id,figmaFileKey:x});let S=await te(`${L}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${N}`},body:JSON.stringify({projectId:v,storyId:D,name:O,figmaNodeId:F.id,figmaFileKey:x})});if(S.ok){let w=await S.json();w.mapping&&(a(w.mapping),F.thumbnail||(y.debug("[ReviewPanel] No thumbnail available, triggering fetch"),yt.getState().triggerScreenshotRefresh()),y.debug("[ReviewPanel] Mapping saved successfully:",w.mapping))}else{let w=await S.text();y.error("[ReviewPanel] Failed to save mapping:",w)}}catch(L){y.error("[ReviewPanel] Error saving mapping:",L)}};return en.createElement(oV,null,en.createElement(Zx,null,en.createElement(Th,null)),e&&en.createElement(FF,null,en.createElement(EF,null,"\u26A0\uFE0F"),en.createElement(AF,null,e)),p&&en.createElement(FF,null,en.createElement(EF,null,"\u26A0\uFE0F"),en.createElement(AF,null,"Screenshot loading error: ",p)),n?.variantMismatch&&en.createElement(iV,null,en.createElement("span",{style:{fontSize:16,flexShrink:0}},"\u26A0"),en.createElement("span",null,en.createElement("strong",null,"Variant mismatch:")," Storybook is showing ",en.createElement("strong",null,n.storybookVariant)," but Figma frame is ",en.createElement("strong",null,n.figmaVariant),". Some differences may be expected.")),en.createElement(Zx,null,en.createElement(Jx,{isLoading:l,isLoadingFigma:d,isLoadingStorybook:g})),en.createElement(Zx,null,en.createElement(Wx,null)),en.createElement(Qi,{isOpen:r,onClose:o,onSelect:b,figmaFileUrl:i||"",projectId:s||void 0}))};ve();Ne();Ue();ct();import{useEffect as PF,useState as sV,useRef as ty,useCallback as aV}from"react";var lV=G(),cV=2e3;function LF(){let{sessionToken:e,usageData:t,setUsageData:n}=Se(),[r,o]=sV(null),i=ty(null),s=ty(!1),a=ty(0);PF(()=>{t?.creditBalance!==void 0&&i.current===null&&(i.current=t.creditBalance)},[t?.creditBalance]);let u=aV(()=>{o(null)},[]);return PF(()=>{if(!e)return;let c=async()=>{let d=Date.now();if(s.current||d-a.current<cV){y.debug("[useBalanceRefresh] Skipping refresh (debounced or in progress)");return}s.current=!0,a.current=d;try{y.debug("[useBalanceRefresh] Refreshing balance...");let g=await te(`${lV}/api/addon/account`,{headers:{Authorization:`Bearer ${e}`}});if(g.ok){let p=await g.json(),m=p.creditBalance,b=i.current;if(b!==null&&m>b){let F=m-b;o({message:`Credits added! +${Math.floor(F)} credit(s)`,previousBalance:b,newBalance:m}),y.debug("[useBalanceRefresh] Credits added:",F)}i.current=m,n(p),y.debug("[useBalanceRefresh] Balance updated:",m)}}catch(g){y.error("[useBalanceRefresh] Failed to refresh:",g)}finally{s.current=!1}},l=()=>{document.visibilityState==="visible"&&c()};return document.addEventListener("visibilitychange",l),()=>{document.removeEventListener("visibilitychange",l)}},[e,n]),{notification:r,dismissNotification:u}}ve();ve();Ue();Ne();ct();Of();import{useEffect as uV,useRef as pV}from"react";var dV=300*1e3,MF="uicopilot_feature_flags_fetched_at";function gV(){if(typeof localStorage>"u")return!1;try{let e=localStorage.getItem(MF);if(!e)return!1;let t=parseInt(e,10);return Number.isNaN(t)?!1:Date.now()-t<dV}catch{return!1}}var ny=null,fV={admin:{enableFixGeneration:!0,enableFixApply:!0,enableAutoMap:!0,enableReviewBadges:!0,showCosts:!0,enableParallelReview:!0,enableModelSelection:!0},beta:{enableFixGeneration:!0,enableFixApply:!1,enableAutoMap:!0,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1}};function BF(){let{setFeatureFlags:e,setUserRole:t,roleOverride:n}=ce(),{sessionToken:r,resetAuth:o}=Se(),i=pV(null);uV(()=>{if(!r||r===i.current)return;if(i.current=r,gV()){y.debug("[useFeatureFlags] Cache fresh, skipping fetch");return}if(ny){y.debug("[useFeatureFlags] Reusing in-flight fetch");return}let s=`${G()}/api/addon/flags`;ny=te(s,{headers:{Authorization:`Bearer ${r}`}}).then(a=>{if(a.status===401||a.status===403)throw y.debug("[useFeatureFlags] Token rejected, resetting auth"),o(),new Error("session token invalid");if(!a.ok)throw new Error(`flags endpoint returned ${a.status}`);return a.json()}).then(a=>{y.debug("[useFeatureFlags] Received flags:",a);let u={enableFixGeneration:!!a.enableFixGeneration,enableFixApply:!!a.enableFixApply,enableAutoMap:!!a.enableAutoMap,enableReviewBadges:!!a.enableReviewBadges,showCosts:!!a.showCosts,enableParallelReview:!!a.enableParallelReview,enableModelSelection:!!a.enableModelSelection};a.role&&(t(a.role),a.role==="beta"&&Cw());let c=a.role==="admin"&&n?fV[n]:u;e(c);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(c)),a.role&&localStorage.setItem("uicopilot_user_role",a.role),localStorage.setItem(MF,Date.now().toString())}catch{}}).catch(a=>{y.warn("[useFeatureFlags] Failed to fetch flags, using defaults:",a.message)}).finally(()=>{ny=null})},[r,e,t])}ve();Ue();Un();var xV={success:"linear-gradient(135deg, #10b981 0%, #059669 100%)",warning:"linear-gradient(135deg, #f59e0b 0%, #d97706 100%)",error:"linear-gradient(135deg, #ef4444 0%, #dc2626 100%)"},yV=br.div`
166
+ `;try{await navigator.clipboard.writeText(H+j),D(!0),setTimeout(()=>D(!1),2e3)}catch(X){y.error("Failed to copy dismissed issues:",X)}};return ze.createElement(IW,null,Ze&&ze.createElement(FW,null,ze.createElement(EW,null,"\u{1F4CA} Progress:"),ze.createElement(Yx,{variant:"resolved"},"\u2705 ",Ze.resolved," resolved"),ze.createElement(Yx,{variant:"remaining"},"\u23F3 ",Ze.remaining," remaining"),Ze.newIssues>0&&ze.createElement(Yx,{variant:"new"},"\u{1F195} ",Ze.newIssues," new"),ze.createElement(AW,null,"Iteration ",P?.iterationNumber||1)),ze.createElement(Kx,null,ze.createElement(PF,{issues:W,modelId:M,complianceScore:xe,visualSimilarity:Pe,costUsd:Ye,reviewDurationMs:te,inputTokens:Ie,outputTokens:Te,cacheCreationTokens:pe,cacheReadTokens:Be,onToggleSelection:s,onSelectAll:mt,onSelectNone:bn,onSelectAllFixes:br,onGenerateFixes:ae,onApplyFixes:Z,onApplyFix:ge,onCopyAllFixes:Tt,onDismiss:l,onUndismiss:d,isGenerating:h,isApplying:C,isCopying:I,applyFixesResult:a,onDismissResult:()=>u(null),generationTiming:w,generationUsage:f,hasReviewBeenRun:!!P,isLoadingReview:p,isReviewing:c,generationProgress:A,autoApplySupported:N,selfReview:v})),T.length>0&&ze.createElement(PW,null,ze.createElement(LW,null,ze.createElement(MW,{onClick:()=>b(!m)},ze.createElement("span",null,m?"\u25BC":"\u25B6"),ze.createElement("span",null,"Filtered out"),ze.createElement(DW,null,T.length),ze.createElement(VW,null,z.postAiValidation>0&&ze.createElement("span",null,"\u2699\uFE0F ",z.postAiValidation),z.aiValidation>0&&ze.createElement("span",null,"\u2726 ",z.aiValidation),z.user>0&&ze.createElement("span",null,"\u{1F464} ",z.user))),ze.createElement(BW,{onClick:et},k?"\u2713 Copied!":"Copy")),m&&ze.createElement(RW,null,(()=>{let _=T.reduce((X,re)=>{let Oe=HW(re.dismissReason);return X[Oe]||(X[Oe]=[]),X[Oe].push(re),X},{}),j=["HUG/FILL Sizing","Sub-pixel Differences","Values Match","No Fix Needed","Other"];return Object.keys(_).sort((X,re)=>j.indexOf(X)-j.indexOf(re)).map(X=>ze.createElement(ze.Fragment,{key:X},ze.createElement(UW,null,X,ze.createElement(jW,null,_[X].length)),_[X].map(re=>ze.createElement(zW,{key:re.id},ze.createElement(NW,null,ze.createElement(WW,{phase:re.dismissedBy||Xx(re.dismissReason)||"post-ai-validation"},GW(re.dismissedBy,re.dismissReason)," ",MF(re.dismissedBy,re.dismissReason)),ze.createElement(OW,{onClick:()=>d(re.id),title:"Restore to active issues"},"\u21A9 Restore")),ze.createElement(_W,null,"[",re.severity.toUpperCase(),"]"," ",re.title||re.description),re.dismissReason&&(()=>{let{categoryId:Oe,note:or}=BF(re.dismissReason),wt=Oe?fu[Oe]:null;return ze.createElement($W,null,wt?ze.createElement(ze.Fragment,null,wt.icon," ",wt.label,or?` \u2014 ${or}`:""):LF(re.dismissReason))})()))))})())))};var JW=Ba.div({marginTop:"20px"}),ZW=Ba.div(({theme:e})=>({display:"flex",alignItems:"center",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"16px"})),eV=Ba.div({display:"flex",alignItems:"center"}),Qx=Ba(ko)({padding:"10px 16px"}),tV=Ba.div({minHeight:"200px"}),Jx=()=>{let{reviewDetailTab:e,setReviewDetailTab:t,multiModelResults:n,selectedModels:r,userRole:o,roleOverride:i}=ue(),a=(i??o)==="admin",u=r.length>1||n&&Object.keys(n.byModel).length>1;return QW(()=>{!a&&(e==="chat"||e==="prompt")&&t("issues")},[a,e,t]),zr.createElement(JW,null,zr.createElement(ZW,null,zr.createElement(eV,null,a&&zr.createElement(Qx,{active:e==="prompt",onClick:()=>t("prompt")},"Prompt"),a&&zr.createElement(Qx,{active:e==="chat",onClick:()=>t("chat")},u?"Models":"Chat"),zr.createElement(Qx,{active:e==="issues",onClick:()=>t("issues")},"Issues"))),zr.createElement(tV,null,a&&e==="chat"&&(u?zr.createElement(OI,null):zr.createElement(zx,null)),e==="issues"&&zr.createElement(DF,null),a&&e==="prompt"&&zr.createElement(Rx,null)))};ve();import V,{useState as xo,useRef as ry,useEffect as iV,useMemo as sV}from"react";import{styled as Ct,useTheme as aV}from"storybook/theming";Ue();Ne();var mu={enableIssueTracking:!1,enableAutoFix:!1,enableFileModification:!1,enableMultiModelComparison:!0,enableBulkFixApplication:!1,enableFixUndo:!1,enableHoverHighlight:!0,enableEvaluationFixtures:!1,enableDebugMode:!1},Da="uicopilot_feature_flags";function Zx(){try{let e=localStorage.getItem(Da);if(e){let t=JSON.parse(e);return{...mu,...t}}}catch(e){y.warn("[FeatureFlags] Failed to load from localStorage:",e)}return mu}function nV(e,t){try{let r={...Zx(),[e]:t},o={};for(let i in r){let s=i;r[s]!==mu[s]&&(o[s]=r[s])}Object.keys(o).length>0?localStorage.setItem(Da,JSON.stringify(o)):localStorage.removeItem(Da),y.debug(`[FeatureFlags] Set ${e} = ${t}`)}catch(n){y.error("[FeatureFlags] Failed to set flag:",n)}}function rV(){try{localStorage.removeItem(Da),y.debug("[FeatureFlags] Reset to defaults")}catch(e){y.error("[FeatureFlags] Failed to reset:",e)}}function ey(e){return Zx()[e]}function oV(){let e=Object.keys(mu).reduce((t,n)=>({...t,[n]:!0}),{});try{localStorage.setItem(Da,JSON.stringify(e)),y.debug("[FeatureFlags] All features enabled! Reload to apply.")}catch(t){y.error("[FeatureFlags] Failed to enable all features:",t)}}typeof window<"u"&&(window.uicopilot={...window.uicopilot,featureFlags:{get:Zx,set:nV,reset:rV,enableAll:oV,isEnabled:ey}});Ne();lt();import Mt from"react";var RF=()=>Mt.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Mt.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),Mt.createElement("circle",{cx:"12",cy:"12",r:"3"}));var Ra={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},za=()=>Mt.createElement("svg",{...Ra},Mt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Mt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),zF=()=>Mt.createElement("svg",{...Ra},Mt.createElement("path",{d:"M18.84 12.25l1.72-1.71a5 5 0 0 0-7.07-7.07l-1.71 1.71"}),Mt.createElement("path",{d:"M5.17 11.75l-1.71 1.71a5 5 0 0 0 7.07 7.07l1.71-1.71"}),Mt.createElement("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),Mt.createElement("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),Mt.createElement("line",{x1:"16",y1:"22",x2:"16",y2:"19"}),Mt.createElement("line",{x1:"22",y1:"16",x2:"19",y2:"16"})),NF=()=>Mt.createElement("svg",{...Ra},Mt.createElement("polyline",{points:"23 4 23 10 17 10"}),Mt.createElement("polyline",{points:"1 20 1 14 7 14"}),Mt.createElement("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})),ty=()=>Mt.createElement("svg",{...Ra},Mt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Mt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),Mt.createElement("line",{x1:"11",y1:"8",x2:"11",y2:"14"}),Mt.createElement("line",{x1:"8",y1:"11",x2:"14",y2:"11"})),ny=()=>Mt.createElement("svg",{...Ra},Mt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Mt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),Mt.createElement("line",{x1:"8",y1:"11",x2:"14",y2:"11"}));var Na=Ct.div({marginTop:"20px"}),hu=Ct.div({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",flexWrap:"wrap",gap:"8px"}),xu=Ct.div({display:"flex",alignItems:"center",gap:"12px"}),Oa=Ct.div(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),lhe=Ct.div({display:"flex",gap:"8px"}),che=Ct.button(({active:e,theme:t})=>({padding:"4px 12px",backgroundColor:e?t.color.secondary:"transparent",color:e?"#fff":t.color.mediumdark,border:`1px solid ${e?t.color.secondary:t.appBorderColor}`,borderRadius:"4px",fontSize:"11px",fontWeight:500,cursor:"pointer",transition:"all 0.2s","&:hover":{opacity:.9}})),OF=Ct.div(({theme:e,layout:t})=>({display:t==="side-by-side"?"grid":"flex",gridTemplateColumns:t==="side-by-side"?"minmax(0, 1fr) minmax(0, 1fr)":void 0,gap:t==="side-by-side"?`${e.layoutMargin}px`:0,position:"relative",width:"100%",justifyContent:t==="overlay"?"center":void 0})),_a=Ct.div(({theme:e,zoomed:t})=>({position:"relative",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,overflow:"hidden",backgroundColor:e.background.app,minHeight:"60px",maxHeight:t?"400px":"150px",display:"flex",alignItems:"center",justifyContent:"center",transition:"max-height 0.2s ease, box-shadow 0.2s ease",boxShadow:t?"0 8px 30px rgba(0, 0, 0, 0.15)":"none","& img":t?{maxWidth:"100%",maxHeight:"400px"}:void 0})),$a=Ct.div(({theme:e})=>({position:"absolute",top:"6px",left:"6px",backgroundColor:e.base==="dark"?"rgba(255, 255, 255, 0.92)":"rgba(0, 0, 0, 0.7)",color:e.base==="dark"?"#0a0a0f":e.color.inverseText,padding:"3px 6px",borderRadius:"3px",fontSize:"10px",fontWeight:600,zIndex:10})),Ua=Ct.div({position:"absolute",top:"6px",right:"6px",display:"flex",gap:"4px",zIndex:10}),Ko=Ct.button(({theme:e,accent:t})=>({width:"24px",height:"24px",padding:"0",backgroundColor:e.base==="dark"?"rgba(255, 255, 255, 0.12)":"rgba(255, 255, 255, 0.92)",border:`1px solid ${t}55`,borderRadius:e.appBorderRadius,color:t,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"all 0.15s",backdropFilter:"blur(4px)","&:hover:not(:disabled)":{backgroundColor:t,color:"#ffffff",borderColor:t},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),lV=Ct.img(({opacity:e=1})=>({maxWidth:"150px",maxHeight:"150px",height:"auto",display:"block",objectFit:"contain",opacity:e})),cV=Ct.img({display:"block",objectFit:"contain",maxHeight:"150px",maxWidth:"150px"}),uV=Ct.div({position:"relative",display:"inline-block",maxHeight:"150px",overflow:"hidden"}),uhe=Ct.svg(({isVisible:e})=>({position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",opacity:e?1:0,transition:"opacity 150ms ease-in",...!e&&{transition:"opacity 100ms ease-out"}})),pV=Ct.div({position:"relative",display:"inline-block"}),phe=Ct.div(({width:e,height:t,theme:n})=>({position:"relative",width:e?`${e}px`:"auto",height:t?`${t}px`:"auto",border:`1px solid ${n.appBorderColor}`,borderRadius:"4px",overflow:"hidden",backgroundColor:n.background.app})),dV=Ct.img({display:"block",maxWidth:"100%",height:"auto",objectFit:"contain"}),gV=Ct.img({position:"absolute",top:"0",left:"0",pointerEvents:"none"}),fV=Ct.div({marginTop:"12px",display:"flex",alignItems:"center",gap:"12px"}),mV=Ct.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,minWidth:"80px"})),hV=Ct.input({flex:1}),oy=Ct.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px",border:`1px dashed ${e.appBorderColor}`,borderRadius:"4px"})),dhe=Ct.div(({theme:e})=>({padding:"40px",textAlign:"center",color:e.color.mediumdark,fontSize:"13px"})),iy=Ct.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px"}),xi=Ct.div(({theme:e})=>({position:"relative",border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",backgroundColor:e.background.content,minHeight:"80px",maxHeight:"120px",display:"flex",alignItems:"center",justifyContent:"center","&::before":{content:'""',position:"absolute",top:0,left:"-100%",width:"100%",height:"100%",background:e.base==="dark"?"linear-gradient(90deg, transparent, rgba(255,255,255,0.04), transparent)":"linear-gradient(90deg, transparent, rgba(0,0,0,0.04), transparent)",animation:"shimmer 1.5s ease-in-out infinite",pointerEvents:"none"},"@keyframes shimmer":{"0%":{left:"-100%"},"100%":{left:"100%"}}})),yi=Ct.div({textAlign:"center",zIndex:1}),bi=Ct.div(({theme:e})=>({width:"32px",height:"32px",border:`3px solid ${e.appBorderColor}`,borderTop:`3px solid ${e.color.secondary}`,borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"12px","@keyframes spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),Si=Ct.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,fontWeight:500})),sy=({isLoading:e=!1,isLoadingFigma:t=!1,isLoadingStorybook:n=!1})=>{let r=aV(),{currentMapping:o,loadingMapping:i}=tt(),{figmaImageUrl:s,storybookImageUrl:a,figmaDimensions:u,setFigmaImageUrl:c,hoveredIssueId:l,reviewHistory:d,currentReviewId:g}=ue(),{selectedProjectId:p}=Xe(),{sessionToken:m}=Se(),{openComponentBrowser:b}=Qs(),{hasMapping:I,deleteMapping:E,setCurrentMapping:k}=si(),D=ey("enableHoverHighlight"),[N,$]=xo("side-by-side"),[L,R]=xo(.5),[h,S]=xo(!1),[w,A]=xo(!1),[f,v]=xo(!1),[F,x]=xo(!1),[C,P]=xo(!1),B=async()=>{v(!1);try{let te=o?.id;te&&await E(te),k(null)}catch(te){y.error("[ScreenshotComparison] Failed to unlink:",te)}};iV(()=>{A(!1)},[s]);let[O,T]=xo(null),[z,W]=xo(null),M=ry(null),ie=ry(null),Y=ry(null),se=sV(()=>{if(!D||!l||!g)return null;let te=d.find(Ie=>Ie.id===g);return te?.issues&&te.issues.find(Ie=>Ie.id===l)||null},[l,g,d]),xe=te=>{let Ie=te.currentTarget;A(!0),!ht.getState().figmaDimensions&&Ie.naturalWidth&&Ie.naturalHeight&&ht.getState().setFigmaDimensions({width:Ie.naturalWidth,height:Ie.naturalHeight}),requestAnimationFrame(()=>{if(ie.current){let{clientWidth:pe,clientHeight:Be}=ie.current;pe&&Be&&W({width:pe,height:Be})}})},Pe=()=>{requestAnimationFrame(()=>{if(M.current){let{clientWidth:te,clientHeight:Ie}=M.current;te&&Ie&&T({width:te,height:Ie})}})},Ye=async()=>{if(!(!p||!m)){S(!0);try{let te=G();await ne(`${te}/api/figma/frames/invalidate?projectId=${p}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`},credentials:"include"}),c(null),y.debug("Figma cache cleared, image will reload on next review")}catch(te){y.error("Failed to refresh Figma:",te)}finally{S(!1)}}};return e?V.createElement(Na,null,V.createElement(hu,null,V.createElement(xu,null,V.createElement(Oa,null,"Screenshots from this review"))),V.createElement(iy,null,V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,"Loading Figma..."))),V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,"Loading Storybook..."))))):!s&&!a&&!o?i?V.createElement(Na,null,V.createElement(hu,null,V.createElement(xu,null,V.createElement(Oa,null,"Screenshots from this review"))),V.createElement(iy,null,V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,"Loading..."))))):V.createElement(Na,null,V.createElement(Oa,null,"Screenshots from this review"),V.createElement(_a,null,V.createElement($a,null,"Figma Design"),V.createElement(Ua,null,V.createElement(Ko,{accent:r.color.secondary,onClick:b,disabled:!p,title:"Browse Figma to map this component","aria-label":"Browse Figma to map this component"},V.createElement(za,null))),V.createElement(oy,{style:{border:"none",padding:"20px 16px",lineHeight:"1.6"}},V.createElement("div",{style:{fontSize:"14px",marginBottom:"6px"}},"\u2728 This story isn't linked to a Figma frame yet"),V.createElement("div",{style:{fontSize:"12px",opacity:.75}},"Click the \u{1F50D} above to browse your Figma file and pick a matching frame. Once linked, run a Review to compare your code with the design.")))):!s&&!a?V.createElement(Na,null,V.createElement(hu,null,V.createElement(xu,null,V.createElement(Oa,null,"Screenshots from this review"))),V.createElement(iy,null,V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,"Loading..."))))):V.createElement(Na,{ref:Y},V.createElement(hu,null,V.createElement(xu,null,V.createElement(Oa,null,"Screenshots from this review"))),N==="side-by-side"?V.createElement(OF,{layout:"side-by-side"},o&&s&&!t?V.createElement(_a,{zoomed:F},V.createElement($a,null,"Figma Design"),V.createElement(Ua,null,V.createElement(Ko,{accent:r.color.secondary,onClick:()=>x(te=>!te),title:F?"Shrink preview":"Enlarge preview","aria-label":F?"Shrink preview":"Enlarge preview"},F?V.createElement(ny,null):V.createElement(ty,null)),I&&V.createElement(Ko,{accent:r.color.secondary,onClick:b,title:"Browse Figma \u2014 change mapping","aria-label":"Browse Figma"},V.createElement(za,null)),V.createElement(Ko,{accent:r.color.positive,onClick:Ye,disabled:h,title:"Refresh Figma cache and reload image","aria-label":"Refresh Figma cache"},V.createElement(NF,null)),I&&V.createElement(Ko,{accent:r.color.negative,onClick:()=>v(!0),title:"Unlink Figma mapping","aria-label":"Unlink Figma mapping"},V.createElement(zF,null))),V.createElement(uV,null,V.createElement(cV,{ref:ie,src:s,alt:"Figma design",onLoad:xe,style:{opacity:w?1:0,transition:"opacity 150ms ease-in"}}))):o&&!s&&!t?V.createElement(_a,null,V.createElement($a,null,"Figma Design"),V.createElement(Ua,null,V.createElement(Ko,{accent:r.color.secondary,onClick:b,disabled:!p,title:"Change Figma mapping","aria-label":"Change Figma mapping"},V.createElement(za,null))),V.createElement(oy,{style:{border:"none",padding:"16px"}},"Figma image unavailable. Try mapping to a specific variant.")):!o&&!i?V.createElement(_a,null,V.createElement($a,null,"Figma Design"),V.createElement(Ua,null,V.createElement(Ko,{accent:r.color.secondary,onClick:b,disabled:!p,title:"Browse Figma to map this component","aria-label":"Browse Figma to map this component"},V.createElement(za,null))),V.createElement(oy,{style:{border:"none",padding:"16px"}},"No Figma mapping.")):V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,t?"Refreshing Figma...":"Loading Figma..."))),a&&!n?V.createElement(_a,{zoomed:C},V.createElement($a,null,"Storybook Component"),V.createElement(Ua,null,V.createElement(Ko,{accent:r.color.secondary,onClick:()=>P(te=>!te),title:C?"Shrink preview":"Enlarge preview","aria-label":C?"Shrink preview":"Enlarge preview"},C?V.createElement(ny,null):V.createElement(ty,null))),V.createElement(lV,{ref:M,src:a,alt:"Storybook component",onLoad:Pe})):V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,n?"Refreshing Storybook...":"Loading Storybook...")))):V.createElement(V.Fragment,null,V.createElement(OF,{layout:"overlay"},V.createElement(pV,null,s&&a?V.createElement(V.Fragment,null,V.createElement("div",{style:{position:"relative",display:"inline-block",border:"1px solid #ccc",borderRadius:"4px",overflow:"hidden"}},V.createElement(dV,{ref:M,src:a,alt:"Storybook component",onLoad:Pe,style:{maxHeight:"150px"}}),O&&V.createElement(gV,{src:s,alt:"Figma design overlay",style:{opacity:L,width:O.width,height:O.height,objectFit:"fill"}})),V.createElement("div",{style:{fontSize:"10px",color:r.color.mediumdark,marginTop:"8px",textAlign:"center"}},V.createElement("span",{style:{color:"#1ea7fd"}},"Storybook (base)")," + ",V.createElement("span",{style:{color:"#667eea"}},"Figma (overlay)"),O&&` \u2022 ${O.width}\xD7${O.height}px`)):V.createElement(xi,null,V.createElement(yi,null,V.createElement(bi,null),V.createElement(Si,null,"Loading Images..."))))),a&&s&&V.createElement(fV,null,V.createElement(mV,null,"Figma Opacity:"),V.createElement(hV,{type:"range",min:"0",max:"1",step:"0.01",value:L,onChange:te=>R(parseFloat(te.target.value))}),V.createElement("span",null,Math.round(L*100),"%"))),V.createElement(Hr,{isOpen:f,title:"Unlink Figma Mapping",message:"Unlink this story from its Figma mapping?",confirmLabel:"Unlink",variant:"danger",onConfirm:B,onCancel:()=>v(!1)}))};ve();lt();var xV=ds.div({height:"100%"}),ay=ds.div({marginBottom:"20px"}),_F=ds.div(({theme:e})=>({padding:"12px",backgroundColor:e.background.negative||"#fee2e2",border:`1px solid ${e.color.negative||"#fca5a5"}`,borderRadius:"6px",color:e.color.negative||"#991b1b",fontSize:"13px",marginBottom:"16px",display:"flex",alignItems:"flex-start",gap:"8px"})),$F=ds.span({fontSize:"16px",flexShrink:0}),yV=ds.div(({theme:e})=>({padding:"10px 12px",backgroundColor:`${e.color.warning}1a`,border:`1px solid ${e.color.warning}`,borderRadius:"6px",color:e.color.warning,fontSize:e.typography.size.s2,marginBottom:"16px",display:"flex",alignItems:"center",gap:"8px",lineHeight:1.4})),UF=ds.div({flex:1}),ly=()=>{let{reviewError:e,getCurrentReview:t}=ue(),n=t(),{showComponentBrowser:r,closeComponentBrowser:o,figmaFileUrl:i}=Qs(),{selectedProjectId:s}=lo(),{setCurrentMapping:a}=si(),{currentStoryId:u,currentStoryName:c}=tt(),{isLoadingScreenshots:l,isLoadingFigma:d,isLoadingStorybook:g,screenshotError:p,setFigmaImageDirect:m}=oi(),b=async I=>{y.debug("[ReviewPanel] handleSelectFrame CALLED with frame:",I),y.debug("[ReviewPanel] frame.id:",I?.id);let E=ht.getState(),k=E.selectedProjectId,D=E.currentStoryId,N=E.currentStoryName,$=E.figmaFileUrl;y.debug("[ReviewPanel] selectedProjectId (from store):",k),y.debug("[ReviewPanel] currentStoryId (from store):",D),y.debug("[ReviewPanel] currentStoryName (from store):",N),I.thumbnail&&D&&(y.debug("[ReviewPanel] Setting Figma image directly BEFORE mapping save (instant display)"),m(D,I.id,I.thumbnail));try{let L=G(),R=localStorage.getItem("uicopilot_session_token");if(y.debug("[ReviewPanel] sessionToken exists:",!!R),y.debug("[ReviewPanel] dashboardUrl:",L),!R||!k||!D){y.error("[ReviewPanel] Missing required data for saving mapping:",{hasSessionToken:!!R,selectedProjectId:k,currentStoryId:D});return}let h=$?.match(/\/file\/([^\/]+)/)?.[1]||void 0;y.debug("[ReviewPanel] Making POST to /api/mappings with:",{projectId:k,storyId:D,name:N,figmaNodeId:I.id,figmaFileKey:h});let S=await ne(`${L}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${R}`},body:JSON.stringify({projectId:k,storyId:D,name:N,figmaNodeId:I.id,figmaFileKey:h})});if(S.ok){let w=await S.json();w.mapping&&(a(w.mapping),I.thumbnail||(y.debug("[ReviewPanel] No thumbnail available, triggering fetch"),ht.getState().triggerScreenshotRefresh()),y.debug("[ReviewPanel] Mapping saved successfully:",w.mapping))}else{let w=await S.text();y.error("[ReviewPanel] Failed to save mapping:",w)}}catch(L){y.error("[ReviewPanel] Error saving mapping:",L)}};return Jt.createElement(xV,null,Jt.createElement(ay,null,Jt.createElement(Bh,null)),e&&Jt.createElement(_F,null,Jt.createElement($F,null,"\u26A0\uFE0F"),Jt.createElement(UF,null,e)),p&&Jt.createElement(_F,null,Jt.createElement($F,null,"\u26A0\uFE0F"),Jt.createElement(UF,null,"Screenshot loading error: ",p)),n?.variantMismatch&&Jt.createElement(yV,null,Jt.createElement("span",{style:{fontSize:16,flexShrink:0}},"\u26A0"),Jt.createElement("span",null,Jt.createElement("strong",null,"Variant mismatch:")," Storybook is showing ",Jt.createElement("strong",null,n.storybookVariant)," but Figma frame is ",Jt.createElement("strong",null,n.figmaVariant),". Some differences may be expected.")),Jt.createElement(ay,null,Jt.createElement(sy,{isLoading:l,isLoadingFigma:d,isLoadingStorybook:g})),Jt.createElement(ay,null,Jt.createElement(Jx,null)),Jt.createElement(Ji,{isOpen:r,onClose:o,onSelect:b,figmaFileUrl:i||"",projectId:s||void 0}))};ve();Ne();Ue();lt();import{useEffect as jF,useState as bV,useRef as cy,useCallback as SV}from"react";var wV=G(),vV=2e3;function HF(){let{sessionToken:e,usageData:t,setUsageData:n}=Se(),[r,o]=bV(null),i=cy(null),s=cy(!1),a=cy(0);jF(()=>{t?.creditBalance!==void 0&&i.current===null&&(i.current=t.creditBalance)},[t?.creditBalance]);let u=SV(()=>{o(null)},[]);return jF(()=>{if(!e)return;let c=async()=>{let d=Date.now();if(s.current||d-a.current<vV){y.debug("[useBalanceRefresh] Skipping refresh (debounced or in progress)");return}s.current=!0,a.current=d;try{y.debug("[useBalanceRefresh] Refreshing balance...");let g=await ne(`${wV}/api/addon/account`,{headers:{Authorization:`Bearer ${e}`}});if(g.ok){let p=await g.json(),m=p.creditBalance,b=i.current;if(b!==null&&m>b){let I=m-b;o({message:`Credits added! +${Math.floor(I)} credit(s)`,previousBalance:b,newBalance:m}),y.debug("[useBalanceRefresh] Credits added:",I)}i.current=m,n(p),y.debug("[useBalanceRefresh] Balance updated:",m)}}catch(g){y.error("[useBalanceRefresh] Failed to refresh:",g)}finally{s.current=!1}},l=()=>{document.visibilityState==="visible"&&c()};return document.addEventListener("visibilitychange",l),()=>{document.removeEventListener("visibilitychange",l)}},[e,n]),{notification:r,dismissNotification:u}}ve();ve();Ue();Ne();lt();Gf();import{useEffect as kV,useRef as CV}from"react";var TV=300*1e3,WF="uicopilot_feature_flags_fetched_at";function IV(){if(typeof localStorage>"u")return!1;try{let e=localStorage.getItem(WF);if(!e)return!1;let t=parseInt(e,10);return Number.isNaN(t)?!1:Date.now()-t<TV}catch{return!1}}var uy=null,FV={admin:{enableFixGeneration:!0,enableFixApply:!0,enableAutoMap:!0,enableReviewBadges:!0,showCosts:!0,enableParallelReview:!0,enableModelSelection:!0},beta:{enableFixGeneration:!0,enableFixApply:!1,enableAutoMap:!0,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1}};function VF(){let{setFeatureFlags:e,setUserRole:t,roleOverride:n}=ue(),{sessionToken:r,resetAuth:o}=Se(),i=CV(null);kV(()=>{if(!r||r===i.current)return;if(i.current=r,IV()){y.debug("[useFeatureFlags] Cache fresh, skipping fetch");return}if(uy){y.debug("[useFeatureFlags] Reusing in-flight fetch");return}let s=`${G()}/api/addon/flags`;uy=ne(s,{headers:{Authorization:`Bearer ${r}`}}).then(a=>{if(a.status===401||a.status===403)throw y.debug("[useFeatureFlags] Token rejected, resetting auth"),o(),new Error("session token invalid");if(!a.ok)throw new Error(`flags endpoint returned ${a.status}`);return a.json()}).then(a=>{y.debug("[useFeatureFlags] Received flags:",a);let u={enableFixGeneration:!!a.enableFixGeneration,enableFixApply:!!a.enableFixApply,enableAutoMap:!!a.enableAutoMap,enableReviewBadges:!!a.enableReviewBadges,showCosts:!!a.showCosts,enableParallelReview:!!a.enableParallelReview,enableModelSelection:!!a.enableModelSelection};a.role&&(t(a.role),a.role==="beta"&&zw());let c=a.role==="admin"&&n?FV[n]:u;e(c);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(c)),a.role&&localStorage.setItem("uicopilot_user_role",a.role),localStorage.setItem(WF,Date.now().toString())}catch{}}).catch(a=>{y.warn("[useFeatureFlags] Failed to fetch flags, using defaults:",a.message)}).finally(()=>{uy=null})},[r,e,t])}ve();Ue();hn();var PV={success:"linear-gradient(135deg, #10b981 0%, #059669 100%)",warning:"linear-gradient(135deg, #f59e0b 0%, #d97706 100%)",error:"linear-gradient(135deg, #ef4444 0%, #dc2626 100%)"},LV=yr.div`
167
167
  position: fixed;
168
168
  top: 16px;
169
169
  right: 16px;
170
- background: ${({variant:e})=>xV[e||"success"]};
170
+ background: ${({variant:e})=>PV[e||"success"]};
171
171
  color: white;
172
172
  padding: 12px 20px;
173
173
  border-radius: 8px;
@@ -187,12 +187,12 @@ ${"=".repeat(40)}
187
187
  opacity: 1;
188
188
  }
189
189
  }
190
- `,bV=br.span`
190
+ `,MV=yr.span`
191
191
  font-size: 20px;
192
- `,SV=br.span`
192
+ `,BV=yr.span`
193
193
  font-weight: 500;
194
194
  font-size: 14px;
195
- `,wV=br.button`
195
+ `,DV=yr.button`
196
196
  background: rgba(255, 255, 255, 0.2);
197
197
  border: none;
198
198
  color: white;
@@ -208,15 +208,15 @@ ${"=".repeat(40)}
208
208
  &:hover {
209
209
  background: rgba(255, 255, 255, 0.3);
210
210
  }
211
- `,vV=br.div`
211
+ `,RV=yr.div`
212
212
  padding: 8px 16px;
213
213
  border-top: 1px solid ${({theme:e})=>e.appBorderColor};
214
214
  font-size: 11px;
215
215
  color: ${({theme:e})=>e.color.mediumdark};
216
216
  text-align: center;
217
217
  opacity: 0.7;
218
- `,kV=br.div(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"48px 24px",textAlign:"center",gap:"16px"})),CV=br.div({fontSize:"32px"}),TV=br.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),IV=br.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s2,color:e.color.mediumdark,maxWidth:"320px",lineHeight:1.5})),DF=br.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"10px",padding:"10px 14px",margin:"8px 12px",backgroundColor:`${e.color.warning}15`,border:`1px solid ${e.color.warning}50`,borderRadius:e.appBorderRadius,fontSize:e.typography.size.s2,color:e.color.defaultText})),RF=br.span({flex:1}),zF=br.button(({theme:e})=>({padding:"4px 12px",fontSize:11,fontWeight:600,border:`1px solid ${e.color.warning}`,borderRadius:e.appBorderRadius,backgroundColor:"transparent",color:e.color.warning,cursor:"pointer",whiteSpace:"nowrap","&:hover":{backgroundColor:`${e.color.warning}15`}})),NF=()=>{let{selectedProjectId:e,projects:t,loadingProjects:n}=Qe(),{isConnected:r,sessionToken:o,authError:i}=Se(),{currentStoryId:s}=nt(),{currentReviewId:a,userRole:u,roleOverride:c,setRoleOverride:l,setFeatureFlags:d}=ce(),[g,p]=mV(!1),m=()=>{l(null),o&&fetch(`${G()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(L=>L.json()).then(L=>{d({enableFixGeneration:!!L.enableFixGeneration,enableFixApply:!!L.enableFixApply,enableAutoMap:!!L.enableAutoMap,enableReviewBadges:!!L.enableReviewBadges,showCosts:!!L.showCosts,enableParallelReview:!!L.enableParallelReview,enableModelSelection:!!L.enableModelSelection})}).catch(()=>{})};km(),$m(),BF(),Mm(),Am();let{notification:b,dismissNotification:F}=LF();hV(()=>{if(b){let L=setTimeout(F,5e3);return()=>clearTimeout(L)}},[b,F]);let E=t.find(L=>L.id===e),v=r&&!!e&&!!E,D=!!o&&!!e&&(n||t.length===0),{loadingMapping:O}=nt(),$=v&&!!s&&!a&&O;return Ot.createElement(Su,{header:Ot.createElement(wu,{toolbar:Ot.createElement(Gf,{onOpenSettings:()=>p(!0)})}),footer:Ot.createElement(vV,null,Pt.NAME," v","0.5.34")},b&&Ot.createElement(yV,{variant:b.variant||"success"},Ot.createElement(bV,null,b.variant==="error"?"!":b.variant==="warning"?"\u26A0":"+"),Ot.createElement(SV,null,b.message),Ot.createElement(wV,{onClick:F},"x")),i&&Ot.createElement(DF,null,Ot.createElement("span",null,"\u26A0"),Ot.createElement(RF,null,i),Ot.createElement(zF,{onClick:()=>p(!0)},"Reconnect")),u==="admin"&&c&&Ot.createElement(DF,null,Ot.createElement("span",null,"\u{1F441}"),Ot.createElement(RF,null,"Previewing as ",c),Ot.createElement(zF,{onClick:m},"Exit preview")),D||$?Ot.createElement(ru,{label:D?"Loading...":"Loading review..."}):v?Ot.createElement(ey,null):Ot.createElement(kV,null,Ot.createElement(CV,null,"\u2699"),Ot.createElement(TV,null,i?"Connection issue":`Set up ${Pt.NAME}`),Ot.createElement(IV,null,i?"Session expired or dashboard unreachable. Please reconnect.":"Connect your account and select a project to start reviewing your components against Figma designs."),Ot.createElement(an,{onClick:()=>p(!0)},i?"Reconnect":"Open Settings")),g&&Ot.createElement(i1,{onClose:()=>p(!1)}))};import OF,{useCallback as FV}from"react";import{useStorybookApi as EV}from"storybook/manager-api";import{IconButton as AV}from"storybook/internal/components";var PV="uireview",LV=`${PV}/panel`,_F=()=>{let e=EV(),t=FV(()=>{e.togglePanel(!0),e.setSelectedPanel(LV)},[e]);return OF.createElement(AV,{key:"uireview-tool",title:"UI Review - Compare with Figma",onClick:t},OF.createElement(kF,null))};ve();import Xt,{useState as ja,useCallback as HF,useEffect as sy}from"react";import{styled as ho,useTheme as jV}from"storybook/theming";import{addons as gu}from"storybook/manager-api";Ue();Ne();import{addons as NV,experimental_getStatusStore as du}from"storybook/manager-api";async function $F(e,t,n,r){let o=new Array(e.length),i=0;async function s(){for(;i<e.length&&!r();){let a=i++;try{let u=await e[a]();o[a]=u,r()||n(a,u)}catch(u){o[a]=u,r()||n(a,u)}}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>s())),o}Ue();Ne();var MV=G(),BV="uireview/badge";async function DV(e,t,n=3){for(let r=0;r<=n;r++){let o=await fetch(e,t);if(o.status!==429||r===n)return o;let i=Math.pow(2,r)*1e3;y.warn(`[reviewAll] Rate limited, retrying in ${i}ms`),await new Promise(s=>setTimeout(s,i))}throw new Error("Max retries exceeded")}async function RV(e,t){let n=new TextDecoder,r="",o=null,i=0,s=0,a=0,u=0,c=0,l=0;for(;;){let{done:d,value:g}=await e.read();if(d)break;if(t()){e.cancel();break}r+=n.decode(g,{stream:!0});let p=r.split(`
219
- `);r=p.pop()||"";for(let m of p)if(m.startsWith("data: "))try{let b=JSON.parse(m.slice(6));if(b.type==="complete"){o=b.complianceScore??b.validation?.complianceScore??null;let E=(b.issues||[]).filter(v=>!v.dismissed);i=E.filter(v=>v.severity==="critical").length,s=E.filter(v=>v.severity==="major").length,a=E.filter(v=>v.severity==="minor").length,u=b.costUsd||0,c=b.inputTokens||0,l=b.outputTokens||0}}catch{}}return{score:o,criticalCount:i,majorCount:s,minorCount:a,costUsd:u,inputTokens:c,outputTokens:l}}function pu(e,t,n,r,o){e&&e.set([{value:n,typeId:BV,storyId:t,title:r,description:o}])}async function zV(e){let t=window.location.origin;try{let n=await fetch(`${t}/__uicopilot/capture?storyId=${encodeURIComponent(e)}`);if(n.ok){let r=await n.json();return{screenshot:r.screenshot||void 0,computedStyles:r.computedStyles||void 0,domTree:r.domTree||void 0}}}catch{}try{let n=await fetch(`${t}/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`);if(n.ok)return{screenshot:(await n.json()).screenshot||void 0}}catch{}return{}}async function UF(e,t,n,r,o,i){pu(o,e.storyId,"status-value:pending","Reviewing...",e.storyName);try{console.warn(`[reviewAll] Capturing for: ${e.storyName} (${e.storyId})`);let s=await zV(e.storyId);console.warn(`[reviewAll] Captured: screenshot=${!!s.screenshot} domTree=${!!s.domTree} styles=${!!s.computedStyles} for: ${e.storyName}`);let a=await DV(`${MV}/api/review/stream`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({projectId:n,storyId:e.storyId,storyName:e.storyName,storybookScreenshot:s.screenshot,computedStyles:s.computedStyles,domTree:s.domTree,aiModels:[r]})});if(console.warn(`[reviewAll] API response for ${e.storyName}: HTTP ${a.status}`),!a.ok)throw new Error(`HTTP ${a.status}`);let u=a.body?.getReader();if(!u)throw new Error("No response body");let c=await RV(u,i),{score:l,criticalCount:d,majorCount:g,minorCount:p,costUsd:m,inputTokens:b,outputTokens:F}=c;if(l!==null){let E=d>0||l<70?"status-value:error":g>0||l<90?"status-value:warning":"status-value:success",v=[`Score: ${l}`];d>0&&v.push(`${d} critical`),g>0&&v.push(`${g} major`),p>0&&v.push(`${p} minor`);let D=l>=90?`\u2713 Score ${l}`:l>=70?`\u26A0 Score ${l}`:`\u2717 Score ${l}`;return pu(o,e.storyId,E,D,v.join(" \xB7 ")),{passed:l>=70,score:l,costUsd:m,inputTokens:b,outputTokens:F}}return pu(o,e.storyId,"status-value:error","Review Failed","No score received"),{passed:!1,score:null,costUsd:0,inputTokens:0,outputTokens:0}}catch(s){y.error(`[reviewAll] Failed to review ${e.storyName}:`,s);let a=s instanceof Error?s.message:"Unknown error";return pu(o,e.storyId,"status-value:error","Review Failed",a),{passed:!1,score:null,costUsd:0,inputTokens:0,outputTokens:0}}}var OV=G(),_a="uireview/badge";function jF(){let e=!1,t=!1;try{let n=NV.getChannel();n.on(oy,async()=>{if(!t){t=!0,e=!1;try{await UV(n,()=>e)}finally{t=!1}}}),n.on(iy,()=>{e=!0})}catch{}}async function ry(){try{let e=localStorage.getItem("uicopilot_session_token"),t=localStorage.getItem("uicopilot_selected_project_id");if(!e||!t)return[];let n=await fetch(`${OV}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(!n.ok)return[];let i=((await n.json()).mappings||[]).filter(s=>s.figmaNodeId).map(s=>{let a=s;return{storyId:a.storyId,storyName:a.name||a.storyId,figmaNodeId:a.figmaNodeId}});return _V(i),i}catch(e){return y.error("[useReviewAll] Failed to load mapped stories:",e),[]}}function _V(e){try{if(typeof du!="function")return;let t=du(_a);if(!t)return;let n=t.getAll?.()||{},r=new Set(e.map(s=>s.storyId)),o=Object.keys(n).filter(s=>n[s]?.[_a]&&!r.has(s));o.length>0&&t.unset(o);let i=e.filter(s=>{let a=n[s.storyId]?.[_a];return!(a?.value==="status-value:success"||a?.value==="status-value:warning"||a?.value==="status-value:error")}).map(s=>({value:"status-value:pending",typeId:_a,storyId:s.storyId,title:"Mapped to Figma",description:"Ready for UI review \u2014 click Run to start"}));i.length>0&&t.set(i)}catch{}}function $V(){try{let e=localStorage.getItem("uicopilot_review_all_concurrency");if(e)return Math.max(1,Math.min(5,parseInt(e,10)))}catch{}return 3}async function UV(e,t){let n=await ry();if(n.length===0){e.emit(Ua,{total:0,passed:0,failed:0});return}let r=localStorage.getItem("uicopilot_session_token"),o=localStorage.getItem("uicopilot_selected_project_id");if(!r||!o)return;let i="claude-sonnet-4-6";try{let b=localStorage.getItem("uicopilot_selected_models");if(b){let F=JSON.parse(b);Array.isArray(F)&&F.length>0&&(i=F[0])}}catch{}let s=null;try{typeof du=="function"&&(s=du(_a))}catch{}let a=$V(),u=0,c=0,l=0,d=0,g=0,p=0;e.emit($a,{total:n.length,completed:0,currentStoryName:n[0]?.storyName||""});let m=n.map(b=>()=>UF(b,r,o,i,s,t));await $F(m,a,(b,F)=>{if(F&&typeof F=="object"&&"score"in F){let E=F;E.score!==null&&E.score>=90?u++:E.score!==null&&E.score>=70?c++:l++,d+=E.costUsd||0,g+=E.inputTokens||0,p+=E.outputTokens||0}else l++;console.warn(`[reviewAll] Story ${b+1}/${n.length} done:`,n[b].storyName,F),e.emit($a,{total:n.length,completed:u+c+l,currentStoryName:n[b].storyName})},t),e.emit(Ua,{total:n.length,passed:u,failed:l,warnCount:c,costUsd:d,inputTokens:g,outputTokens:p})}var HV=ho.div({padding:"8px 12px",display:"flex",flexDirection:"column",gap:"6px"}),WV=ho.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"}),VV=ho.span(({theme:e})=>({fontSize:"12px",fontWeight:500,color:e.color.defaultText})),WF=ho.span(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark})),VF=ho.button(({theme:e,running:t})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 12px",background:t?e.color.warning:e.color.secondary,border:"none",borderRadius:"6px",color:e.color.inverseText,cursor:"pointer",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,transition:"all 0.2s","&:disabled":{opacity:.4,cursor:"not-allowed"},"&:hover:not(:disabled)":{opacity:.9}})),GV=ho.div(({theme:e})=>({width:"100%",height:"3px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden"})),qV=ho.div(({theme:e,percent:t})=>({width:`${t}%`,height:"100%",backgroundColor:e.color.secondary,borderRadius:"2px",transition:"width 0.3s ease"})),GF=ho.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.8}px`,fontSize:e.typography.size.s1,color:e.color.mediumdark})),ds=ho.span(e=>({display:"flex",alignItems:"center",gap:"3px","&::before":{content:'""',display:"inline-block",width:"7px",height:"7px",borderRadius:"50%",backgroundColor:e.dotColor}})),oy="uireview/review-all-start",iy="uireview/review-all-cancel",$a="uireview/review-all-progress",Ua="uireview/review-all-complete";function qF(){try{let e=localStorage.getItem("uicopilot_feature_flags");return e?!!JSON.parse(e).enableParallelReview:!1}catch{return!1}}var YF=()=>{let[e,t]=ja(!1),[n,r]=ja(null),[o,i]=ja(null),[s,a]=ja(null),[u,c]=ja(qF);sy(()=>{let m=()=>c(qF()),b=setInterval(m,2e3);return window.addEventListener("storage",m),()=>{clearInterval(b),window.removeEventListener("storage",m)}},[]),sy(()=>{let m=()=>{ry().then(v=>{a(v.length)}).catch(()=>{})},b=setTimeout(m,3e3),F=null;try{F=gu.getChannel(),F.on("storyChanged",m),F.on("uireview/mappings-changed",m)}catch{}let E=setInterval(m,6e4);return()=>{clearTimeout(b),clearInterval(E),F&&(F.off("storyChanged",m),F.off("uireview/mappings-changed",m))}},[]),sy(()=>{let m;try{m=gu.getChannel()}catch{return}let b=E=>{r(E),t(!0)},F=E=>{t(!1),r(null),i({total:E.total,passed:E.passed,failed:E.failed,warned:E.warnCount||0,costUsd:E.costUsd||0})};return m.on($a,b),m.on(Ua,F),()=>{m.off($a,b),m.off(Ua,F)}},[]);let l=HF(()=>{try{gu.getChannel().emit(oy),t(!0),i(null)}catch{}},[]),d=HF(()=>{try{gu.getChannel().emit(iy)}catch{}t(!1),r(null)},[]),g=n?Math.round(n.completed/n.total*100):0,p=jV();return u?Xt.createElement(HV,null,Xt.createElement(WV,null,Xt.createElement(VV,null,"UI Review"),e?Xt.createElement(VF,{running:!0,onClick:d},"Cancel"):Xt.createElement(VF,{onClick:l,disabled:!s||s===0},"Run",s?` (${s})`:"")),!e&&o?Xt.createElement(Xt.Fragment,null,Xt.createElement(GF,null,Xt.createElement(ds,{dotColor:p.color.positive},"Pass (",o.passed,")"),Xt.createElement(ds,{dotColor:p.color.warning},"Warn (",o.warned,")"),Xt.createElement(ds,{dotColor:p.color.negative},"Fail (",o.failed,")")),o.costUsd>0&&Xt.createElement(WF,null,"$",o.costUsd.toFixed(3)," \xB7 \u20AA",(o.costUsd*3.6).toFixed(3))):e?null:Xt.createElement(GF,null,Xt.createElement(ds,{dotColor:p.color.positive},"Pass"),Xt.createElement(ds,{dotColor:p.color.warning},"Warn"),Xt.createElement(ds,{dotColor:p.color.negative},"Fail")),e&&n&&Xt.createElement(Xt.Fragment,null,Xt.createElement(GV,null,Xt.createElement(qV,{percent:g})),Xt.createElement(WF,null,"Reviewing ",Math.min(n.completed+1,n.total),"/",n.total," \u2014 ",n.currentStoryName))):null};import*as XF from"@sentry/react";var YV="https://015e961f5f626bad5315430e02940616@o138219.ingest.us.sentry.io/4511134750539776",KF=!1;function KV(){if(typeof window>"u")return"production";let e=window.location.hostname;return/^(localhost|127\.0\.0\.1|0\.0\.0\.0)$/i.test(e)?"localhost":"production"}function QF(){if(!KF){KF=!0;try{XF.init({dsn:YV,environment:KV(),release:`uicopilot-addon@${process.env.npm_package_version||"unknown"}`,tracesSampleRate:0,enabled:!0,beforeSend(e){return e.tags={...e.tags,component:"storybook-addon"},e}})}catch{}}}QF();var mu="uireview",QV=`${mu}/panel`,JV=`${mu}/tool`,JF=`${mu}/test-provider`;fu.register(mu,()=>{if(console.log("[UI Review] Registering addon, checking for StatusStore API..."),typeof ly=="function"){console.log("[UI Review] StatusStore API available, initializing badges");let t=ly("uireview/badge");Uv(t);let n=ly("uireview/mapped");Wv(n),console.log("[UI Review] Badge listener initialized")}else console.warn("[UI Review] experimental_getStatusStore not available \u2014 badges disabled");fu.add(JV,{type:ay.TOOL,title:"UI Review",match:({viewMode:t})=>t==="story",render:()=>Ha.createElement(_F,null)}),jF(),(()=>{try{let t=localStorage.getItem("uicopilot_feature_flags");return t?!!JSON.parse(t).enableParallelReview:!1}catch{return!1}})()&&fu.add(JF,{type:ay.experimental_TEST_PROVIDER,id:JF,render:()=>Ha.createElement(YF,null)}),fu.add(QV,{type:ay.PANEL,title:"UI Review",match:({viewMode:t})=>t==="story",render:({active:t})=>Ha.createElement(XV,{active:t||!1},Ha.createElement(Hf,null,Ha.createElement(NF,null)))})});
218
+ `,zV=yr.div(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"48px 24px",textAlign:"center",gap:"16px"})),NV=yr.div({fontSize:"32px"}),OV=yr.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),_V=yr.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s2,color:e.color.mediumdark,maxWidth:"320px",lineHeight:1.5})),GF=yr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"10px",padding:"10px 14px",margin:"8px 12px",backgroundColor:`${e.color.warning}15`,border:`1px solid ${e.color.warning}50`,borderRadius:e.appBorderRadius,fontSize:e.typography.size.s2,color:e.color.defaultText})),qF=yr.span({flex:1}),YF=yr.button(({theme:e})=>({padding:"4px 12px",fontSize:11,fontWeight:600,border:`1px solid ${e.color.warning}`,borderRadius:e.appBorderRadius,backgroundColor:"transparent",color:e.color.warning,cursor:"pointer",whiteSpace:"nowrap","&:hover":{backgroundColor:`${e.color.warning}15`}})),KF=()=>{let{selectedProjectId:e,projects:t,loadingProjects:n}=Xe(),{isConnected:r,sessionToken:o,authError:i}=Se(),{currentStoryId:s}=tt(),{currentReviewId:a,userRole:u,roleOverride:c,setRoleOverride:l,setFeatureFlags:d}=ue(),[g,p]=EV(!1),m=()=>{l(null),o&&fetch(`${G()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(L=>L.json()).then(L=>{d({enableFixGeneration:!!L.enableFixGeneration,enableFixApply:!!L.enableFixApply,enableAutoMap:!!L.enableAutoMap,enableReviewBadges:!!L.enableReviewBadges,showCosts:!!L.showCosts,enableParallelReview:!!L.enableParallelReview,enableModelSelection:!!L.enableModelSelection})}).catch(()=>{})};Pm(),qm(),VF(),_m(),zm();let{notification:b,dismissNotification:I}=HF();AV(()=>{if(b){let L=setTimeout(I,5e3);return()=>clearTimeout(L)}},[b,I]);let E=t.find(L=>L.id===e),k=r&&!!e&&!!E,D=!!o&&!!e&&(n||t.length===0),{loadingMapping:N}=tt(),$=k&&!!s&&!a&&N;return zt.createElement(Fu,{header:zt.createElement(Eu,{toolbar:zt.createElement(em,{onOpenSettings:()=>p(!0)})}),footer:zt.createElement(RV,null,Et.NAME," v","0.5.36")},b&&zt.createElement(LV,{variant:b.variant||"success"},zt.createElement(MV,null,b.variant==="error"?"!":b.variant==="warning"?"\u26A0":"+"),zt.createElement(BV,null,b.message),zt.createElement(DV,{onClick:I},"x")),i&&zt.createElement(GF,null,zt.createElement("span",null,"\u26A0"),zt.createElement(qF,null,i),zt.createElement(YF,{onClick:()=>p(!0)},"Reconnect")),u==="admin"&&c&&zt.createElement(GF,null,zt.createElement("span",null,"\u{1F441}"),zt.createElement(qF,null,"Previewing as ",c),zt.createElement(YF,{onClick:m},"Exit preview")),D||$?zt.createElement(uu,{label:D?"Loading...":"Loading review..."}):k?zt.createElement(ly,null):zt.createElement(zV,null,zt.createElement(NV,null,"\u2699"),zt.createElement(OV,null,i?"Connection issue":`Set up ${Et.NAME}`),zt.createElement(_V,null,i?"Session expired or dashboard unreachable. Please reconnect.":"Connect your account and select a project to start reviewing your components against Figma designs."),zt.createElement(on,{onClick:()=>p(!0)},i?"Reconnect":"Open Settings")),g&&zt.createElement(x1,{onClose:()=>p(!1)}))};import XF,{useCallback as $V}from"react";import{useStorybookApi as UV}from"storybook/manager-api";import{IconButton as jV}from"storybook/internal/components";var HV="uireview",WV=`${HV}/panel`,QF=()=>{let e=UV(),t=$V(()=>{e.togglePanel(!0),e.setSelectedPanel(WV)},[e]);return XF.createElement(jV,{key:"uireview-tool",title:"UI Review - Compare with Figma",onClick:t},XF.createElement(RF,null))};ve();import Yt,{useState as Va,useCallback as tE,useEffect as fy}from"react";import{styled as yo,useTheme as t9}from"storybook/theming";import{addons as Su}from"storybook/manager-api";Ue();Ne();import{addons as XV,experimental_getStatusStore as bu}from"storybook/manager-api";async function JF(e,t,n,r){let o=new Array(e.length),i=0;async function s(){for(;i<e.length&&!r();){let a=i++;try{let u=await e[a]();o[a]=u,r()||n(a,u)}catch(u){o[a]=u,r()||n(a,u)}}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>s())),o}Ue();Ne();var VV=G(),GV="uireview/badge";async function qV(e,t,n=3){for(let r=0;r<=n;r++){let o=await fetch(e,t);if(o.status!==429||r===n)return o;let i=Math.pow(2,r)*1e3;y.warn(`[reviewAll] Rate limited, retrying in ${i}ms`),await new Promise(s=>setTimeout(s,i))}throw new Error("Max retries exceeded")}async function YV(e,t){let n=new TextDecoder,r="",o=null,i=0,s=0,a=0,u=0,c=0,l=0;for(;;){let{done:d,value:g}=await e.read();if(d)break;if(t()){e.cancel();break}r+=n.decode(g,{stream:!0});let p=r.split(`
219
+ `);r=p.pop()||"";for(let m of p)if(m.startsWith("data: "))try{let b=JSON.parse(m.slice(6));if(b.type==="complete"){o=b.complianceScore??b.validation?.complianceScore??null;let E=(b.issues||[]).filter(k=>!k.dismissed);i=E.filter(k=>k.severity==="critical").length,s=E.filter(k=>k.severity==="major").length,a=E.filter(k=>k.severity==="minor").length,u=b.costUsd||0,c=b.inputTokens||0,l=b.outputTokens||0}}catch{}}return{score:o,criticalCount:i,majorCount:s,minorCount:a,costUsd:u,inputTokens:c,outputTokens:l}}function yu(e,t,n,r,o){e&&e.set([{value:n,typeId:GV,storyId:t,title:r,description:o}])}async function KV(e){let t=window.location.origin;try{let n=await fetch(`${t}/__uicopilot/capture?storyId=${encodeURIComponent(e)}`);if(n.ok){let r=await n.json();return{screenshot:r.screenshot||void 0,computedStyles:r.computedStyles||void 0,domTree:r.domTree||void 0}}}catch{}try{let n=await fetch(`${t}/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`);if(n.ok)return{screenshot:(await n.json()).screenshot||void 0}}catch{}return{}}async function ZF(e,t,n,r,o,i){yu(o,e.storyId,"status-value:pending","Reviewing...",e.storyName);try{console.warn(`[reviewAll] Capturing for: ${e.storyName} (${e.storyId})`);let s=await KV(e.storyId);console.warn(`[reviewAll] Captured: screenshot=${!!s.screenshot} domTree=${!!s.domTree} styles=${!!s.computedStyles} for: ${e.storyName}`);let a=await qV(`${VV}/api/review/stream`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({projectId:n,storyId:e.storyId,storyName:e.storyName,storybookScreenshot:s.screenshot,computedStyles:s.computedStyles,domTree:s.domTree,aiModels:[r]})});if(console.warn(`[reviewAll] API response for ${e.storyName}: HTTP ${a.status}`),!a.ok)throw new Error(`HTTP ${a.status}`);let u=a.body?.getReader();if(!u)throw new Error("No response body");let c=await YV(u,i),{score:l,criticalCount:d,majorCount:g,minorCount:p,costUsd:m,inputTokens:b,outputTokens:I}=c;if(l!==null){let E=d>0||l<70?"status-value:error":g>0||l<90?"status-value:warning":"status-value:success",k=[`Score: ${l}`];d>0&&k.push(`${d} critical`),g>0&&k.push(`${g} major`),p>0&&k.push(`${p} minor`);let D=l>=90?`\u2713 Score ${l}`:l>=70?`\u26A0 Score ${l}`:`\u2717 Score ${l}`;return yu(o,e.storyId,E,D,k.join(" \xB7 ")),{passed:l>=70,score:l,costUsd:m,inputTokens:b,outputTokens:I}}return yu(o,e.storyId,"status-value:error","Review Failed","No score received"),{passed:!1,score:null,costUsd:0,inputTokens:0,outputTokens:0}}catch(s){y.error(`[reviewAll] Failed to review ${e.storyName}:`,s);let a=s instanceof Error?s.message:"Unknown error";return yu(o,e.storyId,"status-value:error","Review Failed",a),{passed:!1,score:null,costUsd:0,inputTokens:0,outputTokens:0}}}var QV=G(),ja="uireview/badge";function eE(){let e=!1,t=!1;try{let n=XV.getChannel();n.on(dy,async()=>{if(!t){t=!0,e=!1;try{await e9(n,()=>e)}finally{t=!1}}}),n.on(gy,()=>{e=!0})}catch{}}async function py(){try{let e=localStorage.getItem("uicopilot_session_token"),t=localStorage.getItem("uicopilot_selected_project_id");if(!e||!t)return[];let n=await fetch(`${QV}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(!n.ok)return[];let i=((await n.json()).mappings||[]).filter(s=>s.figmaNodeId).map(s=>{let a=s;return{storyId:a.storyId,storyName:a.name||a.storyId,figmaNodeId:a.figmaNodeId}});return JV(i),i}catch(e){return y.error("[useReviewAll] Failed to load mapped stories:",e),[]}}function JV(e){try{if(typeof bu!="function")return;let t=bu(ja);if(!t)return;let n=t.getAll?.()||{},r=new Set(e.map(s=>s.storyId)),o=Object.keys(n).filter(s=>n[s]?.[ja]&&!r.has(s));o.length>0&&t.unset(o);let i=e.filter(s=>{let a=n[s.storyId]?.[ja];return!(a?.value==="status-value:success"||a?.value==="status-value:warning"||a?.value==="status-value:error")}).map(s=>({value:"status-value:pending",typeId:ja,storyId:s.storyId,title:"Mapped to Figma",description:"Ready for UI review \u2014 click Run to start"}));i.length>0&&t.set(i)}catch{}}function ZV(){try{let e=localStorage.getItem("uicopilot_review_all_concurrency");if(e)return Math.max(1,Math.min(5,parseInt(e,10)))}catch{}return 3}async function e9(e,t){let n=await py();if(n.length===0){e.emit(Wa,{total:0,passed:0,failed:0});return}let r=localStorage.getItem("uicopilot_session_token"),o=localStorage.getItem("uicopilot_selected_project_id");if(!r||!o)return;let i="claude-sonnet-4-6";try{let b=localStorage.getItem("uicopilot_selected_models");if(b){let I=JSON.parse(b);Array.isArray(I)&&I.length>0&&(i=I[0])}}catch{}let s=null;try{typeof bu=="function"&&(s=bu(ja))}catch{}let a=ZV(),u=0,c=0,l=0,d=0,g=0,p=0;e.emit(Ha,{total:n.length,completed:0,currentStoryName:n[0]?.storyName||""});let m=n.map(b=>()=>ZF(b,r,o,i,s,t));await JF(m,a,(b,I)=>{if(I&&typeof I=="object"&&"score"in I){let E=I;E.score!==null&&E.score>=90?u++:E.score!==null&&E.score>=70?c++:l++,d+=E.costUsd||0,g+=E.inputTokens||0,p+=E.outputTokens||0}else l++;console.warn(`[reviewAll] Story ${b+1}/${n.length} done:`,n[b].storyName,I),e.emit(Ha,{total:n.length,completed:u+c+l,currentStoryName:n[b].storyName})},t),e.emit(Wa,{total:n.length,passed:u,failed:l,warnCount:c,costUsd:d,inputTokens:g,outputTokens:p})}var n9=yo.div({padding:"8px 12px",display:"flex",flexDirection:"column",gap:"6px"}),r9=yo.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"}),o9=yo.span(({theme:e})=>({fontSize:"12px",fontWeight:500,color:e.color.defaultText})),nE=yo.span(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark})),rE=yo.button(({theme:e,running:t})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 12px",background:t?e.color.warning:e.color.secondary,border:"none",borderRadius:"6px",color:e.color.inverseText,cursor:"pointer",fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,transition:"all 0.2s","&:disabled":{opacity:.4,cursor:"not-allowed"},"&:hover:not(:disabled)":{opacity:.9}})),i9=yo.div(({theme:e})=>({width:"100%",height:"3px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden"})),s9=yo.div(({theme:e,percent:t})=>({width:`${t}%`,height:"100%",backgroundColor:e.color.secondary,borderRadius:"2px",transition:"width 0.3s ease"})),oE=yo.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.8}px`,fontSize:e.typography.size.s1,color:e.color.mediumdark})),gs=yo.span(e=>({display:"flex",alignItems:"center",gap:"3px","&::before":{content:'""',display:"inline-block",width:"7px",height:"7px",borderRadius:"50%",backgroundColor:e.dotColor}})),dy="uireview/review-all-start",gy="uireview/review-all-cancel",Ha="uireview/review-all-progress",Wa="uireview/review-all-complete";function iE(){try{let e=localStorage.getItem("uicopilot_feature_flags");return e?!!JSON.parse(e).enableParallelReview:!1}catch{return!1}}var sE=()=>{let[e,t]=Va(!1),[n,r]=Va(null),[o,i]=Va(null),[s,a]=Va(null),[u,c]=Va(iE);fy(()=>{let m=()=>c(iE()),b=setInterval(m,2e3);return window.addEventListener("storage",m),()=>{clearInterval(b),window.removeEventListener("storage",m)}},[]),fy(()=>{let m=()=>{py().then(k=>{a(k.length)}).catch(()=>{})},b=setTimeout(m,3e3),I=null;try{I=Su.getChannel(),I.on("storyChanged",m),I.on("uireview/mappings-changed",m)}catch{}let E=setInterval(m,6e4);return()=>{clearTimeout(b),clearInterval(E),I&&(I.off("storyChanged",m),I.off("uireview/mappings-changed",m))}},[]),fy(()=>{let m;try{m=Su.getChannel()}catch{return}let b=E=>{r(E),t(!0)},I=E=>{t(!1),r(null),i({total:E.total,passed:E.passed,failed:E.failed,warned:E.warnCount||0,costUsd:E.costUsd||0})};return m.on(Ha,b),m.on(Wa,I),()=>{m.off(Ha,b),m.off(Wa,I)}},[]);let l=tE(()=>{try{Su.getChannel().emit(dy),t(!0),i(null)}catch{}},[]),d=tE(()=>{try{Su.getChannel().emit(gy)}catch{}t(!1),r(null)},[]),g=n?Math.round(n.completed/n.total*100):0,p=t9();return u?Yt.createElement(n9,null,Yt.createElement(r9,null,Yt.createElement(o9,null,"UI Review"),e?Yt.createElement(rE,{running:!0,onClick:d},"Cancel"):Yt.createElement(rE,{onClick:l,disabled:!s||s===0},"Run",s?` (${s})`:"")),!e&&o?Yt.createElement(Yt.Fragment,null,Yt.createElement(oE,null,Yt.createElement(gs,{dotColor:p.color.positive},"Pass (",o.passed,")"),Yt.createElement(gs,{dotColor:p.color.warning},"Warn (",o.warned,")"),Yt.createElement(gs,{dotColor:p.color.negative},"Fail (",o.failed,")")),o.costUsd>0&&Yt.createElement(nE,null,"$",o.costUsd.toFixed(3)," \xB7 \u20AA",(o.costUsd*3.6).toFixed(3))):e?null:Yt.createElement(oE,null,Yt.createElement(gs,{dotColor:p.color.positive},"Pass"),Yt.createElement(gs,{dotColor:p.color.warning},"Warn"),Yt.createElement(gs,{dotColor:p.color.negative},"Fail")),e&&n&&Yt.createElement(Yt.Fragment,null,Yt.createElement(i9,null,Yt.createElement(s9,{percent:g})),Yt.createElement(nE,null,"Reviewing ",Math.min(n.completed+1,n.total),"/",n.total," \u2014 ",n.currentStoryName))):null};import*as lE from"@sentry/react";var a9="https://015e961f5f626bad5315430e02940616@o138219.ingest.us.sentry.io/4511134750539776",aE=!1;function l9(){if(typeof window>"u")return"production";let e=window.location.hostname;return/^(localhost|127\.0\.0\.1|0\.0\.0\.0)$/i.test(e)?"localhost":"production"}function cE(){if(!aE){aE=!0;try{lE.init({dsn:a9,environment:l9(),release:`uicopilot-addon@${process.env.npm_package_version||"unknown"}`,tracesSampleRate:0,enabled:!0,beforeSend(e){return e.tags={...e.tags,component:"storybook-addon"},e}})}catch{}}}cE();var vu="uireview",u9=`${vu}/panel`,p9=`${vu}/tool`,uE=`${vu}/test-provider`;wu.register(vu,()=>{if(console.log("[UI Review] Registering addon, checking for StatusStore API..."),typeof hy=="function"){console.log("[UI Review] StatusStore API available, initializing badges");let t=hy("uireview/badge");Zv(t);let n=hy("uireview/mapped");nk(n),console.log("[UI Review] Badge listener initialized")}else console.warn("[UI Review] experimental_getStatusStore not available \u2014 badges disabled");wu.add(p9,{type:my.TOOL,title:"UI Review",match:({viewMode:t})=>t==="story",render:()=>Ga.createElement(QF,null)}),eE(),(()=>{try{let t=localStorage.getItem("uicopilot_feature_flags");return t?!!JSON.parse(t).enableParallelReview:!1}catch{return!1}})()&&wu.add(uE,{type:my.experimental_TEST_PROVIDER,id:uE,render:()=>Ga.createElement(sE,null)}),wu.add(u9,{type:my.PANEL,title:"UI Review",match:({viewMode:t})=>t==="story",render:({active:t})=>Ga.createElement(c9,{active:t||!1},Ga.createElement(Qf,null,Ga.createElement(KF,null)))})});
220
220
  /*! Bundled license information:
221
221
 
222
222
  @noble/hashes/utils.js: