@uicopilot/storybook-addon 0.8.1 → 0.9.1
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/README.md +122 -9
- package/dist/manager.mjs +6 -6
- package/package.json +2 -2
package/dist/manager.mjs
CHANGED
|
@@ -9,9 +9,9 @@ var UT=Object.create;var Yl=Object.defineProperty;var jT=Object.getOwnPropertyDe
|
|
|
9
9
|
value: `+(i||"<empty string>")+`
|
|
10
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 Rc(e,t){return t=t||0,e.length-t>=2&&e.charCodeAt(t)===Tc&&e.charCodeAt(t+1)===Tc}function xb(e,t){if(t=t||0,e.length-t>=3&&e.charCodeAt(t)===Tc&&e.charCodeAt(t+1)!==Tc){let n=e.indexOf("-",t+2);if(n!==-1)return e.substring(t,n+1)}return""}function f9(e){if(Ic.has(e))return Ic.get(e);let t=e.toLowerCase(),n=Ic.get(t);if(n===void 0){let r=Rc(t,0),o=r?"":xb(t,0);n=Object.freeze({basename:t.substr(o.length),name:t,prefix:o,vendor:o,custom:r})}return Ic.set(e,n),n}function m9(e){if(fa.has(e))return fa.get(e);let t=e,n=e[0];n==="/"?n=e[1]==="/"?"//":"/":n!=="_"&&n!=="*"&&n!=="$"&&n!=="#"&&n!=="+"&&n!=="&"&&(n="");let r=Rc(t,n.length);if(!r&&(t=t.toLowerCase(),fa.has(t))){let s=fa.get(t);return fa.set(e,s),s}let o=r?"":xb(t,n.length),i=t.substr(0,n.length+o.length),a=Object.freeze({basename:t.substr(i.length),name:t.substr(n.length),hack:n,vendor:o,prefix:i,custom:r});return fa.set(e,a),a}var Ic,fa,Tc,Ec,Np,Ac=$(()=>{"use strict";Ic=new Map,fa=new Map,Tc=45,Ec=f9,Np=m9});var ma,Fc=$(()=>{"use strict";ma=["initial","inherit","unset","revert","revert-layer"]});function $p(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function Cs(e,t,n){for(;e!==null&&(e.type===13||e.type===25);)e=n(++t);return t}function ti(e,t,n,r){if(!e)return 0;let o=e.value.charCodeAt(t);if(o===Is||o===ho){if(n)return 0;t++}for(;t<e.value.length;t++)if(!un(e.value.charCodeAt(t)))return 0;return r+1}function Op(e,t,n){let r=!1,o=Cs(e,t,n);if(e=n(o),e===null)return t;if(e.type!==10)if($p(e,Is)||$p(e,ho)){if(r=!0,o=Cs(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!==Is&&i!==ho)return 0}return ti(e,r?0:1,r,o)}function Hp(e,t){let n=0;if(!e)return 0;if(e.type===10)return ti(e,0,x9,n);if(e.type===1&&e.value.charCodeAt(0)===ho){if(!Po(e.value,1,_p))return 0;switch(e.value.length){case 2:return Op(t(++n),n,t);case 3:return e.value.charCodeAt(2)!==ho?0:(n=Cs(t(++n),n,t),e=t(n),ti(e,0,ha,n));default:return e.value.charCodeAt(2)!==ho?0:ti(e,3,ha,n)}}else if(e.type===1||$p(e,Is)&&t(n+1).type===1){if(e.type!==1&&(e=t(++n)),e===null||!Po(e.value,0,_p))return 0;switch(e.value.length){case 1:return Op(t(++n),n,t);case 2:return e.value.charCodeAt(1)!==ho?0:(n=Cs(t(++n),n,t),e=t(n),ti(e,0,ha,n));default:return e.value.charCodeAt(1)!==ho?0:ti(e,2,ha,n)}}else if(e.type===12){let r=e.value.charCodeAt(0),o=r===Is||r===ho?1:0,i=o;for(;i<e.value.length&&un(e.value.charCodeAt(i));i++);return i===o||!Po(e.value,i,_p)?0:i+1===e.value.length?Op(t(++n),n,t):e.value.charCodeAt(i+1)!==ho?0:i+2===e.value.length?(n=Cs(t(++n),n,t),e=t(n),ti(e,0,ha,n)):ti(e,i+2,ha,n)}return 0}var Is,ho,_p,ha,x9,yb=$(()=>{"use strict";Br();Is=43,ho=45,_p=110,ha=!0,x9=!1});function Up(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function w9(e,t){return e.value.charCodeAt(0)===t}function Ts(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 Ts(e,t+r+1,!1),6;if(!lr(i)||++r>6)return 0}return r}function Pc(e,t,n){if(!e)return 0;for(;Up(n(t),wb);){if(++e>6)return 0;t++}return t}function jp(e,t){let n=0;if(e===null||e.type!==1||!Po(e.value,0,b9)||(e=t(++n),e===null))return 0;if(Up(e,y9))return e=t(++n),e===null?0:e.type===1?Pc(Ts(e,0,!0),++n,t):Up(e,wb)?Pc(1,++n,t):0;if(e.type===10){let r=Ts(e,1,!0);return r===0?0:(e=t(++n),e===null?n:e.type===12||e.type===10?!w9(e,bb)||!Ts(e,1,!1)?0:n+1:Pc(r,n,t))}return e.type===12?Pc(Ts(e,1,!0),++n,t):0}var y9,bb,wb,b9,vb=$(()=>{"use strict";Br();y9=43,bb=45,wb=63,b9=117});function Qr(e,t){return t<e.length?e.charCodeAt(t):0}function kb(e,t){return Mo(e,0,e.length,t)}function Cb(e,t){for(let n=0;n<t.length;n++)if(kb(e,t[n]))return!0;return!1}function Ib(e,t){return t!==e.length-2?!1:Qr(e,t)===92&&un(Qr(e,t+1))}function Mc(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 I9(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=Kp.get(e.type);break}o++}while(e=t(o));return o}function Dr(e,t){return function(n,r,o){return n===null?0:n.type===2&&Cb(n.value,t)?I9(n,r):e(n,r,o)}}function Jt(e){return function(t){return t===null||t.type!==e?0:1}}function T9(e){if(e===null||e.type!==1)return 0;let t=e.value.toLowerCase();return Cb(t,ma)||kb(t,"default")?0:1}function Tb(e){return e===null||e.type!==1||Qr(e.value,0)!==45||Qr(e.value,1)!==45?0:1}function E9(e){return!Tb(e)||e.value==="--"?0:1}function R9(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(!lr(Qr(e.value,n)))return 0;return 1}function A9(e){return e===null||e.type!==4||!ia(Qr(e.value,1),Qr(e.value,2),Qr(e.value,3))?0:1}function F9(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=Kp.get(e.type);break}o++}while(e=t(o));return o}function P9(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=Kp.get(e.type);break}o++}while(e=t(o));return o}function No(e){return e&&(e=new Set(e)),function(t,n,r){if(t===null||t.type!==12)return 0;let o=Ai(t.value,0);if(e!==null){let i=t.value.indexOf("\\",o),a=i===-1||!Ib(t.value,i)?t.value.substr(o):t.value.substring(o,i);if(e.has(a.toLowerCase())===!1)return 0}return Mc(r,t.value,o)?0:1}}function M9(e,t,n){return e===null||e.type!==11||Mc(n,e.value,e.value.length-1)?0:1}function Eb(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 L9(e,t,n){if(e===null)return 0;let r=Ai(e.value,0);return!(r===e.value.length)&&!Ib(e.value,r)||Mc(n,e.value,r)?0:1}function B9(e,t,n){if(e===null||e.type!==10)return 0;let r=Qr(e.value,0)===43||Qr(e.value,0)===45?1:0;for(;r<e.value.length;r++)if(!un(Qr(e.value,r)))return 0;return Mc(n,e.value,r)?0:1}function _9(e){let{angle:t,decibel:n,frequency:r,flex:o,length:i,resolution:a,semitones:s,time:u}=e||{};return{dimension:Dr(No(null),Do),angle:Dr(No(t),Do),decibel:Dr(No(n),Do),frequency:Dr(No(r),Do),flex:Dr(No(o),Do),length:Dr(Eb(No(i)),Do),resolution:Dr(No(a),Do),semitones:Dr(No(s),Do),time:Dr(No(u),Do)}}function O9(e){let t=new Set;for(let n of N9)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 Rb(e){return{...z9,...D9,..._9(e),"attr-unit":O9(e)}}var Vp,Wp,Gp,v9,S9,k9,qp,Yp,Sb,C9,Do,Kp,z9,D9,N9,Ab=$(()=>{"use strict";Fc();yb();vb();Br();Vp=["calc(","-moz-calc(","-webkit-calc("],Wp=["min(","max(","clamp("],Gp=["round(","mod(","rem("],v9=["sin(","cos(","tan("],S9=["asin(","acos(","atan(","atan2("],k9=["pow(","sqrt(","log(","exp(","sign("],qp=["hypot("],Yp=["abs("],Sb=[...Vp,...Wp,...Gp,...v9,...k9,...qp,...Yp],C9=[...Vp,...Wp,...Gp,...qp,...Yp],Do=[...Vp,...Wp,...Gp,...S9,...qp,...Yp],Kp=new Map([[2,22],[21,22],[19,20],[23,24]]);z9={"ident-token":Jt(1),"function-token":Jt(2),"at-keyword-token":Jt(3),"hash-token":Jt(4),"string-token":Jt(5),"bad-string-token":Jt(6),"url-token":Jt(7),"bad-url-token":Jt(8),"delim-token":Jt(9),"number-token":Jt(10),"percentage-token":Jt(11),"dimension-token":Jt(12),"whitespace-token":Jt(13),"CDO-token":Jt(14),"CDC-token":Jt(15),"colon-token":Jt(16),"semicolon-token":Jt(17),"comma-token":Jt(18),"[-token":Jt(19),"]-token":Jt(20),"(-token":Jt(21),")-token":Jt(22),"{-token":Jt(23),"}-token":Jt(24)},D9={string:Jt(5),ident:Jt(1),percentage:Dr(M9,C9),zero:Eb(),number:Dr(L9,Sb),integer:Dr(B9,Sb),"custom-ident":T9,"dashed-ident":Tb,"custom-property-name":E9,"hex-color":R9,"id-selector":A9,"an-plus-b":Hp,urange:jp,"declaration-value":F9,"any-value":P9},N9=["length","angle","time","frequency","resolution","flex","decibel","semitones"]});var Lc={};Ee(Lc,{angle:()=>H9,decibel:()=>G9,flex:()=>W9,frequency:()=>j9,length:()=>$9,resolution:()=>V9,semitones:()=>q9,time:()=>U9});var $9,H9,U9,j9,V9,W9,G9,q9,Fb=$(()=>{"use strict";$9=["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"],H9=["deg","grad","rad","turn"],U9=["s","ms"],j9=["hz","khz"],V9=["dpi","dpcm","dppx","x"],W9=["fr"],G9=["db"],q9=["st"]});function Pb(e,t,n){return Object.assign(Pi("SyntaxError",e),{input:t,offset:n,rawMessage:e,message:e+`
|
|
11
11
|
`+t+`
|
|
12
|
-
--`+new Array((n||t.length)+1).join("-")+"^"})}var Mb=$(()=>{"use strict";yc()});var Y9,K9,X9,J9,Q9,Lb,Bc,Bb=$(()=>{"use strict";Mb();Y9=9,K9=10,X9=12,J9=13,Q9=32,Lb=new Uint8Array(128).map((e,t)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(t))?1:0),Bc=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&&Lb[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!==J9&&n!==K9&&n!==X9&&n!==Q9&&n!==Y9)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 Pb(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||Lb[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 $b(e){let t=null,n=null;return e.eat(Nc),e.skipWs(),t=e.scanNumber(e),e.skipWs(),e.charCode()===tg?(e.pos++,e.skipWs(),e.charCode()!==Qp&&(n=e.scanNumber(e),e.skipWs())):n=t,e.eat(Qp),{min:Number(t),max:n?Number(n):0}}function iR(e){let t=null,n=!1;switch(e.charCode()){case Vb:e.pos++,t={min:0,max:0};break;case eg:e.pos++,t={min:1,max:0};break;case Dc:e.pos++,t={min:0,max:1};break;case Zp:e.pos++,n=!0,e.charCode()===Nc?t=$b(e):e.charCode()===Dc?(e.pos++,t={min:0,max:0}):t={min:1,max:0};break;case Nc:t=$b(e);break;default:return null}return{type:"Multiplier",comma:n,min:t.min,max:t.max,term:null}}function _o(e,t){let n=iR(e);return n!==null?(n.term=t,e.charCode()===Zp&&e.charCodeAt(e.pos-1)===eg||e.charCode()===Dc&&e.charCodeAt(e.pos-1)===Qp?_o(e,n):n):t}function Xp(e){let t=e.peek();return t===""?null:_o(e,{type:"Token",value:t})}function aR(e){let t;return e.eat(ng),e.eat(zc),t=e.scanWord(),e.eat(zc),e.eat(Jp),_o(e,{type:"Property",name:t})}function sR(e){let t=null,n=null,r=1;return e.eat(Es),e.charCode()===Db&&(e.peek(),r=-1),r==-1&&e.charCode()===_b?e.peek():(t=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(t+=e.scanWord())),e.skipWs(),e.eat(tg),e.skipWs(),e.charCode()===_b?e.peek():(r=1,e.charCode()===Db&&(e.peek(),r=-1),n=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(n+=e.scanWord())),e.eat(xa),{type:"Range",min:t,max:n}}function lR(e){let t,n=null;if(e.eat(ng),t=e.scanWord(),t==="boolean-expr"){e.eat(Es);let r=_c(e,xa);return e.eat(xa),e.eat(Jp),_o(e,{type:"Boolean",term:r.terms.length===1?r.terms[0]:r})}return e.charCode()===Ub&&e.nextCharCode()===jb&&(e.pos+=2,t+="()"),e.charCodeAt(e.findWsEnd(e.pos))===Es&&(e.skipWs(),n=sR(e)),e.eat(Jp),_o(e,{type:"Type",name:t,opts:n})}function cR(e){let t=e.scanWord();return e.charCode()===Ub?(e.pos++,{type:"Function",name:t}):_o(e,{type:"Keyword",name:t})}function uR(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)=>Ob[o]-Ob[i]);t.length>0;){r=t.shift();let o=0,i=0;for(;o<e.length;o++){let a=e[o];a.type==="Combinator"&&(a.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 _c(e,t=-1){let n=Object.create(null),r=[],o=null,i=e.pos,a=!1;for(;e.charCode()!==t;){let s=a?_c(e,jb):pR(e);if(!s)break;if(s.type!=="Spaces"){if(a){if(s.terms.length===0){a=!1;continue}if(s.combinator===" "){for(;s.terms.length>1;)n[" "]=!0,r.push({type:"Combinator",value:" "},s.terms.shift());s=s.terms[0]}}s.type==="Combinator"?((o===null||o.type==="Combinator")&&(e.pos=i,e.error("Unexpected combinator")),n[s.value]=!0):o!==null&&o.type!=="Combinator"&&(n[" "]=!0,r.push({type:"Combinator",value:" "})),r.push(s),o=s,i=e.pos,a=s.type==="Function"}}return o!==null&&o.type==="Combinator"&&(e.pos-=i,e.error("Unexpected combinator")),{type:"Group",terms:r,combinator:uR(r,n)||" ",disallowEmpty:!1,explicit:!1}}function dR(e){let t;return e.eat(Es),t=_c(e,xa),e.eat(xa),t.explicit=!0,e.charCode()===Hb&&(e.pos++,t.disallowEmpty=!0),t}function pR(e){let t=e.charCode();switch(t){case xa:break;case Es:return _o(e,dR(e));case ng:return e.nextCharCode()===zc?aR(e):lR(e);case Nb:return{type:"Combinator",value:e.substringToPos(e.pos+(e.nextCharCode()===Nb?2:1))};case zb:return e.pos++,e.eat(zb),{type:"Combinator",value:"&&"};case tg:return e.pos++,{type:"Comma"};case zc:return _o(e,{type:"String",value:e.scanString()});case rR:case Z9:case eR:case nR:case tR:return{type:"Spaces",value:e.scanSpaces()};case oR:return t=e.nextCharCode(),e.isNameCharCode(t)?(e.pos++,{type:"AtKeyword",name:e.scanWord()}):Xp(e);case Vb:case eg:case Dc:case Zp:case Hb:break;case Nc:if(t=e.nextCharCode(),t<48||t>57)return Xp(e);break;default:return e.isNameCharCode(t)?cR(e):Xp(e)}}function Rs(e){let t=new Bc(e),n=_c(t);return t.pos!==e.length&&t.error("Unexpected input"),n.terms.length===1&&n.terms[0].type==="Group"?n.terms[0]:n}var Z9,eR,tR,nR,rR,Hb,Zp,zb,zc,Ub,jb,Vb,eg,tg,Db,ng,Jp,Dc,oR,Es,xa,Nc,Nb,Qp,_b,Ob,rg=$(()=>{"use strict";Bb();Z9=9,eR=10,tR=12,nR=13,rR=32,Hb=33,Zp=35,zb=38,zc=39,Ub=40,jb=41,Vb=42,eg=43,tg=44,Db=45,ng=60,Jp=62,Dc=63,oR=64,Es=91,xa=93,Nc=123,Nb=124,Qp=125,_b=8734,Ob={" ":1,"&&":2,"||":3,"|":4}});function Wb(e){return typeof e=="function"?e:As}function og(e,t,n){function r(a){switch(o.call(n,a),a.type){case"Group":a.terms.forEach(r);break;case"Multiplier":case"Boolean":r(a.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: "+a.type)}i.call(n,a)}let o=As,i=As;if(typeof t=="function"?o=t:t&&(o=Wb(t.enter),i=Wb(t.leave)),o===As&&i===As)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");r(e,n)}var As,Gb=$(()=>{"use strict";As=function(){}});var ig=$(()=>{"use strict";Dp();rg();Gb()});function mR(e){let t=[];return ei(e,(n,r,o)=>t.push({type:n,value:e.slice(r,o),node:null})),t}function qb(e,t){return typeof e=="string"?mR(e):t.generate(e,fR)}var fR,Yb=$(()=>{"use strict";Br();fR={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 qn(e,t,n){return t===At&&n===$t||e===At&&t===At&&n===At?e:(e.type==="If"&&e.else===$t&&t===At&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:n})}function Xb(e){return e.length>2&&e.charCodeAt(e.length-2)===hR&&e.charCodeAt(e.length-1)===xR}function Kb(e){return e.type==="Keyword"||e.type==="AtKeyword"||e.type==="Function"||e.type==="Type"&&Xb(e.name)}function ni(e,t=" ",n=!1){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:n}}function Fs(e,t,n=new Set){if(!n.has(e))switch(n.add(e),e.type){case"If":e.match=Fs(e.match,t,n),e.then=Fs(e.then,t,n),e.else=Fs(e.else,t,n);break;case"Type":return t[e.name]||e}return e}function ag(e,t,n){switch(e){case" ":{let r=At;for(let o=t.length-1;o>=0;o--){let i=t[o];r=qn(i,r,$t)}return r}case"|":{let r=$t,o=null;for(let i=t.length-1;i>=0;i--){let a=t[i];if(Kb(a)&&(o===null&&i>0&&Kb(t[i-1])&&(o=Object.create(null),r=qn({type:"Enum",map:o},At,r)),o!==null)){let s=(Xb(a.name)?a.name.slice(0,-1):a.name).toLowerCase();if(!(s in o)){o[s]=a;continue}}o=null,r=qn(a,At,r)}return r}case"&&":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!0};let r=$t;for(let o=t.length-1;o>=0;o--){let i=t[o],a;t.length>1?a=ag(e,t.filter(function(s){return s!==i}),!1):a=At,r=qn(i,a,r)}return r}case"||":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!1};let r=n?At:$t;for(let o=t.length-1;o>=0;o--){let i=t[o],a;t.length>1?a=ag(e,t.filter(function(s){return s!==i}),!0):a=At,r=qn(i,a,r)}return r}}}function yR(e){let t=At,n=ya(e.term);if(e.max===0)n=qn(n,Oc,$t),t=qn(n,null,$t),t.then=qn(At,At,t),e.comma&&(t.then.else=qn({type:"Comma",syntax:e},t,$t));else for(let r=e.min||1;r<=e.max;r++)e.comma&&t!==At&&(t=qn({type:"Comma",syntax:e},t,$t)),t=qn(n,qn(At,At,t),$t);if(e.min===0)t=qn(At,At,t);else for(let r=0;r<e.min-1;r++)e.comma&&t!==At&&(t=qn({type:"Comma",syntax:e},t,$t)),t=qn(n,t,$t);return t}function ya(e){if(typeof e=="function")return{type:"Generic",fn:e};switch(e.type){case"Group":{let t=ag(e.combinator,e.terms.map(ya),!1);return e.disallowEmpty&&(t=qn(t,Oc,$t)),t}case"Multiplier":return yR(e);case"Boolean":{let t=ya(e.term),n=ya(ni([ni([{type:"Keyword",name:"not"},{type:"Type",name:"!boolean-group"}]),ni([{type:"Type",name:"!boolean-group"},ni([{type:"Multiplier",comma:!1,min:0,max:0,term:ni([{type:"Keyword",name:"and"},{type:"Type",name:"!boolean-group"}])},{type:"Multiplier",comma:!1,min:0,max:0,term:ni([{type:"Keyword",name:"or"},{type:"Type",name:"!boolean-group"}])}],"|")])],"|")),r=ya(ni([{type:"Type",name:"!term"},ni([{type:"Token",value:"("},{type:"Type",name:"!self"},{type:"Token",value:")"}]),{type:"Type",name:"general-enclosed"}],"|"));return Fs(r,{"!term":t,"!self":n}),Fs(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 Ps(e,t){return typeof e=="string"&&(e=Rs(e)),{type:"MatchGraph",match:ya(e),syntax:t||null,source:e}}var At,$t,Oc,hR,xR,sg=$(()=>{"use strict";rg();At={type:"Match"},$t={type:"Mismatch"},Oc={type:"DisallowEmpty"},hR=40,xR=41});function CR(e){let t=null,n=null,r=e;for(;r!==null;)n=r.prev,r.prev=t,t=r,r=n;return t}function lg(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 IR(e){return e.type!==9?!1:e.value!=="?"}function e2(e){return e===null?!0:e.type===18||e.type===2||e.type===21||e.type===19||e.type===23||IR(e)}function t2(e){return e===null?!0:e.type===22||e.type===20||e.type===24||e.type===9&&e.value==="/"}function TR(e,t,n){function r(){do x++,S=x<e.length?e[x]:null;while(S!==null&&(S.type===13||S.type===25))}function o(O){let L=x+O;return L<e.length?e[L]:null}function i(O,L){return{nextState:O,matchStack:z,syntaxStack:p,thenStack:g,tokenIndex:x,prev:L}}function a(O){g={nextState:O,matchStack:z,syntaxStack:p,prev:g}}function s(O){d=i(O,d)}function u(){z={type:wR,syntax:t.syntax,token:S,prev:z},r(),f=null,x>M&&(M=x)}function c(){p={syntax:t.syntax,opts:t.syntax.opts||p!==null&&p.opts||null,prev:p},z={type:cg,syntax:t.syntax,token:z.token,prev:z}}function l(){z.type===cg?z=z.prev:z={type:n2,syntax:p.syntax,token:z.token,prev:z},p=p.prev}let p=null,g=null,d=null,f=null,y=0,I=null,S=null,x=-1,M=0,z={type:bR,syntax:null,token:null,prev:null};for(r();I===null&&++y<Zb;)switch(t.type){case"Match":if(g===null){if(S!==null&&(x!==e.length-1||S.value!=="\\0"&&S.value!=="\\9")){t=$t;break}I=Qb;break}if(t=g.nextState,t===Oc)if(g.matchStack===z){t=$t;break}else t=At;for(;g.syntaxStack!==p;)l();g=g.prev;break;case"Mismatch":if(f!==null&&f!==!1)(d===null||x>d.tokenIndex)&&(d=f,f=!1);else if(d===null){I=vR;break}t=d.nextState,g=d.thenStack,p=d.syntaxStack,z=d.matchStack,x=d.tokenIndex,S=x<e.length?e[x]:null,d=d.prev;break;case"MatchGraph":t=t.match;break;case"If":t.else!==$t&&s(t.else),t.then!==At&&a(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=$t;break}t=At;break}if(t.mask===(1<<N.length)-1){t=At;break}for(;t.index<N.length;t.index++){let m=1<<t.index;if((t.mask&m)===0){s(t),a({type:"AddMatchOnce",syntax:t.syntax,mask:t.mask|m}),t=N[t.index++];break}}break}case"AddMatchOnce":t={type:"MatchOnceBuffer",syntax:t.syntax,index:0,mask:t.mask};break;case"Enum":if(S!==null){let N=S.value.toLowerCase();if(N.indexOf("\\")!==-1&&(N=N.replace(/\\[09].*$/,"")),Jb.call(t.map,N)){t=t.map[N];break}}t=$t;break;case"Generic":{let N=p!==null?p.opts:null,m=x+Math.floor(t.fn(S,o,N));if(!isNaN(m)&&m>x){for(;x<m;)u();t=At}else t=$t;break}case"Type":case"Property":{let N=t.type==="Type"?"types":"properties",m=Jb.call(n,N)?n[N][t.name]:null;if(!m||!m.match)throw new Error("Bad syntax reference: "+(t.type==="Type"?"<"+t.name+">":"<'"+t.name+"'>"));if(f!==!1&&S!==null&&t.type==="Type"&&(t.name==="custom-ident"&&S.type===1||t.name==="length"&&S.value==="0")){f===null&&(f=i(t,d)),t=$t;break}c(),t=m.matchRef||m.match;break}case"Keyword":{let N=t.name;if(S!==null){let m=S.value;if(m.indexOf("\\")!==-1&&(m=m.replace(/\\[09].*$/,"")),lg(m,N)){u(),t=At;break}}t=$t;break}case"AtKeyword":case"Function":if(S!==null&&lg(S.value,t.name)){u(),t=At;break}t=$t;break;case"Token":if(S!==null&&S.value===t.value){u(),t=At;break}t=$t;break;case"Comma":S!==null&&S.type===18?e2(z.token)?t=$t:(u(),t=t2(S)?$t:At):t=e2(z.token)||t2(S)?At:$t;break;case"String":let O="",L=x;for(;L<e.length&&O.length<t.value.length;L++)O+=e[L].value;if(lg(O,t.value)){for(;x<L;)u();t=At}else t=$t;break;default:throw new Error("Unknown node type: "+t.type)}switch(kR+=y,I){case null:console.warn("[csstree-match] BREAK after "+Zb+" iterations"),I=SR,z=null;break;case Qb:for(;p!==null;)l();break;default:z=null}return{tokens:e,reason:I,iterations:y,match:z,longestMatch:M}}function ug(e,t,n){let r=TR(e,t,n||{});if(r.match===null)return r;let o=r.match,i=r.match={syntax:t.syntax||null,match:[]},a=[i];for(o=CR(o).prev;o!==null;){switch(o.type){case cg:i.match.push(i={syntax:o.syntax,match:[]}),a.push(i);break;case n2:a.pop(),i=a[a.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 Jb,bR,wR,cg,n2,Qb,vR,SR,Zb,kR,r2=$(()=>{"use strict";sg();({hasOwnProperty:Jb}=Object.prototype),bR=0,wR=1,cg=2,n2=3,Qb="Match",vR="Mismatch",SR="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",Zb=15e3,kR=0});var pg={};Ee(pg,{getTrace:()=>o2,isKeyword:()=>AR,isProperty:()=>RR,isType:()=>ER});function o2(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 ER(e,t){return dg(this,e,n=>n.type==="Type"&&n.name===t)}function RR(e,t){return dg(this,e,n=>n.type==="Property"&&n.name===t)}function AR(e){return dg(this,e,t=>t.type==="Keyword")}function dg(e,t,n){let r=o2.call(e,t);return r===null?!1:r.some(n)}var i2=$(()=>{"use strict"});function a2(e){return"node"in e?e.node:a2(e.match[0])}function s2(e){return"node"in e?e.node:s2(e.match[e.match.length-1])}function gg(e,t,n,r,o){function i(s){if(s.syntax!==null&&s.syntax.type===r&&s.syntax.name===o){let u=a2(s),c=s2(s);e.syntax.walk(t,function(l,p,g){if(l===u){let d=new Sr;do{if(d.appendData(p.data),p.data===c)break;p=p.next}while(p!==null);a.push({parent:g,nodes:d})}})}Array.isArray(s.match)&&s.match.forEach(i)}let a=[];return n.matched!==null&&i(n.matched),a}var l2=$(()=>{"use strict";bs()});function fg(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&e>=0}function c2(e){return!!e&&fg(e.offset)&&fg(e.line)&&fg(e.column)}function FR(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 a=!0;if(Ms.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(!c2(r.loc.start))i+=".start";else if(!c2(r.loc.end))i+=".end";else continue;a=!1}else if(t.hasOwnProperty(i)){a=!1;for(let s=0;!a&&s<t[i].length;s++){let u=t[i][s];switch(u){case String:a=typeof r[i]=="string";break;case Boolean:a=typeof r[i]=="boolean";break;case null:a=r[i]===null;break;default:typeof u=="string"?a=r[i]&&r[i].type===u:Array.isArray(u)&&(a=r[i]instanceof Sr)}}}else o(r,"Unknown field `"+i+"` for "+e+" node type");a||o(r,"Bad value for `"+e+"."+i+"`")}}for(let i in t)Ms.call(t,i)&&Ms.call(r,i)===!1&&o(r,"Field `"+e+"."+i+"` is missed")}}function u2(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<"+(u2(o,t)||"any")+">");else throw new Error("Wrong value `"+o+"` in `"+t+"` structure definition")}return n.join(" | ")}function PR(e,t){let n=t.structure,r={type:String,loc:!0},o={type:'"'+e+'"'};for(let i in n){if(Ms.call(n,i)===!1)continue;let a=r[i]=Array.isArray(n[i])?n[i].slice():[n[i]];o[i]=u2(a,e+"."+i)}return{docs:o,check:FR(e,r)}}function d2(e){let t={};if(e.node){for(let n in e.node)if(Ms.call(e.node,n)){let r=e.node[n];if(r.structure)t[n]=PR(n,r);else throw new Error("Missed `structure` field in `"+n+"` node type definition")}}return t}var Ms,p2=$(()=>{"use strict";bs();({hasOwnProperty:Ms}=Object.prototype)});function mg(e,t,n){let r={};for(let o in e)e[o].syntax&&(r[o]=n?e[o].syntax:pa(e[o].syntax,{compact:t}));return r}function MR(e,t,n){let r={};for(let[o,i]of Object.entries(e))r[o]={prelude:i.prelude&&(n?i.prelude.syntax:pa(i.prelude.syntax,{compact:t})),descriptors:i.descriptors&&mg(i.descriptors,t,n)};return r}function LR(e){for(let t=0;t<e.length;t++)if(e[t].value.toLowerCase()==="var(")return!0;return!1}function BR(e){let t=e.terms[0];return e.explicit===!1&&e.terms.length===1&&t.type==="Multiplier"&&t.comma===!0}function Zr(e,t,n){return{matched:e,iterations:n,error:t,...pg}}function ba(e,t,n,r){let o=qb(n,e.syntax),i;return LR(o)?Zr(null,new Error("Matching for a tree with var() is not supported")):(r&&(i=ug(o,e.cssWideKeywordsSyntax,e)),(!r||!i.match)&&(i=ug(o,t.match,e),!i.match)?Zr(null,new mb(i.reason,t.syntax,n,i),i.iterations):Zr(i.match,null,i.iterations))}var Ls,g2=$(()=>{"use strict";hb();Ac();Fc();Ab();Fb();ig();Yb();sg();r2();i2();l2();p2();Ls=class{constructor(t,n,r){if(this.cssWideKeywords=ma,this.syntax=n,this.generic=!1,this.units={...Lc},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=r||d2(t),t){if(t.cssWideKeywords&&(this.cssWideKeywords=t.cssWideKeywords),t.units)for(let o of Object.keys(Lc))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(Rb(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=Ps(this.cssWideKeywords.join(" | "))}checkStructure(t){function n(i,a){o.push({node:i,message:a})}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},a={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"?a.match=Ps(t,i):(typeof t=="string"?Object.defineProperty(a,"syntax",{get(){return Object.defineProperty(a,"syntax",{value:Rs(t)}),a.syntax}}):a.syntax=t,Object.defineProperty(a,"match",{get(){return Object.defineProperty(a,"match",{value:Ps(a.syntax,i)}),a.match}}),n==="Property"&&Object.defineProperty(a,"matchRef",{get(){let s=a.syntax,u=BR(s)?Ps({...s,terms:[s.terms[0].term]},i):null;return Object.defineProperty(a,"matchRef",{value:u}),u}})),a}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 ga("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&&!ba(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=Ec(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 ga("Unknown at-rule descriptor",n)}checkPropertyName(t){if(!this.getProperty(t))return new ga("Unknown property",t)}matchAtrulePrelude(t,n){let r=this.checkAtrulePrelude(t,n);if(r)return Zr(null,r);let o=this.getAtrule(t);return o.prelude?ba(this,o.prelude,n||"",!1):Zr(null,null)}matchAtruleDescriptor(t,n,r){let o=this.checkAtruleDescriptorName(t,n);if(o)return Zr(null,o);let i=this.getAtrule(t),a=Ec(n);return ba(this,i.descriptors[a.name]||i.descriptors[a.basename],r,!1)}matchDeclaration(t){return t.type!=="Declaration"?Zr(null,new Error("Not a Declaration node")):this.matchProperty(t.property,t.value)}matchProperty(t,n){if(Np(t).custom)return Zr(null,new Error("Lexer matching doesn't applicable for custom properties"));let r=this.checkPropertyName(t);return r?Zr(null,r):ba(this,this.getProperty(t),n,!0)}matchType(t,n){let r=this.getType(t);return r?ba(this,r,n,!1):Zr(null,new ga("Unknown type",t))}match(t,n){return typeof t!="string"&&(!t||!t.type)?Zr(null,new ga("Bad syntax")):((typeof t=="string"||!t.match)&&(t=this.createDescriptor(t,"Type","anonymous")),ba(this,t,n,!1))}findValueFragments(t,n,r,o){return gg(this,n,this.matchProperty(t,n),r,o)}findDeclarationValueFragments(t,n,r){return gg(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=Ec(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=Np(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,p){if(l.has(c))return l.get(c);l.set(c,!1),p.syntax!==null&&og(p.syntax,function(g){if(g.type!=="Type"&&g.type!=="Property")return;let d=g.type==="Type"?u.types:u.properties,f=g.type==="Type"?o:i;hasOwnProperty.call(d,g.name)?n(u,g.name,f,d[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 a=[...o.keys()].filter(u=>o.get(u)),s=[...i.keys()].filter(u=>i.get(u));return a.length||s.length?{errors:r,types:a,properties:s}:null}dump(t,n){return{generic:this.generic,cssWideKeywords:this.cssWideKeywords,units:this.units,types:mg(this.types,!n,t),properties:mg(this.properties,!n,t),atrules:MR(this.atrules,!n,t)}}toString(){return JSON.stringify(this.dump())}}});function hg(e,t){return typeof t=="string"&&/^\s*\|/.test(t)?typeof e=="string"?e+t:t.replace(/^\s*\|\s*/,""):t||null}function zR(e,t){let n=Object.create(null);for(let r of Object.keys(e))t.includes(r)&&(n[r]=e[r]);return n}function xg(e,t,n){let r={...e};for(let[o,i]of Object.entries(t))r[o]={...r[o],...n?zR(i,n):i};return r}function Bs(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,a]of Object.entries(o))n[r][i]=Array.isArray(a)?a:[];break;case"atrules":n[r]={...e[r]};for(let[i,a]of Object.entries(o)){let s=n[r][i]||{},u=n[r][i]={prelude:s.prelude||null,descriptors:{...s.descriptors}};if(a){u.prelude=a.prelude?hg(u.prelude,a.prelude):u.prelude||null;for(let[c,l]of Object.entries(a.descriptors||{}))u.descriptors[c]=l?hg(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,a]of Object.entries(o))n[r][i]=hg(n[r][i],a);break;case"parseContext":n[r]={...e[r],...o};break;case"scope":case"features":n[r]=xg(e[r],o);break;case"atrule":case"pseudo":n[r]=xg(e[r],o,["parse"]);break;case"node":n[r]=xg(e[r],o,["name","structure","parse","generate","walkContext"]);break}return n}var f2=$(()=>{"use strict"});function m2(e){let t=Fy(e),n=pb(e),r=ob(e),{fromPlainObject:o,toPlainObject:i}=ab(n),a={lexer:null,createLexer:s=>new Ls(s,a,a.lexer.structure),tokenize:ei,parse:t,generate:r,walk:n,find:n.find,findLast:n.findLast,findAll:n.findAll,fromPlainObject:o,toPlainObject:i,fork(s){let u=Bs({},e);return m2(typeof s=="function"?s(u):Bs(u,s))}};return a.lexer=new Ls({generic:e.generic,cssWideKeywords:e.cssWideKeywords,units:e.units,types:e.types,atrules:e.atrules,properties:e.properties,node:e.node},a),a}var h2,x2=$(()=>{"use strict";Br();Py();ib();sb();gb();g2();f2();h2=e=>m2(Bs({},e))});var y2,b2=$(()=>{"use strict";y2={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 wg={};Ee(wg,{generate:()=>OR,name:()=>NR,parse:()=>bg,structure:()=>_R});function Hc(e,t){let n=this.tokenStart+e,r=this.charCodeAt(n);for((r===xo||r===kr)&&(t&&this.error("Number sign is not allowed"),n++);n<this.tokenEnd;n++)un(this.charCodeAt(n))||this.error("Integer is expected",n)}function wa(e){return Hc.call(this,0,e)}function ri(e,t){if(!this.cmpChar(this.tokenStart+e,t)){let n="";switch(t){case $c:n="N is expected";break;case kr:n="HyphenMinus is expected";break}this.error(n,this.tokenStart+e)}}function yg(){let e=0,t=0,n=this.tokenType;for(;n===13||n===25;)n=this.lookupType(++e);if(n!==10)if(this.isDelim(xo,e)||this.isDelim(kr,e)){t=this.isDelim(xo,e)?xo:kr;do n=this.lookupType(++e);while(n===13||n===25);n!==10&&(this.skip(e),wa.call(this,Li))}else return null;return e>0&&this.skip(e),t===0&&(n=this.charCodeAt(this.tokenStart),n!==xo&&n!==kr&&this.error("Number sign is expected")),wa.call(this,t!==0),t===kr?"-"+this.consume(10):this.consume(10)}function bg(){let e=this.tokenStart,t=null,n=null;if(this.tokenType===10)wa.call(this,DR),n=this.consume(10);else if(this.tokenType===1&&this.cmpChar(this.tokenStart,kr))switch(t="-1",ri.call(this,1,$c),this.tokenEnd-this.tokenStart){case 2:this.next(),n=yg.call(this);break;case 3:ri.call(this,2,kr),this.next(),this.skipSC(),wa.call(this,Li),n="-"+this.consume(10);break;default:ri.call(this,2,kr),Hc.call(this,3,Li),this.next(),n=this.substrToCursor(e+2)}else if(this.tokenType===1||this.isDelim(xo)&&this.lookupType(1)===1){let r=0;switch(t="1",this.isDelim(xo)&&(r=1,this.next()),ri.call(this,0,$c),this.tokenEnd-this.tokenStart){case 1:this.next(),n=yg.call(this);break;case 2:ri.call(this,1,kr),this.next(),this.skipSC(),wa.call(this,Li),n="-"+this.consume(10);break;default:ri.call(this,1,kr),Hc.call(this,2,Li),this.next(),n=this.substrToCursor(e+r+1)}}else if(this.tokenType===12){let r=this.charCodeAt(this.tokenStart),o=r===xo||r===kr,i=this.tokenStart+o;for(;i<this.tokenEnd&&un(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),ri.call(this,i-this.tokenStart,$c),t=this.substring(e,i),i+1===this.tokenEnd?(this.next(),n=yg.call(this)):(ri.call(this,i-this.tokenStart+1,kr),i+2===this.tokenEnd?(this.next(),this.skipSC(),wa.call(this,Li),n="-"+this.consume(10)):(Hc.call(this,i-this.tokenStart+2,Li),this.next(),n=this.substrToCursor(i+1)))}else this.error();return t!==null&&t.charCodeAt(0)===xo&&(t=t.substr(1)),n!==null&&n.charCodeAt(0)===xo&&(n=n.substr(1)),{type:"AnPlusB",loc:this.getLocation(e,this.tokenStart),a:t,b:n}}function OR(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 xo,kr,$c,Li,DR,NR,_R,vg=$(()=>{"use strict";Br();xo=43,kr=45,$c=110,Li=!0,DR=!1;NR="AnPlusB",_R={a:[String,null],b:[String,null]}});var kg={};Ee(kg,{generate:()=>VR,name:()=>HR,parse:()=>Sg,structure:()=>jR,walkContext:()=>UR});function w2(){return this.Raw(this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function $R(){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 Sg(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),w2):o=w2.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($R.call(this));break}return{type:"Atrule",loc:this.getLocation(t,this.tokenStart),name:n,prelude:o,block:i}}function VR(e){this.token(3,"@"+e.name),e.prelude!==null&&this.node(e.prelude),e.block?this.node(e.block):this.token(17,";")}var HR,UR,jR,Cg=$(()=>{"use strict";HR="Atrule",UR="atrule",jR={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]}});var Tg={};Ee(Tg,{generate:()=>YR,name:()=>WR,parse:()=>Ig,structure:()=>qR,walkContext:()=>GR});function Ig(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 YR(e){this.children(e)}var WR,GR,qR,Eg=$(()=>{"use strict";WR="AtrulePrelude",GR="atrulePrelude",qR={children:[[]]}});var Fg={};Ee(Fg,{generate:()=>nA,name:()=>eA,parse:()=>Ag,structure:()=>tA});function QR(){this.eof&&this.error("Unexpected end of input");let e=this.tokenStart,t=!1;return this.isDelim(v2)?(t=!0,this.next()):this.isDelim(Rg)||this.eat(1),this.isDelim(Rg)?this.charCodeAt(this.tokenStart+1)!==Uc?(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 ZR(){let e=this.tokenStart,t=this.charCodeAt(e);return t!==Uc&&t!==JR&&t!==XR&&t!==KR&&t!==v2&&t!==Rg&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),t!==Uc&&(this.isDelim(Uc)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(e)}function Ag(){let e=this.tokenStart,t,n=null,r=null,o=null;return this.eat(19),this.skipSC(),t=QR.call(this),this.skipSC(),this.tokenType!==20&&(this.tokenType!==1&&(n=ZR.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 nA(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 KR,v2,Uc,XR,Rg,JR,eA,tA,Pg=$(()=>{"use strict";KR=36,v2=42,Uc=61,XR=94,Rg=124,JR=126;eA="AttributeSelector",tA={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]}});var Lg={};Ee(Lg,{generate:()=>lA,name:()=>iA,parse:()=>Mg,structure:()=>sA,walkContext:()=>aA});function C2(){return this.Raw(null,!0)}function S2(){return this.parseWithFallback(this.Rule,C2)}function k2(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function oA(){if(this.tokenType===17)return k2.call(this,this.tokenIndex);let e=this.parseWithFallback(this.Declaration,k2);return this.tokenType===17&&this.next(),e}function Mg(e){let t=e?oA:S2,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),C2));break;default:e&&this.isDelim(rA)?r.push(S2.call(this)):r.push(t.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(n,this.tokenStart),children:r}}function lA(e){this.token(23,"{"),this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")}),this.token(24,"}")}var rA,iA,aA,sA,Bg=$(()=>{"use strict";rA=38;iA="Block",aA="block",sA={children:[["Atrule","Rule","Declaration"]]}});var Dg={};Ee(Dg,{generate:()=>dA,name:()=>cA,parse:()=>zg,structure:()=>uA});function zg(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 dA(e){this.token(9,"["),this.children(e),this.token(9,"]")}var cA,uA,Ng=$(()=>{"use strict";cA="Brackets",uA={children:[[]]}});var Og={};Ee(Og,{generate:()=>fA,name:()=>pA,parse:()=>_g,structure:()=>gA});function _g(){let e=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(e,this.tokenStart)}}function fA(){this.token(15,"-->")}var pA,gA,$g=$(()=>{"use strict";pA="CDC",gA=[]});var Ug={};Ee(Ug,{generate:()=>xA,name:()=>mA,parse:()=>Hg,structure:()=>hA});function Hg(){let e=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(e,this.tokenStart)}}function xA(){this.token(14,"<!--")}var mA,hA,jg=$(()=>{"use strict";mA="CDO",hA=[]});var Wg={};Ee(Wg,{generate:()=>vA,name:()=>bA,parse:()=>Vg,structure:()=>wA});function Vg(){return this.eatDelim(yA),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function vA(e){this.token(9,"."),this.token(1,e.name)}var yA,bA,wA,Gg=$(()=>{"use strict";yA=46,bA="ClassSelector",wA={name:String}});var Yg={};Ee(Yg,{generate:()=>EA,name:()=>IA,parse:()=>qg,structure:()=>TA});function qg(){let e=this.tokenStart,t;switch(this.tokenType){case 13:t=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case kA:case SA:case CA:this.next();break;case I2:this.next(),this.eatIdent("deep"),this.eatDelim(I2);break;default:this.error("Combinator is expected")}t=this.substrToCursor(e);break}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:t}}function EA(e){this.tokenize(e.name)}var SA,I2,kA,CA,IA,TA,Kg=$(()=>{"use strict";SA=43,I2=47,kA=62,CA=126,IA="Combinator",TA={name:String}});var Jg={};Ee(Jg,{generate:()=>MA,name:()=>FA,parse:()=>Xg,structure:()=>PA});function Xg(){let e=this.tokenStart,t=this.tokenEnd;return this.eat(25),t-e+2>=2&&this.charCodeAt(t-2)===RA&&this.charCodeAt(t-1)===AA&&(t-=2),{type:"Comment",loc:this.getLocation(e,this.tokenStart),value:this.substring(e+2,t)}}function MA(e){this.token(25,"/*"+e.value+"*/")}var RA,AA,FA,PA,Qg=$(()=>{"use strict";RA=42,AA=47,FA="Comment",PA={value:String}});var ef={};Ee(ef,{generate:()=>NA,name:()=>BA,parse:()=>Zg,structure:()=>zA});function T2(e){return this.lookupTypeNonSC(1)===1&&LA.has(this.lookupTypeNonSC(2))?this.Feature(e):this.FeatureRange(e)}function Zg(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(()=>DA[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 NA(e){e.children.forEach(t=>{t.type==="Condition"?(this.token(21,"("),this.node(t),this.token(22,")")):this.node(t)})}var LA,BA,zA,DA,tf=$(()=>{"use strict";LA=new Set([16,22,0]),BA="Condition",zA={kind:String,children:[["Identifier","Feature","FeatureFunction","FeatureRange","SupportsDeclaration"]]};DA={media:T2,container:T2,supports(){return this.SupportsDeclaration()}}});var rf={};Ee(rf,{generate:()=>KA,name:()=>GA,parse:()=>nf,structure:()=>YA,walkContext:()=>qA});function jA(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!0)}function VA(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1)}function WA(){let e=this.tokenIndex,t=this.Value();return t.type!=="Raw"&&this.eof===!1&&this.tokenType!==17&&this.isDelim(R2)===!1&&this.isBalanceEdge(e)===!1&&this.error(),t}function nf(){let e=this.tokenStart,t=this.tokenIndex,n=XA.call(this),r=Rc(n),o=r?this.parseCustomProperty:this.parseValue,i=r?VA:jA,a=!1,s;this.skipSC(),this.eat(16);let u=this.tokenIndex;if(r||this.skipSC(),o?s=this.parseWithFallback(WA,i):s=i.call(this,this.tokenIndex),r&&s.type==="Value"&&s.children.isEmpty){for(let c=u-this.tokenIndex;c<=0;c++)if(this.lookupType(c)===13){s.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}return this.isDelim(R2)&&(a=JA.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:a,property:n,value:s}}function KA(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 XA(){let e=this.tokenStart;if(this.tokenType===9)switch(this.charCodeAt(this.tokenStart)){case HA:case OA:case UA:case _A:case $A:this.next();break;case E2:this.next(),this.isDelim(E2)&&this.next();break}return this.tokenType===4?this.eat(4):this.eat(1),this.substrToCursor(e)}function JA(){this.eat(9),this.skipSC();let e=this.consume(1);return e==="important"?!0:e}var R2,_A,OA,$A,HA,UA,E2,GA,qA,YA,of=$(()=>{"use strict";Ac();R2=33,_A=35,OA=36,$A=38,HA=42,UA=43,E2=47;GA="Declaration",qA="declaration",YA={important:[Boolean,String],property:String,value:["Value","Raw"]}});var lf={};Ee(lf,{generate:()=>tF,name:()=>ZA,parse:()=>sf,structure:()=>eF});function af(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function sf(){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),af));break;default:this.isDelim(QA)?e.push(this.parseWithFallback(this.Rule,af)):e.push(this.parseWithFallback(this.Declaration,af))}return{type:"DeclarationList",loc:this.getLocationFromList(e),children:e}}function tF(e){this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")})}var QA,ZA,eF,cf=$(()=>{"use strict";QA=38;ZA="DeclarationList",eF={children:[["Declaration","Atrule","Rule"]]}});var df={};Ee(df,{generate:()=>oF,name:()=>nF,parse:()=>uf,structure:()=>rF});function uf(){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 oF(e){this.token(12,e.value+e.unit)}var nF,rF,pf=$(()=>{"use strict";nF="Dimension",rF={value:String,unit:String}});var ff={};Ee(ff,{generate:()=>lF,name:()=>aF,parse:()=>gf,structure:()=>sF});function gf(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(iF)&&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 lF(e){this.token(21,"("),this.token(1,e.name),e.value!==null&&(this.token(16,":"),this.node(e.value)),this.token(22,")")}var iF,aF,sF,mf=$(()=>{"use strict";iF=47,aF="Feature",sF={kind:String,name:String,value:["Identifier","Number","Dimension","Ratio","Function",null]}});var xf={};Ee(xf,{generate:()=>pF,name:()=>cF,parse:()=>hf,structure:()=>uF});function dF(e,t){let r=(this.features[e]||{})[t];return typeof r!="function"&&this.error(`Unknown feature ${t}()`),r}function hf(e="unknown"){let t=this.tokenStart,n=this.consumeFunctionName(),r=dF.call(this,e,n.toLowerCase());this.skipSC();let o=this.parseWithFallback(()=>{let i=this.tokenIndex,a=r.call(this);return this.eof===!1&&this.isBalanceEdge(i)===!1&&this.error(),a},()=>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 pF(e){this.token(2,e.feature+"("),this.node(e.value),this.token(22,")")}var cF,uF,yf=$(()=>{"use strict";cF="FeatureFunction",uF={kind:String,feature:String,value:["Declaration","Selector"]}});var vf={};Ee(vf,{generate:()=>xF,name:()=>mF,parse:()=>wf,structure:()=>hF});function bf(){switch(this.skipSC(),this.tokenType){case 10:return this.isDelim(A2,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(A2)&&this.error(),e},()=>this.Ratio());default:this.error("Number, dimension, ratio or identifier is expected")}}function P2(e){if(this.skipSC(),this.isDelim(gF)||this.isDelim(fF)){let t=this.source[this.tokenStart];return this.next(),this.isDelim(F2)?(this.next(),t+"="):t}if(this.isDelim(F2))return"=";this.error(`Expected ${e?'":", ':""}"<", ">", "=" or ")"`)}function wf(e="unknown"){let t=this.tokenStart;this.skipSC(),this.eat(21);let n=bf.call(this),r=P2.call(this,n.type==="Identifier"),o=bf.call(this),i=null,a=null;return this.lookupNonWSType(0)!==22&&(i=P2.call(this),a=bf.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:a}}function xF(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 A2,gF,F2,fF,mF,hF,Sf=$(()=>{"use strict";A2=47,gF=60,F2=61,fF=62,mF="FeatureRange",hF={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 Cf={};Ee(Cf,{generate:()=>vF,name:()=>yF,parse:()=>kf,structure:()=>wF,walkContext:()=>bF});function kf(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 vF(e){this.token(2,e.name+"("),this.children(e),this.token(22,")")}var yF,bF,wF,If=$(()=>{"use strict";yF="Function",bF="function",wF={name:String,children:[[]]}});var Ef={};Ee(Ef,{generate:()=>CF,name:()=>SF,parse:()=>Tf,structure:()=>kF});function Tf(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 CF(e){e.function?this.token(2,e.function+"("):this.token(21,"("),this.children(e),this.token(22,")")}var SF,kF,Rf=$(()=>{"use strict";SF="GeneralEnclosed",kF={kind:String,function:[String,null],children:[[]]}});var Ff={};Ee(Ff,{generate:()=>RF,name:()=>TF,parse:()=>Af,structure:()=>EF,xxx:()=>IF});function Af(){let e=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e+1)}}function RF(e){this.token(4,"#"+e.value)}var IF,TF,EF,Pf=$(()=>{"use strict";IF="XXX",TF="Hash",EF={value:String}});var Lf={};Ee(Lf,{generate:()=>PF,name:()=>AF,parse:()=>Mf,structure:()=>FF});function Mf(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function PF(e){this.token(1,e.name)}var AF,FF,Bf=$(()=>{"use strict";AF="Identifier",FF={name:String}});var Df={};Ee(Df,{generate:()=>BF,name:()=>MF,parse:()=>zf,structure:()=>LF});function zf(){let e=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e+1)}}function BF(e){this.token(9,"#"+e.name)}var MF,LF,Nf=$(()=>{"use strict";MF="IdSelector",LF={name:String}});var Of={};Ee(Of,{generate:()=>_F,name:()=>DF,parse:()=>_f,structure:()=>NF});function _f(){let e=this.tokenStart,t=this.consume(1);for(;this.isDelim(zF);)this.eat(9),t+="."+this.consume(1);return{type:"Layer",loc:this.getLocation(e,this.tokenStart),name:t}}function _F(e){this.tokenize(e.name)}var zF,DF,NF,$f=$(()=>{"use strict";zF=46,DF="Layer",NF={name:String}});var Uf={};Ee(Uf,{generate:()=>HF,name:()=>OF,parse:()=>Hf,structure:()=>$F});function Hf(){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 HF(e){this.children(e,()=>this.token(18,","))}var OF,$F,jf=$(()=>{"use strict";OF="LayerList",$F={children:[["Layer"]]}});var Wf={};Ee(Wf,{generate:()=>VF,name:()=>UF,parse:()=>Vf,structure:()=>jF});function Vf(){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 VF(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 UF,jF,Gf=$(()=>{"use strict";UF="MediaQuery",jF={modifier:[String,null],mediaType:[String,null],condition:["Condition",null]}});var Yf={};Ee(Yf,{generate:()=>qF,name:()=>WF,parse:()=>qf,structure:()=>GF});function qf(){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 qF(e){this.children(e,()=>this.token(18,","))}var WF,GF,Kf=$(()=>{"use strict";WF="MediaQueryList",GF={children:[["MediaQuery"]]}});var Jf={};Ee(Jf,{generate:()=>JF,name:()=>KF,parse:()=>Xf,structure:()=>XF});function Xf(){let e=this.tokenStart;return this.eatDelim(YF),{type:"NestingSelector",loc:this.getLocation(e,this.tokenStart)}}function JF(){this.token(9,"&")}var YF,KF,XF,Qf=$(()=>{"use strict";YF=38,KF="NestingSelector",XF={}});var e0={};Ee(e0,{generate:()=>eP,name:()=>QF,parse:()=>Zf,structure:()=>ZF});function Zf(){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 eP(e){this.node(e.nth),e.selector!==null&&(this.token(1,"of"),this.node(e.selector))}var QF,ZF,t0=$(()=>{"use strict";QF="Nth",ZF={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]}});var r0={};Ee(r0,{generate:()=>rP,name:()=>tP,parse:()=>n0,structure:()=>nP});function n0(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function rP(e){this.token(10,e.value)}var tP,nP,o0=$(()=>{"use strict";tP="Number",nP={value:String}});var a0={};Ee(a0,{generate:()=>aP,name:()=>oP,parse:()=>i0,structure:()=>iP});function i0(){let e=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function aP(e){this.tokenize(e.value)}var oP,iP,s0=$(()=>{"use strict";oP="Operator",iP={value:String}});var c0={};Ee(c0,{generate:()=>cP,name:()=>sP,parse:()=>l0,structure:()=>lP});function l0(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 cP(e){this.token(21,"("),this.children(e),this.token(22,")")}var sP,lP,u0=$(()=>{"use strict";sP="Parentheses",lP={children:[[]]}});var p0={};Ee(p0,{generate:()=>pP,name:()=>uP,parse:()=>d0,structure:()=>dP});function d0(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function pP(e){this.token(11,e.value+"%")}var uP,dP,g0=$(()=>{"use strict";uP="Percentage",dP={value:String}});var m0={};Ee(m0,{generate:()=>hP,name:()=>gP,parse:()=>f0,structure:()=>mP,walkContext:()=>fP});function f0(){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 hP(e){this.token(16,":"),e.children===null?this.token(1,e.name):(this.token(2,e.name+"("),this.children(e),this.token(22,")"))}var gP,fP,mP,h0=$(()=>{"use strict";gP="PseudoClassSelector",fP="function",mP={name:String,children:[["Raw"],null]}});var y0={};Ee(y0,{generate:()=>wP,name:()=>xP,parse:()=>x0,structure:()=>bP,walkContext:()=>yP});function x0(){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 wP(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 xP,yP,bP,b0=$(()=>{"use strict";xP="PseudoElementSelector",yP="function",bP={name:String,children:[["Raw"],null]}});var v0={};Ee(v0,{generate:()=>kP,name:()=>vP,parse:()=>w0,structure:()=>SP});function L2(){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 w0(){let e=this.tokenStart,t=L2.call(this),n=null;return this.skipSC(),this.isDelim(M2)&&(this.eatDelim(M2),n=L2.call(this)),{type:"Ratio",loc:this.getLocation(e,this.tokenStart),left:t,right:n}}function kP(e){this.node(e.left),this.token(9,"/"),e.right?this.node(e.right):this.node(10,1)}var M2,vP,SP,S0=$(()=>{"use strict";M2=47;vP="Ratio",SP={left:["Number","Function"],right:["Number","Function",null]}});var C0={};Ee(C0,{generate:()=>EP,name:()=>IP,parse:()=>k0,structure:()=>TP});function CP(){return this.tokenIndex>0&&this.lookupType(-1)===13?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}function k0(e,t){let n=this.getTokenStart(this.tokenIndex),r;return this.skipUntilBalanced(this.tokenIndex,e||this.consumeUntilBalanceEnd),t&&this.tokenStart>n?r=CP.call(this):r=this.tokenStart,{type:"Raw",loc:this.getLocation(n,r),value:this.substring(n,r)}}function EP(e){this.tokenize(e.value)}var IP,TP,I0=$(()=>{"use strict";IP="Raw",TP={value:String}});var E0={};Ee(E0,{generate:()=>MP,name:()=>AP,parse:()=>T0,structure:()=>PP,walkContext:()=>FP});function B2(){return this.Raw(this.consumeUntilLeftCurlyBracket,!0)}function RP(){let e=this.SelectorList();return e.type!=="Raw"&&this.eof===!1&&this.tokenType!==23&&this.error(),e}function T0(){let e=this.tokenIndex,t=this.tokenStart,n,r;return this.parseRulePrelude?n=this.parseWithFallback(RP,B2):n=B2.call(this,e),r=this.Block(!0),{type:"Rule",loc:this.getLocation(t,this.tokenStart),prelude:n,block:r}}function MP(e){this.node(e.prelude),this.node(e.block)}var AP,FP,PP,R0=$(()=>{"use strict";AP="Rule",FP="rule",PP={prelude:["SelectorList","Raw"],block:["Block"]}});var F0={};Ee(F0,{generate:()=>zP,name:()=>LP,parse:()=>A0,structure:()=>BP});function A0(){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 zP(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 LP,BP,P0=$(()=>{"use strict";LP="Scope",BP={root:["SelectorList","Raw",null],limit:["SelectorList","Raw",null]}});var L0={};Ee(L0,{generate:()=>_P,name:()=>DP,parse:()=>M0,structure:()=>NP});function M0(){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 _P(e){this.children(e)}var DP,NP,B0=$(()=>{"use strict";DP="Selector",NP={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator"]]}});var D0={};Ee(D0,{generate:()=>UP,name:()=>OP,parse:()=>z0,structure:()=>HP,walkContext:()=>$P});function z0(){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 UP(e){this.children(e,()=>this.token(18,","))}var OP,$P,HP,N0=$(()=>{"use strict";OP="SelectorList",$P="selector",HP={children:[["Selector","Raw"]]}});function jc(e){let t=e.length,n=e.charCodeAt(0),r=n===z2||n===D2?1:0,o=r===1&&t>1&&e.charCodeAt(t-1)===n?t-2:t-1,i="";for(let a=r;a<=o;a++){let s=e.charCodeAt(a);if(s===_0){if(a===o){a!==t-1&&(i=e.substr(a+1));break}if(s=e.charCodeAt(++a),sr(_0,s)){let u=a-1,c=Lo(e,u);a=c-1,i+=pc(e.substring(u+1,c))}else s===13&&e.charCodeAt(a+1)===10&&a++}else i+=e[a]}return i}function N2(e,t){let n=t?"'":'"',r=t?D2:z2,o="",i=!1;for(let a=0;a<e.length;a++){let s=e.charCodeAt(a);if(s===0){o+="\uFFFD";continue}if(s<=31||s===127){o+="\\"+s.toString(16),i=!0;continue}s===r||s===_0?(o+="\\"+e.charAt(a),i=!1):(i&&(lr(s)||mo(s))&&(o+=" "),o+=e.charAt(a),i=!1)}return n+o+n}var _0,z2,D2,Vc=$(()=>{"use strict";Br();_0=92,z2=34,D2=39});var $0={};Ee($0,{generate:()=>WP,name:()=>jP,parse:()=>O0,structure:()=>VP});function O0(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:jc(this.consume(5))}}function WP(e){this.token(5,N2(e.value))}var jP,VP,H0=$(()=>{"use strict";Vc();jP="String",VP={value:String}});var j0={};Ee(j0,{generate:()=>XP,name:()=>qP,parse:()=>U0,structure:()=>KP,walkContext:()=>YP});function O2(){return this.Raw(null,!1)}function U0(){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)!==GP){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,O2);break;default:n=this.parseWithFallback(this.Rule,O2)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function XP(e){this.children(e)}var GP,qP,YP,KP,V0=$(()=>{"use strict";GP=33;qP="StyleSheet",YP="stylesheet",KP={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]}});var G0={};Ee(G0,{generate:()=>ZP,name:()=>JP,parse:()=>W0,structure:()=>QP});function W0(){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 ZP(e){this.token(21,"("),this.node(e.declaration),this.token(22,")")}var JP,QP,q0=$(()=>{"use strict";JP="SupportsDeclaration",QP={declaration:"Declaration"}});var X0={};Ee(X0,{generate:()=>rM,name:()=>tM,parse:()=>K0,structure:()=>nM});function Y0(){this.tokenType!==1&&this.isDelim(eM)===!1&&this.error("Identifier or asterisk is expected"),this.next()}function K0(){let e=this.tokenStart;return this.isDelim($2)?(this.next(),Y0.call(this)):(Y0.call(this),this.isDelim($2)&&(this.next(),Y0.call(this))),{type:"TypeSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e)}}function rM(e){this.tokenize(e.name)}var eM,$2,tM,nM,J0=$(()=>{"use strict";eM=42,$2=124;tM="TypeSelector",nM={name:String}});var em={};Ee(em,{generate:()=>lM,name:()=>aM,parse:()=>Z0,structure:()=>sM});function zs(e,t){let n=0;for(let r=this.tokenStart+e;r<this.tokenEnd;r++){let o=this.charCodeAt(r);if(o===U2&&t&&n!==0)return zs.call(this,e+n+1,!1),-1;lr(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 Wc(e){let t=0;for(;this.isDelim(Q0);)++t>e&&this.error("Too many question marks"),this.next()}function oM(e){this.charCodeAt(this.tokenStart)!==e&&this.error((e===H2?"Plus sign":"Hyphen minus")+" is expected")}function iM(){let e=0;switch(this.tokenType){case 10:if(e=zs.call(this,1,!0),this.isDelim(Q0)){Wc.call(this,6-e);break}if(this.tokenType===12||this.tokenType===10){oM.call(this,U2),zs.call(this,1,!1);break}break;case 12:e=zs.call(this,1,!0),e>0&&Wc.call(this,6-e);break;default:if(this.eatDelim(H2),this.tokenType===1){e=zs.call(this,0,!0),e>0&&Wc.call(this,6-e);break}if(this.isDelim(Q0)){this.next(),Wc.call(this,5);break}this.error("Hex digit or question mark is expected")}}function Z0(){let e=this.tokenStart;return this.eatIdent("u"),iM.call(this),{type:"UnicodeRange",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function lM(e){this.tokenize(e.value)}var H2,U2,Q0,aM,sM,tm=$(()=>{"use strict";Br();H2=43,U2=45,Q0=63;aM="UnicodeRange",sM={value:String}});function V2(e){let t=e.length,n=4,r=e.charCodeAt(t-1)===j2?t-2:t-1,o="";for(;n<r&&mo(e.charCodeAt(n));)n++;for(;n<r&&mo(e.charCodeAt(r));)r--;for(let i=n;i<=r;i++){let a=e.charCodeAt(i);if(a===nm){if(i===r){i!==t-1&&(o=e.substr(i+1));break}if(a=e.charCodeAt(++i),sr(nm,a)){let s=i-1,u=Lo(e,s);i=u-1,o+=pc(e.substring(s+1,u))}else a===13&&e.charCodeAt(i+1)===10&&i++}else o+=e[i]}return o}function W2(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===cM||o===nm||o===uM||o===dM||o===pM||o===j2?(t+="\\"+e.charAt(r),n=!1):(n&&lr(o)&&(t+=" "),t+=e.charAt(r),n=!1)}return"url("+t+")"}var cM,nm,uM,dM,pM,j2,rm=$(()=>{"use strict";Br();cM=32,nm=92,uM=34,dM=39,pM=40,j2=41});var im={};Ee(im,{generate:()=>mM,name:()=>gM,parse:()=>om,structure:()=>fM});function om(){let e=this.tokenStart,t;switch(this.tokenType){case 7:t=V2(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=jc(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 mM(e){this.token(7,W2(e.value))}var gM,fM,am=$(()=>{"use strict";rm();Vc();gM="Url",fM={value:String}});var lm={};Ee(lm,{generate:()=>yM,name:()=>hM,parse:()=>sm,structure:()=>xM});function sm(){let e=this.tokenStart,t=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(e,this.tokenStart),children:t}}function yM(e){this.children(e)}var hM,xM,cm=$(()=>{"use strict";hM="Value",xM={children:[[]]}});var dm={};Ee(dm,{generate:()=>SM,name:()=>wM,parse:()=>um,structure:()=>vM});function um(){return this.eat(13),bM}function SM(e){this.token(13,e.value)}var bM,wM,vM,pm=$(()=>{"use strict";bM=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),wM="WhiteSpace",vM={value:String}});var Ds={};Ee(Ds,{AnPlusB:()=>wg,Atrule:()=>kg,AtrulePrelude:()=>Tg,AttributeSelector:()=>Fg,Block:()=>Lg,Brackets:()=>Dg,CDC:()=>Og,CDO:()=>Ug,ClassSelector:()=>Wg,Combinator:()=>Yg,Comment:()=>Jg,Condition:()=>ef,Declaration:()=>rf,DeclarationList:()=>lf,Dimension:()=>df,Feature:()=>ff,FeatureFunction:()=>xf,FeatureRange:()=>vf,Function:()=>Cf,GeneralEnclosed:()=>Ef,Hash:()=>Ff,IdSelector:()=>Df,Identifier:()=>Lf,Layer:()=>Of,LayerList:()=>Uf,MediaQuery:()=>Wf,MediaQueryList:()=>Yf,NestingSelector:()=>Jf,Nth:()=>e0,Number:()=>r0,Operator:()=>a0,Parentheses:()=>c0,Percentage:()=>p0,PseudoClassSelector:()=>m0,PseudoElementSelector:()=>y0,Ratio:()=>v0,Raw:()=>C0,Rule:()=>E0,Scope:()=>F0,Selector:()=>L0,SelectorList:()=>D0,String:()=>$0,StyleSheet:()=>j0,SupportsDeclaration:()=>G0,TypeSelector:()=>X0,UnicodeRange:()=>em,Url:()=>im,Value:()=>lm,WhiteSpace:()=>dm});var gm=$(()=>{"use strict";vg();Cg();Eg();Pg();Bg();Ng();$g();jg();Gg();Kg();Qg();tf();of();cf();pf();mf();yf();Sf();If();Rf();Pf();Bf();Nf();$f();jf();Gf();Kf();Qf();t0();o0();s0();u0();g0();h0();b0();S0();I0();R0();P0();B0();N0();H0();V0();q0();J0();tm();am();cm();pm()});var q2,Y2=$(()=>{"use strict";Fc();b2();gm();q2={generic:!0,cssWideKeywords:ma,...y2,node:Ds}});function Ns(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,EM)&&this.cmpChar(this.tokenStart+1,K2)?this.UnicodeRange():this.Identifier();case 9:{let t=this.charCodeAt(this.tokenStart);if(t===TM||t===CM||t===K2||t===IM)return this.Operator();t===kM&&this.error("Hex or identifier is expected",this.tokenStart+1);break}}}var kM,CM,K2,IM,TM,EM,fm=$(()=>{"use strict";kM=35,CM=42,K2=43,IM=45,TM=47,EM=117});var X2,J2=$(()=>{"use strict";fm();X2={getNode:Ns}});function DM(e,t){t.last!==null&&t.last.type!=="Combinator"&&e!==null&&e.type!=="Combinator"&&t.push({type:"Combinator",loc:null,name:" "})}function NM(){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)===Q2&&this.error("Identifier is expected",this.tokenStart+1);break;case 9:{switch(this.charCodeAt(this.tokenStart)){case PM:case LM:case zM:case MM:return this.Combinator();case Q2:return this.ClassSelector();case FM:case BM:return this.TypeSelector();case RM:return this.IdSelector();case AM:return this.NestingSelector()}break}}}var RM,AM,FM,PM,MM,Q2,LM,BM,zM,Z2,ew=$(()=>{"use strict";RM=35,AM=38,FM=42,PM=43,MM=47,Q2=46,LM=62,BM=124,zM=126;Z2={onWhiteSpace:DM,getNode:NM}});function tw(){return this.createSingleNodeList(this.Raw(null,!1))}var nw=$(()=>{"use strict"});function rw(){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 ow=$(()=>{"use strict"});function iw(e){return e!==null&&e.type==="Operator"&&(e.value[e.value.length-1]==="-"||e.value[e.value.length-1]==="+")}var aw,sw=$(()=>{"use strict";fm();nw();ow();aw={getNode:Ns,onWhiteSpace(e,t){iw(e)&&(e.value=" "+e.value),iw(t.last)&&(t.last.value+=" ")},expression:tw,var:rw}});var mm={};Ee(mm,{AtrulePrelude:()=>X2,Selector:()=>Z2,Value:()=>aw});var lw=$(()=>{"use strict";J2();ew();sw()});var _M,cw,uw=$(()=>{"use strict";_M=new Set(["none","and","not","or"]),cw={parse:{prelude(){let e=this.createList();if(this.tokenType===1){let t=this.substring(this.tokenStart,this.tokenEnd);_M.has(t.toLowerCase())||e.push(this.Identifier())}return e.push(this.Condition("container")),e},block(e=!1){return this.Block(e)}}}});var dw,pw=$(()=>{"use strict";dw={parse:{prelude:null,block(){return this.Block(!0)}}}});function hm(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 gw,fw,mw=$(()=>{"use strict";gw={layer(){this.skipSC();let e=this.createList(),t=hm.call(this,this.Layer);return(t.type!=="Raw"||t.value!=="")&&e.push(t),e},supports(){this.skipSC();let e=this.createList(),t=hm.call(this,this.Declaration,()=>hm.call(this,()=>this.Condition("supports")));return(t.type!=="Raw"||t.value!=="")&&e.push(t),e}},fw={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,gw)),this.skipSC(),this.tokenType===2&&this.cmpStr(this.tokenStart,this.tokenEnd,"supports(")&&e.push(this.Function(null,gw)),(this.lookupNonWSType(0)===1||this.lookupNonWSType(0)===21)&&e.push(this.MediaQueryList()),e},block:null}}});var hw,xw=$(()=>{"use strict";hw={parse:{prelude(){return this.createSingleNodeList(this.LayerList())},block(){return this.Block(!1)}}}});var yw,bw=$(()=>{"use strict";yw={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(e=!1){return this.Block(e)}}}});var ww,vw=$(()=>{"use strict";ww={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var Sw,kw=$(()=>{"use strict";Sw={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var Cw,Iw=$(()=>{"use strict";Cw={parse:{prelude(){return this.createSingleNodeList(this.Scope())},block(e=!1){return this.Block(e)}}}});var Tw,Ew=$(()=>{"use strict";Tw={parse:{prelude:null,block(e=!1){return this.Block(e)}}}});var Rw,Aw=$(()=>{"use strict";Rw={parse:{prelude(){return this.createSingleNodeList(this.Condition("supports"))},block(e=!1){return this.Block(e)}}}});var Fw,Pw=$(()=>{"use strict";uw();pw();mw();xw();bw();vw();kw();Iw();Ew();Aw();Fw={container:cw,"font-face":dw,import:fw,layer:hw,media:yw,nest:ww,page:Sw,scope:Cw,"starting-style":Tw,supports:Rw}});function Mw(){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 Lw=$(()=>{"use strict"});var Bi,xm,OM,$M,Gc,Bw,zw=$(()=>{"use strict";Lw();Bi={parse(){return this.createSingleNodeList(this.SelectorList())}},xm={parse(){return this.createSingleNodeList(this.Selector())}},OM={parse(){return this.createSingleNodeList(this.Identifier())}},$M={parse:Mw},Gc={parse(){return this.createSingleNodeList(this.Nth())}},Bw={dir:OM,has:Bi,lang:$M,matches:Bi,is:Bi,"-moz-any":Bi,"-webkit-any":Bi,where:Bi,not:Bi,"nth-child":Gc,"nth-last-child":Gc,"nth-last-of-type":Gc,"nth-of-type":Gc,slotted:xm,host:xm,"host-context":xm}});var ym={};Ee(ym,{AnPlusB:()=>bg,Atrule:()=>Sg,AtrulePrelude:()=>Ig,AttributeSelector:()=>Ag,Block:()=>Mg,Brackets:()=>zg,CDC:()=>_g,CDO:()=>Hg,ClassSelector:()=>Vg,Combinator:()=>qg,Comment:()=>Xg,Condition:()=>Zg,Declaration:()=>nf,DeclarationList:()=>sf,Dimension:()=>uf,Feature:()=>gf,FeatureFunction:()=>hf,FeatureRange:()=>wf,Function:()=>kf,GeneralEnclosed:()=>Tf,Hash:()=>Af,IdSelector:()=>zf,Identifier:()=>Mf,Layer:()=>_f,LayerList:()=>Hf,MediaQuery:()=>Vf,MediaQueryList:()=>qf,NestingSelector:()=>Xf,Nth:()=>Zf,Number:()=>n0,Operator:()=>i0,Parentheses:()=>l0,Percentage:()=>d0,PseudoClassSelector:()=>f0,PseudoElementSelector:()=>x0,Ratio:()=>w0,Raw:()=>k0,Rule:()=>T0,Scope:()=>A0,Selector:()=>M0,SelectorList:()=>z0,String:()=>O0,StyleSheet:()=>U0,SupportsDeclaration:()=>W0,TypeSelector:()=>K0,UnicodeRange:()=>Z0,Url:()=>om,Value:()=>sm,WhiteSpace:()=>um});var Dw=$(()=>{"use strict";vg();Cg();Eg();Pg();Bg();Ng();$g();jg();Gg();Kg();Qg();tf();of();cf();pf();mf();yf();Sf();If();Rf();Pf();Bf();Nf();$f();jf();Gf();Kf();Qf();t0();o0();s0();u0();g0();h0();b0();S0();I0();R0();P0();B0();N0();H0();V0();q0();J0();tm();am();cm();pm()});var Nw,_w=$(()=>{"use strict";lw();Pw();zw();Dw();Nw={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:mm,atrule:Fw,pseudo:Bw,node:ym}});var Ow,$w=$(()=>{"use strict";gm();Ow={node:Ds}});var Hw,Uw=$(()=>{"use strict";x2();Y2();_w();$w();Hw=h2({...q2,...Nw,...Ow})});var jw=$(()=>{"use strict"});var Vw=$(()=>{"use strict"});var cre,Ww,ure,dre,pre,Gw,gre,fre,mre,hre,xre,yre,qw=$(()=>{"use strict";Uw();jw();ig();Ac();Vw();Vc();rm();({tokenize:cre,parse:Ww,generate:ure,lexer:dre,createLexer:pre,walk:Gw,find:gre,findLast:fre,findAll:mre,toPlainObject:hre,fromPlainObject:xre,fork:yre}=Hw)});function VM(e){return e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Kw(e){try{let t=Ww(e.trim(),{context:"value"}),n=[];return Gw(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 WM(e,t){let n=VM(e);if(!jM.has(n))return t;let r=Kw(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 Yw(e,t){let n=t.trim();if(!n)return"";let r=WM(e,n);return Kw(r).map(i=>i==="0"?"0px":i).join(" ")}function Xw(e,t,n){let r=Yw(e,t),o=Yw(e,n);return r!==""&&o!==""&&r===o}var jM,Jw=$(()=>{"use strict";qw();jM=new Set(["padding","margin","border-radius","borderradius","inset","border-width","borderwidth"])});function GM(e){let t=e.toLowerCase();return t.length===4?`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`:t}function qM(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 Qw(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=qM(n[0]);if(i)return i}let r=t.match(/#([0-9a-fA-F]{3,8})/);if(r)return GM(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 zi(e,t,n){if(!e||!t)return!1;let r=String(e),o=String(t),i=r.toLowerCase(),a=o.toLowerCase(),s=i.includes("none"),u=a.includes("none");if(s!==u)return!1;let c=/\b(fill|stroke)\s*:/i,l=c.test(r),p=c.test(o);if(l!==p)return!1;let g=Qw(r),d=Qw(o);return!!(g===d||n&&Xw(n,r,o))}var bm=$(()=>{"use strict";Jw()});function wm(e){let t=e.trim().match(/^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/);if(!t)return null;let n=t[1];return n.length===3||n.length===4?n=n.slice(0,3).split("").map(r=>r+r).join(""):n.length===8&&(n=n.slice(0,6)),[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]}function YM(e){let t=e.trim().match(/^rgba?\(\s*([^)]+)\)$/i);if(!t)return null;let n=t[1].replace(/\//g," ").split(/[\s,]+/).filter(Boolean);if(n.length<3)return null;let r=u=>u.endsWith("%")?Math.round(parseFloat(u)/100*255):Math.round(parseFloat(u)),o=r(n[0]),i=r(n[1]),a=r(n[2]);if([o,i,a].some(u=>isNaN(u)))return null;let s=u=>Math.max(0,Math.min(255,u));return[s(o),s(i),s(a)]}function KM(e,t,n){let r=(1-Math.abs(2*n-1))*t,o=(e%360+360)%360/60,i=r*(1-Math.abs(o%2-1)),a=0,s=0,u=0;o<1?[a,s,u]=[r,i,0]:o<2?[a,s,u]=[i,r,0]:o<3?[a,s,u]=[0,r,i]:o<4?[a,s,u]=[0,i,r]:o<5?[a,s,u]=[i,0,r]:[a,s,u]=[r,0,i];let c=n-r/2;return[Math.round((a+c)*255),Math.round((s+c)*255),Math.round((u+c)*255)]}function XM(e){let t=e.trim().match(/^hsla?\(\s*([^)]+)\)$/i);if(!t)return null;let n=t[1].replace(/\//g," ").split(/[\s,]+/).filter(Boolean);if(n.length<3)return null;let r=parseFloat(n[0]),o=parseFloat(n[1]),i=parseFloat(n[2]);return[r,o,i].some(a=>isNaN(a))?null:KM(r,o/100,i/100)}function QM(e){return JM[e.trim().toLowerCase()]??null}function Zw(e){return e?wm(e)??YM(e)??XM(e)??vm(e)??QM(e):null}function vm(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=d=>d<=.04045?d/12.92:Math.pow((d+.055)/1.055,2.4),a=i(n),s=i(r),u=i(o),c=1.2249*a-.2247*s+0*u,l=-.042*a+1.0419*s+0*u,p=-.0197*a-.0786*s+1.0983*u,g=d=>{let f=Math.max(0,Math.min(1,d));return f<=.0031308?12.92*f:1.055*Math.pow(f,1/2.4)-.055};return[Math.round(g(c)*255),Math.round(g(l)*255),Math.round(g(p)*255)]}function ev(e,t,n){let r=S=>{let x=S/255;return x<=.04045?x/12.92:Math.pow((x+.055)/1.055,2.4)},o=r(e),i=r(t),a=r(n),s=o*.4124564+i*.3575761+a*.1804375,u=o*.2126729+i*.7151522+a*.072175,c=o*.0193339+i*.119192+a*.9503041,l=.95047,p=1,g=1.08883,d=S=>S>.008856?Math.cbrt(S):7.787*S+16/116,f=d(s/l),y=d(u/p),I=d(c/g);return[116*y-16,500*(f-y),200*(y-I)]}function tv(e,t){let[n,r,o]=ev(...e),[i,a,s]=ev(...t),u=(n+i)/2,c=Math.sqrt(r*r+o*o),l=Math.sqrt(a*a+s*s),p=(c+l)/2,g=.5*(1-Math.sqrt(Math.pow(p,7)/(Math.pow(p,7)+Math.pow(25,7)))),d=(1+g)*r,f=(1+g)*a,y=Math.sqrt(d*d+o*o),I=Math.sqrt(f*f+s*s),S=(y+I)/2,x=(Math.atan2(o,d)*180/Math.PI+360)%360,M=(Math.atan2(s,f)*180/Math.PI+360)%360,z=M-x;Math.abs(z)>180&&(z-=Math.sign(z)*360);let O=i-n,L=I-y,N=2*Math.sqrt(y*I)*Math.sin(z*Math.PI/360),m=Math.abs(x-M)>180?(x+M+360)/2:(x+M)/2,v=1-.17*Math.cos((m-30)*Math.PI/180)+.24*Math.cos(2*m*Math.PI/180)+.32*Math.cos((3*m+6)*Math.PI/180)-.2*Math.cos((4*m-63)*Math.PI/180),k=1+.015*Math.pow(u-50,2)/Math.sqrt(20+Math.pow(u-50,2)),E=1+.045*S,h=1+.015*S*v,b=-2*Math.sqrt(Math.pow(S,7)/(Math.pow(S,7)+Math.pow(25,7)))*Math.sin(60*Math.exp(-Math.pow((m-275)/25,2))*Math.PI/180);return Math.sqrt(Math.pow(O/k,2)+Math.pow(L/E,2)+Math.pow(N/h,2)+b*(L/E)*(N/h))}function nv(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=wm(r)??wm(o),a=vm(r)??vm(o);return!i||!a||r===o?!1:tv(i,a)<5}function _s(e){let t=String(e.expected??e.suggestedValue??""),n=String(e.actual??e.currentValue??"");if(!t||!n||t===n)return null;let r=Zw(t),o=Zw(n);return!r||!o?null:tv(r,o)}function Os(e){let t=e.severity||"minor";if(t==="minor")return t;if(nv(e))return"minor";let n=_s(e);if(n!==null)return n<2?"minor":n<5&&t==="critical"?"major":t;let r=["width","height","size","dimension","dimensions","r","cx","cy"],o=["dimension","layout"],i=new Set((e.property||"").replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),a=(e.type||"").toLowerCase();if(!(r.some(d=>i.has(d))||o.some(d=>a===d)))return t;let u=String(e.expected||e.suggestedValue||""),c=String(e.actual||e.currentValue||""),l=parseFloat(u.replace(/[^0-9.-]/g,"")),p=parseFloat(c.replace(/[^0-9.-]/g,""));if(isNaN(l)||isNaN(p))return t;let g=Math.abs(l-p);return g<5?"minor":g<10&&t==="critical"?"major":t}function qc(e,t,n){return e>0?"D":t>0?"C":n>0?"B":"A"}function Yc(e){let t=e.filter(n=>!n.dismissed).map(n=>Os(n));return qc(t.filter(n=>n==="critical").length,t.filter(n=>n==="major").length,t.filter(n=>n==="minor").length)}function Oo(e,t,n){let r=100-n*1-t*3-e*10,o=$s[qc(e,t,n)];return Math.max(0,Math.min(o,r))}var JM,$s,Sm=$(()=>{"use strict";JM={white:[255,255,255],black:[0,0,0],red:[255,0,0],green:[0,128,0],blue:[0,0,255],yellow:[255,255,0],cyan:[0,255,255],aqua:[0,255,255],magenta:[255,0,255],fuchsia:[255,0,255],gray:[128,128,128],grey:[128,128,128],silver:[192,192,192],maroon:[128,0,0],olive:[128,128,0],lime:[0,255,0],teal:[0,128,128],navy:[0,0,128],purple:[128,0,128],orange:[255,165,0],pink:[255,192,203],brown:[165,42,42],gold:[255,215,0],beige:[245,245,220],ivory:[255,255,240],indigo:[75,0,130],violet:[238,130,238],coral:[255,127,80],salmon:[250,128,114],khaki:[240,230,140],crimson:[220,20,60],turquoise:[64,224,208],lightgray:[211,211,211],lightgrey:[211,211,211],darkgray:[169,169,169],darkgrey:[169,169,169],whitesmoke:[245,245,245],gainsboro:[220,220,220]};$s={A:100,B:99,C:89,D:69}});function va(e,t={}){if(e==null)return"";let n=String(e).split(",")[0].trim().replace(/['"]/g,"").toLowerCase();return t.stripSeparators&&(n=n.replace(/[\s_-]/g,"")),n}function iv(e,t){let n=va(e,{stripSeparators:!0}),r=va(t,{stripSeparators:!0});return!n||!r||n===r?!1:ZM.some(o=>o.has(n)&&o.has(r))}function ov(e){if(e==null)return null;let t=String(e).trim().toLowerCase();if(!t)return null;let n=t.replace(/[\s_-]/g,"");if(n in rv)return rv[n];let r=parseFloat(t.replace(/[^0-9.-]/g,""));return isNaN(r)?null:r}function av(e,t){let n=ov(e),r=ov(t);return n==null||r==null?!1:Math.round(n/100)===Math.round(r/100)}var ZM,rv,Kc=$(()=>{"use strict";ZM=[new Set(["applesystem","blinkmacsystemfont","systemui","webkitsystemfont","sfpro","sfprotext","sfprodisplay","sanfrancisco","sanfranciscopro","sanfranciscotext","sanfranciscodisplay"])];rv={thin:100,hairline:100,extralight:200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,demibold:600,demi:600,bold:700,extrabold:800,ultrabold:800,black:900,heavy:900}});function dv(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=a=>/^#[0-9a-f]{3,8}$/i.test(a)||a.includes("rgb")||["white","black","red","blue","green","orange","yellow","transparent"].includes(a);return!!(i(r)||i(o)||e.relatedProperties?.some(a=>{let s=a.property?.toLowerCase()||"";return s.includes("color")||s.includes("fill")||s.includes("background")}))}function oL(e){if(!dv(e))return!1;let t=_s(e);return t!==null&&t<2}function sv(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 iL(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",a=t.includes("gap")||o.includes("gap");return i&&a}function aL(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&&dv(n)||sv(r)||sv(o)||n&&iL(n))return!1;let i=parseFloat(r),a=parseFloat(o);if(isNaN(i)||isNaN(a))return!1;let s=Math.abs(i-a);if(r.includes("px")||o.includes("px")){let u=n?.property?.toLowerCase()||"";return u==="width"||u==="height"||u.includes("width")||u.includes("height")?s<cv:s<lv}return r.includes("%")||o.includes("%")?s<1:!1}function sL(e){let t=`${e.description||""} ${e.title||""} ${e.suggestedFix||""}`.toLowerCase();if(rL.some(a=>t.includes(a))||!tL.some(a=>t.includes(a)))return!1;let o=e.expected||e.suggestedValue,i=e.actual||e.currentValue;return!(o&&i&&!zi(o,i,e.property))}function lL(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 a=`${e.description||""} ${e.title||""}`.toLowerCase();return a.includes("container")||a.includes("svg ")||a.includes("<svg")||a.includes("wrapper")}function cL(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||"",a=e.actual||e.currentValue||"",s=parseFloat(i),u=parseFloat(a);return isNaN(s)||isNaN(u)?!1:Math.abs(s-u)<uv}function uL(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(!nL.some(p=>t.includes(p)||n.includes(p)))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 s=n.includes("hug")||n.includes("auto"),u=/\d+\.?\d*px/.test(r);if(!s||!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]))>eL)}function dL(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 pv(e){return(e||"").toLowerCase().replace(/[\s_-]/g,"")==="fontfamily"}function pL(e){return(e||"").toLowerCase().replace(/[\s_-]/g,"")==="fontweight"}function gL(e,t,n){if(!pv(n))return!1;let r=va(e,{stripSeparators:!0}),o=va(t,{stripSeparators:!0});return r.length>0&&o.length>0&&r===o}function fL(e,t,n){return pv(n)?iv(e,t):!1}function mL(e,t,n){return pL(n)?av(e,t):!1}function Hs(e){let t=e.expected||e.suggestedValue,n=e.actual||e.currentValue;if(gL(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: font-family naming difference (same font)",dismissedBy:"post-ai-validation"};if(fL(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: system font stack equivalence (-apple-system renders as SF Pro)",dismissedBy:"post-ai-validation"};if(mL(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: font weight renders identically (same named weight)",dismissedBy:"post-ai-validation"};if(e.programmaticallyVerified)return{dismissed:!1};if(e.fixRequired===!1)return{dismissed:!0,dismissReason:"Auto-dismissed: FixRequired is false (no code change needed)",dismissedBy:"post-ai-validation"};if(zi(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: expected equals actual (identical values)",dismissedBy:"post-ai-validation"};if(oL(e))return{dismissed:!0,dismissReason:`Auto-dismissed: imperceptible color difference (\u0394E < ${2})`,dismissedBy:"post-ai-validation"};if(e.fixRequired===!0)return{dismissed:!1};if(cL(e))return{dismissed:!0,dismissReason:`Auto-dismissed: text dimension variance (<${uv}px) - font rendering difference, not actionable`,dismissedBy:"post-ai-validation"};if(aL(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")?cv:lv}px)`,dismissedBy:"post-ai-validation"}}return dL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no measurable values to compare",dismissedBy:"post-ai-validation"}:sL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no fix needed",dismissedBy:"post-ai-validation"}:uL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: HUG sizing - CSS auto-sizes content without explicit dimensions",dismissedBy:"post-ai-validation"}:lL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: SVG container fill - child elements use their own fills",dismissedBy:"post-ai-validation"}:{dismissed:!1}}var lv,cv,uv,eL,tL,nL,rL,gv=$(()=>{"use strict";bm();Sm();Kc();lv=.5,cv=2,uv=2,eL=5,tL=["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"],nL=["hug","auto (hug)","should be hug","fixed pixel values are being rendered","fixed values are being rendered"],rL=["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"]});var fv=$(()=>{"use strict"});var mv=$(()=>{"use strict"});var Xc=$(()=>{"use strict";bm();gv();Sm();fv();mv()});var kL,CL,_re,Cm=$(()=>{"use strict";kL=["flex","inline-flex"],CL=["grid","inline-grid"],_re=[...kL,...CL]});var xv=$(()=>{"use strict";Xc();Cm()});var yv=$(()=>{"use strict"});var bv=$(()=>{"use strict"});var wv=$(()=>{"use strict"});var Im=$(()=>{"use strict";Kc()});var vv=$(()=>{"use strict";Im();Xc()});var Sv=$(()=>{"use strict"});var kv=$(()=>{"use strict"});var Cv=$(()=>{"use strict"});var Iv=$(()=>{"use strict"});var Tv=$(()=>{"use strict"});var Ev=$(()=>{"use strict";bv();wv();Im();vv();Sv();kv();Cv();Iv();Tv()});var Rv=$(()=>{"use strict";Kc()});var Us,Av=$(()=>{"use strict";Us={admin:{enableFixGeneration:!1,enableFixApply:!0,enableAutoMap:!0,enableAutoFigmaLinking:!0,enableReviewBadges:!0,showCosts:!0,enableParallelReview:!0,enableModelSelection:!0},beta:{enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!0,enableAutoFigmaLinking:!1,enableReviewBadges:!0,showCosts:!1,enableParallelReview:!0,enableModelSelection:!1},anonymous:{enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!0,enableAutoFigmaLinking:!1,enableReviewBadges:!0,showCosts:!1,enableParallelReview:!0,enableModelSelection:!1}}});var pn=$(()=>{"use strict";fp();gy();fy();Xc();Cm();xv();yv();Ev();Rv();Av()});function TL(e){let{aiPrompt:t,aiResponse:n,...r}=e;return r}function Cr(e){try{let t=e.map(TL),n=JSON.stringify(t,EL);sessionStorage.setItem(Tm,n)}catch(t){w.error("[SessionStorage] Failed to save review history:",t)}}function Em(){try{let e=sessionStorage.getItem(Tm);if(!e)return[];let t=JSON.parse(e,RL);return Array.isArray(t)?t:[]}catch(e){return w.error("[SessionStorage] Failed to load review history:",e),[]}}function Fv(){try{let e=Em();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,...a}=r;return a}return r});t&&(Cr(n),w.debug("[SessionStorage] Stripped aiPrompt/aiResponse from existing review history"))}catch(e){w.error("[SessionStorage] Failed to strip sensitive fields:",e)}}function Pv(){try{sessionStorage.removeItem(Tm),w.debug("[SessionStorage] Review history cleared")}catch(e){w.error("[SessionStorage] Failed to clear review history:",e)}}function EL(e,t){return t instanceof Date?{__type:"Date",value:t.toISOString()}:t}function RL(e,t){return t&&t.__type==="Date"?new Date(t.value):t}var Tm,Rm=$(()=>{"use strict";Ue();Tm="uicopilot_review_history"});import AL,{createContext as FL,useContext as PL,useReducer as ML,useMemo as Mv,useRef as LL,useEffect as BL}from"react";function Jc(e){let t=e.length>Lv?e.slice(e.length-Lv):e,n=Math.max(0,t.length-zL);return n===0?t:t.map((r,o)=>{if(o>=n)return r;let i=r.storybookImageData?.startsWith("data:"),a=r.figmaImageData?.startsWith("data:");return!i&&!a?r:{...r,storybookImageData:i?void 0:r.storybookImageData,figmaImageData:a?void 0:r.figmaImageData}})}function DL(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"REQUEST_REVIEW_RETRY":return{...e,reviewRetryNonce:e.reviewRetryNonce+1};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:t.payload.storybookImageData||e.storybookImageUrl||void 0,figmaImageData:t.payload.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,reviewDurationMs:t.payload.reviewDurationMs},o=e.reviewHistory.findIndex(a=>a.id===t.payload.id),i;return o>=0?i=e.reviewHistory.map((a,s)=>s===o?r:a):i=[...e.reviewHistory,r],i=Jc(i),Cr(i),{...e,reviewResults:t.payload,reviewHistory:i,currentReviewId:t.payload.id,isNewReviewMode:!1}}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(a=>[a.id,a])),r=!1,o=e.reviewHistory.slice();for(let a of t.payload){let s=n.get(a.id);if(!s){o.push(a),r=!0;continue}let u=a.issues?.length??0,c=s.issues?.length??0;if(u>c){let l=o.indexOf(s);l!==-1&&(o[l]=a,r=!0)}}if(!r)return e;let i=Jc(o);return Cr(i),{...e,reviewHistory:i}}case"ADD_REVIEW":{let n=Jc([...e.reviewHistory,t.payload]);return Cr(n),{...e,reviewHistory:n,currentReviewId:t.payload.id,isNewReviewMode:!1}}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 Cr(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 Cr(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 Cr(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 a=n.get(i.id);return a?{...i,generatedFix:i.generatedFix?{...i.generatedFix,...a}:a,selectedForFix:a?.status==="failed"?!1:i.selectedForFix}:i})});return Cr(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),a=i.filter(c=>c.severity==="critical").length,s=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:Oo(a,s,u),issuesCount:i.length}});return Cr(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),a=i.filter(c=>c.severity==="critical").length,s=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:Oo(a,s,u),issuesCount:i.length}});return Cr(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,a=o.filter(c=>c.severity==="major").length,s=o.filter(c=>c.severity==="minor").length,u=Oo(i,a,s);return w.debug(`[recalculateScore] Active: ${o.length}, score: ${u}`),{...r,complianceScore:u,issuesCount:o.length}});return Cr(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 Cr(n),{...e,reviewHistory:n}}case"CLEAR_ALL_REVIEWS":return Pv(),{...e,reviewHistory:[],currentReviewId:null};case"CLEAR_STALE_REVIEWS":return{...e,currentReviewId:null,reviewResults:null,isNewReviewMode:!1};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 Fm({children:e}){let[t,n]=ML(DL,HL),r=LL(t);BL(()=>{r.current=t},[t]);let o=Mv(()=>({setIsReviewing:a=>n({type:"SET_STATE",payload:{isReviewing:a}}),setReviewingStoryId:a=>n({type:"SET_STATE",payload:{reviewingStoryId:a}}),setReviewError:a=>n({type:"SET_STATE",payload:{reviewError:a}}),requestReviewRetry:()=>n({type:"REQUEST_REVIEW_RETRY"}),bulkAddReviews:a=>n({type:"BULK_ADD_REVIEWS",payload:a}),setReviewResults:a=>n({type:"SET_REVIEW_RESULTS",payload:a}),setMultiModelResults:a=>n({type:"SET_STATE",payload:{multiModelResults:a}}),updateMultiModelStreamingMessages:(a,s)=>n({type:"UPDATE_MULTI_MODEL_STREAMING",payload:{modelId:a,messages:s}}),setModelCompleted:a=>n({type:"SET_MODEL_COMPLETED",payload:a}),setActiveModelId:a=>{let s=r.current;s.multiModelResults&&n({type:"SET_STATE",payload:{multiModelResults:{...s.multiModelResults,activeModelId:a}}})},setShowReviewMenu:a=>n({type:"SET_STATE",payload:{showReviewMenu:a}}),setSeverityFilter:a=>n({type:"SET_STATE",payload:{severityFilter:a}}),setShowStreamingPanel:a=>n({type:"SET_STATE",payload:{showStreamingPanel:a}}),setStreamingPanelCollapsed:a=>n({type:"SET_STATE",payload:{streamingPanelCollapsed:a}}),addStreamingMessage:a=>n({type:"ADD_STREAMING_MESSAGE",payload:a}),updateStreamingMessage:(a,s)=>n({type:"UPDATE_STREAMING_MESSAGE",payload:{index:a,content:s}}),clearStreamingMessages:()=>n({type:"CLEAR_STREAMING_MESSAGES"}),setStreamingProgress:a=>n({type:"SET_STATE",payload:{streamingProgress:a}}),setStreamingStatus:a=>n({type:"SET_STATE",payload:{streamingStatus:a}}),setReviewDetailTab:a=>n({type:"SET_STATE",payload:{reviewDetailTab:a}}),setFullPrompt:a=>n({type:"SET_STATE",payload:{fullPrompt:a}}),setFullResponse:a=>n({type:"SET_STATE",payload:{fullResponse:a}}),setFigmaImageUrl:a=>n({type:"SET_STATE",payload:{figmaImageUrl:a}}),setStorybookImageUrl:a=>n({type:"SET_STATE",payload:{storybookImageUrl:a}}),setFigmaDimensions:a=>n({type:"SET_STATE",payload:{figmaDimensions:a}}),setSelectedModels:a=>n({type:"SET_STATE",payload:{selectedModels:a}}),toggleModel:a=>n({type:"TOGGLE_MODEL",payload:a}),setModelComparisonView:a=>n({type:"SET_STATE",payload:{modelComparisonView:a}}),resetReview:()=>n({type:"RESET_REVIEW"}),addReview:a=>n({type:"ADD_REVIEW",payload:a}),getCurrentReview:()=>{let a=r.current;return a.currentReviewId&&a.reviewHistory.find(s=>s.id===a.currentReviewId)||null},getReviewById:a=>r.current.reviewHistory.find(s=>s.id===a)||null,getParentReview:()=>{let a=r.current,s=a.reviewHistory.find(u=>u.id===a.currentReviewId);return s?.parentReviewId&&a.reviewHistory.find(u=>u.id===s.parentReviewId)||null},hasAppliedFixes:()=>{let a=r.current,s=a.reviewHistory.find(u=>u.id===a.currentReviewId);return!s||!Array.isArray(s.issues)||s.issues.length===0?!1:s.issues.some(u=>u.status==="applied"||u.generatedFix?.status==="applied")},toggleIssueSelection:a=>n({type:"TOGGLE_ISSUE_SELECTION",payload:a}),updateIssueStatus:(a,s,u)=>n({type:"UPDATE_ISSUE_STATUS",payload:{issueId:a,status:s,error:u}}),updateIssueGeneratedFix:(a,s)=>n({type:"UPDATE_ISSUE_GENERATED_FIX",payload:{issueId:a,generatedFix:s}}),batchUpdateIssueGeneratedFixes:a=>n({type:"BATCH_UPDATE_ISSUE_GENERATED_FIXES",payload:a}),dismissIssue:(a,s,u)=>n({type:"DISMISS_ISSUE",payload:{issueId:a,reason:s,dismissedBy:u}}),undismissIssue:a=>n({type:"UNDISMISS_ISSUE",payload:a}),recalculateScore:()=>n({type:"RECALCULATE_SCORE"}),updateReviewScore:(a,s)=>n({type:"UPDATE_REVIEW_SCORE",payload:{reviewId:a,newScore:s}}),clearAllReviews:()=>n({type:"CLEAR_ALL_REVIEWS"}),clearStaleReviewsForStory:a=>n({type:"CLEAR_STALE_REVIEWS",payload:a}),setIsApplying:a=>n({type:"SET_STATE",payload:{isApplying:a}}),setApplyFixesResult:a=>n({type:"SET_STATE",payload:{applyFixesResult:a}}),setIncludeComponentIssues:a=>n({type:"SET_STATE",payload:{includeComponentIssues:a}}),setIncludeTextComparison:a=>n({type:"SET_STATE",payload:{includeTextComparison:a}}),setUsePromptCache:a=>n({type:"SET_STATE",payload:{usePromptCache:a}}),setIsValidating:a=>n({type:"SET_STATE",payload:{isValidating:a}}),setIsSpecChecking:a=>n({type:"SET_STATE",payload:{isSpecChecking:a}}),setReviewHistoryLoading:a=>n({type:"SET_STATE",payload:{reviewHistoryLoading:a}}),setValidationUsage:a=>n({type:"SET_STATE",payload:{validationUsage:a}}),setWorkspacePath:a=>n({type:"SET_STATE",payload:{workspacePath:a}}),triggerScreenshotRefresh:()=>n({type:"TRIGGER_SCREENSHOT_REFRESH"}),setHoveredIssueId:a=>n({type:"SET_STATE",payload:{hoveredIssueId:a}}),setNewReviewMode:a=>n({type:"SET_STATE",payload:{isNewReviewMode:a}}),setPendingSettingsOpen:a=>n({type:"SET_STATE",payload:{pendingSettingsOpen:a}}),setFeatureFlags:a=>n({type:"SET_STATE",payload:{featureFlags:a}}),setUserRole:a=>n({type:"SET_STATE",payload:{userRole:a}}),setRoleOverride:a=>{try{a?localStorage.setItem("uicopilot_role_override",a):localStorage.removeItem("uicopilot_role_override")}catch{}n({type:"SET_STATE",payload:{roleOverride:a}})},setReviewAllConcurrency:a=>{let s=Math.max(1,Math.min(5,a));try{localStorage.setItem("uicopilot_review_all_concurrency",String(s))}catch{}n({type:"SET_STATE",payload:{reviewAllConcurrency:s}})},setIsGenerating:a=>n({type:"SET_STATE",payload:{isGenerating:a}}),setGeneratedPrompt:a=>n({type:"SET_STATE",payload:{generatedPrompt:a}}),setPromptError:a=>n({type:"SET_STATE",payload:{promptError:a}}),resetPrompt:()=>n({type:"RESET_PROMPT"})}),[]),i=Mv(()=>({...t,...o}),[t,o]);return AL.createElement(Bv.Provider,{value:i},e)}function ue(){let e=PL(Bv);if(!e)throw new Error("useReviewStore must be used within a ReviewProvider");return e}var Lv,zL,NL,_L,Am,OL,$L,HL,Bv,Pm=$(()=>{"use strict";pn();Rm();Ue();Lv=20,zL=5;NL=()=>{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},_L=()=>{if(typeof localStorage>"u")return null;try{let e=localStorage.getItem("uicopilot_role_override");if(e==="admin"||e==="beta")return e}catch{}return null},Am={enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!1,enableAutoFigmaLinking:!1,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1},OL=()=>{if(typeof localStorage>"u")return Am;try{let e=localStorage.getItem("uicopilot_feature_flags");if(!e)return Am;let t=JSON.parse(e);return{enableFixGeneration:!!t.enableFixGeneration,enableFixApply:!!t.enableFixApply,enableAutoMap:!!t.enableAutoMap,enableAutoFigmaLinking:!!t.enableAutoFigmaLinking,enableReviewBadges:!!t.enableReviewBadges,showCosts:!!t.showCosts,enableParallelReview:!!t.enableParallelReview,enableModelSelection:!!t.enableModelSelection}}catch{}return Am},$L=()=>{if(typeof localStorage>"u")return"beta";try{let e=localStorage.getItem("uicopilot_user_role");if(e==="admin"||e==="beta")return e}catch{}return"beta"},HL={isReviewing:!1,reviewingStoryId:null,reviewError:null,reviewRetryNonce:0,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-6"],modelComparisonView:"side-by-side",reviewHistory:Jc(Em()),currentReviewId:null,includeComponentIssues:!0,includeTextComparison:!1,usePromptCache:!1,isApplying:!1,applyFixesResult:null,screenshotRefreshKey:0,isValidating:!1,isSpecChecking:!1,reviewHistoryLoading:!1,validationUsage:null,lastAiCallTimestamp:null,aiRateLimitSeconds:0,isGenerating:!1,generatedPrompt:null,promptError:null,workspacePath:null,userRole:$L(),roleOverride:_L(),featureFlags:OL(),reviewAllConcurrency:NL(),hoveredIssueId:null,isNewReviewMode:!1,pendingSettingsOpen:!1},Bv=FL(null)});import js,{useMemo as UL}from"react";function Lm({children:e}){return js.createElement(lp,null,js.createElement(up,null,js.createElement(pp,null,js.createElement(Fm,null,js.createElement(jL,null),e))))}function zv(e){let t=he(),n=Ke(),r=gt(),o=ue(),i=UL(()=>({...t,...n,...r,...o}),[t,n,r,o]);return e?e(i):i}function jL(){return Mm=zv(),null}var Mm,kt,Dv=$(()=>{"use strict";cp();dp();gp();Pm();Mm=null,kt=Object.assign(zv,{getState:()=>{if(!Mm)throw new Error("Store not initialized. Make sure StoreProvider is mounted.");return Mm}})});var Se=$(()=>{"use strict";Dv();cp();dp();gp();Pm()});function K(){return(process.env.STORYBOOK_UICOPILOT_URL||VL).replace(/\/$/,"")}var VL,Nv,De=$(()=>{"use strict";VL="https://app.uiparity.com";Nv=3.6});async function Q(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 ut=$(()=>{"use strict"});import{useEffect as oi,useState as nu,useRef as tS,useCallback as $m}from"react";import{addons as Hm}from"storybook/manager-api";async function tz(e,t,n){let r=`${e}:${t}`,o=Um.get(r);if(o)return w.debug("[useReviewScreenshots] Reusing in-flight Figma image fetch for",r),o;let i=(async()=>{let a=await Q(`${aS}/api/figma/image?projectId=${e}&nodeId=${t}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}});return a.ok?a.json():{imageUrl:null}})().finally(()=>{Um.delete(r)});return Um.set(r,i),i}function nz(e,t,n){try{sessionStorage.setItem(`${ru}${e}`,JSON.stringify({figmaNodeId:t,imageUrl:n,timestamp:Date.now()}))}catch{}}function rz(e,t){try{let n=sessionStorage.getItem(`${ru}${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(`${ru}${e}`)}catch{}return null}function oz(e){try{let t=sessionStorage.getItem(`${ru}${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 nS,rS,oS,iS,Ca,aS,Yn,jm,Um,ru,sS,lS,Di,Ia=$(()=>{"use strict";Se();Vm();Ue();De();ut();nS="storyArgsUpdated",rS="storyRendered",oS="forceRemount",iS=null,Ca=()=>iS,aS=K(),Yn=new Map,jm=null,Um=new Map;ru="uicopilot-figma-image-";sS=(e,t,n)=>{let r=Yn.get(e);r?(r.storybookImageUrl=t,n&&(r.figmaImageUrl=n)):Yn.set(e,{storybookImageUrl:t,figmaImageUrl:n??null}),w.debug("[useReviewScreenshots] Populated historical screenshots for story:",e)},lS=(e,t,n)=>{jm=t;let r=Yn.get(e);r?r.figmaImageUrl=n:Yn.set(e,{storybookImageUrl:null,figmaImageUrl:n}),w.debug("[useReviewScreenshots] Pre-set Figma image for mapping:",{storyId:e,figmaNodeId:t,imageUrl:n.substring(0,50)+"..."})},Di=()=>{let[e,t]=nu(!1),[n,r]=nu(!1),[o,i]=nu(!1),[a,s]=nu(null),u=tS(null),{screenshotRefreshKey:c,triggerScreenshotRefresh:l}=ue(),p=$m(()=>{let L=kt.getState().currentStoryId;L&&(w.debug("[useReviewScreenshots] Refreshing screenshots for story:",L),Yn.delete(L),u.current=null,i(!0),l())},[l]),g=$m(()=>{let L=kt.getState().currentStoryId;if(L){w.debug("[useReviewScreenshots] Refreshing Storybook screenshot only for story:",L);let N=Yn.get(L);N&&(N.storybookImageUrl=null),u.current=null,i(!0),l()}},[l]),{sessionToken:d}=he(),{selectedProjectId:f}=Ke(),{currentStoryId:y,currentMapping:I,loadingMapping:S}=gt(),{setStorybookImageUrl:x,setFigmaImageUrl:M}=ue(),z=tS(null);oi(()=>{y&&z.current&&z.current!==y&&(w.debug("[useReviewScreenshots] Story switched, clearing images"),x(""),M("")),z.current=y},[y,x,M]),oi(()=>{!y||S||I||M("")},[y,I,S,M]),oi(()=>{if(!y)return;let L=oz(y);L&&(w.debug("[useReviewScreenshots] Quick-restored Figma image for:",y),M(L))},[y,M]),oi(()=>{if(!y||S)return;let L=I?.figmaFileUrl;if(L){w.debug("[useReviewScreenshots] Restoring Figma image from mapping.figmaFileUrl for:",y),M(L);let N=Yn.get(y);N?N.figmaImageUrl=L:Yn.set(y,{storybookImageUrl:null,figmaImageUrl:L})}},[y,I,S,M]),oi(()=>{let L=!1;return(async()=>{if(!d||!f||!y){w.debug("[useReviewScreenshots] Missing required context, skipping auto-load");return}u.current&&u.current!==y&&(w.debug("[useReviewScreenshots] Story changed, clearing stale screenshots"),x(""),M(""));let m=kt.getState();if(u.current===y&&m.storybookImageUrl&&m.figmaImageUrl){w.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping capture");return}let v=I?.figmaNodeId??null;if(v!==jm){w.debug("[useReviewScreenshots] Figma mapping changed, invalidating Figma image only for story:",y);let B=Yn.get(y);B&&(B.figmaImageUrl=null),jm=v,u.current=null}let k=I?.figmaNodeId;if(k&&!Yn.get(y)?.figmaImageUrl){let B=rz(y,k);if(B){w.debug("[useReviewScreenshots] Hydrated Figma image from sessionStorage for story:",y),M(B);let P=Yn.get(y);P?P.figmaImageUrl=B:Yn.set(y,{storybookImageUrl:null,figmaImageUrl:B})}}let E=Yn.get(y),h=E&&E.storybookImageUrl&&E.figmaImageUrl,b=E&&E.storybookImageUrl&&!E.figmaImageUrl,F=E&&!E.storybookImageUrl&&E.figmaImageUrl;if(h){w.debug("[useReviewScreenshots] Using fully cached screenshots for story:",y),x(E.storybookImageUrl),M(E.figmaImageUrl),u.current=y;return}let C=b&&I?.figmaNodeId;C&&(w.debug("[useReviewScreenshots] Using cached Storybook, fetching new Figma for story:",y),x(E.storybookImageUrl));let A=F;if(A&&(w.debug("[useReviewScreenshots] Using cached Figma, recapturing Storybook for story:",y),M(E.figmaImageUrl)),u.current===y&&I?.figmaNodeId){w.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping");return}try{if(s(null),C?r(!0):(A||(t(!0),r(!0)),i(!0)),u.current=y,L)return;let B=A?E.figmaImageUrl:null,P;if(A)w.debug("[useReviewScreenshots] Figma cached (storybookOnlyRefresh), skipping fetch"),r(!1);else if(k){w.debug("[useReviewScreenshots] Found Figma node ID from mapping:",k);let T=null;try{w.debug("[useReviewScreenshots] Fetching Figma image (with caching)...");let D=await tz(f,k,d);T=D.imageUrl||null;let H=D.cached?"(cached)":"(fresh)";w.debug(`[useReviewScreenshots] Figma image fetched ${H}:`,T?"success":"not found")}catch(D){w.warn("[useReviewScreenshots] Failed to fetch Figma image:",D)}if(T)try{w.debug("[useReviewScreenshots] Fetching Figma image via proxy...");let D=`${aS}/api/proxy/image?url=${encodeURIComponent(T)}`,H=await Q(D);if(H.ok){let R=await H.blob(),te=new FileReader,j=await new Promise((X,ne)=>{te.onloadend=()=>X(te.result),te.onerror=ne,te.readAsDataURL(R)});B=j,M(j),w.debug("[useReviewScreenshots] Figma image loaded via proxy");let Y=new Image;await new Promise(X=>{Y.onload=()=>{P={width:Y.naturalWidth,height:Y.naturalHeight},w.debug("[useReviewScreenshots] Figma dimensions:",P),X()},Y.onerror=()=>X(),Y.src=j})}else B=T,M(T),w.warn("[useReviewScreenshots] Proxy failed, using direct URL as fallback")}catch(D){w.warn("[useReviewScreenshots] Proxy error, using direct URL as fallback:",D),B=T,M(T)}else w.warn("[useReviewScreenshots] No thumbnail found for node:",k),M(null);B&&k&&nz(y,k,B),r(!1)}else w.debug("[useReviewScreenshots] No Figma mapping exists for this component"),M(null),r(!1);let _=E?.storybookImageUrl||null;if(_)w.debug("[useReviewScreenshots] Using cached Storybook screenshot"),i(!1);else{w.debug("[useReviewScreenshots] Capturing Storybook screenshot for story:",y);let T=await ou({storyId:y,sessionToken:d||void 0,...P&&{figmaWidth:P.width,figmaHeight:P.height}});T&&!L?(_=T,x(T),w.debug("[useReviewScreenshots] Storybook screenshot captured at dimensions:",P||"natural")):w.warn("[useReviewScreenshots] Failed to capture Storybook screenshot"),i(!1)}Yn.set(y,{storybookImageUrl:_,figmaImageUrl:B}),w.debug("[useReviewScreenshots] Screenshots cached for story:",y)}catch(B){w.error("[useReviewScreenshots] Error loading screenshots:",B),s(B instanceof Error?B.message:"Failed to load screenshots"),u.current=null,r(!1),i(!1)}finally{t(!1)}})(),()=>{L=!0}},[d,f,y,I?.figmaNodeId,c]),oi(()=>{let L=Hm.getChannel(),N=null,m=v=>{iS=v.args,w.debug("[useReviewScreenshots] Args updated for story:",v.storyId,"args:",v.args),N&&clearTimeout(N),N=setTimeout(()=>{w.debug("[useReviewScreenshots] Story args changed, refreshing screenshot"),p()},500)};return L.on(nS,m),()=>{L.off(nS,m),N&&clearTimeout(N)}},[p]),oi(()=>{let L=Hm.getChannel(),N=!1,m=null,v=()=>{w.debug("[useReviewScreenshots] FORCE_REMOUNT detected, showing Storybook loader"),N=!0,i(!0)},k=()=>{N&&(w.debug("[useReviewScreenshots] STORY_RENDERED after remount, waiting for styles to settle..."),m&&clearTimeout(m),m=setTimeout(()=>{N=!1,w.debug("[useReviewScreenshots] Refreshing Storybook screenshot after HMR (preserving Figma)"),g()},500))};return L.on(oS,v),L.on(rS,k),()=>{L.off(oS,v),L.off(rS,k),m&&clearTimeout(m)}},[g]),oi(()=>{let L=Hm.getChannel(),N=async m=>{if(!m?.snapshot?.html){w.debug("[useReviewScreenshots] DOM mutated but no snapshot available");return}w.debug("[useReviewScreenshots] DOM mutated, capturing snapshot screenshot"),i(!0);try{let v=kt.getState().currentStoryId,k=await fetch("/__uicopilot/screenshot-snapshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...m.snapshot,storyId:v})});if(k.ok){let E=await k.json();if(E.screenshot){x(E.screenshot);let h=kt.getState().currentStoryId;if(h){let b=Yn.get(h);b?b.storybookImageUrl=E.screenshot:Yn.set(h,{storybookImageUrl:E.screenshot,figmaImageUrl:null})}}}else w.error("[useReviewScreenshots] Snapshot screenshot failed:",await k.text())}catch(v){w.error("[useReviewScreenshots] Snapshot screenshot error:",v)}finally{i(!1)}};return L.on("UICOPILOT/STORY_DOM_MUTATED",N),()=>{L.off("UICOPILOT/STORY_DOM_MUTATED",N)}},[]);let O=$m((L,N,m)=>{w.debug("[useReviewScreenshots] setFigmaImageDirect called - bypassing load"),lS(L,N,m),M(m),r(!1),u.current=L},[M]);return{isLoadingScreenshots:e,isLoadingFigma:n,isLoadingStorybook:o,screenshotError:a,refreshScreenshots:p,refreshStorybookOnly:g,setFigmaImageDirect:O}}});function az(){return!K().startsWith("http://localhost")}function sz(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 cS(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=sz(o,t,n);return r.set(o,i),i})}async function lz(){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:a=>{a.querySelectorAll("style").forEach(u=>{let c=u.textContent||"";/(?:color|oklch|oklab|lab|lch)\(/.test(c)&&(u.textContent=cS(c,o,r))});let s=Array.from(o.styleSheets);a.querySelectorAll('link[rel="stylesheet"]').forEach(u=>{let c=u.href,l=s.find(p=>p.href===c);if(l)try{let p="";for(let g of Array.from(l.cssRules))p+=g.cssText+`
|
|
12
|
+
--`+new Array((n||t.length)+1).join("-")+"^"})}var Mb=$(()=>{"use strict";yc()});var Y9,K9,X9,J9,Q9,Lb,Bc,Bb=$(()=>{"use strict";Mb();Y9=9,K9=10,X9=12,J9=13,Q9=32,Lb=new Uint8Array(128).map((e,t)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(t))?1:0),Bc=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&&Lb[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!==J9&&n!==K9&&n!==X9&&n!==Q9&&n!==Y9)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 Pb(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||Lb[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 $b(e){let t=null,n=null;return e.eat(Nc),e.skipWs(),t=e.scanNumber(e),e.skipWs(),e.charCode()===tg?(e.pos++,e.skipWs(),e.charCode()!==Qp&&(n=e.scanNumber(e),e.skipWs())):n=t,e.eat(Qp),{min:Number(t),max:n?Number(n):0}}function iR(e){let t=null,n=!1;switch(e.charCode()){case Vb:e.pos++,t={min:0,max:0};break;case eg:e.pos++,t={min:1,max:0};break;case Dc:e.pos++,t={min:0,max:1};break;case Zp:e.pos++,n=!0,e.charCode()===Nc?t=$b(e):e.charCode()===Dc?(e.pos++,t={min:0,max:0}):t={min:1,max:0};break;case Nc:t=$b(e);break;default:return null}return{type:"Multiplier",comma:n,min:t.min,max:t.max,term:null}}function _o(e,t){let n=iR(e);return n!==null?(n.term=t,e.charCode()===Zp&&e.charCodeAt(e.pos-1)===eg||e.charCode()===Dc&&e.charCodeAt(e.pos-1)===Qp?_o(e,n):n):t}function Xp(e){let t=e.peek();return t===""?null:_o(e,{type:"Token",value:t})}function aR(e){let t;return e.eat(ng),e.eat(zc),t=e.scanWord(),e.eat(zc),e.eat(Jp),_o(e,{type:"Property",name:t})}function sR(e){let t=null,n=null,r=1;return e.eat(Es),e.charCode()===Db&&(e.peek(),r=-1),r==-1&&e.charCode()===_b?e.peek():(t=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(t+=e.scanWord())),e.skipWs(),e.eat(tg),e.skipWs(),e.charCode()===_b?e.peek():(r=1,e.charCode()===Db&&(e.peek(),r=-1),n=r*Number(e.scanNumber(e)),e.isNameCharCode()&&(n+=e.scanWord())),e.eat(xa),{type:"Range",min:t,max:n}}function lR(e){let t,n=null;if(e.eat(ng),t=e.scanWord(),t==="boolean-expr"){e.eat(Es);let r=_c(e,xa);return e.eat(xa),e.eat(Jp),_o(e,{type:"Boolean",term:r.terms.length===1?r.terms[0]:r})}return e.charCode()===Ub&&e.nextCharCode()===jb&&(e.pos+=2,t+="()"),e.charCodeAt(e.findWsEnd(e.pos))===Es&&(e.skipWs(),n=sR(e)),e.eat(Jp),_o(e,{type:"Type",name:t,opts:n})}function cR(e){let t=e.scanWord();return e.charCode()===Ub?(e.pos++,{type:"Function",name:t}):_o(e,{type:"Keyword",name:t})}function uR(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)=>Ob[o]-Ob[i]);t.length>0;){r=t.shift();let o=0,i=0;for(;o<e.length;o++){let a=e[o];a.type==="Combinator"&&(a.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 _c(e,t=-1){let n=Object.create(null),r=[],o=null,i=e.pos,a=!1;for(;e.charCode()!==t;){let s=a?_c(e,jb):pR(e);if(!s)break;if(s.type!=="Spaces"){if(a){if(s.terms.length===0){a=!1;continue}if(s.combinator===" "){for(;s.terms.length>1;)n[" "]=!0,r.push({type:"Combinator",value:" "},s.terms.shift());s=s.terms[0]}}s.type==="Combinator"?((o===null||o.type==="Combinator")&&(e.pos=i,e.error("Unexpected combinator")),n[s.value]=!0):o!==null&&o.type!=="Combinator"&&(n[" "]=!0,r.push({type:"Combinator",value:" "})),r.push(s),o=s,i=e.pos,a=s.type==="Function"}}return o!==null&&o.type==="Combinator"&&(e.pos-=i,e.error("Unexpected combinator")),{type:"Group",terms:r,combinator:uR(r,n)||" ",disallowEmpty:!1,explicit:!1}}function dR(e){let t;return e.eat(Es),t=_c(e,xa),e.eat(xa),t.explicit=!0,e.charCode()===Hb&&(e.pos++,t.disallowEmpty=!0),t}function pR(e){let t=e.charCode();switch(t){case xa:break;case Es:return _o(e,dR(e));case ng:return e.nextCharCode()===zc?aR(e):lR(e);case Nb:return{type:"Combinator",value:e.substringToPos(e.pos+(e.nextCharCode()===Nb?2:1))};case zb:return e.pos++,e.eat(zb),{type:"Combinator",value:"&&"};case tg:return e.pos++,{type:"Comma"};case zc:return _o(e,{type:"String",value:e.scanString()});case rR:case Z9:case eR:case nR:case tR:return{type:"Spaces",value:e.scanSpaces()};case oR:return t=e.nextCharCode(),e.isNameCharCode(t)?(e.pos++,{type:"AtKeyword",name:e.scanWord()}):Xp(e);case Vb:case eg:case Dc:case Zp:case Hb:break;case Nc:if(t=e.nextCharCode(),t<48||t>57)return Xp(e);break;default:return e.isNameCharCode(t)?cR(e):Xp(e)}}function Rs(e){let t=new Bc(e),n=_c(t);return t.pos!==e.length&&t.error("Unexpected input"),n.terms.length===1&&n.terms[0].type==="Group"?n.terms[0]:n}var Z9,eR,tR,nR,rR,Hb,Zp,zb,zc,Ub,jb,Vb,eg,tg,Db,ng,Jp,Dc,oR,Es,xa,Nc,Nb,Qp,_b,Ob,rg=$(()=>{"use strict";Bb();Z9=9,eR=10,tR=12,nR=13,rR=32,Hb=33,Zp=35,zb=38,zc=39,Ub=40,jb=41,Vb=42,eg=43,tg=44,Db=45,ng=60,Jp=62,Dc=63,oR=64,Es=91,xa=93,Nc=123,Nb=124,Qp=125,_b=8734,Ob={" ":1,"&&":2,"||":3,"|":4}});function Wb(e){return typeof e=="function"?e:As}function og(e,t,n){function r(a){switch(o.call(n,a),a.type){case"Group":a.terms.forEach(r);break;case"Multiplier":case"Boolean":r(a.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: "+a.type)}i.call(n,a)}let o=As,i=As;if(typeof t=="function"?o=t:t&&(o=Wb(t.enter),i=Wb(t.leave)),o===As&&i===As)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");r(e,n)}var As,Gb=$(()=>{"use strict";As=function(){}});var ig=$(()=>{"use strict";Dp();rg();Gb()});function mR(e){let t=[];return ei(e,(n,r,o)=>t.push({type:n,value:e.slice(r,o),node:null})),t}function qb(e,t){return typeof e=="string"?mR(e):t.generate(e,fR)}var fR,Yb=$(()=>{"use strict";Br();fR={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 qn(e,t,n){return t===At&&n===$t||e===At&&t===At&&n===At?e:(e.type==="If"&&e.else===$t&&t===At&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:n})}function Xb(e){return e.length>2&&e.charCodeAt(e.length-2)===hR&&e.charCodeAt(e.length-1)===xR}function Kb(e){return e.type==="Keyword"||e.type==="AtKeyword"||e.type==="Function"||e.type==="Type"&&Xb(e.name)}function ni(e,t=" ",n=!1){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:n}}function Fs(e,t,n=new Set){if(!n.has(e))switch(n.add(e),e.type){case"If":e.match=Fs(e.match,t,n),e.then=Fs(e.then,t,n),e.else=Fs(e.else,t,n);break;case"Type":return t[e.name]||e}return e}function ag(e,t,n){switch(e){case" ":{let r=At;for(let o=t.length-1;o>=0;o--){let i=t[o];r=qn(i,r,$t)}return r}case"|":{let r=$t,o=null;for(let i=t.length-1;i>=0;i--){let a=t[i];if(Kb(a)&&(o===null&&i>0&&Kb(t[i-1])&&(o=Object.create(null),r=qn({type:"Enum",map:o},At,r)),o!==null)){let s=(Xb(a.name)?a.name.slice(0,-1):a.name).toLowerCase();if(!(s in o)){o[s]=a;continue}}o=null,r=qn(a,At,r)}return r}case"&&":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!0};let r=$t;for(let o=t.length-1;o>=0;o--){let i=t[o],a;t.length>1?a=ag(e,t.filter(function(s){return s!==i}),!1):a=At,r=qn(i,a,r)}return r}case"||":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!1};let r=n?At:$t;for(let o=t.length-1;o>=0;o--){let i=t[o],a;t.length>1?a=ag(e,t.filter(function(s){return s!==i}),!0):a=At,r=qn(i,a,r)}return r}}}function yR(e){let t=At,n=ya(e.term);if(e.max===0)n=qn(n,Oc,$t),t=qn(n,null,$t),t.then=qn(At,At,t),e.comma&&(t.then.else=qn({type:"Comma",syntax:e},t,$t));else for(let r=e.min||1;r<=e.max;r++)e.comma&&t!==At&&(t=qn({type:"Comma",syntax:e},t,$t)),t=qn(n,qn(At,At,t),$t);if(e.min===0)t=qn(At,At,t);else for(let r=0;r<e.min-1;r++)e.comma&&t!==At&&(t=qn({type:"Comma",syntax:e},t,$t)),t=qn(n,t,$t);return t}function ya(e){if(typeof e=="function")return{type:"Generic",fn:e};switch(e.type){case"Group":{let t=ag(e.combinator,e.terms.map(ya),!1);return e.disallowEmpty&&(t=qn(t,Oc,$t)),t}case"Multiplier":return yR(e);case"Boolean":{let t=ya(e.term),n=ya(ni([ni([{type:"Keyword",name:"not"},{type:"Type",name:"!boolean-group"}]),ni([{type:"Type",name:"!boolean-group"},ni([{type:"Multiplier",comma:!1,min:0,max:0,term:ni([{type:"Keyword",name:"and"},{type:"Type",name:"!boolean-group"}])},{type:"Multiplier",comma:!1,min:0,max:0,term:ni([{type:"Keyword",name:"or"},{type:"Type",name:"!boolean-group"}])}],"|")])],"|")),r=ya(ni([{type:"Type",name:"!term"},ni([{type:"Token",value:"("},{type:"Type",name:"!self"},{type:"Token",value:")"}]),{type:"Type",name:"general-enclosed"}],"|"));return Fs(r,{"!term":t,"!self":n}),Fs(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 Ps(e,t){return typeof e=="string"&&(e=Rs(e)),{type:"MatchGraph",match:ya(e),syntax:t||null,source:e}}var At,$t,Oc,hR,xR,sg=$(()=>{"use strict";rg();At={type:"Match"},$t={type:"Mismatch"},Oc={type:"DisallowEmpty"},hR=40,xR=41});function CR(e){let t=null,n=null,r=e;for(;r!==null;)n=r.prev,r.prev=t,t=r,r=n;return t}function lg(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 IR(e){return e.type!==9?!1:e.value!=="?"}function e2(e){return e===null?!0:e.type===18||e.type===2||e.type===21||e.type===19||e.type===23||IR(e)}function t2(e){return e===null?!0:e.type===22||e.type===20||e.type===24||e.type===9&&e.value==="/"}function TR(e,t,n){function r(){do x++,S=x<e.length?e[x]:null;while(S!==null&&(S.type===13||S.type===25))}function o(O){let L=x+O;return L<e.length?e[L]:null}function i(O,L){return{nextState:O,matchStack:z,syntaxStack:p,thenStack:g,tokenIndex:x,prev:L}}function a(O){g={nextState:O,matchStack:z,syntaxStack:p,prev:g}}function s(O){d=i(O,d)}function u(){z={type:wR,syntax:t.syntax,token:S,prev:z},r(),f=null,x>M&&(M=x)}function c(){p={syntax:t.syntax,opts:t.syntax.opts||p!==null&&p.opts||null,prev:p},z={type:cg,syntax:t.syntax,token:z.token,prev:z}}function l(){z.type===cg?z=z.prev:z={type:n2,syntax:p.syntax,token:z.token,prev:z},p=p.prev}let p=null,g=null,d=null,f=null,y=0,I=null,S=null,x=-1,M=0,z={type:bR,syntax:null,token:null,prev:null};for(r();I===null&&++y<Zb;)switch(t.type){case"Match":if(g===null){if(S!==null&&(x!==e.length-1||S.value!=="\\0"&&S.value!=="\\9")){t=$t;break}I=Qb;break}if(t=g.nextState,t===Oc)if(g.matchStack===z){t=$t;break}else t=At;for(;g.syntaxStack!==p;)l();g=g.prev;break;case"Mismatch":if(f!==null&&f!==!1)(d===null||x>d.tokenIndex)&&(d=f,f=!1);else if(d===null){I=vR;break}t=d.nextState,g=d.thenStack,p=d.syntaxStack,z=d.matchStack,x=d.tokenIndex,S=x<e.length?e[x]:null,d=d.prev;break;case"MatchGraph":t=t.match;break;case"If":t.else!==$t&&s(t.else),t.then!==At&&a(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=$t;break}t=At;break}if(t.mask===(1<<N.length)-1){t=At;break}for(;t.index<N.length;t.index++){let m=1<<t.index;if((t.mask&m)===0){s(t),a({type:"AddMatchOnce",syntax:t.syntax,mask:t.mask|m}),t=N[t.index++];break}}break}case"AddMatchOnce":t={type:"MatchOnceBuffer",syntax:t.syntax,index:0,mask:t.mask};break;case"Enum":if(S!==null){let N=S.value.toLowerCase();if(N.indexOf("\\")!==-1&&(N=N.replace(/\\[09].*$/,"")),Jb.call(t.map,N)){t=t.map[N];break}}t=$t;break;case"Generic":{let N=p!==null?p.opts:null,m=x+Math.floor(t.fn(S,o,N));if(!isNaN(m)&&m>x){for(;x<m;)u();t=At}else t=$t;break}case"Type":case"Property":{let N=t.type==="Type"?"types":"properties",m=Jb.call(n,N)?n[N][t.name]:null;if(!m||!m.match)throw new Error("Bad syntax reference: "+(t.type==="Type"?"<"+t.name+">":"<'"+t.name+"'>"));if(f!==!1&&S!==null&&t.type==="Type"&&(t.name==="custom-ident"&&S.type===1||t.name==="length"&&S.value==="0")){f===null&&(f=i(t,d)),t=$t;break}c(),t=m.matchRef||m.match;break}case"Keyword":{let N=t.name;if(S!==null){let m=S.value;if(m.indexOf("\\")!==-1&&(m=m.replace(/\\[09].*$/,"")),lg(m,N)){u(),t=At;break}}t=$t;break}case"AtKeyword":case"Function":if(S!==null&&lg(S.value,t.name)){u(),t=At;break}t=$t;break;case"Token":if(S!==null&&S.value===t.value){u(),t=At;break}t=$t;break;case"Comma":S!==null&&S.type===18?e2(z.token)?t=$t:(u(),t=t2(S)?$t:At):t=e2(z.token)||t2(S)?At:$t;break;case"String":let O="",L=x;for(;L<e.length&&O.length<t.value.length;L++)O+=e[L].value;if(lg(O,t.value)){for(;x<L;)u();t=At}else t=$t;break;default:throw new Error("Unknown node type: "+t.type)}switch(kR+=y,I){case null:console.warn("[csstree-match] BREAK after "+Zb+" iterations"),I=SR,z=null;break;case Qb:for(;p!==null;)l();break;default:z=null}return{tokens:e,reason:I,iterations:y,match:z,longestMatch:M}}function ug(e,t,n){let r=TR(e,t,n||{});if(r.match===null)return r;let o=r.match,i=r.match={syntax:t.syntax||null,match:[]},a=[i];for(o=CR(o).prev;o!==null;){switch(o.type){case cg:i.match.push(i={syntax:o.syntax,match:[]}),a.push(i);break;case n2:a.pop(),i=a[a.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 Jb,bR,wR,cg,n2,Qb,vR,SR,Zb,kR,r2=$(()=>{"use strict";sg();({hasOwnProperty:Jb}=Object.prototype),bR=0,wR=1,cg=2,n2=3,Qb="Match",vR="Mismatch",SR="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",Zb=15e3,kR=0});var pg={};Ee(pg,{getTrace:()=>o2,isKeyword:()=>AR,isProperty:()=>RR,isType:()=>ER});function o2(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 ER(e,t){return dg(this,e,n=>n.type==="Type"&&n.name===t)}function RR(e,t){return dg(this,e,n=>n.type==="Property"&&n.name===t)}function AR(e){return dg(this,e,t=>t.type==="Keyword")}function dg(e,t,n){let r=o2.call(e,t);return r===null?!1:r.some(n)}var i2=$(()=>{"use strict"});function a2(e){return"node"in e?e.node:a2(e.match[0])}function s2(e){return"node"in e?e.node:s2(e.match[e.match.length-1])}function gg(e,t,n,r,o){function i(s){if(s.syntax!==null&&s.syntax.type===r&&s.syntax.name===o){let u=a2(s),c=s2(s);e.syntax.walk(t,function(l,p,g){if(l===u){let d=new Sr;do{if(d.appendData(p.data),p.data===c)break;p=p.next}while(p!==null);a.push({parent:g,nodes:d})}})}Array.isArray(s.match)&&s.match.forEach(i)}let a=[];return n.matched!==null&&i(n.matched),a}var l2=$(()=>{"use strict";bs()});function fg(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&e>=0}function c2(e){return!!e&&fg(e.offset)&&fg(e.line)&&fg(e.column)}function FR(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 a=!0;if(Ms.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(!c2(r.loc.start))i+=".start";else if(!c2(r.loc.end))i+=".end";else continue;a=!1}else if(t.hasOwnProperty(i)){a=!1;for(let s=0;!a&&s<t[i].length;s++){let u=t[i][s];switch(u){case String:a=typeof r[i]=="string";break;case Boolean:a=typeof r[i]=="boolean";break;case null:a=r[i]===null;break;default:typeof u=="string"?a=r[i]&&r[i].type===u:Array.isArray(u)&&(a=r[i]instanceof Sr)}}}else o(r,"Unknown field `"+i+"` for "+e+" node type");a||o(r,"Bad value for `"+e+"."+i+"`")}}for(let i in t)Ms.call(t,i)&&Ms.call(r,i)===!1&&o(r,"Field `"+e+"."+i+"` is missed")}}function u2(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<"+(u2(o,t)||"any")+">");else throw new Error("Wrong value `"+o+"` in `"+t+"` structure definition")}return n.join(" | ")}function PR(e,t){let n=t.structure,r={type:String,loc:!0},o={type:'"'+e+'"'};for(let i in n){if(Ms.call(n,i)===!1)continue;let a=r[i]=Array.isArray(n[i])?n[i].slice():[n[i]];o[i]=u2(a,e+"."+i)}return{docs:o,check:FR(e,r)}}function d2(e){let t={};if(e.node){for(let n in e.node)if(Ms.call(e.node,n)){let r=e.node[n];if(r.structure)t[n]=PR(n,r);else throw new Error("Missed `structure` field in `"+n+"` node type definition")}}return t}var Ms,p2=$(()=>{"use strict";bs();({hasOwnProperty:Ms}=Object.prototype)});function mg(e,t,n){let r={};for(let o in e)e[o].syntax&&(r[o]=n?e[o].syntax:pa(e[o].syntax,{compact:t}));return r}function MR(e,t,n){let r={};for(let[o,i]of Object.entries(e))r[o]={prelude:i.prelude&&(n?i.prelude.syntax:pa(i.prelude.syntax,{compact:t})),descriptors:i.descriptors&&mg(i.descriptors,t,n)};return r}function LR(e){for(let t=0;t<e.length;t++)if(e[t].value.toLowerCase()==="var(")return!0;return!1}function BR(e){let t=e.terms[0];return e.explicit===!1&&e.terms.length===1&&t.type==="Multiplier"&&t.comma===!0}function Zr(e,t,n){return{matched:e,iterations:n,error:t,...pg}}function ba(e,t,n,r){let o=qb(n,e.syntax),i;return LR(o)?Zr(null,new Error("Matching for a tree with var() is not supported")):(r&&(i=ug(o,e.cssWideKeywordsSyntax,e)),(!r||!i.match)&&(i=ug(o,t.match,e),!i.match)?Zr(null,new mb(i.reason,t.syntax,n,i),i.iterations):Zr(i.match,null,i.iterations))}var Ls,g2=$(()=>{"use strict";hb();Ac();Fc();Ab();Fb();ig();Yb();sg();r2();i2();l2();p2();Ls=class{constructor(t,n,r){if(this.cssWideKeywords=ma,this.syntax=n,this.generic=!1,this.units={...Lc},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=r||d2(t),t){if(t.cssWideKeywords&&(this.cssWideKeywords=t.cssWideKeywords),t.units)for(let o of Object.keys(Lc))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(Rb(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=Ps(this.cssWideKeywords.join(" | "))}checkStructure(t){function n(i,a){o.push({node:i,message:a})}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},a={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"?a.match=Ps(t,i):(typeof t=="string"?Object.defineProperty(a,"syntax",{get(){return Object.defineProperty(a,"syntax",{value:Rs(t)}),a.syntax}}):a.syntax=t,Object.defineProperty(a,"match",{get(){return Object.defineProperty(a,"match",{value:Ps(a.syntax,i)}),a.match}}),n==="Property"&&Object.defineProperty(a,"matchRef",{get(){let s=a.syntax,u=BR(s)?Ps({...s,terms:[s.terms[0].term]},i):null;return Object.defineProperty(a,"matchRef",{value:u}),u}})),a}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 ga("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&&!ba(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=Ec(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 ga("Unknown at-rule descriptor",n)}checkPropertyName(t){if(!this.getProperty(t))return new ga("Unknown property",t)}matchAtrulePrelude(t,n){let r=this.checkAtrulePrelude(t,n);if(r)return Zr(null,r);let o=this.getAtrule(t);return o.prelude?ba(this,o.prelude,n||"",!1):Zr(null,null)}matchAtruleDescriptor(t,n,r){let o=this.checkAtruleDescriptorName(t,n);if(o)return Zr(null,o);let i=this.getAtrule(t),a=Ec(n);return ba(this,i.descriptors[a.name]||i.descriptors[a.basename],r,!1)}matchDeclaration(t){return t.type!=="Declaration"?Zr(null,new Error("Not a Declaration node")):this.matchProperty(t.property,t.value)}matchProperty(t,n){if(Np(t).custom)return Zr(null,new Error("Lexer matching doesn't applicable for custom properties"));let r=this.checkPropertyName(t);return r?Zr(null,r):ba(this,this.getProperty(t),n,!0)}matchType(t,n){let r=this.getType(t);return r?ba(this,r,n,!1):Zr(null,new ga("Unknown type",t))}match(t,n){return typeof t!="string"&&(!t||!t.type)?Zr(null,new ga("Bad syntax")):((typeof t=="string"||!t.match)&&(t=this.createDescriptor(t,"Type","anonymous")),ba(this,t,n,!1))}findValueFragments(t,n,r,o){return gg(this,n,this.matchProperty(t,n),r,o)}findDeclarationValueFragments(t,n,r){return gg(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=Ec(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=Np(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,p){if(l.has(c))return l.get(c);l.set(c,!1),p.syntax!==null&&og(p.syntax,function(g){if(g.type!=="Type"&&g.type!=="Property")return;let d=g.type==="Type"?u.types:u.properties,f=g.type==="Type"?o:i;hasOwnProperty.call(d,g.name)?n(u,g.name,f,d[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 a=[...o.keys()].filter(u=>o.get(u)),s=[...i.keys()].filter(u=>i.get(u));return a.length||s.length?{errors:r,types:a,properties:s}:null}dump(t,n){return{generic:this.generic,cssWideKeywords:this.cssWideKeywords,units:this.units,types:mg(this.types,!n,t),properties:mg(this.properties,!n,t),atrules:MR(this.atrules,!n,t)}}toString(){return JSON.stringify(this.dump())}}});function hg(e,t){return typeof t=="string"&&/^\s*\|/.test(t)?typeof e=="string"?e+t:t.replace(/^\s*\|\s*/,""):t||null}function zR(e,t){let n=Object.create(null);for(let r of Object.keys(e))t.includes(r)&&(n[r]=e[r]);return n}function xg(e,t,n){let r={...e};for(let[o,i]of Object.entries(t))r[o]={...r[o],...n?zR(i,n):i};return r}function Bs(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,a]of Object.entries(o))n[r][i]=Array.isArray(a)?a:[];break;case"atrules":n[r]={...e[r]};for(let[i,a]of Object.entries(o)){let s=n[r][i]||{},u=n[r][i]={prelude:s.prelude||null,descriptors:{...s.descriptors}};if(a){u.prelude=a.prelude?hg(u.prelude,a.prelude):u.prelude||null;for(let[c,l]of Object.entries(a.descriptors||{}))u.descriptors[c]=l?hg(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,a]of Object.entries(o))n[r][i]=hg(n[r][i],a);break;case"parseContext":n[r]={...e[r],...o};break;case"scope":case"features":n[r]=xg(e[r],o);break;case"atrule":case"pseudo":n[r]=xg(e[r],o,["parse"]);break;case"node":n[r]=xg(e[r],o,["name","structure","parse","generate","walkContext"]);break}return n}var f2=$(()=>{"use strict"});function m2(e){let t=Fy(e),n=pb(e),r=ob(e),{fromPlainObject:o,toPlainObject:i}=ab(n),a={lexer:null,createLexer:s=>new Ls(s,a,a.lexer.structure),tokenize:ei,parse:t,generate:r,walk:n,find:n.find,findLast:n.findLast,findAll:n.findAll,fromPlainObject:o,toPlainObject:i,fork(s){let u=Bs({},e);return m2(typeof s=="function"?s(u):Bs(u,s))}};return a.lexer=new Ls({generic:e.generic,cssWideKeywords:e.cssWideKeywords,units:e.units,types:e.types,atrules:e.atrules,properties:e.properties,node:e.node},a),a}var h2,x2=$(()=>{"use strict";Br();Py();ib();sb();gb();g2();f2();h2=e=>m2(Bs({},e))});var y2,b2=$(()=>{"use strict";y2={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 wg={};Ee(wg,{generate:()=>OR,name:()=>NR,parse:()=>bg,structure:()=>_R});function Hc(e,t){let n=this.tokenStart+e,r=this.charCodeAt(n);for((r===xo||r===kr)&&(t&&this.error("Number sign is not allowed"),n++);n<this.tokenEnd;n++)un(this.charCodeAt(n))||this.error("Integer is expected",n)}function wa(e){return Hc.call(this,0,e)}function ri(e,t){if(!this.cmpChar(this.tokenStart+e,t)){let n="";switch(t){case $c:n="N is expected";break;case kr:n="HyphenMinus is expected";break}this.error(n,this.tokenStart+e)}}function yg(){let e=0,t=0,n=this.tokenType;for(;n===13||n===25;)n=this.lookupType(++e);if(n!==10)if(this.isDelim(xo,e)||this.isDelim(kr,e)){t=this.isDelim(xo,e)?xo:kr;do n=this.lookupType(++e);while(n===13||n===25);n!==10&&(this.skip(e),wa.call(this,Li))}else return null;return e>0&&this.skip(e),t===0&&(n=this.charCodeAt(this.tokenStart),n!==xo&&n!==kr&&this.error("Number sign is expected")),wa.call(this,t!==0),t===kr?"-"+this.consume(10):this.consume(10)}function bg(){let e=this.tokenStart,t=null,n=null;if(this.tokenType===10)wa.call(this,DR),n=this.consume(10);else if(this.tokenType===1&&this.cmpChar(this.tokenStart,kr))switch(t="-1",ri.call(this,1,$c),this.tokenEnd-this.tokenStart){case 2:this.next(),n=yg.call(this);break;case 3:ri.call(this,2,kr),this.next(),this.skipSC(),wa.call(this,Li),n="-"+this.consume(10);break;default:ri.call(this,2,kr),Hc.call(this,3,Li),this.next(),n=this.substrToCursor(e+2)}else if(this.tokenType===1||this.isDelim(xo)&&this.lookupType(1)===1){let r=0;switch(t="1",this.isDelim(xo)&&(r=1,this.next()),ri.call(this,0,$c),this.tokenEnd-this.tokenStart){case 1:this.next(),n=yg.call(this);break;case 2:ri.call(this,1,kr),this.next(),this.skipSC(),wa.call(this,Li),n="-"+this.consume(10);break;default:ri.call(this,1,kr),Hc.call(this,2,Li),this.next(),n=this.substrToCursor(e+r+1)}}else if(this.tokenType===12){let r=this.charCodeAt(this.tokenStart),o=r===xo||r===kr,i=this.tokenStart+o;for(;i<this.tokenEnd&&un(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),ri.call(this,i-this.tokenStart,$c),t=this.substring(e,i),i+1===this.tokenEnd?(this.next(),n=yg.call(this)):(ri.call(this,i-this.tokenStart+1,kr),i+2===this.tokenEnd?(this.next(),this.skipSC(),wa.call(this,Li),n="-"+this.consume(10)):(Hc.call(this,i-this.tokenStart+2,Li),this.next(),n=this.substrToCursor(i+1)))}else this.error();return t!==null&&t.charCodeAt(0)===xo&&(t=t.substr(1)),n!==null&&n.charCodeAt(0)===xo&&(n=n.substr(1)),{type:"AnPlusB",loc:this.getLocation(e,this.tokenStart),a:t,b:n}}function OR(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 xo,kr,$c,Li,DR,NR,_R,vg=$(()=>{"use strict";Br();xo=43,kr=45,$c=110,Li=!0,DR=!1;NR="AnPlusB",_R={a:[String,null],b:[String,null]}});var kg={};Ee(kg,{generate:()=>VR,name:()=>HR,parse:()=>Sg,structure:()=>jR,walkContext:()=>UR});function w2(){return this.Raw(this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function $R(){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 Sg(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),w2):o=w2.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($R.call(this));break}return{type:"Atrule",loc:this.getLocation(t,this.tokenStart),name:n,prelude:o,block:i}}function VR(e){this.token(3,"@"+e.name),e.prelude!==null&&this.node(e.prelude),e.block?this.node(e.block):this.token(17,";")}var HR,UR,jR,Cg=$(()=>{"use strict";HR="Atrule",UR="atrule",jR={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]}});var Tg={};Ee(Tg,{generate:()=>YR,name:()=>WR,parse:()=>Ig,structure:()=>qR,walkContext:()=>GR});function Ig(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 YR(e){this.children(e)}var WR,GR,qR,Eg=$(()=>{"use strict";WR="AtrulePrelude",GR="atrulePrelude",qR={children:[[]]}});var Fg={};Ee(Fg,{generate:()=>nA,name:()=>eA,parse:()=>Ag,structure:()=>tA});function QR(){this.eof&&this.error("Unexpected end of input");let e=this.tokenStart,t=!1;return this.isDelim(v2)?(t=!0,this.next()):this.isDelim(Rg)||this.eat(1),this.isDelim(Rg)?this.charCodeAt(this.tokenStart+1)!==Uc?(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 ZR(){let e=this.tokenStart,t=this.charCodeAt(e);return t!==Uc&&t!==JR&&t!==XR&&t!==KR&&t!==v2&&t!==Rg&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),t!==Uc&&(this.isDelim(Uc)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(e)}function Ag(){let e=this.tokenStart,t,n=null,r=null,o=null;return this.eat(19),this.skipSC(),t=QR.call(this),this.skipSC(),this.tokenType!==20&&(this.tokenType!==1&&(n=ZR.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 nA(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 KR,v2,Uc,XR,Rg,JR,eA,tA,Pg=$(()=>{"use strict";KR=36,v2=42,Uc=61,XR=94,Rg=124,JR=126;eA="AttributeSelector",tA={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]}});var Lg={};Ee(Lg,{generate:()=>lA,name:()=>iA,parse:()=>Mg,structure:()=>sA,walkContext:()=>aA});function C2(){return this.Raw(null,!0)}function S2(){return this.parseWithFallback(this.Rule,C2)}function k2(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function oA(){if(this.tokenType===17)return k2.call(this,this.tokenIndex);let e=this.parseWithFallback(this.Declaration,k2);return this.tokenType===17&&this.next(),e}function Mg(e){let t=e?oA:S2,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),C2));break;default:e&&this.isDelim(rA)?r.push(S2.call(this)):r.push(t.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(n,this.tokenStart),children:r}}function lA(e){this.token(23,"{"),this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")}),this.token(24,"}")}var rA,iA,aA,sA,Bg=$(()=>{"use strict";rA=38;iA="Block",aA="block",sA={children:[["Atrule","Rule","Declaration"]]}});var Dg={};Ee(Dg,{generate:()=>dA,name:()=>cA,parse:()=>zg,structure:()=>uA});function zg(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 dA(e){this.token(9,"["),this.children(e),this.token(9,"]")}var cA,uA,Ng=$(()=>{"use strict";cA="Brackets",uA={children:[[]]}});var Og={};Ee(Og,{generate:()=>fA,name:()=>pA,parse:()=>_g,structure:()=>gA});function _g(){let e=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(e,this.tokenStart)}}function fA(){this.token(15,"-->")}var pA,gA,$g=$(()=>{"use strict";pA="CDC",gA=[]});var Ug={};Ee(Ug,{generate:()=>xA,name:()=>mA,parse:()=>Hg,structure:()=>hA});function Hg(){let e=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(e,this.tokenStart)}}function xA(){this.token(14,"<!--")}var mA,hA,jg=$(()=>{"use strict";mA="CDO",hA=[]});var Wg={};Ee(Wg,{generate:()=>vA,name:()=>bA,parse:()=>Vg,structure:()=>wA});function Vg(){return this.eatDelim(yA),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function vA(e){this.token(9,"."),this.token(1,e.name)}var yA,bA,wA,Gg=$(()=>{"use strict";yA=46,bA="ClassSelector",wA={name:String}});var Yg={};Ee(Yg,{generate:()=>EA,name:()=>IA,parse:()=>qg,structure:()=>TA});function qg(){let e=this.tokenStart,t;switch(this.tokenType){case 13:t=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case kA:case SA:case CA:this.next();break;case I2:this.next(),this.eatIdent("deep"),this.eatDelim(I2);break;default:this.error("Combinator is expected")}t=this.substrToCursor(e);break}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:t}}function EA(e){this.tokenize(e.name)}var SA,I2,kA,CA,IA,TA,Kg=$(()=>{"use strict";SA=43,I2=47,kA=62,CA=126,IA="Combinator",TA={name:String}});var Jg={};Ee(Jg,{generate:()=>MA,name:()=>FA,parse:()=>Xg,structure:()=>PA});function Xg(){let e=this.tokenStart,t=this.tokenEnd;return this.eat(25),t-e+2>=2&&this.charCodeAt(t-2)===RA&&this.charCodeAt(t-1)===AA&&(t-=2),{type:"Comment",loc:this.getLocation(e,this.tokenStart),value:this.substring(e+2,t)}}function MA(e){this.token(25,"/*"+e.value+"*/")}var RA,AA,FA,PA,Qg=$(()=>{"use strict";RA=42,AA=47,FA="Comment",PA={value:String}});var ef={};Ee(ef,{generate:()=>NA,name:()=>BA,parse:()=>Zg,structure:()=>zA});function T2(e){return this.lookupTypeNonSC(1)===1&&LA.has(this.lookupTypeNonSC(2))?this.Feature(e):this.FeatureRange(e)}function Zg(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(()=>DA[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 NA(e){e.children.forEach(t=>{t.type==="Condition"?(this.token(21,"("),this.node(t),this.token(22,")")):this.node(t)})}var LA,BA,zA,DA,tf=$(()=>{"use strict";LA=new Set([16,22,0]),BA="Condition",zA={kind:String,children:[["Identifier","Feature","FeatureFunction","FeatureRange","SupportsDeclaration"]]};DA={media:T2,container:T2,supports(){return this.SupportsDeclaration()}}});var rf={};Ee(rf,{generate:()=>KA,name:()=>GA,parse:()=>nf,structure:()=>YA,walkContext:()=>qA});function jA(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!0)}function VA(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1)}function WA(){let e=this.tokenIndex,t=this.Value();return t.type!=="Raw"&&this.eof===!1&&this.tokenType!==17&&this.isDelim(R2)===!1&&this.isBalanceEdge(e)===!1&&this.error(),t}function nf(){let e=this.tokenStart,t=this.tokenIndex,n=XA.call(this),r=Rc(n),o=r?this.parseCustomProperty:this.parseValue,i=r?VA:jA,a=!1,s;this.skipSC(),this.eat(16);let u=this.tokenIndex;if(r||this.skipSC(),o?s=this.parseWithFallback(WA,i):s=i.call(this,this.tokenIndex),r&&s.type==="Value"&&s.children.isEmpty){for(let c=u-this.tokenIndex;c<=0;c++)if(this.lookupType(c)===13){s.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}return this.isDelim(R2)&&(a=JA.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:a,property:n,value:s}}function KA(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 XA(){let e=this.tokenStart;if(this.tokenType===9)switch(this.charCodeAt(this.tokenStart)){case HA:case OA:case UA:case _A:case $A:this.next();break;case E2:this.next(),this.isDelim(E2)&&this.next();break}return this.tokenType===4?this.eat(4):this.eat(1),this.substrToCursor(e)}function JA(){this.eat(9),this.skipSC();let e=this.consume(1);return e==="important"?!0:e}var R2,_A,OA,$A,HA,UA,E2,GA,qA,YA,of=$(()=>{"use strict";Ac();R2=33,_A=35,OA=36,$A=38,HA=42,UA=43,E2=47;GA="Declaration",qA="declaration",YA={important:[Boolean,String],property:String,value:["Value","Raw"]}});var lf={};Ee(lf,{generate:()=>tF,name:()=>ZA,parse:()=>sf,structure:()=>eF});function af(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function sf(){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),af));break;default:this.isDelim(QA)?e.push(this.parseWithFallback(this.Rule,af)):e.push(this.parseWithFallback(this.Declaration,af))}return{type:"DeclarationList",loc:this.getLocationFromList(e),children:e}}function tF(e){this.children(e,t=>{t.type==="Declaration"&&this.token(17,";")})}var QA,ZA,eF,cf=$(()=>{"use strict";QA=38;ZA="DeclarationList",eF={children:[["Declaration","Atrule","Rule"]]}});var df={};Ee(df,{generate:()=>oF,name:()=>nF,parse:()=>uf,structure:()=>rF});function uf(){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 oF(e){this.token(12,e.value+e.unit)}var nF,rF,pf=$(()=>{"use strict";nF="Dimension",rF={value:String,unit:String}});var ff={};Ee(ff,{generate:()=>lF,name:()=>aF,parse:()=>gf,structure:()=>sF});function gf(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(iF)&&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 lF(e){this.token(21,"("),this.token(1,e.name),e.value!==null&&(this.token(16,":"),this.node(e.value)),this.token(22,")")}var iF,aF,sF,mf=$(()=>{"use strict";iF=47,aF="Feature",sF={kind:String,name:String,value:["Identifier","Number","Dimension","Ratio","Function",null]}});var xf={};Ee(xf,{generate:()=>pF,name:()=>cF,parse:()=>hf,structure:()=>uF});function dF(e,t){let r=(this.features[e]||{})[t];return typeof r!="function"&&this.error(`Unknown feature ${t}()`),r}function hf(e="unknown"){let t=this.tokenStart,n=this.consumeFunctionName(),r=dF.call(this,e,n.toLowerCase());this.skipSC();let o=this.parseWithFallback(()=>{let i=this.tokenIndex,a=r.call(this);return this.eof===!1&&this.isBalanceEdge(i)===!1&&this.error(),a},()=>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 pF(e){this.token(2,e.feature+"("),this.node(e.value),this.token(22,")")}var cF,uF,yf=$(()=>{"use strict";cF="FeatureFunction",uF={kind:String,feature:String,value:["Declaration","Selector"]}});var vf={};Ee(vf,{generate:()=>xF,name:()=>mF,parse:()=>wf,structure:()=>hF});function bf(){switch(this.skipSC(),this.tokenType){case 10:return this.isDelim(A2,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(A2)&&this.error(),e},()=>this.Ratio());default:this.error("Number, dimension, ratio or identifier is expected")}}function P2(e){if(this.skipSC(),this.isDelim(gF)||this.isDelim(fF)){let t=this.source[this.tokenStart];return this.next(),this.isDelim(F2)?(this.next(),t+"="):t}if(this.isDelim(F2))return"=";this.error(`Expected ${e?'":", ':""}"<", ">", "=" or ")"`)}function wf(e="unknown"){let t=this.tokenStart;this.skipSC(),this.eat(21);let n=bf.call(this),r=P2.call(this,n.type==="Identifier"),o=bf.call(this),i=null,a=null;return this.lookupNonWSType(0)!==22&&(i=P2.call(this),a=bf.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:a}}function xF(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 A2,gF,F2,fF,mF,hF,Sf=$(()=>{"use strict";A2=47,gF=60,F2=61,fF=62,mF="FeatureRange",hF={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 Cf={};Ee(Cf,{generate:()=>vF,name:()=>yF,parse:()=>kf,structure:()=>wF,walkContext:()=>bF});function kf(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 vF(e){this.token(2,e.name+"("),this.children(e),this.token(22,")")}var yF,bF,wF,If=$(()=>{"use strict";yF="Function",bF="function",wF={name:String,children:[[]]}});var Ef={};Ee(Ef,{generate:()=>CF,name:()=>SF,parse:()=>Tf,structure:()=>kF});function Tf(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 CF(e){e.function?this.token(2,e.function+"("):this.token(21,"("),this.children(e),this.token(22,")")}var SF,kF,Rf=$(()=>{"use strict";SF="GeneralEnclosed",kF={kind:String,function:[String,null],children:[[]]}});var Ff={};Ee(Ff,{generate:()=>RF,name:()=>TF,parse:()=>Af,structure:()=>EF,xxx:()=>IF});function Af(){let e=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e+1)}}function RF(e){this.token(4,"#"+e.value)}var IF,TF,EF,Pf=$(()=>{"use strict";IF="XXX",TF="Hash",EF={value:String}});var Lf={};Ee(Lf,{generate:()=>PF,name:()=>AF,parse:()=>Mf,structure:()=>FF});function Mf(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function PF(e){this.token(1,e.name)}var AF,FF,Bf=$(()=>{"use strict";AF="Identifier",FF={name:String}});var Df={};Ee(Df,{generate:()=>BF,name:()=>MF,parse:()=>zf,structure:()=>LF});function zf(){let e=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e+1)}}function BF(e){this.token(9,"#"+e.name)}var MF,LF,Nf=$(()=>{"use strict";MF="IdSelector",LF={name:String}});var Of={};Ee(Of,{generate:()=>_F,name:()=>DF,parse:()=>_f,structure:()=>NF});function _f(){let e=this.tokenStart,t=this.consume(1);for(;this.isDelim(zF);)this.eat(9),t+="."+this.consume(1);return{type:"Layer",loc:this.getLocation(e,this.tokenStart),name:t}}function _F(e){this.tokenize(e.name)}var zF,DF,NF,$f=$(()=>{"use strict";zF=46,DF="Layer",NF={name:String}});var Uf={};Ee(Uf,{generate:()=>HF,name:()=>OF,parse:()=>Hf,structure:()=>$F});function Hf(){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 HF(e){this.children(e,()=>this.token(18,","))}var OF,$F,jf=$(()=>{"use strict";OF="LayerList",$F={children:[["Layer"]]}});var Wf={};Ee(Wf,{generate:()=>VF,name:()=>UF,parse:()=>Vf,structure:()=>jF});function Vf(){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 VF(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 UF,jF,Gf=$(()=>{"use strict";UF="MediaQuery",jF={modifier:[String,null],mediaType:[String,null],condition:["Condition",null]}});var Yf={};Ee(Yf,{generate:()=>qF,name:()=>WF,parse:()=>qf,structure:()=>GF});function qf(){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 qF(e){this.children(e,()=>this.token(18,","))}var WF,GF,Kf=$(()=>{"use strict";WF="MediaQueryList",GF={children:[["MediaQuery"]]}});var Jf={};Ee(Jf,{generate:()=>JF,name:()=>KF,parse:()=>Xf,structure:()=>XF});function Xf(){let e=this.tokenStart;return this.eatDelim(YF),{type:"NestingSelector",loc:this.getLocation(e,this.tokenStart)}}function JF(){this.token(9,"&")}var YF,KF,XF,Qf=$(()=>{"use strict";YF=38,KF="NestingSelector",XF={}});var e0={};Ee(e0,{generate:()=>eP,name:()=>QF,parse:()=>Zf,structure:()=>ZF});function Zf(){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 eP(e){this.node(e.nth),e.selector!==null&&(this.token(1,"of"),this.node(e.selector))}var QF,ZF,t0=$(()=>{"use strict";QF="Nth",ZF={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]}});var r0={};Ee(r0,{generate:()=>rP,name:()=>tP,parse:()=>n0,structure:()=>nP});function n0(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function rP(e){this.token(10,e.value)}var tP,nP,o0=$(()=>{"use strict";tP="Number",nP={value:String}});var a0={};Ee(a0,{generate:()=>aP,name:()=>oP,parse:()=>i0,structure:()=>iP});function i0(){let e=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function aP(e){this.tokenize(e.value)}var oP,iP,s0=$(()=>{"use strict";oP="Operator",iP={value:String}});var c0={};Ee(c0,{generate:()=>cP,name:()=>sP,parse:()=>l0,structure:()=>lP});function l0(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 cP(e){this.token(21,"("),this.children(e),this.token(22,")")}var sP,lP,u0=$(()=>{"use strict";sP="Parentheses",lP={children:[[]]}});var p0={};Ee(p0,{generate:()=>pP,name:()=>uP,parse:()=>d0,structure:()=>dP});function d0(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function pP(e){this.token(11,e.value+"%")}var uP,dP,g0=$(()=>{"use strict";uP="Percentage",dP={value:String}});var m0={};Ee(m0,{generate:()=>hP,name:()=>gP,parse:()=>f0,structure:()=>mP,walkContext:()=>fP});function f0(){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 hP(e){this.token(16,":"),e.children===null?this.token(1,e.name):(this.token(2,e.name+"("),this.children(e),this.token(22,")"))}var gP,fP,mP,h0=$(()=>{"use strict";gP="PseudoClassSelector",fP="function",mP={name:String,children:[["Raw"],null]}});var y0={};Ee(y0,{generate:()=>wP,name:()=>xP,parse:()=>x0,structure:()=>bP,walkContext:()=>yP});function x0(){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 wP(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 xP,yP,bP,b0=$(()=>{"use strict";xP="PseudoElementSelector",yP="function",bP={name:String,children:[["Raw"],null]}});var v0={};Ee(v0,{generate:()=>kP,name:()=>vP,parse:()=>w0,structure:()=>SP});function L2(){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 w0(){let e=this.tokenStart,t=L2.call(this),n=null;return this.skipSC(),this.isDelim(M2)&&(this.eatDelim(M2),n=L2.call(this)),{type:"Ratio",loc:this.getLocation(e,this.tokenStart),left:t,right:n}}function kP(e){this.node(e.left),this.token(9,"/"),e.right?this.node(e.right):this.node(10,1)}var M2,vP,SP,S0=$(()=>{"use strict";M2=47;vP="Ratio",SP={left:["Number","Function"],right:["Number","Function",null]}});var C0={};Ee(C0,{generate:()=>EP,name:()=>IP,parse:()=>k0,structure:()=>TP});function CP(){return this.tokenIndex>0&&this.lookupType(-1)===13?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}function k0(e,t){let n=this.getTokenStart(this.tokenIndex),r;return this.skipUntilBalanced(this.tokenIndex,e||this.consumeUntilBalanceEnd),t&&this.tokenStart>n?r=CP.call(this):r=this.tokenStart,{type:"Raw",loc:this.getLocation(n,r),value:this.substring(n,r)}}function EP(e){this.tokenize(e.value)}var IP,TP,I0=$(()=>{"use strict";IP="Raw",TP={value:String}});var E0={};Ee(E0,{generate:()=>MP,name:()=>AP,parse:()=>T0,structure:()=>PP,walkContext:()=>FP});function B2(){return this.Raw(this.consumeUntilLeftCurlyBracket,!0)}function RP(){let e=this.SelectorList();return e.type!=="Raw"&&this.eof===!1&&this.tokenType!==23&&this.error(),e}function T0(){let e=this.tokenIndex,t=this.tokenStart,n,r;return this.parseRulePrelude?n=this.parseWithFallback(RP,B2):n=B2.call(this,e),r=this.Block(!0),{type:"Rule",loc:this.getLocation(t,this.tokenStart),prelude:n,block:r}}function MP(e){this.node(e.prelude),this.node(e.block)}var AP,FP,PP,R0=$(()=>{"use strict";AP="Rule",FP="rule",PP={prelude:["SelectorList","Raw"],block:["Block"]}});var F0={};Ee(F0,{generate:()=>zP,name:()=>LP,parse:()=>A0,structure:()=>BP});function A0(){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 zP(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 LP,BP,P0=$(()=>{"use strict";LP="Scope",BP={root:["SelectorList","Raw",null],limit:["SelectorList","Raw",null]}});var L0={};Ee(L0,{generate:()=>_P,name:()=>DP,parse:()=>M0,structure:()=>NP});function M0(){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 _P(e){this.children(e)}var DP,NP,B0=$(()=>{"use strict";DP="Selector",NP={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator"]]}});var D0={};Ee(D0,{generate:()=>UP,name:()=>OP,parse:()=>z0,structure:()=>HP,walkContext:()=>$P});function z0(){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 UP(e){this.children(e,()=>this.token(18,","))}var OP,$P,HP,N0=$(()=>{"use strict";OP="SelectorList",$P="selector",HP={children:[["Selector","Raw"]]}});function jc(e){let t=e.length,n=e.charCodeAt(0),r=n===z2||n===D2?1:0,o=r===1&&t>1&&e.charCodeAt(t-1)===n?t-2:t-1,i="";for(let a=r;a<=o;a++){let s=e.charCodeAt(a);if(s===_0){if(a===o){a!==t-1&&(i=e.substr(a+1));break}if(s=e.charCodeAt(++a),sr(_0,s)){let u=a-1,c=Lo(e,u);a=c-1,i+=pc(e.substring(u+1,c))}else s===13&&e.charCodeAt(a+1)===10&&a++}else i+=e[a]}return i}function N2(e,t){let n=t?"'":'"',r=t?D2:z2,o="",i=!1;for(let a=0;a<e.length;a++){let s=e.charCodeAt(a);if(s===0){o+="\uFFFD";continue}if(s<=31||s===127){o+="\\"+s.toString(16),i=!0;continue}s===r||s===_0?(o+="\\"+e.charAt(a),i=!1):(i&&(lr(s)||mo(s))&&(o+=" "),o+=e.charAt(a),i=!1)}return n+o+n}var _0,z2,D2,Vc=$(()=>{"use strict";Br();_0=92,z2=34,D2=39});var $0={};Ee($0,{generate:()=>WP,name:()=>jP,parse:()=>O0,structure:()=>VP});function O0(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:jc(this.consume(5))}}function WP(e){this.token(5,N2(e.value))}var jP,VP,H0=$(()=>{"use strict";Vc();jP="String",VP={value:String}});var j0={};Ee(j0,{generate:()=>XP,name:()=>qP,parse:()=>U0,structure:()=>KP,walkContext:()=>YP});function O2(){return this.Raw(null,!1)}function U0(){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)!==GP){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,O2);break;default:n=this.parseWithFallback(this.Rule,O2)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function XP(e){this.children(e)}var GP,qP,YP,KP,V0=$(()=>{"use strict";GP=33;qP="StyleSheet",YP="stylesheet",KP={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]}});var G0={};Ee(G0,{generate:()=>ZP,name:()=>JP,parse:()=>W0,structure:()=>QP});function W0(){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 ZP(e){this.token(21,"("),this.node(e.declaration),this.token(22,")")}var JP,QP,q0=$(()=>{"use strict";JP="SupportsDeclaration",QP={declaration:"Declaration"}});var X0={};Ee(X0,{generate:()=>rM,name:()=>tM,parse:()=>K0,structure:()=>nM});function Y0(){this.tokenType!==1&&this.isDelim(eM)===!1&&this.error("Identifier or asterisk is expected"),this.next()}function K0(){let e=this.tokenStart;return this.isDelim($2)?(this.next(),Y0.call(this)):(Y0.call(this),this.isDelim($2)&&(this.next(),Y0.call(this))),{type:"TypeSelector",loc:this.getLocation(e,this.tokenStart),name:this.substrToCursor(e)}}function rM(e){this.tokenize(e.name)}var eM,$2,tM,nM,J0=$(()=>{"use strict";eM=42,$2=124;tM="TypeSelector",nM={name:String}});var em={};Ee(em,{generate:()=>lM,name:()=>aM,parse:()=>Z0,structure:()=>sM});function zs(e,t){let n=0;for(let r=this.tokenStart+e;r<this.tokenEnd;r++){let o=this.charCodeAt(r);if(o===U2&&t&&n!==0)return zs.call(this,e+n+1,!1),-1;lr(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 Wc(e){let t=0;for(;this.isDelim(Q0);)++t>e&&this.error("Too many question marks"),this.next()}function oM(e){this.charCodeAt(this.tokenStart)!==e&&this.error((e===H2?"Plus sign":"Hyphen minus")+" is expected")}function iM(){let e=0;switch(this.tokenType){case 10:if(e=zs.call(this,1,!0),this.isDelim(Q0)){Wc.call(this,6-e);break}if(this.tokenType===12||this.tokenType===10){oM.call(this,U2),zs.call(this,1,!1);break}break;case 12:e=zs.call(this,1,!0),e>0&&Wc.call(this,6-e);break;default:if(this.eatDelim(H2),this.tokenType===1){e=zs.call(this,0,!0),e>0&&Wc.call(this,6-e);break}if(this.isDelim(Q0)){this.next(),Wc.call(this,5);break}this.error("Hex digit or question mark is expected")}}function Z0(){let e=this.tokenStart;return this.eatIdent("u"),iM.call(this),{type:"UnicodeRange",loc:this.getLocation(e,this.tokenStart),value:this.substrToCursor(e)}}function lM(e){this.tokenize(e.value)}var H2,U2,Q0,aM,sM,tm=$(()=>{"use strict";Br();H2=43,U2=45,Q0=63;aM="UnicodeRange",sM={value:String}});function V2(e){let t=e.length,n=4,r=e.charCodeAt(t-1)===j2?t-2:t-1,o="";for(;n<r&&mo(e.charCodeAt(n));)n++;for(;n<r&&mo(e.charCodeAt(r));)r--;for(let i=n;i<=r;i++){let a=e.charCodeAt(i);if(a===nm){if(i===r){i!==t-1&&(o=e.substr(i+1));break}if(a=e.charCodeAt(++i),sr(nm,a)){let s=i-1,u=Lo(e,s);i=u-1,o+=pc(e.substring(s+1,u))}else a===13&&e.charCodeAt(i+1)===10&&i++}else o+=e[i]}return o}function W2(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===cM||o===nm||o===uM||o===dM||o===pM||o===j2?(t+="\\"+e.charAt(r),n=!1):(n&&lr(o)&&(t+=" "),t+=e.charAt(r),n=!1)}return"url("+t+")"}var cM,nm,uM,dM,pM,j2,rm=$(()=>{"use strict";Br();cM=32,nm=92,uM=34,dM=39,pM=40,j2=41});var im={};Ee(im,{generate:()=>mM,name:()=>gM,parse:()=>om,structure:()=>fM});function om(){let e=this.tokenStart,t;switch(this.tokenType){case 7:t=V2(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=jc(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 mM(e){this.token(7,W2(e.value))}var gM,fM,am=$(()=>{"use strict";rm();Vc();gM="Url",fM={value:String}});var lm={};Ee(lm,{generate:()=>yM,name:()=>hM,parse:()=>sm,structure:()=>xM});function sm(){let e=this.tokenStart,t=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(e,this.tokenStart),children:t}}function yM(e){this.children(e)}var hM,xM,cm=$(()=>{"use strict";hM="Value",xM={children:[[]]}});var dm={};Ee(dm,{generate:()=>SM,name:()=>wM,parse:()=>um,structure:()=>vM});function um(){return this.eat(13),bM}function SM(e){this.token(13,e.value)}var bM,wM,vM,pm=$(()=>{"use strict";bM=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),wM="WhiteSpace",vM={value:String}});var Ds={};Ee(Ds,{AnPlusB:()=>wg,Atrule:()=>kg,AtrulePrelude:()=>Tg,AttributeSelector:()=>Fg,Block:()=>Lg,Brackets:()=>Dg,CDC:()=>Og,CDO:()=>Ug,ClassSelector:()=>Wg,Combinator:()=>Yg,Comment:()=>Jg,Condition:()=>ef,Declaration:()=>rf,DeclarationList:()=>lf,Dimension:()=>df,Feature:()=>ff,FeatureFunction:()=>xf,FeatureRange:()=>vf,Function:()=>Cf,GeneralEnclosed:()=>Ef,Hash:()=>Ff,IdSelector:()=>Df,Identifier:()=>Lf,Layer:()=>Of,LayerList:()=>Uf,MediaQuery:()=>Wf,MediaQueryList:()=>Yf,NestingSelector:()=>Jf,Nth:()=>e0,Number:()=>r0,Operator:()=>a0,Parentheses:()=>c0,Percentage:()=>p0,PseudoClassSelector:()=>m0,PseudoElementSelector:()=>y0,Ratio:()=>v0,Raw:()=>C0,Rule:()=>E0,Scope:()=>F0,Selector:()=>L0,SelectorList:()=>D0,String:()=>$0,StyleSheet:()=>j0,SupportsDeclaration:()=>G0,TypeSelector:()=>X0,UnicodeRange:()=>em,Url:()=>im,Value:()=>lm,WhiteSpace:()=>dm});var gm=$(()=>{"use strict";vg();Cg();Eg();Pg();Bg();Ng();$g();jg();Gg();Kg();Qg();tf();of();cf();pf();mf();yf();Sf();If();Rf();Pf();Bf();Nf();$f();jf();Gf();Kf();Qf();t0();o0();s0();u0();g0();h0();b0();S0();I0();R0();P0();B0();N0();H0();V0();q0();J0();tm();am();cm();pm()});var q2,Y2=$(()=>{"use strict";Fc();b2();gm();q2={generic:!0,cssWideKeywords:ma,...y2,node:Ds}});function Ns(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,EM)&&this.cmpChar(this.tokenStart+1,K2)?this.UnicodeRange():this.Identifier();case 9:{let t=this.charCodeAt(this.tokenStart);if(t===TM||t===CM||t===K2||t===IM)return this.Operator();t===kM&&this.error("Hex or identifier is expected",this.tokenStart+1);break}}}var kM,CM,K2,IM,TM,EM,fm=$(()=>{"use strict";kM=35,CM=42,K2=43,IM=45,TM=47,EM=117});var X2,J2=$(()=>{"use strict";fm();X2={getNode:Ns}});function DM(e,t){t.last!==null&&t.last.type!=="Combinator"&&e!==null&&e.type!=="Combinator"&&t.push({type:"Combinator",loc:null,name:" "})}function NM(){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)===Q2&&this.error("Identifier is expected",this.tokenStart+1);break;case 9:{switch(this.charCodeAt(this.tokenStart)){case PM:case LM:case zM:case MM:return this.Combinator();case Q2:return this.ClassSelector();case FM:case BM:return this.TypeSelector();case RM:return this.IdSelector();case AM:return this.NestingSelector()}break}}}var RM,AM,FM,PM,MM,Q2,LM,BM,zM,Z2,ew=$(()=>{"use strict";RM=35,AM=38,FM=42,PM=43,MM=47,Q2=46,LM=62,BM=124,zM=126;Z2={onWhiteSpace:DM,getNode:NM}});function tw(){return this.createSingleNodeList(this.Raw(null,!1))}var nw=$(()=>{"use strict"});function rw(){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 ow=$(()=>{"use strict"});function iw(e){return e!==null&&e.type==="Operator"&&(e.value[e.value.length-1]==="-"||e.value[e.value.length-1]==="+")}var aw,sw=$(()=>{"use strict";fm();nw();ow();aw={getNode:Ns,onWhiteSpace(e,t){iw(e)&&(e.value=" "+e.value),iw(t.last)&&(t.last.value+=" ")},expression:tw,var:rw}});var mm={};Ee(mm,{AtrulePrelude:()=>X2,Selector:()=>Z2,Value:()=>aw});var lw=$(()=>{"use strict";J2();ew();sw()});var _M,cw,uw=$(()=>{"use strict";_M=new Set(["none","and","not","or"]),cw={parse:{prelude(){let e=this.createList();if(this.tokenType===1){let t=this.substring(this.tokenStart,this.tokenEnd);_M.has(t.toLowerCase())||e.push(this.Identifier())}return e.push(this.Condition("container")),e},block(e=!1){return this.Block(e)}}}});var dw,pw=$(()=>{"use strict";dw={parse:{prelude:null,block(){return this.Block(!0)}}}});function hm(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 gw,fw,mw=$(()=>{"use strict";gw={layer(){this.skipSC();let e=this.createList(),t=hm.call(this,this.Layer);return(t.type!=="Raw"||t.value!=="")&&e.push(t),e},supports(){this.skipSC();let e=this.createList(),t=hm.call(this,this.Declaration,()=>hm.call(this,()=>this.Condition("supports")));return(t.type!=="Raw"||t.value!=="")&&e.push(t),e}},fw={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,gw)),this.skipSC(),this.tokenType===2&&this.cmpStr(this.tokenStart,this.tokenEnd,"supports(")&&e.push(this.Function(null,gw)),(this.lookupNonWSType(0)===1||this.lookupNonWSType(0)===21)&&e.push(this.MediaQueryList()),e},block:null}}});var hw,xw=$(()=>{"use strict";hw={parse:{prelude(){return this.createSingleNodeList(this.LayerList())},block(){return this.Block(!1)}}}});var yw,bw=$(()=>{"use strict";yw={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(e=!1){return this.Block(e)}}}});var ww,vw=$(()=>{"use strict";ww={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var Sw,kw=$(()=>{"use strict";Sw={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}}});var Cw,Iw=$(()=>{"use strict";Cw={parse:{prelude(){return this.createSingleNodeList(this.Scope())},block(e=!1){return this.Block(e)}}}});var Tw,Ew=$(()=>{"use strict";Tw={parse:{prelude:null,block(e=!1){return this.Block(e)}}}});var Rw,Aw=$(()=>{"use strict";Rw={parse:{prelude(){return this.createSingleNodeList(this.Condition("supports"))},block(e=!1){return this.Block(e)}}}});var Fw,Pw=$(()=>{"use strict";uw();pw();mw();xw();bw();vw();kw();Iw();Ew();Aw();Fw={container:cw,"font-face":dw,import:fw,layer:hw,media:yw,nest:ww,page:Sw,scope:Cw,"starting-style":Tw,supports:Rw}});function Mw(){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 Lw=$(()=>{"use strict"});var Bi,xm,OM,$M,Gc,Bw,zw=$(()=>{"use strict";Lw();Bi={parse(){return this.createSingleNodeList(this.SelectorList())}},xm={parse(){return this.createSingleNodeList(this.Selector())}},OM={parse(){return this.createSingleNodeList(this.Identifier())}},$M={parse:Mw},Gc={parse(){return this.createSingleNodeList(this.Nth())}},Bw={dir:OM,has:Bi,lang:$M,matches:Bi,is:Bi,"-moz-any":Bi,"-webkit-any":Bi,where:Bi,not:Bi,"nth-child":Gc,"nth-last-child":Gc,"nth-last-of-type":Gc,"nth-of-type":Gc,slotted:xm,host:xm,"host-context":xm}});var ym={};Ee(ym,{AnPlusB:()=>bg,Atrule:()=>Sg,AtrulePrelude:()=>Ig,AttributeSelector:()=>Ag,Block:()=>Mg,Brackets:()=>zg,CDC:()=>_g,CDO:()=>Hg,ClassSelector:()=>Vg,Combinator:()=>qg,Comment:()=>Xg,Condition:()=>Zg,Declaration:()=>nf,DeclarationList:()=>sf,Dimension:()=>uf,Feature:()=>gf,FeatureFunction:()=>hf,FeatureRange:()=>wf,Function:()=>kf,GeneralEnclosed:()=>Tf,Hash:()=>Af,IdSelector:()=>zf,Identifier:()=>Mf,Layer:()=>_f,LayerList:()=>Hf,MediaQuery:()=>Vf,MediaQueryList:()=>qf,NestingSelector:()=>Xf,Nth:()=>Zf,Number:()=>n0,Operator:()=>i0,Parentheses:()=>l0,Percentage:()=>d0,PseudoClassSelector:()=>f0,PseudoElementSelector:()=>x0,Ratio:()=>w0,Raw:()=>k0,Rule:()=>T0,Scope:()=>A0,Selector:()=>M0,SelectorList:()=>z0,String:()=>O0,StyleSheet:()=>U0,SupportsDeclaration:()=>W0,TypeSelector:()=>K0,UnicodeRange:()=>Z0,Url:()=>om,Value:()=>sm,WhiteSpace:()=>um});var Dw=$(()=>{"use strict";vg();Cg();Eg();Pg();Bg();Ng();$g();jg();Gg();Kg();Qg();tf();of();cf();pf();mf();yf();Sf();If();Rf();Pf();Bf();Nf();$f();jf();Gf();Kf();Qf();t0();o0();s0();u0();g0();h0();b0();S0();I0();R0();P0();B0();N0();H0();V0();q0();J0();tm();am();cm();pm()});var Nw,_w=$(()=>{"use strict";lw();Pw();zw();Dw();Nw={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:mm,atrule:Fw,pseudo:Bw,node:ym}});var Ow,$w=$(()=>{"use strict";gm();Ow={node:Ds}});var Hw,Uw=$(()=>{"use strict";x2();Y2();_w();$w();Hw=h2({...q2,...Nw,...Ow})});var jw=$(()=>{"use strict"});var Vw=$(()=>{"use strict"});var cre,Ww,ure,dre,pre,Gw,gre,fre,mre,hre,xre,yre,qw=$(()=>{"use strict";Uw();jw();ig();Ac();Vw();Vc();rm();({tokenize:cre,parse:Ww,generate:ure,lexer:dre,createLexer:pre,walk:Gw,find:gre,findLast:fre,findAll:mre,toPlainObject:hre,fromPlainObject:xre,fork:yre}=Hw)});function VM(e){return e.toLowerCase().replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Kw(e){try{let t=Ww(e.trim(),{context:"value"}),n=[];return Gw(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 WM(e,t){let n=VM(e);if(!jM.has(n))return t;let r=Kw(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 Yw(e,t){let n=t.trim();if(!n)return"";let r=WM(e,n);return Kw(r).map(i=>i==="0"?"0px":i).join(" ")}function Xw(e,t,n){let r=Yw(e,t),o=Yw(e,n);return r!==""&&o!==""&&r===o}var jM,Jw=$(()=>{"use strict";qw();jM=new Set(["padding","margin","border-radius","borderradius","inset","border-width","borderwidth"])});function GM(e){let t=e.toLowerCase();return t.length===4?`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`:t}function qM(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 Qw(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=qM(n[0]);if(i)return i}let r=t.match(/#([0-9a-fA-F]{3,8})/);if(r)return GM(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 zi(e,t,n){if(!e||!t)return!1;let r=String(e),o=String(t),i=r.toLowerCase(),a=o.toLowerCase(),s=i.includes("none"),u=a.includes("none");if(s!==u)return!1;let c=/\b(fill|stroke)\s*:/i,l=c.test(r),p=c.test(o);if(l!==p)return!1;let g=Qw(r),d=Qw(o);return!!(g===d||n&&Xw(n,r,o))}var bm=$(()=>{"use strict";Jw()});function wm(e){let t=e.trim().match(/^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/);if(!t)return null;let n=t[1];return n.length===3||n.length===4?n=n.slice(0,3).split("").map(r=>r+r).join(""):n.length===8&&(n=n.slice(0,6)),[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]}function YM(e){let t=e.trim().match(/^rgba?\(\s*([^)]+)\)$/i);if(!t)return null;let n=t[1].replace(/\//g," ").split(/[\s,]+/).filter(Boolean);if(n.length<3)return null;let r=u=>u.endsWith("%")?Math.round(parseFloat(u)/100*255):Math.round(parseFloat(u)),o=r(n[0]),i=r(n[1]),a=r(n[2]);if([o,i,a].some(u=>isNaN(u)))return null;let s=u=>Math.max(0,Math.min(255,u));return[s(o),s(i),s(a)]}function KM(e,t,n){let r=(1-Math.abs(2*n-1))*t,o=(e%360+360)%360/60,i=r*(1-Math.abs(o%2-1)),a=0,s=0,u=0;o<1?[a,s,u]=[r,i,0]:o<2?[a,s,u]=[i,r,0]:o<3?[a,s,u]=[0,r,i]:o<4?[a,s,u]=[0,i,r]:o<5?[a,s,u]=[i,0,r]:[a,s,u]=[r,0,i];let c=n-r/2;return[Math.round((a+c)*255),Math.round((s+c)*255),Math.round((u+c)*255)]}function XM(e){let t=e.trim().match(/^hsla?\(\s*([^)]+)\)$/i);if(!t)return null;let n=t[1].replace(/\//g," ").split(/[\s,]+/).filter(Boolean);if(n.length<3)return null;let r=parseFloat(n[0]),o=parseFloat(n[1]),i=parseFloat(n[2]);return[r,o,i].some(a=>isNaN(a))?null:KM(r,o/100,i/100)}function QM(e){return JM[e.trim().toLowerCase()]??null}function Zw(e){return e?wm(e)??YM(e)??XM(e)??vm(e)??QM(e):null}function vm(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=d=>d<=.04045?d/12.92:Math.pow((d+.055)/1.055,2.4),a=i(n),s=i(r),u=i(o),c=1.2249*a-.2247*s+0*u,l=-.042*a+1.0419*s+0*u,p=-.0197*a-.0786*s+1.0983*u,g=d=>{let f=Math.max(0,Math.min(1,d));return f<=.0031308?12.92*f:1.055*Math.pow(f,1/2.4)-.055};return[Math.round(g(c)*255),Math.round(g(l)*255),Math.round(g(p)*255)]}function ev(e,t,n){let r=S=>{let x=S/255;return x<=.04045?x/12.92:Math.pow((x+.055)/1.055,2.4)},o=r(e),i=r(t),a=r(n),s=o*.4124564+i*.3575761+a*.1804375,u=o*.2126729+i*.7151522+a*.072175,c=o*.0193339+i*.119192+a*.9503041,l=.95047,p=1,g=1.08883,d=S=>S>.008856?Math.cbrt(S):7.787*S+16/116,f=d(s/l),y=d(u/p),I=d(c/g);return[116*y-16,500*(f-y),200*(y-I)]}function tv(e,t){let[n,r,o]=ev(...e),[i,a,s]=ev(...t),u=(n+i)/2,c=Math.sqrt(r*r+o*o),l=Math.sqrt(a*a+s*s),p=(c+l)/2,g=.5*(1-Math.sqrt(Math.pow(p,7)/(Math.pow(p,7)+Math.pow(25,7)))),d=(1+g)*r,f=(1+g)*a,y=Math.sqrt(d*d+o*o),I=Math.sqrt(f*f+s*s),S=(y+I)/2,x=(Math.atan2(o,d)*180/Math.PI+360)%360,M=(Math.atan2(s,f)*180/Math.PI+360)%360,z=M-x;Math.abs(z)>180&&(z-=Math.sign(z)*360);let O=i-n,L=I-y,N=2*Math.sqrt(y*I)*Math.sin(z*Math.PI/360),m=Math.abs(x-M)>180?(x+M+360)/2:(x+M)/2,v=1-.17*Math.cos((m-30)*Math.PI/180)+.24*Math.cos(2*m*Math.PI/180)+.32*Math.cos((3*m+6)*Math.PI/180)-.2*Math.cos((4*m-63)*Math.PI/180),k=1+.015*Math.pow(u-50,2)/Math.sqrt(20+Math.pow(u-50,2)),E=1+.045*S,h=1+.015*S*v,b=-2*Math.sqrt(Math.pow(S,7)/(Math.pow(S,7)+Math.pow(25,7)))*Math.sin(60*Math.exp(-Math.pow((m-275)/25,2))*Math.PI/180);return Math.sqrt(Math.pow(O/k,2)+Math.pow(L/E,2)+Math.pow(N/h,2)+b*(L/E)*(N/h))}function nv(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=wm(r)??wm(o),a=vm(r)??vm(o);return!i||!a||r===o?!1:tv(i,a)<5}function _s(e){let t=String(e.expected??e.suggestedValue??""),n=String(e.actual??e.currentValue??"");if(!t||!n||t===n)return null;let r=Zw(t),o=Zw(n);return!r||!o?null:tv(r,o)}function Os(e){let t=e.severity||"minor";if(t==="minor")return t;if(nv(e))return"minor";let n=_s(e);if(n!==null)return n<2?"minor":n<5&&t==="critical"?"major":t;let r=["width","height","size","dimension","dimensions","r","cx","cy"],o=["dimension","layout"],i=new Set((e.property||"").replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),a=(e.type||"").toLowerCase();if(!(r.some(d=>i.has(d))||o.some(d=>a===d)))return t;let u=String(e.expected||e.suggestedValue||""),c=String(e.actual||e.currentValue||""),l=parseFloat(u.replace(/[^0-9.-]/g,"")),p=parseFloat(c.replace(/[^0-9.-]/g,""));if(isNaN(l)||isNaN(p))return t;let g=Math.abs(l-p);return g<5?"minor":g<10&&t==="critical"?"major":t}function qc(e,t,n){return e>0?"D":t>0?"C":n>0?"B":"A"}function Yc(e){let t=e.filter(n=>!n.dismissed).map(n=>Os(n));return qc(t.filter(n=>n==="critical").length,t.filter(n=>n==="major").length,t.filter(n=>n==="minor").length)}function Oo(e,t,n){let r=100-n*1-t*3-e*10,o=$s[qc(e,t,n)];return Math.max(0,Math.min(o,r))}var JM,$s,Sm=$(()=>{"use strict";JM={white:[255,255,255],black:[0,0,0],red:[255,0,0],green:[0,128,0],blue:[0,0,255],yellow:[255,255,0],cyan:[0,255,255],aqua:[0,255,255],magenta:[255,0,255],fuchsia:[255,0,255],gray:[128,128,128],grey:[128,128,128],silver:[192,192,192],maroon:[128,0,0],olive:[128,128,0],lime:[0,255,0],teal:[0,128,128],navy:[0,0,128],purple:[128,0,128],orange:[255,165,0],pink:[255,192,203],brown:[165,42,42],gold:[255,215,0],beige:[245,245,220],ivory:[255,255,240],indigo:[75,0,130],violet:[238,130,238],coral:[255,127,80],salmon:[250,128,114],khaki:[240,230,140],crimson:[220,20,60],turquoise:[64,224,208],lightgray:[211,211,211],lightgrey:[211,211,211],darkgray:[169,169,169],darkgrey:[169,169,169],whitesmoke:[245,245,245],gainsboro:[220,220,220]};$s={A:100,B:99,C:89,D:69}});function va(e,t={}){if(e==null)return"";let n=String(e).split(",")[0].trim().replace(/['"]/g,"").toLowerCase();return t.stripSeparators&&(n=n.replace(/[\s_-]/g,"")),n}function iv(e,t){let n=va(e,{stripSeparators:!0}),r=va(t,{stripSeparators:!0});return!n||!r||n===r?!1:ZM.some(o=>o.has(n)&&o.has(r))}function ov(e){if(e==null)return null;let t=String(e).trim().toLowerCase();if(!t)return null;let n=t.replace(/[\s_-]/g,"");if(n in rv)return rv[n];let r=parseFloat(t.replace(/[^0-9.-]/g,""));return isNaN(r)?null:r}function av(e,t){let n=ov(e),r=ov(t);return n==null||r==null?!1:Math.round(n/100)===Math.round(r/100)}var ZM,rv,Kc=$(()=>{"use strict";ZM=[new Set(["applesystem","blinkmacsystemfont","systemui","webkitsystemfont","sfpro","sfprotext","sfprodisplay","sanfrancisco","sanfranciscopro","sanfranciscotext","sanfranciscodisplay"])];rv={thin:100,hairline:100,extralight:200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,demibold:600,demi:600,bold:700,extrabold:800,ultrabold:800,black:900,heavy:900}});function dv(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=a=>/^#[0-9a-f]{3,8}$/i.test(a)||a.includes("rgb")||["white","black","red","blue","green","orange","yellow","transparent"].includes(a);return!!(i(r)||i(o)||e.relatedProperties?.some(a=>{let s=a.property?.toLowerCase()||"";return s.includes("color")||s.includes("fill")||s.includes("background")}))}function oL(e){if(!dv(e))return!1;let t=_s(e);return t!==null&&t<2}function sv(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 iL(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",a=t.includes("gap")||o.includes("gap");return i&&a}function aL(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&&dv(n)||sv(r)||sv(o)||n&&iL(n))return!1;let i=parseFloat(r),a=parseFloat(o);if(isNaN(i)||isNaN(a))return!1;let s=Math.abs(i-a);if(r.includes("px")||o.includes("px")){let u=n?.property?.toLowerCase()||"";return u==="width"||u==="height"||u.includes("width")||u.includes("height")?s<cv:s<lv}return r.includes("%")||o.includes("%")?s<1:!1}function sL(e){let t=`${e.description||""} ${e.title||""} ${e.suggestedFix||""}`.toLowerCase();if(rL.some(a=>t.includes(a))||!tL.some(a=>t.includes(a)))return!1;let o=e.expected||e.suggestedValue,i=e.actual||e.currentValue;return!(o&&i&&!zi(o,i,e.property))}function lL(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 a=`${e.description||""} ${e.title||""}`.toLowerCase();return a.includes("container")||a.includes("svg ")||a.includes("<svg")||a.includes("wrapper")}function cL(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||"",a=e.actual||e.currentValue||"",s=parseFloat(i),u=parseFloat(a);return isNaN(s)||isNaN(u)?!1:Math.abs(s-u)<uv}function uL(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(!nL.some(p=>t.includes(p)||n.includes(p)))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 s=n.includes("hug")||n.includes("auto"),u=/\d+\.?\d*px/.test(r);if(!s||!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]))>eL)}function dL(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 pv(e){return(e||"").toLowerCase().replace(/[\s_-]/g,"")==="fontfamily"}function pL(e){return(e||"").toLowerCase().replace(/[\s_-]/g,"")==="fontweight"}function gL(e,t,n){if(!pv(n))return!1;let r=va(e,{stripSeparators:!0}),o=va(t,{stripSeparators:!0});return r.length>0&&o.length>0&&r===o}function fL(e,t,n){return pv(n)?iv(e,t):!1}function mL(e,t,n){return pL(n)?av(e,t):!1}function Hs(e){let t=e.expected||e.suggestedValue,n=e.actual||e.currentValue;if(gL(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: font-family naming difference (same font)",dismissedBy:"post-ai-validation"};if(fL(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: system font stack equivalence (-apple-system renders as SF Pro)",dismissedBy:"post-ai-validation"};if(mL(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: font weight renders identically (same named weight)",dismissedBy:"post-ai-validation"};if(e.programmaticallyVerified)return{dismissed:!1};if(e.fixRequired===!1)return{dismissed:!0,dismissReason:"Auto-dismissed: FixRequired is false (no code change needed)",dismissedBy:"post-ai-validation"};if(zi(t,n,e.property))return{dismissed:!0,dismissReason:"Auto-dismissed: expected equals actual (identical values)",dismissedBy:"post-ai-validation"};if(oL(e))return{dismissed:!0,dismissReason:`Auto-dismissed: imperceptible color difference (\u0394E < ${2})`,dismissedBy:"post-ai-validation"};if(e.fixRequired===!0)return{dismissed:!1};if(cL(e))return{dismissed:!0,dismissReason:`Auto-dismissed: text dimension variance (<${uv}px) - font rendering difference, not actionable`,dismissedBy:"post-ai-validation"};if(aL(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")?cv:lv}px)`,dismissedBy:"post-ai-validation"}}return dL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no measurable values to compare",dismissedBy:"post-ai-validation"}:sL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: no fix needed",dismissedBy:"post-ai-validation"}:uL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: HUG sizing - CSS auto-sizes content without explicit dimensions",dismissedBy:"post-ai-validation"}:lL(e)?{dismissed:!0,dismissReason:"Auto-dismissed: SVG container fill - child elements use their own fills",dismissedBy:"post-ai-validation"}:{dismissed:!1}}var lv,cv,uv,eL,tL,nL,rL,gv=$(()=>{"use strict";bm();Sm();Kc();lv=.5,cv=2,uv=2,eL=5,tL=["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"],nL=["hug","auto (hug)","should be hug","fixed pixel values are being rendered","fixed values are being rendered"],rL=["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"]});var fv=$(()=>{"use strict"});var mv=$(()=>{"use strict"});var Xc=$(()=>{"use strict";bm();gv();Sm();fv();mv()});var kL,CL,_re,Cm=$(()=>{"use strict";kL=["flex","inline-flex"],CL=["grid","inline-grid"],_re=[...kL,...CL]});var xv=$(()=>{"use strict";Xc();Cm()});var yv=$(()=>{"use strict"});var bv=$(()=>{"use strict"});var wv=$(()=>{"use strict"});var Im=$(()=>{"use strict";Kc()});var vv=$(()=>{"use strict";Im();Xc()});var Sv=$(()=>{"use strict"});var kv=$(()=>{"use strict"});var Cv=$(()=>{"use strict"});var Iv=$(()=>{"use strict"});var Tv=$(()=>{"use strict"});var Ev=$(()=>{"use strict";bv();wv();Im();vv();Sv();kv();Cv();Iv();Tv()});var Rv=$(()=>{"use strict";Kc()});var Us,Av=$(()=>{"use strict";Us={admin:{enableFixGeneration:!1,enableFixApply:!0,enableAutoMap:!0,enableAutoFigmaLinking:!0,enableReviewBadges:!0,showCosts:!0,enableParallelReview:!0,enableModelSelection:!0},beta:{enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!1,enableAutoFigmaLinking:!1,enableReviewBadges:!0,showCosts:!1,enableParallelReview:!0,enableModelSelection:!1},anonymous:{enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!1,enableAutoFigmaLinking:!1,enableReviewBadges:!0,showCosts:!1,enableParallelReview:!0,enableModelSelection:!1}}});var pn=$(()=>{"use strict";fp();gy();fy();Xc();Cm();xv();yv();Ev();Rv();Av()});function TL(e){let{aiPrompt:t,aiResponse:n,...r}=e;return r}function Cr(e){try{let t=e.map(TL),n=JSON.stringify(t,EL);sessionStorage.setItem(Tm,n)}catch(t){w.error("[SessionStorage] Failed to save review history:",t)}}function Em(){try{let e=sessionStorage.getItem(Tm);if(!e)return[];let t=JSON.parse(e,RL);return Array.isArray(t)?t:[]}catch(e){return w.error("[SessionStorage] Failed to load review history:",e),[]}}function Fv(){try{let e=Em();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,...a}=r;return a}return r});t&&(Cr(n),w.debug("[SessionStorage] Stripped aiPrompt/aiResponse from existing review history"))}catch(e){w.error("[SessionStorage] Failed to strip sensitive fields:",e)}}function Pv(){try{sessionStorage.removeItem(Tm),w.debug("[SessionStorage] Review history cleared")}catch(e){w.error("[SessionStorage] Failed to clear review history:",e)}}function EL(e,t){return t instanceof Date?{__type:"Date",value:t.toISOString()}:t}function RL(e,t){return t&&t.__type==="Date"?new Date(t.value):t}var Tm,Rm=$(()=>{"use strict";Ue();Tm="uicopilot_review_history"});import AL,{createContext as FL,useContext as PL,useReducer as ML,useMemo as Mv,useRef as LL,useEffect as BL}from"react";function Jc(e){let t=e.length>Lv?e.slice(e.length-Lv):e,n=Math.max(0,t.length-zL);return n===0?t:t.map((r,o)=>{if(o>=n)return r;let i=r.storybookImageData?.startsWith("data:"),a=r.figmaImageData?.startsWith("data:");return!i&&!a?r:{...r,storybookImageData:i?void 0:r.storybookImageData,figmaImageData:a?void 0:r.figmaImageData}})}function DL(e,t){switch(t.type){case"SET_STATE":return{...e,...t.payload};case"REQUEST_REVIEW_RETRY":return{...e,reviewRetryNonce:e.reviewRetryNonce+1};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:t.payload.storybookImageData||e.storybookImageUrl||void 0,figmaImageData:t.payload.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,reviewDurationMs:t.payload.reviewDurationMs},o=e.reviewHistory.findIndex(a=>a.id===t.payload.id),i;return o>=0?i=e.reviewHistory.map((a,s)=>s===o?r:a):i=[...e.reviewHistory,r],i=Jc(i),Cr(i),{...e,reviewResults:t.payload,reviewHistory:i,currentReviewId:t.payload.id,isNewReviewMode:!1}}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(a=>[a.id,a])),r=!1,o=e.reviewHistory.slice();for(let a of t.payload){let s=n.get(a.id);if(!s){o.push(a),r=!0;continue}let u=a.issues?.length??0,c=s.issues?.length??0;if(u>c){let l=o.indexOf(s);l!==-1&&(o[l]=a,r=!0)}}if(!r)return e;let i=Jc(o);return Cr(i),{...e,reviewHistory:i}}case"ADD_REVIEW":{let n=Jc([...e.reviewHistory,t.payload]);return Cr(n),{...e,reviewHistory:n,currentReviewId:t.payload.id,isNewReviewMode:!1}}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 Cr(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 Cr(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 Cr(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 a=n.get(i.id);return a?{...i,generatedFix:i.generatedFix?{...i.generatedFix,...a}:a,selectedForFix:a?.status==="failed"?!1:i.selectedForFix}:i})});return Cr(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),a=i.filter(c=>c.severity==="critical").length,s=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:Oo(a,s,u),issuesCount:i.length}});return Cr(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),a=i.filter(c=>c.severity==="critical").length,s=i.filter(c=>c.severity==="major").length,u=i.filter(c=>c.severity==="minor").length;return{...r,issues:o,complianceScore:Oo(a,s,u),issuesCount:i.length}});return Cr(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,a=o.filter(c=>c.severity==="major").length,s=o.filter(c=>c.severity==="minor").length,u=Oo(i,a,s);return w.debug(`[recalculateScore] Active: ${o.length}, score: ${u}`),{...r,complianceScore:u,issuesCount:o.length}});return Cr(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 Cr(n),{...e,reviewHistory:n}}case"CLEAR_ALL_REVIEWS":return Pv(),{...e,reviewHistory:[],currentReviewId:null};case"CLEAR_STALE_REVIEWS":return{...e,currentReviewId:null,reviewResults:null,isNewReviewMode:!1};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 Fm({children:e}){let[t,n]=ML(DL,HL),r=LL(t);BL(()=>{r.current=t},[t]);let o=Mv(()=>({setIsReviewing:a=>n({type:"SET_STATE",payload:{isReviewing:a}}),setReviewingStoryId:a=>n({type:"SET_STATE",payload:{reviewingStoryId:a}}),setReviewError:a=>n({type:"SET_STATE",payload:{reviewError:a}}),requestReviewRetry:()=>n({type:"REQUEST_REVIEW_RETRY"}),bulkAddReviews:a=>n({type:"BULK_ADD_REVIEWS",payload:a}),setReviewResults:a=>n({type:"SET_REVIEW_RESULTS",payload:a}),setMultiModelResults:a=>n({type:"SET_STATE",payload:{multiModelResults:a}}),updateMultiModelStreamingMessages:(a,s)=>n({type:"UPDATE_MULTI_MODEL_STREAMING",payload:{modelId:a,messages:s}}),setModelCompleted:a=>n({type:"SET_MODEL_COMPLETED",payload:a}),setActiveModelId:a=>{let s=r.current;s.multiModelResults&&n({type:"SET_STATE",payload:{multiModelResults:{...s.multiModelResults,activeModelId:a}}})},setShowReviewMenu:a=>n({type:"SET_STATE",payload:{showReviewMenu:a}}),setSeverityFilter:a=>n({type:"SET_STATE",payload:{severityFilter:a}}),setShowStreamingPanel:a=>n({type:"SET_STATE",payload:{showStreamingPanel:a}}),setStreamingPanelCollapsed:a=>n({type:"SET_STATE",payload:{streamingPanelCollapsed:a}}),addStreamingMessage:a=>n({type:"ADD_STREAMING_MESSAGE",payload:a}),updateStreamingMessage:(a,s)=>n({type:"UPDATE_STREAMING_MESSAGE",payload:{index:a,content:s}}),clearStreamingMessages:()=>n({type:"CLEAR_STREAMING_MESSAGES"}),setStreamingProgress:a=>n({type:"SET_STATE",payload:{streamingProgress:a}}),setStreamingStatus:a=>n({type:"SET_STATE",payload:{streamingStatus:a}}),setReviewDetailTab:a=>n({type:"SET_STATE",payload:{reviewDetailTab:a}}),setFullPrompt:a=>n({type:"SET_STATE",payload:{fullPrompt:a}}),setFullResponse:a=>n({type:"SET_STATE",payload:{fullResponse:a}}),setFigmaImageUrl:a=>n({type:"SET_STATE",payload:{figmaImageUrl:a}}),setStorybookImageUrl:a=>n({type:"SET_STATE",payload:{storybookImageUrl:a}}),setFigmaDimensions:a=>n({type:"SET_STATE",payload:{figmaDimensions:a}}),setSelectedModels:a=>n({type:"SET_STATE",payload:{selectedModels:a}}),toggleModel:a=>n({type:"TOGGLE_MODEL",payload:a}),setModelComparisonView:a=>n({type:"SET_STATE",payload:{modelComparisonView:a}}),resetReview:()=>n({type:"RESET_REVIEW"}),addReview:a=>n({type:"ADD_REVIEW",payload:a}),getCurrentReview:()=>{let a=r.current;return a.currentReviewId&&a.reviewHistory.find(s=>s.id===a.currentReviewId)||null},getReviewById:a=>r.current.reviewHistory.find(s=>s.id===a)||null,getParentReview:()=>{let a=r.current,s=a.reviewHistory.find(u=>u.id===a.currentReviewId);return s?.parentReviewId&&a.reviewHistory.find(u=>u.id===s.parentReviewId)||null},hasAppliedFixes:()=>{let a=r.current,s=a.reviewHistory.find(u=>u.id===a.currentReviewId);return!s||!Array.isArray(s.issues)||s.issues.length===0?!1:s.issues.some(u=>u.status==="applied"||u.generatedFix?.status==="applied")},toggleIssueSelection:a=>n({type:"TOGGLE_ISSUE_SELECTION",payload:a}),updateIssueStatus:(a,s,u)=>n({type:"UPDATE_ISSUE_STATUS",payload:{issueId:a,status:s,error:u}}),updateIssueGeneratedFix:(a,s)=>n({type:"UPDATE_ISSUE_GENERATED_FIX",payload:{issueId:a,generatedFix:s}}),batchUpdateIssueGeneratedFixes:a=>n({type:"BATCH_UPDATE_ISSUE_GENERATED_FIXES",payload:a}),dismissIssue:(a,s,u)=>n({type:"DISMISS_ISSUE",payload:{issueId:a,reason:s,dismissedBy:u}}),undismissIssue:a=>n({type:"UNDISMISS_ISSUE",payload:a}),recalculateScore:()=>n({type:"RECALCULATE_SCORE"}),updateReviewScore:(a,s)=>n({type:"UPDATE_REVIEW_SCORE",payload:{reviewId:a,newScore:s}}),clearAllReviews:()=>n({type:"CLEAR_ALL_REVIEWS"}),clearStaleReviewsForStory:a=>n({type:"CLEAR_STALE_REVIEWS",payload:a}),setIsApplying:a=>n({type:"SET_STATE",payload:{isApplying:a}}),setApplyFixesResult:a=>n({type:"SET_STATE",payload:{applyFixesResult:a}}),setIncludeComponentIssues:a=>n({type:"SET_STATE",payload:{includeComponentIssues:a}}),setIncludeTextComparison:a=>n({type:"SET_STATE",payload:{includeTextComparison:a}}),setUsePromptCache:a=>n({type:"SET_STATE",payload:{usePromptCache:a}}),setIsValidating:a=>n({type:"SET_STATE",payload:{isValidating:a}}),setIsSpecChecking:a=>n({type:"SET_STATE",payload:{isSpecChecking:a}}),setReviewHistoryLoading:a=>n({type:"SET_STATE",payload:{reviewHistoryLoading:a}}),setValidationUsage:a=>n({type:"SET_STATE",payload:{validationUsage:a}}),setWorkspacePath:a=>n({type:"SET_STATE",payload:{workspacePath:a}}),triggerScreenshotRefresh:()=>n({type:"TRIGGER_SCREENSHOT_REFRESH"}),setHoveredIssueId:a=>n({type:"SET_STATE",payload:{hoveredIssueId:a}}),setNewReviewMode:a=>n({type:"SET_STATE",payload:{isNewReviewMode:a}}),setPendingSettingsOpen:a=>n({type:"SET_STATE",payload:{pendingSettingsOpen:a}}),setFeatureFlags:a=>n({type:"SET_STATE",payload:{featureFlags:a}}),setUserRole:a=>n({type:"SET_STATE",payload:{userRole:a}}),setRoleOverride:a=>{try{a?localStorage.setItem("uicopilot_role_override",a):localStorage.removeItem("uicopilot_role_override")}catch{}n({type:"SET_STATE",payload:{roleOverride:a}})},setReviewAllConcurrency:a=>{let s=Math.max(1,Math.min(5,a));try{localStorage.setItem("uicopilot_review_all_concurrency",String(s))}catch{}n({type:"SET_STATE",payload:{reviewAllConcurrency:s}})},setIsGenerating:a=>n({type:"SET_STATE",payload:{isGenerating:a}}),setGeneratedPrompt:a=>n({type:"SET_STATE",payload:{generatedPrompt:a}}),setPromptError:a=>n({type:"SET_STATE",payload:{promptError:a}}),resetPrompt:()=>n({type:"RESET_PROMPT"})}),[]),i=Mv(()=>({...t,...o}),[t,o]);return AL.createElement(Bv.Provider,{value:i},e)}function ue(){let e=PL(Bv);if(!e)throw new Error("useReviewStore must be used within a ReviewProvider");return e}var Lv,zL,NL,_L,Am,OL,$L,HL,Bv,Pm=$(()=>{"use strict";pn();Rm();Ue();Lv=20,zL=5;NL=()=>{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},_L=()=>{if(typeof localStorage>"u")return null;try{let e=localStorage.getItem("uicopilot_role_override");if(e==="admin"||e==="beta")return e}catch{}return null},Am={enableFixGeneration:!1,enableFixApply:!1,enableAutoMap:!1,enableAutoFigmaLinking:!1,enableReviewBadges:!1,showCosts:!1,enableParallelReview:!1,enableModelSelection:!1},OL=()=>{if(typeof localStorage>"u")return Am;try{let e=localStorage.getItem("uicopilot_feature_flags");if(!e)return Am;let t=JSON.parse(e);return{enableFixGeneration:!!t.enableFixGeneration,enableFixApply:!!t.enableFixApply,enableAutoMap:!!t.enableAutoMap,enableAutoFigmaLinking:!!t.enableAutoFigmaLinking,enableReviewBadges:!!t.enableReviewBadges,showCosts:!!t.showCosts,enableParallelReview:!!t.enableParallelReview,enableModelSelection:!!t.enableModelSelection}}catch{}return Am},$L=()=>{if(typeof localStorage>"u")return"beta";try{let e=localStorage.getItem("uicopilot_user_role");if(e==="admin"||e==="beta")return e}catch{}return"beta"},HL={isReviewing:!1,reviewingStoryId:null,reviewError:null,reviewRetryNonce:0,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-6"],modelComparisonView:"side-by-side",reviewHistory:Jc(Em()),currentReviewId:null,includeComponentIssues:!0,includeTextComparison:!1,usePromptCache:!1,isApplying:!1,applyFixesResult:null,screenshotRefreshKey:0,isValidating:!1,isSpecChecking:!1,reviewHistoryLoading:!1,validationUsage:null,lastAiCallTimestamp:null,aiRateLimitSeconds:0,isGenerating:!1,generatedPrompt:null,promptError:null,workspacePath:null,userRole:$L(),roleOverride:_L(),featureFlags:OL(),reviewAllConcurrency:NL(),hoveredIssueId:null,isNewReviewMode:!1,pendingSettingsOpen:!1},Bv=FL(null)});import js,{useMemo as UL}from"react";function Lm({children:e}){return js.createElement(lp,null,js.createElement(up,null,js.createElement(pp,null,js.createElement(Fm,null,js.createElement(jL,null),e))))}function zv(e){let t=he(),n=Ke(),r=gt(),o=ue(),i=UL(()=>({...t,...n,...r,...o}),[t,n,r,o]);return e?e(i):i}function jL(){return Mm=zv(),null}var Mm,kt,Dv=$(()=>{"use strict";cp();dp();gp();Pm();Mm=null,kt=Object.assign(zv,{getState:()=>{if(!Mm)throw new Error("Store not initialized. Make sure StoreProvider is mounted.");return Mm}})});var Se=$(()=>{"use strict";Dv();cp();dp();gp();Pm()});function K(){return(process.env.STORYBOOK_UICOPILOT_URL||VL).replace(/\/$/,"")}var VL,Nv,De=$(()=>{"use strict";VL="https://app.uiparity.com";Nv=3.6});async function Q(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 ut=$(()=>{"use strict"});import{useEffect as oi,useState as nu,useRef as tS,useCallback as $m}from"react";import{addons as Hm}from"storybook/manager-api";async function tz(e,t,n){let r=`${e}:${t}`,o=Um.get(r);if(o)return w.debug("[useReviewScreenshots] Reusing in-flight Figma image fetch for",r),o;let i=(async()=>{let a=await Q(`${aS}/api/figma/image?projectId=${e}&nodeId=${t}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}});return a.ok?a.json():{imageUrl:null}})().finally(()=>{Um.delete(r)});return Um.set(r,i),i}function nz(e,t,n){try{sessionStorage.setItem(`${ru}${e}`,JSON.stringify({figmaNodeId:t,imageUrl:n,timestamp:Date.now()}))}catch{}}function rz(e,t){try{let n=sessionStorage.getItem(`${ru}${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(`${ru}${e}`)}catch{}return null}function oz(e){try{let t=sessionStorage.getItem(`${ru}${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 nS,rS,oS,iS,Ca,aS,Yn,jm,Um,ru,sS,lS,Di,Ia=$(()=>{"use strict";Se();Vm();Ue();De();ut();nS="storyArgsUpdated",rS="storyRendered",oS="forceRemount",iS=null,Ca=()=>iS,aS=K(),Yn=new Map,jm=null,Um=new Map;ru="uicopilot-figma-image-";sS=(e,t,n)=>{let r=Yn.get(e);r?(r.storybookImageUrl=t,n&&(r.figmaImageUrl=n)):Yn.set(e,{storybookImageUrl:t,figmaImageUrl:n??null}),w.debug("[useReviewScreenshots] Populated historical screenshots for story:",e)},lS=(e,t,n)=>{jm=t;let r=Yn.get(e);r?r.figmaImageUrl=n:Yn.set(e,{storybookImageUrl:null,figmaImageUrl:n}),w.debug("[useReviewScreenshots] Pre-set Figma image for mapping:",{storyId:e,figmaNodeId:t,imageUrl:n.substring(0,50)+"..."})},Di=()=>{let[e,t]=nu(!1),[n,r]=nu(!1),[o,i]=nu(!1),[a,s]=nu(null),u=tS(null),{screenshotRefreshKey:c,triggerScreenshotRefresh:l}=ue(),p=$m(()=>{let L=kt.getState().currentStoryId;L&&(w.debug("[useReviewScreenshots] Refreshing screenshots for story:",L),Yn.delete(L),u.current=null,i(!0),l())},[l]),g=$m(()=>{let L=kt.getState().currentStoryId;if(L){w.debug("[useReviewScreenshots] Refreshing Storybook screenshot only for story:",L);let N=Yn.get(L);N&&(N.storybookImageUrl=null),u.current=null,i(!0),l()}},[l]),{sessionToken:d}=he(),{selectedProjectId:f}=Ke(),{currentStoryId:y,currentMapping:I,loadingMapping:S}=gt(),{setStorybookImageUrl:x,setFigmaImageUrl:M}=ue(),z=tS(null);oi(()=>{y&&z.current&&z.current!==y&&(w.debug("[useReviewScreenshots] Story switched, clearing images"),x(""),M("")),z.current=y},[y,x,M]),oi(()=>{!y||S||I||M("")},[y,I,S,M]),oi(()=>{if(!y)return;let L=oz(y);L&&(w.debug("[useReviewScreenshots] Quick-restored Figma image for:",y),M(L))},[y,M]),oi(()=>{if(!y||S)return;let L=I?.figmaFileUrl;if(L){w.debug("[useReviewScreenshots] Restoring Figma image from mapping.figmaFileUrl for:",y),M(L);let N=Yn.get(y);N?N.figmaImageUrl=L:Yn.set(y,{storybookImageUrl:null,figmaImageUrl:L})}},[y,I,S,M]),oi(()=>{let L=!1;return(async()=>{if(!d||!f||!y){w.debug("[useReviewScreenshots] Missing required context, skipping auto-load");return}u.current&&u.current!==y&&(w.debug("[useReviewScreenshots] Story changed, clearing stale screenshots"),x(""),M(""));let m=kt.getState();if(u.current===y&&m.storybookImageUrl&&m.figmaImageUrl){w.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping capture");return}let v=I?.figmaNodeId??null;if(v!==jm){w.debug("[useReviewScreenshots] Figma mapping changed, invalidating Figma image only for story:",y);let B=Yn.get(y);B&&(B.figmaImageUrl=null),jm=v,u.current=null}let k=I?.figmaNodeId;if(k&&!Yn.get(y)?.figmaImageUrl){let B=rz(y,k);if(B){w.debug("[useReviewScreenshots] Hydrated Figma image from sessionStorage for story:",y),M(B);let P=Yn.get(y);P?P.figmaImageUrl=B:Yn.set(y,{storybookImageUrl:null,figmaImageUrl:B})}}let E=Yn.get(y),h=E&&E.storybookImageUrl&&E.figmaImageUrl,b=E&&E.storybookImageUrl&&!E.figmaImageUrl,F=E&&!E.storybookImageUrl&&E.figmaImageUrl;if(h){w.debug("[useReviewScreenshots] Using fully cached screenshots for story:",y),x(E.storybookImageUrl),M(E.figmaImageUrl),u.current=y;return}let C=b&&I?.figmaNodeId;C&&(w.debug("[useReviewScreenshots] Using cached Storybook, fetching new Figma for story:",y),x(E.storybookImageUrl));let A=F;if(A&&(w.debug("[useReviewScreenshots] Using cached Figma, recapturing Storybook for story:",y),M(E.figmaImageUrl)),u.current===y&&I?.figmaNodeId){w.debug("[useReviewScreenshots] Screenshots already loaded for this story, skipping");return}try{if(s(null),C?r(!0):(A||(t(!0),r(!0)),i(!0)),u.current=y,L)return;let B=A?E.figmaImageUrl:null,P;if(A)w.debug("[useReviewScreenshots] Figma cached (storybookOnlyRefresh), skipping fetch"),r(!1);else if(k){w.debug("[useReviewScreenshots] Found Figma node ID from mapping:",k);let T=null;try{w.debug("[useReviewScreenshots] Fetching Figma image (with caching)...");let D=await tz(f,k,d);T=D.imageUrl||null;let H=D.cached?"(cached)":"(fresh)";w.debug(`[useReviewScreenshots] Figma image fetched ${H}:`,T?"success":"not found")}catch(D){w.warn("[useReviewScreenshots] Failed to fetch Figma image:",D)}if(T)try{w.debug("[useReviewScreenshots] Fetching Figma image via proxy...");let D=`${aS}/api/proxy/image?url=${encodeURIComponent(T)}`,H=await Q(D);if(H.ok){let R=await H.blob(),te=new FileReader,j=await new Promise((X,ne)=>{te.onloadend=()=>X(te.result),te.onerror=ne,te.readAsDataURL(R)});B=j,M(j),w.debug("[useReviewScreenshots] Figma image loaded via proxy");let Y=new Image;await new Promise(X=>{Y.onload=()=>{P={width:Y.naturalWidth,height:Y.naturalHeight},w.debug("[useReviewScreenshots] Figma dimensions:",P),X()},Y.onerror=()=>X(),Y.src=j})}else B=T,M(T),w.warn("[useReviewScreenshots] Proxy failed, using direct URL as fallback")}catch(D){w.warn("[useReviewScreenshots] Proxy error, using direct URL as fallback:",D),B=T,M(T)}else w.warn("[useReviewScreenshots] No thumbnail found for node:",k),M(null);B&&k&&nz(y,k,B),r(!1)}else w.debug("[useReviewScreenshots] No Figma mapping exists for this component"),M(null),r(!1);let _=E?.storybookImageUrl||null;if(_)w.debug("[useReviewScreenshots] Using cached Storybook screenshot"),i(!1);else{w.debug("[useReviewScreenshots] Capturing Storybook screenshot for story:",y);let T=await ou({storyId:y,sessionToken:d||void 0,...P&&{figmaWidth:P.width,figmaHeight:P.height}});T&&!L?(_=T,x(T),w.debug("[useReviewScreenshots] Storybook screenshot captured at dimensions:",P||"natural")):w.warn("[useReviewScreenshots] Failed to capture Storybook screenshot"),i(!1)}Yn.set(y,{storybookImageUrl:_,figmaImageUrl:B}),w.debug("[useReviewScreenshots] Screenshots cached for story:",y)}catch(B){w.error("[useReviewScreenshots] Error loading screenshots:",B),s(B instanceof Error?B.message:"Failed to load screenshots"),u.current=null,r(!1),i(!1)}finally{t(!1)}})(),()=>{L=!0}},[d,f,y,I?.figmaNodeId,c]),oi(()=>{let L=Hm.getChannel(),N=null,m=v=>{iS=v.args,w.debug("[useReviewScreenshots] Args updated for story:",v.storyId,"args:",v.args),N&&clearTimeout(N),N=setTimeout(()=>{w.debug("[useReviewScreenshots] Story args changed, refreshing screenshot"),p()},500)};return L.on(nS,m),()=>{L.off(nS,m),N&&clearTimeout(N)}},[p]),oi(()=>{let L=Hm.getChannel(),N=!1,m=null,v=()=>{w.debug("[useReviewScreenshots] FORCE_REMOUNT detected, showing Storybook loader"),N=!0,i(!0)},k=()=>{N&&(w.debug("[useReviewScreenshots] STORY_RENDERED after remount, waiting for styles to settle..."),m&&clearTimeout(m),m=setTimeout(()=>{N=!1,w.debug("[useReviewScreenshots] Refreshing Storybook screenshot after HMR (preserving Figma)"),g()},500))};return L.on(oS,v),L.on(rS,k),()=>{L.off(oS,v),L.off(rS,k),m&&clearTimeout(m)}},[g]),oi(()=>{let L=Hm.getChannel(),N=async m=>{if(!m?.snapshot?.html){w.debug("[useReviewScreenshots] DOM mutated but no snapshot available");return}w.debug("[useReviewScreenshots] DOM mutated, capturing snapshot screenshot"),i(!0);try{let v=kt.getState().currentStoryId,k=await fetch("/__uicopilot/screenshot-snapshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...m.snapshot,storyId:v})});if(k.ok){let E=await k.json();if(E.screenshot){x(E.screenshot);let h=kt.getState().currentStoryId;if(h){let b=Yn.get(h);b?b.storybookImageUrl=E.screenshot:Yn.set(h,{storybookImageUrl:E.screenshot,figmaImageUrl:null})}}}else w.error("[useReviewScreenshots] Snapshot screenshot failed:",await k.text())}catch(v){w.error("[useReviewScreenshots] Snapshot screenshot error:",v)}finally{i(!1)}};return L.on("UICOPILOT/STORY_DOM_MUTATED",N),()=>{L.off("UICOPILOT/STORY_DOM_MUTATED",N)}},[]);let O=$m((L,N,m)=>{w.debug("[useReviewScreenshots] setFigmaImageDirect called - bypassing load"),lS(L,N,m),M(m),r(!1),u.current=L},[M]);return{isLoadingScreenshots:e,isLoadingFigma:n,isLoadingStorybook:o,screenshotError:a,refreshScreenshots:p,refreshStorybookOnly:g,setFigmaImageDirect:O}}});function az(){return!K().startsWith("http://localhost")}function sz(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 cS(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=sz(o,t,n);return r.set(o,i),i})}async function lz(){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:a=>{a.querySelectorAll("style").forEach(u=>{let c=u.textContent||"";/(?:color|oklch|oklab|lab|lch)\(/.test(c)&&(u.textContent=cS(c,o,r))});let s=Array.from(o.styleSheets);a.querySelectorAll('link[rel="stylesheet"]').forEach(u=>{let c=u.href,l=s.find(p=>p.href===c);if(l)try{let p="";for(let g of Array.from(l.cssRules))p+=g.cssText+`
|
|
13
13
|
`;if(/(?:color|oklch|oklab|lab|lch)\(/.test(p)){let g=a.createElement("style");g.textContent=cS(p,o,r),u.replaceWith(g)}}catch{}})}})).toDataURL("image/png")}function cz(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 uz(e,t){w.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 Q(`${iz}/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 dz(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),a=r.slice(o+1);typeof a=="string"&&(a==="!true"?a=!0:a==="!false"?a=!1:!isNaN(Number(a))&&a!==""?a=Number(a):a=decodeURIComponent(a.replace(/\+/g," "))),t[i]=a}return t}function pz(e){let t=new URLSearchParams(window.location.search),n=e;if(n||(n=(t.get("path")||"").replace("/story/","").replace("/docs/",""),w.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}`,a=Ca();if(!a||Object.keys(a).length===0){let s=t.get("args");s&&(a=dz(s),w.debug("[Screenshot] Parsed args from URL:",a))}if(a&&Object.keys(a).length>0){let s=cz(a);i+=`&args=${s}`,w.debug("[Screenshot] Using URL with current args:",i)}else w.debug("[Screenshot] No current args, using default URL:",i);return i}async function gz(e){try{let t=await fetch(`/__uicopilot/screenshot?storyId=${encodeURIComponent(e)}`);if(t.status===501)return w.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 w.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 ou(e){let t=e?.storyId||fz();if(t){let n=Wm.get(t);if(n)return w.debug("[Screenshot] Reusing in-flight capture for",t),n;let r=uS(t,e).finally(()=>{Wm.delete(t)});return Wm.set(t,r),r}return uS(void 0,e)}async function uS(e,t){try{if(e){let n=await gz(e);if(n)return n}if(!az()){let n=pz(t?.storyId);return await uz(n,{...t,selector:"#storybook-root > *"})}return w.info("[Screenshot] Using client-side capture (html2canvas fallback)"),await lz()}catch(n){throw w.error("Error capturing screenshot:",n),new Error(`Failed to capture screenshot: ${n instanceof Error?n.message:"Unknown error"}`)}}function fz(){return(new URLSearchParams(window.location.search).get("path")||"").replace("/story/","").replace("/docs/","")||void 0}var iz,Wm,Vm=$(()=>{"use strict";De();Ia();Ue();ut();iz=K();Wm=new Map});function er(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,a=i?parseFloat(i):1;return a<1?`rgba(${n}, ${r}, ${o}, ${a})`:`#${[n,r,o].map(u=>parseInt(u).toString(16).padStart(2,"0")).join("")}`}function pr(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 dS(e){let t=e.ownerDocument,r=(t.defaultView||window).getComputedStyle(e);if("fonts"in t){let I=r.fontSize||"16px",S=r.fontWeight||"400";if(r.fontFamily.includes("Roboto")){let x=t.fonts.check(`${S} ${I} Roboto`);if(w.debug("[computedStyles] Roboto check:",{cssFamily:r.fontFamily,robotoLoaded:x,fontWeight:S,fontSize:I,isIframe:t!==document,fontStatus:Array.from(t.fonts).map(M=>({family:M.family,status:M.status}))}),x)return"Roboto"}}let o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",a=t.createElement("canvas").getContext("2d");if(!a)return"unknown";let s=r.fontSize,u=r.fontWeight,c=r.fontStyle,l=r.fontFamily.split(",").map(I=>I.trim().replace(/['"]/g,"")),p=["Arial","Helvetica","Helvetica Neue","Times New Roman","Georgia","Courier New","Verdana","Tahoma","Trebuchet MS","sans-serif","serif","monospace"],g=[...new Set([...l,...p])];a.font=`${c} ${u} ${s} monospace`;let d=a.measureText(o).width,f="unknown",y=new Map;for(let I of g){a.font=`${c} ${u} ${s} "${I}", monospace`;let S=a.measureText(o).width;if(y.set(I,S),S!==d){a.font=`${c} ${u} ${s} "${I}"`;let x=a.measureText(o).width;a.font=`${c} ${u} ${s} ${r.fontFamily}`;let M=a.measureText(o).width;if(Math.abs(x-M)<.1){f=I;break}}}return w.debug("[computedStyles] Font detection:",{declared:r.fontFamily,detected:f,declaredFonts:l,fontWidths:Array.from(y.entries()),isIframe:t!==document}),f}var Xs=$(()=>{"use strict";Ue()});function Ta(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 Gm(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e);return w.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:er(n.color),backgroundColor:er(n.backgroundColor),borderColor:er(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:dS(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 qm(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 a=i.cssRules||i.rules;if(!a)continue;for(let s of Array.from(a))if(s.type===1){let u=s;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){w.error("Error extracting declared styles:",r)}return n}var iu=$(()=>{"use strict";Ue();Xs()});function mz(e){let t=[],n=new Set,r=pS.join(", "),o=e.querySelectorAll(r);for(let i of Array.from(o)){let a=`${i.tagName.toLowerCase()}.${i.className}`;n.has(a)||(n.add(a),t.push(i))}if(pS.includes(e.tagName.toLowerCase())){let i=`${e.tagName.toLowerCase()}.${e.className}`;n.has(i)||t.unshift(e)}return t}function hz(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:Ta(r,i),tagName:r,className:i,styles:{fontSize:n.fontSize,fontFamily:Ks(n.fontFamily),fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,color:er(n.color),textAlign:n.textAlign,textTransform:n.textTransform}}}function xz(e,t=2){let n=[e],r=new Set,o=a=>{let s=a.className;return typeof s=="string"?s:s?.baseVal||""};r.add(`${e.tagName}.${o(e)}`);function i(a,s){if(s>=t)return;let u=Array.from(a.children);for(let c of u){let l=c.tagName.toLowerCase();if(["script","style","link","meta","br","hr"].includes(l))continue;let p=`${c.tagName}.${o(c)}`;r.has(p)||(r.add(p),n.push(c),i(c,s+1))}}return i(e,0),n}function yz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r=e.tagName.toLowerCase(),o=e.className,i=typeof o=="string"?o:o?.baseVal||"",a=n.borderWidth!=="0px",s=n.backgroundColor!=="transparent"&&n.backgroundColor!=="rgba(0, 0, 0, 0)",u=n.borderRadius!=="0px",c=n.gap!=="normal"&&n.gap!=="0px";if(!a&&!s&&!u&&!c)return null;let l=n.borderWidth,p=n.borderStyle,g=er(n.borderColor),d=a?`${l} ${p} ${g}`:"none";return{selector:Ta(r,i),className:i,border:d,borderRadius:n.borderRadius,backgroundColor:er(n.backgroundColor),gap:n.gap}}function Js(){w.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=xz(r,2),i=o.map(yz).filter(s=>s!==null);w.debug("[computedStyles] Extracted visual styles from nested elements:",{total:o.length,withVisuals:i.length,elements:i.map(s=>({selector:s.selector,border:s.border,background:s.backgroundColor,borderRadius:s.borderRadius}))});let a=[];try{let s=mz(r);a=s.map(hz),w.debug("[computedStyles] Text elements found:",{count:s.length,elements:a.map(u=>({selector:u.selector,fontSize:u.styles.fontSize,fontWeight:u.styles.fontWeight}))})}catch(s){w.error("[computedStyles] Error extracting text elements:",s)}return{computed:Gm(r),declared:qm(r,t),markup:r.outerHTML,textElementStyles:a,nestedElementStyles:i}}catch(e){return w.error("Error extracting computed styles:",e),null}}var pS,gS=$(()=>{"use strict";Ue();Xs();iu();pS=["input","textarea","button","select","label","span","a","p","h1","h2","h3","h4","h5","h6"]});function Ym(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 wz(e,t,n){if(!(e==="0px"||t==="none"))return`${e} ${t} ${n}`}function vz(e){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e),r={},o=er(n.backgroundColor);pr("backgroundColor",o)||(r.backgroundColor=o);let i=wz(n.borderWidth,n.borderStyle,er(n.borderColor));i&&(r.border=i),pr("borderRadius",n.borderRadius)||(r.borderRadius=n.borderRadius),pr("boxShadow",n.boxShadow)||(r.boxShadow=n.boxShadow),pr("opacity",n.opacity)||(r.opacity=n.opacity);let a=e.tagName.toLowerCase(),s=["svg","circle","rect","ellipse","line","polyline","polygon","path","text","tspan","g","use","defs","clipPath","mask"];if(e instanceof SVGElement||s.includes(a)){for(let I=0;I<e.attributes.length;I++){let S=e.attributes[I];if(["class","style","id","xmlns","xmlns:xlink"].includes(S.name))continue;let x=S.name.replace(/-([a-z])/g,(z,O)=>O.toUpperCase()),M=S.value.startsWith("rgb")?er(S.value):S.value;x==="d"&&M.length>100?r[x]=M.substring(0,100)+"...":r[x]=M}let d=n.getPropertyValue("fill"),f=n.getPropertyValue("stroke");if(d&&d!=="none"&&(r.fill=d.startsWith("rgb")?er(d):d),f&&f!=="none"&&(r.stroke=f.startsWith("rgb")?er(f):f),["circle","ellipse","rect","path","line","polyline","polygon"].includes(a)){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=bz.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=er(n.color),pr("letterSpacing",n.letterSpacing)||(r.letterSpacing=n.letterSpacing),pr("textAlign",n.textAlign)||(r.textAlign=n.textAlign)),r.display=n.display;let p=Ym(n.paddingTop,n.paddingRight,n.paddingBottom,n.paddingLeft);pr("padding",p)||(r.padding=p);let g=Ym(n.marginTop,n.marginRight,n.marginBottom,n.marginLeft);return pr("margin",g)||(r.margin=g),pr("gap",n.gap)||(r.gap=n.gap),(n.display==="flex"||n.display==="inline-flex")&&(pr("flexDirection",n.flexDirection)||(r.flexDirection=n.flexDirection),pr("justifyContent",n.justifyContent)||(r.justifyContent=n.justifyContent),pr("alignItems",n.alignItems)||(r.alignItems=n.alignItems)),r.width||(r.width=n.width),r.height||(r.height=n.height),r}function fS(e){let t=1;for(let n of e.children)t+=fS(n);return t}function mS(e,t=4){function n(o,i){let a=o.tagName.toLowerCase(),s=o.className,u=typeof s=="string"?s:s?.baseVal||"",c=o.id||void 0,l=o.getAttribute("role")||void 0,p;for(let y of Array.from(o.childNodes))if(y.nodeType===Node.TEXT_NODE){let I=y.textContent?.trim();if(I){p=I.length>50?I.substring(0,50)+"...":I;break}}let g=a;c?g=`${a}#${c}`:u&&(g=Ta(a,u));let d=vz(o),f=[];if(i<t){let y=Array.from(o.children);for(let I of y){let S=I.tagName.toLowerCase();if(["script","style","link","meta","br","hr","noscript"].includes(S))continue;let M=(I.ownerDocument.defaultView||window).getComputedStyle(I);M.display==="none"||M.visibility==="hidden"||f.push(n(I,i+1))}}return{selector:g,tagName:a,className:u,id:c,role:l,textContent:p,styles:d,children:f}}w.debug("[computedStyles] Extracting DOM tree with maxDepth:",t);let r=n(e,0);return w.debug("[computedStyles] DOM tree extracted:",{rootSelector:r.selector,childrenCount:r.children.length,totalNodes:fS(r)}),r}function Qs(e=4){w.debug("[extractStoryDOMTree] Starting DOM tree extraction...");try{let t=document.getElementById("storybook-preview-iframe");if(w.debug("[extractStoryDOMTree] iframe found:",!!t),!t)throw new Error("Storybook preview iframe not found");if(w.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(w.debug("[extractStoryDOMTree] storyRoot found:",!!n),!n)throw new Error("Story root element not found");let r=n.firstElementChild;if(w.debug("[extractStoryDOMTree] componentElement found:",!!r,r?.tagName),!r)throw new Error("Component element not found in story root");let o=mS(r,e);return w.debug("[extractStoryDOMTree] DOM tree extracted successfully:",{selector:o.selector,childrenCount:o.children.length}),o}catch(t){return w.error("[extractStoryDOMTree] Error extracting DOM tree:",t),null}}var bz,hS=$(()=>{"use strict";Ue();Xs();iu();bz=["input","textarea","button","select","label","span","a","p","h1","h2","h3","h4","h5","h6"]});var au=$(()=>{"use strict";Xs();iu();gS();hS()});var US=Fr((fse,HS)=>{"use strict";HS.exports={compareTwoStrings:$S,findBestMatch:Gz};function $S(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),a=n.has(i)?n.get(i)+1:1;n.set(i,a)}let r=0;for(let o=0;o<t.length-1;o++){let i=t.substring(o,o+2),a=n.has(i)?n.get(i):0;a>0&&(n.set(i,a-1),r++)}return 2*r/(e.length+t.length-2)}function Gz(e,t){if(!qz(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 a=t[i],s=$S(e,a);n.push({target:a,rating:s}),s>n[r].rating&&(r=i)}let o=n[r];return{ratings:n,bestMatch:o,bestMatchIndex:r}}function qz(e,t){return!(typeof e!="string"||!Array.isArray(t)||!t.length||t.find(function(n){return typeof n!="string"}))}});var c7=Fr((O5e,l7)=>{"use strict";var o7=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,eV=/\n/g,tV=/^\s*/,nV=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,rV=/^:\s*/,oV=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,iV=/^[;\s]*/,aV=/^\s+|\s+$/g,sV=`
|
|
14
|
-
`,i7="/",a7="*",Ki="",lV="comment",cV="declaration";function uV(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(f){var y=f.match(eV);y&&(n+=y.length);var I=f.lastIndexOf(sV);r=~I?f.length-I:r+f.length}function i(){var f={line:n,column:r};return function(y){return y.position=new a(f),c(),y}}function a(f){this.start=f,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function s(f){var y=new Error(t.source+":"+n+":"+r+": "+f);if(y.reason=f,y.filename=t.source,y.line=n,y.column=r,y.source=e,!t.silent)throw y}function u(f){var y=f.exec(e);if(y){var I=y[0];return o(I),e=e.slice(I.length),y}}function c(){u(tV)}function l(f){var y;for(f=f||[];y=p();)y!==!1&&f.push(y);return f}function p(){var f=i();if(!(i7!=e.charAt(0)||a7!=e.charAt(1))){for(var y=2;Ki!=e.charAt(y)&&(a7!=e.charAt(y)||i7!=e.charAt(y+1));)++y;if(y+=2,Ki===e.charAt(y-1))return s("End of comment missing");var I=e.slice(2,y-2);return r+=2,o(I),e=e.slice(y),r+=2,f({type:lV,comment:I})}}function g(){var f=i(),y=u(nV);if(y){if(p(),!u(rV))return s("property missing ':'");var I=u(oV),S=f({type:cV,property:s7(y[0].replace(o7,Ki)),value:I?s7(I[0].replace(o7,Ki)):Ki});return u(iV),S}}function d(){var f=[];l(f);for(var y;y=g();)y!==!1&&(f.push(y),l(f));return f}return c(),d()}function s7(e){return e?e.replace(aV,Ki):Ki}l7.exports=uV});var u7=Fr(Sl=>{"use strict";var dV=Sl&&Sl.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Sl,"__esModule",{value:!0});Sl.default=gV;var pV=dV(c7());function gV(e,t){let n=null;if(!e||typeof e!="string")return n;let r=(0,pV.default)(e),o=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;let{property:a,value:s}=i;o?t(a,s,i):s&&(n=n||{},n[a]=s)}),n}});var p7=Fr(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.camelCase=void 0;var fV=/^--[a-zA-Z0-9_-]+$/,mV=/-([a-z])/g,hV=/^[^-]+$/,xV=/^-(webkit|moz|ms|o|khtml)-/,yV=/^-(ms)-/,bV=function(e){return!e||hV.test(e)||fV.test(e)},wV=function(e,t){return t.toUpperCase()},d7=function(e,t){return"".concat(t,"-")},vV=function(e,t){return t===void 0&&(t={}),bV(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(yV,d7):e=e.replace(xV,d7),e.replace(mV,wV))};dd.camelCase=vV});var f7=Fr((f5,g7)=>{"use strict";var SV=f5&&f5.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},kV=SV(u7()),CV=p7();function g5(e,t){var n={};return!e||typeof e!="string"||(0,kV.default)(e,function(r,o){r&&o&&(n[(0,CV.camelCase)(r,t)]=o)}),n}g5.default=g5;g7.exports=g5});var HI=Fr((fve,$I)=>{"use strict";var Bd=Object.prototype.hasOwnProperty,OI=Object.prototype.toString,LI=Object.defineProperty,BI=Object.getOwnPropertyDescriptor,zI=function(t){return typeof Array.isArray=="function"?Array.isArray(t):OI.call(t)==="[object Array]"},DI=function(t){if(!t||OI.call(t)!=="[object Object]")return!1;var n=Bd.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Bd.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var o;for(o in t);return typeof o>"u"||Bd.call(t,o)},NI=function(t,n){LI&&n.name==="__proto__"?LI(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},_I=function(t,n){if(n==="__proto__")if(Bd.call(t,n)){if(BI)return BI(t,n).value}else return;return t[n]};$I.exports=function e(){var t,n,r,o,i,a,s=arguments[0],u=1,c=arguments.length,l=!1;for(typeof s=="boolean"&&(l=s,s=arguments[1]||{},u=2),(s==null||typeof s!="object"&&typeof s!="function")&&(s={});u<c;++u)if(t=arguments[u],t!=null)for(n in t)r=_I(s,n),o=_I(t,n),s!==o&&(l&&o&&(DI(o)||(i=zI(o)))?(i?(i=!1,a=r&&zI(r)?r:[]):a=r&&DI(r)?r:{},NI(s,{name:n,newValue:e(l,a,o)})):typeof o<"u"&&NI(s,{name:n,newValue:o}));return s}});import Ei from"react";import{addons as Xd,types as zx,experimental_getStatusStore as Dx}from"storybook/manager-api";import{AddonPanel as EQ}from"storybook/internal/components";import{styled as RQ}from"storybook/theming";import{styled as Zt}from"storybook/theming";var G="#ea580c",Xo="#c2410c",Zd="#ff6b35",Nx="#A259FF",_x="#8a3de8",Ox=G,$x="#d1d5db",Xl="#7c3aed",Ye={red:"#ef4444",amber:"#f59e0b",green:"#16a34a",redText:"#b91c1c",amberText:"#b45309",greenText:"#16a34a",criticalRail:"#dc2626",criticalLabel:"#dc2626",majorLabel:"#f59e0b",minorLabel:"#f59e0b",minorRail:"#fbbf24"},Hx={color:{text:"#1d4ed8",bg:"rgba(59, 130, 246, 0.1)",border:"rgba(59, 130, 246, 0.25)"},spacing:{text:"#c2410c",bg:"rgba(249, 115, 22, 0.1)",border:"rgba(249, 115, 22, 0.25)"},typography:{text:"#be185d",bg:"rgba(236, 72, 153, 0.1)",border:"rgba(236, 72, 153, 0.25)"},border:{text:"#047857",bg:"rgba(16, 185, 129, 0.1)",border:"rgba(16, 185, 129, 0.25)"},layout:{text:"#0f766e",bg:"rgba(20, 184, 166, 0.1)",border:"rgba(20, 184, 166, 0.25)"},sizing:{text:"#6d28d9",bg:"rgba(139, 92, 246, 0.1)",border:"rgba(139, 92, 246, 0.25)"}},ep={spec:"#c2410c",ai:"#6d28d9"},Z={card:"#ffffff",green:"#10b981",border:"#e5e7eb",track:"#f1f5f9",muted:"#6b7280",locked:"#9ca3af",text:"#111827",subText:"#374151",formBg:"#fafafa",lockedBtnBg:"#f3f4f6",calloutBg:"#fffbeb",calloutText:"#b45309",accentTint:"#fff7ed"},Ri={pillBg:"#fff7ed",pillBorder:"#f5d0b5",iconFrom:"#d97706",iconTo:Xo,badgeBg:"#fef3c7",badgeText:"#92400e"};var Ux=Zt.div(({theme:e})=>({fontFamily:e.typography.fonts.base,height:"100%",display:"flex",flexDirection:"column",backgroundColor:e.background.content,color:e.color.defaultText})),jx=Zt.div(({theme:e})=>({flex:1,overflow:"auto",padding:"6px 12px 12px",backgroundColor:e.background.app})),Jl=Zt.div({marginBottom:"20px"}),Ql=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})),cs=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*2,backgroundColor:e.input.background,color:e.color.defaultText,"&:focus":{outline:"none",borderColor:e.color.secondary,boxShadow:`0 0 0 2px ${e.color.secondary}20`}})),ar=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*2,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"}})),Vx=Zt(ar)(({theme:e})=>({width:"auto",padding:`${e.layoutMargin*.6}px 28px ${e.layoutMargin*.6}px ${e.layoutMargin}px`,fontSize:e.typography.size.s1})),Zl=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*2,cursor:"pointer",transition:"all 0.15s","&:disabled":{opacity:.5,cursor:"not-allowed"}}),Ao=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:e.color.secondary,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),Qt=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:G,color:e.color.inverseText,boxShadow:`0 2px 4px ${G}4d`,"&:hover:not(:disabled)":{backgroundColor:Xo,transform:"translateY(-1px)",boxShadow:`0 4px 8px ${G}66`}})),fo=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,color:e.color.defaultText,"&:hover:not(:disabled)":{backgroundColor:e.background.hoverable}})),Wx=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:e.color.negative,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),br=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"}})),tp=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"}})),Jo=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}})),Qo=Zt(cs)(({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"})),NQ=Zt.div(({theme:e})=>({padding:`${e.layoutMargin*1.6}px`,borderRadius:e.appBorderRadius*2.5,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),Gx=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})),_Q=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})),np=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})),OQ=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%)"}}})),qx=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}}),$Q=Zt.div(({theme:e})=>({padding:"40px 20px",textAlign:"center",color:e.color.mediumdark})),HQ=Zt.div(({theme:e})=>({fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,marginBottom:`${e.layoutMargin*.8}px`,color:e.color.defaultText})),UQ=Zt.div(({theme:e})=>({fontSize:e.typography.size.s2,color:e.color.mediumdark}));import st,{useState as KJ,useEffect as yT}from"react";import{styled as rr}from"storybook/theming";import Yx from"react";var rp=({header:e,children:t,footer:n})=>Yx.createElement(Ux,null,e,Yx.createElement(jx,null,t),n);import KT from"react";import{styled as XT}from"storybook/theming";var JT=XT.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})),op=({toolbar:e})=>KT.createElement(JT,null,e);import QQ from"react";import{styled as ec}from"storybook/theming";var tZ=ec.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})),nZ=ec.div({display:"flex",flex:1}),rZ=ec(Jo)(({theme:e,disabled:t})=>({padding:"6px 12px",...t?{color:e.color.mediumlight,cursor:"not-allowed",opacity:.5,"&:hover":{}}:{}})),oZ=ec.div({display:"flex",gap:"8px",alignItems:"center"});import yt,{useState as Qc,useCallback as zm,useEffect as Dm,useRef as zB}from"react";import{styled as Sn}from"storybook/theming";import ke from"react";var Kx=()=>ke.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"},ke.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),ke.createElement("circle",{cx:"12",cy:"12",r:"3"})),us=()=>ke.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"},ke.createElement("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),ke.createElement("circle",{cx:"12",cy:"7",r:"4"})),Mr={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"},ds=()=>ke.createElement("svg",{...Mr},ke.createElement("circle",{cx:"11",cy:"11",r:"8"}),ke.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),Xx=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M18.84 12.25l1.72-1.71a5 5 0 0 0-7.07-7.07l-1.71 1.71"}),ke.createElement("path",{d:"M5.17 11.75l-1.71 1.71a5 5 0 0 0 7.07 7.07l1.71-1.71"}),ke.createElement("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),ke.createElement("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),ke.createElement("line",{x1:"16",y1:"22",x2:"16",y2:"19"}),ke.createElement("line",{x1:"22",y1:"16",x2:"19",y2:"16"})),Jx=()=>ke.createElement("svg",{...Mr},ke.createElement("polyline",{points:"23 4 23 10 17 10"}),ke.createElement("polyline",{points:"1 20 1 14 7 14"}),ke.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"}));var ip=()=>ke.createElement("svg",{...Mr},ke.createElement("circle",{cx:"12",cy:"12",r:"3"}),ke.createElement("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})),tc=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3z"}),ke.createElement("path",{d:"M19 14l.7 1.9L21.6 17l-1.9.7L19 19.6l-.7-1.9L16.4 17l1.9-.7L19 14z"})),Qx=()=>ke.createElement("svg",{...Mr},ke.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),ke.createElement("polyline",{points:"12 5 19 12 12 19"})),Zx=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72Z"}),ke.createElement("path",{d:"m14 7 3 3"}),ke.createElement("path",{d:"M5 6v4"}),ke.createElement("path",{d:"M19 14v4"}),ke.createElement("path",{d:"M10 2v2"}),ke.createElement("path",{d:"M7 8H3"}),ke.createElement("path",{d:"M21 16h-4"}),ke.createElement("path",{d:"M11 3H9"})),ey=()=>ke.createElement("svg",{...Mr},ke.createElement("polyline",{points:"6 9 12 15 18 9"})),ty=()=>ke.createElement("svg",{...Mr},ke.createElement("polyline",{points:"20 6 9 17 4 12"})),ny=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M7 10v12"}),ke.createElement("path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z"})),ry=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M3 3v5h5"}),ke.createElement("path",{d:"M3.05 13A9 9 0 1 0 6 5.3L3 8"}),ke.createElement("path",{d:"M12 7v5l4 2"})),ap=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5a2 2 0 0 0 2 2h1"}),ke.createElement("path",{d:"M16 3h1a2 2 0 0 1 2 2v5a2 2 0 0 0 2 2 2 2 0 0 0-2 2v5a2 2 0 0 1-2 2h-1"})),Fo=()=>ke.createElement("svg",{width:"10",height:"15",viewBox:"0 0 38 57","aria-label":"Figma",role:"img"},ke.createElement("path",{fill:"#1abcfe",d:"M19 28.5a9.5 9.5 0 1 1 19 0 9.5 9.5 0 0 1-19 0z"}),ke.createElement("path",{fill:"#0acf83",d:"M0 47.5A9.5 9.5 0 0 1 9.5 38H19v9.5a9.5 9.5 0 1 1-19 0z"}),ke.createElement("path",{fill:"#ff7262",d:"M19 0v19h9.5a9.5 9.5 0 1 0 0-19H19z"}),ke.createElement("path",{fill:"#f24e1e",d:"M0 9.5A9.5 9.5 0 0 0 9.5 19H19V0H9.5A9.5 9.5 0 0 0 0 9.5z"}),ke.createElement("path",{fill:"#a259ff",d:"M0 28.5A9.5 9.5 0 0 0 9.5 38H19V19H9.5A9.5 9.5 0 0 0 0 28.5z"})),sp=()=>ke.createElement("svg",{width:"13",height:"13",viewBox:"0 0 64 64","aria-label":"Storybook",role:"img"},ke.createElement("path",{fill:"#ff4785",d:"M8 4l1.5 56L56 62l2-58z"}),ke.createElement("path",{fill:"#fff",d:"M40.5 18.2c-.2 1.5-3.6 2.4-7.6 2.1-4-.3-7-1.6-6.9-3.1.1-1.4 2.4-2 5.3-2 .8 0 1.2-.4 1.2-1.1 0-1.6-3.6-2.6-7-2.6-7 0-10.6 3.8-10.6 7.6 0 6.6 8.9 7 11.4 7.2 5.5.4 6.9 1.5 6.9 3 0 1.6-2.1 2.6-5 2.6-3.8 0-5.6-1.4-5.7-3.1 0-.6-.4-1-1-1l-3.5.1c-.6 0-1 .4-1 1 .2 4.7 4.3 7.6 11.3 7.6 6.7 0 11.2-3.1 11.2-7.6 0-5.7-5-7-11.1-7.5-4.2-.3-6.5-.6-6.5-2 0-1 1.8-1.8 4.4-1.8 2.5 0 4.2.6 4.4 1.7.1.6.5 1 1.1 1l3.5-.1c.6-.1 1-.5 1-1.1z"}));import Pe,{useEffect as _v}from"react";import{styled as Ct}from"storybook/theming";Se();De();Ue();ut();var Ov=Ct.div({position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e4}),$v=Ct.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})),WL=Ct.div({display:"flex",alignItems:"center",gap:"12px",padding:"16px 16px 12px"}),GL=Ct.div({width:"36px",height:"36px",borderRadius:"50%",backgroundColor:G,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:"14px",fontWeight:700,flexShrink:0}),qL=Ct.div({display:"flex",flexDirection:"column",gap:"4px"}),YL=Ct.div(({theme:e})=>({fontSize:"15px",fontWeight:600,color:e.color.defaultText,lineHeight:1.2})),KL=Ct.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"}),XL=Ct.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px 8px",fontSize:"14px",color:e.color.defaultText})),JL=Ct.span(({theme:e})=>({color:e.textMutedColor,fontSize:"13px"})),QL=Ct.span(({theme:e})=>({color:e.color.defaultText,fontSize:"15px",fontWeight:600})),ZL=Ct.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"})),eB=Ct.div(({percent:e})=>({height:"100%",width:`${Math.min(100,Math.max(0,e))}%`,background:`linear-gradient(90deg, #f59e0b 0%, ${G} 100%)`,transition:"width 0.3s ease"})),tB=Ct.div(({theme:e})=>({padding:"0 16px 14px",fontSize:"12px",color:e.textMutedColor})),nB=Ct.div(({theme:e})=>({height:"1px",backgroundColor:e.appBorderColor})),rB=Ct.button({width:"100%",padding:"14px 16px",background:"transparent",border:"none",color:G,fontSize:"14px",fontWeight:500,textAlign:"left",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.03)"}}),Hv=Ct.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}})),oB=Ct.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px",borderBottom:`1px solid ${e.appBorderColor}`})),iB=Ct.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"10px",color:e.color.defaultText,fontSize:"14px",fontWeight:500})),aB=Ct.div(({theme:e})=>({width:"32px",height:"32px",borderRadius:"50%",backgroundColor:G,display:"flex",alignItems:"center",justifyContent:"center",color:e.color.inverseText,fontSize:"14px",fontWeight:600})),sB=Ct.div({display:"flex",gap:"8px"}),Uv=Ct(br)({fontSize:"18px"}),lB=Ct.div({padding:"20px 16px"}),cB=Ct.div(({theme:e})=>({padding:"16px",borderRadius:"8px",background:"linear-gradient(135deg, #10B981 0%, #3B82F6 100%)",marginBottom:"16px",color:"#fff"})),uB=Ct.div({fontSize:"12px",fontWeight:500,opacity:.9,marginBottom:"4px"}),dB=Ct.div({fontSize:"28px",fontWeight:700}),pB=Ct.div({fontSize:"11px",opacity:.8,marginTop:"4px"}),gB=Ct.div(({theme:e})=>({padding:"16px",borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px"})),fB=Ct.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),mB=Ct.div({display:"flex",alignItems:"center",gap:"8px"}),hB=Ct.span(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),xB=Ct.span(({theme:e})=>({fontSize:"10px",fontWeight:600,padding:"2px 6px",borderRadius:"4px",backgroundColor:G,color:e.color.inverseText})),yB=Ct.button(({theme:e})=>({background:"none",border:"none",color:G,fontSize:"12px",cursor:"pointer","&:hover":{textDecoration:"underline"}})),bB=Ct.div(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),wB=Ct.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"?G:e.background.hoverable,color:t==="primary"?e.color.inverseText:e.color.defaultText,"&:hover":{opacity:.9}})),vB=30*1e3,jv=({onClose:e})=>{let{sessionToken:t,resetAuth:n,usageData:r,usageLastFetched:o,setUsageData:i}=he(),{featureFlags:a}=ue(),s=a.showCosts,u=r,c=!r&&t,l=async(f=!1)=>{if(!t)return;let y=o&&Date.now()-o<vB;if(!(!f&&y&&r))try{let I=K(),S=await Q(`${I}/api/addon/account`,{headers:{Authorization:`Bearer ${t}`}});if(S.ok){let x=await S.json();i(x)}}catch(I){w.error("Failed to fetch usage:",I)}};_v(()=>{l()},[t]),_v(()=>{let f=()=>{document.visibilityState==="visible"&&(w.debug("[TokenUsageModal] Tab visible, refreshing balance..."),l(!0))};return document.addEventListener("visibilitychange",f),()=>document.removeEventListener("visibilitychange",f)},[t]);let p=async()=>{if(t){let f=K();try{await fetch(`${f}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${t}`}})}catch{}}n(),e()},g=()=>{let f=K();window.open(`${f}/pricing`,"_blank")},d=()=>{let f=K();window.open(`${f}/pricing#add-credits`,"_blank")};if(t&&!s&&!c){let f=Math.floor(u?.creditBalance??0),I=Math.max(f,10),S=Math.max(0,I-f),x=I>0?f/I*100:0;return Pe.createElement(Pe.Fragment,null,Pe.createElement(Ov,{onClick:e}),Pe.createElement($v,{onClick:M=>M.stopPropagation(),style:{width:"320px"}},Pe.createElement(WL,null,Pe.createElement(GL,null,(u?.name||u?.email||"U")[0].toUpperCase()),Pe.createElement(qL,null,Pe.createElement(YL,null,u?.name||u?.email||"Your account"),Pe.createElement(KL,null,(u?.plan||"FREE").toUpperCase())),Pe.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:"2px"}},Pe.createElement(Hv,{onClick:p,title:"Sign out",style:{position:"static"}},Pe.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Pe.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),Pe.createElement("polyline",{points:"16 17 21 12 16 7"}),Pe.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),Pe.createElement(Hv,{onClick:e,title:"Close",style:{position:"static"}},"\xD7"))),Pe.createElement(XL,null,Pe.createElement(JL,null,"Credits"),Pe.createElement(QL,null,f," left")),Pe.createElement(ZL,null,Pe.createElement(eB,{percent:x})),Pe.createElement(tB,null,S," used \xB7 ",f," remaining"),Pe.createElement(nB,null),Pe.createElement(rB,{onClick:()=>window.open("mailto:hello@uiparity.com?subject=Credits request","_blank")},"Contact us for credits \u2192")))}return Pe.createElement(Pe.Fragment,null,Pe.createElement(Ov,{onClick:e}),Pe.createElement($v,{onClick:f=>f.stopPropagation()},Pe.createElement(oB,null,Pe.createElement(iB,null,Pe.createElement(aB,null,u?.email?u.email[0].toUpperCase():"U"),Pe.createElement("span",null,u?.email||"Loading...")),Pe.createElement(sB,null,Pe.createElement(Uv,{onClick:p,title:"Sign out"},Pe.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Pe.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),Pe.createElement("polyline",{points:"16 17 21 12 16 7"}),Pe.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),Pe.createElement(Uv,{onClick:e,title:"Close"},"\xD7"))),Pe.createElement(lB,null,c?Pe.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Loading..."):t?Pe.createElement(Pe.Fragment,null,Pe.createElement(cB,null,Pe.createElement(uB,null,"Credit Balance"),Pe.createElement(dB,null,"$",(u?.creditBalance??0).toFixed(2)),Pe.createElement(pB,null,(u?.creditBalance??0)<2?"Low balance - consider topping up":"Pay only for what you use")),Pe.createElement(gB,null,Pe.createElement(fB,null,Pe.createElement(mB,null,Pe.createElement(hB,null,"Current Plan"),Pe.createElement(xB,null,u?.plan||"Free")),Pe.createElement(yB,{onClick:g},"View detail >")),Pe.createElement(bB,null,"~$0.02-0.05 per review depending on complexity"),Pe.createElement(wB,{onClick:d,style:{marginTop:"16px"}},"Add Credits"))):Pe.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Please sign in to view usage"))))};pn();Se();import Sa from"react";import{styled as Vv}from"storybook/theming";De();Se();ut();Ue();var SB=Vv.div({display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}),kB=Vv.span(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark})),Wv=()=>{let{userRole:e,roleOverride:t,setRoleOverride:n,setFeatureFlags:r}=ue(),{sessionToken:o}=he();return e!=="admin"?null:Sa.createElement(SB,null,Sa.createElement(kB,null,"View as:"),Sa.createElement(Vx,{value:t??e,onChange:s=>{let u=s.target.value;if(u===e)n(null),o&&Q(`${K()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(c=>c.json()).then(c=>{let l={enableFixGeneration:!!c.enableFixGeneration,enableFixApply:!!c.enableFixApply,enableAutoMap:!!c.enableAutoMap,enableAutoFigmaLinking:!!c.enableAutoFigmaLinking,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=>w.warn("[RoleSwitcher] Failed to re-fetch flags:",c.message));else{n(u);let c=Us[u];r(c);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(c))}catch{}}},style:{width:"auto",minWidth:"100px"}},Sa.createElement("option",{value:"admin"},"Admin"),Sa.createElement("option",{value:"beta"},"Regular user")),t&&Sa.createElement(qx,{variant:"warning"},"Previewing as"," ",t==="beta"?"regular user":t))};De();Se();ut();import zt,{useState as Vs,useCallback as Bm}from"react";import{styled as eo}from"storybook/theming";var CB="0.5.7",IB=[{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"}],TB=eo.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center"}),EB=eo.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)"})),RB=eo.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px 12px",borderBottom:`1px solid ${e.appBorderColor}`})),AB=eo.h3(({theme:e})=>({margin:0,fontSize:"15px",fontWeight:600,color:e.color.defaultText,display:"flex",alignItems:"center",gap:"8px"})),FB=eo.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}})),PB=eo.div({padding:"16px 20px",display:"flex",flexDirection:"column",gap:"14px"}),MB=eo.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:G}})),Gv=eo.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px 16px",borderTop:`1px solid ${e.appBorderColor}`,gap:"8px"})),qv=eo.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.mediumdark,lineHeight:1.4})),LB=eo.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.negative})),BB=eo.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 Yv({isOpen:e,onClose:t}){let{sessionToken:n,isConnected:r}=he(),{selectedProjectId:o}=Ke(),{currentStoryId:i}=gt(),[a,s]=Vs("other"),[u,c]=Vs(""),[l,p]=Vs(!1),[g,d]=Vs(!1),[f,y]=Vs(null),I=Bm(()=>{c(""),s("other"),d(!1),y(null),p(!1)},[]),S=Bm(()=>{I(),t()},[I,t]),x=Bm(async M=>{if(M.preventDefault(),!u.trim()){y("Please write a message.");return}if(!r||!n){y("Sign in to send feedback.");return}p(!0),y(null);try{let z=await Q(`${K()}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({message:u.trim(),severity:a,projectId:o||void 0,storyId:i||void 0,addonVersion:CB})});if(!z.ok){let O=await z.json().catch(()=>({}));throw new Error(O.error||`Request failed (${z.status})`)}d(!0)}catch(z){y(z instanceof Error?z.message:"Something went wrong")}finally{p(!1)}},[u,a,n,r,o,i]);return e?zt.createElement(TB,{onClick:S},zt.createElement(EB,{onClick:M=>M.stopPropagation()},zt.createElement(RB,null,zt.createElement(AB,null,zt.createElement("span",null,"\u{1F4AC}"),"Send feedback"),zt.createElement(FB,{onClick:S,"aria-label":"Close"},"\xD7")),g?zt.createElement(zt.Fragment,null,zt.createElement(BB,null,zt.createElement("h4",null,"Thanks \u2014 got it."),zt.createElement("p",null,"We read every message. If it's a bug, we'll likely follow up by email.")),zt.createElement(Gv,null,zt.createElement("span",null),zt.createElement(Ao,{onClick:S},"Close"))):zt.createElement("form",{onSubmit:x},zt.createElement(PB,null,zt.createElement(Jl,null,zt.createElement(Ql,{htmlFor:"feedback-severity"},"Type"),zt.createElement(ar,{id:"feedback-severity",value:a,onChange:M=>s(M.target.value),disabled:l},IB.map(M=>zt.createElement("option",{key:M.value,value:M.value},M.label)))),zt.createElement(Jl,null,zt.createElement(Ql,{htmlFor:"feedback-message"},"What happened?"),zt.createElement(MB,{id:"feedback-message",value:u,onChange:M=>c(M.target.value),placeholder:"Tell us what you were doing, what you expected, and what happened.",disabled:l,autoFocus:!0,maxLength:5e3})),zt.createElement(qv,null,"We auto-attach your current story and project so we can reproduce it. No screenshots sent."),f&&zt.createElement(LB,null,f)),zt.createElement(Gv,null,zt.createElement(qv,null,i?`Context: ${i}`:"No story selected"),zt.createElement("div",{style:{display:"flex",gap:"8px"}},zt.createElement(Ao,{type:"button",onClick:S,disabled:l},"Cancel"),zt.createElement(Qt,{type:"submit",disabled:l||!u.trim()},l?"Sending\u2026":"Send")))))):null}Se();De();ut();pn();var DB=Sn.div({display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",gap:"8px"}),NB=Sn.div({display:"inline-flex",alignItems:"center",gap:"6px",flexShrink:0,userSelect:"none"}),_B=Sn.span(({theme:e})=>({width:"20px",height:"20px",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"5px",background:`linear-gradient(135deg, ${Zd} 0%, ${G} 100%)`,color:e.color.lightest,fontSize:"11px",fontWeight:900,letterSpacing:"-0.5px",boxShadow:"0 1px 2px rgba(0,0,0,0.15)"})),OB=Sn.span(({theme:e})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,letterSpacing:"-0.2px",color:e.color.defaultText})),$B=Sn.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark,opacity:.8,marginLeft:"2px"})),HB=Sn.div({display:"flex",alignItems:"center",gap:"6px",flexShrink:0}),UB=Sn.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"999px",fontSize:"10px",fontWeight:e.typography.weight.bold,lineHeight:1.6,color:e.color.mediumdark,backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,userSelect:"none",cursor:"default","& svg":{width:"11px",height:"11px"}})),jB=Sn.div({position:"relative"}),VB=Sn.button(({theme:e})=>({width:"22px",height:"22px",padding:0,background:e.background.app,border:`1px solid ${e.appBorderColor}`,borderRadius:"50%",color:e.color.defaultText,cursor:"pointer",fontSize:"10px",fontWeight:600,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s","&:hover":{backgroundColor:e.background.hoverable}})),WB=Sn.div(({theme:e})=>({position:"absolute",top:"calc(100% + 6px)",right:0,minWidth:"220px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,boxShadow:"0 8px 24px rgba(0,0,0,0.14)",zIndex:1e3,overflow:"hidden",padding:"4px"})),GB=Sn.div(({theme:e})=>({padding:"8px 10px 10px",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"4px"})),qB=Sn.div(({theme:e})=>({fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),YB=Sn.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:"2px"})),Nm=Sn.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",width:"100%",padding:"7px 10px",border:"none",borderRadius:e.appBorderRadius,background:"transparent",color:e.color.defaultText,fontSize:e.typography.size.s2,textAlign:"left",cursor:"pointer",transition:"background 0.12s","&:hover":{backgroundColor:e.background.hoverable}})),KB=Sn.div(({theme:e})=>({height:"1px",margin:"4px 0",backgroundColor:e.appBorderColor})),Kv=Sn.button(({theme:e,isLow:t})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 8px",background:"transparent",border:"none",borderRadius:e.appBorderRadius,color:t?e.color.warning:Ye.green,cursor:"pointer",fontFamily:e.typography.fonts.mono,fontSize:"11px",fontWeight:e.typography.weight.bold,transition:"background 0.15s","&:hover":{backgroundColor:e.background.hoverable}})),Xv=Sn.span(({theme:e,isLow:t})=>({width:"6px",height:"6px",borderRadius:"50%",flexShrink:0,backgroundColor:t?e.color.warning:Ye.green})),XB=Sn.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)"}}}),JB=Sn.button(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",width:"28px",height:"28px",border:"none",borderRadius:e.appBorderRadius,backgroundColor:"transparent",color:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","& svg":{width:"14px",height:"14px"},"&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText}})),QB=Sn.button({position:"fixed",bottom:"20px",right:"20px",width:"48px",height:"48px",borderRadius:"50%",backgroundColor:G,color:"white",border:"none",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"22px",cursor:"pointer",boxShadow:`0 4px 14px ${G}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 ${G}88, 0 3px 6px rgba(0,0,0,0.15)`},"&:active":{transform:"scale(0.96)"}}),ZB=30*1e3,_m=({onOpenSettings:e})=>{let[t,n]=Qc(!1),[r,o]=Qc(!1),[i,a]=Qc(!1),[s,u]=Qc(!1),c=zB(null),{usageData:l,usageLastFetched:p,setUsageData:g,sessionToken:d,resetAuth:f}=he(),{userRole:y,roleOverride:I,featureFlags:S}=ue(),x=I??y,M=!!d&&d.startsWith("uic_anon_"),z=x==="admin"||!!S.enableAiReview;Dm(()=>{(async()=>{if(!(!d||p&&Date.now()-p<ZB&&l)){u(!0);try{let F=K(),C=await Q(`${F}/api/addon/account`,{headers:{Authorization:`Bearer ${d}`}});if(C.ok){let A=await C.json();g(A)}}catch(F){console.error("Failed to fetch balance:",F)}finally{u(!1)}}})()},[d,p,l,g]),Dm(()=>{let h=()=>{document.visibilityState==="visible"&&t&&n(!1)},b=()=>{t&&n(!1)};return document.addEventListener("visibilitychange",h),window.addEventListener("focus",b),()=>{document.removeEventListener("visibilitychange",h),window.removeEventListener("focus",b)}},[t]),Dm(()=>{if(!i)return;let h=F=>{c.current&&!c.current.contains(F.target)&&a(!1)},b=F=>{F.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",h),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",b)}},[i]);let O=zm(()=>{n(!0)},[]),L=zm(()=>{n(!1)},[]),N=zm(async()=>{if(a(!1),d)try{await fetch(`${K()}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${d}`}})}catch{}f()},[d,f]),m=l?.creditBalance??0,v=m<2&&!s,k=l?.email,E=(()=>{if(!k)return"?";let h=k.split("@")[0],b=h.split(/[^a-zA-Z0-9]+/).filter(Boolean);return b.length>=2?(b[0][0]+b[1][0]).toUpperCase():h.slice(0,2).toUpperCase()})();return yt.createElement(DB,null,yt.createElement(NB,null,yt.createElement(_B,{"aria-hidden":!0},"\u21CB"),yt.createElement(OB,null,jt.NAME),yt.createElement($B,null,"v","0.8.1")),yt.createElement(HB,null,M&&yt.createElement(UB,{title:"Guest session \u2014 sign up to save your work"},yt.createElement("span",{"aria-hidden":!0},yt.createElement(us,null)),"Guest"),d&&y==="admin"&&x==="admin"&&yt.createElement(Wv,null),d&&S.showCosts&&z&&yt.createElement(Kv,{onClick:O,isLow:v,title:s?"Loading...":l?v?"Low balance - click to top up":"Credit balance - click for details":"Click to load balance"},s?yt.createElement(XB,null):l?yt.createElement(yt.Fragment,null,yt.createElement(Xv,{isLow:v}),"$",m.toFixed(2)):"..."),d&&!S.showCosts&&l&&z&&yt.createElement(Kv,{onClick:O,isLow:Math.floor(m)<=3,title:`${Math.floor(m)} review credits \u2014 click for details`},yt.createElement(Xv,{isLow:Math.floor(m)<=3}),Math.floor(m)),e&&d&&yt.createElement(JB,{onClick:e,title:"Settings","aria-label":"Settings"},yt.createElement(ip,null)),!M&&yt.createElement(jB,{ref:c},yt.createElement(VB,{title:"Account","aria-label":"Account",onClick:()=>a(h=>!h)},E),i&&yt.createElement(WB,{role:"menu"},yt.createElement(GB,null,yt.createElement(qB,null,k||"Account"),l?.plan&&yt.createElement(YB,null,l.plan," plan")),yt.createElement(Nm,{role:"menuitem",onClick:()=>{a(!1),O()}},yt.createElement("span",{"aria-hidden":!0},yt.createElement(us,null))," ","Account & usage"),e&&yt.createElement(Nm,{role:"menuitem",onClick:()=>{a(!1),e()}},yt.createElement("span",{"aria-hidden":!0},yt.createElement(ip,null))," ","Settings"),yt.createElement(KB,null),yt.createElement(Nm,{role:"menuitem",onClick:N},"Sign out")),t&&yt.createElement(jv,{onClose:L}))),d&&yt.createElement(QB,{onClick:()=>o(!0),title:"Send feedback","aria-label":"Send feedback"},"\u{1F4AC}"),yt.createElement(Yv,{isOpen:r,onClose:()=>o(!1)}))};import Ne,{useEffect as nU,useRef as Zu,useState as rU}from"react";import Xn from"react";Se();Ue();De();ut();pn();import{useState as Zv,useCallback as to,useRef as eS,useEffect as Om}from"react";De();ut();var ez=K(),ka=null;function Jv(e){ka=e}async function Qv(e){if(!ka||!e||e===ka||e.startsWith("uic_anon_"))return null;let t=ka;ka=null;try{let n=await Q(`${ez}/api/anonymous/claim`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({anonymousToken:t})});if(!n.ok)throw new Error(`claim failed: ${n.status}`);let r=await n.json().catch(()=>({}));return typeof r?.claimedProjects=="number"?r.claimedProjects:0}catch(n){throw ka=t,n}}var Nr=K();w.debug("[useAuth] Module loaded, APP_URL:",Nr);var Zc=null,eu=null,Ws=null;function Gs(){Zc&&(clearInterval(Zc),Zc=null),eu&&(clearTimeout(eu),eu=null)}var no=()=>{let e=eS(null),t=eS(null),n=to(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{sessionToken:r,apiKey:o,authMethod:i,deviceCode:a,userCode:s,verificationUri:u,isConnected:c,authError:l,setSessionToken:p,setApiKey:g,setAuthMethod:d,setDeviceCode:f,setUserCode:y,setVerificationUri:I,setPollingInterval:S,setAuthError:x,resetAuth:M}=he(),[z,O]=Zv(!1),[L,N]=Zv(!1),m=to(()=>{Gs(),Ws=null},[]),v=to(P=>{Ws=P,Gs();let _=async()=>{let T=Ws;if(!T){Gs();return}try{let H=await(await fetch(`${Nr}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:T})})).json();H.status==="authorized"&&H.session_token?(w.debug("[useAuth] \u2705 OAuth poll successful! Got token."),Gs(),n(),Ws=null,localStorage.setItem("uicopilot_session_token",H.session_token),p(H.session_token),O(!1)):H.status==="expired"&&(w.debug("[useAuth] OAuth poll_code expired"),Gs(),n(),Ws=null,O(!1))}catch(D){w.error("[useAuth] OAuth poll error:",D)}};Zc=setInterval(_,2e3),eu=setTimeout(_,1e3)},[p,n]);Om(()=>{function P(_){if(!_.origin.startsWith(Nr))return;let T=_.data;if(!T||typeof T!="object")return;let D=T;if(D.type==="UICOPILOT_AUTH_ERROR"){w.debug("[useAuth] Popup reported auth error:",D.step,D.detail),m(),O(!1);let H=typeof D.step=="string"?D.step:"auth",R=typeof D.detail=="string"?D.detail:"Unknown error";x(`${jt.NAME} auth failed (${H}): ${R}`)}else D.type==="UICOPILOT_AUTH_POLL_CODE"&&typeof D.pollCode=="string"&&D.pollCode&&(w.debug("[useAuth] Popup handed us a fresh poll_code, switching"),x(null),v(D.pollCode))}return window.addEventListener("message",P),()=>window.removeEventListener("message",P)},[v,m,x]);let k=to(async()=>{let T=Math.max(0,Math.round((window.screen.width-480)/2)),D=Math.max(0,Math.round((window.screen.height-640)/2)),H=`width=480,height=640,left=${T},top=${D},resizable=yes,scrollbars=yes`,R=null;try{R=window.open("about:blank","uiparity-signin",H)}catch{}try{w.debug("[useAuth] Starting OAuth flow, requesting poll_code...");let te;try{te=await Q(`${Nr}/api/addon/auth/oauth-poll`,{method:"POST"})}catch(ne){let ye=ne instanceof Error&&ne.message.includes("timed out")?`Cannot reach ${jt.NAME} server at ${Nr}. Is the dashboard running?`:`Connection failed: ${Nr} is not responding.`;x(ye),w.error("[useAuth]",ye),R?.close();return}if(!te.ok){let ne=`Cannot reach ${jt.NAME} server. Is the dashboard running?`;x(ne),w.error("[useAuth]",ne),R?.close();return}let{poll_code:j}=await te.json();w.debug("[useAuth] Got poll_code:",j.substring(0,15)+"...");let Y=localStorage.getItem("uicopilot_force_sign_in")==="true";Y&&localStorage.removeItem("uicopilot_force_sign_in");let X=`${Nr}/addon/auth?poll_code=${j}${Y?"&force_sign_in=true":""}`;O(!0),R&&!R.closed?R.location.href=X:window.open(X,"uiparity-signin",H),n(),t.current=setTimeout(()=>{O(!1),m()},9e4),w.debug("[useAuth] Starting OAuth poll for token..."),v(j)}catch(te){w.error("[useAuth] OAuth flow error:",te),x(`Connection failed. Is the dashboard running at ${Nr}?`),O(!1),R?.close()}},[x,v,n,m]),E=to(async()=>{try{let P=await fetch(`${Nr}/api/addon/auth/device`,{method:"POST"});if(!P.ok)throw new Error("Failed to start device code flow");let _=await P.json();f(_.device_code),y(_.user_code),I(_.verification_uri),window.open(_.verification_uri,"_blank"),h(_.device_code,_.interval*1e3)}catch(P){throw w.error("[useAuth] Device code flow error:",P),P}},[f,y,I]),h=to((P,_)=>{w.debug("[useAuth] Starting polling. Device code:",P,"Interval:",_),e.current&&clearInterval(e.current);let T=async()=>{try{let H=await(await fetch(`${Nr}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:P})})).json();H.status==="authorized"?(w.debug("[useAuth] Device code authorization successful!"),e.current&&(clearInterval(e.current),e.current=null),f(null),y(null),I(null),localStorage.setItem("uicopilot_session_token",H.session_token),p(H.session_token),O(!1)):(H.status==="expired"||H.status==="denied")&&(w.debug("[useAuth] Device code expired or denied"),e.current&&(clearInterval(e.current),e.current=null),f(null),y(null),I(null))}catch(D){w.error("[useAuth] Polling error:",D)}};e.current=setInterval(T,_),S(_)},[f,y,I,p,S]),b=to(()=>{e.current&&(clearInterval(e.current),e.current=null),f(null),y(null),I(null),S(null)},[f,y,I,S]),F=to(P=>{g(P),p(P),localStorage.setItem("uicopilot_api_key",P)},[g,p]),C=to(async()=>{if(r)try{await Q(`${Nr}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${r}`}})}catch{}M(),O(!1),e.current&&(clearInterval(e.current),e.current=null),m()},[r,M,m]),A=to(async()=>{N(!0),x(null);try{let P=await Q(`${Nr}/api/anonymous/session`,{method:"POST"});if(!P.ok)throw new Error(`anonymous session ${P.status}`);let _=await P.json();if(!_?.token)throw new Error("anonymous session: no token");p(_.token)}catch{x("Couldn't start a guest session. Please try again.")}finally{N(!1)}},[p,x]),B=to(()=>{r&&r.startsWith("uic_anon_")&&(Jv(r),typeof localStorage<"u"&&localStorage.removeItem("uicopilot_force_sign_in")),k()},[r,k]);return Om(()=>{!r||r.startsWith("uic_anon_")||Qv(r).then(P=>{P!==null&&w.info(`[useAuth] Guest work claimed (${P} project${P===1?"":"s"}).`)}).catch(P=>{w.error("[useAuth] Guest claim failed:",P)})},[r]),Om(()=>()=>{e.current&&clearInterval(e.current),n()},[n]),{sessionToken:r,apiKey:o,authMethod:i,deviceCode:a,userCode:s,verificationUri:u,isConnected:c,authError:l,oauthPending:z,anonPending:L,isAnonymous:!!r&&r.startsWith("uic_anon_"),setAuthMethod:d,startOAuth:k,startAnonymous:A,signUpToSave:B,startDeviceCode:E,cancelDeviceCode:b,saveApiKey:F,logout:C}};Se();Ue();De();ut();import{useCallback as tu}from"react";var qs=K(),Ir=()=>{let{projects:e,selectedProjectId:t,loadingProjects:n,setProjects:r,setSelectedProjectId:o,setLoadingProjects:i,getSelectedProject:a}=Ke(),{sessionToken:s}=he(),u=tu(async()=>{if(!s){w.debug("[useProjects] No session token, skipping fetch");return}try{i(!0),w.debug("[useProjects] Fetching from:",`${qs}/api/projects`);let g=await Q(`${qs}/api/projects`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`}});if(g.ok){let d=await g.json();w.debug("[useProjects] Projects:",d.projects),r(d.projects||[])}else w.error("[useProjects] Failed to fetch projects:",g.status,g.statusText)}catch(g){w.error("[useProjects] Error fetching projects:",g)}finally{i(!1)}},[s,r,i]),c=tu(async g=>{if(!s)throw new Error("Not authenticated");let d=await Q(`${qs}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(g)});if(!d.ok)throw new Error("Failed to create project");let f=await d.json();return await u(),f.project},[s,u]),l=tu(async(g,d)=>{if(!s)throw new Error("Not authenticated");let f={};if(d.name!==void 0&&(f.name=d.name),d.description!==void 0&&(f.description=d.description),d.figmaFileUrl!==void 0&&(f.figmaFileId=d.figmaFileUrl===""?null:d.figmaFileUrl),!(await Q(`${qs}/api/projects/${g}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(f)})).ok)throw new Error("Failed to update project");await u()},[s,u]),p=tu(async g=>{if(!s)throw new Error("Not authenticated");if(!(await Q(`${qs}/api/projects/${g}`,{method:"DELETE",headers:{Authorization:`Bearer ${s}`}})).ok)throw new Error("Failed to delete project");await u(),t===g&&o(null)},[s,t,u,o]);return{projects:e,selectedProjectId:t,selectedProject:a(),loadingProjects:n,setSelectedProjectId:o,fetchProjects:u,createProject:c,updateProject:l,deleteProject:p}};Se();var Ys=()=>{let{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:a,setFigmaFileUrl:s,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:p}=gt();return{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:a,setFigmaFileUrl:s,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:p,openComponentBrowser:()=>a(!0),closeComponentBrowser:()=>a(!1)}};Se();Vm();au();import{useCallback as rl,useRef as hu}from"react";Ue();function su(){return new Promise(e=>{let t=document.getElementById("storybook-preview-iframe");if(!t||!t.contentWindow){w.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();w.debug("[iframeReload] Triggering cache-busted reload:",o);let i=setTimeout(()=>{w.warn("[iframeReload] Iframe reload timed out after 5s"),t.removeEventListener("load",a),e()},5e3),a=()=>{clearTimeout(i),t.removeEventListener("load",a),w.debug("[iframeReload] Iframe loaded, waiting for HMR and styles to settle..."),setTimeout(()=>{w.debug("[iframeReload] Iframe reloaded and styles should be fresh"),e()},2e3)};t.addEventListener("load",a),t.contentWindow.location.href=o})}function lu(e){return e&&e!=="admin"?{"X-UIC-Role-Preview":e}:{}}var cu=BigInt(4294967295),xS=BigInt(32);function Sz(e,t=!1){return t?{h:Number(e&cu),l:Number(e>>xS&cu)}:{h:Number(e>>xS&cu)|0,l:Number(e&cu)|0}}function yS(e,t=!1){let n=e.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let i=0;i<n;i++){let{h:a,l:s}=Sz(e[i],t);[r[i],o[i]]=[a,s]}return[r,o]}var bS=(e,t,n)=>e<<n|t>>>32-n,wS=(e,t,n)=>t<<n|e>>>32-n,vS=(e,t,n)=>t<<n-32|e>>>64-n,SS=(e,t,n)=>e<<n-32|t>>>64-n;function kz(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Km(e,t=""){if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function uu(e,t,n=""){let r=kz(e),o=e?.length,i=t!==void 0;if(!r||i&&o!==t){let a=n&&`"${n}" `,s=i?` of length ${t}`:"",u=r?`length=${o}`:`type=${typeof e}`;throw new Error(a+"expected Uint8Array"+s+", got "+u)}return e}function Xm(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 kS(e,t){uu(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 CS(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Jm(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}var Cz=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Iz(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Tz(e){for(let t=0;t<e.length;t++)e[t]=Iz(e[t]);return e}var Qm=Cz?e=>e:Tz;function IS(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 TS=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var Ez=BigInt(0),Zs=BigInt(1),Rz=BigInt(2),Az=BigInt(7),Fz=BigInt(256),Pz=BigInt(113),AS=[],FS=[],PS=[];for(let e=0,t=Zs,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],AS.push(2*(5*r+n)),FS.push((e+1)*(e+2)/2%64);let o=Ez;for(let i=0;i<7;i++)t=(t<<Zs^(t>>Az)*Pz)%Fz,t&Rz&&(o^=Zs<<(Zs<<BigInt(i))-Zs);PS.push(o)}var MS=yS(PS,!0),Mz=MS[0],Lz=MS[1],ES=(e,t,n)=>n>32?vS(e,t,n):bS(e,t,n),RS=(e,t,n)=>n>32?SS(e,t,n):wS(e,t,n);function Bz(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let a=0;a<10;a++)n[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let s=(a+8)%10,u=(a+2)%10,c=n[u],l=n[u+1],p=ES(c,l,1)^n[s],g=RS(c,l,1)^n[s+1];for(let d=0;d<50;d+=10)e[a+d]^=p,e[a+d+1]^=g}let o=e[2],i=e[3];for(let a=0;a<24;a++){let s=FS[a],u=ES(o,i,s),c=RS(o,i,s),l=AS[a];o=e[l],i=e[l+1],e[l]=u,e[l+1]=c}for(let a=0;a<50;a+=10){for(let s=0;s<10;s++)n[s]=e[a+s];for(let s=0;s<10;s++)e[a+s]^=~n[(s+2)%10]&n[(s+4)%10]}e[0]^=Mz[r],e[1]^=Lz[r]}Jm(n)}var Zm=class e{constructor(t,n,r,o=!1,i=24){Pr(this,"state");Pr(this,"pos",0);Pr(this,"posOut",0);Pr(this,"finished",!1);Pr(this,"state32");Pr(this,"destroyed",!1);Pr(this,"blockLen");Pr(this,"suffix");Pr(this,"outputLen");Pr(this,"enableXOF",!1);Pr(this,"rounds");if(this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,Km(r,"outputLen"),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=CS(this.state)}clone(){return this._cloneInto()}keccak(){Qm(this.state32),Bz(this.state32,this.rounds),Qm(this.state32),this.posOut=0,this.pos=0}update(t){Xm(this),uu(t);let{blockLen:n,state:r}=this,o=t.length;for(let i=0;i<o;){let a=Math.min(n-this.pos,o-i);for(let s=0;s<a;s++)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){Xm(this,!1),uu(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 a=Math.min(r-this.posOut,i-o);t.set(n.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Km(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(kS(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,Jm(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:a}=this;return t||(t=new e(n,r,o,a,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=a,t.destroyed=this.destroyed,t}},zz=(e,t,n,r={})=>IS(()=>new Zm(t,e,n),r);var LS=zz(6,72,64,TS(10));var Dz=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,eh=Math.ceil,Or=Math.floor,gr="[BigNumber Error] ",BS=gr+"Number primitive has more than 15 significant digits: ",ro=1e14,nt=14,th=9007199254740991,nh=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],ii=1e7,Mn=1e9;function zS(e){var t,n,r,o=x.prototype={constructor:x,toString:null,valueOf:null},i=new x(1),a=20,s=4,u=-7,c=21,l=-1e7,p=1e7,g=!1,d=1,f=0,y={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},I="0123456789abcdefghijklmnopqrstuvwxyz",S=!0;function x(m,v){var k,E,h,b,F,C,A,B,P=this;if(!(P instanceof x))return new x(m,v);if(v==null){if(m&&m._isBigNumber===!0){P.s=m.s,!m.c||m.e>p?P.c=P.e=null:m.e<l?P.c=[P.e=0]:(P.e=m.e,P.c=m.c.slice());return}if((C=typeof m=="number")&&m*0==0){if(P.s=1/m<0?(m=-m,-1):1,m===~~m){for(b=0,F=m;F>=10;F/=10,b++);b>p?P.c=P.e=null:(P.e=b,P.c=[m]);return}B=String(m)}else{if(!Dz.test(B=String(m)))return r(P,B,C);P.s=B.charCodeAt(0)==45?(B=B.slice(1),-1):1}(b=B.indexOf("."))>-1&&(B=B.replace(".","")),(F=B.search(/e/i))>0?(b<0&&(b=F),b+=+B.slice(F+1),B=B.substring(0,F)):b<0&&(b=B.length)}else{if(rn(v,2,I.length,"Base"),v==10&&S)return P=new x(m),L(P,a+P.e+1,s);if(B=String(m),C=typeof m=="number"){if(m*0!=0)return r(P,B,C,v);if(P.s=1/m<0?(B=B.slice(1),-1):1,x.DEBUG&&B.replace(/^0\.0*|\./,"").length>15)throw Error(BS+m)}else P.s=B.charCodeAt(0)===45?(B=B.slice(1),-1):1;for(k=I.slice(0,v),b=F=0,A=B.length;F<A;F++)if(k.indexOf(E=B.charAt(F))<0){if(E=="."){if(F>b){b=A;continue}}else if(!h&&(B==B.toUpperCase()&&(B=B.toLowerCase())||B==B.toLowerCase()&&(B=B.toUpperCase()))){h=!0,F=-1,b=0;continue}return r(P,String(m),C,v)}C=!1,B=n(B,v,10,P.s),(b=B.indexOf("."))>-1?B=B.replace(".",""):b=B.length}for(F=0;B.charCodeAt(F)===48;F++);for(A=B.length;B.charCodeAt(--A)===48;);if(B=B.slice(F,++A)){if(A-=F,C&&x.DEBUG&&A>15&&(m>th||m!==Or(m)))throw Error(BS+P.s*m);if((b=b-F-1)>p)P.c=P.e=null;else if(b<l)P.c=[P.e=0];else{if(P.e=b,P.c=[],F=(b+1)%nt,b<0&&(F+=nt),F<A){for(F&&P.c.push(+B.slice(0,F)),A-=nt;F<A;)P.c.push(+B.slice(F,F+=nt));F=nt-(B=B.slice(F)).length}else F-=A;for(;F--;B+="0");P.c.push(+B)}}else P.c=[P.e=0]}x.clone=zS,x.ROUND_UP=0,x.ROUND_DOWN=1,x.ROUND_CEIL=2,x.ROUND_FLOOR=3,x.ROUND_HALF_UP=4,x.ROUND_HALF_DOWN=5,x.ROUND_HALF_EVEN=6,x.ROUND_HALF_CEIL=7,x.ROUND_HALF_FLOOR=8,x.EUCLID=9,x.config=x.set=function(m){var v,k;if(m!=null)if(typeof m=="object"){if(m.hasOwnProperty(v="DECIMAL_PLACES")&&(k=m[v],rn(k,0,Mn,v),a=k),m.hasOwnProperty(v="ROUNDING_MODE")&&(k=m[v],rn(k,0,8,v),s=k),m.hasOwnProperty(v="EXPONENTIAL_AT")&&(k=m[v],k&&k.pop?(rn(k[0],-Mn,0,v),rn(k[1],0,Mn,v),u=k[0],c=k[1]):(rn(k,-Mn,Mn,v),u=-(c=k<0?-k:k))),m.hasOwnProperty(v="RANGE"))if(k=m[v],k&&k.pop)rn(k[0],-Mn,-1,v),rn(k[1],1,Mn,v),l=k[0],p=k[1];else if(rn(k,-Mn,Mn,v),k)l=-(p=k<0?-k:k);else throw Error(gr+v+" cannot be zero: "+k);if(m.hasOwnProperty(v="CRYPTO"))if(k=m[v],k===!!k)if(k)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))g=k;else throw g=!k,Error(gr+"crypto unavailable");else g=k;else throw Error(gr+v+" not true or false: "+k);if(m.hasOwnProperty(v="MODULO_MODE")&&(k=m[v],rn(k,0,9,v),d=k),m.hasOwnProperty(v="POW_PRECISION")&&(k=m[v],rn(k,0,Mn,v),f=k),m.hasOwnProperty(v="FORMAT"))if(k=m[v],typeof k=="object")y=k;else throw Error(gr+v+" not an object: "+k);if(m.hasOwnProperty(v="ALPHABET"))if(k=m[v],typeof k=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(k))S=k.slice(0,10)=="0123456789",I=k;else throw Error(gr+v+" invalid: "+k)}else throw Error(gr+"Object expected: "+m);return{DECIMAL_PLACES:a,ROUNDING_MODE:s,EXPONENTIAL_AT:[u,c],RANGE:[l,p],CRYPTO:g,MODULO_MODE:d,POW_PRECISION:f,FORMAT:y,ALPHABET:I}},x.isBigNumber=function(m){if(!m||m._isBigNumber!==!0)return!1;if(!x.DEBUG)return!0;var v,k,E=m.c,h=m.e,b=m.s;e:if({}.toString.call(E)=="[object Array]"){if((b===1||b===-1)&&h>=-Mn&&h<=Mn&&h===Or(h)){if(E[0]===0){if(h===0&&E.length===1)return!0;break e}if(v=(h+1)%nt,v<1&&(v+=nt),String(E[0]).length==v){for(v=0;v<E.length;v++)if(k=E[v],k<0||k>=ro||k!==Or(k))break e;if(k!==0)return!0}}}else if(E===null&&h===null&&(b===null||b===1||b===-1))return!0;throw Error(gr+"Invalid BigNumber: "+m)},x.maximum=x.max=function(){return z(arguments,-1)},x.minimum=x.min=function(){return z(arguments,1)},x.random=(function(){var m=9007199254740992,v=Math.random()*m&2097151?function(){return Or(Math.random()*m)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(k){var E,h,b,F,C,A=0,B=[],P=new x(i);if(k==null?k=a:rn(k,0,Mn),F=eh(k/nt),g)if(crypto.getRandomValues){for(E=crypto.getRandomValues(new Uint32Array(F*=2));A<F;)C=E[A]*131072+(E[A+1]>>>11),C>=9e15?(h=crypto.getRandomValues(new Uint32Array(2)),E[A]=h[0],E[A+1]=h[1]):(B.push(C%1e14),A+=2);A=F/2}else if(crypto.randomBytes){for(E=crypto.randomBytes(F*=7);A<F;)C=(E[A]&31)*281474976710656+E[A+1]*1099511627776+E[A+2]*4294967296+E[A+3]*16777216+(E[A+4]<<16)+(E[A+5]<<8)+E[A+6],C>=9e15?crypto.randomBytes(7).copy(E,A):(B.push(C%1e14),A+=7);A=F/7}else throw g=!1,Error(gr+"crypto unavailable");if(!g)for(;A<F;)C=v(),C<9e15&&(B[A++]=C%1e14);for(F=B[--A],k%=nt,F&&k&&(C=nh[nt-k],B[A]=Or(F/C)*C);B[A]===0;B.pop(),A--);if(A<0)B=[b=0];else{for(b=-1;B[0]===0;B.splice(0,1),b-=nt);for(A=1,C=B[0];C>=10;C/=10,A++);A<nt&&(b-=nt-A)}return P.e=b,P.c=B,P}})(),x.sum=function(){for(var m=1,v=arguments,k=new x(v[0]);m<v.length;)k=k.plus(v[m++]);return k},n=(function(){var m="0123456789";function v(k,E,h,b){for(var F,C=[0],A,B=0,P=k.length;B<P;){for(A=C.length;A--;C[A]*=E);for(C[0]+=b.indexOf(k.charAt(B++)),F=0;F<C.length;F++)C[F]>h-1&&(C[F+1]==null&&(C[F+1]=0),C[F+1]+=C[F]/h|0,C[F]%=h)}return C.reverse()}return function(k,E,h,b,F){var C,A,B,P,_,T,D,H,R=k.indexOf("."),te=a,j=s;for(R>=0&&(P=f,f=0,k=k.replace(".",""),H=new x(E),T=H.pow(k.length-R),f=P,H.c=v($o(_r(T.c),T.e,"0"),10,h,m),H.e=H.c.length),D=v(k,E,h,F?(C=I,m):(C=m,I)),B=P=D.length;D[--P]==0;D.pop());if(!D[0])return C.charAt(0);if(R<0?--B:(T.c=D,T.e=B,T.s=b,T=t(T,H,te,j,h),D=T.c,_=T.r,B=T.e),A=B+te+1,R=D[A],P=h/2,_=_||A<0||D[A+1]!=null,_=j<4?(R!=null||_)&&(j==0||j==(T.s<0?3:2)):R>P||R==P&&(j==4||_||j==6&&D[A-1]&1||j==(T.s<0?8:7)),A<1||!D[0])k=_?$o(C.charAt(1),-te,C.charAt(0)):C.charAt(0);else{if(D.length=A,_)for(--h;++D[--A]>h;)D[A]=0,A||(++B,D=[1].concat(D));for(P=D.length;!D[--P];);for(R=0,k="";R<=P;k+=C.charAt(D[R++]));k=$o(k,B,C.charAt(0))}return k}})(),t=(function(){function m(E,h,b){var F,C,A,B,P=0,_=E.length,T=h%ii,D=h/ii|0;for(E=E.slice();_--;)A=E[_]%ii,B=E[_]/ii|0,F=D*A+B*T,C=T*A+F%ii*ii+P,P=(C/b|0)+(F/ii|0)+D*B,E[_]=C%b;return P&&(E=[P].concat(E)),E}function v(E,h,b,F){var C,A;if(b!=F)A=b>F?1:-1;else for(C=A=0;C<b;C++)if(E[C]!=h[C]){A=E[C]>h[C]?1:-1;break}return A}function k(E,h,b,F){for(var C=0;b--;)E[b]-=C,C=E[b]<h[b]?1:0,E[b]=C*F+E[b]-h[b];for(;!E[0]&&E.length>1;E.splice(0,1));}return function(E,h,b,F,C){var A,B,P,_,T,D,H,R,te,j,Y,X,ne,Te,ye,de,Fe,ge=E.s==h.s?1:-1,Me=E.c,pe=h.c;if(!Me||!Me[0]||!pe||!pe[0])return new x(!E.s||!h.s||(Me?pe&&Me[0]==pe[0]:!pe)?NaN:Me&&Me[0]==0||!pe?ge*0:ge/0);for(R=new x(ge),te=R.c=[],B=E.e-h.e,ge=b+B+1,C||(C=ro,B=$r(E.e/nt)-$r(h.e/nt),ge=ge/nt|0),P=0;pe[P]==(Me[P]||0);P++);if(pe[P]>(Me[P]||0)&&B--,ge<0)te.push(1),_=!0;else{for(Te=Me.length,de=pe.length,P=0,ge+=2,T=Or(C/(pe[0]+1)),T>1&&(pe=m(pe,T,C),Me=m(Me,T,C),de=pe.length,Te=Me.length),ne=de,j=Me.slice(0,de),Y=j.length;Y<de;j[Y++]=0);Fe=pe.slice(),Fe=[0].concat(Fe),ye=pe[0],pe[1]>=C/2&&ye++;do{if(T=0,A=v(pe,j,de,Y),A<0){if(X=j[0],de!=Y&&(X=X*C+(j[1]||0)),T=Or(X/ye),T>1)for(T>=C&&(T=C-1),D=m(pe,T,C),H=D.length,Y=j.length;v(D,j,H,Y)==1;)T--,k(D,de<H?Fe:pe,H,C),H=D.length,A=1;else T==0&&(A=T=1),D=pe.slice(),H=D.length;if(H<Y&&(D=[0].concat(D)),k(j,D,Y,C),Y=j.length,A==-1)for(;v(pe,j,de,Y)<1;)T++,k(j,de<Y?Fe:pe,Y,C),Y=j.length}else A===0&&(T++,j=[0]);te[P++]=T,j[0]?j[Y++]=Me[ne]||0:(j=[Me[ne]],Y=1)}while((ne++<Te||j[0]!=null)&&ge--);_=j[0]!=null,te[0]||te.splice(0,1)}if(C==ro){for(P=1,ge=te[0];ge>=10;ge/=10,P++);L(R,b+(R.e=P+B*nt-1)+1,F,_)}else R.e=B,R.r=+_;return R}})();function M(m,v,k,E){var h,b,F,C,A;if(k==null?k=s:rn(k,0,8),!m.c)return m.toString();if(h=m.c[0],F=m.e,v==null)A=_r(m.c),A=E==1||E==2&&(F<=u||F>=c)?pu(A,F):$o(A,F,"0");else if(m=L(new x(m),v,k),b=m.e,A=_r(m.c),C=A.length,E==1||E==2&&(v<=b||b<=u)){for(;C<v;A+="0",C++);A=pu(A,b)}else if(v-=F+(E===2&&b>F),A=$o(A,b,"0"),b+1>C){if(--v>0)for(A+=".";v--;A+="0");}else if(v+=b-C,v>0)for(b+1==C&&(A+=".");v--;A+="0");return m.s<0&&h?"-"+A:A}function z(m,v){for(var k,E,h=1,b=new x(m[0]);h<m.length;h++)E=new x(m[h]),(!E.s||(k=Ni(b,E))===v||k===0&&b.s===v)&&(b=E);return b}function O(m,v,k){for(var E=1,h=v.length;!v[--h];v.pop());for(h=v[0];h>=10;h/=10,E++);return(k=E+k*nt-1)>p?m.c=m.e=null:k<l?m.c=[m.e=0]:(m.e=k,m.c=v),m}r=(function(){var m=/^(-?)0([xbo])(?=\w[\w.]*$)/i,v=/^([^.]+)\.$/,k=/^\.([^.]+)$/,E=/^-?(Infinity|NaN)$/,h=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(b,F,C,A){var B,P=C?F:F.replace(h,"");if(E.test(P))b.s=isNaN(P)?null:P<0?-1:1;else{if(!C&&(P=P.replace(m,function(_,T,D){return B=(D=D.toLowerCase())=="x"?16:D=="b"?2:8,!A||A==B?T:_}),A&&(B=A,P=P.replace(v,"$1").replace(k,"0.$1")),F!=P))return new x(P,B);if(x.DEBUG)throw Error(gr+"Not a"+(A?" base "+A:"")+" number: "+F);b.s=null}b.c=b.e=null}})();function L(m,v,k,E){var h,b,F,C,A,B,P,_=m.c,T=nh;if(_){e:{for(h=1,C=_[0];C>=10;C/=10,h++);if(b=v-h,b<0)b+=nt,F=v,A=_[B=0],P=Or(A/T[h-F-1]%10);else if(B=eh((b+1)/nt),B>=_.length)if(E){for(;_.length<=B;_.push(0));A=P=0,h=1,b%=nt,F=b-nt+1}else break e;else{for(A=C=_[B],h=1;C>=10;C/=10,h++);b%=nt,F=b-nt+h,P=F<0?0:Or(A/T[h-F-1]%10)}if(E=E||v<0||_[B+1]!=null||(F<0?A:A%T[h-F-1]),E=k<4?(P||E)&&(k==0||k==(m.s<0?3:2)):P>5||P==5&&(k==4||E||k==6&&(b>0?F>0?A/T[h-F]:0:_[B-1])%10&1||k==(m.s<0?8:7)),v<1||!_[0])return _.length=0,E?(v-=m.e+1,_[0]=T[(nt-v%nt)%nt],m.e=-v||0):_[0]=m.e=0,m;if(b==0?(_.length=B,C=1,B--):(_.length=B+1,C=T[nt-b],_[B]=F>0?Or(A/T[h-F]%T[F])*C:0),E)for(;;)if(B==0){for(b=1,F=_[0];F>=10;F/=10,b++);for(F=_[0]+=C,C=1;F>=10;F/=10,C++);b!=C&&(m.e++,_[0]==ro&&(_[0]=1));break}else{if(_[B]+=C,_[B]!=ro)break;_[B--]=0,C=1}for(b=_.length;_[--b]===0;_.pop());}m.e>p?m.c=m.e=null:m.e<l&&(m.c=[m.e=0])}return m}function N(m){var v,k=m.e;return k===null?m.toString():(v=_r(m.c),v=k<=u||k>=c?pu(v,k):$o(v,k,"0"),m.s<0?"-"+v:v)}return o.absoluteValue=o.abs=function(){var m=new x(this);return m.s<0&&(m.s=1),m},o.comparedTo=function(m,v){return Ni(this,new x(m,v))},o.decimalPlaces=o.dp=function(m,v){var k,E,h,b=this;if(m!=null)return rn(m,0,Mn),v==null?v=s:rn(v,0,8),L(new x(b),m+b.e+1,v);if(!(k=b.c))return null;if(E=((h=k.length-1)-$r(this.e/nt))*nt,h=k[h])for(;h%10==0;h/=10,E--);return E<0&&(E=0),E},o.dividedBy=o.div=function(m,v){return t(this,new x(m,v),a,s)},o.dividedToIntegerBy=o.idiv=function(m,v){return t(this,new x(m,v),0,1)},o.exponentiatedBy=o.pow=function(m,v){var k,E,h,b,F,C,A,B,P,_=this;if(m=new x(m),m.c&&!m.isInteger())throw Error(gr+"Exponent not an integer: "+N(m));if(v!=null&&(v=new x(v)),C=m.e>14,!_.c||!_.c[0]||_.c[0]==1&&!_.e&&_.c.length==1||!m.c||!m.c[0])return P=new x(Math.pow(+N(_),C?m.s*(2-du(m)):+N(m))),v?P.mod(v):P;if(A=m.s<0,v){if(v.c?!v.c[0]:!v.s)return new x(NaN);E=!A&&_.isInteger()&&v.isInteger(),E&&(_=_.mod(v))}else{if(m.e>9&&(_.e>0||_.e<-1||(_.e==0?_.c[0]>1||C&&_.c[1]>=24e7:_.c[0]<8e13||C&&_.c[0]<=9999975e7)))return b=_.s<0&&du(m)?-0:0,_.e>-1&&(b=1/b),new x(A?1/b:b);f&&(b=eh(f/nt+2))}for(C?(k=new x(.5),A&&(m.s=1),B=du(m)):(h=Math.abs(+N(m)),B=h%2),P=new x(i);;){if(B){if(P=P.times(_),!P.c)break;b?P.c.length>b&&(P.c.length=b):E&&(P=P.mod(v))}if(h){if(h=Or(h/2),h===0)break;B=h%2}else if(m=m.times(k),L(m,m.e+1,1),m.e>14)B=du(m);else{if(h=+N(m),h===0)break;B=h%2}_=_.times(_),b?_.c&&_.c.length>b&&(_.c.length=b):E&&(_=_.mod(v))}return E?P:(A&&(P=i.div(P)),v?P.mod(v):b?L(P,f,s,F):P)},o.integerValue=function(m){var v=new x(this);return m==null?m=s:rn(m,0,8),L(v,v.e+1,m)},o.isEqualTo=o.eq=function(m,v){return Ni(this,new x(m,v))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(m,v){return Ni(this,new x(m,v))>0},o.isGreaterThanOrEqualTo=o.gte=function(m,v){return(v=Ni(this,new x(m,v)))===1||v===0},o.isInteger=function(){return!!this.c&&$r(this.e/nt)>this.c.length-2},o.isLessThan=o.lt=function(m,v){return Ni(this,new x(m,v))<0},o.isLessThanOrEqualTo=o.lte=function(m,v){return(v=Ni(this,new x(m,v)))===-1||v===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(m,v){var k,E,h,b,F=this,C=F.s;if(m=new x(m,v),v=m.s,!C||!v)return new x(NaN);if(C!=v)return m.s=-v,F.plus(m);var A=F.e/nt,B=m.e/nt,P=F.c,_=m.c;if(!A||!B){if(!P||!_)return P?(m.s=-v,m):new x(_?F:NaN);if(!P[0]||!_[0])return _[0]?(m.s=-v,m):new x(P[0]?F:s==3?-0:0)}if(A=$r(A),B=$r(B),P=P.slice(),C=A-B){for((b=C<0)?(C=-C,h=P):(B=A,h=_),h.reverse(),v=C;v--;h.push(0));h.reverse()}else for(E=(b=(C=P.length)<(v=_.length))?C:v,C=v=0;v<E;v++)if(P[v]!=_[v]){b=P[v]<_[v];break}if(b&&(h=P,P=_,_=h,m.s=-m.s),v=(E=_.length)-(k=P.length),v>0)for(;v--;P[k++]=0);for(v=ro-1;E>C;){if(P[--E]<_[E]){for(k=E;k&&!P[--k];P[k]=v);--P[k],P[E]+=ro}P[E]-=_[E]}for(;P[0]==0;P.splice(0,1),--B);return P[0]?O(m,P,B):(m.s=s==3?-1:1,m.c=[m.e=0],m)},o.modulo=o.mod=function(m,v){var k,E,h=this;return m=new x(m,v),!h.c||!m.s||m.c&&!m.c[0]?new x(NaN):!m.c||h.c&&!h.c[0]?new x(h):(d==9?(E=m.s,m.s=1,k=t(h,m,0,3),m.s=E,k.s*=E):k=t(h,m,0,d),m=h.minus(k.times(m)),!m.c[0]&&d==1&&(m.s=h.s),m)},o.multipliedBy=o.times=function(m,v){var k,E,h,b,F,C,A,B,P,_,T,D,H,R,te,j=this,Y=j.c,X=(m=new x(m,v)).c;if(!Y||!X||!Y[0]||!X[0])return!j.s||!m.s||Y&&!Y[0]&&!X||X&&!X[0]&&!Y?m.c=m.e=m.s=null:(m.s*=j.s,!Y||!X?m.c=m.e=null:(m.c=[0],m.e=0)),m;for(E=$r(j.e/nt)+$r(m.e/nt),m.s*=j.s,A=Y.length,_=X.length,A<_&&(H=Y,Y=X,X=H,h=A,A=_,_=h),h=A+_,H=[];h--;H.push(0));for(R=ro,te=ii,h=_;--h>=0;){for(k=0,T=X[h]%te,D=X[h]/te|0,F=A,b=h+F;b>h;)B=Y[--F]%te,P=Y[F]/te|0,C=D*B+P*T,B=T*B+C%te*te+H[b]+k,k=(B/R|0)+(C/te|0)+D*P,H[b--]=B%R;H[b]=k}return k?++E:H.splice(0,1),O(m,H,E)},o.negated=function(){var m=new x(this);return m.s=-m.s||null,m},o.plus=function(m,v){var k,E=this,h=E.s;if(m=new x(m,v),v=m.s,!h||!v)return new x(NaN);if(h!=v)return m.s=-v,E.minus(m);var b=E.e/nt,F=m.e/nt,C=E.c,A=m.c;if(!b||!F){if(!C||!A)return new x(h/0);if(!C[0]||!A[0])return A[0]?m:new x(C[0]?E:h*0)}if(b=$r(b),F=$r(F),C=C.slice(),h=b-F){for(h>0?(F=b,k=A):(h=-h,k=C),k.reverse();h--;k.push(0));k.reverse()}for(h=C.length,v=A.length,h-v<0&&(k=A,A=C,C=k,v=h),h=0;v;)h=(C[--v]=C[v]+A[v]+h)/ro|0,C[v]=ro===C[v]?0:C[v]%ro;return h&&(C=[h].concat(C),++F),O(m,C,F)},o.precision=o.sd=function(m,v){var k,E,h,b=this;if(m!=null&&m!==!!m)return rn(m,1,Mn),v==null?v=s:rn(v,0,8),L(new x(b),m,v);if(!(k=b.c))return null;if(h=k.length-1,E=h*nt+1,h=k[h]){for(;h%10==0;h/=10,E--);for(h=k[0];h>=10;h/=10,E++);}return m&&b.e+1>E&&(E=b.e+1),E},o.shiftedBy=function(m){return rn(m,-th,th),this.times("1e"+m)},o.squareRoot=o.sqrt=function(){var m,v,k,E,h,b=this,F=b.c,C=b.s,A=b.e,B=a+4,P=new x("0.5");if(C!==1||!F||!F[0])return new x(!C||C<0&&(!F||F[0])?NaN:F?b:1/0);if(C=Math.sqrt(+N(b)),C==0||C==1/0?(v=_r(F),(v.length+A)%2==0&&(v+="0"),C=Math.sqrt(+v),A=$r((A+1)/2)-(A<0||A%2),C==1/0?v="5e"+A:(v=C.toExponential(),v=v.slice(0,v.indexOf("e")+1)+A),k=new x(v)):k=new x(C+""),k.c[0]){for(A=k.e,C=A+B,C<3&&(C=0);;)if(h=k,k=P.times(h.plus(t(b,h,B,1))),_r(h.c).slice(0,C)===(v=_r(k.c)).slice(0,C))if(k.e<A&&--C,v=v.slice(C-3,C+1),v=="9999"||!E&&v=="4999"){if(!E&&(L(h,h.e+a+2,0),h.times(h).eq(b))){k=h;break}B+=4,C+=4,E=1}else{(!+v||!+v.slice(1)&&v.charAt(0)=="5")&&(L(k,k.e+a+2,1),m=!k.times(k).eq(b));break}}return L(k,k.e+a+1,s,m)},o.toExponential=function(m,v){return m!=null&&(rn(m,0,Mn),m++),M(this,m,v,1)},o.toFixed=function(m,v){return m!=null&&(rn(m,0,Mn),m=m+this.e+1),M(this,m,v)},o.toFormat=function(m,v,k){var E,h=this;if(k==null)m!=null&&v&&typeof v=="object"?(k=v,v=null):m&&typeof m=="object"?(k=m,m=v=null):k=y;else if(typeof k!="object")throw Error(gr+"Argument not an object: "+k);if(E=h.toFixed(m,v),h.c){var b,F=E.split("."),C=+k.groupSize,A=+k.secondaryGroupSize,B=k.groupSeparator||"",P=F[0],_=F[1],T=h.s<0,D=T?P.slice(1):P,H=D.length;if(A&&(b=C,C=A,A=b,H-=b),C>0&&H>0){for(b=H%C||C,P=D.substr(0,b);b<H;b+=C)P+=B+D.substr(b,C);A>0&&(P+=B+D.slice(b)),T&&(P="-"+P)}E=_?P+(k.decimalSeparator||"")+((A=+k.fractionGroupSize)?_.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+(k.fractionGroupSeparator||"")):_):P}return(k.prefix||"")+E+(k.suffix||"")},o.toFraction=function(m){var v,k,E,h,b,F,C,A,B,P,_,T,D=this,H=D.c;if(m!=null&&(C=new x(m),!C.isInteger()&&(C.c||C.s!==1)||C.lt(i)))throw Error(gr+"Argument "+(C.isInteger()?"out of range: ":"not an integer: ")+N(C));if(!H)return new x(D);for(v=new x(i),B=k=new x(i),E=A=new x(i),T=_r(H),b=v.e=T.length-D.e-1,v.c[0]=nh[(F=b%nt)<0?nt+F:F],m=!m||C.comparedTo(v)>0?b>0?v:B:C,F=p,p=1/0,C=new x(T),A.c[0]=0;P=t(C,v,0,1),h=k.plus(P.times(E)),h.comparedTo(m)!=1;)k=E,E=h,B=A.plus(P.times(h=B)),A=h,v=C.minus(P.times(h=v)),C=h;return h=t(m.minus(k),E,0,1),A=A.plus(h.times(B)),k=k.plus(h.times(E)),A.s=B.s=D.s,b=b*2,_=t(B,E,b,s).minus(D).abs().comparedTo(t(A,k,b,s).minus(D).abs())<1?[B,E]:[A,k],p=F,_},o.toNumber=function(){return+N(this)},o.toPrecision=function(m,v){return m!=null&&rn(m,1,Mn),M(this,m,v,2)},o.toString=function(m){var v,k=this,E=k.s,h=k.e;return h===null?E?(v="Infinity",E<0&&(v="-"+v)):v="NaN":(m==null?v=h<=u||h>=c?pu(_r(k.c),h):$o(_r(k.c),h,"0"):m===10&&S?(k=L(new x(k),a+h+1,s),v=$o(_r(k.c),k.e,"0")):(rn(m,2,I.length,"Base"),v=n($o(_r(k.c),h,"0"),10,m,E,!0)),E<0&&k.c[0]&&(v="-"+v)),v},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&&x.set(e),x}function $r(e){var t=e|0;return e>0||e===t?t:t-1}function _r(e){for(var t,n,r=1,o=e.length,i=e[0]+"";r<o;){for(t=e[r++]+"",n=nt-t.length;n--;t="0"+t);i+=t}for(o=i.length;i.charCodeAt(--o)===48;);return i.slice(0,o+1||1)}function Ni(e,t){var n,r,o=e.c,i=t.c,a=e.s,s=t.s,u=e.e,c=t.e;if(!a||!s)return null;if(n=o&&!o[0],r=i&&!i[0],n||r)return n?r?0:-s:a;if(a!=s)return a;if(n=a<0,r=u==c,!o||!i)return r?0:!o^n?1:-1;if(!r)return u>c^n?1:-1;for(s=(u=o.length)<(c=i.length)?u:c,a=0;a<s;a++)if(o[a]!=i[a])return o[a]>i[a]^n?1:-1;return u==c?0:u>c^n?1:-1}function rn(e,t,n,r){if(e<t||e>n||e!==Or(e))throw Error(gr+(r||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function du(e){var t=e.c.length-1;return $r(e.e/nt)==t&&e.c[t]%2!=0}function pu(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function $o(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 Nz=zS(),DS=Nz;var _z=24,el=32,Oz=()=>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,oh=Oz(),rh=(e=4,t=oh)=>{let n="";for(;n.length<e;)n=n+Math.floor(t()*36).toString(36);return n};function $z(e){let t=new DS(0);for(let n of e.values())t=t.multipliedBy(256).plus(n);return t}var _S=(e="")=>{let t=new TextEncoder;return $z(LS(t.encode(e))).toString(36).slice(1)},NS=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),Hz=e=>NS[Math.floor(e()*NS.length)],Uz=({globalObj:e=typeof global<"u"?global:typeof window<"u"?window:{},random:t=oh}={})=>{let n=Object.keys(e).toString(),r=n.length?n+rh(el,t):rh(el,t);return _S(r).substring(0,el)},jz=e=>()=>e++,Vz=476782367,OS=({random:e=oh,counter:t=jz(Math.floor(e()*Vz)),length:n=_z,fingerprint:r=Uz({random:e})}={})=>{if(n>el)throw new Error(`Length must be between 2 and ${el}. Received: ${n}`);return function(){let i=Hz(e),a=Date.now().toString(36),s=t().toString(36),u=rh(n,e),c=`${a+u+s+r}`;return`${i+_S(c).substring(1,n)}`}},ai=Wz(OS);function Wz(e){let t;return()=>(t||(t=e()),t())}var Yz=Kl(US());pn();Ue();var gu=/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g;function Kz(e){return e.replace(/\*\*/g,"").replace(/\*/g,"").replace(/__/g,"").replace(/_/g," ").trim()}function ih(e,t){let n=[],r=e.split(`
|
|
14
|
+
`,i7="/",a7="*",Ki="",lV="comment",cV="declaration";function uV(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(f){var y=f.match(eV);y&&(n+=y.length);var I=f.lastIndexOf(sV);r=~I?f.length-I:r+f.length}function i(){var f={line:n,column:r};return function(y){return y.position=new a(f),c(),y}}function a(f){this.start=f,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function s(f){var y=new Error(t.source+":"+n+":"+r+": "+f);if(y.reason=f,y.filename=t.source,y.line=n,y.column=r,y.source=e,!t.silent)throw y}function u(f){var y=f.exec(e);if(y){var I=y[0];return o(I),e=e.slice(I.length),y}}function c(){u(tV)}function l(f){var y;for(f=f||[];y=p();)y!==!1&&f.push(y);return f}function p(){var f=i();if(!(i7!=e.charAt(0)||a7!=e.charAt(1))){for(var y=2;Ki!=e.charAt(y)&&(a7!=e.charAt(y)||i7!=e.charAt(y+1));)++y;if(y+=2,Ki===e.charAt(y-1))return s("End of comment missing");var I=e.slice(2,y-2);return r+=2,o(I),e=e.slice(y),r+=2,f({type:lV,comment:I})}}function g(){var f=i(),y=u(nV);if(y){if(p(),!u(rV))return s("property missing ':'");var I=u(oV),S=f({type:cV,property:s7(y[0].replace(o7,Ki)),value:I?s7(I[0].replace(o7,Ki)):Ki});return u(iV),S}}function d(){var f=[];l(f);for(var y;y=g();)y!==!1&&(f.push(y),l(f));return f}return c(),d()}function s7(e){return e?e.replace(aV,Ki):Ki}l7.exports=uV});var u7=Fr(Sl=>{"use strict";var dV=Sl&&Sl.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Sl,"__esModule",{value:!0});Sl.default=gV;var pV=dV(c7());function gV(e,t){let n=null;if(!e||typeof e!="string")return n;let r=(0,pV.default)(e),o=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;let{property:a,value:s}=i;o?t(a,s,i):s&&(n=n||{},n[a]=s)}),n}});var p7=Fr(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.camelCase=void 0;var fV=/^--[a-zA-Z0-9_-]+$/,mV=/-([a-z])/g,hV=/^[^-]+$/,xV=/^-(webkit|moz|ms|o|khtml)-/,yV=/^-(ms)-/,bV=function(e){return!e||hV.test(e)||fV.test(e)},wV=function(e,t){return t.toUpperCase()},d7=function(e,t){return"".concat(t,"-")},vV=function(e,t){return t===void 0&&(t={}),bV(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(yV,d7):e=e.replace(xV,d7),e.replace(mV,wV))};dd.camelCase=vV});var f7=Fr((f5,g7)=>{"use strict";var SV=f5&&f5.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},kV=SV(u7()),CV=p7();function g5(e,t){var n={};return!e||typeof e!="string"||(0,kV.default)(e,function(r,o){r&&o&&(n[(0,CV.camelCase)(r,t)]=o)}),n}g5.default=g5;g7.exports=g5});var HI=Fr((fve,$I)=>{"use strict";var Bd=Object.prototype.hasOwnProperty,OI=Object.prototype.toString,LI=Object.defineProperty,BI=Object.getOwnPropertyDescriptor,zI=function(t){return typeof Array.isArray=="function"?Array.isArray(t):OI.call(t)==="[object Array]"},DI=function(t){if(!t||OI.call(t)!=="[object Object]")return!1;var n=Bd.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Bd.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var o;for(o in t);return typeof o>"u"||Bd.call(t,o)},NI=function(t,n){LI&&n.name==="__proto__"?LI(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},_I=function(t,n){if(n==="__proto__")if(Bd.call(t,n)){if(BI)return BI(t,n).value}else return;return t[n]};$I.exports=function e(){var t,n,r,o,i,a,s=arguments[0],u=1,c=arguments.length,l=!1;for(typeof s=="boolean"&&(l=s,s=arguments[1]||{},u=2),(s==null||typeof s!="object"&&typeof s!="function")&&(s={});u<c;++u)if(t=arguments[u],t!=null)for(n in t)r=_I(s,n),o=_I(t,n),s!==o&&(l&&o&&(DI(o)||(i=zI(o)))?(i?(i=!1,a=r&&zI(r)?r:[]):a=r&&DI(r)?r:{},NI(s,{name:n,newValue:e(l,a,o)})):typeof o<"u"&&NI(s,{name:n,newValue:o}));return s}});import Ei from"react";import{addons as Xd,types as zx,experimental_getStatusStore as Dx}from"storybook/manager-api";import{AddonPanel as EQ}from"storybook/internal/components";import{styled as RQ}from"storybook/theming";import{styled as Zt}from"storybook/theming";var G="#ea580c",Xo="#c2410c",Zd="#ff6b35",Nx="#A259FF",_x="#8a3de8",Ox=G,$x="#d1d5db",Xl="#7c3aed",Ye={red:"#ef4444",amber:"#f59e0b",green:"#16a34a",redText:"#b91c1c",amberText:"#b45309",greenText:"#16a34a",criticalRail:"#dc2626",criticalLabel:"#dc2626",majorLabel:"#f59e0b",minorLabel:"#f59e0b",minorRail:"#fbbf24"},Hx={color:{text:"#1d4ed8",bg:"rgba(59, 130, 246, 0.1)",border:"rgba(59, 130, 246, 0.25)"},spacing:{text:"#c2410c",bg:"rgba(249, 115, 22, 0.1)",border:"rgba(249, 115, 22, 0.25)"},typography:{text:"#be185d",bg:"rgba(236, 72, 153, 0.1)",border:"rgba(236, 72, 153, 0.25)"},border:{text:"#047857",bg:"rgba(16, 185, 129, 0.1)",border:"rgba(16, 185, 129, 0.25)"},layout:{text:"#0f766e",bg:"rgba(20, 184, 166, 0.1)",border:"rgba(20, 184, 166, 0.25)"},sizing:{text:"#6d28d9",bg:"rgba(139, 92, 246, 0.1)",border:"rgba(139, 92, 246, 0.25)"}},ep={spec:"#c2410c",ai:"#6d28d9"},Z={card:"#ffffff",green:"#10b981",border:"#e5e7eb",track:"#f1f5f9",muted:"#6b7280",locked:"#9ca3af",text:"#111827",subText:"#374151",formBg:"#fafafa",lockedBtnBg:"#f3f4f6",calloutBg:"#fffbeb",calloutText:"#b45309",accentTint:"#fff7ed"},Ri={pillBg:"#fff7ed",pillBorder:"#f5d0b5",iconFrom:"#d97706",iconTo:Xo,badgeBg:"#fef3c7",badgeText:"#92400e"};var Ux=Zt.div(({theme:e})=>({fontFamily:e.typography.fonts.base,height:"100%",display:"flex",flexDirection:"column",backgroundColor:e.background.content,color:e.color.defaultText})),jx=Zt.div(({theme:e})=>({flex:1,overflow:"auto",padding:"6px 12px 12px",backgroundColor:e.background.app})),Jl=Zt.div({marginBottom:"20px"}),Ql=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})),cs=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*2,backgroundColor:e.input.background,color:e.color.defaultText,"&:focus":{outline:"none",borderColor:e.color.secondary,boxShadow:`0 0 0 2px ${e.color.secondary}20`}})),ar=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*2,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"}})),Vx=Zt(ar)(({theme:e})=>({width:"auto",padding:`${e.layoutMargin*.6}px 28px ${e.layoutMargin*.6}px ${e.layoutMargin}px`,fontSize:e.typography.size.s1})),Zl=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*2,cursor:"pointer",transition:"all 0.15s","&:disabled":{opacity:.5,cursor:"not-allowed"}}),Ao=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:e.color.secondary,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),Qt=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:G,color:e.color.inverseText,boxShadow:`0 2px 4px ${G}4d`,"&:hover:not(:disabled)":{backgroundColor:Xo,transform:"translateY(-1px)",boxShadow:`0 4px 8px ${G}66`}})),fo=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:"transparent",border:`1px solid ${e.appBorderColor}`,color:e.color.defaultText,"&:hover:not(:disabled)":{backgroundColor:e.background.hoverable}})),Wx=Zt.button(({theme:e})=>({...Zl(e),backgroundColor:e.color.negative,color:e.color.inverseText,"&:hover:not(:disabled)":{opacity:.9}})),br=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"}})),tp=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"}})),Jo=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}})),Qo=Zt(cs)(({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"})),NQ=Zt.div(({theme:e})=>({padding:`${e.layoutMargin*1.6}px`,borderRadius:e.appBorderRadius*2.5,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),Gx=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})),_Q=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})),np=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})),OQ=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%)"}}})),qx=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}}),$Q=Zt.div(({theme:e})=>({padding:"40px 20px",textAlign:"center",color:e.color.mediumdark})),HQ=Zt.div(({theme:e})=>({fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,marginBottom:`${e.layoutMargin*.8}px`,color:e.color.defaultText})),UQ=Zt.div(({theme:e})=>({fontSize:e.typography.size.s2,color:e.color.mediumdark}));import st,{useState as KJ,useEffect as yT}from"react";import{styled as rr}from"storybook/theming";import Yx from"react";var rp=({header:e,children:t,footer:n})=>Yx.createElement(Ux,null,e,Yx.createElement(jx,null,t),n);import KT from"react";import{styled as XT}from"storybook/theming";var JT=XT.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})),op=({toolbar:e})=>KT.createElement(JT,null,e);import QQ from"react";import{styled as ec}from"storybook/theming";var tZ=ec.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})),nZ=ec.div({display:"flex",flex:1}),rZ=ec(Jo)(({theme:e,disabled:t})=>({padding:"6px 12px",...t?{color:e.color.mediumlight,cursor:"not-allowed",opacity:.5,"&:hover":{}}:{}})),oZ=ec.div({display:"flex",gap:"8px",alignItems:"center"});import yt,{useState as Qc,useCallback as zm,useEffect as Dm,useRef as zB}from"react";import{styled as Sn}from"storybook/theming";import ke from"react";var Kx=()=>ke.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"},ke.createElement("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),ke.createElement("circle",{cx:"12",cy:"12",r:"3"})),us=()=>ke.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"},ke.createElement("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),ke.createElement("circle",{cx:"12",cy:"7",r:"4"})),Mr={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"},ds=()=>ke.createElement("svg",{...Mr},ke.createElement("circle",{cx:"11",cy:"11",r:"8"}),ke.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),Xx=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M18.84 12.25l1.72-1.71a5 5 0 0 0-7.07-7.07l-1.71 1.71"}),ke.createElement("path",{d:"M5.17 11.75l-1.71 1.71a5 5 0 0 0 7.07 7.07l1.71-1.71"}),ke.createElement("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),ke.createElement("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),ke.createElement("line",{x1:"16",y1:"22",x2:"16",y2:"19"}),ke.createElement("line",{x1:"22",y1:"16",x2:"19",y2:"16"})),Jx=()=>ke.createElement("svg",{...Mr},ke.createElement("polyline",{points:"23 4 23 10 17 10"}),ke.createElement("polyline",{points:"1 20 1 14 7 14"}),ke.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"}));var ip=()=>ke.createElement("svg",{...Mr},ke.createElement("circle",{cx:"12",cy:"12",r:"3"}),ke.createElement("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})),tc=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3z"}),ke.createElement("path",{d:"M19 14l.7 1.9L21.6 17l-1.9.7L19 19.6l-.7-1.9L16.4 17l1.9-.7L19 14z"})),Qx=()=>ke.createElement("svg",{...Mr},ke.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),ke.createElement("polyline",{points:"12 5 19 12 12 19"})),Zx=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72Z"}),ke.createElement("path",{d:"m14 7 3 3"}),ke.createElement("path",{d:"M5 6v4"}),ke.createElement("path",{d:"M19 14v4"}),ke.createElement("path",{d:"M10 2v2"}),ke.createElement("path",{d:"M7 8H3"}),ke.createElement("path",{d:"M21 16h-4"}),ke.createElement("path",{d:"M11 3H9"})),ey=()=>ke.createElement("svg",{...Mr},ke.createElement("polyline",{points:"6 9 12 15 18 9"})),ty=()=>ke.createElement("svg",{...Mr},ke.createElement("polyline",{points:"20 6 9 17 4 12"})),ny=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M7 10v12"}),ke.createElement("path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z"})),ry=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M3 3v5h5"}),ke.createElement("path",{d:"M3.05 13A9 9 0 1 0 6 5.3L3 8"}),ke.createElement("path",{d:"M12 7v5l4 2"})),ap=()=>ke.createElement("svg",{...Mr},ke.createElement("path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5a2 2 0 0 0 2 2h1"}),ke.createElement("path",{d:"M16 3h1a2 2 0 0 1 2 2v5a2 2 0 0 0 2 2 2 2 0 0 0-2 2v5a2 2 0 0 1-2 2h-1"})),Fo=()=>ke.createElement("svg",{width:"10",height:"15",viewBox:"0 0 38 57","aria-label":"Figma",role:"img"},ke.createElement("path",{fill:"#1abcfe",d:"M19 28.5a9.5 9.5 0 1 1 19 0 9.5 9.5 0 0 1-19 0z"}),ke.createElement("path",{fill:"#0acf83",d:"M0 47.5A9.5 9.5 0 0 1 9.5 38H19v9.5a9.5 9.5 0 1 1-19 0z"}),ke.createElement("path",{fill:"#ff7262",d:"M19 0v19h9.5a9.5 9.5 0 1 0 0-19H19z"}),ke.createElement("path",{fill:"#f24e1e",d:"M0 9.5A9.5 9.5 0 0 0 9.5 19H19V0H9.5A9.5 9.5 0 0 0 0 9.5z"}),ke.createElement("path",{fill:"#a259ff",d:"M0 28.5A9.5 9.5 0 0 0 9.5 38H19V19H9.5A9.5 9.5 0 0 0 0 28.5z"})),sp=()=>ke.createElement("svg",{width:"13",height:"13",viewBox:"0 0 64 64","aria-label":"Storybook",role:"img"},ke.createElement("path",{fill:"#ff4785",d:"M8 4l1.5 56L56 62l2-58z"}),ke.createElement("path",{fill:"#fff",d:"M40.5 18.2c-.2 1.5-3.6 2.4-7.6 2.1-4-.3-7-1.6-6.9-3.1.1-1.4 2.4-2 5.3-2 .8 0 1.2-.4 1.2-1.1 0-1.6-3.6-2.6-7-2.6-7 0-10.6 3.8-10.6 7.6 0 6.6 8.9 7 11.4 7.2 5.5.4 6.9 1.5 6.9 3 0 1.6-2.1 2.6-5 2.6-3.8 0-5.6-1.4-5.7-3.1 0-.6-.4-1-1-1l-3.5.1c-.6 0-1 .4-1 1 .2 4.7 4.3 7.6 11.3 7.6 6.7 0 11.2-3.1 11.2-7.6 0-5.7-5-7-11.1-7.5-4.2-.3-6.5-.6-6.5-2 0-1 1.8-1.8 4.4-1.8 2.5 0 4.2.6 4.4 1.7.1.6.5 1 1.1 1l3.5-.1c.6-.1 1-.5 1-1.1z"}));import Pe,{useEffect as _v}from"react";import{styled as Ct}from"storybook/theming";Se();De();Ue();ut();var Ov=Ct.div({position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e4}),$v=Ct.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})),WL=Ct.div({display:"flex",alignItems:"center",gap:"12px",padding:"16px 16px 12px"}),GL=Ct.div({width:"36px",height:"36px",borderRadius:"50%",backgroundColor:G,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:"14px",fontWeight:700,flexShrink:0}),qL=Ct.div({display:"flex",flexDirection:"column",gap:"4px"}),YL=Ct.div(({theme:e})=>({fontSize:"15px",fontWeight:600,color:e.color.defaultText,lineHeight:1.2})),KL=Ct.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"}),XL=Ct.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px 8px",fontSize:"14px",color:e.color.defaultText})),JL=Ct.span(({theme:e})=>({color:e.textMutedColor,fontSize:"13px"})),QL=Ct.span(({theme:e})=>({color:e.color.defaultText,fontSize:"15px",fontWeight:600})),ZL=Ct.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"})),eB=Ct.div(({percent:e})=>({height:"100%",width:`${Math.min(100,Math.max(0,e))}%`,background:`linear-gradient(90deg, #f59e0b 0%, ${G} 100%)`,transition:"width 0.3s ease"})),tB=Ct.div(({theme:e})=>({padding:"0 16px 14px",fontSize:"12px",color:e.textMutedColor})),nB=Ct.div(({theme:e})=>({height:"1px",backgroundColor:e.appBorderColor})),rB=Ct.button({width:"100%",padding:"14px 16px",background:"transparent",border:"none",color:G,fontSize:"14px",fontWeight:500,textAlign:"left",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.03)"}}),Hv=Ct.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}})),oB=Ct.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px",borderBottom:`1px solid ${e.appBorderColor}`})),iB=Ct.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"10px",color:e.color.defaultText,fontSize:"14px",fontWeight:500})),aB=Ct.div(({theme:e})=>({width:"32px",height:"32px",borderRadius:"50%",backgroundColor:G,display:"flex",alignItems:"center",justifyContent:"center",color:e.color.inverseText,fontSize:"14px",fontWeight:600})),sB=Ct.div({display:"flex",gap:"8px"}),Uv=Ct(br)({fontSize:"18px"}),lB=Ct.div({padding:"20px 16px"}),cB=Ct.div(({theme:e})=>({padding:"16px",borderRadius:"8px",background:"linear-gradient(135deg, #10B981 0%, #3B82F6 100%)",marginBottom:"16px",color:"#fff"})),uB=Ct.div({fontSize:"12px",fontWeight:500,opacity:.9,marginBottom:"4px"}),dB=Ct.div({fontSize:"28px",fontWeight:700}),pB=Ct.div({fontSize:"11px",opacity:.8,marginTop:"4px"}),gB=Ct.div(({theme:e})=>({padding:"16px",borderRadius:"8px",border:`1px solid ${e.appBorderColor}`,marginBottom:"16px"})),fB=Ct.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),mB=Ct.div({display:"flex",alignItems:"center",gap:"8px"}),hB=Ct.span(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),xB=Ct.span(({theme:e})=>({fontSize:"10px",fontWeight:600,padding:"2px 6px",borderRadius:"4px",backgroundColor:G,color:e.color.inverseText})),yB=Ct.button(({theme:e})=>({background:"none",border:"none",color:G,fontSize:"12px",cursor:"pointer","&:hover":{textDecoration:"underline"}})),bB=Ct.div(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),wB=Ct.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"?G:e.background.hoverable,color:t==="primary"?e.color.inverseText:e.color.defaultText,"&:hover":{opacity:.9}})),vB=30*1e3,jv=({onClose:e})=>{let{sessionToken:t,resetAuth:n,usageData:r,usageLastFetched:o,setUsageData:i}=he(),{featureFlags:a}=ue(),s=a.showCosts,u=r,c=!r&&t,l=async(f=!1)=>{if(!t)return;let y=o&&Date.now()-o<vB;if(!(!f&&y&&r))try{let I=K(),S=await Q(`${I}/api/addon/account`,{headers:{Authorization:`Bearer ${t}`}});if(S.ok){let x=await S.json();i(x)}}catch(I){w.error("Failed to fetch usage:",I)}};_v(()=>{l()},[t]),_v(()=>{let f=()=>{document.visibilityState==="visible"&&(w.debug("[TokenUsageModal] Tab visible, refreshing balance..."),l(!0))};return document.addEventListener("visibilitychange",f),()=>document.removeEventListener("visibilitychange",f)},[t]);let p=async()=>{if(t){let f=K();try{await fetch(`${f}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${t}`}})}catch{}}n(),e()},g=()=>{let f=K();window.open(`${f}/pricing`,"_blank")},d=()=>{let f=K();window.open(`${f}/pricing#add-credits`,"_blank")};if(t&&!s&&!c){let f=Math.floor(u?.creditBalance??0),I=Math.max(f,10),S=Math.max(0,I-f),x=I>0?f/I*100:0;return Pe.createElement(Pe.Fragment,null,Pe.createElement(Ov,{onClick:e}),Pe.createElement($v,{onClick:M=>M.stopPropagation(),style:{width:"320px"}},Pe.createElement(WL,null,Pe.createElement(GL,null,(u?.name||u?.email||"U")[0].toUpperCase()),Pe.createElement(qL,null,Pe.createElement(YL,null,u?.name||u?.email||"Your account"),Pe.createElement(KL,null,(u?.plan||"FREE").toUpperCase())),Pe.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:"2px"}},Pe.createElement(Hv,{onClick:p,title:"Sign out",style:{position:"static"}},Pe.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Pe.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),Pe.createElement("polyline",{points:"16 17 21 12 16 7"}),Pe.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),Pe.createElement(Hv,{onClick:e,title:"Close",style:{position:"static"}},"\xD7"))),Pe.createElement(XL,null,Pe.createElement(JL,null,"Credits"),Pe.createElement(QL,null,f," left")),Pe.createElement(ZL,null,Pe.createElement(eB,{percent:x})),Pe.createElement(tB,null,S," used \xB7 ",f," remaining"),Pe.createElement(nB,null),Pe.createElement(rB,{onClick:()=>window.open("mailto:hello@uiparity.com?subject=Credits request","_blank")},"Contact us for credits \u2192")))}return Pe.createElement(Pe.Fragment,null,Pe.createElement(Ov,{onClick:e}),Pe.createElement($v,{onClick:f=>f.stopPropagation()},Pe.createElement(oB,null,Pe.createElement(iB,null,Pe.createElement(aB,null,u?.email?u.email[0].toUpperCase():"U"),Pe.createElement("span",null,u?.email||"Loading...")),Pe.createElement(sB,null,Pe.createElement(Uv,{onClick:p,title:"Sign out"},Pe.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Pe.createElement("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),Pe.createElement("polyline",{points:"16 17 21 12 16 7"}),Pe.createElement("line",{x1:"21",y1:"12",x2:"9",y2:"12"}))),Pe.createElement(Uv,{onClick:e,title:"Close"},"\xD7"))),Pe.createElement(lB,null,c?Pe.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Loading..."):t?Pe.createElement(Pe.Fragment,null,Pe.createElement(cB,null,Pe.createElement(uB,null,"Credit Balance"),Pe.createElement(dB,null,"$",(u?.creditBalance??0).toFixed(2)),Pe.createElement(pB,null,(u?.creditBalance??0)<2?"Low balance - consider topping up":"Pay only for what you use")),Pe.createElement(gB,null,Pe.createElement(fB,null,Pe.createElement(mB,null,Pe.createElement(hB,null,"Current Plan"),Pe.createElement(xB,null,u?.plan||"Free")),Pe.createElement(yB,{onClick:g},"View detail >")),Pe.createElement(bB,null,"~$0.02-0.05 per review depending on complexity"),Pe.createElement(wB,{onClick:d,style:{marginTop:"16px"}},"Add Credits"))):Pe.createElement("div",{style:{textAlign:"center",padding:"20px"}},"Please sign in to view usage"))))};pn();Se();import Sa from"react";import{styled as Vv}from"storybook/theming";De();Se();ut();Ue();var SB=Vv.div({display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}),kB=Vv.span(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark})),Wv=()=>{let{userRole:e,roleOverride:t,setRoleOverride:n,setFeatureFlags:r}=ue(),{sessionToken:o}=he();return e!=="admin"?null:Sa.createElement(SB,null,Sa.createElement(kB,null,"View as:"),Sa.createElement(Vx,{value:t??e,onChange:s=>{let u=s.target.value;if(u===e)n(null),o&&Q(`${K()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(c=>c.json()).then(c=>{let l={enableFixGeneration:!!c.enableFixGeneration,enableFixApply:!!c.enableFixApply,enableAutoMap:!!c.enableAutoMap,enableAutoFigmaLinking:!!c.enableAutoFigmaLinking,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=>w.warn("[RoleSwitcher] Failed to re-fetch flags:",c.message));else{n(u);let c=Us[u];r(c);try{localStorage.setItem("uicopilot_feature_flags",JSON.stringify(c))}catch{}}},style:{width:"auto",minWidth:"100px"}},Sa.createElement("option",{value:"admin"},"Admin"),Sa.createElement("option",{value:"beta"},"Regular user")),t&&Sa.createElement(qx,{variant:"warning"},"Previewing as"," ",t==="beta"?"regular user":t))};De();Se();ut();import zt,{useState as Vs,useCallback as Bm}from"react";import{styled as eo}from"storybook/theming";var CB="0.5.7",IB=[{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"}],TB=eo.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center"}),EB=eo.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)"})),RB=eo.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px 12px",borderBottom:`1px solid ${e.appBorderColor}`})),AB=eo.h3(({theme:e})=>({margin:0,fontSize:"15px",fontWeight:600,color:e.color.defaultText,display:"flex",alignItems:"center",gap:"8px"})),FB=eo.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}})),PB=eo.div({padding:"16px 20px",display:"flex",flexDirection:"column",gap:"14px"}),MB=eo.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:G}})),Gv=eo.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px 16px",borderTop:`1px solid ${e.appBorderColor}`,gap:"8px"})),qv=eo.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.mediumdark,lineHeight:1.4})),LB=eo.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s1,color:e.color.negative})),BB=eo.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 Yv({isOpen:e,onClose:t}){let{sessionToken:n,isConnected:r}=he(),{selectedProjectId:o}=Ke(),{currentStoryId:i}=gt(),[a,s]=Vs("other"),[u,c]=Vs(""),[l,p]=Vs(!1),[g,d]=Vs(!1),[f,y]=Vs(null),I=Bm(()=>{c(""),s("other"),d(!1),y(null),p(!1)},[]),S=Bm(()=>{I(),t()},[I,t]),x=Bm(async M=>{if(M.preventDefault(),!u.trim()){y("Please write a message.");return}if(!r||!n){y("Sign in to send feedback.");return}p(!0),y(null);try{let z=await Q(`${K()}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({message:u.trim(),severity:a,projectId:o||void 0,storyId:i||void 0,addonVersion:CB})});if(!z.ok){let O=await z.json().catch(()=>({}));throw new Error(O.error||`Request failed (${z.status})`)}d(!0)}catch(z){y(z instanceof Error?z.message:"Something went wrong")}finally{p(!1)}},[u,a,n,r,o,i]);return e?zt.createElement(TB,{onClick:S},zt.createElement(EB,{onClick:M=>M.stopPropagation()},zt.createElement(RB,null,zt.createElement(AB,null,zt.createElement("span",null,"\u{1F4AC}"),"Send feedback"),zt.createElement(FB,{onClick:S,"aria-label":"Close"},"\xD7")),g?zt.createElement(zt.Fragment,null,zt.createElement(BB,null,zt.createElement("h4",null,"Thanks \u2014 got it."),zt.createElement("p",null,"We read every message. If it's a bug, we'll likely follow up by email.")),zt.createElement(Gv,null,zt.createElement("span",null),zt.createElement(Ao,{onClick:S},"Close"))):zt.createElement("form",{onSubmit:x},zt.createElement(PB,null,zt.createElement(Jl,null,zt.createElement(Ql,{htmlFor:"feedback-severity"},"Type"),zt.createElement(ar,{id:"feedback-severity",value:a,onChange:M=>s(M.target.value),disabled:l},IB.map(M=>zt.createElement("option",{key:M.value,value:M.value},M.label)))),zt.createElement(Jl,null,zt.createElement(Ql,{htmlFor:"feedback-message"},"What happened?"),zt.createElement(MB,{id:"feedback-message",value:u,onChange:M=>c(M.target.value),placeholder:"Tell us what you were doing, what you expected, and what happened.",disabled:l,autoFocus:!0,maxLength:5e3})),zt.createElement(qv,null,"We auto-attach your current story and project so we can reproduce it. No screenshots sent."),f&&zt.createElement(LB,null,f)),zt.createElement(Gv,null,zt.createElement(qv,null,i?`Context: ${i}`:"No story selected"),zt.createElement("div",{style:{display:"flex",gap:"8px"}},zt.createElement(Ao,{type:"button",onClick:S,disabled:l},"Cancel"),zt.createElement(Qt,{type:"submit",disabled:l||!u.trim()},l?"Sending\u2026":"Send")))))):null}Se();De();ut();pn();var DB=Sn.div({display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",gap:"8px"}),NB=Sn.div({display:"inline-flex",alignItems:"center",gap:"6px",flexShrink:0,userSelect:"none"}),_B=Sn.span(({theme:e})=>({width:"20px",height:"20px",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"5px",background:`linear-gradient(135deg, ${Zd} 0%, ${G} 100%)`,color:e.color.lightest,fontSize:"11px",fontWeight:900,letterSpacing:"-0.5px",boxShadow:"0 1px 2px rgba(0,0,0,0.15)"})),OB=Sn.span(({theme:e})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,letterSpacing:"-0.2px",color:e.color.defaultText})),$B=Sn.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark,opacity:.8,marginLeft:"2px"})),HB=Sn.div({display:"flex",alignItems:"center",gap:"6px",flexShrink:0}),UB=Sn.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"999px",fontSize:"10px",fontWeight:e.typography.weight.bold,lineHeight:1.6,color:e.color.mediumdark,backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,userSelect:"none",cursor:"default","& svg":{width:"11px",height:"11px"}})),jB=Sn.div({position:"relative"}),VB=Sn.button(({theme:e})=>({width:"22px",height:"22px",padding:0,background:e.background.app,border:`1px solid ${e.appBorderColor}`,borderRadius:"50%",color:e.color.defaultText,cursor:"pointer",fontSize:"10px",fontWeight:600,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s","&:hover":{backgroundColor:e.background.hoverable}})),WB=Sn.div(({theme:e})=>({position:"absolute",top:"calc(100% + 6px)",right:0,minWidth:"220px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,boxShadow:"0 8px 24px rgba(0,0,0,0.14)",zIndex:1e3,overflow:"hidden",padding:"4px"})),GB=Sn.div(({theme:e})=>({padding:"8px 10px 10px",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"4px"})),qB=Sn.div(({theme:e})=>({fontSize:e.typography.size.s2,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),YB=Sn.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:"2px"})),Nm=Sn.button(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",width:"100%",padding:"7px 10px",border:"none",borderRadius:e.appBorderRadius,background:"transparent",color:e.color.defaultText,fontSize:e.typography.size.s2,textAlign:"left",cursor:"pointer",transition:"background 0.12s","&:hover":{backgroundColor:e.background.hoverable}})),KB=Sn.div(({theme:e})=>({height:"1px",margin:"4px 0",backgroundColor:e.appBorderColor})),Kv=Sn.button(({theme:e,isLow:t})=>({display:"flex",alignItems:"center",gap:"6px",padding:"4px 8px",background:"transparent",border:"none",borderRadius:e.appBorderRadius,color:t?e.color.warning:Ye.green,cursor:"pointer",fontFamily:e.typography.fonts.mono,fontSize:"11px",fontWeight:e.typography.weight.bold,transition:"background 0.15s","&:hover":{backgroundColor:e.background.hoverable}})),Xv=Sn.span(({theme:e,isLow:t})=>({width:"6px",height:"6px",borderRadius:"50%",flexShrink:0,backgroundColor:t?e.color.warning:Ye.green})),XB=Sn.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)"}}}),JB=Sn.button(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",width:"28px",height:"28px",border:"none",borderRadius:e.appBorderRadius,backgroundColor:"transparent",color:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","& svg":{width:"14px",height:"14px"},"&:hover":{backgroundColor:e.background.hoverable,color:e.color.defaultText}})),QB=Sn.button({position:"fixed",bottom:"20px",right:"20px",width:"48px",height:"48px",borderRadius:"50%",backgroundColor:G,color:"white",border:"none",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"22px",cursor:"pointer",boxShadow:`0 4px 14px ${G}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 ${G}88, 0 3px 6px rgba(0,0,0,0.15)`},"&:active":{transform:"scale(0.96)"}}),ZB=30*1e3,_m=({onOpenSettings:e})=>{let[t,n]=Qc(!1),[r,o]=Qc(!1),[i,a]=Qc(!1),[s,u]=Qc(!1),c=zB(null),{usageData:l,usageLastFetched:p,setUsageData:g,sessionToken:d,resetAuth:f}=he(),{userRole:y,roleOverride:I,featureFlags:S}=ue(),x=I??y,M=!!d&&d.startsWith("uic_anon_"),z=x==="admin"||!!S.enableAiReview;Dm(()=>{(async()=>{if(!(!d||p&&Date.now()-p<ZB&&l)){u(!0);try{let F=K(),C=await Q(`${F}/api/addon/account`,{headers:{Authorization:`Bearer ${d}`}});if(C.ok){let A=await C.json();g(A)}}catch(F){console.error("Failed to fetch balance:",F)}finally{u(!1)}}})()},[d,p,l,g]),Dm(()=>{let h=()=>{document.visibilityState==="visible"&&t&&n(!1)},b=()=>{t&&n(!1)};return document.addEventListener("visibilitychange",h),window.addEventListener("focus",b),()=>{document.removeEventListener("visibilitychange",h),window.removeEventListener("focus",b)}},[t]),Dm(()=>{if(!i)return;let h=F=>{c.current&&!c.current.contains(F.target)&&a(!1)},b=F=>{F.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",h),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",b)}},[i]);let O=zm(()=>{n(!0)},[]),L=zm(()=>{n(!1)},[]),N=zm(async()=>{if(a(!1),d)try{await fetch(`${K()}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${d}`}})}catch{}f()},[d,f]),m=l?.creditBalance??0,v=m<2&&!s,k=l?.email,E=(()=>{if(!k)return"?";let h=k.split("@")[0],b=h.split(/[^a-zA-Z0-9]+/).filter(Boolean);return b.length>=2?(b[0][0]+b[1][0]).toUpperCase():h.slice(0,2).toUpperCase()})();return yt.createElement(DB,null,yt.createElement(NB,null,yt.createElement(_B,{"aria-hidden":!0},"\u21CB"),yt.createElement(OB,null,jt.NAME),yt.createElement($B,null,"v","0.9.1")),yt.createElement(HB,null,M&&yt.createElement(UB,{title:"Guest session \u2014 sign up to save your work"},yt.createElement("span",{"aria-hidden":!0},yt.createElement(us,null)),"Guest"),d&&y==="admin"&&x==="admin"&&yt.createElement(Wv,null),d&&S.showCosts&&z&&yt.createElement(Kv,{onClick:O,isLow:v,title:s?"Loading...":l?v?"Low balance - click to top up":"Credit balance - click for details":"Click to load balance"},s?yt.createElement(XB,null):l?yt.createElement(yt.Fragment,null,yt.createElement(Xv,{isLow:v}),"$",m.toFixed(2)):"..."),d&&!S.showCosts&&l&&z&&yt.createElement(Kv,{onClick:O,isLow:Math.floor(m)<=3,title:`${Math.floor(m)} review credits \u2014 click for details`},yt.createElement(Xv,{isLow:Math.floor(m)<=3}),Math.floor(m)),e&&d&&yt.createElement(JB,{onClick:e,title:"Settings","aria-label":"Settings"},yt.createElement(ip,null)),!M&&yt.createElement(jB,{ref:c},yt.createElement(VB,{title:"Account","aria-label":"Account",onClick:()=>a(h=>!h)},E),i&&yt.createElement(WB,{role:"menu"},yt.createElement(GB,null,yt.createElement(qB,null,k||"Account"),l?.plan&&yt.createElement(YB,null,l.plan," plan")),yt.createElement(Nm,{role:"menuitem",onClick:()=>{a(!1),O()}},yt.createElement("span",{"aria-hidden":!0},yt.createElement(us,null))," ","Account & usage"),e&&yt.createElement(Nm,{role:"menuitem",onClick:()=>{a(!1),e()}},yt.createElement("span",{"aria-hidden":!0},yt.createElement(ip,null))," ","Settings"),yt.createElement(KB,null),yt.createElement(Nm,{role:"menuitem",onClick:N},"Sign out")),t&&yt.createElement(jv,{onClose:L}))),d&&yt.createElement(QB,{onClick:()=>o(!0),title:"Send feedback","aria-label":"Send feedback"},"\u{1F4AC}"),yt.createElement(Yv,{isOpen:r,onClose:()=>o(!1)}))};import Ne,{useEffect as nU,useRef as Zu,useState as rU}from"react";import Xn from"react";Se();Ue();De();ut();pn();import{useState as Zv,useCallback as to,useRef as eS,useEffect as Om}from"react";De();ut();var ez=K(),ka=null;function Jv(e){ka=e}async function Qv(e){if(!ka||!e||e===ka||e.startsWith("uic_anon_"))return null;let t=ka;ka=null;try{let n=await Q(`${ez}/api/anonymous/claim`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({anonymousToken:t})});if(!n.ok)throw new Error(`claim failed: ${n.status}`);let r=await n.json().catch(()=>({}));return typeof r?.claimedProjects=="number"?r.claimedProjects:0}catch(n){throw ka=t,n}}var Nr=K();w.debug("[useAuth] Module loaded, APP_URL:",Nr);var Zc=null,eu=null,Ws=null;function Gs(){Zc&&(clearInterval(Zc),Zc=null),eu&&(clearTimeout(eu),eu=null)}var no=()=>{let e=eS(null),t=eS(null),n=to(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{sessionToken:r,apiKey:o,authMethod:i,deviceCode:a,userCode:s,verificationUri:u,isConnected:c,authError:l,setSessionToken:p,setApiKey:g,setAuthMethod:d,setDeviceCode:f,setUserCode:y,setVerificationUri:I,setPollingInterval:S,setAuthError:x,resetAuth:M}=he(),[z,O]=Zv(!1),[L,N]=Zv(!1),m=to(()=>{Gs(),Ws=null},[]),v=to(P=>{Ws=P,Gs();let _=async()=>{let T=Ws;if(!T){Gs();return}try{let H=await(await fetch(`${Nr}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:T})})).json();H.status==="authorized"&&H.session_token?(w.debug("[useAuth] \u2705 OAuth poll successful! Got token."),Gs(),n(),Ws=null,localStorage.setItem("uicopilot_session_token",H.session_token),p(H.session_token),O(!1)):H.status==="expired"&&(w.debug("[useAuth] OAuth poll_code expired"),Gs(),n(),Ws=null,O(!1))}catch(D){w.error("[useAuth] OAuth poll error:",D)}};Zc=setInterval(_,2e3),eu=setTimeout(_,1e3)},[p,n]);Om(()=>{function P(_){if(!_.origin.startsWith(Nr))return;let T=_.data;if(!T||typeof T!="object")return;let D=T;if(D.type==="UICOPILOT_AUTH_ERROR"){w.debug("[useAuth] Popup reported auth error:",D.step,D.detail),m(),O(!1);let H=typeof D.step=="string"?D.step:"auth",R=typeof D.detail=="string"?D.detail:"Unknown error";x(`${jt.NAME} auth failed (${H}): ${R}`)}else D.type==="UICOPILOT_AUTH_POLL_CODE"&&typeof D.pollCode=="string"&&D.pollCode&&(w.debug("[useAuth] Popup handed us a fresh poll_code, switching"),x(null),v(D.pollCode))}return window.addEventListener("message",P),()=>window.removeEventListener("message",P)},[v,m,x]);let k=to(async()=>{let T=Math.max(0,Math.round((window.screen.width-480)/2)),D=Math.max(0,Math.round((window.screen.height-640)/2)),H=`width=480,height=640,left=${T},top=${D},resizable=yes,scrollbars=yes`,R=null;try{R=window.open("about:blank","uiparity-signin",H)}catch{}try{w.debug("[useAuth] Starting OAuth flow, requesting poll_code...");let te;try{te=await Q(`${Nr}/api/addon/auth/oauth-poll`,{method:"POST"})}catch(ne){let ye=ne instanceof Error&&ne.message.includes("timed out")?`Cannot reach ${jt.NAME} server at ${Nr}. Is the dashboard running?`:`Connection failed: ${Nr} is not responding.`;x(ye),w.error("[useAuth]",ye),R?.close();return}if(!te.ok){let ne=`Cannot reach ${jt.NAME} server. Is the dashboard running?`;x(ne),w.error("[useAuth]",ne),R?.close();return}let{poll_code:j}=await te.json();w.debug("[useAuth] Got poll_code:",j.substring(0,15)+"...");let Y=localStorage.getItem("uicopilot_force_sign_in")==="true";Y&&localStorage.removeItem("uicopilot_force_sign_in");let X=`${Nr}/addon/auth?poll_code=${j}${Y?"&force_sign_in=true":""}`;O(!0),R&&!R.closed?R.location.href=X:window.open(X,"uiparity-signin",H),n(),t.current=setTimeout(()=>{O(!1),m()},9e4),w.debug("[useAuth] Starting OAuth poll for token..."),v(j)}catch(te){w.error("[useAuth] OAuth flow error:",te),x(`Connection failed. Is the dashboard running at ${Nr}?`),O(!1),R?.close()}},[x,v,n,m]),E=to(async()=>{try{let P=await fetch(`${Nr}/api/addon/auth/device`,{method:"POST"});if(!P.ok)throw new Error("Failed to start device code flow");let _=await P.json();f(_.device_code),y(_.user_code),I(_.verification_uri),window.open(_.verification_uri,"_blank"),h(_.device_code,_.interval*1e3)}catch(P){throw w.error("[useAuth] Device code flow error:",P),P}},[f,y,I]),h=to((P,_)=>{w.debug("[useAuth] Starting polling. Device code:",P,"Interval:",_),e.current&&clearInterval(e.current);let T=async()=>{try{let H=await(await fetch(`${Nr}/api/addon/auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:P})})).json();H.status==="authorized"?(w.debug("[useAuth] Device code authorization successful!"),e.current&&(clearInterval(e.current),e.current=null),f(null),y(null),I(null),localStorage.setItem("uicopilot_session_token",H.session_token),p(H.session_token),O(!1)):(H.status==="expired"||H.status==="denied")&&(w.debug("[useAuth] Device code expired or denied"),e.current&&(clearInterval(e.current),e.current=null),f(null),y(null),I(null))}catch(D){w.error("[useAuth] Polling error:",D)}};e.current=setInterval(T,_),S(_)},[f,y,I,p,S]),b=to(()=>{e.current&&(clearInterval(e.current),e.current=null),f(null),y(null),I(null),S(null)},[f,y,I,S]),F=to(P=>{g(P),p(P),localStorage.setItem("uicopilot_api_key",P)},[g,p]),C=to(async()=>{if(r)try{await Q(`${Nr}/api/addon/auth/sign-out`,{method:"POST",headers:{Authorization:`Bearer ${r}`}})}catch{}M(),O(!1),e.current&&(clearInterval(e.current),e.current=null),m()},[r,M,m]),A=to(async()=>{N(!0),x(null);try{let P=await Q(`${Nr}/api/anonymous/session`,{method:"POST"});if(!P.ok)throw new Error(`anonymous session ${P.status}`);let _=await P.json();if(!_?.token)throw new Error("anonymous session: no token");p(_.token)}catch{x("Couldn't start a guest session. Please try again.")}finally{N(!1)}},[p,x]),B=to(()=>{r&&r.startsWith("uic_anon_")&&(Jv(r),typeof localStorage<"u"&&localStorage.removeItem("uicopilot_force_sign_in")),k()},[r,k]);return Om(()=>{!r||r.startsWith("uic_anon_")||Qv(r).then(P=>{P!==null&&w.info(`[useAuth] Guest work claimed (${P} project${P===1?"":"s"}).`)}).catch(P=>{w.error("[useAuth] Guest claim failed:",P)})},[r]),Om(()=>()=>{e.current&&clearInterval(e.current),n()},[n]),{sessionToken:r,apiKey:o,authMethod:i,deviceCode:a,userCode:s,verificationUri:u,isConnected:c,authError:l,oauthPending:z,anonPending:L,isAnonymous:!!r&&r.startsWith("uic_anon_"),setAuthMethod:d,startOAuth:k,startAnonymous:A,signUpToSave:B,startDeviceCode:E,cancelDeviceCode:b,saveApiKey:F,logout:C}};Se();Ue();De();ut();import{useCallback as tu}from"react";var qs=K(),Ir=()=>{let{projects:e,selectedProjectId:t,loadingProjects:n,setProjects:r,setSelectedProjectId:o,setLoadingProjects:i,getSelectedProject:a}=Ke(),{sessionToken:s}=he(),u=tu(async()=>{if(!s){w.debug("[useProjects] No session token, skipping fetch");return}try{i(!0),w.debug("[useProjects] Fetching from:",`${qs}/api/projects`);let g=await Q(`${qs}/api/projects`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`}});if(g.ok){let d=await g.json();w.debug("[useProjects] Projects:",d.projects),r(d.projects||[])}else w.error("[useProjects] Failed to fetch projects:",g.status,g.statusText)}catch(g){w.error("[useProjects] Error fetching projects:",g)}finally{i(!1)}},[s,r,i]),c=tu(async g=>{if(!s)throw new Error("Not authenticated");let d=await Q(`${qs}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(g)});if(!d.ok)throw new Error("Failed to create project");let f=await d.json();return await u(),f.project},[s,u]),l=tu(async(g,d)=>{if(!s)throw new Error("Not authenticated");let f={};if(d.name!==void 0&&(f.name=d.name),d.description!==void 0&&(f.description=d.description),d.figmaFileUrl!==void 0&&(f.figmaFileId=d.figmaFileUrl===""?null:d.figmaFileUrl),!(await Q(`${qs}/api/projects/${g}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(f)})).ok)throw new Error("Failed to update project");await u()},[s,u]),p=tu(async g=>{if(!s)throw new Error("Not authenticated");if(!(await Q(`${qs}/api/projects/${g}`,{method:"DELETE",headers:{Authorization:`Bearer ${s}`}})).ok)throw new Error("Failed to delete project");await u(),t===g&&o(null)},[s,t,u,o]);return{projects:e,selectedProjectId:t,selectedProject:a(),loadingProjects:n,setSelectedProjectId:o,fetchProjects:u,createProject:c,updateProject:l,deleteProject:p}};Se();var Ys=()=>{let{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:a,setFigmaFileUrl:s,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:p}=gt();return{showComponentBrowser:e,figmaFileUrl:t,currentMapping:n,mappingSource:r,loadingMapping:o,showFigmaQuality:i,setShowComponentBrowser:a,setFigmaFileUrl:s,setCurrentMapping:u,setMappingSource:c,setLoadingMapping:l,setShowFigmaQuality:p,openComponentBrowser:()=>a(!0),closeComponentBrowser:()=>a(!1)}};Se();Vm();au();import{useCallback as rl,useRef as hu}from"react";Ue();function su(){return new Promise(e=>{let t=document.getElementById("storybook-preview-iframe");if(!t||!t.contentWindow){w.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();w.debug("[iframeReload] Triggering cache-busted reload:",o);let i=setTimeout(()=>{w.warn("[iframeReload] Iframe reload timed out after 5s"),t.removeEventListener("load",a),e()},5e3),a=()=>{clearTimeout(i),t.removeEventListener("load",a),w.debug("[iframeReload] Iframe loaded, waiting for HMR and styles to settle..."),setTimeout(()=>{w.debug("[iframeReload] Iframe reloaded and styles should be fresh"),e()},2e3)};t.addEventListener("load",a),t.contentWindow.location.href=o})}function lu(e){return e&&e!=="admin"?{"X-UIC-Role-Preview":e}:{}}var cu=BigInt(4294967295),xS=BigInt(32);function Sz(e,t=!1){return t?{h:Number(e&cu),l:Number(e>>xS&cu)}:{h:Number(e>>xS&cu)|0,l:Number(e&cu)|0}}function yS(e,t=!1){let n=e.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let i=0;i<n;i++){let{h:a,l:s}=Sz(e[i],t);[r[i],o[i]]=[a,s]}return[r,o]}var bS=(e,t,n)=>e<<n|t>>>32-n,wS=(e,t,n)=>t<<n|e>>>32-n,vS=(e,t,n)=>t<<n-32|e>>>64-n,SS=(e,t,n)=>e<<n-32|t>>>64-n;function kz(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Km(e,t=""){if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function uu(e,t,n=""){let r=kz(e),o=e?.length,i=t!==void 0;if(!r||i&&o!==t){let a=n&&`"${n}" `,s=i?` of length ${t}`:"",u=r?`length=${o}`:`type=${typeof e}`;throw new Error(a+"expected Uint8Array"+s+", got "+u)}return e}function Xm(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 kS(e,t){uu(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 CS(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Jm(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}var Cz=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Iz(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Tz(e){for(let t=0;t<e.length;t++)e[t]=Iz(e[t]);return e}var Qm=Cz?e=>e:Tz;function IS(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 TS=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var Ez=BigInt(0),Zs=BigInt(1),Rz=BigInt(2),Az=BigInt(7),Fz=BigInt(256),Pz=BigInt(113),AS=[],FS=[],PS=[];for(let e=0,t=Zs,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],AS.push(2*(5*r+n)),FS.push((e+1)*(e+2)/2%64);let o=Ez;for(let i=0;i<7;i++)t=(t<<Zs^(t>>Az)*Pz)%Fz,t&Rz&&(o^=Zs<<(Zs<<BigInt(i))-Zs);PS.push(o)}var MS=yS(PS,!0),Mz=MS[0],Lz=MS[1],ES=(e,t,n)=>n>32?vS(e,t,n):bS(e,t,n),RS=(e,t,n)=>n>32?SS(e,t,n):wS(e,t,n);function Bz(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let a=0;a<10;a++)n[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let s=(a+8)%10,u=(a+2)%10,c=n[u],l=n[u+1],p=ES(c,l,1)^n[s],g=RS(c,l,1)^n[s+1];for(let d=0;d<50;d+=10)e[a+d]^=p,e[a+d+1]^=g}let o=e[2],i=e[3];for(let a=0;a<24;a++){let s=FS[a],u=ES(o,i,s),c=RS(o,i,s),l=AS[a];o=e[l],i=e[l+1],e[l]=u,e[l+1]=c}for(let a=0;a<50;a+=10){for(let s=0;s<10;s++)n[s]=e[a+s];for(let s=0;s<10;s++)e[a+s]^=~n[(s+2)%10]&n[(s+4)%10]}e[0]^=Mz[r],e[1]^=Lz[r]}Jm(n)}var Zm=class e{constructor(t,n,r,o=!1,i=24){Pr(this,"state");Pr(this,"pos",0);Pr(this,"posOut",0);Pr(this,"finished",!1);Pr(this,"state32");Pr(this,"destroyed",!1);Pr(this,"blockLen");Pr(this,"suffix");Pr(this,"outputLen");Pr(this,"enableXOF",!1);Pr(this,"rounds");if(this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,Km(r,"outputLen"),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=CS(this.state)}clone(){return this._cloneInto()}keccak(){Qm(this.state32),Bz(this.state32,this.rounds),Qm(this.state32),this.posOut=0,this.pos=0}update(t){Xm(this),uu(t);let{blockLen:n,state:r}=this,o=t.length;for(let i=0;i<o;){let a=Math.min(n-this.pos,o-i);for(let s=0;s<a;s++)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){Xm(this,!1),uu(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 a=Math.min(r-this.posOut,i-o);t.set(n.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Km(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(kS(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,Jm(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:a}=this;return t||(t=new e(n,r,o,a,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=a,t.destroyed=this.destroyed,t}},zz=(e,t,n,r={})=>IS(()=>new Zm(t,e,n),r);var LS=zz(6,72,64,TS(10));var Dz=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,eh=Math.ceil,Or=Math.floor,gr="[BigNumber Error] ",BS=gr+"Number primitive has more than 15 significant digits: ",ro=1e14,nt=14,th=9007199254740991,nh=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],ii=1e7,Mn=1e9;function zS(e){var t,n,r,o=x.prototype={constructor:x,toString:null,valueOf:null},i=new x(1),a=20,s=4,u=-7,c=21,l=-1e7,p=1e7,g=!1,d=1,f=0,y={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},I="0123456789abcdefghijklmnopqrstuvwxyz",S=!0;function x(m,v){var k,E,h,b,F,C,A,B,P=this;if(!(P instanceof x))return new x(m,v);if(v==null){if(m&&m._isBigNumber===!0){P.s=m.s,!m.c||m.e>p?P.c=P.e=null:m.e<l?P.c=[P.e=0]:(P.e=m.e,P.c=m.c.slice());return}if((C=typeof m=="number")&&m*0==0){if(P.s=1/m<0?(m=-m,-1):1,m===~~m){for(b=0,F=m;F>=10;F/=10,b++);b>p?P.c=P.e=null:(P.e=b,P.c=[m]);return}B=String(m)}else{if(!Dz.test(B=String(m)))return r(P,B,C);P.s=B.charCodeAt(0)==45?(B=B.slice(1),-1):1}(b=B.indexOf("."))>-1&&(B=B.replace(".","")),(F=B.search(/e/i))>0?(b<0&&(b=F),b+=+B.slice(F+1),B=B.substring(0,F)):b<0&&(b=B.length)}else{if(rn(v,2,I.length,"Base"),v==10&&S)return P=new x(m),L(P,a+P.e+1,s);if(B=String(m),C=typeof m=="number"){if(m*0!=0)return r(P,B,C,v);if(P.s=1/m<0?(B=B.slice(1),-1):1,x.DEBUG&&B.replace(/^0\.0*|\./,"").length>15)throw Error(BS+m)}else P.s=B.charCodeAt(0)===45?(B=B.slice(1),-1):1;for(k=I.slice(0,v),b=F=0,A=B.length;F<A;F++)if(k.indexOf(E=B.charAt(F))<0){if(E=="."){if(F>b){b=A;continue}}else if(!h&&(B==B.toUpperCase()&&(B=B.toLowerCase())||B==B.toLowerCase()&&(B=B.toUpperCase()))){h=!0,F=-1,b=0;continue}return r(P,String(m),C,v)}C=!1,B=n(B,v,10,P.s),(b=B.indexOf("."))>-1?B=B.replace(".",""):b=B.length}for(F=0;B.charCodeAt(F)===48;F++);for(A=B.length;B.charCodeAt(--A)===48;);if(B=B.slice(F,++A)){if(A-=F,C&&x.DEBUG&&A>15&&(m>th||m!==Or(m)))throw Error(BS+P.s*m);if((b=b-F-1)>p)P.c=P.e=null;else if(b<l)P.c=[P.e=0];else{if(P.e=b,P.c=[],F=(b+1)%nt,b<0&&(F+=nt),F<A){for(F&&P.c.push(+B.slice(0,F)),A-=nt;F<A;)P.c.push(+B.slice(F,F+=nt));F=nt-(B=B.slice(F)).length}else F-=A;for(;F--;B+="0");P.c.push(+B)}}else P.c=[P.e=0]}x.clone=zS,x.ROUND_UP=0,x.ROUND_DOWN=1,x.ROUND_CEIL=2,x.ROUND_FLOOR=3,x.ROUND_HALF_UP=4,x.ROUND_HALF_DOWN=5,x.ROUND_HALF_EVEN=6,x.ROUND_HALF_CEIL=7,x.ROUND_HALF_FLOOR=8,x.EUCLID=9,x.config=x.set=function(m){var v,k;if(m!=null)if(typeof m=="object"){if(m.hasOwnProperty(v="DECIMAL_PLACES")&&(k=m[v],rn(k,0,Mn,v),a=k),m.hasOwnProperty(v="ROUNDING_MODE")&&(k=m[v],rn(k,0,8,v),s=k),m.hasOwnProperty(v="EXPONENTIAL_AT")&&(k=m[v],k&&k.pop?(rn(k[0],-Mn,0,v),rn(k[1],0,Mn,v),u=k[0],c=k[1]):(rn(k,-Mn,Mn,v),u=-(c=k<0?-k:k))),m.hasOwnProperty(v="RANGE"))if(k=m[v],k&&k.pop)rn(k[0],-Mn,-1,v),rn(k[1],1,Mn,v),l=k[0],p=k[1];else if(rn(k,-Mn,Mn,v),k)l=-(p=k<0?-k:k);else throw Error(gr+v+" cannot be zero: "+k);if(m.hasOwnProperty(v="CRYPTO"))if(k=m[v],k===!!k)if(k)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))g=k;else throw g=!k,Error(gr+"crypto unavailable");else g=k;else throw Error(gr+v+" not true or false: "+k);if(m.hasOwnProperty(v="MODULO_MODE")&&(k=m[v],rn(k,0,9,v),d=k),m.hasOwnProperty(v="POW_PRECISION")&&(k=m[v],rn(k,0,Mn,v),f=k),m.hasOwnProperty(v="FORMAT"))if(k=m[v],typeof k=="object")y=k;else throw Error(gr+v+" not an object: "+k);if(m.hasOwnProperty(v="ALPHABET"))if(k=m[v],typeof k=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(k))S=k.slice(0,10)=="0123456789",I=k;else throw Error(gr+v+" invalid: "+k)}else throw Error(gr+"Object expected: "+m);return{DECIMAL_PLACES:a,ROUNDING_MODE:s,EXPONENTIAL_AT:[u,c],RANGE:[l,p],CRYPTO:g,MODULO_MODE:d,POW_PRECISION:f,FORMAT:y,ALPHABET:I}},x.isBigNumber=function(m){if(!m||m._isBigNumber!==!0)return!1;if(!x.DEBUG)return!0;var v,k,E=m.c,h=m.e,b=m.s;e:if({}.toString.call(E)=="[object Array]"){if((b===1||b===-1)&&h>=-Mn&&h<=Mn&&h===Or(h)){if(E[0]===0){if(h===0&&E.length===1)return!0;break e}if(v=(h+1)%nt,v<1&&(v+=nt),String(E[0]).length==v){for(v=0;v<E.length;v++)if(k=E[v],k<0||k>=ro||k!==Or(k))break e;if(k!==0)return!0}}}else if(E===null&&h===null&&(b===null||b===1||b===-1))return!0;throw Error(gr+"Invalid BigNumber: "+m)},x.maximum=x.max=function(){return z(arguments,-1)},x.minimum=x.min=function(){return z(arguments,1)},x.random=(function(){var m=9007199254740992,v=Math.random()*m&2097151?function(){return Or(Math.random()*m)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(k){var E,h,b,F,C,A=0,B=[],P=new x(i);if(k==null?k=a:rn(k,0,Mn),F=eh(k/nt),g)if(crypto.getRandomValues){for(E=crypto.getRandomValues(new Uint32Array(F*=2));A<F;)C=E[A]*131072+(E[A+1]>>>11),C>=9e15?(h=crypto.getRandomValues(new Uint32Array(2)),E[A]=h[0],E[A+1]=h[1]):(B.push(C%1e14),A+=2);A=F/2}else if(crypto.randomBytes){for(E=crypto.randomBytes(F*=7);A<F;)C=(E[A]&31)*281474976710656+E[A+1]*1099511627776+E[A+2]*4294967296+E[A+3]*16777216+(E[A+4]<<16)+(E[A+5]<<8)+E[A+6],C>=9e15?crypto.randomBytes(7).copy(E,A):(B.push(C%1e14),A+=7);A=F/7}else throw g=!1,Error(gr+"crypto unavailable");if(!g)for(;A<F;)C=v(),C<9e15&&(B[A++]=C%1e14);for(F=B[--A],k%=nt,F&&k&&(C=nh[nt-k],B[A]=Or(F/C)*C);B[A]===0;B.pop(),A--);if(A<0)B=[b=0];else{for(b=-1;B[0]===0;B.splice(0,1),b-=nt);for(A=1,C=B[0];C>=10;C/=10,A++);A<nt&&(b-=nt-A)}return P.e=b,P.c=B,P}})(),x.sum=function(){for(var m=1,v=arguments,k=new x(v[0]);m<v.length;)k=k.plus(v[m++]);return k},n=(function(){var m="0123456789";function v(k,E,h,b){for(var F,C=[0],A,B=0,P=k.length;B<P;){for(A=C.length;A--;C[A]*=E);for(C[0]+=b.indexOf(k.charAt(B++)),F=0;F<C.length;F++)C[F]>h-1&&(C[F+1]==null&&(C[F+1]=0),C[F+1]+=C[F]/h|0,C[F]%=h)}return C.reverse()}return function(k,E,h,b,F){var C,A,B,P,_,T,D,H,R=k.indexOf("."),te=a,j=s;for(R>=0&&(P=f,f=0,k=k.replace(".",""),H=new x(E),T=H.pow(k.length-R),f=P,H.c=v($o(_r(T.c),T.e,"0"),10,h,m),H.e=H.c.length),D=v(k,E,h,F?(C=I,m):(C=m,I)),B=P=D.length;D[--P]==0;D.pop());if(!D[0])return C.charAt(0);if(R<0?--B:(T.c=D,T.e=B,T.s=b,T=t(T,H,te,j,h),D=T.c,_=T.r,B=T.e),A=B+te+1,R=D[A],P=h/2,_=_||A<0||D[A+1]!=null,_=j<4?(R!=null||_)&&(j==0||j==(T.s<0?3:2)):R>P||R==P&&(j==4||_||j==6&&D[A-1]&1||j==(T.s<0?8:7)),A<1||!D[0])k=_?$o(C.charAt(1),-te,C.charAt(0)):C.charAt(0);else{if(D.length=A,_)for(--h;++D[--A]>h;)D[A]=0,A||(++B,D=[1].concat(D));for(P=D.length;!D[--P];);for(R=0,k="";R<=P;k+=C.charAt(D[R++]));k=$o(k,B,C.charAt(0))}return k}})(),t=(function(){function m(E,h,b){var F,C,A,B,P=0,_=E.length,T=h%ii,D=h/ii|0;for(E=E.slice();_--;)A=E[_]%ii,B=E[_]/ii|0,F=D*A+B*T,C=T*A+F%ii*ii+P,P=(C/b|0)+(F/ii|0)+D*B,E[_]=C%b;return P&&(E=[P].concat(E)),E}function v(E,h,b,F){var C,A;if(b!=F)A=b>F?1:-1;else for(C=A=0;C<b;C++)if(E[C]!=h[C]){A=E[C]>h[C]?1:-1;break}return A}function k(E,h,b,F){for(var C=0;b--;)E[b]-=C,C=E[b]<h[b]?1:0,E[b]=C*F+E[b]-h[b];for(;!E[0]&&E.length>1;E.splice(0,1));}return function(E,h,b,F,C){var A,B,P,_,T,D,H,R,te,j,Y,X,ne,Te,ye,de,Fe,ge=E.s==h.s?1:-1,Me=E.c,pe=h.c;if(!Me||!Me[0]||!pe||!pe[0])return new x(!E.s||!h.s||(Me?pe&&Me[0]==pe[0]:!pe)?NaN:Me&&Me[0]==0||!pe?ge*0:ge/0);for(R=new x(ge),te=R.c=[],B=E.e-h.e,ge=b+B+1,C||(C=ro,B=$r(E.e/nt)-$r(h.e/nt),ge=ge/nt|0),P=0;pe[P]==(Me[P]||0);P++);if(pe[P]>(Me[P]||0)&&B--,ge<0)te.push(1),_=!0;else{for(Te=Me.length,de=pe.length,P=0,ge+=2,T=Or(C/(pe[0]+1)),T>1&&(pe=m(pe,T,C),Me=m(Me,T,C),de=pe.length,Te=Me.length),ne=de,j=Me.slice(0,de),Y=j.length;Y<de;j[Y++]=0);Fe=pe.slice(),Fe=[0].concat(Fe),ye=pe[0],pe[1]>=C/2&&ye++;do{if(T=0,A=v(pe,j,de,Y),A<0){if(X=j[0],de!=Y&&(X=X*C+(j[1]||0)),T=Or(X/ye),T>1)for(T>=C&&(T=C-1),D=m(pe,T,C),H=D.length,Y=j.length;v(D,j,H,Y)==1;)T--,k(D,de<H?Fe:pe,H,C),H=D.length,A=1;else T==0&&(A=T=1),D=pe.slice(),H=D.length;if(H<Y&&(D=[0].concat(D)),k(j,D,Y,C),Y=j.length,A==-1)for(;v(pe,j,de,Y)<1;)T++,k(j,de<Y?Fe:pe,Y,C),Y=j.length}else A===0&&(T++,j=[0]);te[P++]=T,j[0]?j[Y++]=Me[ne]||0:(j=[Me[ne]],Y=1)}while((ne++<Te||j[0]!=null)&&ge--);_=j[0]!=null,te[0]||te.splice(0,1)}if(C==ro){for(P=1,ge=te[0];ge>=10;ge/=10,P++);L(R,b+(R.e=P+B*nt-1)+1,F,_)}else R.e=B,R.r=+_;return R}})();function M(m,v,k,E){var h,b,F,C,A;if(k==null?k=s:rn(k,0,8),!m.c)return m.toString();if(h=m.c[0],F=m.e,v==null)A=_r(m.c),A=E==1||E==2&&(F<=u||F>=c)?pu(A,F):$o(A,F,"0");else if(m=L(new x(m),v,k),b=m.e,A=_r(m.c),C=A.length,E==1||E==2&&(v<=b||b<=u)){for(;C<v;A+="0",C++);A=pu(A,b)}else if(v-=F+(E===2&&b>F),A=$o(A,b,"0"),b+1>C){if(--v>0)for(A+=".";v--;A+="0");}else if(v+=b-C,v>0)for(b+1==C&&(A+=".");v--;A+="0");return m.s<0&&h?"-"+A:A}function z(m,v){for(var k,E,h=1,b=new x(m[0]);h<m.length;h++)E=new x(m[h]),(!E.s||(k=Ni(b,E))===v||k===0&&b.s===v)&&(b=E);return b}function O(m,v,k){for(var E=1,h=v.length;!v[--h];v.pop());for(h=v[0];h>=10;h/=10,E++);return(k=E+k*nt-1)>p?m.c=m.e=null:k<l?m.c=[m.e=0]:(m.e=k,m.c=v),m}r=(function(){var m=/^(-?)0([xbo])(?=\w[\w.]*$)/i,v=/^([^.]+)\.$/,k=/^\.([^.]+)$/,E=/^-?(Infinity|NaN)$/,h=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(b,F,C,A){var B,P=C?F:F.replace(h,"");if(E.test(P))b.s=isNaN(P)?null:P<0?-1:1;else{if(!C&&(P=P.replace(m,function(_,T,D){return B=(D=D.toLowerCase())=="x"?16:D=="b"?2:8,!A||A==B?T:_}),A&&(B=A,P=P.replace(v,"$1").replace(k,"0.$1")),F!=P))return new x(P,B);if(x.DEBUG)throw Error(gr+"Not a"+(A?" base "+A:"")+" number: "+F);b.s=null}b.c=b.e=null}})();function L(m,v,k,E){var h,b,F,C,A,B,P,_=m.c,T=nh;if(_){e:{for(h=1,C=_[0];C>=10;C/=10,h++);if(b=v-h,b<0)b+=nt,F=v,A=_[B=0],P=Or(A/T[h-F-1]%10);else if(B=eh((b+1)/nt),B>=_.length)if(E){for(;_.length<=B;_.push(0));A=P=0,h=1,b%=nt,F=b-nt+1}else break e;else{for(A=C=_[B],h=1;C>=10;C/=10,h++);b%=nt,F=b-nt+h,P=F<0?0:Or(A/T[h-F-1]%10)}if(E=E||v<0||_[B+1]!=null||(F<0?A:A%T[h-F-1]),E=k<4?(P||E)&&(k==0||k==(m.s<0?3:2)):P>5||P==5&&(k==4||E||k==6&&(b>0?F>0?A/T[h-F]:0:_[B-1])%10&1||k==(m.s<0?8:7)),v<1||!_[0])return _.length=0,E?(v-=m.e+1,_[0]=T[(nt-v%nt)%nt],m.e=-v||0):_[0]=m.e=0,m;if(b==0?(_.length=B,C=1,B--):(_.length=B+1,C=T[nt-b],_[B]=F>0?Or(A/T[h-F]%T[F])*C:0),E)for(;;)if(B==0){for(b=1,F=_[0];F>=10;F/=10,b++);for(F=_[0]+=C,C=1;F>=10;F/=10,C++);b!=C&&(m.e++,_[0]==ro&&(_[0]=1));break}else{if(_[B]+=C,_[B]!=ro)break;_[B--]=0,C=1}for(b=_.length;_[--b]===0;_.pop());}m.e>p?m.c=m.e=null:m.e<l&&(m.c=[m.e=0])}return m}function N(m){var v,k=m.e;return k===null?m.toString():(v=_r(m.c),v=k<=u||k>=c?pu(v,k):$o(v,k,"0"),m.s<0?"-"+v:v)}return o.absoluteValue=o.abs=function(){var m=new x(this);return m.s<0&&(m.s=1),m},o.comparedTo=function(m,v){return Ni(this,new x(m,v))},o.decimalPlaces=o.dp=function(m,v){var k,E,h,b=this;if(m!=null)return rn(m,0,Mn),v==null?v=s:rn(v,0,8),L(new x(b),m+b.e+1,v);if(!(k=b.c))return null;if(E=((h=k.length-1)-$r(this.e/nt))*nt,h=k[h])for(;h%10==0;h/=10,E--);return E<0&&(E=0),E},o.dividedBy=o.div=function(m,v){return t(this,new x(m,v),a,s)},o.dividedToIntegerBy=o.idiv=function(m,v){return t(this,new x(m,v),0,1)},o.exponentiatedBy=o.pow=function(m,v){var k,E,h,b,F,C,A,B,P,_=this;if(m=new x(m),m.c&&!m.isInteger())throw Error(gr+"Exponent not an integer: "+N(m));if(v!=null&&(v=new x(v)),C=m.e>14,!_.c||!_.c[0]||_.c[0]==1&&!_.e&&_.c.length==1||!m.c||!m.c[0])return P=new x(Math.pow(+N(_),C?m.s*(2-du(m)):+N(m))),v?P.mod(v):P;if(A=m.s<0,v){if(v.c?!v.c[0]:!v.s)return new x(NaN);E=!A&&_.isInteger()&&v.isInteger(),E&&(_=_.mod(v))}else{if(m.e>9&&(_.e>0||_.e<-1||(_.e==0?_.c[0]>1||C&&_.c[1]>=24e7:_.c[0]<8e13||C&&_.c[0]<=9999975e7)))return b=_.s<0&&du(m)?-0:0,_.e>-1&&(b=1/b),new x(A?1/b:b);f&&(b=eh(f/nt+2))}for(C?(k=new x(.5),A&&(m.s=1),B=du(m)):(h=Math.abs(+N(m)),B=h%2),P=new x(i);;){if(B){if(P=P.times(_),!P.c)break;b?P.c.length>b&&(P.c.length=b):E&&(P=P.mod(v))}if(h){if(h=Or(h/2),h===0)break;B=h%2}else if(m=m.times(k),L(m,m.e+1,1),m.e>14)B=du(m);else{if(h=+N(m),h===0)break;B=h%2}_=_.times(_),b?_.c&&_.c.length>b&&(_.c.length=b):E&&(_=_.mod(v))}return E?P:(A&&(P=i.div(P)),v?P.mod(v):b?L(P,f,s,F):P)},o.integerValue=function(m){var v=new x(this);return m==null?m=s:rn(m,0,8),L(v,v.e+1,m)},o.isEqualTo=o.eq=function(m,v){return Ni(this,new x(m,v))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(m,v){return Ni(this,new x(m,v))>0},o.isGreaterThanOrEqualTo=o.gte=function(m,v){return(v=Ni(this,new x(m,v)))===1||v===0},o.isInteger=function(){return!!this.c&&$r(this.e/nt)>this.c.length-2},o.isLessThan=o.lt=function(m,v){return Ni(this,new x(m,v))<0},o.isLessThanOrEqualTo=o.lte=function(m,v){return(v=Ni(this,new x(m,v)))===-1||v===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(m,v){var k,E,h,b,F=this,C=F.s;if(m=new x(m,v),v=m.s,!C||!v)return new x(NaN);if(C!=v)return m.s=-v,F.plus(m);var A=F.e/nt,B=m.e/nt,P=F.c,_=m.c;if(!A||!B){if(!P||!_)return P?(m.s=-v,m):new x(_?F:NaN);if(!P[0]||!_[0])return _[0]?(m.s=-v,m):new x(P[0]?F:s==3?-0:0)}if(A=$r(A),B=$r(B),P=P.slice(),C=A-B){for((b=C<0)?(C=-C,h=P):(B=A,h=_),h.reverse(),v=C;v--;h.push(0));h.reverse()}else for(E=(b=(C=P.length)<(v=_.length))?C:v,C=v=0;v<E;v++)if(P[v]!=_[v]){b=P[v]<_[v];break}if(b&&(h=P,P=_,_=h,m.s=-m.s),v=(E=_.length)-(k=P.length),v>0)for(;v--;P[k++]=0);for(v=ro-1;E>C;){if(P[--E]<_[E]){for(k=E;k&&!P[--k];P[k]=v);--P[k],P[E]+=ro}P[E]-=_[E]}for(;P[0]==0;P.splice(0,1),--B);return P[0]?O(m,P,B):(m.s=s==3?-1:1,m.c=[m.e=0],m)},o.modulo=o.mod=function(m,v){var k,E,h=this;return m=new x(m,v),!h.c||!m.s||m.c&&!m.c[0]?new x(NaN):!m.c||h.c&&!h.c[0]?new x(h):(d==9?(E=m.s,m.s=1,k=t(h,m,0,3),m.s=E,k.s*=E):k=t(h,m,0,d),m=h.minus(k.times(m)),!m.c[0]&&d==1&&(m.s=h.s),m)},o.multipliedBy=o.times=function(m,v){var k,E,h,b,F,C,A,B,P,_,T,D,H,R,te,j=this,Y=j.c,X=(m=new x(m,v)).c;if(!Y||!X||!Y[0]||!X[0])return!j.s||!m.s||Y&&!Y[0]&&!X||X&&!X[0]&&!Y?m.c=m.e=m.s=null:(m.s*=j.s,!Y||!X?m.c=m.e=null:(m.c=[0],m.e=0)),m;for(E=$r(j.e/nt)+$r(m.e/nt),m.s*=j.s,A=Y.length,_=X.length,A<_&&(H=Y,Y=X,X=H,h=A,A=_,_=h),h=A+_,H=[];h--;H.push(0));for(R=ro,te=ii,h=_;--h>=0;){for(k=0,T=X[h]%te,D=X[h]/te|0,F=A,b=h+F;b>h;)B=Y[--F]%te,P=Y[F]/te|0,C=D*B+P*T,B=T*B+C%te*te+H[b]+k,k=(B/R|0)+(C/te|0)+D*P,H[b--]=B%R;H[b]=k}return k?++E:H.splice(0,1),O(m,H,E)},o.negated=function(){var m=new x(this);return m.s=-m.s||null,m},o.plus=function(m,v){var k,E=this,h=E.s;if(m=new x(m,v),v=m.s,!h||!v)return new x(NaN);if(h!=v)return m.s=-v,E.minus(m);var b=E.e/nt,F=m.e/nt,C=E.c,A=m.c;if(!b||!F){if(!C||!A)return new x(h/0);if(!C[0]||!A[0])return A[0]?m:new x(C[0]?E:h*0)}if(b=$r(b),F=$r(F),C=C.slice(),h=b-F){for(h>0?(F=b,k=A):(h=-h,k=C),k.reverse();h--;k.push(0));k.reverse()}for(h=C.length,v=A.length,h-v<0&&(k=A,A=C,C=k,v=h),h=0;v;)h=(C[--v]=C[v]+A[v]+h)/ro|0,C[v]=ro===C[v]?0:C[v]%ro;return h&&(C=[h].concat(C),++F),O(m,C,F)},o.precision=o.sd=function(m,v){var k,E,h,b=this;if(m!=null&&m!==!!m)return rn(m,1,Mn),v==null?v=s:rn(v,0,8),L(new x(b),m,v);if(!(k=b.c))return null;if(h=k.length-1,E=h*nt+1,h=k[h]){for(;h%10==0;h/=10,E--);for(h=k[0];h>=10;h/=10,E++);}return m&&b.e+1>E&&(E=b.e+1),E},o.shiftedBy=function(m){return rn(m,-th,th),this.times("1e"+m)},o.squareRoot=o.sqrt=function(){var m,v,k,E,h,b=this,F=b.c,C=b.s,A=b.e,B=a+4,P=new x("0.5");if(C!==1||!F||!F[0])return new x(!C||C<0&&(!F||F[0])?NaN:F?b:1/0);if(C=Math.sqrt(+N(b)),C==0||C==1/0?(v=_r(F),(v.length+A)%2==0&&(v+="0"),C=Math.sqrt(+v),A=$r((A+1)/2)-(A<0||A%2),C==1/0?v="5e"+A:(v=C.toExponential(),v=v.slice(0,v.indexOf("e")+1)+A),k=new x(v)):k=new x(C+""),k.c[0]){for(A=k.e,C=A+B,C<3&&(C=0);;)if(h=k,k=P.times(h.plus(t(b,h,B,1))),_r(h.c).slice(0,C)===(v=_r(k.c)).slice(0,C))if(k.e<A&&--C,v=v.slice(C-3,C+1),v=="9999"||!E&&v=="4999"){if(!E&&(L(h,h.e+a+2,0),h.times(h).eq(b))){k=h;break}B+=4,C+=4,E=1}else{(!+v||!+v.slice(1)&&v.charAt(0)=="5")&&(L(k,k.e+a+2,1),m=!k.times(k).eq(b));break}}return L(k,k.e+a+1,s,m)},o.toExponential=function(m,v){return m!=null&&(rn(m,0,Mn),m++),M(this,m,v,1)},o.toFixed=function(m,v){return m!=null&&(rn(m,0,Mn),m=m+this.e+1),M(this,m,v)},o.toFormat=function(m,v,k){var E,h=this;if(k==null)m!=null&&v&&typeof v=="object"?(k=v,v=null):m&&typeof m=="object"?(k=m,m=v=null):k=y;else if(typeof k!="object")throw Error(gr+"Argument not an object: "+k);if(E=h.toFixed(m,v),h.c){var b,F=E.split("."),C=+k.groupSize,A=+k.secondaryGroupSize,B=k.groupSeparator||"",P=F[0],_=F[1],T=h.s<0,D=T?P.slice(1):P,H=D.length;if(A&&(b=C,C=A,A=b,H-=b),C>0&&H>0){for(b=H%C||C,P=D.substr(0,b);b<H;b+=C)P+=B+D.substr(b,C);A>0&&(P+=B+D.slice(b)),T&&(P="-"+P)}E=_?P+(k.decimalSeparator||"")+((A=+k.fractionGroupSize)?_.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+(k.fractionGroupSeparator||"")):_):P}return(k.prefix||"")+E+(k.suffix||"")},o.toFraction=function(m){var v,k,E,h,b,F,C,A,B,P,_,T,D=this,H=D.c;if(m!=null&&(C=new x(m),!C.isInteger()&&(C.c||C.s!==1)||C.lt(i)))throw Error(gr+"Argument "+(C.isInteger()?"out of range: ":"not an integer: ")+N(C));if(!H)return new x(D);for(v=new x(i),B=k=new x(i),E=A=new x(i),T=_r(H),b=v.e=T.length-D.e-1,v.c[0]=nh[(F=b%nt)<0?nt+F:F],m=!m||C.comparedTo(v)>0?b>0?v:B:C,F=p,p=1/0,C=new x(T),A.c[0]=0;P=t(C,v,0,1),h=k.plus(P.times(E)),h.comparedTo(m)!=1;)k=E,E=h,B=A.plus(P.times(h=B)),A=h,v=C.minus(P.times(h=v)),C=h;return h=t(m.minus(k),E,0,1),A=A.plus(h.times(B)),k=k.plus(h.times(E)),A.s=B.s=D.s,b=b*2,_=t(B,E,b,s).minus(D).abs().comparedTo(t(A,k,b,s).minus(D).abs())<1?[B,E]:[A,k],p=F,_},o.toNumber=function(){return+N(this)},o.toPrecision=function(m,v){return m!=null&&rn(m,1,Mn),M(this,m,v,2)},o.toString=function(m){var v,k=this,E=k.s,h=k.e;return h===null?E?(v="Infinity",E<0&&(v="-"+v)):v="NaN":(m==null?v=h<=u||h>=c?pu(_r(k.c),h):$o(_r(k.c),h,"0"):m===10&&S?(k=L(new x(k),a+h+1,s),v=$o(_r(k.c),k.e,"0")):(rn(m,2,I.length,"Base"),v=n($o(_r(k.c),h,"0"),10,m,E,!0)),E<0&&k.c[0]&&(v="-"+v)),v},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&&x.set(e),x}function $r(e){var t=e|0;return e>0||e===t?t:t-1}function _r(e){for(var t,n,r=1,o=e.length,i=e[0]+"";r<o;){for(t=e[r++]+"",n=nt-t.length;n--;t="0"+t);i+=t}for(o=i.length;i.charCodeAt(--o)===48;);return i.slice(0,o+1||1)}function Ni(e,t){var n,r,o=e.c,i=t.c,a=e.s,s=t.s,u=e.e,c=t.e;if(!a||!s)return null;if(n=o&&!o[0],r=i&&!i[0],n||r)return n?r?0:-s:a;if(a!=s)return a;if(n=a<0,r=u==c,!o||!i)return r?0:!o^n?1:-1;if(!r)return u>c^n?1:-1;for(s=(u=o.length)<(c=i.length)?u:c,a=0;a<s;a++)if(o[a]!=i[a])return o[a]>i[a]^n?1:-1;return u==c?0:u>c^n?1:-1}function rn(e,t,n,r){if(e<t||e>n||e!==Or(e))throw Error(gr+(r||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function du(e){var t=e.c.length-1;return $r(e.e/nt)==t&&e.c[t]%2!=0}function pu(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function $o(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 Nz=zS(),DS=Nz;var _z=24,el=32,Oz=()=>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,oh=Oz(),rh=(e=4,t=oh)=>{let n="";for(;n.length<e;)n=n+Math.floor(t()*36).toString(36);return n};function $z(e){let t=new DS(0);for(let n of e.values())t=t.multipliedBy(256).plus(n);return t}var _S=(e="")=>{let t=new TextEncoder;return $z(LS(t.encode(e))).toString(36).slice(1)},NS=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),Hz=e=>NS[Math.floor(e()*NS.length)],Uz=({globalObj:e=typeof global<"u"?global:typeof window<"u"?window:{},random:t=oh}={})=>{let n=Object.keys(e).toString(),r=n.length?n+rh(el,t):rh(el,t);return _S(r).substring(0,el)},jz=e=>()=>e++,Vz=476782367,OS=({random:e=oh,counter:t=jz(Math.floor(e()*Vz)),length:n=_z,fingerprint:r=Uz({random:e})}={})=>{if(n>el)throw new Error(`Length must be between 2 and ${el}. Received: ${n}`);return function(){let i=Hz(e),a=Date.now().toString(36),s=t().toString(36),u=rh(n,e),c=`${a+u+s+r}`;return`${i+_S(c).substring(1,n)}`}},ai=Wz(OS);function Wz(e){let t;return()=>(t||(t=e()),t())}var Yz=Kl(US());pn();Ue();var gu=/\[([^\]]+)\]\s*\[([^\]]+)\]\s*\[([^\]]+)\]\s*-\s*(.+)/g;function Kz(e){return e.replace(/\*\*/g,"").replace(/\*/g,"").replace(/__/g,"").replace(/_/g," ").trim()}function ih(e,t){let n=[],r=e.split(`
|
|
15
15
|
`);for(let a=0;a<r.length;a++){let s=Kz(r[a]),u=gu.exec(s);if(u){let[,c,l,,p]=u,g=Xz(l),d=Jz(r,a+1),f={id:ai(),reviewId:t,type:c.trim(),severity:g,title:p.trim(),description:d.description,file:d.file,lineNumber:d.lineNumber,property:d.property,currentValue:d.currentValue,suggestedValue:d.suggestedValue,suggestedCode:d.suggestedCode,suggestedFix:d.suggestedFix,fixTarget:d.fixTarget,fixRequired:d.fixRequired,status:"pending",selectedForFix:!1,createdAt:new Date};n.push(f)}gu.lastIndex=0}return n.map(a=>{let s=Hs(a);return s.dismissed?(w.debug(`[parseIssues] Auto-dismissed: ${a.title} - ${s.dismissReason}`),{...a,dismissed:!0,dismissReason:s.dismissReason,dismissedBy:s.dismissedBy,dismissedAt:new Date}):a})}function Xz(e){let t=e.toLowerCase().trim();return t.includes("critical")||t.includes("high")?"critical":t.includes("major")||t.includes("medium")?"major":"minor"}function Jz(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||gu.test(i)){gu.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 a=i.replace("File:","").trim(),s=a.match(/^(.+?):(\d+)$/);s?(n.file=s[1],n.lineNumber=parseInt(s[2],10)):n.file=a}else if(i.startsWith("Property:"))n.property=i.replace("Property:","").trim();else if(i.startsWith("FixTarget:")){let a=i.replace("FixTarget:","").trim().toLowerCase();(a==="css"||a==="component")&&(n.fixTarget=a)}else if(i.startsWith("FixRequired:")){let a=i.replace("FixRequired:","").trim().toLowerCase();n.fixRequired=a==="true"}else if(i.startsWith("Fix:"))n.suggestedFix=i.replace("Fix:","").trim();else if(i.startsWith("```")){let a=[];for(o++;o<e.length&&!e[o].trim().startsWith("```");)a.push(e[o]),o++;n.suggestedCode=a.join(`
|
|
16
16
|
`)}else r.push(i)}return n.description=r.join(" ").trim(),n}Ue();var tl=null,jS=0,Qz=3e4;async function Zz(){let e=Date.now();if(tl&&e-jS<Qz)return tl;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 tl=n.entries||n.stories||{},jS=e,w.debug("[storyFilePaths] Fetched index.json, entries:",Object.keys(tl).length),tl}catch(t){throw w.error("[storyFilePaths] Error fetching index.json:",t),t}}async function _i(e){try{let n=(await Zz())[e];if(!n?.importPath)return w.warn("[storyFilePaths] No importPath found for story:",e),null;let r=n.importPath;w.debug("[storyFilePaths] Found importPath:",r);let o=r.replace(/^\.\//,""),i;n.componentPath?(i=n.componentPath.replace(/^\.\//,""),w.debug("[storyFilePaths] Using Storybook componentPath:",i)):(i=`${o.replace(/\.stories\.tsx$/,"").replace(/\.stories\.ts$/,"").replace(/\.stories\.jsx$/,"").replace(/\.stories\.js$/,"")}.tsx`,w.debug("[storyFilePaths] Derived componentFile:",i));let a=i.replace(/\.tsx$/,".css").replace(/\.ts$/,".css").replace(/\.jsx$/,".css").replace(/\.js$/,".css"),s=i.substring(0,i.lastIndexOf("/")),u={storyFile:o,componentFile:i,cssFile:a,baseDir:s};return w.debug("[storyFilePaths] Final paths:",u),u}catch(t){return w.error("[storyFilePaths] Error getting file paths:",t),null}}function ah(e,t){if(e==="css")return t.cssFile;if(e==="component")return t.componentFile;if(e==="story")return t.storyFile}function eD(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 sh(e,t){let n=e.property?.toLowerCase()||"",r=e.domElement?.toLowerCase()||"",o=r.startsWith("svg"),i=r.startsWith("img"),a=n==="width"||n==="height",s=/\[(?:width|height)=/.test(r);return(o||i)&&a||s?(w.debug(`[storyFilePaths] \u{1F50D} INLINE ATTRIBUTE: domElement="${e.domElement}", property="${e.property}" \u2192 component file`),t.componentFile):eD(e.type,t)}pn();Ue();function tD(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 nD(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 rD(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 oD(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],a=e.length,s,u;if(t.includes("icon")&&n==="dimensions"){let c=e.map(p=>p.currentValue).filter(Boolean),l=e.map(p=>p.suggestedValue).filter(Boolean);s=`Icon sizing is incorrect (${a} related issues)`,u=`Icons are rendered at wrong dimensions. Current: ${c[0]||"10px"}, Expected: ${l[0]||"20px"}. This single CSS fix will resolve all ${a} icon dimension issues.`}else s=`${t} ${n} issues (${a} related)`,u=`${a} related ${n} issues for ${t}. ${i.description}`;return{...i,id:`merged-${t}-${n}-${i.id}`,title:s,description:u,currentValue:i.currentValue,suggestedValue:i.suggestedValue,mergedCount:a,mergedIssueIds:e.map(c=>c.id)}}function lh(e){if(!e||e.length===0)return[];let t=e.filter(i=>!rD(i)),n=[],r=[];for(let i of t){let a=tD(i),s=nD(i);a.includes("icon")&&s==="dimensions"?n.push(i):r.push(i)}let o=[];return n.length>0&&(n.length===1?o.push(n[0]):o.push(oD(n,"icon","dimensions"))),o.push(...r),w.debug("[deduplicateIssues] Input:",e.length,"issues, Output:",o.length,"issues"),w.debug("[deduplicateIssues] Removed",e.length-t.length,"summary issues"),w.debug("[deduplicateIssues] Merged",n.length,"icon issues into",n.length>0?1:0),o}Ue();pn();var iD=[/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],aD=[/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 nl(e){let t=e instanceof Error?e.message:typeof e=="string"?e:"Review failed";return aD.some(n=>n.test(t))?t:iD.some(n=>n.test(t))?`Can't reach ${jt.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)?`${jt.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.replace(/\.+\s*$/,"")}. Try again, or send feedback if this keeps happening.`}De();import{addons as Pa}from"storybook/manager-api";var VS="uicopilot-sidebar-traffic-light",Ea="data-uic-issues",Kn='[aria-label*="Test status" i]',Ra=new Map,ch=null,uh=!1;function mu(e,t){let n=t>0?t:0,r=Ra.get(e)??0;n!==r&&(n>0?Ra.set(e,n):Ra.delete(e),fu())}function GS(){Ra.size!==0&&(Ra.clear(),fu())}function sD(e){let t=e.closest("[data-item-id]")??e.closest('[data-nodetype="story"], [data-nodetype="docs"]')??e.closest("a[id], a[href]");if(!t)return null;let n=t.getAttribute("data-item-id")??t.getAttribute("id");if(n)return n;let o=(t.getAttribute("href")??"").match(/[?&]id=([^&]+)/);return o?decodeURIComponent(o[1]):null}function WS(){typeof document>"u"||document.querySelectorAll(Kn).forEach(e=>{let t=sD(e),n=t?Ra.get(t):void 0;n&&n>0?e.setAttribute(Ea,n>99?"99+":String(n)):e.removeAttribute(Ea)})}function fu(){if(typeof requestAnimationFrame>"u"){WS();return}uh||(uh=!0,requestAnimationFrame(()=>{uh=!1,WS()}))}function qS(){typeof document>"u"||ch||(ch=new MutationObserver(()=>fu()),ch.observe(document.body,{childList:!0,subtree:!0}),fu())}function YS(){if(typeof document>"u"||document.getElementById(VS))return;let e=document.createElement("style");e.id=VS,e.textContent=`
|
|
17
17
|
${Kn}[aria-label*="error" i] svg,
|
|
@@ -71,7 +71,7 @@ ${St}`).join(`
|
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
74
|
-
\u2705 ${se} issue${se>1?"s were":" was"} auto-dismissed as false positive${se>1?"s":""} (values already match design spec). Score recalculated to reflect active issues only.`));let wn=Ge.complianceScore??Ge.validation?.complianceScore;if(w.debug("[Review] Score sources:",{directScore:Ge.complianceScore,validationScore:Ge.validation?.complianceScore,parsedScore:wn}),wn==null){let Be=it.match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i);wn=Be?parseInt(Be[1],10):void 0,w.debug("[Review] Parsed score from response:",wn)}let Hn=Mt.current[de];Hn||(Hn=await _i(de)||{storyFile:"",componentFile:"[Component].tsx",cssFile:"[Component].css",baseDir:""},Hn.storyFile&&(Mt.current[de]=Hn)),w.debug("[Review] Story file paths:",Hn);let St=tt.map(Be=>({...Be,file:Be.file||ah(Be.fixTarget,Hn)||sh(Be,Hn)}));if(St=lh(St),w.debug("[Review] After de-duplication:",St.length,"issues"),!D){let Be=St.length;St=St.filter(ve=>ve.property?.toLowerCase()!=="textcontent"&&!ve.description?.toLowerCase().includes("text content")),Be!==St.length&&w.debug("[Review] Filtered out",Be-St.length,"textContent issues (toggle OFF)")}let go;pt&&Ot&&(go=(kt.getState().reviewHistory.find(ve=>ve.id===Ot)?.iterationNumber||0)+1);let ir={id:qe,componentId:de,storyId:de,modelId:l[0],parentReviewId:pt&&Ot||void 0,iterationNumber:go,figmaFileKey:void 0,figmaNodeId:fe||void 0,figmaFileUrl:Le||void 0,complianceScore:wn,visualSimilarity:Ge.visualSimilarity,issuesCount:St.filter(Be=>!Be.dismissed).length,issues:St,createdAt:new Date,reviewDurationMs:Date.now()-_n,costUsd:Ge.costUsd,inputTokens:Ge.inputTokens,outputTokens:Ge.outputTokens,cacheCreationTokens:Ge.cacheCreationTokens,cacheReadTokens:Ge.cacheReadTokens,variantMismatch:Ge.variantMismatch,storybookVariant:Ge.storybookVariant,figmaVariant:Ge.figmaVariant};if(w.debug("[useAIReview] About to call addReview with review:",{id:ir.id,storyId:ir.storyId,issueCount:ir.issues?.length,complianceScore:ir.complianceScore,createdAt:ir.createdAt?.toISOString(),inputTokens:ir.inputTokens,outputTokens:ir.outputTokens,costUsd:ir.costUsd,cacheCreationTokens:ir.cacheCreationTokens,cacheReadTokens:ir.cacheReadTokens}),_(ir),w.debug("[useAIReview] addReview called successfully"),de&&te.enableReviewBadges){let Be=St.filter(ve=>!ve.dismissed);yo(de,{score:wn??100,issueCount:Be.length,criticalCount:Be.filter(ve=>ve.severity==="critical").length,majorCount:Be.filter(ve=>ve.severity==="major").length,minorCount:Be.filter(ve=>ve.severity==="minor").length})}T("issues");let ls=St.filter(Be=>!Be.dismissed).length;w.debug("[Review] Created review with",ls,"active issues,",St.length-ls,"dismissed");let ql=fe||kt.getState().currentMapping?.figmaNodeId;w.debug("[Review] Validation check:",{figmaNodeId:fe,effectiveFigmaNodeIdSingle:ql,hasSessionToken:!!X,selectedProjectId:ye,issueCount:St.length}),w.debug("[Review] Issue validation handled server-side. Active:",St.filter(Be=>!Be.dismissed).length,"Dismissed:",St.filter(Be=>Be.dismissed).length)}catch(qe){w.error("[Review] Failed to parse issues:",qe)}}else throw qr?(w.error("[Review] ERROR: No structured result received from backend!"),w.error("[Review] Streaming text length:",qr.length),w.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(V){if(V instanceof Error&&V.name==="AbortError"){w.debug("[useAIReview] Review cancelled by user"),Lt(0,"Review cancelled");return}w.error("[useAIReview] Review error:",V);let ee=nl(V);throw d(ee),de&&te.enableReviewBadges&&QS(de),Lt(0,`Error: ${ee}`),V}finally{p(!1),g(null),Me.current=null,pe.current&&(clearTimeout(pe.current),pe.current=null),Te(null)}},[e,X,ye,de,Fe,l,p,d,f,F,C,A,B,S,x,O,Yt,Lt,z,h,k,m,v,Te,Y]),Ar=rl(()=>n?.issues?o==="all"?n.issues:n.issues.filter(Qe=>Qe.severity===o):[],[n,o]),je=rl(()=>{Me.current&&(w.debug("[useAIReview] Cancelling review..."),Me.current.abort())},[]);return{isReviewing:e,reviewError:t,reviewResults:n,showReviewMenu:r,severityFilter:o,showStreamingPanel:i,streamingPanelCollapsed:a,streamingMessages:s,streamingProgress:u,streamingStatus:c,startReview:wt,cancelReview:je,setShowReviewMenu:y,setSeverityFilter:I,setShowStreamingPanel:S,setStreamingPanelCollapsed:x,addStreamingMessage:M,updateStreamingMessage:z,clearStreamingMessages:O,setStreamingProgress:L,setStreamingStatus:N,resetReview:P,getFilteredIssues:Ar}};Se();Ue();De();import{useCallback as Kse}from"react";var Zse=K();Se();Ue();import{useEffect as mh,useRef as r4}from"react";import{useStorybookApi as pD,useStorybookState as gD,addons as o4}from"storybook/manager-api";var i4="storyArgsUpdated",a4="storyPrepared",hh=()=>{let e=pD(),t=gD(),{currentStoryId:n,currentStoryName:r,setCurrentStoryId:o,setCurrentStoryName:i,setCurrentStoryArgs:a}=gt(),{clearStaleReviewsForStory:s,resetReview:u,isReviewing:c,isValidating:l}=ue(),p=r4(null),g=r4(0);return mh(()=>{let d=t.storyId;if(d){p.current!==d&&(w.debug("[useCurrentStory] Story changed from",p.current,"to",d),s(d),p.current=d,g.current=Date.now()),o(d);let f=e.getData(d),y=f?.name&&f.name!=="default"?`${f.title} / ${f.name}`:f?.title||d;i(y);let I=f?.args;a(I??null),w.debug("[useCurrentStory] Current story:",{storyId:d,fullName:y})}else o(null),i(""),a(null),p.current=null},[t.storyId,e,o,i,a,s]),mh(()=>{let d=o4.getChannel(),f=null,y=I=>{if(I.storyId===n){if(a(I.args??null),c||l){w.debug("[useCurrentStory] Story args changed but review in progress, skipping reset");return}f&&clearTimeout(f),f=setTimeout(()=>{let{isReviewing:S,isValidating:x}=kt.getState();if(S||x){w.debug("[useCurrentStory] Story args changed but review started, skipping reset");return}if(Date.now()-g.current<2e3){w.debug("[useCurrentStory] Story args changed but story just navigated, skipping reset");return}w.debug("[useCurrentStory] Story args changed, clearing stale review"),u()},500)}};return d.on(i4,y),()=>{d.off(i4,y),f&&clearTimeout(f)}},[n,u,c,l,a]),mh(()=>{let d=o4.getChannel(),f=I=>{a(I.args??null)};d.on(a4,f);let y=e.getCurrentStoryData();return y?.args&&a(y.args),()=>{d.off(a4,f)}},[e,a]),{currentStoryId:n,currentStoryName:r}};Se();De();ut();import{useCallback as s4}from"react";import{addons as l4}from"storybook/manager-api";var c4=K(),Oi=()=>{let{currentMapping:e,loadingMapping:t,setCurrentMapping:n,refreshMappings:r}=gt(),{sessionToken:o}=he(),{selectedProjectId:i}=Ke(),a=s4(async c=>{if(!o)throw new Error("Not authenticated");if(!i)throw new Error("No project selected");let l=await Q(`${c4}/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 p=await l.json();r();try{l4.getChannel().emit("uireview/mappings-changed")}catch{}return p.mapping},[o,i,r]),s=s4(async c=>{if(!o)throw new Error("Not authenticated");if(!(await Q(`${c4}/api/mappings?id=${encodeURIComponent(c)}`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})).ok)throw new Error("Failed to delete mapping");r();try{l4.getChannel().emit("uireview/mappings-changed")}catch{}},[o,r]);return{currentMapping:e,loadingMapping:t,hasMapping:!!e,setCurrentMapping:n,createMapping:a,deleteMapping:s,refreshMappings:r}};Ia();Se();import{useCallback as xh,useEffect as u4,useRef as fD}from"react";import{useChannel as mD,addons as d4}from"storybook/manager-api";Ue();var hD=3e4,xD="forceRemount";function yD(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 bD(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 wD="UICOPILOT/APPLY_FIXES",vD="UICOPILOT/FIX_STARTED",SD="UICOPILOT/FIX_COMPLETED",kD="UICOPILOT/FIX_FAILED",CD="UICOPILOT/ALL_FIXES_APPLIED",yh=(e={})=>{let{onComplete:t,storybookRoot:n}=e,{isApplying:r,setIsApplying:o,setApplyFixesResult:i,updateIssueStatus:a,updateIssueGeneratedFix:s,setReviewDetailTab:u}=ue(),c=fD(null),l=xh(()=>{c.current&&(clearTimeout(c.current),c.current=null)},[]);u4(()=>()=>l(),[l]),u4(()=>{let f=d4.getChannel(),y=()=>{kt.getState().isApplying&&(w.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 f.on("channelWSDisconnect",y),()=>f.off("channelWSDisconnect",y)},[l,o,i]);let p=mD({[vD]:({issueId:f})=>{w.debug(`[useApplyFixes] Fix started for issue: ${f}`),s(f,{status:"applying"})},[SD]:({issueId:f,result:y})=>{w.debug(`[useApplyFixes] Fix completed for issue: ${f}`,y),a(f,"applied"),s(f,{status:"applied"})},[kD]:({issueId:f,error:y})=>{w.error(`[useApplyFixes] Fix failed for issue: ${f}`,y),a(f,"failed",y),s(f,{status:"failed",error:y})},[CD]:async({summary:f})=>{if(w.debug("[useApplyFixes] All fixes applied:",f),l(),o(!1),i({succeeded:f.succeeded,failed:f.failed,total:f.total}),f.failed>0?w.warn(`Applied ${f.succeeded}/${f.total} fixes. ${f.failed} failed.`):w.debug(`Successfully applied all ${f.total} fixes!`),f.succeeded>0){w.debug("[useApplyFixes] Emitting FORCE_REMOUNT to refresh story...");try{d4.getChannel().emit(xD,{storyId:kt.getState().currentStoryId}),w.debug("[useApplyFixes] FORCE_REMOUNT emitted")}catch(y){w.warn("[useApplyFixes] Failed to emit FORCE_REMOUNT:",y)}w.debug("[useApplyFixes] Reloading Storybook preview to load fresh CSS..."),await su(),w.debug("[useApplyFixes] Storybook preview reloaded")}t&&(w.debug("[useApplyFixes] Triggering screenshot refresh after fixes"),t()),w.debug("[useApplyFixes] Switching to Issues tab to show results"),u("issues")}}),g=xh(f=>{let y=[],I=[],S=[];for(let x of f){let M=x.currentValue||x.actual||"",z=x.suggestedValue||x.expected||"";if(M&&z&&yD(M,z)){y.push(x);continue}if(bD(x)){I.push(x);continue}let O=x.generatedFix?.filePath||x.file||"";if(!O){w.warn(`[useApplyFixes] Skipping issue ${x.id} - no target file path`);continue}let L=O.toLowerCase().split(".").pop()||"",N=["tsx","jsx","ts","js"].includes(L)?"component":"css";S.push({...x,targetFilePath:O,targetFileType:N})}return{actionable:S,negligible:y,designTokens:I}},[]);return{applyFixes:xh(f=>{if(r){w.warn("[useApplyFixes] Already applying fixes");return}if(f.length===0){w.warn("[useApplyFixes] No issues to fix");return}let y=g(f);if(y.negligible.length>0&&w.debug(`[useApplyFixes] Filtered ${y.negligible.length} negligible issue(s)`),y.designTokens.length>0&&w.debug(`[useApplyFixes] Skipped ${y.designTokens.length} design token suggestion(s)`),y.actionable.length===0){w.warn("[useApplyFixes] No actionable issues to fix after filtering");return}let I=y.actionable.filter(M=>M.targetFileType==="css"),S=y.actionable.filter(M=>M.targetFileType==="component");if(w.debug("[useApplyFixes] Applying fixes:"),I.length>0){let M=[...new Set(I.map(z=>z.targetFilePath))];w.debug(` - ${I.length} CSS issue(s) in: ${M.join(", ")}`)}if(S.length>0){let M=[...new Set(S.map(z=>z.targetFilePath))];w.debug(` - ${S.length} component issue(s) in: ${M.join(", ")}`),w.warn(" \u26A0\uFE0F Component files will be modified - review changes carefully!")}if(!document.querySelector("#storybook-preview-iframe")?.contentWindow){w.error("[useApplyFixes] Storybook preview iframe not found \u2014 connection lost"),i({succeeded:0,failed:0,total:y.actionable.length,error:"Connection lost. Please reload the page and try again."});return}o(!0),l(),c.current=setTimeout(()=>{kt.getState().isApplying&&(w.error("[useApplyFixes] Apply timed out \u2014 no response from server"),o(!1),i({succeeded:0,failed:0,total:y.actionable.length,error:"Apply timed out. The Storybook server may have disconnected. Please reload the page and try again."}))},hD),p(wD,{issues:y.actionable,storybookRoot:n||void 0})},[p,r,o,i,g,n,l]),isApplying:r}};Se();De();import{useState as wle}from"react";var kle=K();Se();import{useState as $i}from"react";De();Ue();ut();var ID=K();async function xu(e,t,n,r,o){if(!e)return w.warn("[DismissalSync] No database ID provided, skipping server sync"),{success:!1,error:"No database ID"};try{let i=await Q(`${ID}/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 s=await i.text();return w.error("[DismissalSync] API error:",i.status,s),{success:!1,error:`API error: ${i.status}`}}let a=await i.json();return w.debug(`[DismissalSync] Synced issue ${e}, new score: ${a.newScore}`),{success:!0,newScore:a.newScore,activeIssuesCount:a.activeIssuesCount}}catch(i){return w.error("[DismissalSync] Failed to sync:",i),{success:!1,error:i.message}}}async function p4(e,t){let n=e.filter(i=>i.dbId);if(n.length===0)return w.warn("[DismissalSync] No valid dismissals to sync (missing dbIds)"),{success:!1,error:"No valid dismissals"};let o=(await Promise.all(n.map(i=>xu(i.dbId,i.dismissed,i.dismissReason,i.dismissedBy,t)))).filter(i=>i.success);if(o.length>0){let i=o[o.length-1];return w.debug(`[DismissalSync] Batch synced ${o.length}/${n.length} dismissals`),i}return{success:!1,error:"All dismissals failed"}}pn();au();Ia();Ue();De();var TD=["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"],ED=["no changes required","no changes needed","no fix required","no fix needed","values already match","already matches","matches expected","correctly implemented","implementation is correct"],RD=K();function bh(){let[e,t]=$i(!1),[n,r]=$i(null),[o,i]=$i(null),[a,s]=$i(null),[u,c]=$i(null),[l,p]=$i(null),[g,d]=$i(null),{sessionToken:f}=he(),{selectedProjectId:y}=Ke(),{currentStoryId:I,currentStoryName:S}=gt(),{workspacePath:x,updateIssueGeneratedFix:M,batchUpdateIssueGeneratedFixes:z,includeComponentIssues:O,dismissIssue:L,recalculateScore:N,addStreamingMessage:m,roleOverride:v}=ue();return{generateBatchFixes:async E=>{if(!f){r("Not authenticated");return}if(!y){r("No project selected");return}if(!I){r("No story selected");return}if(E.length===0){r("No issues provided");return}t(!0),r(null),i(null),c(null),p(null),s({total:E.length,completed:0});let h=E.map(b=>({issueId:b.id,generatedFix:{code:"",diffPreview:"",filePath:b.file||"",confidence:0,strategy:"",status:"generating"}}));z(h);try{w.debug("[useBatchGenerateFixes] Generating fixes for",E.length,"issues");let b=null;try{let D=Js();D?.computed&&(b=D.computed,w.debug("[useBatchGenerateFixes] Extracted computed styles for fix context"))}catch(D){w.warn("[useBatchGenerateFixes] Could not extract computed styles:",D)}let F=null;try{F=await _i(I),F&&w.debug("[useBatchGenerateFixes] Resolved file paths from index.json:",F)}catch(D){w.warn("[useBatchGenerateFixes] Could not resolve story file paths:",D)}let C=await fetch(`${RD}/api/fixes/generate-batch`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${f}`,...lu(v)},body:JSON.stringify({projectId:y,storyId:I,workspacePath:x,includeComponentIssues:O,computedStyles:b,storyFilePaths:F,reviewContext:{storyName:S||void 0,variantArgs:Ca()||void 0},issues:E.map(D=>({id:D.id,dbId:D.dbId,title:D.title,description:D.description,property:D.property,currentValue:D.currentValue,suggestedValue:D.suggestedValue,file:D.file,lineNumber:D.lineNumber,severity:D.severity,type:D.type,fixTarget:D.fixTarget,domElement:D.domElement,figmaContext:D.figmaContext,suggestedFix:D.suggestedFix}))})});if(!C.ok){let D=await C.json().catch(()=>({}));throw new Error(D.error||"Batch fix generation failed")}let A=await C.json();if(!A.success)throw new Error(A.error||"Batch fix generation failed");if(w.debug("[useBatchGenerateFixes] Generated",A.result.fixes.length,"fixes"),A.result.storybookRoot&&(d(A.result.storybookRoot),w.debug("[useBatchGenerateFixes] Stored storybookRoot:",A.result.storybookRoot)),A.result.selfReview&&(p(A.result.selfReview),w.debug("[useBatchGenerateFixes] Self-review:",A.result.selfReview)),A.result.partialFailure){let{failedBatches:D,errors:H}=A.result.partialFailure;w.warn(`[useBatchGenerateFixes] Partial failure: ${D.join(", ")} batch(es) failed`),w.warn("[useBatchGenerateFixes] Errors:",H),r(`Some fixes couldn't be generated (${D.join(", ")}): ${H[0]||"Unknown error"}`)}s({total:E.length,completed:A.result.fixes.length});let B=new Set(A.result.fixes.map(D=>D.issueId)),P=E.filter(D=>!B.has(D.id));P.length>0&&(w.warn(`[useBatchGenerateFixes] ${P.length} issues not returned by API, marking as failed`),P.forEach(D=>{M(D.id,{code:"",diffPreview:"",filePath:D.file||"",confidence:0,strategy:"skipped",status:"failed",error:"Fix generation skipped by server"})})),A.timing&&(i({durationSec:A.timing.durationSec,issueCount:A.timing.issueCount,avgPerIssueSec:A.timing.avgPerIssueSec}),w.debug(`[useBatchGenerateFixes] Generation took ${A.timing.durationSec}s for ${A.timing.issueCount} issues`)),A.result?.usage&&(c({inputTokens:A.result.usage.inputTokens||0,outputTokens:A.result.usage.outputTokens||0,costUsd:A.result.usage.costUsd||0,modelId:A.result.usage.modelId||"unknown",provider:A.result.usage.provider||"unknown"}),w.debug(`[useBatchGenerateFixes] Token usage: ${A.result.usage.inputTokens} in, ${A.result.usage.outputTokens} out, $${A.result.usage.costUsd?.toFixed(4)}`));let _=[],T=[];if(A.result.fixes.forEach(D=>{let H=D.noChangesNeeded===!0;if(!H){let j=(D.fixStrategy||"").toLowerCase(),Y=(D.generatedCode||"").toLowerCase(),X=(D.diffPreview||"").toLowerCase(),ne=TD.some(ye=>j.includes(ye.toLowerCase())||j.replace(/[-_]/g,"").includes(ye.replace(/[-_]/g,""))),Te=ED.some(ye=>Y.includes(ye)||X.includes(ye));H=ne||Te}let R=E.find(j=>j.id===D.issueId);if(H&&R){let j=R.suggestedValue,Y=R.currentValue;j&&Y&&!zi(j,Y)&&(w.debug(`[useBatchGenerateFixes] SAFETY CHECK: values differ (expected="${j}", actual="${Y}"), NOT auto-dismissing issue ${D.issueId}`),H=!1)}let te=R?.programmaticallyVerified===!0;if(w.debug(`[useBatchGenerateFixes] Processing fix for issue ${D.issueId}:`,{isFalsePositive:H,isProgrammaticIssue:te,detectedBy:R?.detectedBy,noChangesNeeded:D.noChangesNeeded,fixStrategy:D.fixStrategy,title:R?.title?.substring(0,50)}),te&&H&&(w.debug(`[useBatchGenerateFixes] SKIPPING auto-dismiss for programmatic issue ${D.issueId} (detectedBy: ${R?.detectedBy})`),H=!1),H){let j=`Auto-dismissed: ${D.fixStrategy} - values already match`;w.debug(`[useBatchGenerateFixes] Auto-dismissing issue ${D.issueId} - noChangesNeeded: ${D.noChangesNeeded}, strategy: "${D.fixStrategy}"`),L(D.issueId,j),_.push({localId:D.issueId,dbId:R?.dbId,dismissReason:j}),T.push({issueId:D.issueId,generatedFix:{code:D.generatedCode||"",diffPreview:D.diffPreview||"",filePath:D.filePath,confidence:D.confidence,strategy:D.fixStrategy,status:"ready",error:void 0,noChangesExplanation:D.noChangesExplanation}})}else{let j=D.error||D.fixStrategy==="skipped"?"failed":"ready";T.push({issueId:D.issueId,generatedFix:{code:D.generatedCode,diffPreview:D.diffPreview,filePath:D.filePath,confidence:D.confidence,strategy:D.fixStrategy,status:j,error:D.error,noChangesExplanation:D.noChangesExplanation}})}}),T.length>0&&(w.debug(`[useBatchGenerateFixes] Applying ${T.length} fix updates in batch`),z(T)),_.length>0){if(w.debug(`[useBatchGenerateFixes] Auto-dismissed ${_.length} false positive(s), recalculating score`),N(),f){let H=_.filter(R=>R.dbId).map(R=>({dbId:R.dbId,dismissed:!0,dismissReason:R.dismissReason,dismissedBy:"system"}));H.length>0&&(w.debug(`[useBatchGenerateFixes] Syncing ${H.length} dismissals to server`),p4(H,f).then(R=>{R.success?w.debug(`[useBatchGenerateFixes] Server score updated to: ${R.newScore}`):w.warn("[useBatchGenerateFixes] Failed to sync dismissals:",R.error)}).catch(R=>{w.error("[useBatchGenerateFixes] Error syncing dismissals:",R)}))}let D=_.length===1?"1 issue was auto-dismissed as a false positive (values already match the design). The compliance score has been recalculated.":`${_.length} issues were auto-dismissed as false positives (values already match the design). The compliance score has been recalculated.`;m({role:"system",content:D})}w.debug("[useBatchGenerateFixes] Updated",A.result.fixes.length,"issues with fixes")}catch(b){w.error("[useBatchGenerateFixes] Failed to generate batch fixes:",b),r(b?.message||"Failed to generate batch fixes");let F=E.map(C=>({issueId:C.id,generatedFix:{code:"",diffPreview:"",filePath:C.file||"",confidence:0,strategy:"",status:"failed",error:b?.message||"Failed to generate fix"}}));z(F)}finally{t(!1),setTimeout(()=>s(null),1500)}},isGenerating:e,error:n,timing:o,progress:a,usage:u,selfReview:l,lastStorybookRoot:g}}Se();Ue();De();ut();import{useState as wh,useCallback as vh}from"react";var AD=K();function Sh(){let[e,t]=wh([]),[n,r]=wh(!1),[o,i]=wh(null),{sessionToken:a}=he(),{selectedProjectId:s}=Ke(),{currentStoryId:u}=gt(),{setReviewResults:c}=ue(),l=vh(async()=>{if(!(!a||!s)){r(!0),i(null);try{let d=new URLSearchParams({projectId:s,limit:"10"});u&&d.append("storyId",u);let f=await Q(`${AD}/api/reviews/list?${d.toString()}`,{method:"GET",credentials:"include",headers:{Authorization:`Bearer ${a}`}});if(!f.ok){let I=await f.json().catch(()=>({}));throw new Error(I.error||"Failed to fetch reviews")}let y=await f.json();if(!y.success)throw new Error("Failed to fetch reviews");w.debug("[useReviewHistory] Fetched",y.reviews.length,"reviews for:",u),t(y.reviews)}catch(d){w.error("[useReviewHistory] Failed to fetch reviews:",d),i(d instanceof Error?d.message:"Failed to fetch reviews")}finally{r(!1)}}},[a,s,u]),p=vh(d=>{w.debug("[useReviewHistory] Applying review:",d.id,"with",d.issues.length,"issues");let f=[];if(typeof d.models=="string")try{f=JSON.parse(d.models)}catch(x){w.error("[useReviewHistory] Failed to parse models:",x),f=["claude-sonnet-4-20250514"]}else f=d.models;let y=d.issues.map(x=>({id:x.id,reviewId:d.id,type:x.type,severity:x.severity,title:x.description,description:x.description,file:void 0,lineNumber:void 0,property:x.property,currentValue:x.actual,suggestedValue:x.expected,suggestedCode:x.suggestedFix||void 0,status:x.status,dismissed:x.dismissed||!1,dismissReason:x.dismissReason,dismissedBy:x.dismissedBy,selectedForFix:!1,error:void 0,createdAt:new Date(x.createdAt)})),I=d.completedAt&&d.createdAt?new Date(d.completedAt).getTime()-new Date(d.createdAt).getTime():void 0,S=d.storyId||"";if(c({id:d.id,componentId:"",storyId:S,modelId:f[0]||"claude-sonnet-4-6",complianceScore:d.complianceScore,issuesCount:d.issuesCount,issues:y,createdAt:new Date(d.createdAt),timestamp:new Date(d.createdAt).toISOString(),costUsd:d.costUsd,inputTokens:d.inputTokens,outputTokens:d.outputTokens,reviewDurationMs:I}),S){let x=d.issues.filter(L=>!L.dismissed),M=x.filter(L=>L.severity==="critical").length,z=x.filter(L=>L.severity==="major").length,O=x.filter(L=>L.severity==="minor").length;yo(S,{score:d.complianceScore,issueCount:x.length,criticalCount:M,majorCount:z,minorCount:O})}},[c]),g=vh(d=>{let f=e.find(y=>y.id===d);if(!f){w.error("[useReviewHistory] Review not found:",d);return}p(f)},[e,p]);return{reviews:e,isLoading:n,error:o,fetchReviews:l,loadReview:g}}Se();Ue();import{useEffect as FD,useState as PD,useRef as yu}from"react";import{useChannel as MD}from"storybook/manager-api";var LD="UICOPILOT/WORKSPACE_PATH",g4="UICOPILOT/REQUEST_WORKSPACE_PATH",BD=3e3,zD=500,DD=5,kh=()=>{let[e,t]=PD({isSupported:!1,isDetecting:!0,workspacePath:null}),{setWorkspacePath:n}=ue(),r=yu(!1),o=yu(null),i=yu(0),a=yu(null),s=MD({[LD]:({path:u})=>{r.current||(r.current=!0,o.current&&clearTimeout(o.current),a.current&&clearInterval(a.current),w.debug("[useAutoApplySupport] Server responded - auto-apply supported"),w.debug("[useAutoApplySupport] Workspace path:",u),t({isSupported:!0,isDetecting:!1,workspacePath:u}),n(u))}});return FD(()=>(w.debug("[useAutoApplySupport] Requesting workspace path from server (retry 0)..."),s(g4,{}),a.current=setInterval(()=>{!r.current&&i.current<DD&&(i.current++,w.debug(`[useAutoApplySupport] Requesting workspace path from server (retry ${i.current})...`),s(g4,{}))},zD),o.current=setTimeout(async()=>{if(a.current&&clearInterval(a.current),!r.current){w.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,w.debug("[useAutoApplySupport] HTTP fallback succeeded - auto-apply supported"),w.debug("[useAutoApplySupport] Workspace path:",c.workspacePath),t({isSupported:!0,isDetecting:!1,workspacePath:c.workspacePath}),n(c.workspacePath);return}}}catch{}r.current||(r.current=!0,w.debug("[useAutoApplySupport] Both channel and HTTP detection failed - auto-apply NOT supported"),t({isSupported:!1,isDetecting:!1,workspacePath:null}))}},BD),()=>{o.current&&clearTimeout(o.current),a.current&&clearInterval(a.current)}),[s]),e},Ch=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 w.error("[copyToClipboard] Failed to copy:",t),!1}};Se();De();import{useEffect as ND,useRef as _D}from"react";var tce=K(),OD=new Set;function Ih(){let{sessionToken:e}=he(),{selectedProjectId:t}=Ke(),n=_D(!1);ND(()=>{t&&OD.add(t)},[e,t])}Se();pn();import{useCallback as oce,useState as ice}from"react";import{useState as Hi,useMemo as C4,useCallback as Ba}from"react";De();Ue();ut();pn();import{useState as Ho,useEffect as bu,useRef as Ma,useCallback as Th}from"react";var $D=300;function f4({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o=20,enabled:i=!0}){let[a,s]=Ho([]),[u,c]=Ho({}),[l,p]=Ho(0),[g,d]=Ho([]),[f,y]=Ho(new Set),[I,S]=Ho(!1),[x,M]=Ho(!1),[z,O]=Ho(null),L=Ma(1),N=Ma(null),m=Ma(null),[v,k]=Ho(0),E=Ma(!1),h=Ma({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o});h.current={projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o};let b=Th(async(P,_,T=!1)=>{let{projectId:D,typeFilter:H,search:R,figmaPage:te,limit:j}=h.current;if(!D||!H)return;N.current&&N.current.abort();let Y=new AbortController;N.current=Y,_?M(!0):S(!0),O(null);try{let X=K(),ne=localStorage.getItem("uicopilot_session_token");if(!ne)throw new Error(`Not authenticated. Please connect to ${jt.NAME} first.`);let Te=new URLSearchParams({projectId:D,page:String(P),limit:String(j)});H&&Te.append("type",H),te&&Te.append("figmaPage",te),R.trim()&&Te.append("search",R.trim()),T&&Te.append("refresh","true");let ye=await fetch(`${X}/api/figma/frames?${Te.toString()}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${ne}`},signal:Y.signal});if(!ye.ok){let pe=await ye.json();throw new Error(pe.error||"Failed to fetch frames")}let de=await ye.json(),Fe=de.frames||[],ge=de.thumbnails||{},Me=ye.headers.get("X-Cache-Status");if(Fe.length===0&&P===1&&!_&&!T&&!E.current&&Me!=="HIT"){w.debug("[useFigmaFrameFetch] Empty result (cache miss), retrying with refresh=true"),E.current=!0,await b(1,!1,!0);return}_?(s(pe=>[...pe,...Fe]),c(pe=>({...pe,...ge}))):(s(Fe),c(ge)),p(de.total||Fe.length),de.pages&&d(de.pages),de.cacheDiff?.added&&y(new Set(de.cacheDiff.added)),L.current=P}catch(X){if(X instanceof DOMException&&X.name==="AbortError")return;let ne=X instanceof Error?X.message:"Failed to fetch Figma frames.";O(ne),w.error("Error fetching frames:",X)}finally{Y.signal.aborted||(S(!1),M(!1))}},[]);bu(()=>{if(!i||!e||!t)return;E.current=!1,m.current&&clearTimeout(m.current);let P=n.trim()?$D:0;return m.current=setTimeout(()=>{L.current=1,b(1,!1)},P),()=>{m.current&&clearTimeout(m.current)}},[e,t,n,r,i,v,b]);let F=Ma(new Set);bu(()=>{if(a.length===0)return;let P={};for(let _ of a)_.thumbnailCdnUrl&&!u[_.id]&&(P[_.id]=_.thumbnailCdnUrl);Object.keys(P).length>0&&c(_=>({..._,...P}))},[a]),bu(()=>{if(a.length===0)return;let P=a.filter(T=>!T.thumbnailCdnUrl&&!u[T.id]&&!F.current.has(T.id)).map(T=>T.id);if(P.length===0)return;P.forEach(T=>F.current.add(T)),(async()=>{try{let{projectId:T}=h.current,D=K(),H=localStorage.getItem("uicopilot_session_token");if(!H||!T)return;let R=await Q(`${D}/api/figma/frames?projectId=${T}&thumbnailIds=${P.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${H}`}},6e4);if(R.ok){let te=await R.json();te.thumbnails&&Object.keys(te.thumbnails).length>0&&c(j=>({...j,...te.thumbnails}))}}catch(T){P.forEach(D=>F.current.delete(D)),w.error("Failed to fetch frame thumbnails:",T)}})()},[a,u]),bu(()=>()=>{N.current&&N.current.abort(),m.current&&clearTimeout(m.current)},[]);let C=Th(async()=>{let P=L.current+1;await b(P,!0)},[b]),A=Th(()=>{E.current=!1,L.current=1,s([]),c({}),k(P=>P+1)},[]),B=a.length<l;return{frames:a,thumbnails:u,totalFrames:l,availablePages:g,recentlyAdded:f,isLoading:I,loadingMore:x,hasMore:B,loadMore:C,refresh:A,error:z}}De();Ue();ut();import{useState as La,useCallback as wu,useRef as HD}from"react";function m4({projectId:e}){let[t,n]=La({}),[r,o]=La({}),[i,a]=La(new Set),[s,u]=La(new Set),[c,l]=La({}),[p,g]=La(null),d=HD({}),f=wu(async x=>{if(!(!e||i.has(x))){a(M=>new Set(M).add(x));try{let M=K(),z=localStorage.getItem("uicopilot_session_token"),O=await Q(`${M}/api/figma/variants?projectId=${e}&componentSetId=${x}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`}});if(O.ok){let L=await O.json();if(L.variants){n(m=>({...m,[x]:L.variants}));let N={};for(let m of L.variants)m.thumbnailCdnUrl&&(N[m.id]=m.thumbnailCdnUrl);o(m=>({...m,[x]:{...m[x]||{},...N}})),d.current[x]||(d.current[x]=new Set),Object.keys(N).forEach(m=>d.current[x].add(m))}else o(N=>({...N,[x]:N[x]||{}}))}else o(L=>({...L,[x]:{}}))}catch(M){w.error("Failed to fetch variant metadata:",M),o(z=>({...z,[x]:{}}))}finally{a(M=>{let z=new Set(M);return z.delete(x),z})}}},[e,i]),y=wu(async(x,M)=>{if(!e||M.length===0)return;d.current[x]||(d.current[x]=new Set);let z=r[x]||{},O=M.filter(L=>!d.current[x].has(L)&&!z[L]);if(O.length!==0){O.forEach(L=>d.current[x].add(L)),u(L=>new Set(L).add(x));try{let L=K(),N=localStorage.getItem("uicopilot_session_token"),m=await Q(`${L}/api/figma/variants?projectId=${e}&componentSetId=${x}&thumbnailIds=${O.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${N}`}});if(m.ok){let v=await m.json();v.rateLimitError?(g(v.rateLimitError),O.forEach(k=>d.current[x]?.delete(k))):(v.thumbnails&&Object.keys(v.thumbnails).length>0&&o(k=>({...k,[x]:{...k[x]||{},...v.thumbnails}})),Array.isArray(v.failed)&&v.failed.length>0&&l(k=>{let E=new Set(k[x]||[]);for(let h of v.failed)E.add(h);return{...k,[x]:E}}))}}catch(L){w.error("Failed to fetch variant thumbnails:",L),O.forEach(N=>d.current[x]?.delete(N))}finally{u(L=>{let N=new Set(L);return N.delete(x),N})}}},[e]),I=wu(x=>{o(M=>{let z={...M};return delete z[x],z}),n(M=>{let z={...M};return delete z[x],z}),l(M=>{let z={...M};return delete z[x],z}),delete d.current[x]},[]),S=wu(()=>{o({}),n({}),l({}),d.current={}},[]);return{variantChildren:t,variantThumbnails:r,variantFailed:c,loadingVariants:i,loadingThumbnails:s,rateLimitError:p,fetchVariants:f,fetchVariantThumbnails:y,clearVariantsForSet:I,clearAllVariants:S}}De();Ia();Se();Ue();ut();import{useState as h4,useEffect as x4,useRef as y4,useCallback as Eh}from"react";function b4({expandedSetId:e,availableFilters:t,filtersReady:n}){let[r,o]=h4(null),[i,a]=h4(!1),s=y4(null),u=y4(new Set),c=Eh(async()=>{if(!e||!n||t.length===0||s.current===e||u.current.has(e))return;let g=Ca();if(!g||Object.keys(g).length===0)return;let d=kt.getState().currentStoryId||"",f=d.replace(/--/g," / ").replace(/-/g," ").replace(/\b\w/g,y=>y.toUpperCase());s.current=e,a(!0),o(null);try{let y=K(),I=localStorage.getItem("uicopilot_session_token"),S=await Q(`${y}/api/figma/match-filters`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({storyName:f,storyId:d,storyArgs:g,availableFilters:t.map(x=>({property:x.property,values:x.values}))})});if(S.ok){let x=await S.json();x.confidence>0&&Object.keys(x.suggestedFilters).length>0&&(w.debug("[useFilterSuggestion] Suggestion:",x),o(x))}else S.status===404?w.debug("[useFilterSuggestion] match-filters endpoint not available (404), skipping suggestions"):w.error("[useFilterSuggestion] Unexpected status:",S.status)}catch(y){w.error("[useFilterSuggestion] Error:",y)}finally{a(!1)}},[e,t,n]);x4(()=>{c()},[c]),x4(()=>{e||(o(null),s.current=null)},[e]);let l=Eh(()=>{},[]),p=Eh(()=>{e&&u.current.add(e),o(null)},[e]);return{suggestion:r,isLoading:i,applySuggestion:l,dismissSuggestion:p}}function w4(e,t,n){let r=[];return e&&r.push("COMPONENT_SET"),t&&r.push("FRAME"),n&&r.push("COMPONENT"),r.join(",")}function v4(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 S4(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 k4(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 ol({projectId:e,limit:t=20,enabled:n=!0}){let[r,o]=Hi(!0),[i,a]=Hi(!1),[s,u]=Hi(!1),[c,l]=Hi(""),[p,g]=Hi(""),[d,f]=Hi([]),[y,I]=Hi(new Set),S=Ba(ge=>{l(ge),d.length>0&&f([]),y.size>0&&I(new Set)},[d.length,y.size]),x=w4(r,i,s),{frames:M,thumbnails:z,totalFrames:O,availablePages:L,recentlyAdded:N,isLoading:m,loadingMore:v,hasMore:k,loadMore:E,refresh:h,error:b}=f4({projectId:e,typeFilter:x,search:c,figmaPage:p||void 0,limit:t,enabled:n&&!!x}),{variantChildren:F,variantThumbnails:C,variantFailed:A,loadingVariants:B,loadingThumbnails:P,rateLimitError:_,fetchVariants:T,fetchVariantThumbnails:D,clearVariantsForSet:H,clearAllVariants:R}=m4({projectId:e}),te=C4(()=>{let ge=v4(F),Me=S4(M),pe={};for(let Mt of[...ge,...Me])pe[Mt.property]||(pe[Mt.property]=new Set),Mt.values.forEach(Yt=>pe[Mt.property].add(Yt));return Object.entries(pe).map(([Mt,Yt])=>({property:Mt,values:Array.from(Yt).sort()}))},[F,M]),j=y.size===1?Array.from(y)[0]:null,Y=b4({expandedSetId:j,availableFilters:te,filtersReady:te.length>0}),X=Ba(()=>{if(!Y.suggestion)return;let{suggestedFilters:ge}=Y.suggestion,Me=Object.entries(ge).map(([pe,Mt])=>({property:pe,value:Mt}));f(Me),Y.dismissSuggestion()},[Y.suggestion]),ne=C4(()=>d.some(ge=>ge.value)?M.filter(ge=>k4(ge,d,F[ge.id])):M,[M,d,F]),Te=Ba((ge,Me)=>{Me.stopPropagation();let pe=!y.has(ge);I(Mt=>{let Yt=new Set(Mt);return Yt.has(ge)?Yt.delete(ge):Yt.add(ge),Yt}),pe&&!F[ge]&&!B.has(ge)?T(ge):pe||H(ge)},[y,F,B,T,H]),ye=Ba((ge,Me)=>{let pe=Me===""?null:Me;f(Mt=>Mt.find(Lt=>Lt.property===ge)?Mt.map(Lt=>Lt.property===ge?{...Lt,value:pe}:Lt):[...Mt,{property:ge,value:pe}])},[]),de=Ba(()=>{f([])},[]),Fe=Ba(ge=>{let Me=M.find(pe=>pe.id===ge);if(Me?.thumbnailCdnUrl)return Me.thumbnailCdnUrl;if(z[ge])return z[ge];for(let pe of Object.values(C))if(pe[ge])return pe[ge]},[z,C]);return{frames:M,filteredFrames:ne,thumbnails:z,totalFrames:O,isLoading:m,loadingMore:v,hasMore:k,error:b,loadMore:E,refresh:h,search:c,setSearch:S,figmaPage:p,setFigmaPage:g,availablePages:L,recentlyAdded:N,showComponentSets:r,showFrames:i,showComponents:s,setShowComponentSets:o,setShowFrames:a,setShowComponents:u,variantFilters:d,availableFilters:te,handleFilterChange:ye,clearFilters:de,expandedSets:y,toggleExpanded:Te,variantChildren:F,variantThumbnails:C,variantFailed:A,loadingVariants:B,loadingThumbnails:P,rateLimitError:_,fetchVariantThumbnails:D,resolveThumbnail:Fe,filterSuggestion:Y.suggestion,filterSuggestionLoading:Y.isLoading,applySuggestedFilters:X,dismissFilterSuggestion:Y.dismissSuggestion}}Se();import{useEffect as oo,useCallback as GD,useState as qD,useRef as YD}from"react";import{useChannel as KD}from"storybook/manager-api";function li(e){return e.status===401||e.status===403}var tr=class extends Error{constructor(t){super(`Authentication failed (${t}). Please reconnect.`),this.name="AuthError",this.status=t}};pn();function I4(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-:]+)/),a=o||(i?i[1]:null);if(!r||!a)return null;let s=a.replace(/-/g,":");return{fileKey:r,nodeId:s}}catch(t){return mp.error("Error parsing Figma URL:",t),null}}Ue();De();De();ut();var UD=K();async function Rh(e){let t=await Q(`${UD}/api/projects`,{headers:{Authorization:`Bearer ${e}`}});if(li(t))throw new tr(t.status);return t.ok?(await t.json()).projects||[]:[]}De();ut();var jD=K();async function Ah(e,t){let n=await Q(`${jD}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(li(n))throw new tr(n.status);if(!n.ok)return[];let r=await n.json();return Array.isArray(r.mappings)?r.mappings:[]}De();ut();var VD=K();async function Fh(e,t,n,r=10,o=!1){let i=new URLSearchParams({projectId:t,limit:String(r),storyId:n});o&&i.set("includeAI","true");let a=await Q(`${VD}/api/reviews/list?${i}`,{headers:{Authorization:`Bearer ${e}`}});if(li(a))throw new tr(a.status);if(!a.ok)return[];let s=await a.json();return s.success?s.reviews||[]:[]}De();ut();var WD=K();async function Ph(e,t){let n=await Q(`${WD}/api/reviews/status?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(li(n))throw new tr(n.status);if(!n.ok)return{};let r=await n.json();return r.success?r.statuses||{}:{}}Ia();function XD(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 JD=K(),QD="UICOPILOT/WORKSPACE_PATH",ZD="UICOPILOT/REQUEST_WORKSPACE_PATH",Mh=!1;function Lh(){let{sessionToken:e,setSessionToken:t,setAuthError:n}=he(),{projects:r,selectedProjectId:o,currentStorybookPath:i,setProjects:a,setSelectedProjectId:s,setLoadingProjects:u,setCurrentStorybookPath:c}=Ke(),{currentStoryId:l,mappingsRefreshKey:p,mappingsByStoryId:g,setFigmaFileUrl:d,setCurrentMapping:f,setMappingsByStoryId:y,setMappingSource:I,setLoadingMapping:S}=gt(),{setReviewResults:x,setReviewDetailTab:M,setStorybookImageUrl:z,setFigmaImageUrl:O,setFullPrompt:L,setFullResponse:N,bulkAddReviews:m,setReviewHistoryLoading:v}=ue(),[k,E]=qD([]),h=YD(null);oo(()=>{let C=A=>{A.origin.startsWith(JD)&&A.data?.type==="UICOPILOT_AUTH_SUCCESS"&&A.data.token&&(w.debug("[useDataInit] OAuth success, setting token"),t(A.data.token))};return window.addEventListener("message",C),()=>window.removeEventListener("message",C)},[t]);let b=KD({[QD]:C=>{w.debug("[useDataInit] Received workspace path:",C.path),c(C.path)}});oo(()=>{b(ZD)},[b]),oo(()=>{if(!e){a([]),s(null);return}let C=!1;return(async()=>{try{u(!0);let B=await Rh(e);C||(a(B),n(null))}catch(B){B instanceof tr&&(t(null),n(B.message)),w.error("[useDataInit] Failed to fetch projects:",B)}finally{C||u(!1)}})(),()=>{C=!0}},[e,a,s,u]),oo(()=>{if(!i||r.length===0)return;let C=r.find(A=>A.storybookRoot===i);C?o!==C.id&&(w.debug("[useDataInit] Auto-selecting project:",C.name),s(C.id)):o&&(w.debug("[useDataInit] No project matches this Storybook \u2014 clearing selection"),s(null))},[i,r,o,s]),oo(()=>{if(!o||r.length===0)return;let C=r.find(B=>B.id===o),A=C?.figmaFileId;if(C&&typeof A=="string"&&A){let B=A,P=B.includes("figma.com")&&I4(B)?.fileKey||B;d(`https://www.figma.com/file/${P}`)}},[o,r,d]),oo(()=>!e||!o||Mh?void 0:(Mh=!0,(async()=>{try{let A=await Ph(e,o);for(let[B,P]of Object.entries(A))yo(B,{score:P.score,issueCount:P.issueCount,criticalCount:P.criticalCount,majorCount:P.majorCount,minorCount:P.minorCount});w.debug("[useDataInit] Populated sidebar badges for",Object.keys(A).length,"stories")}catch(A){A instanceof tr&&(t(null),n(A.message)),w.error("[useDataInit] Failed to fetch review statuses:",A)}})(),()=>{Mh=!1}),[e,o]),oo(()=>{if(!e||!o)return;let C=!1;return(async()=>{try{let B=await Ah(e,o);if(C)return;let P={};for(let _ of B)_.storyId&&(P[_.storyId]=_);y(P),t4(Object.keys(P))}catch(B){B instanceof tr&&(t(null),n(B.message)),w.error("[useDataInit] Failed to fetch all mappings:",B)}})(),()=>{C=!0}},[e,o,p,y]),oo(()=>{if(!l){f(null),I(null);return}let C=g[l]||null;C?(f(C),I("database")):(f(null),I(null)),S(!1)},[l,g,f,I,S]),oo(()=>{E([]),h.current=null},[l]),oo(()=>{if(!e||!o||!l)return;let C=!1;return(async()=>{v(!0);try{let B=await Fh(e,o,l,10,!0);if(!C){E(B);let P=B.map(_=>XD(_)).filter(Boolean);P.length>0&&m(P)}}catch(B){B instanceof tr&&(t(null),n(B.message)),w.error("[useDataInit] Failed to fetch reviews:",B)}finally{C||v(!1)}})(),()=>{C=!0}},[e,o,l,v,m]);let F=GD(C=>{w.debug("[useDataInit] Applying review:",C.id,"with",C.issues.length,"issues");let A=[];if(typeof C.models=="string")try{A=JSON.parse(C.models)}catch{A=["claude-sonnet-4-20250514"]}else A=C.models;let B=C.issues.map(D=>({id:D.id,reviewId:C.id,type:D.type,severity:D.severity,title:D.description,description:D.description,file:void 0,lineNumber:void 0,property:D.property,currentValue:D.actual,suggestedValue:D.expected,suggestedCode:D.suggestedFix||void 0,status:D.status,dismissed:D.dismissed||!1,dismissReason:D.dismissReason,dismissedBy:D.dismissedBy,figmaContext:D.figmaContext,selectedForFix:!1,error:void 0,createdAt:new Date(D.createdAt)})),P=C.completedAt&&C.createdAt?new Date(C.completedAt).getTime()-new Date(C.createdAt).getTime():void 0,_=C.storyId||"";x({id:C.id,componentId:"",storyId:_,modelId:A[0]||"claude-sonnet-4-6",complianceScore:C.complianceScore,issuesCount:C.issuesCount,issues:B,createdAt:new Date(C.createdAt),timestamp:new Date(C.createdAt).toISOString(),costUsd:C.costUsd,inputTokens:C.inputTokens,outputTokens:C.outputTokens,reviewDurationMs:P});let T=kt.getState().currentStoryId;if(_&&_===T&&(C.storybookScreenshot&&(z(C.storybookScreenshot),sS(_,C.storybookScreenshot,C.figmaScreenshot??void 0),w.debug("[useDataInit] Loaded persisted Storybook screenshot")),C.figmaScreenshot&&(O(C.figmaScreenshot),w.debug("[useDataInit] Loaded persisted Figma screenshot"))),C.aiPrompt&&(L(C.aiPrompt),w.debug("[useDataInit] Loaded persisted AI prompt")),C.aiResponse&&(N(C.aiResponse),w.debug("[useDataInit] Loaded persisted AI response")),_){let D=C.issues.filter(j=>!j.dismissed),H=D.filter(j=>j.severity==="critical").length,R=D.filter(j=>j.severity==="major").length,te=D.filter(j=>j.severity==="minor").length;yo(_,{score:C.complianceScore,issueCount:D.length,criticalCount:H,majorCount:R,minorCount:te})}},[x,z,O,L,N]);oo(()=>{if(k.length>0&&l&&h.current!==l){let C=k[0];C&&C.storyId===l&&(w.debug("[useDataInit] Auto-loading review:",C.id,"for:",l),h.current=l,F(C),M("issues"))}},[k,l,F,M])}pn();import{styled as Ui}from"storybook/theming";import il from"react";import{styled as za}from"storybook/theming";var eN=za.div({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 0"}),tN=za.div({display:"flex",alignItems:"center",gap:"8px"}),nN=za.span(({theme:e,connected:t})=>({width:"6px",height:"6px",borderRadius:"50%",flexShrink:0,backgroundColor:t?e.color.positive:e.color.mediumdark})),rN=za.span(({theme:e,connected:t})=>({fontSize:"12px",fontWeight:t?e.typography.weight.bold:e.typography.weight.regular,color:t?e.color.positive:e.color.defaultText})),oN=za.button(({theme:e})=>({height:"24px",padding:"0 10px",borderRadius:e.appBorderRadius,border:"none",cursor:"pointer",fontSize:"11px",fontWeight:e.typography.weight.bold,backgroundColor:"transparent",color:e.color.mediumdark,transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),iN=za.button(({theme:e})=>({height:"26px",padding:"0 12px",borderRadius:e.appBorderRadius,border:"none",cursor:"pointer",fontSize:"11px",fontWeight:e.typography.weight.bold,backgroundColor:e.color.defaultText,color:e.color.inverseText,transition:"opacity 0.15s","&:hover":{opacity:.9},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),vu=({connected:e,label:t,actionLabel:n,onAction:r,actionDisabled:o,actionVariant:i="ghost",actionTitle:a})=>il.createElement(eN,null,il.createElement(tN,null,il.createElement(nN,{connected:e}),il.createElement(rN,{connected:e},t)),n&&r&&il.createElement(i==="dark"?iN:oN,{onClick:r,disabled:o,title:a},n));var T4=Ui.label(({theme:e})=>({display:"block",fontSize:"10px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark,marginBottom:"8px"})),aN=Ui.div(({theme:e})=>({display:"inline-flex",padding:"2px",borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),sN=Ui.button(({theme:e,active:t})=>({display:"inline-flex",alignItems:"center",gap:"6px",height:"28px",padding:"0 10px",borderRadius:e.appBorderRadius-1,border:"none",cursor:"pointer",fontSize:"12px",fontWeight:e.typography.weight.bold,transition:"all 0.15s",backgroundColor:t?e.color.defaultText:"transparent",color:t?e.color.inverseText:e.color.mediumdark,boxShadow:t?"0 1px 2px rgba(0,0,0,0.12)":"none","&:hover":{color:t?e.color.inverseText:e.color.defaultText}})),lN=Ui.span(({theme:e,active:t})=>({fontSize:"9px",fontFamily:e.typography.fonts.mono,textTransform:"uppercase",letterSpacing:"0.08em",opacity:t?.6:1,color:t?e.color.inverseText:e.color.mediumdark})),cN=Ui.div({display:"flex",alignItems:"center",gap:"6px"}),uN=Ui.div(({theme:e})=>({padding:"8px 10px",borderRadius:e.appBorderRadius,border:`1px solid ${e.color.negative}`,backgroundColor:e.background.hoverable,fontSize:"12px",color:e.color.negative})),dN=Ui.div({display:"flex",flexDirection:"column",gap:"16px"}),pN=[{id:"oauth",label:"OAuth",hint:"Recommended"},{id:"apikey",label:"API key",hint:""}],E4=({onConnect:e})=>{let{sessionToken:t,authMethod:n,setAuthMethod:r,startOAuth:o,logout:i,oauthPending:a,authError:s,saveApiKey:u}=no(),[c,l]=Xn.useState(""),p=!!t,g=()=>{let d=c.trim();d&&(u(d),e?.())};return Xn.createElement(dN,null,Xn.createElement("div",null,Xn.createElement(T4,null,"Authentication"),Xn.createElement(aN,null,pN.map(d=>{let f=n===d.id;return Xn.createElement(sN,{key:d.id,active:f,onClick:()=>r(d.id)},d.label,d.hint&&Xn.createElement(lN,{active:f},d.hint))}))),n==="apikey"&&!p&&Xn.createElement("div",null,Xn.createElement(T4,null,"Session token"),Xn.createElement(cN,null,Xn.createElement(cs,{type:"password",placeholder:"Paste session token",value:c,onChange:d=>l(d.target.value),style:{flex:1}}),Xn.createElement(Qt,{disabled:!c.trim(),onClick:g},"Save")),Xn.createElement(np,{style:{marginTop:"6px",opacity:.7}},"Paste the session token from your ",jt.NAME," setup page.")),n==="oauth"&&!p&&a&&Xn.createElement(np,{style:{opacity:.7}},"Sign-in window opened \u2014 complete sign-in in the popup, then return here."),s&&!p&&Xn.createElement(uN,null,"\u26A0\uFE0F ",s),Xn.createElement(vu,{connected:p,label:p?`Connected to ${jt.NAME}`:"Not connected",actionLabel:p?"Sign out":n==="oauth"?"Connect":void 0,actionVariant:p?"ghost":"dark",actionTitle:p?"Sign out and switch account":void 0,onAction:p?i:n==="oauth"?()=>{o(),e?.()}:void 0}))};import It,{useState as Da}from"react";Se();import fr,{useState as gN,useEffect as fN,useCallback as mN}from"react";import{styled as Uo,keyframes as R4}from"storybook/theming";var hN=R4({from:{opacity:0},to:{opacity:1}}),xN=R4({from:{opacity:0,transform:"translate(-50%, -50%) scale(0.95)"},to:{opacity:1,transform:"translate(-50%, -50%) scale(1)"}}),yN=Uo.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,animation:`${hN} 150ms ease-out`}),bN=Uo.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:`${xN} 150ms ease-out`})),wN=Uo.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,color:e.color.defaultText})),vN=Uo.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})),SN=Uo.div(({theme:e})=>({display:"flex",justifyContent:"flex-end",gap:`${e.layoutMargin*.8}px`})),kN=Uo.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}})),CN=Uo.p(({theme:e})=>({margin:`0 0 ${e.layoutMargin*.6}px`,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.base,color:e.color.mediumdark})),IN=Uo.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}})),TN=Uo.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"}})),bo=({isOpen:e,title:t,message:n,confirmLabel:r="OK",cancelLabel:o="Cancel",variant:i="default",confirmText:a,onConfirm:s,onCancel:u})=>{let[c,l]=gN(""),p=!!a&&c!==a,g=mN(d=>{d.key==="Escape"&&u()},[u]);return fN(()=>{if(e)return l(""),document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,g]),e?fr.createElement(fr.Fragment,null,fr.createElement(yN,{onClick:u}),fr.createElement(bN,{role:"dialog","aria-modal":"true","aria-label":t},fr.createElement(wN,null,t),fr.createElement(vN,null,n),a&&fr.createElement(fr.Fragment,null,fr.createElement(CN,null,"Type ",fr.createElement("strong",null,a)," to confirm:"),fr.createElement(kN,{type:"text",value:c,onChange:d=>l(d.target.value),placeholder:a,autoFocus:!0})),fr.createElement(SN,null,fr.createElement(IN,{onClick:u},o),fr.createElement(TN,{variant:i,onClick:s,disabled:p},r)))):null};import{styled as Tn}from"storybook/theming";function Nh(e,t,n){return e.filter(r=>r.id===t||!r.storybookRoot?!0:n?r.storybookRoot===n:!1)}var EN=Tn.div({marginBottom:"30px"}),RN=Tn.div({display:"flex",gap:"8px",alignItems:"center"}),AN=Tn.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"6px",lineHeight:1.4})),FN=Tn(ar)({flex:1}),PN=Tn(Qt)({padding:"8px 12px",whiteSpace:"nowrap"}),MN=Tn.div(({theme:e})=>({marginTop:"12px",padding:"12px",backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px"})),LN=Tn.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"})),BN=Tn.div(({theme:e})=>({marginBottom:"10px",padding:"8px 10px",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",backgroundColor:e.background.content})),zN=Tn.div(({theme:e})=>({fontSize:"11px",lineHeight:1.5,color:e.color.mediumdark,marginBottom:"6px"})),DN=Tn.div({display:"flex",alignItems:"center",gap:"6px"}),NN=Tn.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"}})),_N=Tn.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 A4(e){return/figma\.com\/community\/file\//.test(e)}var Bh=Tn.div({marginBottom:"10px","&:last-child":{marginBottom:0}}),zh=Tn.label(({theme:e})=>({display:"block",fontSize:"12px",fontWeight:500,marginBottom:"4px",color:e.color.mediumdark})),Dh=Tn(cs)({fontSize:"13px",padding:"6px 8px"}),ON=Tn.div({display:"flex",gap:"8px",marginTop:"12px"}),F4=Tn(Qt)({fontSize:"12px",padding:"6px 12px"}),$N=Tn(F4)(({theme:e})=>({backgroundColor:"transparent",color:e.color.mediumdark,border:`1px solid ${e.appBorderColor}`,"&:hover":{backgroundColor:e.background.hoverable}})),HN=Tn.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"}})),P4=()=>{let{projects:e,selectedProjectId:t,setSelectedProjectId:n,loadingProjects:r,createProject:o,deleteProject:i}=Ir(),{currentStorybookPath:a}=Ke(),[s,u]=Da(!1),[c,l]=Da(!1),[p,g]=Da(!1),[d,f]=Da(!1),[y,I]=Da({name:"",storybookRoot:"",figmaFileUrl:""}),S=e.find(b=>b.id===t),x=Nh(e,t,a),M=x.length===0,z=b=>{n(b||null),u(!1)},O=async()=>{if(t)try{f(!0),await i(t),g(!1)}catch(b){console.error("Failed to delete project:",b)}finally{f(!1)}},L=process.env.STORYBOOK_UICOPILOT_FIGMA_KIT||"",[N,m]=Da(!1),v=()=>{L&&navigator.clipboard.writeText(L).then(()=>{m(!0),setTimeout(()=>m(!1),2e3)})},k=()=>{if(u(!0),a){let b=a.replace(/\/+$/,"").split("/").pop()||"";I({storybookRoot:a,name:b,figmaFileUrl:""})}},E=async()=>{if(y.name.trim())try{l(!0);let b;if(y.figmaFileUrl.trim()){let C=y.figmaFileUrl.trim(),A=C.match(/figma\.com\/(?:file|design)\/([a-zA-Z0-9]+)/);b=A?A[1]:C}let F=await o({name:y.name.trim(),storybookRoot:y.storybookRoot.trim()||void 0,figmaFileId:b});n(F.id),u(!1),I({name:"",storybookRoot:"",figmaFileUrl:""})}catch(b){console.error("Failed to create project:",b)}finally{l(!1)}},h=b=>{I(F=>{let C={...F,storybookRoot:b};if(!F.name&&b){let A=b.replace(/\/+$/,"").split("/").pop()||"";C.name=A}return C})};return It.createElement(EN,null,It.createElement(Gx,null,"Project"),It.createElement(RN,null,It.createElement(FN,{value:t||"",onChange:b=>z(b.target.value),disabled:r||s},It.createElement("option",{value:""},"-- Select a project --"),x.map(b=>It.createElement("option",{key:b.id,value:b.id},b.name))),It.createElement(PN,{onClick:k,disabled:r||c||s,type:"button"},"+ New"),It.createElement(HN,{onClick:()=>g(!0),disabled:!t||r,title:"Delete project",type:"button"},"\u{1F5D1}")),M&&It.createElement(AN,null,"No project for this Storybook yet \u2014 create one with \u201C+ New\u201D."),It.createElement(bo,{isOpen:p,title:"Delete Project",message:`This will permanently remove all reviews, mappings, and history for "${S?.name||"this project"}". This cannot be undone.`,confirmLabel:d?"Deleting...":"Delete",confirmText:S?.name,variant:"danger",onConfirm:O,onCancel:()=>g(!1)}),s&&It.createElement(MN,null,It.createElement(Bh,null,It.createElement(zh,null,"Storybook Path (for fix generation)"),It.createElement(Dh,{type:"text",placeholder:"/path/to/your/storybook",value:y.storybookRoot,onChange:b=>h(b.target.value)})),It.createElement(Bh,null,It.createElement(zh,null,"Project Name *"),It.createElement(Dh,{type:"text",placeholder:"my-storybook",value:y.name,onChange:b=>{let F=b.target.value;I(C=>({...C,name:F}))}})),L&&It.createElement(BN,null,It.createElement(zN,null,It.createElement("strong",null,"1.")," Open this template's Figma kit, then click"," ",It.createElement("strong",null,"Open in Figma")," (or ",It.createElement("strong",null,"Get a copy"),") to duplicate it to your own Figma workspace. ",It.createElement("strong",null,"2.")," ","Paste the URL of your copy (",It.createElement("code",null,"figma.com/design/\u2026"),") into the field below."),It.createElement(DN,null,It.createElement(NN,{href:L,target:"_blank",rel:"noopener noreferrer",title:L},L),It.createElement(_N,{type:"button",onClick:v},N?"Copied!":"Copy"))),It.createElement(Bh,null,It.createElement(zh,null,"Your Figma File URL (after duplicating)"),It.createElement(Dh,{type:"text",placeholder:"https://www.figma.com/design/...",value:y.figmaFileUrl,onChange:b=>{let F=b.target.value;I(C=>({...C,figmaFileUrl:F}))}}),A4(y.figmaFileUrl)&&It.createElement(LN,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).")),It.createElement(ON,null,It.createElement(F4,{onClick:E,disabled:c||!y.name.trim()||!y.figmaFileUrl.trim()||A4(y.figmaFileUrl)},c?"Creating...":"Create"),It.createElement($N,{onClick:()=>{u(!1),I({name:"",storybookRoot:"",figmaFileUrl:""})}},"Cancel"))))};import Nt,{useState as xl,useCallback as VC,useEffect as qH}from"react";import{styled as fi,useTheme as YH}from"storybook/theming";import En,{useState as Na,useEffect as p_,useCallback as Su}from"react";import{styled as wo}from"storybook/theming";Se();De();ut();var UN=/figma\.com\/community\/file\//i,jN=/figma\.com\//i;var VN=/^figd_/i;function WN(e){return UN.test(e.trim())}function GN(e){return VN.test(e.trim())}function M4(e){return jN.test(e.trim())}var qN='That\u2019s a Figma Community file \u2014 the API can\u2019t read it. In Figma, open it and click "Get a copy" to duplicate it to your workspace, then paste that URL (figma.com/design/\u2026).';function _h(e){let t=e.trim();return t&&M4(t)?"looks-like-url":null}function al(e){let t=e.trim();return t?WN(t)?"community":GN(t)?"looks-like-token":M4(t)?null:"not-figma":null}function Oh(e){return e==="looks-like-url"?"That looks like a Figma URL \u2014 paste it in the Figma file URL field, not here.":null}function sl(e){switch(e){case"community":return qN;case"looks-like-token":return"That looks like a Figma token (figd_\u2026) \u2014 paste it in the token field, not here.";case"not-figma":return"That doesn\u2019t look like a Figma file URL (figma.com/design/\u2026).";default:return null}}function ci(e){return e==="community"||e==="looks-like-token"||e==="not-figma"}Se();De();ut();import gn,{useState as $h}from"react";import{styled as mr,keyframes as YN}from"storybook/theming";var KN={autoLayout:"Auto Layout",componentStructure:"Structure",naming:"Naming",constraints:"Constraints",spacing:"Spacing",styles:"Styles",variants:"Variants"},XN=e=>e==="pass"?"\u2713":e==="warn"?"\u26A0":"\u2717",JN=mr.div({position:"relative",display:"inline-flex"}),QN=YN`
|
|
74
|
+
\u2705 ${se} issue${se>1?"s were":" was"} auto-dismissed as false positive${se>1?"s":""} (values already match design spec). Score recalculated to reflect active issues only.`));let wn=Ge.complianceScore??Ge.validation?.complianceScore;if(w.debug("[Review] Score sources:",{directScore:Ge.complianceScore,validationScore:Ge.validation?.complianceScore,parsedScore:wn}),wn==null){let Be=it.match(/(?:\*?\*?(?:##?)?\s*)?SCORE:\s*(\d+)/i);wn=Be?parseInt(Be[1],10):void 0,w.debug("[Review] Parsed score from response:",wn)}let Hn=Mt.current[de];Hn||(Hn=await _i(de)||{storyFile:"",componentFile:"[Component].tsx",cssFile:"[Component].css",baseDir:""},Hn.storyFile&&(Mt.current[de]=Hn)),w.debug("[Review] Story file paths:",Hn);let St=tt.map(Be=>({...Be,file:Be.file||ah(Be.fixTarget,Hn)||sh(Be,Hn)}));if(St=lh(St),w.debug("[Review] After de-duplication:",St.length,"issues"),!D){let Be=St.length;St=St.filter(ve=>ve.property?.toLowerCase()!=="textcontent"&&!ve.description?.toLowerCase().includes("text content")),Be!==St.length&&w.debug("[Review] Filtered out",Be-St.length,"textContent issues (toggle OFF)")}let go;pt&&Ot&&(go=(kt.getState().reviewHistory.find(ve=>ve.id===Ot)?.iterationNumber||0)+1);let ir={id:qe,componentId:de,storyId:de,modelId:l[0],parentReviewId:pt&&Ot||void 0,iterationNumber:go,figmaFileKey:void 0,figmaNodeId:fe||void 0,figmaFileUrl:Le||void 0,complianceScore:wn,visualSimilarity:Ge.visualSimilarity,issuesCount:St.filter(Be=>!Be.dismissed).length,issues:St,createdAt:new Date,reviewDurationMs:Date.now()-_n,costUsd:Ge.costUsd,inputTokens:Ge.inputTokens,outputTokens:Ge.outputTokens,cacheCreationTokens:Ge.cacheCreationTokens,cacheReadTokens:Ge.cacheReadTokens,variantMismatch:Ge.variantMismatch,storybookVariant:Ge.storybookVariant,figmaVariant:Ge.figmaVariant};if(w.debug("[useAIReview] About to call addReview with review:",{id:ir.id,storyId:ir.storyId,issueCount:ir.issues?.length,complianceScore:ir.complianceScore,createdAt:ir.createdAt?.toISOString(),inputTokens:ir.inputTokens,outputTokens:ir.outputTokens,costUsd:ir.costUsd,cacheCreationTokens:ir.cacheCreationTokens,cacheReadTokens:ir.cacheReadTokens}),_(ir),w.debug("[useAIReview] addReview called successfully"),de&&te.enableReviewBadges){let Be=St.filter(ve=>!ve.dismissed);yo(de,{score:wn??100,issueCount:Be.length,criticalCount:Be.filter(ve=>ve.severity==="critical").length,majorCount:Be.filter(ve=>ve.severity==="major").length,minorCount:Be.filter(ve=>ve.severity==="minor").length})}T("issues");let ls=St.filter(Be=>!Be.dismissed).length;w.debug("[Review] Created review with",ls,"active issues,",St.length-ls,"dismissed");let ql=fe||kt.getState().currentMapping?.figmaNodeId;w.debug("[Review] Validation check:",{figmaNodeId:fe,effectiveFigmaNodeIdSingle:ql,hasSessionToken:!!X,selectedProjectId:ye,issueCount:St.length}),w.debug("[Review] Issue validation handled server-side. Active:",St.filter(Be=>!Be.dismissed).length,"Dismissed:",St.filter(Be=>Be.dismissed).length)}catch(qe){w.error("[Review] Failed to parse issues:",qe)}}else throw qr?(w.error("[Review] ERROR: No structured result received from backend!"),w.error("[Review] Streaming text length:",qr.length),w.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(V){if(V instanceof Error&&V.name==="AbortError"){w.debug("[useAIReview] Review cancelled by user"),Lt(0,"Review cancelled");return}w.error("[useAIReview] Review error:",V);let ee=nl(V);throw d(ee),de&&te.enableReviewBadges&&QS(de),Lt(0,`Error: ${ee}`),V}finally{p(!1),g(null),Me.current=null,pe.current&&(clearTimeout(pe.current),pe.current=null),Te(null)}},[e,X,ye,de,Fe,l,p,d,f,F,C,A,B,S,x,O,Yt,Lt,z,h,k,m,v,Te,Y]),Ar=rl(()=>n?.issues?o==="all"?n.issues:n.issues.filter(Qe=>Qe.severity===o):[],[n,o]),je=rl(()=>{Me.current&&(w.debug("[useAIReview] Cancelling review..."),Me.current.abort())},[]);return{isReviewing:e,reviewError:t,reviewResults:n,showReviewMenu:r,severityFilter:o,showStreamingPanel:i,streamingPanelCollapsed:a,streamingMessages:s,streamingProgress:u,streamingStatus:c,startReview:wt,cancelReview:je,setShowReviewMenu:y,setSeverityFilter:I,setShowStreamingPanel:S,setStreamingPanelCollapsed:x,addStreamingMessage:M,updateStreamingMessage:z,clearStreamingMessages:O,setStreamingProgress:L,setStreamingStatus:N,resetReview:P,getFilteredIssues:Ar}};Se();Ue();De();import{useCallback as Kse}from"react";var Zse=K();Se();Ue();import{useEffect as mh,useRef as r4}from"react";import{useStorybookApi as pD,useStorybookState as gD,addons as o4}from"storybook/manager-api";var i4="storyArgsUpdated",a4="storyPrepared",hh=()=>{let e=pD(),t=gD(),{currentStoryId:n,currentStoryName:r,setCurrentStoryId:o,setCurrentStoryName:i,setCurrentStoryArgs:a}=gt(),{clearStaleReviewsForStory:s,resetReview:u,isReviewing:c,isValidating:l}=ue(),p=r4(null),g=r4(0);return mh(()=>{let d=t.storyId;if(d){p.current!==d&&(w.debug("[useCurrentStory] Story changed from",p.current,"to",d),s(d),p.current=d,g.current=Date.now()),o(d);let f=e.getData(d),y=f?.name&&f.name!=="default"?`${f.title} / ${f.name}`:f?.title||d;i(y);let I=f?.args;a(I??null),w.debug("[useCurrentStory] Current story:",{storyId:d,fullName:y})}else o(null),i(""),a(null),p.current=null},[t.storyId,e,o,i,a,s]),mh(()=>{let d=o4.getChannel(),f=null,y=I=>{if(I.storyId===n){if(a(I.args??null),c||l){w.debug("[useCurrentStory] Story args changed but review in progress, skipping reset");return}f&&clearTimeout(f),f=setTimeout(()=>{let{isReviewing:S,isValidating:x}=kt.getState();if(S||x){w.debug("[useCurrentStory] Story args changed but review started, skipping reset");return}if(Date.now()-g.current<2e3){w.debug("[useCurrentStory] Story args changed but story just navigated, skipping reset");return}w.debug("[useCurrentStory] Story args changed, clearing stale review"),u()},500)}};return d.on(i4,y),()=>{d.off(i4,y),f&&clearTimeout(f)}},[n,u,c,l,a]),mh(()=>{let d=o4.getChannel(),f=I=>{a(I.args??null)};d.on(a4,f);let y=e.getCurrentStoryData();return y?.args&&a(y.args),()=>{d.off(a4,f)}},[e,a]),{currentStoryId:n,currentStoryName:r}};Se();De();ut();import{useCallback as s4}from"react";import{addons as l4}from"storybook/manager-api";var c4=K(),Oi=()=>{let{currentMapping:e,loadingMapping:t,setCurrentMapping:n,refreshMappings:r}=gt(),{sessionToken:o}=he(),{selectedProjectId:i}=Ke(),a=s4(async c=>{if(!o)throw new Error("Not authenticated");if(!i)throw new Error("No project selected");let l=await Q(`${c4}/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 p=await l.json();r();try{l4.getChannel().emit("uireview/mappings-changed")}catch{}return p.mapping},[o,i,r]),s=s4(async c=>{if(!o)throw new Error("Not authenticated");if(!(await Q(`${c4}/api/mappings?id=${encodeURIComponent(c)}`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})).ok)throw new Error("Failed to delete mapping");r();try{l4.getChannel().emit("uireview/mappings-changed")}catch{}},[o,r]);return{currentMapping:e,loadingMapping:t,hasMapping:!!e,setCurrentMapping:n,createMapping:a,deleteMapping:s,refreshMappings:r}};Ia();Se();import{useCallback as xh,useEffect as u4,useRef as fD}from"react";import{useChannel as mD,addons as d4}from"storybook/manager-api";Ue();var hD=3e4,xD="forceRemount";function yD(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 bD(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 wD="UICOPILOT/APPLY_FIXES",vD="UICOPILOT/FIX_STARTED",SD="UICOPILOT/FIX_COMPLETED",kD="UICOPILOT/FIX_FAILED",CD="UICOPILOT/ALL_FIXES_APPLIED",yh=(e={})=>{let{onComplete:t,storybookRoot:n}=e,{isApplying:r,setIsApplying:o,setApplyFixesResult:i,updateIssueStatus:a,updateIssueGeneratedFix:s,setReviewDetailTab:u}=ue(),c=fD(null),l=xh(()=>{c.current&&(clearTimeout(c.current),c.current=null)},[]);u4(()=>()=>l(),[l]),u4(()=>{let f=d4.getChannel(),y=()=>{kt.getState().isApplying&&(w.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 f.on("channelWSDisconnect",y),()=>f.off("channelWSDisconnect",y)},[l,o,i]);let p=mD({[vD]:({issueId:f})=>{w.debug(`[useApplyFixes] Fix started for issue: ${f}`),s(f,{status:"applying"})},[SD]:({issueId:f,result:y})=>{w.debug(`[useApplyFixes] Fix completed for issue: ${f}`,y),a(f,"applied"),s(f,{status:"applied"})},[kD]:({issueId:f,error:y})=>{w.error(`[useApplyFixes] Fix failed for issue: ${f}`,y),a(f,"failed",y),s(f,{status:"failed",error:y})},[CD]:async({summary:f})=>{if(w.debug("[useApplyFixes] All fixes applied:",f),l(),o(!1),i({succeeded:f.succeeded,failed:f.failed,total:f.total}),f.failed>0?w.warn(`Applied ${f.succeeded}/${f.total} fixes. ${f.failed} failed.`):w.debug(`Successfully applied all ${f.total} fixes!`),f.succeeded>0){w.debug("[useApplyFixes] Emitting FORCE_REMOUNT to refresh story...");try{d4.getChannel().emit(xD,{storyId:kt.getState().currentStoryId}),w.debug("[useApplyFixes] FORCE_REMOUNT emitted")}catch(y){w.warn("[useApplyFixes] Failed to emit FORCE_REMOUNT:",y)}w.debug("[useApplyFixes] Reloading Storybook preview to load fresh CSS..."),await su(),w.debug("[useApplyFixes] Storybook preview reloaded")}t&&(w.debug("[useApplyFixes] Triggering screenshot refresh after fixes"),t()),w.debug("[useApplyFixes] Switching to Issues tab to show results"),u("issues")}}),g=xh(f=>{let y=[],I=[],S=[];for(let x of f){let M=x.currentValue||x.actual||"",z=x.suggestedValue||x.expected||"";if(M&&z&&yD(M,z)){y.push(x);continue}if(bD(x)){I.push(x);continue}let O=x.generatedFix?.filePath||x.file||"";if(!O){w.warn(`[useApplyFixes] Skipping issue ${x.id} - no target file path`);continue}let L=O.toLowerCase().split(".").pop()||"",N=["tsx","jsx","ts","js"].includes(L)?"component":"css";S.push({...x,targetFilePath:O,targetFileType:N})}return{actionable:S,negligible:y,designTokens:I}},[]);return{applyFixes:xh(f=>{if(r){w.warn("[useApplyFixes] Already applying fixes");return}if(f.length===0){w.warn("[useApplyFixes] No issues to fix");return}let y=g(f);if(y.negligible.length>0&&w.debug(`[useApplyFixes] Filtered ${y.negligible.length} negligible issue(s)`),y.designTokens.length>0&&w.debug(`[useApplyFixes] Skipped ${y.designTokens.length} design token suggestion(s)`),y.actionable.length===0){w.warn("[useApplyFixes] No actionable issues to fix after filtering");return}let I=y.actionable.filter(M=>M.targetFileType==="css"),S=y.actionable.filter(M=>M.targetFileType==="component");if(w.debug("[useApplyFixes] Applying fixes:"),I.length>0){let M=[...new Set(I.map(z=>z.targetFilePath))];w.debug(` - ${I.length} CSS issue(s) in: ${M.join(", ")}`)}if(S.length>0){let M=[...new Set(S.map(z=>z.targetFilePath))];w.debug(` - ${S.length} component issue(s) in: ${M.join(", ")}`),w.warn(" \u26A0\uFE0F Component files will be modified - review changes carefully!")}if(!document.querySelector("#storybook-preview-iframe")?.contentWindow){w.error("[useApplyFixes] Storybook preview iframe not found \u2014 connection lost"),i({succeeded:0,failed:0,total:y.actionable.length,error:"Connection lost. Please reload the page and try again."});return}o(!0),l(),c.current=setTimeout(()=>{kt.getState().isApplying&&(w.error("[useApplyFixes] Apply timed out \u2014 no response from server"),o(!1),i({succeeded:0,failed:0,total:y.actionable.length,error:"Apply timed out. The Storybook server may have disconnected. Please reload the page and try again."}))},hD),p(wD,{issues:y.actionable,storybookRoot:n||void 0})},[p,r,o,i,g,n,l]),isApplying:r}};Se();De();import{useState as wle}from"react";var kle=K();Se();import{useState as $i}from"react";De();Ue();ut();var ID=K();async function xu(e,t,n,r,o){if(!e)return w.warn("[DismissalSync] No database ID provided, skipping server sync"),{success:!1,error:"No database ID"};try{let i=await Q(`${ID}/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 s=await i.text();return w.error("[DismissalSync] API error:",i.status,s),{success:!1,error:`API error: ${i.status}`}}let a=await i.json();return w.debug(`[DismissalSync] Synced issue ${e}, new score: ${a.newScore}`),{success:!0,newScore:a.newScore,activeIssuesCount:a.activeIssuesCount}}catch(i){return w.error("[DismissalSync] Failed to sync:",i),{success:!1,error:i.message}}}async function p4(e,t){let n=e.filter(i=>i.dbId);if(n.length===0)return w.warn("[DismissalSync] No valid dismissals to sync (missing dbIds)"),{success:!1,error:"No valid dismissals"};let o=(await Promise.all(n.map(i=>xu(i.dbId,i.dismissed,i.dismissReason,i.dismissedBy,t)))).filter(i=>i.success);if(o.length>0){let i=o[o.length-1];return w.debug(`[DismissalSync] Batch synced ${o.length}/${n.length} dismissals`),i}return{success:!1,error:"All dismissals failed"}}pn();au();Ia();Ue();De();var TD=["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"],ED=["no changes required","no changes needed","no fix required","no fix needed","values already match","already matches","matches expected","correctly implemented","implementation is correct"],RD=K();function bh(){let[e,t]=$i(!1),[n,r]=$i(null),[o,i]=$i(null),[a,s]=$i(null),[u,c]=$i(null),[l,p]=$i(null),[g,d]=$i(null),{sessionToken:f}=he(),{selectedProjectId:y}=Ke(),{currentStoryId:I,currentStoryName:S}=gt(),{workspacePath:x,updateIssueGeneratedFix:M,batchUpdateIssueGeneratedFixes:z,includeComponentIssues:O,dismissIssue:L,recalculateScore:N,addStreamingMessage:m,roleOverride:v}=ue();return{generateBatchFixes:async E=>{if(!f){r("Not authenticated");return}if(!y){r("No project selected");return}if(!I){r("No story selected");return}if(E.length===0){r("No issues provided");return}t(!0),r(null),i(null),c(null),p(null),s({total:E.length,completed:0});let h=E.map(b=>({issueId:b.id,generatedFix:{code:"",diffPreview:"",filePath:b.file||"",confidence:0,strategy:"",status:"generating"}}));z(h);try{w.debug("[useBatchGenerateFixes] Generating fixes for",E.length,"issues");let b=null;try{let D=Js();D?.computed&&(b=D.computed,w.debug("[useBatchGenerateFixes] Extracted computed styles for fix context"))}catch(D){w.warn("[useBatchGenerateFixes] Could not extract computed styles:",D)}let F=null;try{F=await _i(I),F&&w.debug("[useBatchGenerateFixes] Resolved file paths from index.json:",F)}catch(D){w.warn("[useBatchGenerateFixes] Could not resolve story file paths:",D)}let C=await fetch(`${RD}/api/fixes/generate-batch`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${f}`,...lu(v)},body:JSON.stringify({projectId:y,storyId:I,workspacePath:x,includeComponentIssues:O,computedStyles:b,storyFilePaths:F,reviewContext:{storyName:S||void 0,variantArgs:Ca()||void 0},issues:E.map(D=>({id:D.id,dbId:D.dbId,title:D.title,description:D.description,property:D.property,currentValue:D.currentValue,suggestedValue:D.suggestedValue,file:D.file,lineNumber:D.lineNumber,severity:D.severity,type:D.type,fixTarget:D.fixTarget,domElement:D.domElement,figmaContext:D.figmaContext,suggestedFix:D.suggestedFix}))})});if(!C.ok){let D=await C.json().catch(()=>({}));throw new Error(D.error||"Batch fix generation failed")}let A=await C.json();if(!A.success)throw new Error(A.error||"Batch fix generation failed");if(w.debug("[useBatchGenerateFixes] Generated",A.result.fixes.length,"fixes"),A.result.storybookRoot&&(d(A.result.storybookRoot),w.debug("[useBatchGenerateFixes] Stored storybookRoot:",A.result.storybookRoot)),A.result.selfReview&&(p(A.result.selfReview),w.debug("[useBatchGenerateFixes] Self-review:",A.result.selfReview)),A.result.partialFailure){let{failedBatches:D,errors:H}=A.result.partialFailure;w.warn(`[useBatchGenerateFixes] Partial failure: ${D.join(", ")} batch(es) failed`),w.warn("[useBatchGenerateFixes] Errors:",H),r(`Some fixes couldn't be generated (${D.join(", ")}): ${H[0]||"Unknown error"}`)}s({total:E.length,completed:A.result.fixes.length});let B=new Set(A.result.fixes.map(D=>D.issueId)),P=E.filter(D=>!B.has(D.id));P.length>0&&(w.warn(`[useBatchGenerateFixes] ${P.length} issues not returned by API, marking as failed`),P.forEach(D=>{M(D.id,{code:"",diffPreview:"",filePath:D.file||"",confidence:0,strategy:"skipped",status:"failed",error:"Fix generation skipped by server"})})),A.timing&&(i({durationSec:A.timing.durationSec,issueCount:A.timing.issueCount,avgPerIssueSec:A.timing.avgPerIssueSec}),w.debug(`[useBatchGenerateFixes] Generation took ${A.timing.durationSec}s for ${A.timing.issueCount} issues`)),A.result?.usage&&(c({inputTokens:A.result.usage.inputTokens||0,outputTokens:A.result.usage.outputTokens||0,costUsd:A.result.usage.costUsd||0,modelId:A.result.usage.modelId||"unknown",provider:A.result.usage.provider||"unknown"}),w.debug(`[useBatchGenerateFixes] Token usage: ${A.result.usage.inputTokens} in, ${A.result.usage.outputTokens} out, $${A.result.usage.costUsd?.toFixed(4)}`));let _=[],T=[];if(A.result.fixes.forEach(D=>{let H=D.noChangesNeeded===!0;if(!H){let j=(D.fixStrategy||"").toLowerCase(),Y=(D.generatedCode||"").toLowerCase(),X=(D.diffPreview||"").toLowerCase(),ne=TD.some(ye=>j.includes(ye.toLowerCase())||j.replace(/[-_]/g,"").includes(ye.replace(/[-_]/g,""))),Te=ED.some(ye=>Y.includes(ye)||X.includes(ye));H=ne||Te}let R=E.find(j=>j.id===D.issueId);if(H&&R){let j=R.suggestedValue,Y=R.currentValue;j&&Y&&!zi(j,Y)&&(w.debug(`[useBatchGenerateFixes] SAFETY CHECK: values differ (expected="${j}", actual="${Y}"), NOT auto-dismissing issue ${D.issueId}`),H=!1)}let te=R?.programmaticallyVerified===!0;if(w.debug(`[useBatchGenerateFixes] Processing fix for issue ${D.issueId}:`,{isFalsePositive:H,isProgrammaticIssue:te,detectedBy:R?.detectedBy,noChangesNeeded:D.noChangesNeeded,fixStrategy:D.fixStrategy,title:R?.title?.substring(0,50)}),te&&H&&(w.debug(`[useBatchGenerateFixes] SKIPPING auto-dismiss for programmatic issue ${D.issueId} (detectedBy: ${R?.detectedBy})`),H=!1),H){let j=`Auto-dismissed: ${D.fixStrategy} - values already match`;w.debug(`[useBatchGenerateFixes] Auto-dismissing issue ${D.issueId} - noChangesNeeded: ${D.noChangesNeeded}, strategy: "${D.fixStrategy}"`),L(D.issueId,j),_.push({localId:D.issueId,dbId:R?.dbId,dismissReason:j}),T.push({issueId:D.issueId,generatedFix:{code:D.generatedCode||"",diffPreview:D.diffPreview||"",filePath:D.filePath,confidence:D.confidence,strategy:D.fixStrategy,status:"ready",error:void 0,noChangesExplanation:D.noChangesExplanation}})}else{let j=D.error||D.fixStrategy==="skipped"?"failed":"ready";T.push({issueId:D.issueId,generatedFix:{code:D.generatedCode,diffPreview:D.diffPreview,filePath:D.filePath,confidence:D.confidence,strategy:D.fixStrategy,status:j,error:D.error,noChangesExplanation:D.noChangesExplanation}})}}),T.length>0&&(w.debug(`[useBatchGenerateFixes] Applying ${T.length} fix updates in batch`),z(T)),_.length>0){if(w.debug(`[useBatchGenerateFixes] Auto-dismissed ${_.length} false positive(s), recalculating score`),N(),f){let H=_.filter(R=>R.dbId).map(R=>({dbId:R.dbId,dismissed:!0,dismissReason:R.dismissReason,dismissedBy:"system"}));H.length>0&&(w.debug(`[useBatchGenerateFixes] Syncing ${H.length} dismissals to server`),p4(H,f).then(R=>{R.success?w.debug(`[useBatchGenerateFixes] Server score updated to: ${R.newScore}`):w.warn("[useBatchGenerateFixes] Failed to sync dismissals:",R.error)}).catch(R=>{w.error("[useBatchGenerateFixes] Error syncing dismissals:",R)}))}let D=_.length===1?"1 issue was auto-dismissed as a false positive (values already match the design). The compliance score has been recalculated.":`${_.length} issues were auto-dismissed as false positives (values already match the design). The compliance score has been recalculated.`;m({role:"system",content:D})}w.debug("[useBatchGenerateFixes] Updated",A.result.fixes.length,"issues with fixes")}catch(b){w.error("[useBatchGenerateFixes] Failed to generate batch fixes:",b),r(b?.message||"Failed to generate batch fixes");let F=E.map(C=>({issueId:C.id,generatedFix:{code:"",diffPreview:"",filePath:C.file||"",confidence:0,strategy:"",status:"failed",error:b?.message||"Failed to generate fix"}}));z(F)}finally{t(!1),setTimeout(()=>s(null),1500)}},isGenerating:e,error:n,timing:o,progress:a,usage:u,selfReview:l,lastStorybookRoot:g}}Se();Ue();De();ut();import{useState as wh,useCallback as vh}from"react";var AD=K();function Sh(){let[e,t]=wh([]),[n,r]=wh(!1),[o,i]=wh(null),{sessionToken:a}=he(),{selectedProjectId:s}=Ke(),{currentStoryId:u}=gt(),{setReviewResults:c}=ue(),l=vh(async()=>{if(!(!a||!s)){r(!0),i(null);try{let d=new URLSearchParams({projectId:s,limit:"10"});u&&d.append("storyId",u);let f=await Q(`${AD}/api/reviews/list?${d.toString()}`,{method:"GET",credentials:"include",headers:{Authorization:`Bearer ${a}`}});if(!f.ok){let I=await f.json().catch(()=>({}));throw new Error(I.error||"Failed to fetch reviews")}let y=await f.json();if(!y.success)throw new Error("Failed to fetch reviews");w.debug("[useReviewHistory] Fetched",y.reviews.length,"reviews for:",u),t(y.reviews)}catch(d){w.error("[useReviewHistory] Failed to fetch reviews:",d),i(d instanceof Error?d.message:"Failed to fetch reviews")}finally{r(!1)}}},[a,s,u]),p=vh(d=>{w.debug("[useReviewHistory] Applying review:",d.id,"with",d.issues.length,"issues");let f=[];if(typeof d.models=="string")try{f=JSON.parse(d.models)}catch(x){w.error("[useReviewHistory] Failed to parse models:",x),f=["claude-sonnet-4-20250514"]}else f=d.models;let y=d.issues.map(x=>({id:x.id,reviewId:d.id,type:x.type,severity:x.severity,title:x.description,description:x.description,file:void 0,lineNumber:void 0,property:x.property,currentValue:x.actual,suggestedValue:x.expected,suggestedCode:x.suggestedFix||void 0,status:x.status,dismissed:x.dismissed||!1,dismissReason:x.dismissReason,dismissedBy:x.dismissedBy,selectedForFix:!1,error:void 0,createdAt:new Date(x.createdAt)})),I=d.completedAt&&d.createdAt?new Date(d.completedAt).getTime()-new Date(d.createdAt).getTime():void 0,S=d.storyId||"";if(c({id:d.id,componentId:"",storyId:S,modelId:f[0]||"claude-sonnet-4-6",complianceScore:d.complianceScore,issuesCount:d.issuesCount,issues:y,createdAt:new Date(d.createdAt),timestamp:new Date(d.createdAt).toISOString(),costUsd:d.costUsd,inputTokens:d.inputTokens,outputTokens:d.outputTokens,reviewDurationMs:I}),S){let x=d.issues.filter(L=>!L.dismissed),M=x.filter(L=>L.severity==="critical").length,z=x.filter(L=>L.severity==="major").length,O=x.filter(L=>L.severity==="minor").length;yo(S,{score:d.complianceScore,issueCount:x.length,criticalCount:M,majorCount:z,minorCount:O})}},[c]),g=vh(d=>{let f=e.find(y=>y.id===d);if(!f){w.error("[useReviewHistory] Review not found:",d);return}p(f)},[e,p]);return{reviews:e,isLoading:n,error:o,fetchReviews:l,loadReview:g}}Se();Ue();import{useEffect as FD,useState as PD,useRef as yu}from"react";import{useChannel as MD}from"storybook/manager-api";var LD="UICOPILOT/WORKSPACE_PATH",g4="UICOPILOT/REQUEST_WORKSPACE_PATH",BD=3e3,zD=500,DD=5,kh=()=>{let[e,t]=PD({isSupported:!1,isDetecting:!0,workspacePath:null}),{setWorkspacePath:n}=ue(),r=yu(!1),o=yu(null),i=yu(0),a=yu(null),s=MD({[LD]:({path:u})=>{r.current||(r.current=!0,o.current&&clearTimeout(o.current),a.current&&clearInterval(a.current),w.debug("[useAutoApplySupport] Server responded - auto-apply supported"),w.debug("[useAutoApplySupport] Workspace path:",u),t({isSupported:!0,isDetecting:!1,workspacePath:u}),n(u))}});return FD(()=>(w.debug("[useAutoApplySupport] Requesting workspace path from server (retry 0)..."),s(g4,{}),a.current=setInterval(()=>{!r.current&&i.current<DD&&(i.current++,w.debug(`[useAutoApplySupport] Requesting workspace path from server (retry ${i.current})...`),s(g4,{}))},zD),o.current=setTimeout(async()=>{if(a.current&&clearInterval(a.current),!r.current){w.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,w.debug("[useAutoApplySupport] HTTP fallback succeeded - auto-apply supported"),w.debug("[useAutoApplySupport] Workspace path:",c.workspacePath),t({isSupported:!0,isDetecting:!1,workspacePath:c.workspacePath}),n(c.workspacePath);return}}}catch{}r.current||(r.current=!0,w.debug("[useAutoApplySupport] Both channel and HTTP detection failed - auto-apply NOT supported"),t({isSupported:!1,isDetecting:!1,workspacePath:null}))}},BD),()=>{o.current&&clearTimeout(o.current),a.current&&clearInterval(a.current)}),[s]),e},Ch=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 w.error("[copyToClipboard] Failed to copy:",t),!1}};Se();De();import{useEffect as ND,useRef as _D}from"react";var tce=K(),OD=new Set;function Ih(){let{sessionToken:e}=he(),{selectedProjectId:t}=Ke(),n=_D(!1);ND(()=>{t&&OD.add(t)},[e,t])}Se();pn();import{useCallback as oce,useState as ice}from"react";import{useState as Hi,useMemo as C4,useCallback as Ba}from"react";De();Ue();ut();pn();import{useState as Ho,useEffect as bu,useRef as Ma,useCallback as Th}from"react";var $D=300;function f4({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o=20,enabled:i=!0}){let[a,s]=Ho([]),[u,c]=Ho({}),[l,p]=Ho(0),[g,d]=Ho([]),[f,y]=Ho(new Set),[I,S]=Ho(!1),[x,M]=Ho(!1),[z,O]=Ho(null),L=Ma(1),N=Ma(null),m=Ma(null),[v,k]=Ho(0),E=Ma(!1),h=Ma({projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o});h.current={projectId:e,typeFilter:t,search:n,figmaPage:r,limit:o};let b=Th(async(P,_,T=!1)=>{let{projectId:D,typeFilter:H,search:R,figmaPage:te,limit:j}=h.current;if(!D||!H)return;N.current&&N.current.abort();let Y=new AbortController;N.current=Y,_?M(!0):S(!0),O(null);try{let X=K(),ne=localStorage.getItem("uicopilot_session_token");if(!ne)throw new Error(`Not authenticated. Please connect to ${jt.NAME} first.`);let Te=new URLSearchParams({projectId:D,page:String(P),limit:String(j)});H&&Te.append("type",H),te&&Te.append("figmaPage",te),R.trim()&&Te.append("search",R.trim()),T&&Te.append("refresh","true");let ye=await fetch(`${X}/api/figma/frames?${Te.toString()}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${ne}`},signal:Y.signal});if(!ye.ok){let pe=await ye.json();throw new Error(pe.error||"Failed to fetch frames")}let de=await ye.json(),Fe=de.frames||[],ge=de.thumbnails||{},Me=ye.headers.get("X-Cache-Status");if(Fe.length===0&&P===1&&!_&&!T&&!E.current&&Me!=="HIT"){w.debug("[useFigmaFrameFetch] Empty result (cache miss), retrying with refresh=true"),E.current=!0,await b(1,!1,!0);return}_?(s(pe=>[...pe,...Fe]),c(pe=>({...pe,...ge}))):(s(Fe),c(ge)),p(de.total||Fe.length),de.pages&&d(de.pages),de.cacheDiff?.added&&y(new Set(de.cacheDiff.added)),L.current=P}catch(X){if(X instanceof DOMException&&X.name==="AbortError")return;let ne=X instanceof Error?X.message:"Failed to fetch Figma frames.";O(ne),w.error("Error fetching frames:",X)}finally{Y.signal.aborted||(S(!1),M(!1))}},[]);bu(()=>{if(!i||!e||!t)return;E.current=!1,m.current&&clearTimeout(m.current);let P=n.trim()?$D:0;return m.current=setTimeout(()=>{L.current=1,b(1,!1)},P),()=>{m.current&&clearTimeout(m.current)}},[e,t,n,r,i,v,b]);let F=Ma(new Set);bu(()=>{if(a.length===0)return;let P={};for(let _ of a)_.thumbnailCdnUrl&&!u[_.id]&&(P[_.id]=_.thumbnailCdnUrl);Object.keys(P).length>0&&c(_=>({..._,...P}))},[a]),bu(()=>{if(a.length===0)return;let P=a.filter(T=>!T.thumbnailCdnUrl&&!u[T.id]&&!F.current.has(T.id)).map(T=>T.id);if(P.length===0)return;P.forEach(T=>F.current.add(T)),(async()=>{try{let{projectId:T}=h.current,D=K(),H=localStorage.getItem("uicopilot_session_token");if(!H||!T)return;let R=await Q(`${D}/api/figma/frames?projectId=${T}&thumbnailIds=${P.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${H}`}},6e4);if(R.ok){let te=await R.json();te.thumbnails&&Object.keys(te.thumbnails).length>0&&c(j=>({...j,...te.thumbnails}))}}catch(T){P.forEach(D=>F.current.delete(D)),w.error("Failed to fetch frame thumbnails:",T)}})()},[a,u]),bu(()=>()=>{N.current&&N.current.abort(),m.current&&clearTimeout(m.current)},[]);let C=Th(async()=>{let P=L.current+1;await b(P,!0)},[b]),A=Th(()=>{E.current=!1,L.current=1,s([]),c({}),k(P=>P+1)},[]),B=a.length<l;return{frames:a,thumbnails:u,totalFrames:l,availablePages:g,recentlyAdded:f,isLoading:I,loadingMore:x,hasMore:B,loadMore:C,refresh:A,error:z}}De();Ue();ut();import{useState as La,useCallback as wu,useRef as HD}from"react";function m4({projectId:e}){let[t,n]=La({}),[r,o]=La({}),[i,a]=La(new Set),[s,u]=La(new Set),[c,l]=La({}),[p,g]=La(null),d=HD({}),f=wu(async x=>{if(!(!e||i.has(x))){a(M=>new Set(M).add(x));try{let M=K(),z=localStorage.getItem("uicopilot_session_token"),O=await Q(`${M}/api/figma/variants?projectId=${e}&componentSetId=${x}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`}});if(O.ok){let L=await O.json();if(L.variants){n(m=>({...m,[x]:L.variants}));let N={};for(let m of L.variants)m.thumbnailCdnUrl&&(N[m.id]=m.thumbnailCdnUrl);o(m=>({...m,[x]:{...m[x]||{},...N}})),d.current[x]||(d.current[x]=new Set),Object.keys(N).forEach(m=>d.current[x].add(m))}else o(N=>({...N,[x]:N[x]||{}}))}else o(L=>({...L,[x]:{}}))}catch(M){w.error("Failed to fetch variant metadata:",M),o(z=>({...z,[x]:{}}))}finally{a(M=>{let z=new Set(M);return z.delete(x),z})}}},[e,i]),y=wu(async(x,M)=>{if(!e||M.length===0)return;d.current[x]||(d.current[x]=new Set);let z=r[x]||{},O=M.filter(L=>!d.current[x].has(L)&&!z[L]);if(O.length!==0){O.forEach(L=>d.current[x].add(L)),u(L=>new Set(L).add(x));try{let L=K(),N=localStorage.getItem("uicopilot_session_token"),m=await Q(`${L}/api/figma/variants?projectId=${e}&componentSetId=${x}&thumbnailIds=${O.join(",")}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${N}`}});if(m.ok){let v=await m.json();v.rateLimitError?(g(v.rateLimitError),O.forEach(k=>d.current[x]?.delete(k))):(v.thumbnails&&Object.keys(v.thumbnails).length>0&&o(k=>({...k,[x]:{...k[x]||{},...v.thumbnails}})),Array.isArray(v.failed)&&v.failed.length>0&&l(k=>{let E=new Set(k[x]||[]);for(let h of v.failed)E.add(h);return{...k,[x]:E}}))}}catch(L){w.error("Failed to fetch variant thumbnails:",L),O.forEach(N=>d.current[x]?.delete(N))}finally{u(L=>{let N=new Set(L);return N.delete(x),N})}}},[e]),I=wu(x=>{o(M=>{let z={...M};return delete z[x],z}),n(M=>{let z={...M};return delete z[x],z}),l(M=>{let z={...M};return delete z[x],z}),delete d.current[x]},[]),S=wu(()=>{o({}),n({}),l({}),d.current={}},[]);return{variantChildren:t,variantThumbnails:r,variantFailed:c,loadingVariants:i,loadingThumbnails:s,rateLimitError:p,fetchVariants:f,fetchVariantThumbnails:y,clearVariantsForSet:I,clearAllVariants:S}}De();Ia();Se();Ue();ut();import{useState as h4,useEffect as x4,useRef as y4,useCallback as Eh}from"react";function b4({expandedSetId:e,availableFilters:t,filtersReady:n}){let[r,o]=h4(null),[i,a]=h4(!1),s=y4(null),u=y4(new Set),c=Eh(async()=>{if(!e||!n||t.length===0||s.current===e||u.current.has(e))return;let g=Ca();if(!g||Object.keys(g).length===0)return;let d=kt.getState().currentStoryId||"",f=d.replace(/--/g," / ").replace(/-/g," ").replace(/\b\w/g,y=>y.toUpperCase());s.current=e,a(!0),o(null);try{let y=K(),I=localStorage.getItem("uicopilot_session_token"),S=await Q(`${y}/api/figma/match-filters`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({storyName:f,storyId:d,storyArgs:g,availableFilters:t.map(x=>({property:x.property,values:x.values}))})});if(S.ok){let x=await S.json();x.confidence>0&&Object.keys(x.suggestedFilters).length>0&&(w.debug("[useFilterSuggestion] Suggestion:",x),o(x))}else S.status===404?w.debug("[useFilterSuggestion] match-filters endpoint not available (404), skipping suggestions"):w.error("[useFilterSuggestion] Unexpected status:",S.status)}catch(y){w.error("[useFilterSuggestion] Error:",y)}finally{a(!1)}},[e,t,n]);x4(()=>{c()},[c]),x4(()=>{e||(o(null),s.current=null)},[e]);let l=Eh(()=>{},[]),p=Eh(()=>{e&&u.current.add(e),o(null)},[e]);return{suggestion:r,isLoading:i,applySuggestion:l,dismissSuggestion:p}}function w4(e,t,n){let r=[];return e&&r.push("COMPONENT_SET"),t&&r.push("FRAME"),n&&r.push("COMPONENT"),r.join(",")}function v4(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 S4(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 k4(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 ol({projectId:e,limit:t=20,enabled:n=!0}){let[r,o]=Hi(!0),[i,a]=Hi(!1),[s,u]=Hi(!1),[c,l]=Hi(""),[p,g]=Hi(""),[d,f]=Hi([]),[y,I]=Hi(new Set),S=Ba(ge=>{l(ge),d.length>0&&f([]),y.size>0&&I(new Set)},[d.length,y.size]),x=w4(r,i,s),{frames:M,thumbnails:z,totalFrames:O,availablePages:L,recentlyAdded:N,isLoading:m,loadingMore:v,hasMore:k,loadMore:E,refresh:h,error:b}=f4({projectId:e,typeFilter:x,search:c,figmaPage:p||void 0,limit:t,enabled:n&&!!x}),{variantChildren:F,variantThumbnails:C,variantFailed:A,loadingVariants:B,loadingThumbnails:P,rateLimitError:_,fetchVariants:T,fetchVariantThumbnails:D,clearVariantsForSet:H,clearAllVariants:R}=m4({projectId:e}),te=C4(()=>{let ge=v4(F),Me=S4(M),pe={};for(let Mt of[...ge,...Me])pe[Mt.property]||(pe[Mt.property]=new Set),Mt.values.forEach(Yt=>pe[Mt.property].add(Yt));return Object.entries(pe).map(([Mt,Yt])=>({property:Mt,values:Array.from(Yt).sort()}))},[F,M]),j=y.size===1?Array.from(y)[0]:null,Y=b4({expandedSetId:j,availableFilters:te,filtersReady:te.length>0}),X=Ba(()=>{if(!Y.suggestion)return;let{suggestedFilters:ge}=Y.suggestion,Me=Object.entries(ge).map(([pe,Mt])=>({property:pe,value:Mt}));f(Me),Y.dismissSuggestion()},[Y.suggestion]),ne=C4(()=>d.some(ge=>ge.value)?M.filter(ge=>k4(ge,d,F[ge.id])):M,[M,d,F]),Te=Ba((ge,Me)=>{Me.stopPropagation();let pe=!y.has(ge);I(Mt=>{let Yt=new Set(Mt);return Yt.has(ge)?Yt.delete(ge):Yt.add(ge),Yt}),pe&&!F[ge]&&!B.has(ge)?T(ge):pe||H(ge)},[y,F,B,T,H]),ye=Ba((ge,Me)=>{let pe=Me===""?null:Me;f(Mt=>Mt.find(Lt=>Lt.property===ge)?Mt.map(Lt=>Lt.property===ge?{...Lt,value:pe}:Lt):[...Mt,{property:ge,value:pe}])},[]),de=Ba(()=>{f([])},[]),Fe=Ba(ge=>{let Me=M.find(pe=>pe.id===ge);if(Me?.thumbnailCdnUrl)return Me.thumbnailCdnUrl;if(z[ge])return z[ge];for(let pe of Object.values(C))if(pe[ge])return pe[ge]},[z,C]);return{frames:M,filteredFrames:ne,thumbnails:z,totalFrames:O,isLoading:m,loadingMore:v,hasMore:k,error:b,loadMore:E,refresh:h,search:c,setSearch:S,figmaPage:p,setFigmaPage:g,availablePages:L,recentlyAdded:N,showComponentSets:r,showFrames:i,showComponents:s,setShowComponentSets:o,setShowFrames:a,setShowComponents:u,variantFilters:d,availableFilters:te,handleFilterChange:ye,clearFilters:de,expandedSets:y,toggleExpanded:Te,variantChildren:F,variantThumbnails:C,variantFailed:A,loadingVariants:B,loadingThumbnails:P,rateLimitError:_,fetchVariantThumbnails:D,resolveThumbnail:Fe,filterSuggestion:Y.suggestion,filterSuggestionLoading:Y.isLoading,applySuggestedFilters:X,dismissFilterSuggestion:Y.dismissSuggestion}}Se();import{useEffect as oo,useCallback as GD,useState as qD,useRef as YD}from"react";import{useChannel as KD}from"storybook/manager-api";function li(e){return e.status===401}var tr=class extends Error{constructor(t){super(`Authentication failed (${t}). Please reconnect.`),this.name="AuthError",this.status=t}};pn();function I4(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-:]+)/),a=o||(i?i[1]:null);if(!r||!a)return null;let s=a.replace(/-/g,":");return{fileKey:r,nodeId:s}}catch(t){return mp.error("Error parsing Figma URL:",t),null}}Ue();De();De();ut();var UD=K();async function Rh(e){let t=await Q(`${UD}/api/projects`,{headers:{Authorization:`Bearer ${e}`}});if(li(t))throw new tr(t.status);return t.ok?(await t.json()).projects||[]:[]}De();ut();var jD=K();async function Ah(e,t){let n=await Q(`${jD}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(li(n))throw new tr(n.status);if(!n.ok)return[];let r=await n.json();return Array.isArray(r.mappings)?r.mappings:[]}De();ut();var VD=K();async function Fh(e,t,n,r=10,o=!1){let i=new URLSearchParams({projectId:t,limit:String(r),storyId:n});o&&i.set("includeAI","true");let a=await Q(`${VD}/api/reviews/list?${i}`,{headers:{Authorization:`Bearer ${e}`}});if(li(a))throw new tr(a.status);if(!a.ok)return[];let s=await a.json();return s.success?s.reviews||[]:[]}De();ut();var WD=K();async function Ph(e,t){let n=await Q(`${WD}/api/reviews/status?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(li(n))throw new tr(n.status);if(!n.ok)return{};let r=await n.json();return r.success?r.statuses||{}:{}}Ia();function XD(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 JD=K(),QD="UICOPILOT/WORKSPACE_PATH",ZD="UICOPILOT/REQUEST_WORKSPACE_PATH",Mh=!1;function Lh(){let{sessionToken:e,setSessionToken:t,setAuthError:n}=he(),{projects:r,selectedProjectId:o,currentStorybookPath:i,setProjects:a,setSelectedProjectId:s,setLoadingProjects:u,setCurrentStorybookPath:c}=Ke(),{currentStoryId:l,mappingsRefreshKey:p,mappingsByStoryId:g,setFigmaFileUrl:d,setCurrentMapping:f,setMappingsByStoryId:y,setMappingSource:I,setLoadingMapping:S}=gt(),{setReviewResults:x,setReviewDetailTab:M,setStorybookImageUrl:z,setFigmaImageUrl:O,setFullPrompt:L,setFullResponse:N,bulkAddReviews:m,setReviewHistoryLoading:v}=ue(),[k,E]=qD([]),h=YD(null);oo(()=>{let C=A=>{A.origin.startsWith(JD)&&A.data?.type==="UICOPILOT_AUTH_SUCCESS"&&A.data.token&&(w.debug("[useDataInit] OAuth success, setting token"),t(A.data.token))};return window.addEventListener("message",C),()=>window.removeEventListener("message",C)},[t]);let b=KD({[QD]:C=>{w.debug("[useDataInit] Received workspace path:",C.path),c(C.path)}});oo(()=>{b(ZD)},[b]),oo(()=>{if(!e){a([]),s(null);return}let C=!1;return(async()=>{try{u(!0);let B=await Rh(e);C||(a(B),n(null))}catch(B){B instanceof tr&&(t(null),n(B.message)),w.error("[useDataInit] Failed to fetch projects:",B)}finally{C||u(!1)}})(),()=>{C=!0}},[e,a,s,u]),oo(()=>{if(!i||r.length===0)return;let C=r.find(A=>A.storybookRoot===i);C?o!==C.id&&(w.debug("[useDataInit] Auto-selecting project:",C.name),s(C.id)):o&&(w.debug("[useDataInit] No project matches this Storybook \u2014 clearing selection"),s(null))},[i,r,o,s]),oo(()=>{if(!o||r.length===0)return;let C=r.find(B=>B.id===o),A=C?.figmaFileId;if(C&&typeof A=="string"&&A){let B=A,P=B.includes("figma.com")&&I4(B)?.fileKey||B;d(`https://www.figma.com/file/${P}`)}},[o,r,d]),oo(()=>!e||!o||Mh?void 0:(Mh=!0,(async()=>{try{let A=await Ph(e,o);for(let[B,P]of Object.entries(A))yo(B,{score:P.score,issueCount:P.issueCount,criticalCount:P.criticalCount,majorCount:P.majorCount,minorCount:P.minorCount});w.debug("[useDataInit] Populated sidebar badges for",Object.keys(A).length,"stories")}catch(A){A instanceof tr&&(t(null),n(A.message)),w.error("[useDataInit] Failed to fetch review statuses:",A)}})(),()=>{Mh=!1}),[e,o]),oo(()=>{if(!e||!o)return;let C=!1;return(async()=>{try{let B=await Ah(e,o);if(C)return;let P={};for(let _ of B)_.storyId&&(P[_.storyId]=_);y(P),t4(Object.keys(P))}catch(B){B instanceof tr&&(t(null),n(B.message)),w.error("[useDataInit] Failed to fetch all mappings:",B)}})(),()=>{C=!0}},[e,o,p,y]),oo(()=>{if(!l){f(null),I(null);return}let C=g[l]||null;C?(f(C),I("database")):(f(null),I(null)),S(!1)},[l,g,f,I,S]),oo(()=>{E([]),h.current=null},[l]),oo(()=>{if(!e||!o||!l)return;let C=!1;return(async()=>{v(!0);try{let B=await Fh(e,o,l,10,!0);if(!C){E(B);let P=B.map(_=>XD(_)).filter(Boolean);P.length>0&&m(P)}}catch(B){B instanceof tr&&(t(null),n(B.message)),w.error("[useDataInit] Failed to fetch reviews:",B)}finally{C||v(!1)}})(),()=>{C=!0}},[e,o,l,v,m]);let F=GD(C=>{w.debug("[useDataInit] Applying review:",C.id,"with",C.issues.length,"issues");let A=[];if(typeof C.models=="string")try{A=JSON.parse(C.models)}catch{A=["claude-sonnet-4-20250514"]}else A=C.models;let B=C.issues.map(D=>({id:D.id,reviewId:C.id,type:D.type,severity:D.severity,title:D.description,description:D.description,file:void 0,lineNumber:void 0,property:D.property,currentValue:D.actual,suggestedValue:D.expected,suggestedCode:D.suggestedFix||void 0,status:D.status,dismissed:D.dismissed||!1,dismissReason:D.dismissReason,dismissedBy:D.dismissedBy,figmaContext:D.figmaContext,selectedForFix:!1,error:void 0,createdAt:new Date(D.createdAt)})),P=C.completedAt&&C.createdAt?new Date(C.completedAt).getTime()-new Date(C.createdAt).getTime():void 0,_=C.storyId||"";x({id:C.id,componentId:"",storyId:_,modelId:A[0]||"claude-sonnet-4-6",complianceScore:C.complianceScore,issuesCount:C.issuesCount,issues:B,createdAt:new Date(C.createdAt),timestamp:new Date(C.createdAt).toISOString(),costUsd:C.costUsd,inputTokens:C.inputTokens,outputTokens:C.outputTokens,reviewDurationMs:P});let T=kt.getState().currentStoryId;if(_&&_===T&&(C.storybookScreenshot&&(z(C.storybookScreenshot),sS(_,C.storybookScreenshot,C.figmaScreenshot??void 0),w.debug("[useDataInit] Loaded persisted Storybook screenshot")),C.figmaScreenshot&&(O(C.figmaScreenshot),w.debug("[useDataInit] Loaded persisted Figma screenshot"))),C.aiPrompt&&(L(C.aiPrompt),w.debug("[useDataInit] Loaded persisted AI prompt")),C.aiResponse&&(N(C.aiResponse),w.debug("[useDataInit] Loaded persisted AI response")),_){let D=C.issues.filter(j=>!j.dismissed),H=D.filter(j=>j.severity==="critical").length,R=D.filter(j=>j.severity==="major").length,te=D.filter(j=>j.severity==="minor").length;yo(_,{score:C.complianceScore,issueCount:D.length,criticalCount:H,majorCount:R,minorCount:te})}},[x,z,O,L,N]);oo(()=>{if(k.length>0&&l&&h.current!==l){let C=k[0];C&&C.storyId===l&&(w.debug("[useDataInit] Auto-loading review:",C.id,"for:",l),h.current=l,F(C),M("issues"))}},[k,l,F,M])}pn();import{styled as Ui}from"storybook/theming";import il from"react";import{styled as za}from"storybook/theming";var eN=za.div({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 0"}),tN=za.div({display:"flex",alignItems:"center",gap:"8px"}),nN=za.span(({theme:e,connected:t})=>({width:"6px",height:"6px",borderRadius:"50%",flexShrink:0,backgroundColor:t?e.color.positive:e.color.mediumdark})),rN=za.span(({theme:e,connected:t})=>({fontSize:"12px",fontWeight:t?e.typography.weight.bold:e.typography.weight.regular,color:t?e.color.positive:e.color.defaultText})),oN=za.button(({theme:e})=>({height:"24px",padding:"0 10px",borderRadius:e.appBorderRadius,border:"none",cursor:"pointer",fontSize:"11px",fontWeight:e.typography.weight.bold,backgroundColor:"transparent",color:e.color.mediumdark,transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),iN=za.button(({theme:e})=>({height:"26px",padding:"0 12px",borderRadius:e.appBorderRadius,border:"none",cursor:"pointer",fontSize:"11px",fontWeight:e.typography.weight.bold,backgroundColor:e.color.defaultText,color:e.color.inverseText,transition:"opacity 0.15s","&:hover":{opacity:.9},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),vu=({connected:e,label:t,actionLabel:n,onAction:r,actionDisabled:o,actionVariant:i="ghost",actionTitle:a})=>il.createElement(eN,null,il.createElement(tN,null,il.createElement(nN,{connected:e}),il.createElement(rN,{connected:e},t)),n&&r&&il.createElement(i==="dark"?iN:oN,{onClick:r,disabled:o,title:a},n));var T4=Ui.label(({theme:e})=>({display:"block",fontSize:"10px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark,marginBottom:"8px"})),aN=Ui.div(({theme:e})=>({display:"inline-flex",padding:"2px",borderRadius:e.appBorderRadius,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content})),sN=Ui.button(({theme:e,active:t})=>({display:"inline-flex",alignItems:"center",gap:"6px",height:"28px",padding:"0 10px",borderRadius:e.appBorderRadius-1,border:"none",cursor:"pointer",fontSize:"12px",fontWeight:e.typography.weight.bold,transition:"all 0.15s",backgroundColor:t?e.color.defaultText:"transparent",color:t?e.color.inverseText:e.color.mediumdark,boxShadow:t?"0 1px 2px rgba(0,0,0,0.12)":"none","&:hover":{color:t?e.color.inverseText:e.color.defaultText}})),lN=Ui.span(({theme:e,active:t})=>({fontSize:"9px",fontFamily:e.typography.fonts.mono,textTransform:"uppercase",letterSpacing:"0.08em",opacity:t?.6:1,color:t?e.color.inverseText:e.color.mediumdark})),cN=Ui.div({display:"flex",alignItems:"center",gap:"6px"}),uN=Ui.div(({theme:e})=>({padding:"8px 10px",borderRadius:e.appBorderRadius,border:`1px solid ${e.color.negative}`,backgroundColor:e.background.hoverable,fontSize:"12px",color:e.color.negative})),dN=Ui.div({display:"flex",flexDirection:"column",gap:"16px"}),pN=[{id:"oauth",label:"OAuth",hint:"Recommended"},{id:"apikey",label:"API key",hint:""}],E4=({onConnect:e})=>{let{sessionToken:t,authMethod:n,setAuthMethod:r,startOAuth:o,logout:i,oauthPending:a,authError:s,saveApiKey:u}=no(),[c,l]=Xn.useState(""),p=!!t,g=()=>{let d=c.trim();d&&(u(d),e?.())};return Xn.createElement(dN,null,Xn.createElement("div",null,Xn.createElement(T4,null,"Authentication"),Xn.createElement(aN,null,pN.map(d=>{let f=n===d.id;return Xn.createElement(sN,{key:d.id,active:f,onClick:()=>r(d.id)},d.label,d.hint&&Xn.createElement(lN,{active:f},d.hint))}))),n==="apikey"&&!p&&Xn.createElement("div",null,Xn.createElement(T4,null,"Session token"),Xn.createElement(cN,null,Xn.createElement(cs,{type:"password",placeholder:"Paste session token",value:c,onChange:d=>l(d.target.value),style:{flex:1}}),Xn.createElement(Qt,{disabled:!c.trim(),onClick:g},"Save")),Xn.createElement(np,{style:{marginTop:"6px",opacity:.7}},"Paste the session token from your ",jt.NAME," setup page.")),n==="oauth"&&!p&&a&&Xn.createElement(np,{style:{opacity:.7}},"Sign-in window opened \u2014 complete sign-in in the popup, then return here."),s&&!p&&Xn.createElement(uN,null,"\u26A0\uFE0F ",s),Xn.createElement(vu,{connected:p,label:p?`Connected to ${jt.NAME}`:"Not connected",actionLabel:p?"Sign out":n==="oauth"?"Connect":void 0,actionVariant:p?"ghost":"dark",actionTitle:p?"Sign out and switch account":void 0,onAction:p?i:n==="oauth"?()=>{o(),e?.()}:void 0}))};import It,{useState as Da}from"react";Se();import fr,{useState as gN,useEffect as fN,useCallback as mN}from"react";import{styled as Uo,keyframes as R4}from"storybook/theming";var hN=R4({from:{opacity:0},to:{opacity:1}}),xN=R4({from:{opacity:0,transform:"translate(-50%, -50%) scale(0.95)"},to:{opacity:1,transform:"translate(-50%, -50%) scale(1)"}}),yN=Uo.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:1e4,animation:`${hN} 150ms ease-out`}),bN=Uo.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:`${xN} 150ms ease-out`})),wN=Uo.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,color:e.color.defaultText})),vN=Uo.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})),SN=Uo.div(({theme:e})=>({display:"flex",justifyContent:"flex-end",gap:`${e.layoutMargin*.8}px`})),kN=Uo.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}})),CN=Uo.p(({theme:e})=>({margin:`0 0 ${e.layoutMargin*.6}px`,fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.base,color:e.color.mediumdark})),IN=Uo.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}})),TN=Uo.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"}})),bo=({isOpen:e,title:t,message:n,confirmLabel:r="OK",cancelLabel:o="Cancel",variant:i="default",confirmText:a,onConfirm:s,onCancel:u})=>{let[c,l]=gN(""),p=!!a&&c!==a,g=mN(d=>{d.key==="Escape"&&u()},[u]);return fN(()=>{if(e)return l(""),document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,g]),e?fr.createElement(fr.Fragment,null,fr.createElement(yN,{onClick:u}),fr.createElement(bN,{role:"dialog","aria-modal":"true","aria-label":t},fr.createElement(wN,null,t),fr.createElement(vN,null,n),a&&fr.createElement(fr.Fragment,null,fr.createElement(CN,null,"Type ",fr.createElement("strong",null,a)," to confirm:"),fr.createElement(kN,{type:"text",value:c,onChange:d=>l(d.target.value),placeholder:a,autoFocus:!0})),fr.createElement(SN,null,fr.createElement(IN,{onClick:u},o),fr.createElement(TN,{variant:i,onClick:s,disabled:p},r)))):null};import{styled as Tn}from"storybook/theming";function Nh(e,t,n){return e.filter(r=>r.id===t||!r.storybookRoot?!0:n?r.storybookRoot===n:!1)}var EN=Tn.div({marginBottom:"30px"}),RN=Tn.div({display:"flex",gap:"8px",alignItems:"center"}),AN=Tn.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"6px",lineHeight:1.4})),FN=Tn(ar)({flex:1}),PN=Tn(Qt)({padding:"8px 12px",whiteSpace:"nowrap"}),MN=Tn.div(({theme:e})=>({marginTop:"12px",padding:"12px",backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px"})),LN=Tn.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"})),BN=Tn.div(({theme:e})=>({marginBottom:"10px",padding:"8px 10px",border:`1px solid ${e.appBorderColor}`,borderRadius:"4px",backgroundColor:e.background.content})),zN=Tn.div(({theme:e})=>({fontSize:"11px",lineHeight:1.5,color:e.color.mediumdark,marginBottom:"6px"})),DN=Tn.div({display:"flex",alignItems:"center",gap:"6px"}),NN=Tn.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"}})),_N=Tn.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 A4(e){return/figma\.com\/community\/file\//.test(e)}var Bh=Tn.div({marginBottom:"10px","&:last-child":{marginBottom:0}}),zh=Tn.label(({theme:e})=>({display:"block",fontSize:"12px",fontWeight:500,marginBottom:"4px",color:e.color.mediumdark})),Dh=Tn(cs)({fontSize:"13px",padding:"6px 8px"}),ON=Tn.div({display:"flex",gap:"8px",marginTop:"12px"}),F4=Tn(Qt)({fontSize:"12px",padding:"6px 12px"}),$N=Tn(F4)(({theme:e})=>({backgroundColor:"transparent",color:e.color.mediumdark,border:`1px solid ${e.appBorderColor}`,"&:hover":{backgroundColor:e.background.hoverable}})),HN=Tn.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"}})),P4=()=>{let{projects:e,selectedProjectId:t,setSelectedProjectId:n,loadingProjects:r,createProject:o,deleteProject:i}=Ir(),{currentStorybookPath:a}=Ke(),[s,u]=Da(!1),[c,l]=Da(!1),[p,g]=Da(!1),[d,f]=Da(!1),[y,I]=Da({name:"",storybookRoot:"",figmaFileUrl:""}),S=e.find(b=>b.id===t),x=Nh(e,t,a),M=x.length===0,z=b=>{n(b||null),u(!1)},O=async()=>{if(t)try{f(!0),await i(t),g(!1)}catch(b){console.error("Failed to delete project:",b)}finally{f(!1)}},L=process.env.STORYBOOK_UICOPILOT_FIGMA_KIT||"",[N,m]=Da(!1),v=()=>{L&&navigator.clipboard.writeText(L).then(()=>{m(!0),setTimeout(()=>m(!1),2e3)})},k=()=>{if(u(!0),a){let b=a.replace(/\/+$/,"").split("/").pop()||"";I({storybookRoot:a,name:b,figmaFileUrl:""})}},E=async()=>{if(y.name.trim())try{l(!0);let b;if(y.figmaFileUrl.trim()){let C=y.figmaFileUrl.trim(),A=C.match(/figma\.com\/(?:file|design)\/([a-zA-Z0-9]+)/);b=A?A[1]:C}let F=await o({name:y.name.trim(),storybookRoot:y.storybookRoot.trim()||void 0,figmaFileId:b});n(F.id),u(!1),I({name:"",storybookRoot:"",figmaFileUrl:""})}catch(b){console.error("Failed to create project:",b)}finally{l(!1)}},h=b=>{I(F=>{let C={...F,storybookRoot:b};if(!F.name&&b){let A=b.replace(/\/+$/,"").split("/").pop()||"";C.name=A}return C})};return It.createElement(EN,null,It.createElement(Gx,null,"Project"),It.createElement(RN,null,It.createElement(FN,{value:t||"",onChange:b=>z(b.target.value),disabled:r||s},It.createElement("option",{value:""},"-- Select a project --"),x.map(b=>It.createElement("option",{key:b.id,value:b.id},b.name))),It.createElement(PN,{onClick:k,disabled:r||c||s,type:"button"},"+ New"),It.createElement(HN,{onClick:()=>g(!0),disabled:!t||r,title:"Delete project",type:"button"},"\u{1F5D1}")),M&&It.createElement(AN,null,"No project for this Storybook yet \u2014 create one with \u201C+ New\u201D."),It.createElement(bo,{isOpen:p,title:"Delete Project",message:`This will permanently remove all reviews, mappings, and history for "${S?.name||"this project"}". This cannot be undone.`,confirmLabel:d?"Deleting...":"Delete",confirmText:S?.name,variant:"danger",onConfirm:O,onCancel:()=>g(!1)}),s&&It.createElement(MN,null,It.createElement(Bh,null,It.createElement(zh,null,"Storybook Path (for fix generation)"),It.createElement(Dh,{type:"text",placeholder:"/path/to/your/storybook",value:y.storybookRoot,onChange:b=>h(b.target.value)})),It.createElement(Bh,null,It.createElement(zh,null,"Project Name *"),It.createElement(Dh,{type:"text",placeholder:"my-storybook",value:y.name,onChange:b=>{let F=b.target.value;I(C=>({...C,name:F}))}})),L&&It.createElement(BN,null,It.createElement(zN,null,It.createElement("strong",null,"1.")," Open this template's Figma kit, then click"," ",It.createElement("strong",null,"Open in Figma")," (or ",It.createElement("strong",null,"Get a copy"),") to duplicate it to your own Figma workspace. ",It.createElement("strong",null,"2.")," ","Paste the URL of your copy (",It.createElement("code",null,"figma.com/design/\u2026"),") into the field below."),It.createElement(DN,null,It.createElement(NN,{href:L,target:"_blank",rel:"noopener noreferrer",title:L},L),It.createElement(_N,{type:"button",onClick:v},N?"Copied!":"Copy"))),It.createElement(Bh,null,It.createElement(zh,null,"Your Figma File URL (after duplicating)"),It.createElement(Dh,{type:"text",placeholder:"https://www.figma.com/design/...",value:y.figmaFileUrl,onChange:b=>{let F=b.target.value;I(C=>({...C,figmaFileUrl:F}))}}),A4(y.figmaFileUrl)&&It.createElement(LN,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).")),It.createElement(ON,null,It.createElement(F4,{onClick:E,disabled:c||!y.name.trim()||!y.figmaFileUrl.trim()||A4(y.figmaFileUrl)},c?"Creating...":"Create"),It.createElement($N,{onClick:()=>{u(!1),I({name:"",storybookRoot:"",figmaFileUrl:""})}},"Cancel"))))};import Nt,{useState as xl,useCallback as VC,useEffect as qH}from"react";import{styled as fi,useTheme as YH}from"storybook/theming";import En,{useState as Na,useEffect as p_,useCallback as Su}from"react";import{styled as wo}from"storybook/theming";Se();De();ut();var UN=/figma\.com\/community\/file\//i,jN=/figma\.com\//i;var VN=/^figd_/i;function WN(e){return UN.test(e.trim())}function GN(e){return VN.test(e.trim())}function M4(e){return jN.test(e.trim())}var qN='That\u2019s a Figma Community file \u2014 the API can\u2019t read it. In Figma, open it and click "Get a copy" to duplicate it to your workspace, then paste that URL (figma.com/design/\u2026).';function _h(e){let t=e.trim();return t&&M4(t)?"looks-like-url":null}function al(e){let t=e.trim();return t?WN(t)?"community":GN(t)?"looks-like-token":M4(t)?null:"not-figma":null}function Oh(e){return e==="looks-like-url"?"That looks like a Figma URL \u2014 paste it in the Figma file URL field, not here.":null}function sl(e){switch(e){case"community":return qN;case"looks-like-token":return"That looks like a Figma token (figd_\u2026) \u2014 paste it in the token field, not here.";case"not-figma":return"That doesn\u2019t look like a Figma file URL (figma.com/design/\u2026).";default:return null}}function ci(e){return e==="community"||e==="looks-like-token"||e==="not-figma"}Se();De();ut();import gn,{useState as $h}from"react";import{styled as mr,keyframes as YN}from"storybook/theming";var KN={autoLayout:"Auto Layout",componentStructure:"Structure",naming:"Naming",constraints:"Constraints",spacing:"Spacing",styles:"Styles",variants:"Variants"},XN=e=>e==="pass"?"\u2713":e==="warn"?"\u26A0":"\u2717",JN=mr.div({position:"relative",display:"inline-flex"}),QN=YN`
|
|
75
75
|
0% { transform: rotate(0deg); }
|
|
76
76
|
100% { transform: rotate(360deg); }
|
|
77
77
|
`,ZN=mr.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,o=!t&&!e;return{display:"inline-flex",alignItems:"center",gap:"4px",padding:o?"2px 6px":"2px 8px",borderRadius:o?n.appBorderRadius:"10px",fontSize:n.typography.size.s1,fontWeight:n.typography.weight.bold,fontFamily:n.typography.fonts.base,backgroundColor:o?"transparent":r(),color:o?n.color.mediumdark:n.color.inverseText,cursor:t?"wait":"pointer",transition:"all 0.15s",border:"none",outline:"none","&:hover:not(:disabled)":o?{color:n.color.defaultText,backgroundColor:n.background.hoverable}:{transform:"scale(1.05)",opacity:.9},"&:disabled":{cursor:"not-allowed",opacity:.7}}}),e_=mr.span`
|
|
@@ -88,7 +88,7 @@ ${St}`).join(`
|
|
|
88
88
|
`,FO=zk.span(({theme:e})=>({display:"inline-block",width:"12px",height:"12px",border:`2px solid ${e.appBorderColor}`,borderTopColor:"currentColor",borderRadius:"50%",animation:`${AO} 0.6s linear infinite`,marginRight:"6px",verticalAlign:"middle"})),PO=zk.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}}})),vo=({loading:e=!1,disabled:t=!1,onClick:n,variant:r="default",children:o,loadingText:i})=>Bk.createElement(PO,{variant:r,disabled:t||e,onClick:n},e&&Bk.createElement(FO,null),e&&i?i:o);De();import Ln from"react";import{styled as pl}from"storybook/theming";var Dk=pl.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"})),MO=pl.div({display:"flex",alignItems:"center",gap:"12px"}),Fu=pl.span({whiteSpace:"nowrap"}),Nk=pl.div({display:"flex",alignItems:"center",gap:"8px"}),Pu=pl.span(({theme:e})=>({fontWeight:600,color:e.color.defaultText})),Mu=({inputTokens:e,outputTokens:t,costUsd:n,compact:r=!1})=>{let o=e+t,i=n*Nv;return r?Ln.createElement(Dk,null,Ln.createElement(Fu,null,o.toLocaleString()," tokens"),Ln.createElement(Nk,null,Ln.createElement(Pu,null,"$",n.toFixed(4)),Ln.createElement("span",null,"\xB7"),Ln.createElement(Pu,null,"\u20AA",i.toFixed(2)))):Ln.createElement(Dk,null,Ln.createElement(MO,null,Ln.createElement(Fu,null,e.toLocaleString()," input"),Ln.createElement("span",null,"+"),Ln.createElement(Fu,null,t.toLocaleString()," output"),Ln.createElement("span",null,"="),Ln.createElement(Fu,null,Ln.createElement("strong",null,o.toLocaleString())," tokens")),Ln.createElement(Nk,null,Ln.createElement(Pu,null,"$",n.toFixed(4)),Ln.createElement("span",null,"\xB7"),Ln.createElement(Pu,null,"\u20AA",i.toFixed(2))))};import hr from"react";import{styled as ui}from"storybook/theming";function i1(e){if(typeof e!="string")return e;try{let t=JSON.parse(e);if(t.summary)return t}catch{}return{summary:e}}var LO=ui.div(({theme:e})=>({display:"flex",flexDirection:"column",gap:`${e.layoutMargin*.5}px`})),_k=ui.div(({theme:e,color:t})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,color:t||e.color.defaultText,lineHeight:"1.4"})),BO=ui.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.25}px`,flexWrap:"wrap",fontSize:e.typography.size.s1,color:e.color.mediumdark})),zO=ui.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})),DO=ui.span(({theme:e})=>({color:e.color.mediumlight,fontSize:e.typography.size.s1})),NO=ui.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,fontStyle:"italic"})),_O=ui.div(({theme:e})=>({fontSize:e.typography.size.s1,color:e.color.mediumdark,display:"flex",gap:`${e.layoutMargin*.25}px`})),OO=ui.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText})),Ok=({data:e,color:t,compact:n})=>n?hr.createElement(_k,{color:t},e.summary):hr.createElement(LO,null,hr.createElement(_k,{color:t},e.summary),e.mappings&&e.mappings.length>0&&hr.createElement(BO,null,e.mappings.map((r,o)=>hr.createElement(hr.Fragment,{key:o},hr.createElement(zO,null,r.from," ",hr.createElement(DO,null,"\u2192")," ",r.to)))),e.candidates!=null&&e.candidates>1&&hr.createElement(NO,null,e.candidates," candidate variants matched"),e.defaults&&e.defaults.length>0&&hr.createElement(hr.Fragment,null,e.defaults.map((r,o)=>hr.createElement(_O,{key:o},hr.createElement(OO,null,r.choice),hr.createElement("span",null,"\u2014 ",r.why)))));var $O=Ft.div({display:"flex",flexDirection:"column",flex:1,overflow:"hidden"}),HO=Ft.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"20px 24px",borderBottom:`1px solid ${e.appBorderColor}`})),UO=Ft.div({display:"flex",flexDirection:"column",gap:"4px"}),jO=Ft.div({display:"flex",alignItems:"center",gap:"10px"}),VO=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"})),Hk=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})),WO=Ft.span(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark})),GO=Ft.div({display:"flex",gap:"8px"}),qO=Ft.div(({theme:e})=>({display:"flex",alignItems:"center",padding:"12px 24px",gap:"12px",borderBottom:`1px solid ${e.appBorderColor}`})),YO=Ft(Qo)(({theme:e})=>({flex:1,fontSize:e.typography.size.s2})),KO=Ft.div({display:"flex",gap:"4px"}),Lu=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}})),XO=Ft.div({display:"flex",flexDirection:"column",flex:1,padding:"16px 24px",gap:"8px",overflowY:"auto"}),JO=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}})),QO=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}`}})),ZO=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"})),Bu=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}`})),e$=Ft.img({width:"100%",height:"100%",objectFit:"contain"}),Gk=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)"}}})),Uk=Ft.div({flex:1,display:"flex",flexDirection:"column",gap:"2px",minWidth:0}),jk=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"})),a1=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"})),mpe=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"})),t$=Ft.div(({theme:e})=>({flexShrink:0,color:e.color.mediumlight,fontSize:"14px"})),n$=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})),r$=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}})),o$=Ft.div(({theme:e})=>({padding:"16px 0",marginTop:"8px",borderTop:`1px solid ${e.appBorderColor}`,display:"flex",flexDirection:"column",gap:"8px"})),i$=Ft.div({display:"flex",flexWrap:"wrap",gap:"6px"}),a$=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})),s$=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})),l$=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"}})),hpe=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})),Vk=({src:e,alt:t})=>{let[n,r]=zu(!1);return ze.createElement(ze.Fragment,null,!n&&ze.createElement(Gk,null),ze.createElement(e$,{src:e,alt:t,onLoad:()=>r(!0),style:n?void 0:{position:"absolute",opacity:0}}))};function Wk(e){return e>=90?"high":e>=70?"medium":"low"}function c$(e){return e==="high"?"#16a34a":e==="medium"?"#d97706":"#ef4444"}var s1=({results:e,stories:t,onApply:n,onCancel:r,onRerun:o,isApplying:i,isRerunning:a,source:s,resolveThumbnail:u,resolveStoryScreenshot:c,isCapturingScreenshots:l,onBrowse:p})=>{let[g,d]=zu(()=>{let k=new Set;for(let E of e.mappings)E.confidence>=90&&k.add(E.storyId);return k}),[f,y]=zu(""),[I,S]=zu("all"),x=$k(()=>{let k=new Map;for(let E of t)k.set(E.id,{name:E.name,title:E.title});return k},[t]),M=$k(()=>{let k=e.mappings;if(I!=="all"&&(k=k.filter(E=>Wk(E.confidence)===I)),f.trim()){let E=f.toLowerCase();k=k.filter(h=>{let b=x.get(h.storyId);return b?.name.toLowerCase().includes(E)||b?.title.toLowerCase().includes(E)||h.componentSetName.toLowerCase().includes(E)||h.figmaFrameName.toLowerCase().includes(E)})}return k},[e.mappings,I,f,x]),z=k=>{d(E=>{let h=new Set(E);return h.has(k)?h.delete(k):h.add(k),h})},O=()=>{let k=e.mappings.filter(E=>g.has(E.storyId));n(k)},L=e.mappings.filter(k=>k.confidence>=90).length,N=e.mappings.filter(k=>k.confidence>=70&&k.confidence<90).length,m=e.mappings.filter(k=>k.confidence<70).length,v=e.usage;return ze.createElement($O,null,ze.createElement(HO,null,ze.createElement(UO,null,ze.createElement(jO,null,ze.createElement(VO,null,"Auto-Map Results"),ze.createElement(Hk,{variant:"success"},e.stats.matched," matched"),e.unmatched.length>0&&ze.createElement(Hk,{variant:"danger"},e.unmatched.length," unmatched"),s&&ze.createElement(s$,{variant:s},s==="cache"?"Loaded from cache":s==="deterministic"?"Deterministic (no AI)":"Fresh analysis")),ze.createElement(WO,null,"Review matches below. Uncheck any incorrect mappings before applying.")),ze.createElement(GO,null,s==="cache"&&o&&ze.createElement(l$,{onClick:o,disabled:a},a?"Re-running...":"Re-run LLM"),ze.createElement(vo,{onClick:r,variant:"ghost"},"Cancel"),ze.createElement(vo,{loading:i,onClick:O,loadingText:"Applying..."},"Apply ",g.size," Selected"))),ze.createElement(qO,null,ze.createElement(YO,{type:"text",placeholder:"Filter stories...",value:f,onChange:k=>y(k.target.value)}),ze.createElement(KO,null,ze.createElement(Lu,{active:I==="all",onClick:()=>S("all")},"All ",e.mappings.length),L>0&&ze.createElement(Lu,{active:I==="high",onClick:()=>S("high")},"\u226590% (",L,")"),N>0&&ze.createElement(Lu,{active:I==="medium",onClick:()=>S("medium")},"70-89% (",N,")"),m>0&&ze.createElement(Lu,{active:I==="low",onClick:()=>S("low")},"<70% (",m,")"))),ze.createElement(XO,null,M.map(k=>{let E=x.get(k.storyId),h=Wk(k.confidence),b=g.has(k.storyId),F=h==="low";return ze.createElement(JO,{key:k.storyId,dimmed:F&&!b},ze.createElement(QO,{checked:b,onClick:()=>z(k.storyId)},b?"\u2713":""),(()=>{let C=c?.(k.storyId);return C?ze.createElement(Bu,null,ze.createElement(Vk,{src:C,alt:E?.name||k.storyId})):l?ze.createElement(Bu,null,ze.createElement(Gk,null)):ze.createElement(ZO,{bgColor:F?"#f1f5f9":"#eff6ff"},ze.createElement("span",{style:{fontFamily:"Inter",fontSize:"8px",fontWeight:500,color:F?"#94a3b8":"#3b82f6"}},(E?.name||"?").substring(0,4)))})(),ze.createElement(Uk,null,ze.createElement(jk,null,E?.name||k.storyId),ze.createElement(a1,null,E?.title||"")),ze.createElement(t$,null,"\u2192"),(()=>{let C=u?.(k.figmaNodeId),A=i1(k.reason),B=A.summary+(A.candidates?` (${A.candidates} candidates)`:"");return C?ze.createElement(Bu,{title:B},ze.createElement(Vk,{src:C,alt:k.figmaFrameName})):ze.createElement(Bu,{title:B},ze.createElement("span",{style:{fontFamily:"Inter",fontSize:"10px",fontWeight:500,color:"#94a3b8"}},"No thumbnail"))})(),ze.createElement(Uk,null,ze.createElement(jk,null,k.componentSetName),ze.createElement(a1,null,k.figmaFrameName),ze.createElement(Ok,{data:i1(k.reason),color:c$(h)})),ze.createElement(n$,{level:h},k.confidence,"%"),p&&ze.createElement(r$,{onClick:()=>p(k.componentSetName)},"Browse"))}),e.unmatched.length>0&&ze.createElement(o$,null,ze.createElement(a1,null,e.unmatched.length," stories couldn't be matched \u2014 map manually after applying"),ze.createElement(i$,null,e.unmatched.map(k=>{let E=x.get(k);return ze.createElement(a$,{key:k},ze.createElement("span",{style:{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#cbd5e1"}}),E?`${E.name} (${E.title})`:k)})))),v&&s!=="cache"&&ze.createElement("div",{style:{padding:"8px 24px",borderTop:"1px solid #f0f0f0"}},ze.createElement(Mu,{inputTokens:v.inputTokens||0,outputTokens:v.outputTokens||0,costUsd:v.costUsd||0})))};De();Ue();import{useState as di,useCallback as pi,useRef as u$}from"react";import{useStorybookApi as d$}from"storybook/manager-api";function qk({projectId:e}){let t=d$(),n=u$(null),[r,o]=di(!1),[i,a]=di(!1),[s,u]=di(!1),[c,l]=di(null),[p,g]=di(null),[d,f]=di(null),[y,I]=di(""),[S,x]=di(null),M=pi(async()=>{let E=await fetch("/index.json");if(!E.ok)throw new Error("Failed to fetch Storybook index");let h=await E.json(),b=h.entries||h.stories||{},F=Object.keys(b).filter(B=>b[B].type==="story");w.debug(`[useAutoMap] Found ${F.length} stories in index.json`);let C=[];for(let B of F){let P=b[B],_=t.getData(B),T={..._?.initialArgs||{}},D=_?.argTypes||{};for(let[H,R]of Object.entries(D))if(!(H in T)){let te=R;if(te.defaultValue!==void 0)T[H]=te.defaultValue;else if(te.table?.defaultValue?.summary!==void 0){let j=te.table.defaultValue.summary;j==="false"?T[H]=!1:j==="true"?T[H]=!0:T[H]=j}}C.push({id:B,name:P.name||B.split("--").pop()||B,title:P.title||"",initialArgs:T,argTypes:D})}let A=C.filter(B=>Object.keys(B.initialArgs).length>0);return w.debug(`[useAutoMap] Manifest: ${C.length} stories, ${A.length} with args`),C},[t]),z=pi(async()=>{if(!e)return!1;try{let E=K(),h=localStorage.getItem("uicopilot_session_token");if(!h)return!1;let b=await fetch(`${E}/api/figma/auto-map?projectId=${e}`,{headers:{Authorization:`Bearer ${h}`}});if(!b.ok)return!1;let F=await b.json();return F.hasSuggestions&&F.mappings?.length>0?(g(F),x("cache"),I(`Loaded ${F.mappings.length} saved suggestions`),w.debug(`[useAutoMap] Loaded ${F.mappings.length} existing suggestions from DB`),!0):!1}catch{return!1}},[e]),O=pi(async E=>{o(!0),I("Collecting story information...");let h;try{if(h=await M(),E?.length&&(h=h.filter(F=>!E.includes(F.id)),w.debug(`[useAutoMap] After excluding mapped: ${h.length} stories`)),h.length===0){l("No unmapped stories found"),o(!1);return}f(h)}catch(F){l(F instanceof Error?F.message:"Failed to collect story manifest"),o(!1);return}o(!1),a(!0),I(`Analyzing ${h.length} stories against Figma components...`);let b=new AbortController;n.current=b;try{let F=K(),C=localStorage.getItem("uicopilot_session_token");if(!C)throw new Error("Not authenticated");let A=await fetch(`${F}/api/figma/auto-map`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${C}`},body:JSON.stringify({projectId:e,stories:h.map(P=>({id:P.id,name:P.name,title:P.title,initialArgs:P.initialArgs,argTypes:P.argTypes}))}),signal:b.signal});if(!A.ok){let P=await A.json();throw new Error(P.error||"Auto-map failed")}let B=await A.json();g(B),x("llm"),I(`Found ${B.stats.matched} matches (${B.stats.highConfidence} high confidence)`),w.debug(`[useAutoMap] Results: ${B.stats.matched}/${B.stats.total} matched, ${B.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{a(!1),n.current=null}},[e,M]),L=pi(async E=>{if(!e)return;if(l(null),g(null),x(null),o(!0),I("Checking for existing suggestions..."),await z()){o(!1);return}await O(E)},[e,z,O]),N=pi(async E=>{e&&(l(null),g(null),x(null),await O(E))},[e,O]),m=pi(async E=>{if(!(!e||E.length===0)){u(!0),I(`Applying ${E.length} mappings...`);try{let h=K(),b=localStorage.getItem("uicopilot_session_token");if(!b)throw new Error("Not authenticated");let F=0;for(let C of E)try{(await fetch(`${h}/api/mappings`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({projectId:e,storyId:C.storyId,figmaNodeId:C.figmaNodeId,name:C.figmaFrameName||C.componentSetName})})).ok?F++:w.warn(`[useAutoMap] Failed to apply mapping for ${C.storyId}`)}catch(A){w.error(`[useAutoMap] Error applying mapping for ${C.storyId}:`,A)}I(`Applied ${F}/${E.length} mappings`),w.debug(`[useAutoMap] Applied ${F}/${E.length} mappings`)}catch(h){l(h instanceof Error?h.message:"Failed to apply mappings")}finally{u(!1)}}},[e]),v=pi(()=>{n.current?.abort()},[]),k=pi(()=>{g(null),f(null),l(null),I(""),x(null)},[]);return{collectAndMap:L,rerun:N,loadExisting:z,applyMappings:m,cancel:v,reset:k,isCollecting:r,isMapping:i,isApplying:s,error:c,results:p,manifest:d,progress:y,source:S}}De();Ue();import{useState as Nu,useCallback as l1,useRef as Yk}from"react";async function Du(e,t,n,r){let o=new Array(e.length),i=0;async function a(){for(;i<e.length&&!r();){let s=i++;try{let u=await e[s]();o[s]=u,r()||n(s,u)}catch(u){o[s]=u,r()||n(s,u)}}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),o}ut();var p$=3;function g$(e){let t=Object.entries(e).filter(([,n])=>n!=null&&n>=.9).map(([n])=>n);return t.length?`matched: ${t.join(", ")}`:"weak signature match"}function f$(e,t){let n=`Signature ${Math.round(e.score*100)}% \u2014 ${g$(e.signals)}`;return t?`${n}; runner-up: ${t.name} (${Math.round(t.score*100)}%)`:n}function Kk({projectId:e}){let[t,n]=Nu(!1),[r,o]=Nu(""),[i,a]=Nu(null),[s,u]=Nu(null),c=Yk(!1),l=Yk(!1),p=l1(async f=>{if(l.current)return;if(!e||f.length===0){a(f.length===0?"No unmapped stories found":null);return}let y=localStorage.getItem("uicopilot_session_token");if(!y){a("Not authenticated");return}l.current=!0,c.current=!1,n(!0),a(null),u(null),o("Preparing match index\u2026 first run can take ~30s, then it is cached");let I=K(),S=0,x=[],M=[],z={},O=f.map(L=>async()=>{let N=await Q(`${I}/api/figma/suggest-links`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${y}`},body:JSON.stringify({projectId:e,story:{id:L.id,name:L.name,title:L.title,args:L.args}})},12e4);if(!N.ok){let m=await N.json().catch(()=>({}));throw new Error(m.error||`suggest-links failed (${N.status})`)}return await N.json()});try{let L=await Du(O,p$,(k,E)=>{S+=1,o(`Matched ${S}/${f.length} stories\u2026`);let h=f[k];if(E instanceof Error){w.warn(`[useAutoLink] ${h.id}: ${E.message}`),M.push(h.id);return}let[b,F]=E.suggestions??[];if(!b){M.push(h.id);return}x.push({storyId:h.id,figmaNodeId:b.figmaNodeId,figmaFrameName:b.name,componentSetName:b.name,confidence:Math.round(b.score*100),reason:f$(b,F)});for(let C of E.suggestions)z[C.figmaNodeId]=C.thumbnailUrl},()=>c.current);if(c.current){o("Cancelled");return}let N=L.find(k=>k instanceof Error);if(x.length===0&&N)throw N;let m=new Set,v=x.filter(k=>m.has(k.storyId)?!1:(m.add(k.storyId),!0));w.debug(`[useAutoLink] ${f.length} stories \u2192 ${x.length} mappings (${v.length} unique)`),u({mappings:v,unmatched:M,thumbnailUrls:z,stats:{total:f.length,matched:v.length,highConfidence:v.filter(k=>k.confidence>=90).length}}),o(`Found ${v.length} matches (no AI)`)}catch(L){a(L instanceof Error?L.message:"Auto-link failed")}finally{l.current=!1,n(!1)}},[e]),g=l1(()=>{c.current=!0,n(!1)},[]),d=l1(()=>{u(null),a(null),o("")},[]);return{run:p,cancel:g,reset:d,isRunning:t,progress:r,error:i,results:s}}Ue();import{useState as c1,useEffect as m$,useRef as Xk}from"react";var Jk=2;async function h$(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 Qk(e){let[t,n]=c1({}),[r,o]=c1(0),[i,a]=c1(!1),s=Xk(null),u=Xk(""),c=e.join(",");return m$(()=>{if(!e.length||c===u.current)return;u.current=c,n({}),o(0),a(!0);let l=new AbortController;s.current=l;let p=0;return(async()=>{for(let d=0;d<e.length&&!l.signal.aborted;d+=Jk){let f=e.slice(d,d+Jk),y=await Promise.all(f.map(S=>h$(S,l.signal).then(x=>({id:S,img:x}))));if(l.signal.aborted)break;let I={};for(let{id:S,img:x}of y)p++,x&&(I[S]=x);Object.keys(I).length>0&&n(S=>({...S,...I})),o(p)}a(!1),w.debug(`[useStoryScreenshots] Captured ${p}/${e.length} screenshots`)})().catch(()=>a(!1)),()=>{l.abort()}},[c]),{screenshots:t,isCapturing:i,progress:{done:r,total:e.length}}}import Re,{useState as u1,useEffect as gl,useMemo as x$,useCallback as y$}from"react";import{styled as b$}from"storybook/theming";Ue();var w$=b$.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"}})),$a=({isOpen:e,onClose:t,onSelect:n,projectId:r,stories:o=[],currentStoryId:i,onStoryChange:a,multiSelect:s=!1,onMultiSelect:u,initialSearch:c})=>{let l=ol({projectId:r||"",enabled:e&&!!r}),p=Re.useRef(!1);gl(()=>{e&&c&&!p.current&&(l.setSearch(c),p.current=!0),e||(p.current=!1)},[e,c]);let[g,d]=u1(new Set),[f,y]=u1(i||o[0]?.id||"");gl(()=>{i&&y(i)},[i]);let I=50,S=8,[x,M]=u1({}),z=y$(h=>{M(b=>({...b,[h]:(b[h]||1)+1}))},[]);gl(()=>{M({})},[l.variantFilters]),gl(()=>{l.expandedSets.forEach(h=>{let b=l.variantChildren[h];if(!b||b.length===0)return;let F=b;l.variantFilters.some(B=>B.value)&&(F=b.filter(B=>B.variantProperties?l.variantFilters.every(P=>P.value?B.variantProperties?.[P.property]===P.value:!0):!1));let C=x[h]||1,A=F.slice(0,C*I).map(B=>B.id);for(let B=0;B<A.length;B+=S){let P=A.slice(B,B+S),_=B/S*300;_===0?l.fetchVariantThumbnails(h,P):setTimeout(()=>l.fetchVariantThumbnails(h,P),_)}})},[l.expandedSets,l.variantChildren,l.variantFilters,x]),gl(()=>{d(new Set)},[f]);let O=x$(()=>{let h=[];return l.filteredFrames.forEach(b=>{if(b.type==="COMPONENT_SET"&&b.children){let F=l.variantFilters.some(C=>C.value)?b.children.filter(C=>C.variantProperties?l.variantFilters.every(A=>A.value?C.variantProperties?.[A.property]===A.value:!0):!1):b.children;h.push(...F)}else h.push(b)}),h},[l.filteredFrames,l.variantFilters]),L=h=>{if(s)d(b=>{let F=new Set(b);return F.has(h.id)?F.delete(h.id):F.add(h.id),F});else{let b=l.resolveThumbnail(h.id);try{n({...h,thumbnail:b})}catch(F){w.error("[ComponentBrowserModal] onSelect threw error:",F)}t()}},N=()=>{let h=O.map(F=>F.id),b=h.every(F=>g.has(F));d(b?new Set:new Set(h))},m=()=>{if(u&&g.size>0){let h=O.filter(b=>g.has(b.id)).map(b=>({...b,thumbnail:l.resolveThumbnail(b.id)}));u(h),d(new Set)}},v=h=>{y(h),a?.(h)},k=h=>{h.target===h.currentTarget&&t()},E=o.find(h=>h.id===f);return e?Re.createElement(z4,{onClick:k},Re.createElement(D4,null,Re.createElement(N4,null,Re.createElement(_4,null,"Link Figma Frames"),Re.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center"}},Re.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"),Re.createElement(O4,{onClick:t},"\xD7"))),Re.createElement($4,null,l.error&&Re.createElement(q4,null,l.error),!l.error&&Re.createElement(Re.Fragment,null,o.length>0&&Re.createElement(ok,null,Re.createElement(ik,null,"Story:"),Re.createElement(ak,{value:f,onChange:h=>v(h.target.value)},o.map(h=>Re.createElement("option",{key:h.id,value:h.id},h.name,h.mappingsCount?` (${h.mappingsCount} linked)`:""))),E?.mappingsCount?Re.createElement(sk,{hasMapping:!0},E.mappingsCount," frames linked"):null),Re.createElement(W4,null,Re.createElement(ku,null,Re.createElement("input",{type:"checkbox",checked:l.showComponentSets,onChange:h=>l.setShowComponentSets(h.target.checked)}),"Component Sets"),Re.createElement(ku,null,Re.createElement("input",{type:"checkbox",checked:l.showFrames,onChange:h=>l.setShowFrames(h.target.checked)}),"Frames"),Re.createElement(ku,null,Re.createElement("input",{type:"checkbox",checked:l.showComponents,onChange:h=>l.setShowComponents(h.target.checked)}),"Components"),l.availablePages.length>1&&Re.createElement(_a,{isActive:!!l.figmaPage,value:l.figmaPage,onChange:h=>l.setFigmaPage(h.target.value),style:{marginLeft:"auto"}},Re.createElement("option",{value:""},"All pages"),l.availablePages.map(h=>Re.createElement("option",{key:h,value:h},h)))),l.filterSuggestion&&Re.createElement(lk,null,Re.createElement(ck,null,"AI suggests:"),Re.createElement(uk,null,Object.entries(l.filterSuggestion.suggestedFilters).map(([h,b])=>`${h}=${b}`).join(", ")),Re.createElement(dk,{onClick:l.applySuggestedFilters},"Apply"),Re.createElement(pk,{onClick:l.dismissFilterSuggestion},"Dismiss")),l.filterSuggestionLoading&&Re.createElement(gk,null,"Matching story args to Figma filters..."),l.availableFilters.length>0&&Re.createElement(Iu,null,Re.createElement(ul,null,"Filters:"),l.availableFilters.map(({property:h,values:b})=>{let F=l.variantFilters.find(C=>C.property===h);return Re.createElement(_a,{key:h,isActive:!!F?.value,value:F?.value||"",onChange:C=>l.handleFilterChange(h,C.target.value)},Re.createElement("option",{value:""},h),b.map(C=>Re.createElement("option",{key:C,value:C},h,"=",C)))}),l.variantFilters.some(h=>h.value)&&Re.createElement(Tu,{onClick:l.clearFilters},"Clear All")),l.rateLimitError&&Re.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."),Re.createElement(H4,{type:"text",placeholder:"Search frames...",value:l.search,onChange:h=>l.setSearch(h.target.value),autoFocus:!0}),s&&O.length>0&&Re.createElement(fk,null,Re.createElement(mk,{onClick:N},g.size===O.length?"Deselect All":"Select All Visible"),Re.createElement(hk,null,g.size>0?`${g.size} selected of `:"Showing ",O.length," frames")),l.isLoading&&Re.createElement(Hh,null,Array.from({length:6}).map((h,b)=>Re.createElement(rk,{key:b},Re.createElement("div",{style:{width:"100%",aspectRatio:"4 / 3"}},Re.createElement(Cu,{width:"100%",height:"100%"})),Re.createElement("div",{style:{padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Re.createElement(Cu,{width:"80%",height:"16px"}),Re.createElement(Cu,{width:"50%",height:"12px"}))))),!l.isLoading&&l.filteredFrames.length===0&&Re.createElement(G4,null,l.search?"No components match your search":"No Figma components found. We index Figma components \u2014 component sets and standalone components. Plain design frames (screens, mockups) aren't included yet \u2014 frame support is planned \u2014 so a file made only of frames will look empty here for now."),!l.isLoading&&l.filteredFrames.length>0&&Re.createElement(Hh,null,l.filteredFrames.map(h=>Re.createElement(dl,{key:h.id,frame:h,thumbnail:l.thumbnails[h.id],thumbnails:l.thumbnails,variantThumbnails:l.variantThumbnails[h.id],variantChildren:l.variantChildren[h.id],variantFailed:l.variantFailed[h.id],isLoadingVariants:l.loadingVariants.has(h.id),isExpanded:l.expandedSets.has(h.id),isNew:l.recentlyAdded.has(h.name),onToggleExpand:l.toggleExpanded,onSelect:L,multiSelect:s,selectedFrames:g,variantFilters:l.variantFilters,variantPage:x[h.id]||1,onShowMore:z})),l.hasMore&&Re.createElement(w$,{onClick:l.loadMore,disabled:l.loadingMore},l.loadingMore?"Loading...":`Show more (${l.totalFrames-l.frames.length} remaining)`)))),s&&Re.createElement(xk,null,Re.createElement(yk,{disabled:g.size===0,onClick:m},"Link ",g.size," Selected")))):null};Se();ut();var k$=Rn.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}),C$=Rn.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"})),I$=Rn.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app})),T$=Rn.div({display:"flex",alignItems:"center",gap:"20px"}),E$=Rn.h2(({theme:e})=>({fontSize:"16px",fontWeight:600,color:e.color.defaultText,margin:0,display:"flex",alignItems:"center",gap:"8px"})),R$=Rn.div({display:"flex",gap:"4px"}),Zk=Rn(Jo)(({theme:e,active:t})=>({padding:"8px 16px",borderBottom:"none",borderRadius:"6px",backgroundColor:t?e.background.hoverable:"transparent","&:hover":{backgroundColor:e.background.hoverable}})),A$=Rn(br)({width:"32px",height:"32px",fontSize:"20px",borderRadius:"6px"}),F$=Rn.div({flex:1,overflow:"hidden",display:"flex",flexDirection:"column"}),P$=Rn.div(({theme:e})=>({padding:"12px 20px",borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,display:"flex",alignItems:"center",justifyContent:"space-between"})),M$=Rn.div(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,display:"flex",gap:"16px"})),d1=Rn.div({display:"flex",flexDirection:"column",flex:1,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(255, 255, 255, 0.95)",padding:"40px"}),p1=Rn.div({display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",maxWidth:"400px"}),g1=Rn.div(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText,textAlign:"center"})),f1=Rn.div(({theme:e})=>({fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.mediumdark,textAlign:"center"})),eC=Rn.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden"})),tC=Rn.div(({theme:e})=>({width:"100%",height:"100%",backgroundColor:e.color.secondary,borderRadius:"4px",opacity:.6})),nC=Rn.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"}})),rC=Rn.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"}})),oC=({isOpen:e,onClose:t,projectId:n})=>{let[r,o]=ji("map"),[i,a]=ji([]),[s,u]=ji(!0),[c,l]=ji(null),[p,g]=ji(!1),[d,f]=ji(null),y=S$(),I=qk({projectId:n}),S=Kk({projectId:n}),[x,M]=ji(!1),{refreshMappings:z}=gt(),{featureFlags:O}=ue(),L=Ae.useMemo(()=>(I.results??S.results)?.mappings.map(H=>H.storyId)||[],[I.results,S.results]),N=Qk(L),m=io(async()=>{u(!0);try{let H=await fetch("/index.json");if(!H.ok)throw new Error("Failed to fetch index.json");let R=await H.json(),te=R.entries||R.stories||{},j=Object.entries(te).filter(([,X])=>X.type==="story").map(([X,ne])=>({id:X,name:ne.name||X.split("--").pop()||X,title:ne.title||"",importPath:ne.importPath,componentTitle:ne.title?.split("/").slice(0,-1).join("/")||ne.title,figmaMapping:null}));try{let X=K(),ne=localStorage.getItem("uicopilot_session_token"),Te=await Q(`${X}/api/mappings?projectId=${n}&_t=${Date.now()}`,{headers:{Authorization:`Bearer ${ne}`}});if(Te.ok){let ye=await Te.json(),de=new Map((ye.mappings||[]).map(Fe=>[Fe.storyId,Fe]));j.forEach(Fe=>{let ge=de.get(Fe.id);ge&&ge.figmaNodeId&&(Fe.figmaMapping={figmaNodeId:ge.figmaNodeId,figmaFrameName:ge.name||ge.figmaFrameName||""})})}}catch(X){console.warn("[StoryMappingAssistant] Failed to fetch mappings (stories still loaded):",X)}a(j);let Y=j.find(X=>!X.figmaMapping);Y?l(Y.id):j.length>0&&l(j[0].id)}catch(H){console.error("[StoryMappingAssistant] Error fetching stories:",H)}finally{u(!1)}},[n]);v$(()=>{e&&m()},[e,m]);let v=io((H,R,te)=>{a(X=>X.map(ne=>ne.id===H?{...ne,figmaMapping:{figmaNodeId:R,figmaFrameName:te}}:ne));let j=i.findIndex(X=>X.id===H),Y=i.find((X,ne)=>ne>j&&!X.figmaMapping);Y&&l(Y.id)},[i]),k=io(H=>{a(R=>R.map(te=>te.id===H?{...te,figmaMapping:null}:te))},[]),E=io(H=>{l(H),o("map")},[]),h=io(()=>{let H=i.filter(R=>R.figmaMapping).map(R=>R.id);I.collectAndMap(H)},[i,I]),b=io(()=>{let H=i.filter(R=>R.figmaMapping).map(R=>R.id);g(!1),I.rerun(H)},[i,I]),F=io(async H=>{await I.applyMappings(H),g(!1),I.reset(),m(),z()},[I,m,z]),C=io(()=>{g(!1),I.reset()},[I]),A=io(()=>{let H=i.filter(R=>!R.figmaMapping).map(R=>{let te=y.getData(R.id);return{id:R.id,name:R.name,title:R.title,args:te?.initialArgs??{}}});S.run(H)},[i,S,y]),B=io(async H=>{await I.applyMappings(H),M(!1),S.reset(),m(),z()},[I,S,m,z]),P=io(()=>{M(!1),S.reset()},[S]);Ae.useEffect(()=>{I.results&&g(!0)},[I.results]),Ae.useEffect(()=>{S.results&&M(!0)},[S.results]);let _=H=>{H.target===H.currentTarget&&t()};if(!e)return null;let T=i.filter(H=>H.figmaMapping).length,D=i.length;return Ae.createElement(Ae.Fragment,null,Ae.createElement(k$,{onClick:_},Ae.createElement(C$,{onClick:H=>H.stopPropagation()},Ae.createElement(I$,null,Ae.createElement(T$,null,Ae.createElement(E$,null,Ae.createElement("span",null,"\u{1F517}"),"Link Stories to Figma"),Ae.createElement(R$,null,Ae.createElement(Zk,{active:r==="map",onClick:()=>o("map")},"Map Stories"),Ae.createElement(Zk,{active:r==="view",onClick:()=>o("view")},"View All Mappings"))),Ae.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},O.enableAutoMap&&!p&&!I.isCollecting&&!I.isMapping&&Ae.createElement(nC,{onClick:h,disabled:s||i.length===0},Ae.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2"},Ae.createElement("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),Ae.createElement("path",{d:"M2 17l10 5 10-5"}),Ae.createElement("path",{d:"M2 12l10 5 10-5"})),"Auto-Map All"),O.enableAutoFigmaLinking&&!p&&!x&&!S.isRunning&&Ae.createElement(nC,{onClick:A,disabled:s||i.length===0,title:"Match stories to Figma sets by structural spec signatures \u2014 no LLM"},Ae.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2"},Ae.createElement("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),Ae.createElement("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})),"Auto-Link (No AI)"),Ae.createElement(A$,{onClick:t},"\xD7"))),Ae.createElement(F$,null,(I.isCollecting||I.isMapping)&&Ae.createElement(d1,null,Ae.createElement(p1,null,Ae.createElement(eC,null,Ae.createElement(tC,null)),Ae.createElement(g1,null,"Auto-mapping stories to Figma"),Ae.createElement(f1,null,I.progress),Ae.createElement(vo,{onClick:I.cancel,variant:"ghost"},"Cancel"))),S.isRunning&&Ae.createElement(d1,null,Ae.createElement(p1,null,Ae.createElement(eC,null,Ae.createElement(tC,null)),Ae.createElement(g1,null,"Auto-linking stories to Figma (no AI)"),Ae.createElement(f1,null,S.progress),Ae.createElement(vo,{onClick:S.cancel,variant:"ghost"},"Cancel"))),S.error&&!S.isRunning&&!x&&Ae.createElement(d1,null,Ae.createElement(p1,null,Ae.createElement(g1,null,"Auto-link failed"),Ae.createElement(f1,null,S.error),Ae.createElement(vo,{onClick:S.reset,variant:"ghost"},"Dismiss"))),x&&S.results&&Ae.createElement(s1,{results:S.results,stories:i,onApply:B,onCancel:P,isApplying:I.isApplying,source:"deterministic",resolveThumbnail:H=>S.results?.thumbnailUrls?.[H],resolveStoryScreenshot:H=>N.screenshots[H],isCapturingScreenshots:N.isCapturing,onBrowse:H=>f(H)}),p&&I.results&&Ae.createElement(s1,{results:I.results,stories:i,onApply:F,onCancel:C,onRerun:b,isApplying:I.isApplying,isRerunning:I.isCollecting||I.isMapping,source:I.source,resolveThumbnail:H=>I.results?.thumbnailUrls?.[H],resolveStoryScreenshot:H=>N.screenshots[H],isCapturingScreenshots:N.isCapturing,onBrowse:H=>f(H)}),!p&&!x&&!S.isRunning&&!S.error&&!I.isCollecting&&!I.isMapping&&(r==="map"?Ae.createElement(Ak,{stories:i,loading:s,selectedStoryId:c,onSelectStory:l,onStoryMapped:v,projectId:n}):Ae.createElement(Lk,{stories:i,loading:s,onLink:E,onUnlink:k,projectId:n}))),Ae.createElement(P$,null,Ae.createElement(M$,null,Ae.createElement("span",null,"Total: ",D," stories"),Ae.createElement(rC,{type:"mapped"},Ae.createElement("span",{className:"dot"}),T," mapped"),Ae.createElement(rC,{type:"unmapped"},Ae.createElement("span",{className:"dot"}),D-T," unmapped"))))),Ae.createElement($a,{isOpen:!!d,onClose:()=>f(null),onSelect:()=>f(null),projectId:n,initialSearch:d||void 0}))};ut();var iC=Tr.div({display:"flex",flexDirection:"column",gap:"6px",padding:"12px 16px"}),B$=Tr.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"}),z$=Tr.span(({theme:e})=>({fontSize:"10px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark})),D$=Tr.div({display:"flex",alignItems:"center",gap:"12px",fontSize:"11px"}),N$=Tr.span(({theme:e,state:t})=>({fontFamily:e.typography.fonts.mono,fontWeight:e.typography.weight.bold,whiteSpace:"nowrap",color:t==="complete"?e.color.positive:t==="partial"?e.color.warning:e.color.mediumdark})),_$=Tr.div(({theme:e})=>({width:"100%",height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden"})),O$=Tr.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"})),$$=Tr(tp)(({theme:e})=>({padding:0,fontSize:"11px",fontWeight:e.typography.weight.bold,color:e.color.defaultText})),H$=Tr(tp)(({theme:e})=>({padding:0,fontSize:"11px",fontWeight:e.typography.weight.regular,color:e.color.mediumdark,"&:hover":{textDecoration:"none",color:e.color.defaultText}})),U$=Tr.div({display:"flex",alignItems:"center",gap:"8px"}),j$=Tr.span(({theme:e})=>({fontSize:"13px",color:e.color.mediumdark,fontStyle:"italic"})),V$=Tr.div(({theme:e})=>({width:"14px",height:"14px",border:`2px solid ${e.appBorderColor}`,borderTopColor:G,borderRadius:"50%",animation:"figma-mapping-spin 0.8s linear infinite","@keyframes figma-mapping-spin":{"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}})),W$=Tr.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark})),aC=({refreshKey:e=0})=>{let[t,n]=_u(!1),[r,o]=_u({totalStories:0,mappedStories:0,loading:!0}),{selectedProjectId:i}=Ke(),{sessionToken:a}=he();L$(()=>{i&&a?s():o({totalStories:0,mappedStories:0,loading:!1})},[i,a,e]);let s=async()=>{o(L=>({...L,loading:!0}));try{let L=await fetch("/index.json");if(!L.ok)throw new Error("Failed to fetch Storybook index");let N=await L.json(),m=N.entries||N.stories||{},v=Object.keys(m).filter(F=>m[F].type==="story").length,k=Object.keys(m).filter(F=>m[F].type==="story"),E=K(),h=await Q(`${E}/api/mappings?projectId=${i}`,{headers:{Authorization:`Bearer ${a}`}}),b=0;if(h.ok){let F=await h.json(),C=F.mappings||F||[];if(Array.isArray(C)){let A=new Set(C.map(B=>B.storyId).filter(Boolean));b=k.filter(B=>A.has(B)).length}else{let A=await Q(`${E}/api/mappings/stats?projectId=${i}`,{headers:{Authorization:`Bearer ${a}`}});if(A.ok){let B=await A.json();b=Math.min(B.mappedStoriesCount||0,v)}}}o({totalStories:v,mappedStories:b,loading:!1})}catch(L){console.error("[FigmaMappingsSection] Error fetching stats:",L),o(N=>({...N,loading:!1}))}},[u,c]=_u(!1),[l,p]=_u(!1),g=async()=>{!i||!a||p(!0)},d=async()=>{p(!1),c(!0);try{let L=K(),N=await Q(`${L}/api/mappings?projectId=${i}`,{headers:{Authorization:`Bearer ${a}`}});if(!N.ok)throw new Error("Failed to fetch mappings");let v=(await N.json()).mappings||[];await Promise.all(v.map(k=>Q(`${L}/api/mappings?id=${encodeURIComponent(k.id)}`,{method:"DELETE",headers:{Authorization:`Bearer ${a}`}}))),s()}catch(L){console.error("[FigmaMappingsSection] Unlink all failed:",L)}finally{c(!1)}},f=()=>n(!0),y=()=>{n(!1),i&&a&&s()};if(!i)return kn.createElement(iC,null,kn.createElement(j$,null,"Select a project to link Figma designs"));let{totalStories:I,loading:S}=r,x=Math.min(r.mappedStories,I),M=x===0?"none":x>=I?"complete":"partial",z=I>0?Math.min(100,Math.round(x/I*100)):0,O=M==="none"?"Link designs":"Manage";return kn.createElement(kn.Fragment,null,kn.createElement(iC,null,kn.createElement(B$,null,kn.createElement(z$,null,"Figma mappings"),kn.createElement(D$,null,S?kn.createElement(U$,null,kn.createElement(V$,null),kn.createElement(W$,null,"Loading\u2026")):kn.createElement(kn.Fragment,null,kn.createElement(N$,{state:M},`${x} / ${I}`),x>0&&kn.createElement(H$,{onClick:g,disabled:S||u},u?"Unlinking\u2026":"Unlink all"),kn.createElement($$,{onClick:f,disabled:S},O)))),!S&&kn.createElement(_$,null,kn.createElement(O$,{percent:z,state:M}))),t&&kn.createElement(oC,{isOpen:t,onClose:y,projectId:i}),kn.createElement(bo,{isOpen:l,title:"Unlink All Mappings",message:`Unlink all ${r.mappedStories} Figma mappings?`,confirmLabel:"Unlink All",variant:"danger",onConfirm:d,onCancel:()=>p(!1)}))};import q,{useState as gi,useEffect as ml,useCallback as LC,useRef as S1}from"react";import{styled as Pt,keyframes as bH}from"storybook/theming";import{addons as wH}from"storybook/manager-api";Se();De();ut();function sC(e){let{loading:t,reloading:n,crawlStatus:r,pagesFailed:o,tries:i,max:a}=e;return t||n||r!=="complete"||(o??0)<=0?!1:i<a}De();import{useEffect as G$,useRef as q$}from"react";import{addons as Y$}from"storybook/manager-api";var Ou="uicopilot/crawl-started",K$=3e3,X$=360*1e3;function lC(e){let t=q$({});G$(()=>{let n=Y$.getChannel?.();if(!n)return;let r=a=>{let s=t.current[a];s&&(clearInterval(s),delete t.current[a])},o=a=>{try{e.addNotification?.(a)}catch{}},i=({projectId:a})=>{if(!a||t.current[a])return;let s=localStorage.getItem("uicopilot_session_token");if(!s)return;let u=K(),c=Date.now(),l=setInterval(async()=>{if(Date.now()-c>X$){r(a);return}try{let p=await fetch(`${u}/api/figma/cache-status?projectId=${a}`,{headers:{Authorization:`Bearer ${s}`}});if(!p.ok)return;let g=await p.json(),d=g?.crawlProgress?.status;if(d==="complete"){r(a);let f=g?.componentSetCount??0;o({id:`uicopilot-crawl-done-${a}-${Date.now()}`,content:{headline:"Figma cache ready",subHeadline:`${f} component set${f===1?"":"s"} cached \u2014 open Settings to map`},duration:8e3})}else d==="error"&&(r(a),o({id:`uicopilot-crawl-error-${a}-${Date.now()}`,content:{headline:"Figma crawl failed",subHeadline:g?.crawlProgress?.error||"Open Settings to retry."},duration:8e3}))}catch{}},K$);t.current[a]=l};return n.on(Ou,i),()=>{n.off(Ou,i),Object.keys(t.current).forEach(r)}},[e])}import fn,{useState as oH}from"react";import{styled as Er,keyframes as iH}from"storybook/theming";Se();De();ut();Ue();import{useCallback as J$,useEffect as Q$,useState as fl}from"react";var Z$=K();function $u(e,t){let{sessionToken:n}=he(),[r,o]=fl([]),[i,a]=fl(!1),[s,u]=fl(0),[c,l]=fl(!1),[p,g]=fl(null),d=J$(async()=>{if(!(!e||!n)){l(!0),g(null);try{let f=await Q(`${Z$}/api/figma/pages?projectId=${e}`,{headers:{Authorization:`Bearer ${n}`}}),y=await f.json().catch(()=>({}));if(!f.ok||!y.success)throw new Error(y.error||"Couldn't read the file's pages.");o(Array.isArray(y.pages)?y.pages:[]),a(!!y.published),u(y.totalComponentSets??0)}catch(f){w.error("[useFigmaPages] failed to load pages:",f),g(f instanceof Error?f.message:"Couldn't read the file's pages.")}finally{l(!1)}}},[e,n]);return Q$(()=>{t&&d()},[t,d]),{pages:r,published:i,totalComponentSets:s,loading:c,error:p,reload:d}}import Ht,{useEffect as nH,useRef as rH,useState as PC}from"react";var m1="uicopilot_figma_pages:";function cC(e,t,n){let r=new Set(e.map(o=>o.id));if(n?.length){let o=n.filter(i=>r.has(i));if(o.length)return o}if(t){let o=e.filter(i=>i.componentCount>0).map(i=>i.id);if(o.length)return o}return e.map(o=>o.id)}function Ha(e){try{let t=localStorage.getItem(m1+e);if(!t)return;let n=JSON.parse(t);if(Array.isArray(n)&&n.every(r=>typeof r=="string"))return n}catch{}}function Hu(e,t){try{localStorage.setItem(m1+e,JSON.stringify(t))}catch{}}function uC(e){try{localStorage.removeItem(m1+e)}catch{}}import Uu from"react";import{styled as dC}from"storybook/theming";var eH=dC.span(({state:e})=>({width:"16px",height:"16px",borderRadius:"4px",flex:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",border:e==="none"?`1.5px solid ${Z.locked}`:"none",background:e==="none"?Z.card:G})),tH=dC.span({width:"8px",height:"2px",background:Z.card,borderRadius:"2px"}),h1=({state:e})=>Uu.createElement(eH,{state:e},e==="all"&&Uu.createElement("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:Z.card,strokeWidth:"3.4","aria-hidden":!0},Uu.createElement("path",{d:"M5 13l4 4L19 7"})),e==="some"&&Uu.createElement(tH,null));import Ua from"react";import{styled as sn}from"storybook/theming";var pC='ui-monospace, "SF Mono", Menlo, Consolas, monospace',x1=Z.formBg,ju=sn.div({marginTop:"10px",border:`1px solid ${Z.border}`,borderRadius:"6px",overflow:"hidden",background:Z.card}),gC=sn.div({display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 12px",borderBottom:`1px solid ${Z.border}`}),fC=sn.span({fontSize:"10px",fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:Z.muted}),y1=sn.button({border:"none",background:"none",padding:0,cursor:"pointer",fontSize:"11px",color:Z.muted,"&:hover":{color:Z.text}}),mC=sn.div({display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 12px",background:x1,borderBottom:`1px solid ${Z.border}`}),hC=sn.span({fontSize:"11px",fontWeight:500,color:Z.text}),xC=sn.span({fontSize:"10.5px",color:Z.muted,fontFamily:pC,fontVariantNumeric:"tabular-nums"}),yC=sn.div({position:"relative",padding:"6px 12px",borderBottom:`1px solid ${Z.border}`}),bC=sn.span({position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",color:Z.muted,display:"inline-flex",pointerEvents:"none"}),wC=sn.input({width:"100%",height:"28px",paddingLeft:"20px",border:"none",outline:"none",background:"transparent",fontSize:"12px",color:Z.text,"&::placeholder":{color:Z.muted}}),vC=sn.button({width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 12px",border:"none",borderBottom:`1px solid ${Z.border}`,background:Z.accentTint,cursor:"pointer","&:hover":{filter:"brightness(0.97)"}}),b1=sn.span({display:"inline-flex",alignItems:"center",gap:"10px",minWidth:0}),SC=sn.span({fontSize:"12px",fontWeight:500,color:Z.text}),w1=sn.span({fontSize:"11px",color:Z.muted,fontFamily:pC,fontVariantNumeric:"tabular-nums",flex:"none"}),kC=sn.div({maxHeight:"180px",overflowY:"auto"}),CC=sn.button({width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 12px",border:"none",borderBottom:`1px solid ${Z.track}`,background:"transparent",cursor:"pointer","&:last-of-type":{borderBottom:"none"},"&:hover":{background:x1}}),IC=sn.span(({added:e})=>({fontSize:"12px",color:e?G:Z.text,fontWeight:e?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),TC=sn.span({fontSize:"10px",color:G,flex:"none"}),EC=sn.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"8px 12px",borderTop:`1px solid ${Z.border}`,background:x1}),RC=sn.p({margin:0,fontSize:"10.5px",lineHeight:1.35,color:Z.muted}),AC=sn.button(({disabled:e})=>({flex:"none",height:"28px",padding:"0 12px",border:"none",borderRadius:"6px",fontSize:"11px",fontWeight:600,color:Z.card,background:G,cursor:e?"not-allowed":"pointer",opacity:e?.5:1,whiteSpace:"nowrap","&:hover":e?{}:{opacity:.9}})),Vu=sn.div({padding:"16px 12px",fontSize:"12px",color:Z.muted,textAlign:"center"});var FC=({value:e,onChange:t,total:n})=>Ua.createElement(yC,null,Ua.createElement(bC,null,Ua.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0},Ua.createElement("circle",{cx:"11",cy:"11",r:"7"}),Ua.createElement("path",{d:"m21 21-4-4"}))),Ua.createElement(wC,{type:"text",value:e,onChange:r=>t(r.target.value),placeholder:`Filter ${n} pages\u2026`,"aria-label":"Filter pages"}));var Wu=({pages:e,published:t,loading:n,error:r,busy:o,initialSelection:i,ctaVerb:a="Import",highlightAdded:s=!1,emptyHint:u,onReload:c,onCancel:l,onImport:p})=>{let[g,d]=PC(new Set),[f,y]=PC(""),I=rH("");if(nH(()=>{if(!e.length)return;let v=e.map(k=>k.id).join(",");v!==I.current&&(I.current=v,d(new Set(cC(e,t,i))))},[e,t,i]),n)return Ht.createElement(ju,null,Ht.createElement(Vu,null,"Reading your file\u2019s pages\u2026"));if(r)return Ht.createElement(ju,null,Ht.createElement(Vu,null,"\u26A0 ",r," ",Ht.createElement(y1,{onClick:c},"Retry")));let S=e.length>0&&g.size===e.length,x=g.size>0&&!S,M=g.size,z=e.filter(v=>g.has(v.id)).reduce((v,k)=>v+k.componentCount,0),O=v=>d(k=>{let E=new Set(k);return E.has(v)?E.delete(v):E.add(v),E}),L=()=>d(S?new Set:new Set(e.map(v=>v.id))),N=f.trim().toLowerCase(),m=N?e.filter(v=>v.name.toLowerCase().includes(N)):e;return Ht.createElement(ju,null,Ht.createElement(gC,null,Ht.createElement(fC,null,"Choose pages to import"),l&&Ht.createElement(y1,{onClick:l},"Cancel")),Ht.createElement(mC,null,Ht.createElement(hC,null,e.length," pages"),Ht.createElement(xC,null,M," selected",t?` \xB7 ~${z} components`:"")),Ht.createElement(FC,{value:f,onChange:y,total:e.length}),Ht.createElement(vC,{type:"button",onClick:L},Ht.createElement(b1,null,Ht.createElement(h1,{state:S?"all":x?"some":"none"}),Ht.createElement(SC,null,"Select all")),Ht.createElement(w1,null,e.length," pages")),Ht.createElement(kC,null,m.length===0?Ht.createElement(Vu,null,"No pages match \u201C",f,"\u201D."):m.map(v=>{let k=s&&g.has(v.id)&&!(i??[]).includes(v.id);return Ht.createElement(CC,{key:v.id,type:"button",onClick:()=>O(v.id)},Ht.createElement(b1,null,Ht.createElement(h1,{state:g.has(v.id)?"all":"none"}),Ht.createElement(IC,{added:k},v.name),k&&Ht.createElement(TC,null,"\xB7 just added")),t&&Ht.createElement(w1,null,v.componentCount))})),Ht.createElement(EC,null,Ht.createElement(RC,null,M===0&&u?u:"Selected pages are fetched at full depth via the Figma API."),Ht.createElement(AC,{type:"button",disabled:M===0||o,onClick:()=>p([...g])},o?"Starting\u2026":`${a} ${M} ${M===1?"page":"pages"}`)))};var v1=Er.div({marginTop:"10px"}),aH=Er.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"11px 13px",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius*1.5})),sH=Er.div({minWidth:0,flex:1}),lH=Er.div(({theme:e})=>({fontSize:e.typography.size.s2,color:e.color.defaultText,"& b":{color:G}})),cH=Er.div(({theme:e})=>({marginTop:"2px",fontSize:e.typography.size.s1,color:e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),uH=Er.button(({theme:e})=>({flex:"none",display:"inline-flex",alignItems:"center",gap:"6px",height:"28px",padding:"0 10px",border:`1px solid ${G}`,borderRadius:e.appBorderRadius*1.5,background:"transparent",color:G,fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,cursor:"pointer",whiteSpace:"nowrap","&:hover":{background:`${G}14`}})),dH=iH`from { transform: rotate(0deg); } to { transform: rotate(360deg); }`,pH=Er.div(({theme:e})=>({padding:"11px 13px",border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius*1.5,backgroundColor:e.background.content})),gH=Er.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"}),fH=Er.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"6px",fontSize:e.typography.size.s2,color:e.color.defaultText})),mH=Er.span({display:"inline-block",width:"12px",height:"12px",border:`1.5px solid ${G}40`,borderTopColor:G,borderRadius:"50%",animation:`${dH} 0.7s linear infinite`}),hH=Er.span(({theme:e})=>({fontFamily:e.typography.fonts.mono,fontSize:e.typography.size.s1,color:e.color.mediumdark})),xH=Er.div(({theme:e})=>({marginTop:"8px",height:"4px",borderRadius:"2px",backgroundColor:e.appBorderColor,overflow:"hidden"})),yH=Er.div(({pct:e})=>({width:`${e}%`,height:"100%",backgroundColor:G,transition:"width 0.3s ease"})),MC=({projectId:e,busy:t,importing:n=!1,importPct:r=0,onReimport:o})=>{let[i,a]=oH(!1),s=$u(e,!0),u=Ha(e);if(n)return fn.createElement(v1,null,fn.createElement(pH,null,fn.createElement(gH,null,fn.createElement(fH,null,fn.createElement(mH,null),"Re-reading components from Figma\u2026"),fn.createElement(hH,null,r,"%")),fn.createElement(xH,null,fn.createElement(yH,{pct:r}))));if(i)return fn.createElement(v1,null,fn.createElement(Wu,{pages:s.pages,published:s.published,loading:s.loading,error:s.error,busy:t,initialSelection:u,ctaVerb:"Re-import",highlightAdded:!0,emptyHint:"Select at least one page \u2014 or use Clear (above) to remove everything.",onReload:s.reload,onCancel:()=>a(!1),onImport:d=>{Hu(e,d),o(d),a(!1)}}));let c=s.pages.length,l=u?.length??0,p=u?.length&&s.pages.length?s.pages.find(d=>u.includes(d.id))?.name:void 0,g=c>l?c-l:0;return fn.createElement(v1,null,fn.createElement(aH,null,fn.createElement(sH,null,fn.createElement(lH,null,l>0?fn.createElement(fn.Fragment,null,"Importing"," ",fn.createElement("b",null,l,c?` of ${c}`:""," ",l===1&&!c?"page":"pages")):"Choose which pages to import"),p&&fn.createElement(cH,null,p,g>0?` \xB7 ${g} pages not imported`:"")),fn.createElement(uH,{onClick:()=>a(!0)},fn.createElement("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0},fn.createElement("path",{d:"M12 5v14M5 12h14"})),"Add or change pages")))};var k1=Pt.div(({theme:e})=>({padding:"12px 16px",backgroundColor:e.background.content,fontSize:"12px"})),C1=Pt.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),I1=Pt.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"10px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark})),gfe=Pt(fo)({padding:"5px 12px",fontSize:"12px"}),vH=Pt.dl(({theme:e})=>({display:"grid",gridTemplateColumns:"repeat(4, 1fr)",margin:"0 0 8px",borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,overflow:"hidden"})),Gu=Pt.div({padding:"8px 10px",minWidth:0}),BC=Pt.div(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,padding:"4px 0"})),SH=Pt.div({display:"flex",flexDirection:"column",gap:"6px",marginTop:"6px"}),kH=Pt.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"}),CH=Pt.div({display:"flex",alignItems:"center",gap:"8px"}),IH=Pt.span(({theme:e})=>({fontSize:"12px",color:e.color.defaultText})),TH=Pt.span(({theme:e})=>({fontFamily:e.typography.fonts.mono,color:e.color.defaultText})),EH=Pt.span(({theme:e,ready:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"1px 6px",borderRadius:"3px",fontSize:"9px",fontWeight:e.typography.weight.bold,textTransform:"uppercase",letterSpacing:"0.06em",backgroundColor:t?`${e.color.positive}1a`:e.background.hoverable,color:t?e.color.positive:e.color.mediumdark})),RH=Pt.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:0,border:"none",background:"transparent",cursor:"pointer",fontSize:"11px",color:e.color.mediumdark,transition:"color 0.15s","&:hover":{color:e.color.defaultText},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),AH=Pt.div(({theme:e})=>({width:"100%",height:"4px",borderRadius:"2px",backgroundColor:e.appBorderColor,overflow:"hidden"})),FH=Pt.div(({theme:e,pct:t,ready:n})=>({width:`${t}%`,height:"100%",borderRadius:"2px",backgroundColor:n?e.color.positive:e.color.secondary,transition:"width 0.3s ease"})),qu=Pt.dt(({theme:e})=>({fontSize:"9px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark,whiteSpace:"nowrap"})),Yu=Pt.dd(({theme:e,plain:t})=>({margin:"2px 0 0",fontSize:"12px",color:e.color.defaultText,fontFamily:t?e.typography.fonts.base:e.typography.fonts.mono,whiteSpace:"nowrap"})),PH=Pt.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})),_C=bH`
|
|
89
89
|
from { transform: rotate(0deg); }
|
|
90
90
|
to { transform: rotate(360deg); }
|
|
91
|
-
`,zC=Pt.span(({theme:e,tone:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"1px 6px",borderRadius:"3px",fontSize:"9px",fontWeight:e.typography.weight.bold,textTransform:"uppercase",letterSpacing:"0.05em",backgroundColor:t==="green"?`${e.color.positive}1a`:`${G}1a`,color:t==="green"?e.color.positive:G})),MH=Pt.span({display:"inline-block",width:"10px",height:"10px",border:`1.5px solid ${G}40`,borderTopColor:G,borderRadius:"50%",animation:`${_C} 0.6s linear infinite`}),LH=()=>q.createElement("svg",{viewBox:"0 0 24 24",width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},q.createElement("path",{d:"M20 6 9 17l-5-5"})),T1=Pt.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",height:"25px",padding:"2px 8px",border:"none",background:"transparent",borderRadius:e.appBorderRadius,cursor:"pointer",fontSize:"11px",fontFamily:e.typography.fonts.base,color:e.color.mediumdark,transition:"all 0.15s","&:hover:not(:disabled)":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),E1=Pt.span({display:"inline-block",width:"10px",height:"10px",border:"1.5px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",opacity:.6,animation:`${_C} 0.6s linear infinite`}),BH=()=>q.createElement("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"currentColor","aria-hidden":!0},q.createElement("path",{d:"M12 2.5l1.6 5.9 5.9 1.6-5.9 1.6L12 17.5l-1.6-5.9L4.5 10l5.9-1.6z"})),zH=()=>q.createElement("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},q.createElement("path",{d:"M23 4v6h-6M1 20v-6h6"}),q.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"})),DH=Pt.div(({theme:e})=>({marginTop:"6px",padding:"6px 8px",backgroundColor:e.background.hoverable,borderRadius:"4px",color:e.color.mediumdark,lineHeight:"1.4"})),R1=Pt.span(({theme:e,type:t})=>({fontWeight:500,color:t==="added"?e.color.positive:t==="removed"?e.color.negative:e.color.warning})),hl=Pt.div(({theme:e})=>({marginTop:"8px",padding:"8px 10px",backgroundColor:`${e.color.negative}1a`,border:`1px solid ${e.color.negative}4d`,borderRadius:"4px",fontSize:"12px",color:e.color.negative,lineHeight:"1.4"})),NH=Pt.div(({theme:e})=>({marginTop:"8px",padding:"8px 10px",backgroundColor:`${e.color.warning}1a`,border:`1px solid ${e.color.warning}4d`,borderRadius:"4px",fontSize:"12px",color:e.color.warning,lineHeight:"1.4"})),_H=Pt.div(({theme:e})=>({marginTop:"8px",padding:"8px 10px",backgroundColor:`${e.color.positive}1a`,border:`1px solid ${e.color.positive}4d`,borderRadius:"4px",fontSize:"12px",color:e.color.positive,lineHeight:"1.4"})),OH=Pt.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",marginTop:"8px",padding:"6px 8px",borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,fontSize:"11px",lineHeight:"1.4",color:e.color.defaultText})),ja=Pt.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden",marginTop:"10px"})),Va=Pt.div(({percent:e})=>({width:`${e}%`,height:"100%",backgroundColor:G,borderRadius:"3px",transition:"width 0.5s ease"})),Vi=Pt.div(({theme:e})=>({display:"flex",justifyContent:"space-between",marginTop:"6px",fontSize:"12px",fontWeight:500,color:e.color.defaultText})),DC=new Set,NC=new Map,$H=2,OC=()=>{let{userRole:e,featureFlags:t}=ue(),[n,r]=gi(null),[o,i]=gi(!0),[a,s]=gi(!1),[u,c]=gi(null),[l,p]=gi(null),[g,d]=gi(!1),[f,y]=gi(!1),[I,S]=gi(!1),{selectedProjectId:x,projects:M}=Ke(),{sessionToken:z}=he(),O=S1(null),L=S1(null),N=S1(null),m=LC(()=>{O.current&&(clearInterval(O.current),O.current=null),L.current&&(clearInterval(L.current),L.current=null),N.current&&(clearTimeout(N.current),N.current=null)},[]);ml(()=>m,[m]);let v=LC(async()=>{if(!(!x||!z))try{let j=K(),Y=await Q(`${j}/api/figma/cache-status?projectId=${x}`,{headers:{Authorization:`Bearer ${z}`}});if(Y.ok){let X=await Y.json();r(X)}}catch(j){console.error("[FigmaCacheSection] Error:",j)}finally{i(!1)}},[x,z]);ml(()=>{v()},[v]),ml(()=>{if(o||a||!n||n.structureStatus!=="none"||!x||DC.has(x))return;let j=M.find(X=>X.id===x);(j?.figmaFileUrl||j?.figmaFileId)&&(DC.add(x),k())},[o,a,n?.structureStatus,x,M]),ml(()=>{if(!x)return;let j=NC.get(x)??0;sC({loading:o,reloading:a,crawlStatus:n?.crawlProgress?.status,pagesFailed:n?.crawlProgress?.pagesFailed,tries:j,max:$H})&&(NC.set(x,j+1),k())},[o,a,n?.crawlProgress?.status,n?.crawlProgress?.pagesFailed,x]),ml(()=>{let j=n?.thumbnailProgress?.status,Y=n?.enrichmentProgress?.status,X=n?.thumbnailProgress?.cached??0,ne=n?.thumbnailProgress?.total??0,Te=j==="in-progress"||j==="pending"||ne>0&&X<ne,ye=Y==="in-progress"||Y==="pending",de=!n?.thumbnailProgress&&n?.structureStatus==="cached",Fe=n?.crawlProgress?.status==="crawling"||n?.crawlProgress?.status==="cancelling";if(!(Fe||Te||ye||de)||!Fe&&(!n||n.structureStatus==="none"))return;let Me=setInterval(()=>{v()},3e3);return()=>{clearInterval(Me)}},[n?.thumbnailProgress?.status,n?.thumbnailProgress?.cached,n?.thumbnailProgress?.total,n?.enrichmentProgress?.status,n?.crawlProgress?.status,n?.structureStatus,v]);let k=async j=>{if(!x||!z)return;let Y=Array.isArray(j)?j:void 0;s(!0),c(null),p(null);try{let X=K(),ne=await Q(`${X}/api/figma/crawl`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify(Y?.length?{projectId:x,pageIds:Y}:{projectId:x})});if(!ne.ok){if(ne.status===403){let ye=await ne.json().catch(()=>({}));c(ye.requiresAuth?"auth":"generic")}else c("generic");return}let Te=await ne.json().catch(()=>({}));if(Te?.status==="skipped-unchanged")p("Figma file unchanged \u2014 reused cached structure.");else if(Te?.status==="crawl-started"||Te?.status==="retry-started"){if(Te?.status==="retry-started"){let ye=Te.retryPages;p(`Retrying ${ye?`${ye} `:""}page${ye===1?"":"s"} that hit Figma's rate limit\u2026`)}try{wH.getChannel()?.emit(Ou,{projectId:x})}catch{}}await v()}catch(X){console.error("[FigmaCacheSection] Crawl start error:",X),c("generic")}finally{s(!1)}},E=async()=>{if(!(!x||!z)){d(!0);try{let j=K(),Y=await Q(`${j}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify({projectId:x})});if(console.log("[FigmaCacheSection] Cache invalidate response:",Y.status),!Y.ok){c("generic");return}await Q(`${j}/api/figma/frames/invalidate?projectId=${x}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`}}).catch(()=>{}),x&&uC(x),r({structureStatus:"none",structureCachedAt:null,componentSetCount:0,componentCount:0,pageCount:0,pages:[],cacheDiff:null,thumbnailProgress:null,enrichmentProgress:null,crawlProgress:null})}catch(j){console.error("[FigmaCacheSection] Clear cache error:",j)}finally{d(!1)}}},h=async()=>{if(!(!x||!z)){m(),y(!0);try{let j=K();await Q(`${j}/api/figma/enrich`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify({projectId:x})}),O.current=setInterval(async()=>{await v()},3e3),L.current=setInterval(()=>{(n?.enrichmentProgress?.status==="complete"||n?.enrichmentProgress?.status==="error")&&(m(),y(!1),v())},3e3),N.current=setTimeout(()=>{m(),y(!1)},6e5)}catch(j){console.error("[FigmaCacheSection] Enrich error:",j),m(),y(!1)}}},b=async()=>{if(!(!x||!z)){S(!0);try{let j=K();await Q(`${j}/api/figma/cancel`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify({projectId:x})}),await v()}catch(j){console.error("[FigmaCacheSection] Cancel error:",j)}finally{S(!1),y(!1),s(!1)}}},F=n?.crawlProgress?.status==="crawling"||n?.crawlProgress?.status==="cancelling"||n?.thumbnailProgress?.status==="in-progress"||n?.enrichmentProgress?.status==="in-progress";if(!x)return null;if(o)return q.createElement(k1,null,q.createElement(C1,null,q.createElement(I1,null,"Figma Sync")),q.createElement(BC,null,"Loading sync status\u2026"),q.createElement(ja,null,q.createElement(Va,{percent:100,style:{opacity:.3}})));if(!n||n.structureStatus==="none")return q.createElement(k1,null,q.createElement(C1,null,q.createElement(I1,null,"Figma Sync"),q.createElement(vo,{loading:a,onClick:k,loadingText:"Loading..."},"\u21BB Load")),n?.crawlProgress?.status==="crawling"?q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:(n.crawlProgress.pagesTotal??0)>0?Math.round(n.crawlProgress.pagesDone/n.crawlProgress.pagesTotal*100):100,style:(n.crawlProgress.pagesTotal??0)>0?void 0:{opacity:.3}})),q.createElement(Vi,null,q.createElement("span",null,"Reading components from Figma\u2026"),q.createElement("span",null,(n.crawlProgress.pagesTotal??0)>0?`page ${n.crawlProgress.pagesDone} of ${n.crawlProgress.pagesTotal}`:"starting\u2026"))):a?q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:100,style:{animation:"none",opacity:.3}})),q.createElement(Vi,null,q.createElement("span",null,"Starting crawl\u2026"))):q.createElement(BC,null,"No cache \u2014 click Load to fetch from Figma"),n?.crawlProgress?.status==="error"&&q.createElement(hl,null,"Crawl failed",n.crawlProgress.error?`: ${n.crawlProgress.error}`:"",". Try Load again."),u==="auth"&&q.createElement(hl,null,"Figma authentication expired \u2014 reconnect your Figma account in the Figma Integration section above."),u==="generic"&&q.createElement(hl,null,"Failed to load Figma cache. Check the browser console for details."));let C=j=>{let Y=Date.now()-new Date(j).getTime(),X=Math.floor(Y/6e4);if(X<1)return"just now";if(X<60)return`${X}m ago`;let ne=Math.floor(X/60);return ne<24?`${ne}h ago`:`${Math.floor(ne/24)}d ago`},A=j=>j>=1024*1024*1024?`${(j/1024/1024/1024).toFixed(1)} GB`:j>=1024*1024?`${Math.round(j/1024/1024)} MB`:`${Math.max(1,Math.round(j/1024))} KB`,B=n.crawlProgress?.bytesDownloaded,P=n.cacheDiff,_=P&&(P.added.length>0||P.removed.length>0||P.renamed.length>0),T=n.crawlProgress,D=T?.pagesTotal??0,H=T?.pagesDone??0,R=T?.status==="crawling"||a,te=D>0?Math.round(H/D*100):a?8:0;return q.createElement(k1,null,q.createElement(C1,null,q.createElement(I1,null,"Figma Sync"," ",n.crawlProgress?.status==="crawling"?q.createElement(zC,{tone:"orange"},q.createElement(MH,null),"Importing"):n.structureStatus==="cached"?q.createElement(zC,{tone:"green"},q.createElement(LH,null),"Synced"):q.createElement(PH,{status:n.structureStatus},n.structureStatus)),q.createElement("div",{style:{display:"flex",gap:"2px"}},e==="admin"&&q.createElement(T1,{onClick:h,disabled:f},f?q.createElement(E1,null):q.createElement(BH,null),f?"Enriching\u2026":"Enrich"),q.createElement(T1,{onClick:E,disabled:g},g&&q.createElement(E1,null),g?"Clearing\u2026":"Clear"),q.createElement(T1,{onClick:()=>k(x?Ha(x):void 0),disabled:a},a?q.createElement(E1,null):q.createElement(zH,null),a?"Reloading\u2026":"Reload"),F&&q.createElement(vo,{loading:I||n?.crawlProgress?.status==="cancelling",onClick:b,variant:"ghost",loadingText:"Stopping..."},"\u2715 Stop"))),n?.crawlProgress?.status==="crawling"&&!((n.crawlProgress.pagesTotal??0)>0&&n.crawlProgress.pagesDone>=n.crawlProgress.pagesTotal)&&q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:(n.crawlProgress.pagesTotal??0)>0?Math.round(n.crawlProgress.pagesDone/n.crawlProgress.pagesTotal*100):100,style:(n.crawlProgress.pagesTotal??0)>0?void 0:{opacity:.3}})),q.createElement(Vi,null,q.createElement("span",null,"Re-reading components from Figma\u2026"),q.createElement("span",null,(n.crawlProgress.pagesTotal??0)>0?`page ${n.crawlProgress.pagesDone} of ${n.crawlProgress.pagesTotal}`:"starting\u2026"))),a&&n?.crawlProgress?.status!=="crawling"&&q.createElement(Vi,null,q.createElement("span",null,"Starting crawl\u2026")),u==="auth"&&q.createElement(hl,null,"Figma authentication expired \u2014 reconnect your Figma account in the Figma Integration section above."),u==="generic"&&q.createElement(hl,null,"Failed to reload Figma sync. Check the browser console for details."),q.createElement(vH,null,q.createElement(Gu,null,q.createElement(qu,null,"Component sets"),q.createElement(Yu,null,n.componentSetCount)),q.createElement(Gu,null,q.createElement(qu,null,"Pages"),q.createElement(Yu,null,n.pageCount)),typeof B=="number"&&B>0&&q.createElement(Gu,null,q.createElement(qu,null,"Size"),q.createElement(Yu,null,"\u2248 ",A(B))),n.structureCachedAt&&q.createElement(Gu,null,q.createElement(qu,null,"Updated"),q.createElement(Yu,{plain:!0},C(n.structureCachedAt)))),q.createElement(OH,null,q.createElement("span",{"aria-hidden":!0},"\u2139\uFE0F"),q.createElement("span",null,q.createElement("strong",null,"Components only")," for now \u2014 plain Figma frames aren't indexed yet (support planned).")),x&&q.createElement(MC,{projectId:x,busy:a,importing:R,importPct:te,onReimport:k}),n.crawlProgress?.status==="complete"&&n.crawlProgress.pagesFailed>0&&q.createElement(NH,null,"\u26A0 ",n.crawlProgress.pagesFailed," of"," ",n.crawlProgress.pagesTotal," pages couldn\u2019t be read (Figma rate limit) \u2014 some components may be missing. Reload to retry."),l&&q.createElement(_H,null,"\u2713 ",l),_&&q.createElement(DH,null,"Since last reload:"," ",P.added.length>0&&q.createElement(R1,{type:"added"},"+",P.added.length," added"),P.added.length>0&&P.removed.length>0&&" \xB7 ",P.removed.length>0&&q.createElement(R1,{type:"removed"},"\u2212",P.removed.length," removed"),(P.added.length>0||P.removed.length>0)&&P.renamed.length>0&&" \xB7 ",P.renamed.length>0&&q.createElement(R1,{type:"renamed"},P.renamed.length," renamed")),n.thumbnailProgress&&n.thumbnailProgress.status==="in-progress"&&q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:n.thumbnailProgress.total>0?Math.round(n.thumbnailProgress.cached/n.thumbnailProgress.total*100):0})),q.createElement(Vi,null,q.createElement("span",null,"Preparing thumbnails\u2026",n.thumbnailProgress.currentName&&q.createElement(q.Fragment,null," ",n.thumbnailProgress.currentName)),q.createElement("span",null,n.thumbnailProgress.cached,"/",n.thumbnailProgress.total))),n.thumbnailProgress?.status!=="in-progress"&&(()=>{let j=n.thumbnailProgress,Y=j?.cached??0,X=j?.total??0,ne=X>0&&Y>=X,Te=X>0&&Y<X,ye=X>0?Math.min(100,Math.round(Y/X*100)):0;return q.createElement(SH,null,q.createElement(kH,null,q.createElement(CH,null,q.createElement(IH,null,"Thumbnails",X>0&&q.createElement(q.Fragment,null," ",q.createElement(TH,null,Y," / ",X))),q.createElement(EH,{ready:ne},ne?"\u2713 Ready":Te?"Partial":"Not generated")),q.createElement(RH,{onClick:k,disabled:a},"\u21BB ",ne?"Rebuild":"Reload")),X>0&&q.createElement(AH,null,q.createElement(FH,{pct:ne?100:ye,ready:ne})))})(),n.enrichmentProgress&&n.enrichmentProgress.status==="in-progress"&&q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:n.enrichmentProgress.total>0?Math.round(n.enrichmentProgress.enriched/n.enrichmentProgress.total*100):0})),q.createElement(Vi,null,q.createElement("span",null,"AI descriptions: generating\u2026",n.enrichmentProgress.currentName&&q.createElement(q.Fragment,null," ",n.enrichmentProgress.currentName)),q.createElement("span",null,n.enrichmentProgress.enriched," of"," ",n.enrichmentProgress.total," component sets"))),n.enrichmentProgress&&n.enrichmentProgress.status==="complete"&&q.createElement(q.Fragment,null,q.createElement(Vi,null,q.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&&q.createElement("div",{style:{marginTop:"6px"}},q.createElement(Mu,{inputTokens:n.enrichmentProgress.inputTokens||0,outputTokens:n.enrichmentProgress.outputTokens||0,costUsd:n.enrichmentProgress.costUsd,compact:!0})))};import Dt,{useState as Wa}from"react";import{styled as So}from"storybook/theming";Se();De();ut();var A1=So.div({padding:"12px 16px"}),HH=So.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),$C=So.label(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),HC=So.button(({theme:e})=>({background:"none",border:"none",fontSize:"12px",color:G,cursor:"pointer",padding:0,"&:hover":{textDecoration:"underline"}})),UH=So.div({display:"flex",gap:"8px",alignItems:"center"}),jH=So.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:G,boxShadow:`0 0 0 1px ${G}`},"&::placeholder":{color:e.color.mediumlight,fontFamily:"inherit"}})),UC=So.span(({theme:e,variant:t})=>({fontSize:"12px",color:t==="success"?e.color.positive:t==="error"?e.color.negative:e.color.mediumdark,marginTop:"6px",display:"block",lineHeight:1.4})),VH=So.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"8px",lineHeight:1.5,"& a":{color:G,textDecoration:"none","&:hover":{textDecoration:"underline"}},"& ol":{margin:"4px 0 0 16px",padding:0},"& li":{marginBottom:"2px"}})),WH=So.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})),GH=So.button(({theme:e})=>({background:"none",border:"none",fontSize:"11px",color:"#dc2626",cursor:"pointer",marginLeft:"auto","&:hover":{textDecoration:"underline"}})),jC=({onConnected:e,defaultExpanded:t=!1})=>{let{sessionToken:n}=he(),[r,o]=Wa(t),[i,a]=Wa(""),[s,u]=Wa(!1),[c,l]=Wa(null),[p,g]=Wa(null),[d,f]=Wa(!1),y=async()=>{if(!(!i.trim()||!n)){u(!0),l(null);try{let I=K(),S=await Q(`${I}/api/figma/pat`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({token:i.trim()})}),x=await S.json();if(!S.ok){l({type:"error",message:x.error||"Failed to save token"});return}g(x.figmaUser?.handle||x.figmaUser?.email||"Connected"),l({type:"success",message:`Connected as ${x.figmaUser?.handle||"Figma user"}`}),a(""),e?.()}catch{l({type:"error",message:"Failed to connect. Check your token and try again."})}finally{u(!1)}}};return p?Dt.createElement(A1,null,Dt.createElement($C,null,"Figma Personal Access Token"),Dt.createElement(WH,null,Dt.createElement("span",null,"\u2713 Connected as ",Dt.createElement("strong",null,p)),Dt.createElement(GH,{onClick:()=>{g(null),l(null)}},"Change token"))):r?Dt.createElement(A1,null,Dt.createElement(HH,null,Dt.createElement($C,null,"Figma Personal Access Token"),Dt.createElement(HC,{onClick:()=>f(!d)},d?"Hide instructions":"How to generate")),d&&Dt.createElement(VH,null,Dt.createElement("ol",null,Dt.createElement("li",null,"Open"," ",Dt.createElement("a",{href:"https://www.figma.com/settings",target:"_blank",rel:"noopener noreferrer"},"Figma Settings")),Dt.createElement("li",null,"Click the ",Dt.createElement("strong",null,"Security")," tab"),Dt.createElement("li",null,"Scroll to ",Dt.createElement("strong",null,"Personal access tokens")),Dt.createElement("li",null,"Click ",Dt.createElement("strong",null,"Generate new token")),Dt.createElement("li",null,"Enable ",Dt.createElement("strong",null,"File content: Read only")," under Scopes"),Dt.createElement("li",null,"Copy the token and paste it below"))),Dt.createElement(UH,null,Dt.createElement(jH,{type:"password",value:i,onChange:I=>a(I.target.value),placeholder:"figd_...",onKeyDown:I=>{I.key==="Enter"&&i.trim()&&y()}}),Dt.createElement(Qt,{onClick:y,disabled:!i.trim()||s},s?"Verifying...":"Save & Verify")),c&&Dt.createElement(UC,{variant:c.type},c.message),Dt.createElement(UC,{variant:"info"},"Read-only access. Your token is stored securely and never shared.")):Dt.createElement(A1,null,Dt.createElement(HC,{onClick:()=>o(!0)},"Or use a Personal Access Token \u2192"))};Se();De();ut();var KH=Nt.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Nt.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"}),Nt.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"}),Nt.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),Nt.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"}),Nt.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"})),F1=fi.div({}),XH=fi.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"10px 16px",backgroundColor:e.background.hoverable,borderBottom:`1px solid ${e.appBorderColor}`})),JH=fi.div({width:"16px",height:"16px",display:"flex",alignItems:"center","& svg":{width:"14px",height:"14px"}}),QH=fi.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,flex:1})),P1=fi.div({"& > *":{border:"none",borderRadius:0,marginBottom:0,borderBottom:"1px solid rgba(0,0,0,0.06)","&:last-child":{borderBottom:"none"}}}),ZH=fi.div({padding:"20px 16px",display:"flex",flexDirection:"column",gap:"12px"}),zfe=fi.button({display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",padding:"8px 16px",backgroundColor:Nx,color:"#fff",border:"none",borderRadius:"6px",fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{backgroundColor:_x}}),eU=fi.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}})),WC=({hideHeader:e=!1})=>{let{sessionToken:t}=he(),n=!!t&&t.startsWith("uic_anon_"),[r,o]=xl(!1),[i,a]=xl(0),[s,u]=xl(()=>{try{let S=sessionStorage.getItem("uicopilot_figma_connection");if(S){let{connected:x,ts:M}=JSON.parse(S);if(Date.now()-M<300*1e3)return x}}catch{}return null}),[c,l]=xl(!1),[p,g]=xl(!1),d=YH();qH(()=>{if(!t)return;let S=K();Q(`${S}/api/figma/connection-status`,{headers:{Authorization:`Bearer ${t}`}}).then(x=>x.json()).then(x=>{let M=!!x.connected;l(!!x.expired),u(M);try{sessionStorage.setItem("uicopilot_figma_connection",JSON.stringify({connected:M,ts:Date.now()}))}catch{}}).catch(()=>u(!1))},[t]);let f=VC(()=>{let S=K(),x=`${S}/api/auth/figma/login?addon=true`;window.open(x,"figma-oauth","width=600,height=700,left=200,top=100");let M=setInterval(async()=>{try{(await(await Q(`${S}/api/figma/connection-status`,{headers:t?{Authorization:`Bearer ${t}`}:{}})).json()).connected&&(clearInterval(M),u(!0))}catch{}},2e3);setTimeout(()=>clearInterval(M),300*1e3)},[t]),y=VC(async()=>{try{o(!0);let S=K(),x=await Q(`${S}/api/figma/disconnect`,{method:"POST",headers:{Authorization:`Bearer ${t}`}});if(x.ok||x.status===404){u(!1);try{sessionStorage.removeItem("uicopilot_figma_connection")}catch{}}}catch{}finally{o(!1)}},[t]),I=e?null:Nt.createElement(XH,null,Nt.createElement(JH,null,KH),Nt.createElement(QH,null,"Figma Integration"));return s===null?Nt.createElement(F1,null,I,Nt.createElement(P1,null,Nt.createElement("div",{style:{padding:"16px",fontSize:"13px",color:d.color.mediumdark}},"Checking Figma connection..."))):s===!1?Nt.createElement(F1,null,I,Nt.createElement(P1,null,Nt.createElement(ZH,null,c&&Nt.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:d.color.warning}},"\u26A0\uFE0F Your Figma access has expired. Please reconnect."),Nt.createElement("div",{style:{padding:"8px 10px",backgroundColor:"rgba(100, 116, 139, 0.1)",border:"1px solid rgba(100, 116, 139, 0.3)",borderRadius:"6px",fontSize:"11px",lineHeight:1.4,color:d.color.mediumdark}},"Requires a Figma ",Nt.createElement("strong",null,"Dev or Full seat"),". Free/Viewer seats can't grant design-read access."),!n&&Nt.createElement(Nt.Fragment,null,Nt.createElement(Qt,{onClick:f,style:{width:"100%"}},c?"Reconnect Figma":"Connect with Figma"),Nt.createElement(eU,null,"or")),Nt.createElement(jC,{onConnected:()=>u(!0),defaultExpanded:n})))):Nt.createElement(F1,null,I,Nt.createElement(vu,{connected:!0,label:"Connected to Figma",actionLabel:r?"Disconnecting\u2026":"Disconnect",actionDisabled:r,actionTitle:"Disconnect Figma",onAction:()=>g(!0)}),Nt.createElement(bo,{isOpen:p,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:()=>{g(!1),y()},onCancel:()=>g(!1)}),Nt.createElement(P1,null,Nt.createElement(B4,{onFigmaFileChanged:()=>a(S=>S+1)}),Nt.createElement(aC,{refreshKey:i}),Nt.createElement(OC,null)))};Se();pn();import{styled as tn}from"storybook/theming";var GC=tn.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.4)",zIndex:1e3,display:"flex",justifyContent:"center",alignItems:"flex-start",paddingTop:"40px"}),qC=tn.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"14px",border:`1px solid ${e.appBorderColor}`,boxShadow:"0 16px 48px rgba(0, 0, 0, 0.22)",width:"820px",maxWidth:"94%",maxHeight:"calc(100vh - 80px)",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative"})),YC=tn.header(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",height:"48px",padding:"0 16px",borderBottom:`1px solid ${e.appBorderColor}`,flexShrink:0})),KC=tn.div({display:"flex",alignItems:"center",gap:"8px"}),XC=tn.span(({theme:e})=>({fontSize:"14px",fontWeight:e.typography.weight.bold,letterSpacing:"-0.01em",color:e.color.defaultText})),JC=tn.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark})),QC=tn.button(({theme:e})=>({width:"28px",height:"28px",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:e.appBorderRadius,color:e.color.mediumdark,backgroundColor:"transparent",border:"none",cursor:"pointer",fontSize:"18px",lineHeight:1,transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable}})),ZC=tn.div({display:"flex",flex:1,minHeight:"440px",overflow:"hidden"}),e3=tn.nav(({theme:e})=>({width:"178px",flexShrink:0,backgroundColor:e.background.app,padding:"12px 8px",display:"flex",flexDirection:"column",gap:"2px"})),t3=tn.button(({theme:e,active:t})=>({position:"relative",width:"100%",display:"flex",alignItems:"center",gap:"10px",padding:"0 8px 0 12px",height:"32px",borderRadius:e.appBorderRadius,border:"none",cursor:"pointer",textAlign:"left",backgroundColor:t?e.background.hoverable:"transparent",color:t?e.color.defaultText:e.color.mediumdark,transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"& svg":{flexShrink:0}})),n3=tn.span({position:"absolute",left:0,top:"6px",bottom:"6px",width:"2px",borderRadius:"2px",backgroundColor:G}),r3=tn.span(({theme:e})=>({fontSize:"12px",fontWeight:e.typography.weight.bold,lineHeight:1})),o3=tn.div(({theme:e})=>({flex:1,overflowY:"auto",backgroundColor:e.background.content,borderLeft:`1px solid ${e.appBorderColor}`,padding:"20px"})),Ku=tn.header({display:"flex",alignItems:"center",gap:"10px",marginBottom:"16px"}),i3=tn.div({width:"28px",height:"28px",borderRadius:"7px",backgroundColor:G,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"10px",fontWeight:700,letterSpacing:"0.3px",flexShrink:0}),M1=tn.div(({theme:e})=>({width:"28px",height:"28px",borderRadius:"7px",backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,color:e.color.mediumdark,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0})),Xu=tn.h3(({theme:e})=>({margin:0,fontSize:"13px",fontWeight:e.typography.weight.bold,color:e.color.defaultText,lineHeight:1.2})),Ju=tn.p(({theme:e})=>({margin:"3px 0 0",fontSize:"11px",color:e.color.mediumdark,lineHeight:1.2})),Qu=tn.div({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"}}),L1=tn.div(({theme:e})=>({padding:"16px",borderRadius:"10px",border:`1px dashed ${e.appBorderColor}`,backgroundColor:e.background.app,fontSize:"12px",color:e.color.mediumdark,lineHeight:1.5})),a3=tn.footer(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",height:"44px",padding:"0 16px",borderTop:`1px solid ${e.appBorderColor}`,flexShrink:0})),s3=tn.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark})),l3=tn.div({display:"flex",alignItems:"center",gap:"6px"}),c3=tn.button(({theme:e})=>({height:"28px",padding:"0 12px",fontSize:"11px",fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,border:"none",borderRadius:e.appBorderRadius*2,background:"transparent",color:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable}}));var u3=()=>Ne.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"},Ne.createElement("path",{d:"M4 4h5l2 3h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z"})),oU=[{id:"account",label:"Account",icon:us},{id:"project",label:"Project",icon:u3},{id:"figma",label:"Figma",icon:Fo}],d3=({onClose:e})=>{let{isConnected:t}=he(),{selectedProjectId:n}=Ke(),[r,o]=rU("account"),i=Zu(t),a=Zu(!t),s=Zu(!1),u=Zu(!1);nU(()=>{a.current&&!s.current&&!i.current&&t&&n&&(s.current=!0,e()),i.current=t},[t,n,e]);let c=()=>r==="account"?Ne.createElement(Ne.Fragment,null,Ne.createElement(Ku,null,Ne.createElement(i3,null,"UI"),Ne.createElement("div",null,Ne.createElement(Xu,null,jt.NAME," account"),Ne.createElement(Ju,null,"Deterministic Figma \u2194 code comparison"))),Ne.createElement(Qu,null,Ne.createElement(E4,{onConnect:e}))):r==="project"?Ne.createElement(Ne.Fragment,null,Ne.createElement(Ku,null,Ne.createElement(M1,null,Ne.createElement(u3,null)),Ne.createElement("div",null,Ne.createElement(Xu,null,"Project"),Ne.createElement(Ju,null,"The Storybook project being compared"))),t?Ne.createElement(Qu,null,Ne.createElement(P4,null)):Ne.createElement(L1,null,"Sign in on the ",Ne.createElement("strong",null,"Account")," tab first to choose a project.")):Ne.createElement(Ne.Fragment,null,Ne.createElement(Ku,null,Ne.createElement(M1,null,Ne.createElement(Fo,null)),Ne.createElement("div",null,Ne.createElement(Xu,null,"Figma integration"),Ne.createElement(Ju,null,"Source of truth for design tokens"))),t&&n?Ne.createElement(Qu,null,Ne.createElement(WC,{hideHeader:!0})):Ne.createElement(L1,null,t?"Select a project on the Project tab before connecting Figma.":"Sign in on the Account tab first, then pick a project to connect Figma."));return Ne.createElement(GC,{onMouseDown:l=>{u.current=l.target===l.currentTarget},onClick:l=>{u.current&&l.target===l.currentTarget&&e()}},Ne.createElement(qC,{onClick:l=>l.stopPropagation()},Ne.createElement(YC,null,Ne.createElement(KC,null,Ne.createElement(XC,null,"Settings"),Ne.createElement(JC,null,"v","0.8.1")),Ne.createElement(QC,{onClick:e,title:"Close settings","aria-label":"Close"},"\xD7")),Ne.createElement(ZC,null,Ne.createElement(e3,null,oU.map(l=>{let p=l.icon,g=r===l.id;return Ne.createElement(t3,{key:l.id,active:g,onClick:()=>o(l.id)},g&&Ne.createElement(n3,null),Ne.createElement(p,null),Ne.createElement(r3,null,l.label))})),Ne.createElement(o3,null,c())),Ne.createElement(a3,null,Ne.createElement(s3,null,jt.NAME," \xB7 settings synced"),Ne.createElement(l3,null,Ne.createElement(c3,{onClick:e},"Cancel"),Ne.createElement(Qt,{onClick:e},"Done")))))};Se();pn();import Wt from"react";import so from"react";import{styled as mn,keyframes as iU}from"storybook/theming";var mi=mn.div({marginTop:"10px",padding:"12px",borderRadius:"8px",border:`1px solid ${Z.border}`,background:Z.formBg,display:"flex",flexDirection:"column",gap:"10px"}),p3=mn.button({display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",padding:"9px",borderRadius:"8px",border:`1px solid ${Z.border}`,background:Z.card,color:Z.text,fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{background:Z.formBg}}),yl=mn.div({fontSize:"11px",color:Z.muted,textAlign:"center"}),g3=mn.div({display:"flex",alignItems:"center",gap:"8px","&::before, &::after":{content:'""',flex:1,height:"1px",background:Z.border},fontSize:"11px",color:Z.muted}),f3=mn.button({width:"100%",padding:"9px",borderRadius:"6px",border:`1px dashed ${G}`,background:Z.card,color:G,fontSize:"12px",fontWeight:600,cursor:"pointer","&:hover":{background:Z.accentTint},"&:disabled":{opacity:.6,cursor:"default"}}),hi=mn.label({fontSize:"11px",fontWeight:600,color:Z.subText,display:"block",marginBottom:"4px"}),Wi=mn.input({width:"100%",padding:"7px 10px",fontSize:"12px",borderRadius:"6px",border:`1px solid ${Z.border}`,background:Z.card,color:Z.text,outline:"none","&:focus":{borderColor:G},"&:disabled":{background:Z.formBg,color:Z.muted}}),m3=mn.select({width:"100%",padding:"7px 10px",fontSize:"12px",borderRadius:"6px",border:`1px solid ${Z.border}`,background:Z.card,color:Z.text}),ao=mn.button(({disabled:e})=>({width:"100%",padding:"8px",borderRadius:"6px",border:"none",fontSize:"12px",fontWeight:600,color:Z.card,cursor:e?"not-allowed":"pointer",background:G,opacity:e?.5:1,"&:hover":e?{}:{background:Xo}})),B1=mn.div({marginTop:"10px",fontSize:"11px",lineHeight:1.4,padding:"8px 10px",borderRadius:"6px",background:Z.calloutBg,color:Z.calloutText}),h3=mn.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px"}),x3=mn.div({display:"flex",flexDirection:"column",gap:"8px",padding:"10px",borderRadius:"6px",border:`1px solid ${Z.border}`,background:Z.card}),y3=mn.div({display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"11px",color:Z.subText}),b3=mn.span({fontVariantNumeric:"tabular-nums",color:Z.muted}),w3=mn.div({height:"4px",width:"100%",borderRadius:"999px",background:Z.track,overflow:"hidden"}),v3=mn.div(({pct:e})=>({height:"100%",width:`${Math.min(100,Math.max(0,e))}%`,borderRadius:"999px",background:G,transition:"width 0.3s ease"})),aU=iU`
|
|
91
|
+
`,zC=Pt.span(({theme:e,tone:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",padding:"1px 6px",borderRadius:"3px",fontSize:"9px",fontWeight:e.typography.weight.bold,textTransform:"uppercase",letterSpacing:"0.05em",backgroundColor:t==="green"?`${e.color.positive}1a`:`${G}1a`,color:t==="green"?e.color.positive:G})),MH=Pt.span({display:"inline-block",width:"10px",height:"10px",border:`1.5px solid ${G}40`,borderTopColor:G,borderRadius:"50%",animation:`${_C} 0.6s linear infinite`}),LH=()=>q.createElement("svg",{viewBox:"0 0 24 24",width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},q.createElement("path",{d:"M20 6 9 17l-5-5"})),T1=Pt.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"4px",height:"25px",padding:"2px 8px",border:"none",background:"transparent",borderRadius:e.appBorderRadius,cursor:"pointer",fontSize:"11px",fontFamily:e.typography.fonts.base,color:e.color.mediumdark,transition:"all 0.15s","&:hover:not(:disabled)":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),E1=Pt.span({display:"inline-block",width:"10px",height:"10px",border:"1.5px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",opacity:.6,animation:`${_C} 0.6s linear infinite`}),BH=()=>q.createElement("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"currentColor","aria-hidden":!0},q.createElement("path",{d:"M12 2.5l1.6 5.9 5.9 1.6-5.9 1.6L12 17.5l-1.6-5.9L4.5 10l5.9-1.6z"})),zH=()=>q.createElement("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},q.createElement("path",{d:"M23 4v6h-6M1 20v-6h6"}),q.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"})),DH=Pt.div(({theme:e})=>({marginTop:"6px",padding:"6px 8px",backgroundColor:e.background.hoverable,borderRadius:"4px",color:e.color.mediumdark,lineHeight:"1.4"})),R1=Pt.span(({theme:e,type:t})=>({fontWeight:500,color:t==="added"?e.color.positive:t==="removed"?e.color.negative:e.color.warning})),hl=Pt.div(({theme:e})=>({marginTop:"8px",padding:"8px 10px",backgroundColor:`${e.color.negative}1a`,border:`1px solid ${e.color.negative}4d`,borderRadius:"4px",fontSize:"12px",color:e.color.negative,lineHeight:"1.4"})),NH=Pt.div(({theme:e})=>({marginTop:"8px",padding:"8px 10px",backgroundColor:`${e.color.warning}1a`,border:`1px solid ${e.color.warning}4d`,borderRadius:"4px",fontSize:"12px",color:e.color.warning,lineHeight:"1.4"})),_H=Pt.div(({theme:e})=>({marginTop:"8px",padding:"8px 10px",backgroundColor:`${e.color.positive}1a`,border:`1px solid ${e.color.positive}4d`,borderRadius:"4px",fontSize:"12px",color:e.color.positive,lineHeight:"1.4"})),OH=Pt.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"6px",marginTop:"8px",padding:"6px 8px",borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,fontSize:"11px",lineHeight:"1.4",color:e.color.defaultText})),ja=Pt.div(({theme:e})=>({width:"100%",height:"8px",backgroundColor:e.appBorderColor,borderRadius:"4px",overflow:"hidden",marginTop:"10px"})),Va=Pt.div(({percent:e})=>({width:`${e}%`,height:"100%",backgroundColor:G,borderRadius:"3px",transition:"width 0.5s ease"})),Vi=Pt.div(({theme:e})=>({display:"flex",justifyContent:"space-between",marginTop:"6px",fontSize:"12px",fontWeight:500,color:e.color.defaultText})),DC=new Set,NC=new Map,$H=2,OC=()=>{let{userRole:e,featureFlags:t}=ue(),[n,r]=gi(null),[o,i]=gi(!0),[a,s]=gi(!1),[u,c]=gi(null),[l,p]=gi(null),[g,d]=gi(!1),[f,y]=gi(!1),[I,S]=gi(!1),{selectedProjectId:x,projects:M}=Ke(),{sessionToken:z}=he(),O=S1(null),L=S1(null),N=S1(null),m=LC(()=>{O.current&&(clearInterval(O.current),O.current=null),L.current&&(clearInterval(L.current),L.current=null),N.current&&(clearTimeout(N.current),N.current=null)},[]);ml(()=>m,[m]);let v=LC(async()=>{if(!(!x||!z))try{let j=K(),Y=await Q(`${j}/api/figma/cache-status?projectId=${x}`,{headers:{Authorization:`Bearer ${z}`}});if(Y.ok){let X=await Y.json();r(X)}}catch(j){console.error("[FigmaCacheSection] Error:",j)}finally{i(!1)}},[x,z]);ml(()=>{v()},[v]),ml(()=>{if(o||a||!n||n.structureStatus!=="none"||!x||DC.has(x))return;let j=M.find(X=>X.id===x);(j?.figmaFileUrl||j?.figmaFileId)&&(DC.add(x),k())},[o,a,n?.structureStatus,x,M]),ml(()=>{if(!x)return;let j=NC.get(x)??0;sC({loading:o,reloading:a,crawlStatus:n?.crawlProgress?.status,pagesFailed:n?.crawlProgress?.pagesFailed,tries:j,max:$H})&&(NC.set(x,j+1),k())},[o,a,n?.crawlProgress?.status,n?.crawlProgress?.pagesFailed,x]),ml(()=>{let j=n?.thumbnailProgress?.status,Y=n?.enrichmentProgress?.status,X=n?.thumbnailProgress?.cached??0,ne=n?.thumbnailProgress?.total??0,Te=j==="in-progress"||j==="pending"||ne>0&&X<ne,ye=Y==="in-progress"||Y==="pending",de=!n?.thumbnailProgress&&n?.structureStatus==="cached",Fe=n?.crawlProgress?.status==="crawling"||n?.crawlProgress?.status==="cancelling";if(!(Fe||Te||ye||de)||!Fe&&(!n||n.structureStatus==="none"))return;let Me=setInterval(()=>{v()},3e3);return()=>{clearInterval(Me)}},[n?.thumbnailProgress?.status,n?.thumbnailProgress?.cached,n?.thumbnailProgress?.total,n?.enrichmentProgress?.status,n?.crawlProgress?.status,n?.structureStatus,v]);let k=async j=>{if(!x||!z)return;let Y=Array.isArray(j)?j:void 0;s(!0),c(null),p(null);try{let X=K(),ne=await Q(`${X}/api/figma/crawl`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify(Y?.length?{projectId:x,pageIds:Y}:{projectId:x})});if(!ne.ok){if(ne.status===403){let ye=await ne.json().catch(()=>({}));c(ye.requiresAuth?"auth":"generic")}else c("generic");return}let Te=await ne.json().catch(()=>({}));if(Te?.status==="skipped-unchanged")p("Figma file unchanged \u2014 reused cached structure.");else if(Te?.status==="crawl-started"||Te?.status==="retry-started"){if(Te?.status==="retry-started"){let ye=Te.retryPages;p(`Retrying ${ye?`${ye} `:""}page${ye===1?"":"s"} that hit Figma's rate limit\u2026`)}try{wH.getChannel()?.emit(Ou,{projectId:x})}catch{}}await v()}catch(X){console.error("[FigmaCacheSection] Crawl start error:",X),c("generic")}finally{s(!1)}},E=async()=>{if(!(!x||!z)){d(!0);try{let j=K(),Y=await Q(`${j}/api/figma/cache/invalidate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify({projectId:x})});if(console.log("[FigmaCacheSection] Cache invalidate response:",Y.status),!Y.ok){c("generic");return}await Q(`${j}/api/figma/frames/invalidate?projectId=${x}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`}}).catch(()=>{}),x&&uC(x),r({structureStatus:"none",structureCachedAt:null,componentSetCount:0,componentCount:0,pageCount:0,pages:[],cacheDiff:null,thumbnailProgress:null,enrichmentProgress:null,crawlProgress:null})}catch(j){console.error("[FigmaCacheSection] Clear cache error:",j)}finally{d(!1)}}},h=async()=>{if(!(!x||!z)){m(),y(!0);try{let j=K();await Q(`${j}/api/figma/enrich`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify({projectId:x})}),O.current=setInterval(async()=>{await v()},3e3),L.current=setInterval(()=>{(n?.enrichmentProgress?.status==="complete"||n?.enrichmentProgress?.status==="error")&&(m(),y(!1),v())},3e3),N.current=setTimeout(()=>{m(),y(!1)},6e5)}catch(j){console.error("[FigmaCacheSection] Enrich error:",j),m(),y(!1)}}},b=async()=>{if(!(!x||!z)){S(!0);try{let j=K();await Q(`${j}/api/figma/cancel`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${z}`},body:JSON.stringify({projectId:x})}),await v()}catch(j){console.error("[FigmaCacheSection] Cancel error:",j)}finally{S(!1),y(!1),s(!1)}}},F=n?.crawlProgress?.status==="crawling"||n?.crawlProgress?.status==="cancelling"||n?.thumbnailProgress?.status==="in-progress"||n?.enrichmentProgress?.status==="in-progress";if(!x)return null;if(o)return q.createElement(k1,null,q.createElement(C1,null,q.createElement(I1,null,"Figma Sync")),q.createElement(BC,null,"Loading sync status\u2026"),q.createElement(ja,null,q.createElement(Va,{percent:100,style:{opacity:.3}})));if(!n||n.structureStatus==="none")return q.createElement(k1,null,q.createElement(C1,null,q.createElement(I1,null,"Figma Sync"),q.createElement(vo,{loading:a,onClick:k,loadingText:"Loading..."},"\u21BB Load")),n?.crawlProgress?.status==="crawling"?q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:(n.crawlProgress.pagesTotal??0)>0?Math.round(n.crawlProgress.pagesDone/n.crawlProgress.pagesTotal*100):100,style:(n.crawlProgress.pagesTotal??0)>0?void 0:{opacity:.3}})),q.createElement(Vi,null,q.createElement("span",null,"Reading components from Figma\u2026"),q.createElement("span",null,(n.crawlProgress.pagesTotal??0)>0?`page ${n.crawlProgress.pagesDone} of ${n.crawlProgress.pagesTotal}`:"starting\u2026"))):a?q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:100,style:{animation:"none",opacity:.3}})),q.createElement(Vi,null,q.createElement("span",null,"Starting crawl\u2026"))):q.createElement(BC,null,"No cache \u2014 click Load to fetch from Figma"),n?.crawlProgress?.status==="error"&&q.createElement(hl,null,"Crawl failed",n.crawlProgress.error?`: ${n.crawlProgress.error}`:"",". Try Load again."),u==="auth"&&q.createElement(hl,null,"Figma authentication expired \u2014 reconnect your Figma account in the Figma Integration section above."),u==="generic"&&q.createElement(hl,null,"Failed to load Figma cache. Check the browser console for details."));let C=j=>{let Y=Date.now()-new Date(j).getTime(),X=Math.floor(Y/6e4);if(X<1)return"just now";if(X<60)return`${X}m ago`;let ne=Math.floor(X/60);return ne<24?`${ne}h ago`:`${Math.floor(ne/24)}d ago`},A=j=>j>=1024*1024*1024?`${(j/1024/1024/1024).toFixed(1)} GB`:j>=1024*1024?`${Math.round(j/1024/1024)} MB`:`${Math.max(1,Math.round(j/1024))} KB`,B=n.crawlProgress?.bytesDownloaded,P=n.cacheDiff,_=P&&(P.added.length>0||P.removed.length>0||P.renamed.length>0),T=n.crawlProgress,D=T?.pagesTotal??0,H=T?.pagesDone??0,R=T?.status==="crawling"||a,te=D>0?Math.round(H/D*100):a?8:0;return q.createElement(k1,null,q.createElement(C1,null,q.createElement(I1,null,"Figma Sync"," ",n.crawlProgress?.status==="crawling"?q.createElement(zC,{tone:"orange"},q.createElement(MH,null),"Importing"):n.structureStatus==="cached"?q.createElement(zC,{tone:"green"},q.createElement(LH,null),"Synced"):q.createElement(PH,{status:n.structureStatus},n.structureStatus)),q.createElement("div",{style:{display:"flex",gap:"2px"}},e==="admin"&&q.createElement(T1,{onClick:h,disabled:f},f?q.createElement(E1,null):q.createElement(BH,null),f?"Enriching\u2026":"Enrich"),q.createElement(T1,{onClick:E,disabled:g},g&&q.createElement(E1,null),g?"Clearing\u2026":"Clear"),q.createElement(T1,{onClick:()=>k(x?Ha(x):void 0),disabled:a},a?q.createElement(E1,null):q.createElement(zH,null),a?"Reloading\u2026":"Reload"),F&&q.createElement(vo,{loading:I||n?.crawlProgress?.status==="cancelling",onClick:b,variant:"ghost",loadingText:"Stopping..."},"\u2715 Stop"))),n?.crawlProgress?.status==="crawling"&&!((n.crawlProgress.pagesTotal??0)>0&&n.crawlProgress.pagesDone>=n.crawlProgress.pagesTotal)&&q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:(n.crawlProgress.pagesTotal??0)>0?Math.round(n.crawlProgress.pagesDone/n.crawlProgress.pagesTotal*100):100,style:(n.crawlProgress.pagesTotal??0)>0?void 0:{opacity:.3}})),q.createElement(Vi,null,q.createElement("span",null,"Re-reading components from Figma\u2026"),q.createElement("span",null,(n.crawlProgress.pagesTotal??0)>0?`page ${n.crawlProgress.pagesDone} of ${n.crawlProgress.pagesTotal}`:"starting\u2026"))),a&&n?.crawlProgress?.status!=="crawling"&&q.createElement(Vi,null,q.createElement("span",null,"Starting crawl\u2026")),u==="auth"&&q.createElement(hl,null,"Figma authentication expired \u2014 reconnect your Figma account in the Figma Integration section above."),u==="generic"&&q.createElement(hl,null,"Failed to reload Figma sync. Check the browser console for details."),q.createElement(vH,null,q.createElement(Gu,null,q.createElement(qu,null,"Component sets"),q.createElement(Yu,null,n.componentSetCount)),q.createElement(Gu,null,q.createElement(qu,null,"Pages"),q.createElement(Yu,null,n.pageCount)),typeof B=="number"&&B>0&&q.createElement(Gu,null,q.createElement(qu,null,"Size"),q.createElement(Yu,null,"\u2248 ",A(B))),n.structureCachedAt&&q.createElement(Gu,null,q.createElement(qu,null,"Updated"),q.createElement(Yu,{plain:!0},C(n.structureCachedAt)))),q.createElement(OH,null,q.createElement("span",{"aria-hidden":!0},"\u2139\uFE0F"),q.createElement("span",null,q.createElement("strong",null,"Components only")," for now \u2014 plain Figma frames aren't indexed yet (support planned).")),x&&q.createElement(MC,{projectId:x,busy:a,importing:R,importPct:te,onReimport:k}),n.crawlProgress?.status==="complete"&&n.crawlProgress.pagesFailed>0&&q.createElement(NH,null,"\u26A0 ",n.crawlProgress.pagesFailed," of"," ",n.crawlProgress.pagesTotal," pages couldn\u2019t be read (Figma rate limit) \u2014 some components may be missing. Reload to retry."),l&&q.createElement(_H,null,"\u2713 ",l),_&&q.createElement(DH,null,"Since last reload:"," ",P.added.length>0&&q.createElement(R1,{type:"added"},"+",P.added.length," added"),P.added.length>0&&P.removed.length>0&&" \xB7 ",P.removed.length>0&&q.createElement(R1,{type:"removed"},"\u2212",P.removed.length," removed"),(P.added.length>0||P.removed.length>0)&&P.renamed.length>0&&" \xB7 ",P.renamed.length>0&&q.createElement(R1,{type:"renamed"},P.renamed.length," renamed")),n.thumbnailProgress&&n.thumbnailProgress.status==="in-progress"&&q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:n.thumbnailProgress.total>0?Math.round(n.thumbnailProgress.cached/n.thumbnailProgress.total*100):0})),q.createElement(Vi,null,q.createElement("span",null,"Preparing thumbnails\u2026",n.thumbnailProgress.currentName&&q.createElement(q.Fragment,null," ",n.thumbnailProgress.currentName)),q.createElement("span",null,n.thumbnailProgress.cached,"/",n.thumbnailProgress.total))),n.thumbnailProgress?.status!=="in-progress"&&(()=>{let j=n.thumbnailProgress,Y=j?.cached??0,X=j?.total??0,ne=X>0&&Y>=X,Te=X>0&&Y<X,ye=X>0?Math.min(100,Math.round(Y/X*100)):0;return q.createElement(SH,null,q.createElement(kH,null,q.createElement(CH,null,q.createElement(IH,null,"Thumbnails",X>0&&q.createElement(q.Fragment,null," ",q.createElement(TH,null,Y," / ",X))),q.createElement(EH,{ready:ne},ne?"\u2713 Ready":Te?"Partial":"Not generated")),q.createElement(RH,{onClick:k,disabled:a},"\u21BB ",ne?"Rebuild":"Reload")),X>0&&q.createElement(AH,null,q.createElement(FH,{pct:ne?100:ye,ready:ne})))})(),n.enrichmentProgress&&n.enrichmentProgress.status==="in-progress"&&q.createElement(q.Fragment,null,q.createElement(ja,null,q.createElement(Va,{percent:n.enrichmentProgress.total>0?Math.round(n.enrichmentProgress.enriched/n.enrichmentProgress.total*100):0})),q.createElement(Vi,null,q.createElement("span",null,"AI descriptions: generating\u2026",n.enrichmentProgress.currentName&&q.createElement(q.Fragment,null," ",n.enrichmentProgress.currentName)),q.createElement("span",null,n.enrichmentProgress.enriched," of"," ",n.enrichmentProgress.total," component sets"))),n.enrichmentProgress&&n.enrichmentProgress.status==="complete"&&q.createElement(q.Fragment,null,q.createElement(Vi,null,q.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&&q.createElement("div",{style:{marginTop:"6px"}},q.createElement(Mu,{inputTokens:n.enrichmentProgress.inputTokens||0,outputTokens:n.enrichmentProgress.outputTokens||0,costUsd:n.enrichmentProgress.costUsd,compact:!0})))};import Dt,{useState as Wa}from"react";import{styled as So}from"storybook/theming";Se();De();ut();var A1=So.div({padding:"12px 16px"}),HH=So.div({display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"}),$C=So.label(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText})),HC=So.button(({theme:e})=>({background:"none",border:"none",fontSize:"12px",color:G,cursor:"pointer",padding:0,"&:hover":{textDecoration:"underline"}})),UH=So.div({display:"flex",gap:"8px",alignItems:"center"}),jH=So.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:G,boxShadow:`0 0 0 1px ${G}`},"&::placeholder":{color:e.color.mediumlight,fontFamily:"inherit"}})),UC=So.span(({theme:e,variant:t})=>({fontSize:"12px",color:t==="success"?e.color.positive:t==="error"?e.color.negative:e.color.mediumdark,marginTop:"6px",display:"block",lineHeight:1.4})),VH=So.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"8px",lineHeight:1.5,"& a":{color:G,textDecoration:"none","&:hover":{textDecoration:"underline"}},"& ol":{margin:"4px 0 0 16px",padding:0},"& li":{marginBottom:"2px"}})),WH=So.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})),GH=So.button(({theme:e})=>({background:"none",border:"none",fontSize:"11px",color:"#dc2626",cursor:"pointer",marginLeft:"auto","&:hover":{textDecoration:"underline"}})),jC=({onConnected:e,defaultExpanded:t=!1})=>{let{sessionToken:n}=he(),[r,o]=Wa(t),[i,a]=Wa(""),[s,u]=Wa(!1),[c,l]=Wa(null),[p,g]=Wa(null),[d,f]=Wa(!1),y=async()=>{if(!(!i.trim()||!n)){u(!0),l(null);try{let I=K(),S=await Q(`${I}/api/figma/pat`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},body:JSON.stringify({token:i.trim()})}),x=await S.json();if(!S.ok){l({type:"error",message:x.error||"Failed to save token"});return}g(x.figmaUser?.handle||x.figmaUser?.email||"Connected"),l({type:"success",message:`Connected as ${x.figmaUser?.handle||"Figma user"}`}),a(""),e?.()}catch{l({type:"error",message:"Failed to connect. Check your token and try again."})}finally{u(!1)}}};return p?Dt.createElement(A1,null,Dt.createElement($C,null,"Figma Personal Access Token"),Dt.createElement(WH,null,Dt.createElement("span",null,"\u2713 Connected as ",Dt.createElement("strong",null,p)),Dt.createElement(GH,{onClick:()=>{g(null),l(null)}},"Change token"))):r?Dt.createElement(A1,null,Dt.createElement(HH,null,Dt.createElement($C,null,"Figma Personal Access Token"),Dt.createElement(HC,{onClick:()=>f(!d)},d?"Hide instructions":"How to generate")),d&&Dt.createElement(VH,null,Dt.createElement("ol",null,Dt.createElement("li",null,"Open"," ",Dt.createElement("a",{href:"https://www.figma.com/settings",target:"_blank",rel:"noopener noreferrer"},"Figma Settings")),Dt.createElement("li",null,"Click the ",Dt.createElement("strong",null,"Security")," tab"),Dt.createElement("li",null,"Scroll to ",Dt.createElement("strong",null,"Personal access tokens")),Dt.createElement("li",null,"Click ",Dt.createElement("strong",null,"Generate new token")),Dt.createElement("li",null,"Enable ",Dt.createElement("strong",null,"File content: Read only")," under Scopes"),Dt.createElement("li",null,"Copy the token and paste it below"))),Dt.createElement(UH,null,Dt.createElement(jH,{type:"password",value:i,onChange:I=>a(I.target.value),placeholder:"figd_...",onKeyDown:I=>{I.key==="Enter"&&i.trim()&&y()}}),Dt.createElement(Qt,{onClick:y,disabled:!i.trim()||s},s?"Verifying...":"Save & Verify")),c&&Dt.createElement(UC,{variant:c.type},c.message),Dt.createElement(UC,{variant:"info"},"Read-only access. Your token is stored securely and never shared.")):Dt.createElement(A1,null,Dt.createElement(HC,{onClick:()=>o(!0)},"Or use a Personal Access Token \u2192"))};Se();De();ut();var KH=Nt.createElement("svg",{viewBox:"0 0 38 57",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Nt.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"}),Nt.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"}),Nt.createElement("path",{d:"M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z",fill:"#FF7262"}),Nt.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"}),Nt.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"})),F1=fi.div({}),XH=fi.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"8px",padding:"10px 16px",backgroundColor:e.background.hoverable,borderBottom:`1px solid ${e.appBorderColor}`})),JH=fi.div({width:"16px",height:"16px",display:"flex",alignItems:"center","& svg":{width:"14px",height:"14px"}}),QH=fi.span(({theme:e})=>({fontSize:"13px",fontWeight:600,color:e.color.defaultText,flex:1})),P1=fi.div({"& > *":{border:"none",borderRadius:0,marginBottom:0,borderBottom:"1px solid rgba(0,0,0,0.06)","&:last-child":{borderBottom:"none"}}}),ZH=fi.div({padding:"20px 16px",display:"flex",flexDirection:"column",gap:"12px"}),zfe=fi.button({display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",padding:"8px 16px",backgroundColor:Nx,color:"#fff",border:"none",borderRadius:"6px",fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{backgroundColor:_x}}),eU=fi.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}})),WC=({hideHeader:e=!1})=>{let{sessionToken:t}=he(),n=!!t&&t.startsWith("uic_anon_"),[r,o]=xl(!1),[i,a]=xl(0),[s,u]=xl(()=>{try{let S=sessionStorage.getItem("uicopilot_figma_connection");if(S){let{connected:x,ts:M}=JSON.parse(S);if(Date.now()-M<300*1e3)return x}}catch{}return null}),[c,l]=xl(!1),[p,g]=xl(!1),d=YH();qH(()=>{if(!t)return;let S=K();Q(`${S}/api/figma/connection-status`,{headers:{Authorization:`Bearer ${t}`}}).then(x=>x.json()).then(x=>{let M=!!x.connected;l(!!x.expired),u(M);try{sessionStorage.setItem("uicopilot_figma_connection",JSON.stringify({connected:M,ts:Date.now()}))}catch{}}).catch(()=>u(!1))},[t]);let f=VC(()=>{let S=K(),x=`${S}/api/auth/figma/login?addon=true`;window.open(x,"figma-oauth","width=600,height=700,left=200,top=100");let M=setInterval(async()=>{try{(await(await Q(`${S}/api/figma/connection-status`,{headers:t?{Authorization:`Bearer ${t}`}:{}})).json()).connected&&(clearInterval(M),u(!0))}catch{}},2e3);setTimeout(()=>clearInterval(M),300*1e3)},[t]),y=VC(async()=>{try{o(!0);let S=K(),x=await Q(`${S}/api/figma/disconnect`,{method:"POST",headers:{Authorization:`Bearer ${t}`}});if(x.ok||x.status===404){u(!1);try{sessionStorage.removeItem("uicopilot_figma_connection")}catch{}}}catch{}finally{o(!1)}},[t]),I=e?null:Nt.createElement(XH,null,Nt.createElement(JH,null,KH),Nt.createElement(QH,null,"Figma Integration"));return s===null?Nt.createElement(F1,null,I,Nt.createElement(P1,null,Nt.createElement("div",{style:{padding:"16px",fontSize:"13px",color:d.color.mediumdark}},"Checking Figma connection..."))):s===!1?Nt.createElement(F1,null,I,Nt.createElement(P1,null,Nt.createElement(ZH,null,c&&Nt.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:d.color.warning}},"\u26A0\uFE0F Your Figma access has expired. Please reconnect."),Nt.createElement("div",{style:{padding:"8px 10px",backgroundColor:"rgba(100, 116, 139, 0.1)",border:"1px solid rgba(100, 116, 139, 0.3)",borderRadius:"6px",fontSize:"11px",lineHeight:1.4,color:d.color.mediumdark}},"Requires a Figma ",Nt.createElement("strong",null,"Dev or Full seat"),". Free/Viewer seats can't grant design-read access."),!n&&Nt.createElement(Nt.Fragment,null,Nt.createElement(Qt,{onClick:f,style:{width:"100%"}},c?"Reconnect Figma":"Connect with Figma"),Nt.createElement(eU,null,"or")),Nt.createElement(jC,{onConnected:()=>u(!0),defaultExpanded:n})))):Nt.createElement(F1,null,I,Nt.createElement(vu,{connected:!0,label:"Connected to Figma",actionLabel:r?"Disconnecting\u2026":"Disconnect",actionDisabled:r,actionTitle:"Disconnect Figma",onAction:()=>g(!0)}),Nt.createElement(bo,{isOpen:p,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:()=>{g(!1),y()},onCancel:()=>g(!1)}),Nt.createElement(P1,null,Nt.createElement(B4,{onFigmaFileChanged:()=>a(S=>S+1)}),Nt.createElement(aC,{refreshKey:i}),Nt.createElement(OC,null)))};Se();pn();import{styled as tn}from"storybook/theming";var GC=tn.div({position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.4)",zIndex:1e3,display:"flex",justifyContent:"center",alignItems:"flex-start",paddingTop:"40px"}),qC=tn.div(({theme:e})=>({backgroundColor:e.background.content,borderRadius:"14px",border:`1px solid ${e.appBorderColor}`,boxShadow:"0 16px 48px rgba(0, 0, 0, 0.22)",width:"820px",maxWidth:"94%",maxHeight:"calc(100vh - 80px)",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative"})),YC=tn.header(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",height:"48px",padding:"0 16px",borderBottom:`1px solid ${e.appBorderColor}`,flexShrink:0})),KC=tn.div({display:"flex",alignItems:"center",gap:"8px"}),XC=tn.span(({theme:e})=>({fontSize:"14px",fontWeight:e.typography.weight.bold,letterSpacing:"-0.01em",color:e.color.defaultText})),JC=tn.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark})),QC=tn.button(({theme:e})=>({width:"28px",height:"28px",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:e.appBorderRadius,color:e.color.mediumdark,backgroundColor:"transparent",border:"none",cursor:"pointer",fontSize:"18px",lineHeight:1,transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable}})),ZC=tn.div({display:"flex",flex:1,minHeight:"440px",overflow:"hidden"}),e3=tn.nav(({theme:e})=>({width:"178px",flexShrink:0,backgroundColor:e.background.app,padding:"12px 8px",display:"flex",flexDirection:"column",gap:"2px"})),t3=tn.button(({theme:e,active:t})=>({position:"relative",width:"100%",display:"flex",alignItems:"center",gap:"10px",padding:"0 8px 0 12px",height:"32px",borderRadius:e.appBorderRadius,border:"none",cursor:"pointer",textAlign:"left",backgroundColor:t?e.background.hoverable:"transparent",color:t?e.color.defaultText:e.color.mediumdark,transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"& svg":{flexShrink:0}})),n3=tn.span({position:"absolute",left:0,top:"6px",bottom:"6px",width:"2px",borderRadius:"2px",backgroundColor:G}),r3=tn.span(({theme:e})=>({fontSize:"12px",fontWeight:e.typography.weight.bold,lineHeight:1})),o3=tn.div(({theme:e})=>({flex:1,overflowY:"auto",backgroundColor:e.background.content,borderLeft:`1px solid ${e.appBorderColor}`,padding:"20px"})),Ku=tn.header({display:"flex",alignItems:"center",gap:"10px",marginBottom:"16px"}),i3=tn.div({width:"28px",height:"28px",borderRadius:"7px",backgroundColor:G,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"10px",fontWeight:700,letterSpacing:"0.3px",flexShrink:0}),M1=tn.div(({theme:e})=>({width:"28px",height:"28px",borderRadius:"7px",backgroundColor:e.background.hoverable,border:`1px solid ${e.appBorderColor}`,color:e.color.mediumdark,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0})),Xu=tn.h3(({theme:e})=>({margin:0,fontSize:"13px",fontWeight:e.typography.weight.bold,color:e.color.defaultText,lineHeight:1.2})),Ju=tn.p(({theme:e})=>({margin:"3px 0 0",fontSize:"11px",color:e.color.mediumdark,lineHeight:1.2})),Qu=tn.div({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"}}),L1=tn.div(({theme:e})=>({padding:"16px",borderRadius:"10px",border:`1px dashed ${e.appBorderColor}`,backgroundColor:e.background.app,fontSize:"12px",color:e.color.mediumdark,lineHeight:1.5})),a3=tn.footer(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",height:"44px",padding:"0 16px",borderTop:`1px solid ${e.appBorderColor}`,flexShrink:0})),s3=tn.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark})),l3=tn.div({display:"flex",alignItems:"center",gap:"6px"}),c3=tn.button(({theme:e})=>({height:"28px",padding:"0 12px",fontSize:"11px",fontWeight:e.typography.weight.bold,fontFamily:e.typography.fonts.base,border:"none",borderRadius:e.appBorderRadius*2,background:"transparent",color:e.color.mediumdark,cursor:"pointer",transition:"all 0.15s","&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable}}));var u3=()=>Ne.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"},Ne.createElement("path",{d:"M4 4h5l2 3h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z"})),oU=[{id:"account",label:"Account",icon:us},{id:"project",label:"Project",icon:u3},{id:"figma",label:"Figma",icon:Fo}],d3=({onClose:e})=>{let{isConnected:t}=he(),{selectedProjectId:n}=Ke(),[r,o]=rU("account"),i=Zu(t),a=Zu(!t),s=Zu(!1),u=Zu(!1);nU(()=>{a.current&&!s.current&&!i.current&&t&&n&&(s.current=!0,e()),i.current=t},[t,n,e]);let c=()=>r==="account"?Ne.createElement(Ne.Fragment,null,Ne.createElement(Ku,null,Ne.createElement(i3,null,"UI"),Ne.createElement("div",null,Ne.createElement(Xu,null,jt.NAME," account"),Ne.createElement(Ju,null,"Deterministic Figma \u2194 code comparison"))),Ne.createElement(Qu,null,Ne.createElement(E4,{onConnect:e}))):r==="project"?Ne.createElement(Ne.Fragment,null,Ne.createElement(Ku,null,Ne.createElement(M1,null,Ne.createElement(u3,null)),Ne.createElement("div",null,Ne.createElement(Xu,null,"Project"),Ne.createElement(Ju,null,"The Storybook project being compared"))),t?Ne.createElement(Qu,null,Ne.createElement(P4,null)):Ne.createElement(L1,null,"Sign in on the ",Ne.createElement("strong",null,"Account")," tab first to choose a project.")):Ne.createElement(Ne.Fragment,null,Ne.createElement(Ku,null,Ne.createElement(M1,null,Ne.createElement(Fo,null)),Ne.createElement("div",null,Ne.createElement(Xu,null,"Figma integration"),Ne.createElement(Ju,null,"Source of truth for design tokens"))),t&&n?Ne.createElement(Qu,null,Ne.createElement(WC,{hideHeader:!0})):Ne.createElement(L1,null,t?"Select a project on the Project tab before connecting Figma.":"Sign in on the Account tab first, then pick a project to connect Figma."));return Ne.createElement(GC,{onMouseDown:l=>{u.current=l.target===l.currentTarget},onClick:l=>{u.current&&l.target===l.currentTarget&&e()}},Ne.createElement(qC,{onClick:l=>l.stopPropagation()},Ne.createElement(YC,null,Ne.createElement(KC,null,Ne.createElement(XC,null,"Settings"),Ne.createElement(JC,null,"v","0.9.1")),Ne.createElement(QC,{onClick:e,title:"Close settings","aria-label":"Close"},"\xD7")),Ne.createElement(ZC,null,Ne.createElement(e3,null,oU.map(l=>{let p=l.icon,g=r===l.id;return Ne.createElement(t3,{key:l.id,active:g,onClick:()=>o(l.id)},g&&Ne.createElement(n3,null),Ne.createElement(p,null),Ne.createElement(r3,null,l.label))})),Ne.createElement(o3,null,c())),Ne.createElement(a3,null,Ne.createElement(s3,null,jt.NAME," \xB7 settings synced"),Ne.createElement(l3,null,Ne.createElement(c3,{onClick:e},"Cancel"),Ne.createElement(Qt,{onClick:e},"Done")))))};Se();pn();import Wt from"react";import so from"react";import{styled as mn,keyframes as iU}from"storybook/theming";var mi=mn.div({marginTop:"10px",padding:"12px",borderRadius:"8px",border:`1px solid ${Z.border}`,background:Z.formBg,display:"flex",flexDirection:"column",gap:"10px"}),p3=mn.button({display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",padding:"9px",borderRadius:"8px",border:`1px solid ${Z.border}`,background:Z.card,color:Z.text,fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{background:Z.formBg}}),yl=mn.div({fontSize:"11px",color:Z.muted,textAlign:"center"}),g3=mn.div({display:"flex",alignItems:"center",gap:"8px","&::before, &::after":{content:'""',flex:1,height:"1px",background:Z.border},fontSize:"11px",color:Z.muted}),f3=mn.button({width:"100%",padding:"9px",borderRadius:"6px",border:`1px dashed ${G}`,background:Z.card,color:G,fontSize:"12px",fontWeight:600,cursor:"pointer","&:hover":{background:Z.accentTint},"&:disabled":{opacity:.6,cursor:"default"}}),hi=mn.label({fontSize:"11px",fontWeight:600,color:Z.subText,display:"block",marginBottom:"4px"}),Wi=mn.input({width:"100%",padding:"7px 10px",fontSize:"12px",borderRadius:"6px",border:`1px solid ${Z.border}`,background:Z.card,color:Z.text,outline:"none","&:focus":{borderColor:G},"&:disabled":{background:Z.formBg,color:Z.muted}}),m3=mn.select({width:"100%",padding:"7px 10px",fontSize:"12px",borderRadius:"6px",border:`1px solid ${Z.border}`,background:Z.card,color:Z.text}),ao=mn.button(({disabled:e})=>({width:"100%",padding:"8px",borderRadius:"6px",border:"none",fontSize:"12px",fontWeight:600,color:Z.card,cursor:e?"not-allowed":"pointer",background:G,opacity:e?.5:1,"&:hover":e?{}:{background:Xo}})),B1=mn.div({marginTop:"10px",fontSize:"11px",lineHeight:1.4,padding:"8px 10px",borderRadius:"6px",background:Z.calloutBg,color:Z.calloutText}),h3=mn.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px"}),x3=mn.div({display:"flex",flexDirection:"column",gap:"8px",padding:"10px",borderRadius:"6px",border:`1px solid ${Z.border}`,background:Z.card}),y3=mn.div({display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"11px",color:Z.subText}),b3=mn.span({fontVariantNumeric:"tabular-nums",color:Z.muted}),w3=mn.div({height:"4px",width:"100%",borderRadius:"999px",background:Z.track,overflow:"hidden"}),v3=mn.div(({pct:e})=>({height:"100%",width:`${Math.min(100,Math.max(0,e))}%`,borderRadius:"999px",background:G,transition:"width 0.3s ease"})),aU=iU`
|
|
92
92
|
0% { transform: translateX(-120%); }
|
|
93
93
|
100% { transform: translateX(520%); }
|
|
94
94
|
`,S3=mn.div({height:"100%",width:"20%",borderRadius:"999px",background:G,animation:`${aU} 1.1s ease-in-out infinite`}),k3=mn.span({fontVariantNumeric:"tabular-nums",color:Z.muted}),C3=mn.div({fontSize:"11px",color:Z.muted}),I3=mn.div({fontSize:"11px",fontStyle:"italic",color:Z.muted}),Gi=mn.div({fontSize:"11px",lineHeight:1.4,color:Ye.redText});var sU=so.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24","aria-hidden":"true"},so.createElement("path",{fill:"#4285F4",d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.75h3.57c2.08-1.92 3.28-4.74 3.28-8.07z"}),so.createElement("path",{fill:"#34A853",d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.75c-.99.66-2.25 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"}),so.createElement("path",{fill:"#FBBC05",d:"M5.84 14.12A6.6 6.6 0 0 1 5.49 12c0-.74.13-1.46.35-2.12V7.04H2.18A11 11 0 0 0 1 12c0 1.78.43 3.45 1.18 4.96l3.66-2.84z"}),so.createElement("path",{fill:"#EA4335",d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.04l3.66 2.84C6.71 7.31 9.14 5.38 12 5.38z"})),T3=()=>{let{startOAuth:e,oauthPending:t,startAnonymous:n,anonPending:r}=no(),o=t||r;return so.createElement(mi,null,so.createElement(p3,{onClick:e,disabled:o},sU," ",t?"Opening sign-in\u2026":"Continue with Google"),so.createElement(yl,null,"New or returning \u2014 we'll take you to the right place."),so.createElement(g3,null,"or"),so.createElement(f3,{onClick:n,disabled:o},r?"Starting\u2026":"Try without signing in \u2192"),so.createElement(yl,null,"Explore with your own Figma file \u2014 no sign-up needed. Sign up later to save your work."))};Se();import Bn,{useEffect as lU,useState as td}from"react";import{styled as ln}from"storybook/theming";var E3='Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif',R3=ln.div({width:"100%",maxWidth:"520px",margin:"24px auto",background:Z.card,border:`1px solid ${Z.border}`,borderRadius:"14px",boxShadow:"0 4px 16px rgba(0,0,0,0.06)",padding:"20px",fontFamily:E3,color:Z.text}),A3=ln.div({display:"flex",alignItems:"center",gap:"10px"}),F3=ln.div({width:"28px",height:"28px",borderRadius:"7px",background:G,color:Z.card,display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:700,flexShrink:0}),P3=ln.h3({margin:0,flex:1,fontSize:"16px",fontWeight:600,color:Z.text}),M3=ln.span({fontSize:"12px",fontWeight:600,color:Z.muted,background:Z.track,borderRadius:"999px",padding:"3px 10px",whiteSpace:"nowrap"}),L3=ln.div({height:"4px",borderRadius:"999px",background:Z.track,margin:"12px 0 4px",overflow:"hidden"}),B3=ln.div(({pct:e})=>({height:"100%",width:`${e}%`,background:G,transition:"width 0.3s ease"})),z3=ln.div(({current:e})=>({display:"flex",alignItems:"flex-start",gap:"12px",padding:"16px 6px 16px 12px",borderTop:`1px solid ${Z.border}`,borderLeft:e?`3px solid ${G}`:"3px solid transparent"})),D3=ln.div(({state:e})=>({width:"22px",height:"22px",borderRadius:"50%",flexShrink:0,marginTop:"1px",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:700,...e==="complete"?{background:Z.green,color:Z.card,border:"none"}:e==="current"?{background:Z.card,color:G,border:`2px solid ${G}`}:{background:Z.card,color:Z.locked,border:`1px solid ${Z.border}`}})),N3=ln.div({flex:1,minWidth:0}),_3=ln.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"}),O3=ln.div(({locked:e})=>({fontSize:"14px",fontWeight:600,color:e?Z.locked:Z.text})),$3=ln.div({fontSize:"12px",color:Z.muted,marginTop:"2px",lineHeight:1.4}),H3=ln.span({fontSize:"12px",color:Z.muted,flexShrink:0}),U3=ln.button({flexShrink:0,fontSize:"12px",fontWeight:600,padding:"6px 12px",borderRadius:"6px",border:"none",cursor:"not-allowed",background:Z.lockedBtnBg,color:Z.locked}),j3=ln.div({textAlign:"center",padding:"20px 0 6px",borderTop:`1px solid ${Z.border}`,marginTop:"8px"}),V3=ln.div({width:"40px",height:"40px",borderRadius:"50%",background:Z.green,color:Z.card,display:"flex",alignItems:"center",justifyContent:"center",fontSize:"20px",margin:"0 auto 10px"}),W3=ln.div({fontSize:"16px",fontWeight:600,color:Z.text,marginBottom:"14px"}),G3=ln.button({background:G,color:Z.card,border:"none",borderRadius:"8px",padding:"10px 20px",fontSize:"13px",fontWeight:600,cursor:"pointer","&:hover":{background:Xo}}),q3=ln.div({fontSize:"11px",color:Z.muted,marginTop:"12px"}),Y3=ln.div({borderTop:`1px solid ${Z.border}`,marginTop:"4px",paddingTop:"14px",textAlign:"center"}),ed=ln.button({background:"none",border:"none",fontSize:"12px",fontWeight:500,color:Z.muted,cursor:"pointer",fontFamily:E3,"&:hover":{color:Z.text}});var K3=e=>(e||"").replace(/\/+$/,"").split("/").pop()||"",X3=()=>{let{projects:e,selectedProjectId:t,setSelectedProjectId:n,currentStorybookPath:r}=Ke(),{createProject:o}=Ir(),i=Nh(e,t,r),[a,s]=td(i.length>0?"select":"create"),[u,c]=td(()=>K3(r)),[l,p]=td(r||""),[g,d]=td(!1);lU(()=>{r&&(p(y=>y||r),c(y=>y||K3(r)))},[r]);let f=async()=>{if(!(!u.trim()||g))try{d(!0);let y=await o({name:u.trim(),storybookRoot:l.trim()||void 0});n(y.id)}finally{d(!1)}};return a==="select"&&i.length>0?Bn.createElement(mi,null,Bn.createElement("div",null,Bn.createElement(hi,null,"Project"),Bn.createElement(m3,{value:t||"",onChange:y=>y.target.value==="__new"?s("create"):n(y.target.value||null)},Bn.createElement("option",{value:""},"Select a project\u2026"),i.map(y=>Bn.createElement("option",{key:y.id,value:y.id},y.name)),Bn.createElement("option",{value:"__new"},"+ Create new project"))),Bn.createElement(ao,{disabled:!t,onClick:()=>{}},"Use this project")):Bn.createElement(mi,null,Bn.createElement(h3,null,Bn.createElement("div",null,Bn.createElement(hi,null,"Name"),Bn.createElement(Wi,{value:u,onChange:y=>c(y.target.value),placeholder:"my-storybook"})),Bn.createElement("div",null,Bn.createElement(hi,null,"Storybook path"),Bn.createElement(Wi,{value:l,onChange:y=>p(y.target.value),placeholder:".storybook"}))),i.length>0&&Bn.createElement(ed,{onClick:()=>s("select")},"\u2190 Use an existing project"),Bn.createElement(ao,{disabled:!u.trim()||g,onClick:f},g?"Creating\u2026":"Create project"))};Se();import Vt,{useEffect as l6,useState as rd}from"react";Se();De();ut();Ue();import{useCallback as Ga,useEffect as cU,useRef as z1,useState as uU}from"react";var nd=K(),J3=3e3,dU=3,pU=12e4,Q3={status:"idle",pagesDone:0,pagesTotal:0,componentSets:0,componentCount:0,needsFigmaAuth:!1,fileForbidden:!1};function Z3(){let{sessionToken:e}=he(),[t,n]=uU(Q3),r=z1(null),o=z1(null),i=z1({lastDone:-1,stalls:0}),a=Ga(()=>{o.current&&(clearInterval(o.current),o.current=null)},[]),s=Ga(g=>{let d=g?.crawlProgress;if(!d)return"none";let f=g.thumbnailProgress?.total??g.enrichmentProgress?.total??0,y=g.componentCount??0;if(d.status==="complete")return n({status:"complete",pagesDone:d.pagesTotal||d.pagesDone||0,pagesTotal:d.pagesTotal||d.pagesDone||0,componentSets:f,componentCount:y}),"stop";if(d.status==="error")return n(S=>({...S,status:"error",error:d.error||"Figma sync failed."})),"stop";let I=d.status==="paused";if(!I&&d.updatedAt){let S=Date.now()-Date.parse(d.updatedAt);if(Number.isFinite(S)&&S>pU)return n(x=>({...x,status:"error",error:"Figma indexing stalled \u2014 the file may be too large to index in one pass. Reload to retry, or try a smaller file."})),"stop"}return n({status:"crawling",pagesDone:d.pagesDone??0,pagesTotal:d.pagesTotal??0,componentSets:f,componentCount:y}),I?"paused":"active"},[]),u=Ga(g=>{let d=r.current;if(!d||!e)return;let f=i.current;if(g>f.lastDone)f.lastDone=g,f.stalls=0;else if(++f.stalls>dU){n(y=>({...y,status:"error",error:"Figma indexing stalled \u2014 reload to retry."})),a();return}Q(`${nd}/api/figma/crawl`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({projectId:d})}).catch(()=>{})},[e,a]),c=Ga(async()=>{let g=r.current;if(!(!g||!e))try{let d=await Q(`${nd}/api/figma/cache-status?projectId=${g}`,{headers:{Authorization:`Bearer ${e}`}});if(!d.ok)return;let f=await d.json(),y=s(f);y==="stop"?a():y==="paused"&&u(f?.crawlProgress?.pagesDone??0)}catch(d){w.debug("[useFigmaSync] poll error (will retry):",d)}},[e,a,s,u]),l=Ga(async(g,d)=>{if(e){r.current=g,i.current={lastDone:-1,stalls:0},n({...Q3,status:"starting"});try{let f=await Q(`${nd}/api/figma/crawl`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(d?.length?{projectId:g,pageIds:d}:{projectId:g})});if(!f.ok&&f.status!==202){let y=!1,I=!1,S="Couldn't start the Figma sync. Check your connection.";try{let x=await f.json();x?.requiresAuth?(y=!0,S="Your Figma connection expired. Reconnect Figma to sync."):x?.fileForbidden?(I=!0,S=x.error||"You don't have access to this Figma file."):x?.error&&(S=x.error)}catch{}w.error("[useFigmaSync] crawl rejected:",f.status,S),n(x=>({...x,status:"error",error:S,needsFigmaAuth:y,fileForbidden:I}));return}}catch(f){w.error("[useFigmaSync] failed to start crawl:",f),n(y=>({...y,status:"error",error:"Couldn't start the Figma sync. Check your connection."}));return}a(),o.current=setInterval(c,J3),c()}},[e,c,a]),p=Ga(async g=>{if(!(!e||!g)){r.current=g;try{let d=await Q(`${nd}/api/figma/cache-status?projectId=${g}`,{headers:{Authorization:`Bearer ${e}`}});if(!d.ok)return;let f=await d.json(),y=s(f);(y==="active"||y==="paused")&&(a(),o.current=setInterval(c,J3),y==="paused"&&u(f?.crawlProgress?.pagesDone??0))}catch(d){w.debug("[useFigmaSync] resume error (ignored):",d)}}},[e,c,a,s,u]);return cU(()=>a,[a]),{...t,startSync:l,resume:p,isComplete:t.status==="complete"}}De();ut();import{useCallback as e6,useState as bl}from"react";var gU=K(),D1="uicopilot_guest_pat_saved";function t6(e){let[t,n]=bl(""),[r,o]=bl(!1),[i,a]=bl(!1),[s,u]=bl(null),[c,l]=bl(()=>typeof localStorage<"u"&&!!e&&localStorage.getItem(D1)===e),p=e6(d=>{l(d),!(typeof localStorage>"u")&&(d&&e?localStorage.setItem(D1,e):localStorage.removeItem(D1))},[e]),g=e6(async()=>{let d=t.trim();if(!d)return!1;let f=_h(d);if(f)return u(Oh(f)),!1;a(!0),u(null);try{let y=await Q(`${gU}/api/figma/pat`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({token:d})}),I=await y.json().catch(()=>({}));if(!y.ok||!I.success)throw new Error(I.error||"Invalid Figma token.");return p(!0),!0}catch(y){return u(y instanceof Error?y.message:"Couldn't save the Figma token."),!1}finally{a(!1)}},[t,e,p]);return{pat:t,setPat:n,showPat:r,setShowPat:o,patBusy:i,patError:s,patInputError:Oh(_h(t)),patSaved:c,setPatSaved:p,savePat:g}}import qa from"react";import{styled as N1}from"storybook/theming";var fU=N1.div({marginTop:"10px",border:`1px solid ${Z.border}`,borderRadius:"8px",background:Z.card,padding:"14px 12px",display:"flex",flexDirection:"column",gap:"8px"}),mU=N1.div({fontSize:"12px",fontWeight:700,color:Z.text}),hU=N1.div({fontSize:"11px",lineHeight:1.5,color:Z.muted}),n6=({published:e,onChoosePages:t})=>qa.createElement(fU,null,qa.createElement(mU,null,"No indexable components on the pages you picked"),qa.createElement(hU,null,"Only ",qa.createElement("strong",null,"component sets")," and"," ",qa.createElement("strong",null,"standalone components")," are indexed \u2014 not plain frames or example screens."," ",e?"Pick the pages that showed a component count.":"This file has no published components, so we couldn't tell which pages hold them \u2014 try selecting the pages with your component library."),qa.createElement(ao,{onClick:t},"Choose different pages"));import jo from"react";import{styled as i6}from"storybook/theming";import*as ko from"react";var r6=ko.forwardRef(({color:e="currentColor",size:t=14,...n},r)=>ko.createElement("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:r,...n},ko.createElement("path",{d:"M7 9.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z",fill:e}),ko.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14 7l-.21.293C13.669 7.465 10.739 11.5 7 11.5S.332 7.465.21 7.293L0 7l.21-.293C.331 6.536 3.261 2.5 7 2.5s6.668 4.036 6.79 4.207L14 7zM2.896 5.302A12.725 12.725 0 001.245 7c.296.37.874 1.04 1.65 1.698C4.043 9.67 5.482 10.5 7 10.5c1.518 0 2.958-.83 4.104-1.802A12.72 12.72 0 0012.755 7c-.297-.37-.875-1.04-1.65-1.698C9.957 4.33 8.517 3.5 7 3.5c-1.519 0-2.958.83-4.104 1.802z",fill:e}))),o6=ko.forwardRef(({color:e="currentColor",size:t=14,...n},r)=>ko.createElement("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:r,...n},ko.createElement("path",{d:"M1.854 1.146a.5.5 0 10-.708.708l11 11a.5.5 0 00.708-.708l-11-11zM11.104 8.698c-.177.15-.362.298-.553.439l.714.714a13.25 13.25 0 002.526-2.558L14 7l-.21-.293C13.669 6.536 10.739 2.5 7 2.5c-.89 0-1.735.229-2.506.58l.764.763A4.859 4.859 0 017 3.5c1.518 0 2.958.83 4.104 1.802A12.724 12.724 0 0112.755 7a12.72 12.72 0 01-1.65 1.698zM.21 6.707c.069-.096 1.03-1.42 2.525-2.558l.714.714c-.191.141-.376.288-.553.439A12.725 12.725 0 001.245 7c.296.37.874 1.04 1.65 1.698C4.043 9.67 5.482 10.5 7 10.5a4.86 4.86 0 001.742-.344l.764.764c-.772.351-1.616.58-2.506.58C3.262 11.5.332 7.465.21 7.293L0 7l.21-.293z",fill:e}),ko.createElement("path",{d:"M4.5 7c0-.322.061-.63.172-.914l3.242 3.242A2.5 2.5 0 014.5 7zM9.328 7.914L6.086 4.672a2.5 2.5 0 013.241 3.241z",fill:e})));var xU=i6.div({position:"relative"}),yU=i6.button(({theme:e})=>({position:"absolute",right:6,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",padding:4,cursor:"pointer",color:e.color.mediumdark,"&:hover":{color:e.color.defaultText}})),a6=({pat:e,setPat:t,showPat:n,setShowPat:r,error:o,disabled:i=!1,onSubmit:a})=>jo.createElement("div",null,jo.createElement(hi,null,"Figma personal access token"),jo.createElement(xU,null,jo.createElement(Wi,{type:n?"text":"password",value:e,onChange:s=>t(s.target.value),onKeyDown:s=>{s.key==="Enter"&&e.trim()&&!i&&a?.()},placeholder:"figd_\u2026",disabled:i,style:{paddingRight:32}}),jo.createElement(yU,{type:"button",onClick:()=>r(s=>!s),"aria-label":n?"Hide token":"Show token",title:n?"Hide token":"Show token"},n?jo.createElement(o6,null):jo.createElement(r6,null))),o&&jo.createElement(Gi,null,"\u26A0 ",o),jo.createElement(yl,null,"Used only to fetch your frames \u2014 it isn't stored anywhere."));import Hr,{useEffect as bU,useState as wU}from"react";var vU=15,SU=e=>`${Math.floor(e/60)}:${String(e%60).padStart(2,"0")}`,s6=({complete:e,pagesDone:t,pagesTotal:n,componentSets:r})=>{let[o,i]=wU(0);bU(()=>{if(e)return;let u=setInterval(()=>i(c=>c+1),1e3);return()=>clearInterval(u)},[e]);let a=n>1,s=a?t/n*100:0;return Hr.createElement(x3,null,Hr.createElement(y3,null,Hr.createElement("span",null,e?"Indexed your Figma components \u2713":"Reading your Figma components\u2026"),!e&&Hr.createElement(b3,null,a&&Hr.createElement("span",null,`${t} / ${n}`),a&&Hr.createElement("span",{"aria-hidden":!0}," \xB7 "),Hr.createElement(k3,null,SU(o)))),Hr.createElement(w3,null,e||a?Hr.createElement(v3,{pct:e?100:s}):Hr.createElement(S3,null)),r>0&&Hr.createElement(C3,null,r," component sets"),!e&&o>=vU&&Hr.createElement(I3,null,"Large component sets can take a minute to index\u2026"))};var c6=({figmaExpired:e=!1})=>{let{selectedProjectId:t}=Ke(),{updateProject:n,fetchProjects:r,selectedProject:o}=Ir(),{startOAuth:i,oauthPending:a,isAnonymous:s,sessionToken:u}=no(),c=t6(u),{patSaved:l,setPatSaved:p,savePat:g}=c,d=Z3(),{resume:f}=d,[y,I]=rd(()=>o?.figmaFileId??""),[S,x]=rd(!1),[M,z]=rd(!1),[O,L]=rd(!1),N=M&&(d.status==="idle"||O),m=$u(t,N),v=A=>{I(A),M&&(z(!1),L(!1))},k=A=>{t&&(Hu(t,A),L(!1),d.startSync(t,A))},E=()=>{L(!0),m.reload()};l6(()=>{t&&f(t)},[t,f]),l6(()=>{d.isComplete&&r()},[d.isComplete,r]);let h=async()=>{if(!(!y.trim()||!t||S)&&!ci(al(y)))try{if(x(!0),s&&!l&&!await g())return;await n(t,{figmaFileUrl:y.trim()}),L(!1),z(!0)}finally{x(!1)}},b=al(y);if(e&&d.status==="idle")return Vt.createElement(Vt.Fragment,null,Vt.createElement(B1,null,"\u26A0 Requires a Figma Dev or Full seat \u2014 free/Viewer seats can't grant design-read access."),Vt.createElement(mi,null,Vt.createElement(Gi,null,"Your Figma connection expired. Reconnect to finish setup and run reviews."),Vt.createElement(ao,{disabled:a,onClick:i},a?"Opening Figma sign-in\u2026":"Reconnect Figma")));let F=s&&!l,C=F&&(!c.pat.trim()||!!c.patInputError);return Vt.createElement(Vt.Fragment,null,Vt.createElement(B1,null,"\u26A0 Requires a Figma Dev or Full seat \u2014 free/Viewer seats can't grant design-read access."),Vt.createElement(mi,null,Vt.createElement("div",null,Vt.createElement(hi,null,"Figma file URL"),Vt.createElement(Wi,{value:y,onChange:A=>v(A.target.value),onKeyDown:A=>{A.key==="Enter"&&y.trim()&&!S&&!ci(b)&&h()},placeholder:"https://figma.com/file/...",disabled:d.status!=="idle"&&d.status!=="error"})),F&&Vt.createElement(a6,{pat:c.pat,setPat:c.setPat,showPat:c.showPat,setShowPat:c.setShowPat,error:c.patError||c.patInputError,disabled:S,onSubmit:()=>{!ci(b)&&!C&&h()}}),d.status==="error"?Vt.createElement(Vt.Fragment,null,Vt.createElement(Gi,null,"\u26A0 ",d.error||"Figma sync failed."),b&&Vt.createElement(Gi,null,"\u26A0 ",sl(b)),d.needsFigmaAuth?s?Vt.createElement(ao,{onClick:()=>p(!1)},"Re-enter Figma token"):Vt.createElement(ao,{disabled:a,onClick:i},a?"Opening Figma sign-in\u2026":"Reconnect Figma"):Vt.createElement(ao,{disabled:!y.trim()||S||ci(b)||C,onClick:h},S?"Connecting\u2026":"Try again")):N?Vt.createElement(Wu,{pages:m.pages,published:m.published,loading:m.loading,error:m.error,busy:S,initialSelection:t?Ha(t):void 0,emptyHint:"Select at least one page to import.",onReload:m.reload,onCancel:()=>{z(!1),L(!1)},onImport:k}):d.status==="complete"&&d.componentCount===0?Vt.createElement(n6,{published:m.published,onChoosePages:E}):d.status==="idle"?Vt.createElement(Vt.Fragment,null,b&&Vt.createElement(Gi,null,"\u26A0 ",sl(b)),Vt.createElement(ao,{disabled:!y.trim()||S||ci(b)||C,onClick:h},S?"Connecting\u2026":"Choose pages to import")):Vt.createElement(s6,{complete:d.status==="complete",pagesDone:d.pagesDone,pagesTotal:d.pagesTotal,componentSets:d.componentSets})))};var kU=["Sign in with Google \u2014 one click, no password.","Pick an existing project or create a new one.","Connect Figma and we'll index your components."],u6=[null,"Set up project","Connect Figma"],d6=({onSkip:e,canSkip:t=!1,figmaExpired:n=!1})=>{let{isConnected:r,sessionToken:o}=he(),{projects:i,selectedProjectId:a}=Ke(),s=!!o&&o.startsWith("uic_anon_"),u=i.find(S=>S.id===a),c=r,l=c&&!!a,p=!!u?.figmaFileId&&!!u?.figmaFramesCacheUrl,d=[{title:s?"Trying without an account":"Connect your account",done:c},{title:"Set up your project",done:l},{title:"Connect Figma & sync",done:l&&p&&!n}],f=d.filter(S=>S.done).length,y=f===d.length,I=d.findIndex(S=>!S.done);return Wt.createElement(R3,null,Wt.createElement(A3,null,Wt.createElement(F3,null,"UI"),Wt.createElement(P3,null,"Get started with ",jt.NAME),Wt.createElement(M3,null,"Setup \xB7 ",f," of ",d.length)),Wt.createElement(L3,null,Wt.createElement(B3,{pct:f/d.length*100})),y?Wt.createElement(j3,null,Wt.createElement(V3,null,"\u2713"),Wt.createElement(W3,null,"You're all set."),Wt.createElement(G3,{onClick:e},"Go to your stories \u2192"),Wt.createElement(q3,null,"\u2728 AI review coming soon.")):Wt.createElement(Wt.Fragment,null,d.map((S,x)=>{let M=S.done?"complete":x===I?"current":"locked",z=M==="current";return Wt.createElement(z3,{key:S.title,current:z},Wt.createElement(D3,{state:M},M==="complete"?"\u2713":x+1),Wt.createElement(N3,null,Wt.createElement(_3,null,Wt.createElement("div",null,Wt.createElement(O3,{locked:M==="locked"},S.title),M!=="complete"&&Wt.createElement($3,null,kU[x])),M==="complete"?Wt.createElement(H3,null,x===0&&s?"Guest":"Done"):M==="locked"&&u6[x]&&Wt.createElement(U3,{disabled:!0},u6[x])),z&&x===0&&Wt.createElement(T3,null),z&&x===1&&Wt.createElement(X3,null),z&&x===2&&Wt.createElement(c6,{figmaExpired:n})))}),t&&Wt.createElement(Y3,null,Wt.createElement(ed,{onClick:e},"Already set up? Skip to the review panel \u2192"))))};import Ce,{useEffect as K1,useMemo as Ij,useState as X1,useRef as Tj}from"react";import{styled as hn,keyframes as Ej}from"storybook/theming";Se();pn();pn();function _1(e){let t=e.complianceScore??0;if(!e.issues||e.issues.length===0)return{score:t,band:e.issues?"A":void 0};let n=Yc(e.issues.map(r=>({...r,dismissed:r.dismissed??!1})));return{score:Math.min(t,$s[n]),band:n}}Se();import zn,{useState as CU}from"react";import{styled as xr}from"storybook/theming";var Vo=[{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",provider:"anthropic",description:"Current default \u2014 latest Sonnet, best balance of speed and quality"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Previous 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 IU=xr.div(({theme:e})=>({display:"inline-flex",alignItems:"center",flexWrap:"wrap",gap:`${e.layoutMargin*.6}px`})),TU=xr.span(({theme:e,disabled:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",height:"18px",padding:"0 2px 0 6px",backgroundColor:e.background.content,color:e.color.defaultText,fontSize:"10.5px",fontWeight:500,borderRadius:"3px",border:`1px solid ${e.appBorderColor}`,opacity:t?.6:1,whiteSpace:"nowrap"})),EU=xr.span({width:"4px",height:"4px",borderRadius:"50%",backgroundColor:Ye.green,flexShrink:0}),RU=xr.button(({theme:e})=>({width:"12px",height:"12px",display:"inline-flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",borderRadius:"2px",color:e.color.mediumdark,fontSize:"11px",lineHeight:1,cursor:"pointer",padding:0,"&:hover":{color:e.color.defaultText,backgroundColor:e.background.hoverable},"&:disabled":{cursor:"not-allowed",opacity:.5}})),AU=xr.div({position:"relative",display:"inline-block"}),FU=xr.button(({theme:e,disabled:t})=>({display:"inline-flex",alignItems:"center",gap:"2px",height:"18px",padding:"0 6px",background:"none",border:`1px dashed ${e.appBorderColor}`,borderRadius:"3px",color:e.color.mediumdark,fontSize:"10.5px",fontWeight:500,cursor:t?"not-allowed":"pointer",opacity:t?.5:1,whiteSpace:"nowrap",transition:"color 0.15s, border-color 0.15s","&:hover":{color:t?e.color.mediumdark:e.color.defaultText,borderColor:t?e.appBorderColor:e.color.mediumdark}})),PU=xr.div(({theme:e})=>({position:"absolute",top:"100%",left:0,marginTop:"4px",width:"240px",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"})),O1=xr.div(({theme:e})=>({borderBottom:`1px solid ${e.appBorderColor}`,"&:last-child":{borderBottom:"none"}})),$1=xr.div(({theme:e})=>({padding:"8px 12px",fontSize:"10px",fontWeight:600,color:e.textMutedColor,textTransform:"uppercase",letterSpacing:"0.5px",backgroundColor:e.background.app})),MU=xr.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}})),LU=xr.input({cursor:"pointer",flexShrink:0,"&:disabled":{cursor:"not-allowed"}}),BU=xr.div({flex:1,minWidth:0}),zU=xr.div({fontSize:"12px",fontWeight:500,marginBottom:"2px"}),DU=xr.div(({theme:e})=>({fontSize:"10px",color:e.textMutedColor,lineHeight:"1.2"})),NU=5,p6=()=>{let{selectedModels:e,toggleModel:t,isReviewing:n}=ue(),[r,o]=CU(!1),i=Vo.filter(d=>d.provider==="anthropic"&&!e.includes(d.id)),a=Vo.filter(d=>d.provider==="openai"&&!e.includes(d.id)),s=Vo.filter(d=>d.provider==="google"&&!e.includes(d.id)),u=Vo.filter(d=>e.includes(d.id)),c=e.length<NU,l=(d,f)=>{f.stopPropagation(),e.length>1&&!n&&t(d)},p=d=>{let f=e.includes(d);f&&e.length===1||!f&&!c||n||(t(d),o(!1))},g=d=>{let f=e.includes(d.id),y=f&&e.length===1,I=n||y||!f&&!c;return zn.createElement(MU,{key:d.id,disabled:I,onClick:()=>p(d.id)},zn.createElement(LU,{type:"checkbox",checked:f,disabled:I,onChange:()=>{},onClick:S=>S.stopPropagation()}),zn.createElement(BU,null,zn.createElement(zU,null,d.name),d.description&&zn.createElement(DU,null,d.description)))};return zn.createElement(IU,null,u.map(d=>zn.createElement(TU,{key:d.id,disabled:n},zn.createElement(EU,null),d.name,e.length>1&&zn.createElement(RU,{disabled:n,onClick:f=>l(d.id,f),title:"Remove model"},"\xD7"))),c&&zn.createElement(AU,null,zn.createElement(FU,{disabled:n,onClick:()=>o(!r),title:"Add a model"},"+ Add"),r&&zn.createElement(PU,null,i.length>0&&zn.createElement(O1,null,zn.createElement($1,null,"Anthropic"),i.map(g)),a.length>0&&zn.createElement(O1,null,zn.createElement($1,null,"OpenAI"),a.map(g)),s.length>0&&zn.createElement(O1,null,zn.createElement($1,null,"Google"),s.map(g)))))};import Ur,{useState as H1,useEffect as jU,useCallback as VU}from"react";import{styled as xi}from"storybook/theming";import od,{useState as _U,useCallback as g6}from"react";import{styled as id}from"storybook/theming";var OU=id.span({position:"relative",display:"inline-flex"}),$U=id.div(({theme:e,side:t,align:n,visible:r})=>({position:"absolute",...t==="top"?{bottom:"calc(100% + 6px)"}:{top:"calc(100% + 6px)"},...n==="center"?{left:"50%",transform:"translateX(-50%)"}:n==="end"?{right:0}:{left:0},zIndex:2e3,width:"max-content",maxWidth:"240px",padding:`${e.layoutMargin*.6}px ${e.layoutMargin}px`,borderRadius:e.appBorderRadius*2,backgroundColor:e.background.content,color:e.color.defaultText,border:`1px solid ${e.appBorderColor}`,boxShadow:e.base==="dark"?"0 6px 20px rgba(0, 0, 0, 0.5)":"0 6px 20px rgba(0, 0, 0, 0.15)",fontSize:"11px",lineHeight:1.5,textAlign:"left",whiteSpace:"normal",pointerEvents:"none",opacity:r?1:0,visibility:r?"visible":"hidden",transition:"opacity 0.12s ease"})),HU=id.div(({theme:e})=>({fontWeight:e.typography.weight.bold,marginBottom:"2px",color:e.color.defaultText})),UU=id.div(({theme:e})=>({color:e.color.mediumdark})),Co=({text:e,title:t,side:n="top",align:r="center",children:o,className:i})=>{let[a,s]=_U(!1),u=g6(()=>s(!0),[]),c=g6(()=>s(!1),[]);return od.createElement(OU,{className:i,onMouseEnter:u,onMouseLeave:c,onFocus:u,onBlur:c},o,od.createElement($U,{side:n,align:r,visible:a,role:"tooltip"},t&&od.createElement(HU,null,t),od.createElement(UU,null,e)))};Se();De();ut();var WU=xi.div(({theme:e})=>({display:"flex",alignItems:"center",flexWrap:"wrap",gap:"10px",padding:`${e.layoutMargin*.7}px ${e.layoutMargin*1.2}px`,backgroundColor:e.background.content,borderBottom:`1px solid ${e.appBorderColor}`})),GU=xi.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"6px",height:"26px",padding:"0 10px 0 5px",borderRadius:"999px",border:`1px solid ${Ri.pillBorder}`,background:`linear-gradient(90deg, ${Ri.pillBg} 0%, ${e.background.content} 60%)`,boxShadow:"0 1px 2px rgba(0,0,0,0.06)",cursor:"help",userSelect:"none"})),qU=xi.span({width:"20px",height:"20px",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",color:"#fff",background:`linear-gradient(135deg, ${Ri.iconFrom} 0%, ${Ri.iconTo} 100%)`,"& svg":{width:"12px",height:"12px"}}),YU=xi.span(({theme:e})=>({fontSize:"11px",fontWeight:e.typography.weight.bold,color:e.color.defaultText,lineHeight:1})),KU=xi.span({display:"inline-flex",alignItems:"center",height:"16px",padding:"0 6px",borderRadius:"3px",backgroundColor:Ri.badgeBg,color:Ri.badgeText,fontSize:"9px",fontWeight:700,textTransform:"uppercase",letterSpacing:"0.06em"}),XU=xi.button(({theme:e,active:t})=>({display:"inline-flex",alignItems:"center",gap:"6px",height:"26px",padding:"0 10px",borderRadius:"999px",fontSize:"11px",fontWeight:e.typography.weight.bold,cursor:"pointer",transition:"all 0.15s",border:`1px solid ${t?G:e.appBorderColor}`,backgroundColor:t?G:e.background.content,color:t?"#fff":e.color.mediumdark,boxShadow:t?"0 1px 2px rgba(0,0,0,0.08)":"none","& svg":{width:"12px",height:"12px"},"&:hover":{borderColor:G,color:t?"#fff":G},"&:disabled":{opacity:.6,cursor:"default"}})),JU=xi.span(({theme:e,active:t})=>({marginLeft:"2px",padding:"1px 6px",borderRadius:"999px",fontFamily:e.typography.fonts.mono,fontVariantNumeric:"tabular-nums",fontSize:"10px",backgroundColor:t?"rgba(255,255,255,0.25)":e.background.app,color:t?"#fff":e.color.mediumdark})),QU=xi.span(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark})),ZU="Semantic review powered by UI Parity \u2014 catches what the deterministic checks can't (visual hierarchy, contrast intent, layout drift). Rolling out to everyone soon.",f6=()=>{let{sessionToken:e}=he(),[t,n]=H1(null),[r,o]=H1(!1),[i,a]=H1(!1),s=c=>{typeof c.count=="number"&&n(c.count),typeof c.interested=="boolean"&&o(c.interested)};jU(()=>{if(!e)return;let c=!0;return Q(`${K()}/api/ai-interest`,{headers:{Authorization:`Bearer ${e}`}}).then(l=>l.json()).then(l=>c&&s(l)).catch(()=>{}),()=>{c=!1}},[e]);let u=VU(async()=>{if(!(!e||i)){a(!0);try{let c=await Q(`${K()}/api/ai-interest`,{method:r?"DELETE":"POST",headers:{Authorization:`Bearer ${e}`}});s(await c.json())}catch{}finally{a(!1)}}},[e,r,i]);return Ur.createElement(WU,null,Ur.createElement(Co,{side:"bottom",text:ZU},Ur.createElement(GU,null,Ur.createElement(qU,{"aria-hidden":!0},Ur.createElement(tc,null)),Ur.createElement(YU,null,"AI review with Claude"),Ur.createElement(KU,null,"Coming soon"))),Ur.createElement(Co,{side:"bottom",text:r?"We'll prioritise the AI review rollout based on this signal. Click again to undo.":"Tell us you'd use this \u2014 helps us prioritise the rollout."},Ur.createElement(XU,{type:"button",active:r,disabled:i||!e,"aria-pressed":r,onClick:u},Ur.createElement(ny,null),r?"Thanks \u2014 noted!":"I want this",t!==null&&Ur.createElement(JU,{active:r},t))),Ur.createElement(QU,null,"Today: deterministic checks (color, font, spacing, radius, border)."))};import mt,{useState as ej,useEffect as tj}from"react";import{styled as _t,keyframes as Ya}from"storybook/theming";Se();var nj=Ya`
|
|
@@ -128,7 +128,7 @@ ${St}`).join(`
|
|
|
128
128
|
`;var _me=_t.div({display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap"}),U1=_t.div({display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"}),Ome=_t.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:`${y6} 0.3s ease-out`})),ij=Ya`
|
|
129
129
|
from { transform: rotate(0deg); }
|
|
130
130
|
to { transform: rotate(360deg); }
|
|
131
|
-
`,$me=_t.div(({theme:e})=>({width:"12px",height:"12px",borderRadius:"50%",border:"2px solid transparent",borderTopColor:e.textMutedColor,animation:`${ij} 0.8s linear infinite`,flexShrink:0})),aj=_t.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"})),Hme=_t.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"})),Ume=_t.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:`${oj} 2.5s ease-out ${e}s forwards`,pointerEvents:"none",zIndex:1e3}));var m6=_t.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"14px",fontWeight:300})),h6=_t.span(({theme:e,color:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"12px",fontWeight:500,color:t??e.color.mediumdark,whiteSpace:"nowrap"})),jme=_t.span(({theme:e,color:t})=>({fontSize:"12px",color:t??e.color.mediumdark})),sj=_t.span(({color:e})=>({fontWeight:700,color:e}));function lj(e,t){return t===0||e==="A"?{active:"green",label:"Matches design",tone:Ye.greenText,hint:"No differences found between the code and the Figma design."}:e==="B"?{active:"amber",label:"Minor differences",tone:Ye.amberText,hint:"Cosmetic gaps only (sub-pixel sizes or near-identical colors). Nothing visibly off."}:e==="D"?{active:"red",label:"Critical issues",tone:Ye.redText,hint:"At least one severe problem (e.g. broken/inaccessible, or a glaring visual break). See the list below."}:{active:"red",label:"Major differences",tone:Ye.redText,hint:"At least one clearly-wrong value (e.g. wrong brand color, font, size, or spacing). See the list below."}}var cj=_t.span({display:"block",marginTop:"6px"}),uj=_t.span(({theme:e})=>({display:"block",marginBottom:"4px",color:e.color.mediumdark})),j1=_t.span({display:"flex",alignItems:"center",gap:"6px",lineHeight:1.6}),V1=_t.span(({tone:e})=>({width:"8px",height:"8px",borderRadius:"50%",backgroundColor:e,flex:"0 0 auto"})),W1={red:Ye.red,amber:Ye.amber,green:Ye.green},dj=_t.span({display:"inline-flex",alignItems:"center",gap:"12px",whiteSpace:"nowrap",cursor:"help"}),pj=_t.span({display:"inline-flex",alignItems:"center",gap:"6px",padding:"6px 8px",borderRadius:"8px",background:"linear-gradient(180deg, #f1f3f5 0%, #e4e7eb 100%)",border:"1px solid #d1d5db",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.9), inset 0 -1px 0 rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.06)",flex:"0 0 auto"}),G1=_t.span(({tone:e,on:t})=>({width:"16px",height:"16px",borderRadius:"50%",flex:"0 0 auto",backgroundColor:t?e:`${e}1f`,boxShadow:t?`0 0 0 2px ${e}33, 0 0 12px ${e}cc, inset 0 1px 1px rgba(255,255,255,0.55)`:`inset 0 1px 2px rgba(0,0,0,0.12), inset 0 0 0 1px ${e}33`})),gj=_t.span(({tone:e,theme:t})=>({fontSize:"15px",fontWeight:t.typography.weight.bold,letterSpacing:"-0.01em",color:e})),fj=_t.span(({theme:e})=>({fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.mono,color:e.color.mediumdark})),Vme=_t.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}})),Wme=_t.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"12px"})),Gme=_t.span(({color:e=G})=>({display:"inline-block",fontSize:"12px",color:e,animation:`${nj} 1.2s ease-in-out infinite`,marginRight:"4px"})),qme=_t.span(({theme:e,variant:t="muted"})=>({fontSize:"12px",fontWeight:700,color:(()=>{switch(t){case"issues":return G;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 G;case"verifying":return"#7c3aed";default:return e.color.mediumdark}})(),whiteSpace:"nowrap",...t==="analyzing"||t==="verifying"?{animation:`${rj} 1.5s ease-in-out infinite`}:{}})),Yme=_t.span(({theme:e})=>({fontSize:"12px",fontWeight:400,color:e.color.mediumdark})),Kme=_t.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,fontWeight:400})),mj=_t.span({display:"inline-flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",animation:`${x6} 1.2s linear infinite`,flexShrink:0}),hj=({color:e=G})=>mt.createElement(mj,null,mt.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,a=12+Math.sin(o)*4,s=12+Math.cos(o)*10,u=12+Math.sin(o)*10;return mt.createElement("line",{key:n,x1:i,y1:a,x2:s,y2:u,stroke:e,strokeWidth:2,strokeLinecap:"round",opacity:.3+n/8*.7})}))),Xme=_t.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:`${y6} 0.3s ease-out`}));function xj(e){let[t,n]=ej(0);return tj(()=>{if(!e){n(0);return}let r=setInterval(()=>{n(o=>o+1)},1e3);return()=>clearInterval(r)},[e]),t}var yj=_t.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"13px",fontWeight:e.typography.weight.bold,color:e.color.mediumdark})),bj=_t.span(({theme:e})=>({width:"13px",height:"13px",borderRadius:"50%",border:`2px solid ${e.appBorderColor}`,borderTopColor:e.color.mediumdark,animation:`${x6} 0.8s linear infinite`,display:"inline-block",flexShrink:0})),b6=({isReviewing:e,isValidating:t,isChecking:n=!1,streamingStatus:r,issueCount:o=0,score:i,band:a,visualSimilarity:s,costUsd:u,inputTokens:c,outputTokens:l,showTimer:p=!0,cacheCreationTokens:g,cacheReadTokens:d,durationSeconds:f})=>{let y=xj(e||t||n),{featureFlags:I}=ue(),S=I.showCosts,x=3.65,M=m=>m<.01?`$${m.toFixed(4)}`:m<.1?`$${m.toFixed(3)}`:`$${m.toFixed(2)}`,z=m=>{let v=m*x;return v<.01?`\u20AA${v.toFixed(4)}`:v<.1?`\u20AA${v.toFixed(3)}`:`\u20AA${v.toFixed(2)}`},O=m=>m>=1e3?`${(m/1e3).toFixed(1)}K`:m.toString(),L=m=>m>=80?"score-high":m>=50?"score-medium":"score-low",N=m=>m>=80?"high":m>=50?"medium":"low";if(n)return mt.createElement(yj,null,mt.createElement(bj,null),"Comparing to design\u2026",p?` \xB7 ${y}s`:"");if(e)return mt.createElement(U1,null,mt.createElement("span",{style:{fontSize:"12px",color:"#9ca3af"}},y,"s \xB7 Esc to stop"));if(t)return mt.createElement(U1,null,mt.createElement(aj,null,mt.createElement("span",null,"\u2298"),o," issue",o!==1?"s":""),mt.createElement(m6,null,"|"),mt.createElement(h6,null,mt.createElement(hj,{color:"#7c3aed"}),mt.createElement(sj,{color:"#7c3aed"},"Verifying...")),p&&mt.createElement(mt.Fragment,null,mt.createElement(m6,null,"|"),mt.createElement(h6,null,mt.createElement("span",{style:{color:"#6b7280"}},y,"s"))));if(o>0||i!==void 0){let m=(c||0)+(l||0),k=(d||0)>0&&c?Math.round(d/c*100):0,E=b=>b>=80?"#16a34a":b>=50?"#ca8a04":"#dc2626",h=b=>b>=100?"\u25CF":b>=50?"\u25D0":"\u25CB";return mt.createElement(U1,null,(()=>{let b=lj(a,o);return mt.createElement(Co,{side:"bottom",align:"start",title:b.label,text:mt.createElement(mt.Fragment,null,b.hint,mt.createElement(cj,null,mt.createElement(uj,null,"The light shows the worst difference found:"),mt.createElement(j1,null,mt.createElement(V1,{tone:Ye.red}),"a major or critical difference"),mt.createElement(j1,null,mt.createElement(V1,{tone:Ye.amber}),"only minor differences"),mt.createElement(j1,null,mt.createElement(V1,{tone:Ye.green}),"matches the design")))},mt.createElement(dj,null,mt.createElement(pj,null,mt.createElement(G1,{tone:W1.red,on:b.active==="red"}),mt.createElement(G1,{tone:W1.amber,on:b.active==="amber"}),mt.createElement(G1,{tone:W1.green,on:b.active==="green"})),mt.createElement(gj,{tone:b.tone},b.label),mt.createElement(fj,null,"\xB7 ",o," issue",o!==1?"s":"",f!=null?` \xB7 ${f}s`:"")))})())}return null};import Gt,{useEffect as wj,useMemo as vj,useRef as N6,useState as _6}from"react";import{createPortal as Sj}from"react-dom";import{styled as An}from"storybook/theming";var w6=An.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"6px",width:"250px",height:"32px",padding:"0 8px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius*2,boxShadow:"0 1px 2px 0 rgba(0,0,0,0.05)",cursor:"pointer",fontSize:"11px",color:e.color.defaultText,transition:"background-color 0.15s",flexShrink:0,"&:hover":{backgroundColor:e.background.hoverable},"& > svg":{width:"13px",height:"13px",flexShrink:0,color:e.color.mediumdark}})),q1=An.span(({tone:e})=>({width:"8px",height:"8px",borderRadius:"50%",flexShrink:0,backgroundColor:e})),v6=An.span({flex:1,minWidth:0,display:"inline-flex",alignItems:"baseline",gap:"5px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),S6=An.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText})),Y1=An.span(({theme:e})=>({color:e.color.mediumdark,fontFamily:e.typography.fonts.mono})),k6=An.span(({theme:e,open:t})=>({display:"inline-flex",flexShrink:0,color:e.color.mediumdark,transform:t?"rotate(180deg)":"none",transition:"transform 0.15s","& svg":{width:"13px",height:"13px",display:"block"}})),C6=An.div(({theme:e})=>({position:"fixed",zIndex:1e4,width:"320px",maxHeight:"320px",overflowY:"auto",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius*2,boxShadow:"0 8px 24px rgba(0,0,0,0.16)",padding:"4px"})),I6=An.div(({theme:e})=>({padding:"8px 10px 6px",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"4px"})),T6=An.div(({theme:e})=>({fontSize:"10px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark})),E6=An.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"2px"})),R6=An.button(({theme:e,active:t,child:n})=>({display:"flex",alignItems:"center",gap:"8px",width:"100%",padding:"7px 8px",paddingLeft:n?"20px":"8px",background:t?e.background.hoverable:"transparent",border:"none",borderRadius:e.appBorderRadius*1.5,cursor:"pointer",textAlign:"left",fontSize:"11px",color:e.color.defaultText,"&:hover":{background:e.background.hoverable}})),A6=An.span({display:"flex",flexDirection:"column",minWidth:0,flex:1,gap:"1px"}),F6=An.span({display:"inline-flex",alignItems:"center",gap:"6px",minWidth:0}),P6=An.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),M6=An.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark,whiteSpace:"nowrap"})),L6=An.span(({theme:e})=>({fontSize:"9px",fontWeight:e.typography.weight.bold,letterSpacing:"0.03em",textTransform:"uppercase",color:Ye.green,backgroundColor:`${Ye.green}1a`,border:`1px solid ${Ye.green}33`,padding:"1px 5px",borderRadius:"999px",flexShrink:0})),B6=An.span(({theme:e,zero:t})=>({marginLeft:"auto",fontSize:"10px",fontFamily:e.typography.fonts.mono,color:t?Ye.green:e.color.mediumdark,backgroundColor:t?`${Ye.green}1a`:e.background.app,border:`1px solid ${e.appBorderColor}`,padding:"1px 6px",borderRadius:"999px",whiteSpace:"nowrap",flexShrink:0})),z6=An.span(({theme:e})=>({display:"inline-flex",flexShrink:0,color:e.color.secondary,"& svg":{width:"13px",height:"13px",display:"block"}})),D6=An.span(({theme:e})=>({color:e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}));var O6=e=>e==="D"?Ye.red:e==="A"?Ye.green:Ye.amber,kj=e=>e.issuesCount??e.issues?.length??0,Cj=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],$6=e=>{let t=new Date(e);return`${Cj[t.getMonth()]} ${t.getDate()}`},H6=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`},U6=({reviews:e,currentReviewId:t,isNewReviewMode:n,onSelect:r,formatTime:o,bandOf:i,showStoryName:a,shortStoryName:s})=>{let[u,c]=_6(!1),[l,p]=_6(null),g=N6(null),d=N6(null),f=vj(()=>{let S=e.filter(x=>!x.parentReviewId);return S.length===0?null:S.reduce((x,M)=>new Date(M.createdAt).getTime()>new Date(x.createdAt).getTime()?M:x).id},[e]),y=!n&&t?e.find(S=>S.id===t):void 0,I=()=>{let S=g.current?.getBoundingClientRect();S&&p({top:S.bottom+6,left:S.left}),c(x=>!x)};return wj(()=>{if(!u)return;let S=()=>c(!1),x=O=>{O.key==="Escape"&&c(!1)},M=O=>{d.current&&d.current.contains(O.target)||c(!1)},z=window.setTimeout(()=>{window.addEventListener("mousedown",S),window.addEventListener("scroll",M,!0),window.addEventListener("keydown",x)},0);return()=>{window.clearTimeout(z),window.removeEventListener("mousedown",S),window.removeEventListener("scroll",M,!0),window.removeEventListener("keydown",x)}},[u]),Gt.createElement(Gt.Fragment,null,Gt.createElement(w6,{ref:g,onClick:I,title:"Review history"},Gt.createElement(ry,null),y&&Gt.createElement(q1,{tone:O6(i(y))}),Gt.createElement(v6,null,y?Gt.createElement(Gt.Fragment,null,Gt.createElement(S6,null,o(y.createdAt)),Gt.createElement(Y1,null,"\xB7 ",$6(y.createdAt)," ",H6(y.createdAt))):Gt.createElement(Y1,null,"Select a review\u2026")),Gt.createElement(k6,{open:u},Gt.createElement(ey,null))),u&&l&&Sj(Gt.createElement(C6,{ref:d,style:{top:l.top,left:l.left},onMouseDown:S=>S.stopPropagation()},Gt.createElement(I6,null,Gt.createElement(T6,null,"Review history"),Gt.createElement(E6,null,"Choose which saved review to inspect")),e.map(S=>{let x=kj(S),M=!n&&S.id===t,z=!!S.parentReviewId;return Gt.createElement(R6,{key:S.id,active:M,child:z,onClick:()=>{r(S.id),c(!1)}},Gt.createElement(q1,{tone:O6(i(S))}),Gt.createElement(A6,null,Gt.createElement(F6,null,Gt.createElement(P6,null,z&&S.iterationNumber?`Iter ${S.iterationNumber} \xB7 `:"",o(S.createdAt)),S.id===f&&Gt.createElement(L6,null,"Latest"),a&&S.storyId&&Gt.createElement(D6,null,s(S.storyId))),Gt.createElement(M6,null,$6(S.createdAt)," \xB7 ",H6(S.createdAt))),Gt.createElement(B6,{zero:x===0},x," issue",x!==1?"s":""),M&&Gt.createElement(z6,null,Gt.createElement(ty,null)))})),document.body))};au();De();var Rj=hn.div({display:"flex",flexDirection:"column",alignItems:"stretch",gap:"0",marginBottom:"16px"}),khe=hn.div({display:"flex",gap:"8px",alignItems:"center"}),W6=Ej({from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}),Aj=hn.span({display:"inline-block",width:"16px",height:"16px",borderRadius:"50%",border:"2px solid rgba(255, 255, 255, 0.35)",borderTopColor:"#ffffff",animation:`${W6} 0.8s linear infinite`,marginRight:"8px",verticalAlign:"middle"}),Fj=hn.span({display:"inline-block",width:"12px",height:"12px",borderRadius:"50%",border:"2px solid currentColor",borderTopColor:"transparent",opacity:.7,animation:`${W6} 0.8s linear infinite`}),j6=hn.span({display:"inline-flex",alignItems:"center",marginRight:"7px","& svg":{width:"12px",height:"12px",display:"block"}}),Pj=hn.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin}px`,padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.2}px`,backgroundColor:e.background.content,borderBottom:`1px solid ${e.appBorderColor}`,flexWrap:"wrap"})),Mj=hn.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:G},o=t==="purple"||t==="yellow"?"124, 58, 237":t==="orange"?"234, 88, 12":"255, 107, 53";return{display:"inline-flex",alignItems:"center",width:"auto",height:"32px",backgroundColor:r[t],color:e.color.inverseText,border:"none",padding:"0 14px",fontSize:"12px",fontWeight:e.typography.weight.bold,borderRadius:e.appBorderRadius*1.5,cursor:n?"not-allowed":"pointer",opacity:n?.6:1,whiteSpace:"nowrap",transition:"background-color 0.15s, opacity 0.15s",boxShadow:n?"none":`0 1px 2px rgba(${o}, 0.25)`,flexShrink:0,"&:hover":{opacity:n?.6:1,filter:n?"none":"brightness(0.92)"}}}),Lj=hn.div(({theme:e})=>({marginTop:"8px",fontSize:"12px",color:e.color.warning||"#f59e0b",display:"flex",alignItems:"center",gap:"6px"})),Bj=hn.span(({theme:e})=>({fontSize:"11px",fontWeight:e.typography.weight.regular,color:e.color.mediumdark,marginLeft:`${e.layoutMargin*.4}px`,cursor:"help",overflow:"hidden",textOverflow:"ellipsis"})),zj=hn.div(({tone:e,theme:t})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",marginTop:`${t.layoutMargin*.8}px`,padding:"10px 8px 10px 16px",borderRadius:t.appBorderRadius*2,backgroundColor:t.background.content,border:`1px solid ${e?`${e}40`:t.appBorderColor}`,boxShadow:"0 1px 2px 0 rgba(0,0,0,0.05)"})),Dj=hn.div(({theme:e})=>({display:"flex",alignItems:"baseline",gap:"4px",flex:"1 1 auto",minWidth:"110px",overflow:"hidden",textOverflow:"ellipsis",fontSize:"12px",fontWeight:e.typography.weight.bold,color:e.color.defaultText,whiteSpace:"nowrap"})),Nj=hn.div({marginLeft:"auto",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",minWidth:0,flexShrink:0}),_j=hn.div({marginLeft:"auto",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",minWidth:0}),Oj=hn.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"6px",height:"28px",padding:"0 10px",borderRadius:e.appBorderRadius*1.5,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content,color:e.color.mediumdark,fontSize:"11px",fontWeight:e.typography.weight.bold,cursor:"pointer",whiteSpace:"nowrap",transition:"background-color 0.15s, opacity 0.15s",flexShrink:0,"& svg":{width:"12px",height:"12px",display:"block"},"&:hover":{backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),$j=hn.span(({theme:e})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark,whiteSpace:"nowrap"})),V6=hn.div(({theme:e})=>({width:"1px",height:"14px",backgroundColor:e.appBorderColor,flexShrink:0})),Hj=hn.div(({theme:e})=>({display:"flex",alignItems:"center",flexWrap:"wrap",gap:`${e.layoutMargin*1.2}px`,rowGap:`${e.layoutMargin*.4}px`,padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.2}px`,backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`})),J1=hn.label(({theme:e,primary:t})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.6}px`,fontSize:"11px",color:t?e.color.defaultText:e.color.mediumdark,fontWeight:t?e.typography.weight.bold:e.typography.weight.regular,cursor:"pointer",userSelect:"none",whiteSpace:"nowrap",transition:"color 0.15s","&:hover":{color:e.color.defaultText}})),Q1=hn.div(({theme:e,checked:t,accent:n})=>({width:"26px",height:"15px",borderRadius:"8px",backgroundColor:t?n?G:Ox:e.appBorderColor||$x,position:"relative",transition:"background-color 0.2s ease",flexShrink:0})),Z1=hn.div(({checked:e})=>({width:"11px",height:"11px",borderRadius:"50%",backgroundColor:"#fff",position:"absolute",top:"2px",left:e?"13px":"2px",transition:"left 0.2s ease",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.2)"})),e5=hn.input({position:"absolute",opacity:0,width:0,height:0}),t5=()=>{let{sessionToken:e}=no(),{usageData:t}=he(),{selectedProjectId:n}=Ir(),{currentMapping:r,hasMapping:o}=Oi(),{loadingMapping:i,currentStoryId:a}=gt(),{startReview:s,cancelReview:u,isReviewing:c}=fh(),{isLoadingScreenshots:l}=Di(),{storybookImageUrl:p,figmaImageUrl:g,currentReviewId:d,reviewHistory:f,setReviewDetailTab:y,setReviewResults:I,setReviewError:S,setFigmaImageUrl:x,setStorybookImageUrl:M,setFullPrompt:z,setFullResponse:O,includeTextComparison:L,setIncludeTextComparison:N,usePromptCache:m,setUsePromptCache:v,isValidating:k,validationUsage:E,isGenerating:h,isApplying:b,streamingStatus:F,featureFlags:C,userRole:A,roleOverride:B,isReviewing:P,isNewReviewMode:_,setNewReviewMode:T,setIsSpecChecking:D,reviewError:H,reviewRetryNonce:R,requestReviewRetry:te}=ue(),j=t?.reviewCredits??t?.creditBalance??0,[Y,X]=X1(!1),[ne,Te]=X1(!1),[ye,de]=X1(0);K1(()=>{if(!ne)return;de(0);let lt=setInterval(()=>de(He=>He+1),1e3);return()=>clearInterval(lt)},[ne]);let Fe=f.find(lt=>lt.id===d),Me=(Fe?.issues||[]).filter(lt=>!lt.dismissed).length,pe=Fe?_1(Fe):null,Mt=pe?.score,Yt=pe?.band,Lt=Fe?.visualSimilarity,wt=(Fe?.costUsd||0)+(E?.costUsd||0),Ar=(Fe?.inputTokens||0)+(E?.inputTokens||0),je=(Fe?.outputTokens||0)+(E?.outputTokens||0),Qe=Ij(()=>{let lt=a?f.filter(it=>it.storyId===a):f,He=lt.filter(it=>!it.parentReviewId).sort((it,vt)=>new Date(vt.createdAt).getTime()-new Date(it.createdAt).getTime()),or=lt.filter(it=>it.parentReviewId),$n=[];for(let it of He){$n.push(it);let vt=or.filter(Cn=>Cn.parentReviewId===it.id).sort((Cn,tt)=>(Cn.iterationNumber||0)-(tt.iterationNumber||0));$n.push(...vt)}let qe=or.filter(it=>!He.some(vt=>vt.id===it.parentReviewId));return $n.push(...qe),$n},[f,a]);K1(()=>{if(!c)return;let lt=He=>{He.key==="Escape"&&(He.preventDefault(),u())};return window.addEventListener("keydown",lt),()=>window.removeEventListener("keydown",lt)},[c,u]);let pt=o&&r?.figmaNodeId,Ot=h||b,_n=(B??A)==="admin",V=j>0||_n,ee=!!(e&&n&&!c&&!l&&!Ot&&a&&p&&pt&&g&&V),le=!!(e&&n&&!c&&!ne&&!Ot&&a&&pt),U=!!d&&!_,oe=e?n?a?pt?Ot?"Wait for fixes to complete\u2026":Y&&l?"Loading screenshots\u2026":Y&&!p?"Waiting for Storybook screenshot\u2026":Y&&!g?"Waiting for Figma design image\u2026":Y&&!V?"No credits \u2014 click \u26A1 in the toolbar to get more":null:'Figma mapping required \u2014 use "Map to Figma" in the Review tab':"No story selected":"Please select a project first":`Please connect to ${jt.NAME} first`,xe=c||k||ne,we=Qe.length>0,me=!P&&(k||!!Fe),fe=async(lt=!1)=>{if(!a){console.error("[ReviewActions] No story selected");return}try{y("chat"),await s({isIteration:lt,parentReviewId:lt?d:void 0})}catch(He){console.error("[ReviewActions] Review error:",He)}},Le=async()=>{if(!a||!n)return;Te(!0),D(!0),S(null),y("issues");let lt=Date.now();try{let He=Qs(),or=await fetch(`${K()}/api/specs/diff`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({projectId:n,storyId:a,figmaNodeId:r?.figmaNodeId,domTree:He})}),$n=await or.json().catch(()=>({}));if(!or.ok||!$n.success){let tt=$n?.error||`Spec check failed (HTTP ${or.status})`;console.error("[ReviewActions] Spec check failed:",tt),S(nl(new Error(tt)));return}let qe=tt=>/color|fill|stroke/i.test(tt)?"color":/padding|gap|margin|spacing|itemSpacing/i.test(tt)?"spacing":/font|lineHeight|letterSpacing|typography/i.test(tt)?"typography":/radius|corner/i.test(tt)?"border":"visual",it=($n.issues||[]).map((tt,se)=>({id:`spec-${se}`,dbId:tt.dbId,type:qe(tt.property),severity:tt.severity,title:`${tt.property} mismatch`,description:`Design expects ${tt.expected}; code has ${tt.actual}.`,property:tt.property,currentValue:tt.actual,suggestedValue:tt.expected,detectedBy:"spec-diff",status:tt.dismissed?"dismissed":"open",dismissed:tt.dismissed??!1,dismissReason:tt.dismissReason,dismissedBy:tt.dismissedBy})),vt=kt.getState(),Cn=vt.currentMapping?.figmaFileUrl||vt.figmaImageUrl||void 0;I({id:$n.validationId,storyId:a,complianceScore:$n.complianceScore,issuesCount:it.filter(tt=>!tt.dismissed).length,issues:it,createdAt:new Date,timestamp:new Date().toISOString(),reviewDurationMs:Date.now()-lt,figmaImageData:Cn,storybookImageData:vt.storybookImageUrl||void 0})}catch(He){console.error("[ReviewActions] Spec check error:",He),S(nl(He))}finally{Te(!1),D(!1)}},Tt=()=>{T(!0),Y?fe(!1):Le()},nn=Tj(R);K1(()=>{R!==nn.current&&(nn.current=R,Tt())},[R]);let On=lt=>{if(lt){let He=f.find(or=>or.id===lt);He&&(I({id:He.id,componentId:He.componentId,storyId:He.storyId,modelId:He.modelId,complianceScore:He.complianceScore,issuesCount:He.issuesCount,issues:He.issues,createdAt:new Date(He.createdAt),visualSimilarity:He.visualSimilarity,timestamp:new Date(He.createdAt).toISOString(),costUsd:He.costUsd,inputTokens:He.inputTokens,outputTokens:He.outputTokens,cacheCreationTokens:He.cacheCreationTokens,cacheReadTokens:He.cacheReadTokens,reviewDurationMs:He.reviewDurationMs}),He.figmaImageData&&x(He.figmaImageData),He.storybookImageData&&M(He.storybookImageData),(B??A)==="admin"&&(z(He.aiPrompt||""),O(He.aiResponse||"")),y("issues"))}},Qd=lt=>{let He=new Date(lt),$n=new Date().getTime()-He.getTime(),qe=Math.floor($n/6e4),it=Math.floor($n/36e5),vt=Math.floor($n/864e5);return qe<1?"Just now":qe<60?`${qe}m ago`:it<24?`${it}h ago`:vt<7?`${vt}d ago`:He.toLocaleDateString()},is=lt=>{let He=lt.split("--"),or=He[He.length-1]||lt;return or.charAt(0).toUpperCase()+or.slice(1)},qr=(B??A)==="admin",Ge=qr||!!C.enableAiReview,as=()=>{Tt()},ss=Qe.length>0?Ce.createElement(U6,{reviews:Qe,currentReviewId:d,isNewReviewMode:_,onSelect:On,formatTime:Qd,bandOf:lt=>_1(lt).band,showStoryName:!a,shortStoryName:is}):null;return Ce.createElement("div",null,Ce.createElement(Rj,null,Ge&&Ce.createElement(Hj,null,Ce.createElement(J1,{primary:!0,title:"Full AI review \u2014 deep visual analysis (shadows, layout, content). Uses AI credits.",style:c||ne?{opacity:.5,cursor:"not-allowed"}:void 0},Ce.createElement(e5,{type:"checkbox",checked:Y,disabled:c||ne,onChange:lt=>X(lt.target.checked)}),Ce.createElement(Q1,{checked:Y,accent:!0},Ce.createElement(Z1,{checked:Y})),"AI review"),Y&&C.enableModelSelection&&Ce.createElement(Ce.Fragment,null,Ce.createElement(V6,null),Ce.createElement($j,null,"Models"),Ce.createElement(p6,null)),Y&&qr&&Ce.createElement(Ce.Fragment,null,Ce.createElement(V6,null),Ce.createElement(Co,{side:"bottom",align:"center",text:"Also compare the text content between the Figma design and the Storybook component."},Ce.createElement(J1,null,Ce.createElement(e5,{type:"checkbox",checked:L,onChange:lt=>N(lt.target.checked)}),Ce.createElement(Q1,{checked:L},Ce.createElement(Z1,{checked:L})),"Compare text")),C.showCosts&&Ce.createElement(Co,{side:"bottom",align:"center",text:"Cache the prompt for 5 minutes to cut cost on repeat reviews (dev optimization)."},Ce.createElement(J1,null,Ce.createElement(e5,{type:"checkbox",checked:m,onChange:lt=>v(lt.target.checked)}),Ce.createElement(Q1,{checked:m},Ce.createElement(Z1,{checked:m})),"Cache prompt")))),!Ge&&Ce.createElement(f6,null),!me&&Ce.createElement(Pj,null,Ce.createElement(Dj,null,c||ne?"Comparing to design\u2026":we?"Ready for a new review":"Ready to compare",!Y&&!we&&!c&&!ne&&Ce.createElement(Bj,{title:"Won't catch shadows, layout, missing elements, icons or content \u2014 run a full AI review for those."},"\u2014 checks color, font, spacing, radius, border.")),Ce.createElement(Nj,null,ss,Ce.createElement(Mj,{variant:c||ne?"yellow":"orange",disabled:c?!1:U?!0:!!H||(Y?!ee:!le),onClick:c?u:Tt,title:c?"Click to stop review":U?'Switch to "Current" to run a new review':e?n?a?pt?l?"Loading screenshots...":Ot?"Wait for fixes to complete...":p?g?V?"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 ${jt.NAME} first`},c||ne?Ce.createElement(Ce.Fragment,null,Ce.createElement(Aj,null),ne?`Checking\u2026 ${ye}s`:"Stop"):we?Ce.createElement(Ce.Fragment,null,Ce.createElement(j6,null,Ce.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ce.createElement("polyline",{points:"23 4 23 10 17 10"}),Ce.createElement("polyline",{points:"1 20 1 14 7 14"}),Ce.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"}))),"Run new review"):Ce.createElement(Ce.Fragment,null,Ce.createElement(j6,null,Ce.createElement("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"},Ce.createElement("path",{d:"M8 5v14l11-7z"}))),Y?"Run AI review":"Compare to design")))),me&&Ce.createElement(zj,{tone:ne||!Yt?null:Yt==="A"?Ye.green:Yt==="B"?Ye.amber:Ye.red},Ce.createElement(b6,{isReviewing:!1,isValidating:k,isChecking:ne,streamingStatus:F,issueCount:Me,score:Mt,band:Yt,visualSimilarity:Lt,costUsd:wt||Fe?.costUsd,inputTokens:Ar||Fe?.inputTokens,outputTokens:je||Fe?.outputTokens,cacheCreationTokens:Fe?.cacheCreationTokens,cacheReadTokens:Fe?.cacheReadTokens,durationSeconds:Fe?.reviewDurationMs?Math.max(1,Math.round(Fe.reviewDurationMs/1e3)):void 0}),Ce.createElement(_j,null,ss,Ce.createElement(Oj,{type:"button",onClick:as,disabled:xe||(Y?!ee:!le),title:oe??(Y?"Run a fresh AI review against the current code":"Re-run the spec check against the current code")},xe?Ce.createElement(Ce.Fragment,null,Ce.createElement(Fj,null),ne?`Checking\u2026 ${ye}s`:"Running\u2026"):Ce.createElement(Ce.Fragment,null,Ce.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},Ce.createElement("polyline",{points:"23 4 23 10 17 10"}),Ce.createElement("polyline",{points:"1 20 1 14 7 14"}),Ce.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"})),"Run new review"))))),!pt&&!i&&Ce.createElement(Lj,null,'\u26A0\uFE0F Figma mapping required. Use "Map to Figma" button to link this story to a Figma frame before reviewing.'))};import The,{useState as Ehe}from"react";import{styled as G6}from"storybook/theming";var Fhe=G6.div(({theme:e})=>({display:"flex",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"12px",gap:"4px"})),Phe=G6(Jo)({padding:"8px 12px",fontSize:"12px"});import Bhe,{useState as zhe}from"react";import{styled as n5}from"storybook/theming";Se();De();Ue();ut();var Uhe=n5.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px",backgroundColor:e.background.app,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",fontSize:"13px"})),jhe=n5(fo)({padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"}),Vhe=n5.span(({theme:e})=>({color:e.textMutedColor,fontSize:"12px",flex:1}));import qhe from"react";import{styled as Uj}from"storybook/theming";var Xhe=Uj.div(({theme:e})=>({border:`2px dashed ${e.appBorderColor}`,borderRadius:"8px",padding:"40px",textAlign:"center",marginBottom:"20px",backgroundColor:e.background.app}));Se();import Zhe from"react";import{styled as Io}from"storybook/theming";var n1e=Io.div(({theme:e})=>({marginBottom:"16px",border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",backgroundColor:e.background.content})),r1e=Io.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`})),o1e=Io.div({display:"flex",alignItems:"center",gap:"8px",flex:1}),i1e=Io.div(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),a1e=Io.div(({theme:e})=>({flex:1,height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden",marginLeft:"12px"})),s1e=Io.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"})),l1e=Io.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontWeight:500,minWidth:"40px",textAlign:"right"})),c1e=Io.div(({theme:e})=>({padding:"16px",backgroundColor:e.background.app,textAlign:"center"})),u1e=Io.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)"}}})),d1e=Io.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontStyle:"italic"}));Se();import f1e,{useState as m1e}from"react";import{styled as To}from"storybook/theming";var y1e=To.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)`}}),b1e=To.div({display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",userSelect:"none"}),w1e=To.div({display:"flex",alignItems:"center",gap:"8px"}),v1e=To.span({fontSize:"12px",opacity:.7}),S1e=To.span({fontSize:"13px",fontWeight:500}),k1e=To.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})),C1e=To.div({marginTop:"12px",fontSize:"11px"}),I1e=To.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px",marginBottom:"8px"}),T1e=To.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"})),E1e=To.span({fontSize:"12px"});Ue();De();import an from"react";import{styled as Ro}from"storybook/theming";import r5 from"react";import{styled as q6}from"storybook/theming";Se();var jj=q6.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin}px`,padding:`${e.layoutMargin}px`,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.defaultText})),Vj=q6.span({flex:1,lineHeight:1.4}),Y6=()=>{let{isAnonymous:e,oauthPending:t,signUpToSave:n}=no(),{currentReviewId:r}=ue();return!e||!r?null:r5.createElement(jj,null,r5.createElement(Vj,null,"This review lives only in this session \u2014 sign up free to keep it. Your project and results transfer automatically."),r5.createElement(Qt,{disabled:t,onClick:()=>n()},t?"Opening sign-in\u2026":"Sign up to save"))};import po,{useEffect as XX}from"react";import{styled as Nl}from"storybook/theming";Se();import ea,{useState as aq}from"react";import{styled as ts}from"storybook/theming";var K6={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 X6(e,t){let n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}var Wj=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Gj=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,qj={};function ad(e,t){return((t||qj).jsx?Gj:Wj).test(e)}var Yj=/[ \t\n\f\r]/g;function o5(e){return typeof e=="object"?e.type==="text"?J6(e.value):!1:J6(e)}function J6(e){return e.replace(Yj,"")===""}var Wo=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Wo.prototype.normal={};Wo.prototype.property={};Wo.prototype.space=void 0;function i5(e,t){let n={},r={};for(let o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new Wo(n,r,t)}function wl(e){return e.toLowerCase()}var Dn=class{constructor(t,n){this.attribute=n,this.property=t}};Dn.prototype.attribute="";Dn.prototype.booleanish=!1;Dn.prototype.boolean=!1;Dn.prototype.commaOrSpaceSeparated=!1;Dn.prototype.commaSeparated=!1;Dn.prototype.defined=!1;Dn.prototype.mustUseProperty=!1;Dn.prototype.number=!1;Dn.prototype.overloadedBoolean=!1;Dn.prototype.property="";Dn.prototype.spaceSeparated=!1;Dn.prototype.space=void 0;var vl={};Ee(vl,{boolean:()=>rt,booleanish:()=>cn,commaOrSpaceSeparated:()=>yr,commaSeparated:()=>yi,number:()=>re,overloadedBoolean:()=>sd,spaceSeparated:()=>Ut});var Kj=0,rt=qi(),cn=qi(),sd=qi(),re=qi(),Ut=qi(),yi=qi(),yr=qi();function qi(){return 2**++Kj}var a5=Object.keys(vl),Yi=class extends Dn{constructor(t,n,r,o){let i=-1;if(super(t,n),Q6(this,"space",o),typeof r=="number")for(;++i<a5.length;){let a=a5[i];Q6(this,a5[i],(r&vl[a])===vl[a])}}};Yi.prototype.defined=!0;function Q6(e,t,n){n&&(e[t]=n)}function jr(e){let t={},n={};for(let[r,o]of Object.entries(e.properties)){let i=new Yi(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[wl(r)]=r,n[wl(i.attribute)]=r}return new Wo(t,n,e.space)}var s5=jr({properties:{ariaActiveDescendant:null,ariaAtomic:cn,ariaAutoComplete:null,ariaBusy:cn,ariaChecked:cn,ariaColCount:re,ariaColIndex:re,ariaColSpan:re,ariaControls:Ut,ariaCurrent:null,ariaDescribedBy:Ut,ariaDetails:null,ariaDisabled:cn,ariaDropEffect:Ut,ariaErrorMessage:null,ariaExpanded:cn,ariaFlowTo:Ut,ariaGrabbed:cn,ariaHasPopup:null,ariaHidden:cn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Ut,ariaLevel:re,ariaLive:null,ariaModal:cn,ariaMultiLine:cn,ariaMultiSelectable:cn,ariaOrientation:null,ariaOwns:Ut,ariaPlaceholder:null,ariaPosInSet:re,ariaPressed:cn,ariaReadOnly:cn,ariaRelevant:null,ariaRequired:cn,ariaRoleDescription:Ut,ariaRowCount:re,ariaRowIndex:re,ariaRowSpan:re,ariaSelected:cn,ariaSetSize:re,ariaSort:null,ariaValueMax:re,ariaValueMin:re,ariaValueNow:re,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function ld(e,t){return t in e?e[t]:t}function cd(e,t){return ld(e,t.toLowerCase())}var Z6=jr({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:yi,acceptCharset:Ut,accessKey:Ut,action:null,allow:null,allowFullScreen:rt,allowPaymentRequest:rt,allowUserMedia:rt,alt:null,as:null,async:rt,autoCapitalize:null,autoComplete:Ut,autoFocus:rt,autoPlay:rt,blocking:Ut,capture:null,charSet:null,checked:rt,cite:null,className:Ut,cols:re,colSpan:null,content:null,contentEditable:cn,controls:rt,controlsList:Ut,coords:re|yi,crossOrigin:null,data:null,dateTime:null,decoding:null,default:rt,defer:rt,dir:null,dirName:null,disabled:rt,download:sd,draggable:cn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:rt,formTarget:null,headers:Ut,height:re,hidden:sd,high:re,href:null,hrefLang:null,htmlFor:Ut,httpEquiv:Ut,id:null,imageSizes:null,imageSrcSet:null,inert:rt,inputMode:null,integrity:null,is:null,isMap:rt,itemId:null,itemProp:Ut,itemRef:Ut,itemScope:rt,itemType:Ut,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:rt,low:re,manifest:null,max:null,maxLength:re,media:null,method:null,min:null,minLength:re,multiple:rt,muted:rt,name:null,nonce:null,noModule:rt,noValidate:rt,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:rt,optimum:re,pattern:null,ping:Ut,placeholder:null,playsInline:rt,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:rt,referrerPolicy:null,rel:Ut,required:rt,reversed:rt,rows:re,rowSpan:re,sandbox:Ut,scope:null,scoped:rt,seamless:rt,selected:rt,shadowRootClonable:rt,shadowRootDelegatesFocus:rt,shadowRootMode:null,shape:null,size:re,sizes:null,slot:null,span:re,spellCheck:cn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:re,step:null,style:null,tabIndex:re,target:null,title:null,translate:null,type:null,typeMustMatch:rt,useMap:null,value:cn,width:re,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Ut,axis:null,background:null,bgColor:null,border:re,borderColor:null,bottomMargin:re,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:rt,declare:rt,event:null,face:null,frame:null,frameBorder:null,hSpace:re,leftMargin:re,link:null,longDesc:null,lowSrc:null,marginHeight:re,marginWidth:re,noResize:rt,noHref:rt,noShade:rt,noWrap:rt,object:null,profile:null,prompt:null,rev:null,rightMargin:re,rules:null,scheme:null,scrolling:cn,standby:null,summary:null,text:null,topMargin:re,valueType:null,version:null,vAlign:null,vLink:null,vSpace:re,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:rt,disableRemotePlayback:rt,prefix:null,property:null,results:re,security:null,unselectable:null},space:"html",transform:cd});var e7=jr({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:yr,accentHeight:re,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:re,amplitude:re,arabicForm:null,ascent:re,attributeName:null,attributeType:null,azimuth:re,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:re,by:null,calcMode:null,capHeight:re,className:Ut,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:re,diffuseConstant:re,direction:null,display:null,dur:null,divisor:re,dominantBaseline:null,download:rt,dx:null,dy:null,edgeMode:null,editable:null,elevation:re,enableBackground:null,end:null,event:null,exponent:re,externalResourcesRequired:null,fill:null,fillOpacity:re,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:yi,g2:yi,glyphName:yi,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:re,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:re,horizOriginX:re,horizOriginY:re,id:null,ideographic:re,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:re,k:re,k1:re,k2:re,k3:re,k4:re,kernelMatrix:yr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:re,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:re,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:re,overlineThickness:re,paintOrder:null,panose1:null,path:null,pathLength:re,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Ut,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:re,pointsAtY:re,pointsAtZ:re,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:yr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:yr,rev:yr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:yr,requiredFeatures:yr,requiredFonts:yr,requiredFormats:yr,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:re,specularExponent:re,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:re,strikethroughThickness:re,string:null,stroke:null,strokeDashArray:yr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:re,strokeOpacity:re,strokeWidth:null,style:null,surfaceScale:re,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:yr,tabIndex:re,tableValues:null,target:null,targetX:re,targetY:re,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:yr,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:re,underlineThickness:re,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:re,values:null,vAlphabetic:re,vMathematical:re,vectorEffect:null,vHanging:re,vIdeographic:re,version:null,vertAdvY:re,vertOriginX:re,vertOriginY:re,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:re,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:ld});var l5=jr({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 c5=jr({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:cd});var u5=jr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}});var d5={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 Xj=/[A-Z]/g,t7=/-[a-z]/g,Jj=/^data[-\w.:]+$/i;function p5(e,t){let n=wl(t),r=t,o=Dn;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Jj.test(t)){if(t.charAt(4)==="-"){let i=t.slice(5).replace(t7,Zj);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{let i=t.slice(4);if(!t7.test(i)){let a=i.replace(Xj,Qj);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}o=Yi}return new o(r,t)}function Qj(e){return"-"+e.toLowerCase()}function Zj(e){return e.charAt(1).toUpperCase()}var n7=i5([s5,Z6,l5,c5,u5],"html"),ud=i5([s5,e7,l5,c5,u5],"svg");function r7(e){return e.join(" ").trim()}var y7=Kl(f7(),1);var pd=m7("end"),Ka=m7("start");function m7(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 m5(e){let t=Ka(e),n=pd(e);if(t&&n)return{start:t,end:n}}function bi(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?h7(e.position):"start"in e||"end"in e?h7(e):"line"in e||"column"in e?h5(e):""}function h5(e){return x7(e&&e.line)+":"+x7(e&&e.column)}function h7(e){return h5(e&&e.start)+"-"+h5(e&&e.end)}function x7(e){return e&&typeof e=="number"?e:1}var xn=class extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let o="",i={},a=!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&&(a=!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 s=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=s?s.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=s?s.line:void 0,this.name=bi(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=a&&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}};xn.prototype.file="";xn.prototype.name="";xn.prototype.reason="";xn.prototype.message="";xn.prototype.stack="";xn.prototype.column=void 0;xn.prototype.line=void 0;xn.prototype.ancestors=void 0;xn.prototype.cause=void 0;xn.prototype.fatal=void 0;xn.prototype.place=void 0;xn.prototype.ruleId=void 0;xn.prototype.source=void 0;var x5={}.hasOwnProperty,IV=new Map,TV=/[A-Z]/g,EV=new Set(["table","tbody","thead","tfoot","tr"]),RV=new Set(["td","th"]),b7="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function y5(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=DV(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=zV(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"?ud:n7,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=w7(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function w7(e,t,n){if(t.type==="element")return AV(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return FV(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return MV(e,t,n);if(t.type==="mdxjsEsm")return PV(e,t);if(t.type==="root")return LV(e,t,n);if(t.type==="text")return BV(e,t)}function AV(e,t,n){let r=e.schema,o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=ud,e.schema=o),e.ancestors.push(t);let i=S7(e,t.tagName,!1),a=NV(e,t),s=w5(e,t);return EV.has(t.tagName)&&(s=s.filter(function(u){return typeof u=="string"?!o5(u):!0})),v7(e,a,i,t),b5(a,s),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function FV(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)}kl(e,t.position)}function PV(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);kl(e,t.position)}function MV(e,t,n){let r=e.schema,o=r;t.name==="svg"&&r.space==="html"&&(o=ud,e.schema=o),e.ancestors.push(t);let i=t.name===null?e.Fragment:S7(e,t.name,!0),a=_V(e,t),s=w5(e,t);return v7(e,a,i,t),b5(a,s),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LV(e,t,n){let r={};return b5(r,w5(e,t)),e.create(t,e.Fragment,r,n)}function BV(e,t){return t.value}function v7(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function b5(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function zV(e,t,n){return r;function r(o,i,a,s){let c=Array.isArray(a.children)?n:t;return s?c(i,a,s):c(i,a)}}function DV(e,t){return n;function n(r,o,i,a){let s=Array.isArray(i.children),u=Ka(r);return t(o,i,a,s,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function NV(e,t){let n={},r,o;for(o in t.properties)if(o!=="children"&&x5.call(t.properties,o)){let i=OV(e,o,t.properties[o]);if(i){let[a,s]=i;e.tableCellAlignToStyle&&a==="align"&&typeof s=="string"&&RV.has(t.tagName)?r=s:n[a]=s}}if(r){let i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function _V(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 a=i.expression;a.type;let s=a.properties[0];s.type,Object.assign(n,e.evaluater.evaluateExpression(s.argument))}else kl(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 s=r.value.data.estree.body[0];s.type,i=e.evaluater.evaluateExpression(s.expression)}else kl(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function w5(e,t){let n=[],r=-1,o=e.passKeys?new Map:IV;for(;++r<t.children.length;){let i=t.children[r],a;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;a=u+"-"+c,o.set(u,c+1)}}let s=w7(e,i,a);s!==void 0&&n.push(s)}return n}function OV(e,t,n){let r=p5(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?X6(n):r7(n)),r.property==="style"){let o=typeof n=="object"?n:$V(e,String(n));return e.stylePropertyNameCase==="css"&&(o=HV(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?d5[r.property]||r.property:r.attribute,n]}}function $V(e,t){try{return(0,y7.default)(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let r=n,o=new xn("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=b7+"#cannot-parse-style-attribute",o}}function S7(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){let o=t.split("."),i=-1,a;for(;++i<o.length;){let s=ad(o[i])?{type:"Identifier",name:o[i]}:{type:"Literal",value:o[i]};a=a?{type:"MemberExpression",object:a,property:s,computed:!!(i&&s.type==="Literal"),optional:!1}:s}r=a}else r=ad(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){let o=r.value;return x5.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);kl(e)}function kl(e,t){let n=new xn("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=b7+"#cannot-handle-mdx-estrees-without-createevaluater",n}function HV(e){let t={},n;for(n in e)x5.call(e,n)&&(t[UV(n)]=e[n]);return t}function UV(e){let t=e.replace(TV,jV);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function jV(e){return"-"+e.toLowerCase()}var Cl={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 JG,jsx as QG,jsxs as ZG}from"react/jsx-runtime";import{useEffect as Wve,useState as Gve}from"react";var VV={};function v5(e,t){let n=t||VV,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return C7(e,r,o)}function C7(e,t,n){if(WV(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 k7(e.children,t,n)}return Array.isArray(e)?k7(e,t,n):""}function k7(e,t,n){let r=[],o=-1;for(;++o<e.length;)r[o]=C7(e[o],t,n);return r.join("")}function WV(e){return!!(e&&typeof e=="object")}var I7=document.createElement("i");function Xa(e){let t="&"+e+";";I7.innerHTML=t;let n=I7.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function jn(e,t,n,r){let o=e.length,i=0,a;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i<r.length;)a=r.slice(i,i+1e4),a.unshift(t,0),e.splice(...a),i+=1e4,t+=1e4}function nr(e,t){return e.length>0?(jn(e,e.length,0,t),e):t}var T7={}.hasOwnProperty;function E7(e){let t={},n=-1;for(;++n<e.length;)GV(t,e[n]);return t}function GV(e,t){let n;for(n in t){let o=(T7.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){T7.call(o,a)||(o[a]=[]);let s=i[a];qV(o[a],Array.isArray(s)?s:s?[s]:[])}}}function qV(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);jn(e,0,0,r)}function gd(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 Rr=wi(/[A-Za-z]/),Nn=wi(/[\dA-Za-z]/),R7=wi(/[#-'*+\--9=?A-Z^-~]/);function Il(e){return e!==null&&(e<32||e===127)}var Tl=wi(/\d/),A7=wi(/[\dA-Fa-f]/),F7=wi(/[!-/:-@[-`{-~]/);function be(e){return e!==null&&e<-2}function yn(e){return e!==null&&(e<0||e===32)}function et(e){return e===-2||e===-1||e===32}var P7=wi(/\p{P}|\p{S}/u),M7=wi(/\s/);function wi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Vr(e){let t=[],n=-1,r=0,o=0;for(;++n<e.length;){let i=e.charCodeAt(n),a="";if(i===37&&Nn(e.charCodeAt(n+1))&&Nn(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(a=String.fromCharCode(i));else if(i>55295&&i<57344){let s=e.charCodeAt(n+1);i<56320&&s>56319&&s<57344?(a=String.fromCharCode(i,s),o=1):a="\uFFFD"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+o+1,a=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function ot(e,t,n,r){let o=r?r-1:Number.POSITIVE_INFINITY,i=0;return a;function a(u){return et(u)?(e.enter(n),s(u)):t(u)}function s(u){return et(u)&&i++<o?(e.consume(u),s):(e.exit(n),t(u))}}var L7={tokenize:YV};function YV(e){let t=e.attempt(this.parser.constructs.contentInitial,r,o),n;return t;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),ot(e,t,"linePrefix")}function o(s){return e.enter("paragraph"),i(s)}function i(s){let u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,a(s)}function a(s){if(s===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(s);return}return be(s)?(e.consume(s),e.exit("chunkText"),i):(e.consume(s),a)}}var z7={tokenize:KV},B7={tokenize:XV};function KV(e){let t=this,n=[],r=0,o,i,a;return s;function s(M){if(r<n.length){let z=n[r];return t.containerState=z[1],e.attempt(z[0].continuation,u,c)(M)}return c(M)}function u(M){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&x();let z=t.events.length,O=z,L;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){L=t.events[O][1].end;break}S(r);let N=z;for(;N<t.events.length;)t.events[N][1].end={...L},N++;return jn(t.events,O+1,0,t.events.slice(z)),t.events.length=N,c(M)}return s(M)}function c(M){if(r===n.length){if(!o)return g(M);if(o.currentConstruct&&o.currentConstruct.concrete)return f(M);t.interrupt=!!(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(B7,l,p)(M)}function l(M){return o&&x(),S(r),g(M)}function p(M){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,f(M)}function g(M){return t.containerState={},e.attempt(B7,d,f)(M)}function d(M){return r++,n.push([t.currentConstruct,t.containerState]),g(M)}function f(M){if(M===null){o&&x(),S(0),e.consume(M);return}return o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:o,contentType:"flow",previous:i}),y(M)}function y(M){if(M===null){I(e.exit("chunkFlow"),!0),S(0),e.consume(M);return}return be(M)?(e.consume(M),I(e.exit("chunkFlow")),r=0,t.interrupt=void 0,s):(e.consume(M),y)}function I(M,z){let O=t.sliceStream(M);if(z&&O.push(null),M.previous=i,i&&(i.next=M),i=M,o.defineSkip(M.start),o.write(O),t.parser.lazy[M.start.line]){let L=o.events.length;for(;L--;)if(o.events[L][1].start.offset<a&&(!o.events[L][1].end||o.events[L][1].end.offset>a))return;let N=t.events.length,m=N,v,k;for(;m--;)if(t.events[m][0]==="exit"&&t.events[m][1].type==="chunkFlow"){if(v){k=t.events[m][1].end;break}v=!0}for(S(r),L=N;L<t.events.length;)t.events[L][1].end={...k},L++;jn(t.events,m+1,0,t.events.slice(N)),t.events.length=L}}function S(M){let z=n.length;for(;z-- >M;){let O=n[z];t.containerState=O[1],O[0].exit.call(t,e)}n.length=M}function x(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function XV(e,t,n){return ot(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function S5(e){if(e===null||yn(e)||M7(e))return 1;if(P7(e))return 2}function Ja(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 El={name:"attention",resolveAll:JV,tokenize:QV};function JV(e,t){let n=-1,r,o,i,a,s,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 p={...e[r][1].end},g={...e[n][1].start};D7(p,-u),D7(g,u),a={type:u>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},s={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:{...a.start},end:{...s.end}},e[r][1].end={...a.start},e[n][1].start={...s.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=nr(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=nr(c,[["enter",o,t],["enter",a,t],["exit",a,t],["enter",i,t]]),c=nr(c,Ja(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=nr(c,[["exit",i,t],["enter",s,t],["exit",s,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(l=2,c=nr(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):l=0,jn(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 QV(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=S5(r),i;return a;function a(u){return i=u,e.enter("attentionSequence"),s(u)}function s(u){if(u===i)return e.consume(u),s;let c=e.exit("attentionSequence"),l=S5(u),p=!l||l===2&&o||n.includes(u),g=!o||o===2&&l||n.includes(r);return c._open=!!(i===42?p:p&&(o||!g)),c._close=!!(i===42?g:g&&(l||!p)),t(u)}}function D7(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var k5={name:"autolink",tokenize:ZV};function ZV(e,t,n){let r=0;return o;function o(d){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(d){return Rr(d)?(e.consume(d),a):d===64?n(d):c(d)}function a(d){return d===43||d===45||d===46||Nn(d)?(r=1,s(d)):c(d)}function s(d){return d===58?(e.consume(d),r=0,u):(d===43||d===45||d===46||Nn(d))&&r++<32?(e.consume(d),s):(r=0,c(d))}function u(d){return d===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):d===null||d===32||d===60||Il(d)?n(d):(e.consume(d),u)}function c(d){return d===64?(e.consume(d),l):R7(d)?(e.consume(d),c):n(d)}function l(d){return Nn(d)?p(d):n(d)}function p(d){return d===46?(e.consume(d),r=0,l):d===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):g(d)}function g(d){if((d===45||Nn(d))&&r++<63){let f=d===45?g:p;return e.consume(d),f}return n(d)}}var vi={partial:!0,tokenize:eW};function eW(e,t,n){return r;function r(i){return et(i)?ot(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||be(i)?t(i):n(i)}}var fd={continuation:{tokenize:nW},exit:rW,name:"blockQuote",tokenize:tW};function tW(e,t,n){let r=this;return o;function o(a){if(a===62){let s=r.containerState;return s.open||(e.enter("blockQuote",{_container:!0}),s.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),i}return n(a)}function i(a){return et(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function nW(e,t,n){let r=this;return o;function o(a){return et(a)?ot(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):i(a)}function i(a){return e.attempt(fd,t,n)(a)}}function rW(e){e.exit("blockQuote")}var md={name:"characterEscape",tokenize:oW};function oW(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 F7(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}var hd={name:"characterReference",tokenize:iW};function iW(e,t,n){let r=this,o=0,i,a;return s;function s(p){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),u}function u(p){return p===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(p),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),i=31,a=Nn,l(p))}function c(p){return p===88||p===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(p),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,a=A7,l):(e.enter("characterReferenceValue"),i=7,a=Tl,l(p))}function l(p){if(p===59&&o){let g=e.exit("characterReferenceValue");return a===Nn&&!Xa(r.sliceSerialize(g))?n(p):(e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(p)&&o++<i?(e.consume(p),l):n(p)}}var N7={partial:!0,tokenize:sW},xd={concrete:!0,name:"codeFenced",tokenize:aW};function aW(e,t,n){let r=this,o={partial:!0,tokenize:O},i=0,a=0,s;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,s=L,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(L)}function l(L){return L===s?(a++,e.consume(L),l):a<3?n(L):(e.exit("codeFencedFenceSequence"),et(L)?ot(e,p,"whitespace")(L):p(L))}function p(L){return L===null||be(L)?(e.exit("codeFencedFence"),r.interrupt?t(L):e.check(N7,y,z)(L)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(L))}function g(L){return L===null||be(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),p(L)):et(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ot(e,d,"whitespace")(L)):L===96&&L===s?n(L):(e.consume(L),g)}function d(L){return L===null||be(L)?p(L):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),f(L))}function f(L){return L===null||be(L)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),p(L)):L===96&&L===s?n(L):(e.consume(L),f)}function y(L){return e.attempt(o,z,I)(L)}function I(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),S}function S(L){return i>0&&et(L)?ot(e,x,"linePrefix",i+1)(L):x(L)}function x(L){return L===null||be(L)?e.check(N7,y,z)(L):(e.enter("codeFlowValue"),M(L))}function M(L){return L===null||be(L)?(e.exit("codeFlowValue"),x(L)):(e.consume(L),M)}function z(L){return e.exit("codeFenced"),t(L)}function O(L,N,m){let v=0;return k;function k(C){return L.enter("lineEnding"),L.consume(C),L.exit("lineEnding"),E}function E(C){return L.enter("codeFencedFence"),et(C)?ot(L,h,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(C):h(C)}function h(C){return C===s?(L.enter("codeFencedFenceSequence"),b(C)):m(C)}function b(C){return C===s?(v++,L.consume(C),b):v>=a?(L.exit("codeFencedFenceSequence"),et(C)?ot(L,F,"whitespace")(C):F(C)):m(C)}function F(C){return C===null||be(C)?(L.exit("codeFencedFence"),N(C)):m(C)}}}function sW(e,t,n){let r=this;return o;function o(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}var Rl={name:"codeIndented",tokenize:cW},lW={partial:!0,tokenize:uW};function cW(e,t,n){let r=this;return o;function o(c){return e.enter("codeIndented"),ot(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?a(c):n(c)}function a(c){return c===null?u(c):be(c)?e.attempt(lW,a,u)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||be(c)?(e.exit("codeFlowValue"),a(c)):(e.consume(c),s)}function u(c){return e.exit("codeIndented"),t(c)}}function uW(e,t,n){let r=this;return o;function o(a){return r.parser.lazy[r.now().line]?n(a):be(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):ot(e,i,"linePrefix",5)(a)}function i(a){let s=r.events[r.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):be(a)?o(a):n(a)}}var C5={name:"codeText",previous:pW,resolve:dW,tokenize:gW};function dW(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 pW(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function gW(e,t,n){let r=this,o=0,i,a;return s;function s(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?(a=e.enter("codeTextSequence"),i=0,p(g)):be(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||be(g)?(e.exit("codeTextData"),c(g)):(e.consume(g),l)}function p(g){return g===96?(e.consume(g),i++,p):i===o?(e.exit("codeTextSequence"),e.exit("codeText"),t(g)):(a.type="codeTextData",l(g))}}var yd=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&&Al(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),Al(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Al(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);Al(this.right,n.reverse())}else{let n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Al(this.left,n.reverse())}}};function Al(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 bd(e){let t={},n=-1,r,o,i,a,s,u,c,l=new yd(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,fW(l,n)),n=t[n],c=!0);else if(r[1]._container){for(i=n,o=void 0;i--;)if(a=l.get(i),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank")a[0]==="enter"&&(o&&(l.get(o)[1].type="lineEndingBlank"),a[1].type="lineEnding",o=i);else if(!(a[1].type==="linePrefix"||a[1].type==="listItemIndent"))break;o&&(r[1].end={...l.get(o)[1].start},s=l.slice(o,n),s.unshift(r),l.splice(o,n-o+1,s))}}return jn(e,0,Number.POSITIVE_INFINITY,l.slice(0)),!c}function fW(e,t){let n=e.get(t)[1],r=e.get(t)[2],o=t-1,i=[],a=n._tokenizer;a||(a=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(a._contentTypeTextTrailing=!0));let s=a.events,u=[],c={},l,p,g=-1,d=n,f=0,y=0,I=[y];for(;d;){for(;e.get(++o)[1]!==d;);i.push(o),d._tokenizer||(l=r.sliceStream(d),d.next||l.push(null),p&&a.defineSkip(d.start),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(l),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),p=d,d=d.next}for(d=n;++g<s.length;)s[g][0]==="exit"&&s[g-1][0]==="enter"&&s[g][1].type===s[g-1][1].type&&s[g][1].start.line!==s[g][1].end.line&&(y=g+1,I.push(y),d._tokenizer=void 0,d.previous=void 0,d=d.next);for(a.events=[],d?(d._tokenizer=void 0,d.previous=void 0):I.pop(),g=I.length;g--;){let S=s.slice(I[g],I[g+1]),x=i.pop();u.push([x,x+S.length-1]),e.splice(x,2,S)}for(u.reverse(),g=-1;++g<u.length;)c[f+u[g][0]]=f+u[g][1],f+=u[g][1]-u[g][0]-1;return c}var I5={resolve:hW,tokenize:xW},mW={partial:!0,tokenize:yW};function hW(e){return bd(e),e}function xW(e,t){let n;return r;function r(s){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(s)}function o(s){return s===null?i(s):be(s)?e.check(mW,a,i)(s):(e.consume(s),o)}function i(s){return e.exit("chunkContent"),e.exit("content"),t(s)}function a(s){return e.consume(s),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,o}}function yW(e,t,n){let r=this;return o;function o(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),ot(e,i,"linePrefix")}function i(a){if(a===null||be(a))return n(a);let s=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function wd(e,t,n,r,o,i,a,s,u){let c=u||Number.POSITIVE_INFINITY,l=0;return p;function p(S){return S===60?(e.enter(r),e.enter(o),e.enter(i),e.consume(S),e.exit(i),g):S===null||S===32||S===41||Il(S)?n(S):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),y(S))}function g(S){return S===62?(e.enter(i),e.consume(S),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(S))}function d(S){return S===62?(e.exit("chunkString"),e.exit(s),g(S)):S===null||S===60||be(S)?n(S):(e.consume(S),S===92?f:d)}function f(S){return S===60||S===62||S===92?(e.consume(S),d):d(S)}function y(S){return!l&&(S===null||S===41||yn(S))?(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(S)):l<c&&S===40?(e.consume(S),l++,y):S===41?(e.consume(S),l--,y):S===null||S===32||S===40||Il(S)?n(S):(e.consume(S),S===92?I:y)}function I(S){return S===40||S===41||S===92?(e.consume(S),y):y(S)}}function vd(e,t,n,r,o,i){let a=this,s=0,u;return c;function c(d){return e.enter(r),e.enter(o),e.consume(d),e.exit(o),e.enter(i),l}function l(d){return s>999||d===null||d===91||d===93&&!u||d===94&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):d===93?(e.exit(i),e.enter(o),e.consume(d),e.exit(o),e.exit(r),t):be(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),p(d))}function p(d){return d===null||d===91||d===93||be(d)||s++>999?(e.exit("chunkString"),l(d)):(e.consume(d),u||(u=!et(d)),d===92?g:p)}function g(d){return d===91||d===92||d===93?(e.consume(d),s++,p):p(d)}}function Sd(e,t,n,r,o,i){let a;return s;function s(g){return g===34||g===39||g===40?(e.enter(r),e.enter(o),e.consume(g),e.exit(o),a=g===40?41:g,u):n(g)}function u(g){return g===a?(e.enter(o),e.consume(g),e.exit(o),e.exit(r),t):(e.enter(i),c(g))}function c(g){return g===a?(e.exit(i),u(a)):g===null?n(g):be(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),ot(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(g))}function l(g){return g===a||g===null||be(g)?(e.exit("chunkString"),c(g)):(e.consume(g),g===92?p:l)}function p(g){return g===a||g===92?(e.consume(g),l):l(g)}}function Xi(e,t){let n;return r;function r(o){return be(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):et(o)?ot(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}var T5={name:"definition",tokenize:wW},bW={partial:!0,tokenize:vW};function wW(e,t,n){let r=this,o;return i;function i(d){return e.enter("definition"),a(d)}function a(d){return vd.call(r,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)}function s(d){return o=Go(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),d===58?(e.enter("definitionMarker"),e.consume(d),e.exit("definitionMarker"),u):n(d)}function u(d){return yn(d)?Xi(e,c)(d):c(d)}function c(d){return wd(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(d)}function l(d){return e.attempt(bW,p,p)(d)}function p(d){return et(d)?ot(e,g,"whitespace")(d):g(d)}function g(d){return d===null||be(d)?(e.exit("definition"),r.parser.defined.push(o),t(d)):n(d)}}function vW(e,t,n){return r;function r(s){return yn(s)?Xi(e,o)(s):n(s)}function o(s){return Sd(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function i(s){return et(s)?ot(e,a,"whitespace")(s):a(s)}function a(s){return s===null||be(s)?t(s):n(s)}}var E5={name:"hardBreakEscape",tokenize:SW};function SW(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return be(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}var R5={name:"headingAtx",resolve:kW,tokenize:CW};function kW(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"},jn(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function CW(e,t,n){let r=0;return o;function o(l){return e.enter("atxHeading"),i(l)}function i(l){return e.enter("atxHeadingSequence"),a(l)}function a(l){return l===35&&r++<6?(e.consume(l),a):l===null||yn(l)?(e.exit("atxHeadingSequence"),s(l)):n(l)}function s(l){return l===35?(e.enter("atxHeadingSequence"),u(l)):l===null||be(l)?(e.exit("atxHeading"),t(l)):et(l)?ot(e,s,"whitespace")(l):(e.enter("atxHeadingText"),c(l))}function u(l){return l===35?(e.consume(l),u):(e.exit("atxHeadingSequence"),s(l))}function c(l){return l===null||l===35||yn(l)?(e.exit("atxHeadingText"),s(l)):(e.consume(l),c)}}var _7=["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"],A5=["pre","script","style","textarea"];var F5={concrete:!0,name:"htmlFlow",resolveTo:EW,tokenize:RW},IW={partial:!0,tokenize:FW},TW={partial:!0,tokenize:AW};function EW(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 RW(e,t,n){let r=this,o,i,a,s,u;return c;function c(R){return l(R)}function l(R){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(R),p}function p(R){return R===33?(e.consume(R),g):R===47?(e.consume(R),i=!0,y):R===63?(e.consume(R),o=3,r.interrupt?t:T):Rr(R)?(e.consume(R),a=String.fromCharCode(R),I):n(R)}function g(R){return R===45?(e.consume(R),o=2,d):R===91?(e.consume(R),o=5,s=0,f):Rr(R)?(e.consume(R),o=4,r.interrupt?t:T):n(R)}function d(R){return R===45?(e.consume(R),r.interrupt?t:T):n(R)}function f(R){let te="CDATA[";return R===te.charCodeAt(s++)?(e.consume(R),s===te.length?r.interrupt?t:h:f):n(R)}function y(R){return Rr(R)?(e.consume(R),a=String.fromCharCode(R),I):n(R)}function I(R){if(R===null||R===47||R===62||yn(R)){let te=R===47,j=a.toLowerCase();return!te&&!i&&A5.includes(j)?(o=1,r.interrupt?t(R):h(R)):_7.includes(a.toLowerCase())?(o=6,te?(e.consume(R),S):r.interrupt?t(R):h(R)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(R):i?x(R):M(R))}return R===45||Nn(R)?(e.consume(R),a+=String.fromCharCode(R),I):n(R)}function S(R){return R===62?(e.consume(R),r.interrupt?t:h):n(R)}function x(R){return et(R)?(e.consume(R),x):k(R)}function M(R){return R===47?(e.consume(R),k):R===58||R===95||Rr(R)?(e.consume(R),z):et(R)?(e.consume(R),M):k(R)}function z(R){return R===45||R===46||R===58||R===95||Nn(R)?(e.consume(R),z):O(R)}function O(R){return R===61?(e.consume(R),L):et(R)?(e.consume(R),O):M(R)}function L(R){return R===null||R===60||R===61||R===62||R===96?n(R):R===34||R===39?(e.consume(R),u=R,N):et(R)?(e.consume(R),L):m(R)}function N(R){return R===u?(e.consume(R),u=null,v):R===null||be(R)?n(R):(e.consume(R),N)}function m(R){return R===null||R===34||R===39||R===47||R===60||R===61||R===62||R===96||yn(R)?O(R):(e.consume(R),m)}function v(R){return R===47||R===62||et(R)?M(R):n(R)}function k(R){return R===62?(e.consume(R),E):n(R)}function E(R){return R===null||be(R)?h(R):et(R)?(e.consume(R),E):n(R)}function h(R){return R===45&&o===2?(e.consume(R),A):R===60&&o===1?(e.consume(R),B):R===62&&o===4?(e.consume(R),D):R===63&&o===3?(e.consume(R),T):R===93&&o===5?(e.consume(R),_):be(R)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(IW,H,b)(R)):R===null||be(R)?(e.exit("htmlFlowData"),b(R)):(e.consume(R),h)}function b(R){return e.check(TW,F,H)(R)}function F(R){return e.enter("lineEnding"),e.consume(R),e.exit("lineEnding"),C}function C(R){return R===null||be(R)?b(R):(e.enter("htmlFlowData"),h(R))}function A(R){return R===45?(e.consume(R),T):h(R)}function B(R){return R===47?(e.consume(R),a="",P):h(R)}function P(R){if(R===62){let te=a.toLowerCase();return A5.includes(te)?(e.consume(R),D):h(R)}return Rr(R)&&a.length<8?(e.consume(R),a+=String.fromCharCode(R),P):h(R)}function _(R){return R===93?(e.consume(R),T):h(R)}function T(R){return R===62?(e.consume(R),D):R===45&&o===2?(e.consume(R),T):h(R)}function D(R){return R===null||be(R)?(e.exit("htmlFlowData"),H(R)):(e.consume(R),D)}function H(R){return e.exit("htmlFlow"),t(R)}}function AW(e,t,n){let r=this;return o;function o(a){return be(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function FW(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(vi,t,n)}}var P5={name:"htmlText",tokenize:PW};function PW(e,t,n){let r=this,o,i,a;return s;function s(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),O):T===63?(e.consume(T),M):Rr(T)?(e.consume(T),m):n(T)}function c(T){return T===45?(e.consume(T),l):T===91?(e.consume(T),i=0,f):Rr(T)?(e.consume(T),x):n(T)}function l(T){return T===45?(e.consume(T),d):n(T)}function p(T){return T===null?n(T):T===45?(e.consume(T),g):be(T)?(a=p,B(T)):(e.consume(T),p)}function g(T){return T===45?(e.consume(T),d):p(T)}function d(T){return T===62?A(T):T===45?g(T):p(T)}function f(T){let D="CDATA[";return T===D.charCodeAt(i++)?(e.consume(T),i===D.length?y:f):n(T)}function y(T){return T===null?n(T):T===93?(e.consume(T),I):be(T)?(a=y,B(T)):(e.consume(T),y)}function I(T){return T===93?(e.consume(T),S):y(T)}function S(T){return T===62?A(T):T===93?(e.consume(T),S):y(T)}function x(T){return T===null||T===62?A(T):be(T)?(a=x,B(T)):(e.consume(T),x)}function M(T){return T===null?n(T):T===63?(e.consume(T),z):be(T)?(a=M,B(T)):(e.consume(T),M)}function z(T){return T===62?A(T):M(T)}function O(T){return Rr(T)?(e.consume(T),L):n(T)}function L(T){return T===45||Nn(T)?(e.consume(T),L):N(T)}function N(T){return be(T)?(a=N,B(T)):et(T)?(e.consume(T),N):A(T)}function m(T){return T===45||Nn(T)?(e.consume(T),m):T===47||T===62||yn(T)?v(T):n(T)}function v(T){return T===47?(e.consume(T),A):T===58||T===95||Rr(T)?(e.consume(T),k):be(T)?(a=v,B(T)):et(T)?(e.consume(T),v):A(T)}function k(T){return T===45||T===46||T===58||T===95||Nn(T)?(e.consume(T),k):E(T)}function E(T){return T===61?(e.consume(T),h):be(T)?(a=E,B(T)):et(T)?(e.consume(T),E):v(T)}function h(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),o=T,b):be(T)?(a=h,B(T)):et(T)?(e.consume(T),h):(e.consume(T),F)}function b(T){return T===o?(e.consume(T),o=void 0,C):T===null?n(T):be(T)?(a=b,B(T)):(e.consume(T),b)}function F(T){return T===null||T===34||T===39||T===60||T===61||T===96?n(T):T===47||T===62||yn(T)?v(T):(e.consume(T),F)}function C(T){return T===47||T===62||yn(T)?v(T):n(T)}function A(T){return T===62?(e.consume(T),e.exit("htmlTextData"),e.exit("htmlText"),t):n(T)}function B(T){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),P}function P(T){return et(T)?ot(e,_,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(T):_(T)}function _(T){return e.enter("htmlTextData"),a(T)}}var Ji={name:"labelEnd",resolveAll:zW,resolveTo:DW,tokenize:NW},MW={tokenize:_W},LW={tokenize:OW},BW={tokenize:$W};function zW(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&&jn(e,0,e.length,n),e}function DW(e,t){let n=e.length,r=0,o,i,a,s;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(a){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"&&(a=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[a][1].end}},l={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[a-2][1].start}};return s=[["enter",u,t],["enter",c,t]],s=nr(s,e.slice(i+1,i+r+3)),s=nr(s,[["enter",l,t]]),s=nr(s,Ja(t.parser.constructs.insideSpan.null,e.slice(i+r+4,a-3),t)),s=nr(s,[["exit",l,t],e[a-2],e[a-1],["exit",c,t]]),s=nr(s,e.slice(a+1)),s=nr(s,[["exit",u,t]]),jn(e,i,e.length,s),e}function NW(e,t,n){let r=this,o=r.events.length,i,a;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 s;function s(g){return i?i._inactive?p(g):(a=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(MW,l,a?l:p)(g):g===91?e.attempt(LW,l,a?c:p)(g):a?l(g):p(g)}function c(g){return e.attempt(BW,l,p)(g)}function l(g){return t(g)}function p(g){return i._balanced=!0,n(g)}}function _W(e,t,n){return r;function r(p){return e.enter("resource"),e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),o}function o(p){return yn(p)?Xi(e,i)(p):i(p)}function i(p){return p===41?l(p):wd(e,a,s,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function a(p){return yn(p)?Xi(e,u)(p):l(p)}function s(p){return n(p)}function u(p){return p===34||p===39||p===40?Sd(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):l(p)}function c(p){return yn(p)?Xi(e,l)(p):l(p)}function l(p){return p===41?(e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),e.exit("resource"),t):n(p)}}function OW(e,t,n){let r=this;return o;function o(s){return vd.call(r,e,i,a,"reference","referenceMarker","referenceString")(s)}function i(s){return r.parser.defined.includes(Go(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(s):n(s)}function a(s){return n(s)}}function $W(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 M5={name:"labelStartImage",resolveAll:Ji.resolveAll,tokenize:HW};function HW(e,t,n){let r=this;return o;function o(s){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(s),e.exit("labelImageMarker"),i}function i(s){return s===91?(e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelImage"),a):n(s)}function a(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}var L5={name:"labelStartLink",resolveAll:Ji.resolveAll,tokenize:UW};function UW(e,t,n){let r=this;return o;function o(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),i}function i(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}var Fl={name:"lineEnding",tokenize:jW};function jW(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),ot(e,t,"linePrefix")}}var Qi={name:"thematicBreak",tokenize:VW};function VW(e,t,n){let r=0,o;return i;function i(c){return e.enter("thematicBreak"),a(c)}function a(c){return o=c,s(c)}function s(c){return c===o?(e.enter("thematicBreakSequence"),u(c)):r>=3&&(c===null||be(c))?(e.exit("thematicBreak"),t(c)):n(c)}function u(c){return c===o?(e.consume(c),r++,u):(e.exit("thematicBreakSequence"),et(c)?ot(e,s,"whitespace")(c):s(c))}}var Jn={continuation:{tokenize:YW},exit:XW,name:"list",tokenize:qW},WW={partial:!0,tokenize:JW},GW={partial:!0,tokenize:KW};function qW(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,a=0;return s;function s(d){let f=r.containerState.type||(d===42||d===43||d===45?"listUnordered":"listOrdered");if(f==="listUnordered"?!r.containerState.marker||d===r.containerState.marker:Tl(d)){if(r.containerState.type||(r.containerState.type=f,e.enter(f,{_container:!0})),f==="listUnordered")return e.enter("listItemPrefix"),d===42||d===45?e.check(Qi,n,c)(d):c(d);if(!r.interrupt||d===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(d)}return n(d)}function u(d){return Tl(d)&&++a<10?(e.consume(d),u):(!r.interrupt||a<2)&&(r.containerState.marker?d===r.containerState.marker:d===41||d===46)?(e.exit("listItemValue"),c(d)):n(d)}function c(d){return e.enter("listItemMarker"),e.consume(d),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||d,e.check(vi,r.interrupt?n:l,e.attempt(WW,g,p))}function l(d){return r.containerState.initialBlankLine=!0,i++,g(d)}function p(d){return et(d)?(e.enter("listItemPrefixWhitespace"),e.consume(d),e.exit("listItemPrefixWhitespace"),g):n(d)}function g(d){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(d)}}function YW(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(vi,o,i);function o(s){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ot(e,t,"listItemIndent",r.containerState.size+1)(s)}function i(s){return r.containerState.furtherBlankLines||!et(s)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(s)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(GW,t,a)(s))}function a(s){return r.containerState._closeFlow=!0,r.interrupt=void 0,ot(e,e.attempt(Jn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function KW(e,t,n){let r=this;return ot(e,o,"listItemIndent",r.containerState.size+1);function o(i){let a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function XW(e){e.exit(this.containerState.type)}function JW(e,t,n){let r=this;return ot(e,o,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){let a=r.events[r.events.length-1];return!et(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}var kd={name:"setextUnderline",resolveTo:QW,tokenize:ZW};function QW(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 a={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",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function ZW(e,t,n){let r=this,o;return i;function i(c){let l=r.events.length,p;for(;l--;)if(r.events[l][1].type!=="lineEnding"&&r.events[l][1].type!=="linePrefix"&&r.events[l][1].type!=="content"){p=r.events[l][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),o=c,a(c)):n(c)}function a(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===o?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),et(c)?ot(e,u,"lineSuffix")(c):u(c))}function u(c){return c===null||be(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}var O7={tokenize:eG};function eG(e){let t=this,n=e.attempt(vi,r,e.attempt(this.parser.constructs.flowInitial,o,ot(e,e.attempt(this.parser.constructs.flow,o,e.attempt(I5,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 $7={resolveAll:V7()},H7=j7("string"),U7=j7("text");function j7(e){return{resolveAll:V7(e==="text"?tG:void 0),tokenize:t};function t(n){let r=this,o=this.parser.constructs[e],i=n.attempt(o,a,s);return a;function a(l){return c(l)?i(l):s(l)}function s(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 p=o[l],g=-1;if(p)for(;++g<p.length;){let d=p[g];if(!d.previous||d.previous.call(r,r.previous))return!0}return!1}}}function V7(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 tG(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,a=-1,s=0,u;for(;i--;){let c=o[i];if(typeof c=="string"){for(a=c.length;c.charCodeAt(a-1)===32;)s++,a--;if(a)break;a=-1}else if(c===-2)u=!0,s++;else if(c!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let c={type:n===e.length||u||s<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?a:r.start._bufferIndex+a,_index:r.start._index+i,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},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 B5={};Ee(B5,{attentionMarkers:()=>cG,contentInitial:()=>rG,disable:()=>uG,document:()=>nG,flow:()=>iG,flowInitial:()=>oG,insideSpan:()=>lG,string:()=>aG,text:()=>sG});var nG={42:Jn,43:Jn,45:Jn,48:Jn,49:Jn,50:Jn,51:Jn,52:Jn,53:Jn,54:Jn,55:Jn,56:Jn,57:Jn,62:fd},rG={91:T5},oG={[-2]:Rl,[-1]:Rl,32:Rl},iG={35:R5,42:Qi,45:[kd,Qi],60:F5,61:kd,95:Qi,96:xd,126:xd},aG={38:hd,92:md},sG={[-5]:Fl,[-4]:Fl,[-3]:Fl,33:M5,38:hd,42:El,60:[k5,P5],91:L5,92:[E5,md],93:Ji,95:El,96:C5},lG={null:[El,$7]},cG={null:[42,95]},uG={null:[]};function W7(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=[],a=[],s=[],u=!0,c={attempt:v(N),check:v(m),consume:z,enter:O,exit:L,interrupt:v(m,{interrupt:!0})},l={code:null,containerState:{},defineSkip:S,events:[],now:I,parser:e,previous:null,sliceSerialize:f,sliceStream:y,write:d},p=t.tokenize.call(l,c),g;return t.resolveAll&&i.push(t),l;function d(b){return a=nr(a,b),x(),a[a.length-1]!==null?[]:(k(t,0),l.events=Ja(i,l.events,l),l.events)}function f(b,F){return pG(y(b),F)}function y(b){return dG(a,b)}function I(){let{_bufferIndex:b,_index:F,line:C,column:A,offset:B}=r;return{_bufferIndex:b,_index:F,line:C,column:A,offset:B}}function S(b){o[b.line]=b.column,h()}function x(){let b;for(;r._index<a.length;){let F=a[r._index];if(typeof F=="string")for(b=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===b&&r._bufferIndex<F.length;)M(F.charCodeAt(r._bufferIndex));else M(F)}}function M(b){u=void 0,g=b,p=p(b)}function z(b){be(b)?(r.line++,r.column=1,r.offset+=b===-3?2:1,h()):b!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=b,u=!0}function O(b,F){let C=F||{};return C.type=b,C.start=I(),l.events.push(["enter",C,l]),s.push(C),C}function L(b){let F=s.pop();return F.end=I(),l.events.push(["exit",F,l]),F}function N(b,F){k(b,F.from)}function m(b,F){F.restore()}function v(b,F){return C;function C(A,B,P){let _,T,D,H;return Array.isArray(A)?te(A):"tokenize"in A?te([A]):R(A);function R(ne){return Te;function Te(ye){let de=ye!==null&&ne[ye],Fe=ye!==null&&ne.null,ge=[...Array.isArray(de)?de:de?[de]:[],...Array.isArray(Fe)?Fe:Fe?[Fe]:[]];return te(ge)(ye)}}function te(ne){return _=ne,T=0,ne.length===0?P:j(ne[T])}function j(ne){return Te;function Te(ye){return H=E(),D=ne,ne.partial||(l.currentConstruct=ne),ne.name&&l.parser.constructs.disable.null.includes(ne.name)?X(ye):ne.tokenize.call(F?Object.assign(Object.create(l),F):l,c,Y,X)(ye)}}function Y(ne){return u=!0,b(D,H),B}function X(ne){return u=!0,H.restore(),++T<_.length?j(_[T]):P}}}function k(b,F){b.resolveAll&&!i.includes(b)&&i.push(b),b.resolve&&jn(l.events,F,l.events.length-F,b.resolve(l.events.slice(F),l)),b.resolveTo&&(l.events=b.resolveTo(l.events,l))}function E(){let b=I(),F=l.previous,C=l.currentConstruct,A=l.events.length,B=Array.from(s);return{from:A,restore:P};function P(){r=b,l.previous=F,l.currentConstruct=C,l.events.length=A,s=B,h()}}function h(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function dG(e,t){let n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex,a;if(n===o)a=[e[n].slice(r,i)];else{if(a=e.slice(n,o),r>-1){let s=a[0];typeof s=="string"?a[0]=s.slice(r):a.shift()}i>0&&a.push(e[o].slice(0,i))}return a}function pG(e,t){let n=-1,r=[],o;for(;++n<e.length;){let i=e[n],a;if(typeof i=="string")a=i;else switch(i){case-5:{a="\r";break}case-4:{a=`
|
|
131
|
+
`,$me=_t.div(({theme:e})=>({width:"12px",height:"12px",borderRadius:"50%",border:"2px solid transparent",borderTopColor:e.textMutedColor,animation:`${ij} 0.8s linear infinite`,flexShrink:0})),aj=_t.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"})),Hme=_t.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"})),Ume=_t.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:`${oj} 2.5s ease-out ${e}s forwards`,pointerEvents:"none",zIndex:1e3}));var m6=_t.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"14px",fontWeight:300})),h6=_t.span(({theme:e,color:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"12px",fontWeight:500,color:t??e.color.mediumdark,whiteSpace:"nowrap"})),jme=_t.span(({theme:e,color:t})=>({fontSize:"12px",color:t??e.color.mediumdark})),sj=_t.span(({color:e})=>({fontWeight:700,color:e}));function lj(e,t){return t===0||e==="A"?{active:"green",label:"Matches design",tone:Ye.greenText,hint:"No differences found between the code and the Figma design."}:e==="B"?{active:"amber",label:"Minor differences",tone:Ye.amberText,hint:"Cosmetic gaps only (sub-pixel sizes or near-identical colors). Nothing visibly off."}:e==="D"?{active:"red",label:"Critical issues",tone:Ye.redText,hint:"At least one severe problem (e.g. broken/inaccessible, or a glaring visual break). See the list below."}:{active:"red",label:"Major differences",tone:Ye.redText,hint:"At least one clearly-wrong value (e.g. wrong brand color, font, size, or spacing). See the list below."}}var cj=_t.span({display:"block",marginTop:"6px"}),uj=_t.span(({theme:e})=>({display:"block",marginBottom:"4px",color:e.color.mediumdark})),j1=_t.span({display:"flex",alignItems:"center",gap:"6px",lineHeight:1.6}),V1=_t.span(({tone:e})=>({width:"8px",height:"8px",borderRadius:"50%",backgroundColor:e,flex:"0 0 auto"})),W1={red:Ye.red,amber:Ye.amber,green:Ye.green},dj=_t.span({display:"inline-flex",alignItems:"center",gap:"12px",whiteSpace:"nowrap",cursor:"help"}),pj=_t.span({display:"inline-flex",alignItems:"center",gap:"6px",padding:"6px 8px",borderRadius:"8px",background:"linear-gradient(180deg, #f1f3f5 0%, #e4e7eb 100%)",border:"1px solid #d1d5db",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.9), inset 0 -1px 0 rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.06)",flex:"0 0 auto"}),G1=_t.span(({tone:e,on:t})=>({width:"16px",height:"16px",borderRadius:"50%",flex:"0 0 auto",backgroundColor:t?e:`${e}1f`,boxShadow:t?`0 0 0 2px ${e}33, 0 0 12px ${e}cc, inset 0 1px 1px rgba(255,255,255,0.55)`:`inset 0 1px 2px rgba(0,0,0,0.12), inset 0 0 0 1px ${e}33`})),gj=_t.span(({tone:e,theme:t})=>({fontSize:"15px",fontWeight:t.typography.weight.bold,letterSpacing:"-0.01em",color:e})),fj=_t.span(({theme:e})=>({fontSize:e.typography.size.s1,fontFamily:e.typography.fonts.mono,color:e.color.mediumdark})),Vme=_t.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}})),Wme=_t.span(({theme:e})=>({color:e.color.mediumlight,fontSize:"12px"})),Gme=_t.span(({color:e=G})=>({display:"inline-block",fontSize:"12px",color:e,animation:`${nj} 1.2s ease-in-out infinite`,marginRight:"4px"})),qme=_t.span(({theme:e,variant:t="muted"})=>({fontSize:"12px",fontWeight:700,color:(()=>{switch(t){case"issues":return G;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 G;case"verifying":return"#7c3aed";default:return e.color.mediumdark}})(),whiteSpace:"nowrap",...t==="analyzing"||t==="verifying"?{animation:`${rj} 1.5s ease-in-out infinite`}:{}})),Yme=_t.span(({theme:e})=>({fontSize:"12px",fontWeight:400,color:e.color.mediumdark})),Kme=_t.span(({theme:e})=>({fontSize:"12px",color:e.color.mediumdark,fontWeight:400})),mj=_t.span({display:"inline-flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",animation:`${x6} 1.2s linear infinite`,flexShrink:0}),hj=({color:e=G})=>mt.createElement(mj,null,mt.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,a=12+Math.sin(o)*4,s=12+Math.cos(o)*10,u=12+Math.sin(o)*10;return mt.createElement("line",{key:n,x1:i,y1:a,x2:s,y2:u,stroke:e,strokeWidth:2,strokeLinecap:"round",opacity:.3+n/8*.7})}))),Xme=_t.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:`${y6} 0.3s ease-out`}));function xj(e){let[t,n]=ej(0);return tj(()=>{if(!e){n(0);return}let r=setInterval(()=>{n(o=>o+1)},1e3);return()=>clearInterval(r)},[e]),t}var yj=_t.span(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"13px",fontWeight:e.typography.weight.bold,color:e.color.mediumdark})),bj=_t.span(({theme:e})=>({width:"13px",height:"13px",borderRadius:"50%",border:`2px solid ${e.appBorderColor}`,borderTopColor:e.color.mediumdark,animation:`${x6} 0.8s linear infinite`,display:"inline-block",flexShrink:0})),b6=({isReviewing:e,isValidating:t,isChecking:n=!1,streamingStatus:r,issueCount:o=0,score:i,band:a,visualSimilarity:s,costUsd:u,inputTokens:c,outputTokens:l,showTimer:p=!0,cacheCreationTokens:g,cacheReadTokens:d,durationSeconds:f})=>{let y=xj(e||t||n),{featureFlags:I}=ue(),S=I.showCosts,x=3.65,M=m=>m<.01?`$${m.toFixed(4)}`:m<.1?`$${m.toFixed(3)}`:`$${m.toFixed(2)}`,z=m=>{let v=m*x;return v<.01?`\u20AA${v.toFixed(4)}`:v<.1?`\u20AA${v.toFixed(3)}`:`\u20AA${v.toFixed(2)}`},O=m=>m>=1e3?`${(m/1e3).toFixed(1)}K`:m.toString(),L=m=>m>=80?"score-high":m>=50?"score-medium":"score-low",N=m=>m>=80?"high":m>=50?"medium":"low";if(n)return mt.createElement(yj,null,mt.createElement(bj,null),"Comparing to design\u2026",p?` \xB7 ${y}s`:"");if(e)return mt.createElement(U1,null,mt.createElement("span",{style:{fontSize:"12px",color:"#9ca3af"}},y,"s \xB7 Esc to stop"));if(t)return mt.createElement(U1,null,mt.createElement(aj,null,mt.createElement("span",null,"\u2298"),o," issue",o!==1?"s":""),mt.createElement(m6,null,"|"),mt.createElement(h6,null,mt.createElement(hj,{color:"#7c3aed"}),mt.createElement(sj,{color:"#7c3aed"},"Verifying...")),p&&mt.createElement(mt.Fragment,null,mt.createElement(m6,null,"|"),mt.createElement(h6,null,mt.createElement("span",{style:{color:"#6b7280"}},y,"s"))));if(o>0||i!==void 0){let m=(c||0)+(l||0),k=(d||0)>0&&c?Math.round(d/c*100):0,E=b=>b>=80?"#16a34a":b>=50?"#ca8a04":"#dc2626",h=b=>b>=100?"\u25CF":b>=50?"\u25D0":"\u25CB";return mt.createElement(U1,null,(()=>{let b=lj(a,o);return mt.createElement(Co,{side:"bottom",align:"start",title:b.label,text:mt.createElement(mt.Fragment,null,b.hint,mt.createElement(cj,null,mt.createElement(uj,null,"The light shows the worst difference found:"),mt.createElement(j1,null,mt.createElement(V1,{tone:Ye.red}),"a major or critical difference"),mt.createElement(j1,null,mt.createElement(V1,{tone:Ye.amber}),"only minor differences"),mt.createElement(j1,null,mt.createElement(V1,{tone:Ye.green}),"matches the design")))},mt.createElement(dj,null,mt.createElement(pj,null,mt.createElement(G1,{tone:W1.red,on:b.active==="red"}),mt.createElement(G1,{tone:W1.amber,on:b.active==="amber"}),mt.createElement(G1,{tone:W1.green,on:b.active==="green"})),mt.createElement(gj,{tone:b.tone},b.label),mt.createElement(fj,null,"\xB7 ",o," issue",o!==1?"s":"",f!=null?` \xB7 ${f}s`:"")))})())}return null};import Gt,{useEffect as wj,useMemo as vj,useRef as N6,useState as _6}from"react";import{createPortal as Sj}from"react-dom";import{styled as An}from"storybook/theming";var w6=An.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"6px",width:"250px",height:"32px",padding:"0 8px",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius*2,boxShadow:"0 1px 2px 0 rgba(0,0,0,0.05)",cursor:"pointer",fontSize:"11px",color:e.color.defaultText,transition:"background-color 0.15s",flexShrink:0,"&:hover":{backgroundColor:e.background.hoverable},"& > svg":{width:"13px",height:"13px",flexShrink:0,color:e.color.mediumdark}})),q1=An.span(({tone:e})=>({width:"8px",height:"8px",borderRadius:"50%",flexShrink:0,backgroundColor:e})),v6=An.span({flex:1,minWidth:0,display:"inline-flex",alignItems:"baseline",gap:"5px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),S6=An.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText})),Y1=An.span(({theme:e})=>({color:e.color.mediumdark,fontFamily:e.typography.fonts.mono})),k6=An.span(({theme:e,open:t})=>({display:"inline-flex",flexShrink:0,color:e.color.mediumdark,transform:t?"rotate(180deg)":"none",transition:"transform 0.15s","& svg":{width:"13px",height:"13px",display:"block"}})),C6=An.div(({theme:e})=>({position:"fixed",zIndex:1e4,width:"320px",maxHeight:"320px",overflowY:"auto",backgroundColor:e.background.content,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius*2,boxShadow:"0 8px 24px rgba(0,0,0,0.16)",padding:"4px"})),I6=An.div(({theme:e})=>({padding:"8px 10px 6px",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"4px"})),T6=An.div(({theme:e})=>({fontSize:"10px",fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark})),E6=An.div(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark,marginTop:"2px"})),R6=An.button(({theme:e,active:t,child:n})=>({display:"flex",alignItems:"center",gap:"8px",width:"100%",padding:"7px 8px",paddingLeft:n?"20px":"8px",background:t?e.background.hoverable:"transparent",border:"none",borderRadius:e.appBorderRadius*1.5,cursor:"pointer",textAlign:"left",fontSize:"11px",color:e.color.defaultText,"&:hover":{background:e.background.hoverable}})),A6=An.span({display:"flex",flexDirection:"column",minWidth:0,flex:1,gap:"1px"}),F6=An.span({display:"inline-flex",alignItems:"center",gap:"6px",minWidth:0}),P6=An.span(({theme:e})=>({fontWeight:e.typography.weight.bold,color:e.color.defaultText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),M6=An.span(({theme:e})=>({fontSize:"10px",fontFamily:e.typography.fonts.mono,color:e.color.mediumdark,whiteSpace:"nowrap"})),L6=An.span(({theme:e})=>({fontSize:"9px",fontWeight:e.typography.weight.bold,letterSpacing:"0.03em",textTransform:"uppercase",color:Ye.green,backgroundColor:`${Ye.green}1a`,border:`1px solid ${Ye.green}33`,padding:"1px 5px",borderRadius:"999px",flexShrink:0})),B6=An.span(({theme:e,zero:t})=>({marginLeft:"auto",fontSize:"10px",fontFamily:e.typography.fonts.mono,color:t?Ye.green:e.color.mediumdark,backgroundColor:t?`${Ye.green}1a`:e.background.app,border:`1px solid ${e.appBorderColor}`,padding:"1px 6px",borderRadius:"999px",whiteSpace:"nowrap",flexShrink:0})),z6=An.span(({theme:e})=>({display:"inline-flex",flexShrink:0,color:e.color.secondary,"& svg":{width:"13px",height:"13px",display:"block"}})),D6=An.span(({theme:e})=>({color:e.color.mediumdark,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}));var O6=e=>e==="C"||e==="D"?Ye.red:e==="A"?Ye.green:Ye.amber,kj=e=>e.issuesCount??e.issues?.length??0,Cj=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],$6=e=>{let t=new Date(e);return`${Cj[t.getMonth()]} ${t.getDate()}`},H6=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`},U6=({reviews:e,currentReviewId:t,isNewReviewMode:n,onSelect:r,formatTime:o,bandOf:i,showStoryName:a,shortStoryName:s})=>{let[u,c]=_6(!1),[l,p]=_6(null),g=N6(null),d=N6(null),f=vj(()=>{let S=e.filter(x=>!x.parentReviewId);return S.length===0?null:S.reduce((x,M)=>new Date(M.createdAt).getTime()>new Date(x.createdAt).getTime()?M:x).id},[e]),y=!n&&t?e.find(S=>S.id===t):void 0,I=()=>{let S=g.current?.getBoundingClientRect();S&&p({top:S.bottom+6,left:S.left}),c(x=>!x)};return wj(()=>{if(!u)return;let S=()=>c(!1),x=O=>{O.key==="Escape"&&c(!1)},M=O=>{d.current&&d.current.contains(O.target)||c(!1)},z=window.setTimeout(()=>{window.addEventListener("mousedown",S),window.addEventListener("scroll",M,!0),window.addEventListener("keydown",x)},0);return()=>{window.clearTimeout(z),window.removeEventListener("mousedown",S),window.removeEventListener("scroll",M,!0),window.removeEventListener("keydown",x)}},[u]),Gt.createElement(Gt.Fragment,null,Gt.createElement(w6,{ref:g,onClick:I,title:"Review history"},Gt.createElement(ry,null),y&&Gt.createElement(q1,{tone:O6(i(y))}),Gt.createElement(v6,null,y?Gt.createElement(Gt.Fragment,null,Gt.createElement(S6,null,o(y.createdAt)),Gt.createElement(Y1,null,"\xB7 ",$6(y.createdAt)," ",H6(y.createdAt))):Gt.createElement(Y1,null,"Select a review\u2026")),Gt.createElement(k6,{open:u},Gt.createElement(ey,null))),u&&l&&Sj(Gt.createElement(C6,{ref:d,style:{top:l.top,left:l.left},onMouseDown:S=>S.stopPropagation()},Gt.createElement(I6,null,Gt.createElement(T6,null,"Review history"),Gt.createElement(E6,null,"Choose which saved review to inspect")),e.map(S=>{let x=kj(S),M=!n&&S.id===t,z=!!S.parentReviewId;return Gt.createElement(R6,{key:S.id,active:M,child:z,onClick:()=>{r(S.id),c(!1)}},Gt.createElement(q1,{tone:O6(i(S))}),Gt.createElement(A6,null,Gt.createElement(F6,null,Gt.createElement(P6,null,z&&S.iterationNumber?`Iter ${S.iterationNumber} \xB7 `:"",o(S.createdAt)),S.id===f&&Gt.createElement(L6,null,"Latest"),a&&S.storyId&&Gt.createElement(D6,null,s(S.storyId))),Gt.createElement(M6,null,$6(S.createdAt)," \xB7 ",H6(S.createdAt))),Gt.createElement(B6,{zero:x===0},x," issue",x!==1?"s":""),M&&Gt.createElement(z6,null,Gt.createElement(ty,null)))})),document.body))};au();De();var Rj=hn.div({display:"flex",flexDirection:"column",alignItems:"stretch",gap:"0",marginBottom:"16px"}),khe=hn.div({display:"flex",gap:"8px",alignItems:"center"}),W6=Ej({from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}),Aj=hn.span({display:"inline-block",width:"16px",height:"16px",borderRadius:"50%",border:"2px solid rgba(255, 255, 255, 0.35)",borderTopColor:"#ffffff",animation:`${W6} 0.8s linear infinite`,marginRight:"8px",verticalAlign:"middle"}),Fj=hn.span({display:"inline-block",width:"12px",height:"12px",borderRadius:"50%",border:"2px solid currentColor",borderTopColor:"transparent",opacity:.7,animation:`${W6} 0.8s linear infinite`}),j6=hn.span({display:"inline-flex",alignItems:"center",marginRight:"7px","& svg":{width:"12px",height:"12px",display:"block"}}),Pj=hn.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin}px`,padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.2}px`,backgroundColor:e.background.content,borderBottom:`1px solid ${e.appBorderColor}`,flexWrap:"wrap"})),Mj=hn.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:G},o=t==="purple"||t==="yellow"?"124, 58, 237":t==="orange"?"234, 88, 12":"255, 107, 53";return{display:"inline-flex",alignItems:"center",width:"auto",height:"32px",backgroundColor:r[t],color:e.color.inverseText,border:"none",padding:"0 14px",fontSize:"12px",fontWeight:e.typography.weight.bold,borderRadius:e.appBorderRadius*1.5,cursor:n?"not-allowed":"pointer",opacity:n?.6:1,whiteSpace:"nowrap",transition:"background-color 0.15s, opacity 0.15s",boxShadow:n?"none":`0 1px 2px rgba(${o}, 0.25)`,flexShrink:0,"&:hover":{opacity:n?.6:1,filter:n?"none":"brightness(0.92)"}}}),Lj=hn.div(({theme:e})=>({marginTop:"8px",fontSize:"12px",color:e.color.warning||"#f59e0b",display:"flex",alignItems:"center",gap:"6px"})),Bj=hn.span(({theme:e})=>({fontSize:"11px",fontWeight:e.typography.weight.regular,color:e.color.mediumdark,marginLeft:`${e.layoutMargin*.4}px`,cursor:"help",overflow:"hidden",textOverflow:"ellipsis"})),zj=hn.div(({tone:e,theme:t})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",marginTop:`${t.layoutMargin*.8}px`,padding:"10px 8px 10px 16px",borderRadius:t.appBorderRadius*2,backgroundColor:t.background.content,border:`1px solid ${e?`${e}40`:t.appBorderColor}`,boxShadow:"0 1px 2px 0 rgba(0,0,0,0.05)"})),Dj=hn.div(({theme:e})=>({display:"flex",alignItems:"baseline",gap:"4px",flex:"1 1 auto",minWidth:"110px",overflow:"hidden",textOverflow:"ellipsis",fontSize:"12px",fontWeight:e.typography.weight.bold,color:e.color.defaultText,whiteSpace:"nowrap"})),Nj=hn.div({marginLeft:"auto",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",minWidth:0,flexShrink:0}),_j=hn.div({marginLeft:"auto",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",minWidth:0}),Oj=hn.button(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:"6px",height:"28px",padding:"0 10px",borderRadius:e.appBorderRadius*1.5,border:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.content,color:e.color.mediumdark,fontSize:"11px",fontWeight:e.typography.weight.bold,cursor:"pointer",whiteSpace:"nowrap",transition:"background-color 0.15s, opacity 0.15s",flexShrink:0,"& svg":{width:"12px",height:"12px",display:"block"},"&:hover":{backgroundColor:e.background.hoverable},"&:disabled":{opacity:.5,cursor:"not-allowed"}})),$j=hn.span(({theme:e})=>({fontSize:e.typography.size.s1,fontWeight:e.typography.weight.bold,letterSpacing:"0.06em",textTransform:"uppercase",color:e.color.mediumdark,whiteSpace:"nowrap"})),V6=hn.div(({theme:e})=>({width:"1px",height:"14px",backgroundColor:e.appBorderColor,flexShrink:0})),Hj=hn.div(({theme:e})=>({display:"flex",alignItems:"center",flexWrap:"wrap",gap:`${e.layoutMargin*1.2}px`,rowGap:`${e.layoutMargin*.4}px`,padding:`${e.layoutMargin*.8}px ${e.layoutMargin*1.2}px`,backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`})),J1=hn.label(({theme:e,primary:t})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.6}px`,fontSize:"11px",color:t?e.color.defaultText:e.color.mediumdark,fontWeight:t?e.typography.weight.bold:e.typography.weight.regular,cursor:"pointer",userSelect:"none",whiteSpace:"nowrap",transition:"color 0.15s","&:hover":{color:e.color.defaultText}})),Q1=hn.div(({theme:e,checked:t,accent:n})=>({width:"26px",height:"15px",borderRadius:"8px",backgroundColor:t?n?G:Ox:e.appBorderColor||$x,position:"relative",transition:"background-color 0.2s ease",flexShrink:0})),Z1=hn.div(({checked:e})=>({width:"11px",height:"11px",borderRadius:"50%",backgroundColor:"#fff",position:"absolute",top:"2px",left:e?"13px":"2px",transition:"left 0.2s ease",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.2)"})),e5=hn.input({position:"absolute",opacity:0,width:0,height:0}),t5=()=>{let{sessionToken:e}=no(),{usageData:t}=he(),{selectedProjectId:n}=Ir(),{currentMapping:r,hasMapping:o}=Oi(),{loadingMapping:i,currentStoryId:a}=gt(),{startReview:s,cancelReview:u,isReviewing:c}=fh(),{isLoadingScreenshots:l}=Di(),{storybookImageUrl:p,figmaImageUrl:g,currentReviewId:d,reviewHistory:f,setReviewDetailTab:y,setReviewResults:I,setReviewError:S,setFigmaImageUrl:x,setStorybookImageUrl:M,setFullPrompt:z,setFullResponse:O,includeTextComparison:L,setIncludeTextComparison:N,usePromptCache:m,setUsePromptCache:v,isValidating:k,validationUsage:E,isGenerating:h,isApplying:b,streamingStatus:F,featureFlags:C,userRole:A,roleOverride:B,isReviewing:P,isNewReviewMode:_,setNewReviewMode:T,setIsSpecChecking:D,reviewError:H,reviewRetryNonce:R,requestReviewRetry:te}=ue(),j=t?.reviewCredits??t?.creditBalance??0,[Y,X]=X1(!1),[ne,Te]=X1(!1),[ye,de]=X1(0);K1(()=>{if(!ne)return;de(0);let lt=setInterval(()=>de(He=>He+1),1e3);return()=>clearInterval(lt)},[ne]);let Fe=f.find(lt=>lt.id===d),Me=(Fe?.issues||[]).filter(lt=>!lt.dismissed).length,pe=Fe?_1(Fe):null,Mt=pe?.score,Yt=pe?.band,Lt=Fe?.visualSimilarity,wt=(Fe?.costUsd||0)+(E?.costUsd||0),Ar=(Fe?.inputTokens||0)+(E?.inputTokens||0),je=(Fe?.outputTokens||0)+(E?.outputTokens||0),Qe=Ij(()=>{let lt=a?f.filter(it=>it.storyId===a):f,He=lt.filter(it=>!it.parentReviewId).sort((it,vt)=>new Date(vt.createdAt).getTime()-new Date(it.createdAt).getTime()),or=lt.filter(it=>it.parentReviewId),$n=[];for(let it of He){$n.push(it);let vt=or.filter(Cn=>Cn.parentReviewId===it.id).sort((Cn,tt)=>(Cn.iterationNumber||0)-(tt.iterationNumber||0));$n.push(...vt)}let qe=or.filter(it=>!He.some(vt=>vt.id===it.parentReviewId));return $n.push(...qe),$n},[f,a]);K1(()=>{if(!c)return;let lt=He=>{He.key==="Escape"&&(He.preventDefault(),u())};return window.addEventListener("keydown",lt),()=>window.removeEventListener("keydown",lt)},[c,u]);let pt=o&&r?.figmaNodeId,Ot=h||b,_n=(B??A)==="admin",V=j>0||_n,ee=!!(e&&n&&!c&&!l&&!Ot&&a&&p&&pt&&g&&V),le=!!(e&&n&&!c&&!ne&&!Ot&&a&&pt),U=!!d&&!_,oe=e?n?a?pt?Ot?"Wait for fixes to complete\u2026":Y&&l?"Loading screenshots\u2026":Y&&!p?"Waiting for Storybook screenshot\u2026":Y&&!g?"Waiting for Figma design image\u2026":Y&&!V?"No credits \u2014 click \u26A1 in the toolbar to get more":null:'Figma mapping required \u2014 use "Map to Figma" in the Review tab':"No story selected":"Please select a project first":`Please connect to ${jt.NAME} first`,xe=c||k||ne,we=Qe.length>0,me=!P&&(k||!!Fe),fe=async(lt=!1)=>{if(!a){console.error("[ReviewActions] No story selected");return}try{y("chat"),await s({isIteration:lt,parentReviewId:lt?d:void 0})}catch(He){console.error("[ReviewActions] Review error:",He)}},Le=async()=>{if(!a||!n)return;Te(!0),D(!0),S(null),y("issues");let lt=Date.now();try{let He=Qs(),or=await fetch(`${K()}/api/specs/diff`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({projectId:n,storyId:a,figmaNodeId:r?.figmaNodeId,domTree:He})}),$n=await or.json().catch(()=>({}));if(!or.ok||!$n.success){let tt=$n?.error||`Spec check failed (HTTP ${or.status})`;console.error("[ReviewActions] Spec check failed:",tt),S(nl(new Error(tt)));return}let qe=tt=>/color|fill|stroke/i.test(tt)?"color":/padding|gap|margin|spacing|itemSpacing/i.test(tt)?"spacing":/font|lineHeight|letterSpacing|typography/i.test(tt)?"typography":/radius|corner/i.test(tt)?"border":"visual",it=($n.issues||[]).map((tt,se)=>({id:`spec-${se}`,dbId:tt.dbId,type:qe(tt.property),severity:tt.severity,title:`${tt.property} mismatch`,description:`Design expects ${tt.expected}; code has ${tt.actual}.`,property:tt.property,currentValue:tt.actual,suggestedValue:tt.expected,detectedBy:"spec-diff",status:tt.dismissed?"dismissed":"open",dismissed:tt.dismissed??!1,dismissReason:tt.dismissReason,dismissedBy:tt.dismissedBy})),vt=kt.getState(),Cn=vt.currentMapping?.figmaFileUrl||vt.figmaImageUrl||void 0;I({id:$n.validationId,storyId:a,complianceScore:$n.complianceScore,issuesCount:it.filter(tt=>!tt.dismissed).length,issues:it,createdAt:new Date,timestamp:new Date().toISOString(),reviewDurationMs:Date.now()-lt,figmaImageData:Cn,storybookImageData:vt.storybookImageUrl||void 0})}catch(He){console.error("[ReviewActions] Spec check error:",He),S(nl(He))}finally{Te(!1),D(!1)}},Tt=()=>{T(!0),Y?fe(!1):Le()},nn=Tj(R);K1(()=>{R!==nn.current&&(nn.current=R,Tt())},[R]);let On=lt=>{if(lt){let He=f.find(or=>or.id===lt);He&&(I({id:He.id,componentId:He.componentId,storyId:He.storyId,modelId:He.modelId,complianceScore:He.complianceScore,issuesCount:He.issuesCount,issues:He.issues,createdAt:new Date(He.createdAt),visualSimilarity:He.visualSimilarity,timestamp:new Date(He.createdAt).toISOString(),costUsd:He.costUsd,inputTokens:He.inputTokens,outputTokens:He.outputTokens,cacheCreationTokens:He.cacheCreationTokens,cacheReadTokens:He.cacheReadTokens,reviewDurationMs:He.reviewDurationMs}),He.figmaImageData&&x(He.figmaImageData),He.storybookImageData&&M(He.storybookImageData),(B??A)==="admin"&&(z(He.aiPrompt||""),O(He.aiResponse||"")),y("issues"))}},Qd=lt=>{let He=new Date(lt),$n=new Date().getTime()-He.getTime(),qe=Math.floor($n/6e4),it=Math.floor($n/36e5),vt=Math.floor($n/864e5);return qe<1?"Just now":qe<60?`${qe}m ago`:it<24?`${it}h ago`:vt<7?`${vt}d ago`:He.toLocaleDateString()},is=lt=>{let He=lt.split("--"),or=He[He.length-1]||lt;return or.charAt(0).toUpperCase()+or.slice(1)},qr=(B??A)==="admin",Ge=qr||!!C.enableAiReview,as=()=>{Tt()},ss=Qe.length>0?Ce.createElement(U6,{reviews:Qe,currentReviewId:d,isNewReviewMode:_,onSelect:On,formatTime:Qd,bandOf:lt=>_1(lt).band,showStoryName:!a,shortStoryName:is}):null;return Ce.createElement("div",null,Ce.createElement(Rj,null,Ge&&Ce.createElement(Hj,null,Ce.createElement(J1,{primary:!0,title:"Full AI review \u2014 deep visual analysis (shadows, layout, content). Uses AI credits.",style:c||ne?{opacity:.5,cursor:"not-allowed"}:void 0},Ce.createElement(e5,{type:"checkbox",checked:Y,disabled:c||ne,onChange:lt=>X(lt.target.checked)}),Ce.createElement(Q1,{checked:Y,accent:!0},Ce.createElement(Z1,{checked:Y})),"AI review"),Y&&C.enableModelSelection&&Ce.createElement(Ce.Fragment,null,Ce.createElement(V6,null),Ce.createElement($j,null,"Models"),Ce.createElement(p6,null)),Y&&qr&&Ce.createElement(Ce.Fragment,null,Ce.createElement(V6,null),Ce.createElement(Co,{side:"bottom",align:"center",text:"Also compare the text content between the Figma design and the Storybook component."},Ce.createElement(J1,null,Ce.createElement(e5,{type:"checkbox",checked:L,onChange:lt=>N(lt.target.checked)}),Ce.createElement(Q1,{checked:L},Ce.createElement(Z1,{checked:L})),"Compare text")),C.showCosts&&Ce.createElement(Co,{side:"bottom",align:"center",text:"Cache the prompt for 5 minutes to cut cost on repeat reviews (dev optimization)."},Ce.createElement(J1,null,Ce.createElement(e5,{type:"checkbox",checked:m,onChange:lt=>v(lt.target.checked)}),Ce.createElement(Q1,{checked:m},Ce.createElement(Z1,{checked:m})),"Cache prompt")))),!Ge&&Ce.createElement(f6,null),!me&&Ce.createElement(Pj,null,Ce.createElement(Dj,null,c||ne?"Comparing to design\u2026":we?"Ready for a new review":"Ready to compare",!Y&&!we&&!c&&!ne&&Ce.createElement(Bj,{title:"Won't catch shadows, layout, missing elements, icons or content \u2014 run a full AI review for those."},"\u2014 checks color, font, spacing, radius, border.")),Ce.createElement(Nj,null,ss,Ce.createElement(Mj,{variant:c||ne?"yellow":"orange",disabled:c?!1:U?!0:!!H||(Y?!ee:!le),onClick:c?u:Tt,title:c?"Click to stop review":U?'Switch to "Current" to run a new review':e?n?a?pt?l?"Loading screenshots...":Ot?"Wait for fixes to complete...":p?g?V?"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 ${jt.NAME} first`},c||ne?Ce.createElement(Ce.Fragment,null,Ce.createElement(Aj,null),ne?`Checking\u2026 ${ye}s`:"Stop"):we?Ce.createElement(Ce.Fragment,null,Ce.createElement(j6,null,Ce.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ce.createElement("polyline",{points:"23 4 23 10 17 10"}),Ce.createElement("polyline",{points:"1 20 1 14 7 14"}),Ce.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"}))),"Run new review"):Ce.createElement(Ce.Fragment,null,Ce.createElement(j6,null,Ce.createElement("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"},Ce.createElement("path",{d:"M8 5v14l11-7z"}))),Y?"Run AI review":"Compare to design")))),me&&Ce.createElement(zj,{tone:ne||!Yt?null:Yt==="A"?Ye.green:Yt==="B"?Ye.amber:Ye.red},Ce.createElement(b6,{isReviewing:!1,isValidating:k,isChecking:ne,streamingStatus:F,issueCount:Me,score:Mt,band:Yt,visualSimilarity:Lt,costUsd:wt||Fe?.costUsd,inputTokens:Ar||Fe?.inputTokens,outputTokens:je||Fe?.outputTokens,cacheCreationTokens:Fe?.cacheCreationTokens,cacheReadTokens:Fe?.cacheReadTokens,durationSeconds:Fe?.reviewDurationMs?Math.max(1,Math.round(Fe.reviewDurationMs/1e3)):void 0}),Ce.createElement(_j,null,ss,Ce.createElement(Oj,{type:"button",onClick:as,disabled:xe||(Y?!ee:!le),title:oe??(Y?"Run a fresh AI review against the current code":"Re-run the spec check against the current code")},xe?Ce.createElement(Ce.Fragment,null,Ce.createElement(Fj,null),ne?`Checking\u2026 ${ye}s`:"Running\u2026"):Ce.createElement(Ce.Fragment,null,Ce.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},Ce.createElement("polyline",{points:"23 4 23 10 17 10"}),Ce.createElement("polyline",{points:"1 20 1 14 7 14"}),Ce.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"})),"Run new review"))))),!pt&&!i&&Ce.createElement(Lj,null,'\u26A0\uFE0F Figma mapping required. Use "Map to Figma" button to link this story to a Figma frame before reviewing.'))};import The,{useState as Ehe}from"react";import{styled as G6}from"storybook/theming";var Fhe=G6.div(({theme:e})=>({display:"flex",borderBottom:`1px solid ${e.appBorderColor}`,marginBottom:"12px",gap:"4px"})),Phe=G6(Jo)({padding:"8px 12px",fontSize:"12px"});import Bhe,{useState as zhe}from"react";import{styled as n5}from"storybook/theming";Se();De();Ue();ut();var Uhe=n5.div(({theme:e})=>({display:"flex",alignItems:"center",gap:"12px",padding:"12px",backgroundColor:e.background.app,border:`1px solid ${e.appBorderColor}`,borderRadius:"6px",fontSize:"13px"})),jhe=n5(fo)({padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"}),Vhe=n5.span(({theme:e})=>({color:e.textMutedColor,fontSize:"12px",flex:1}));import qhe from"react";import{styled as Uj}from"storybook/theming";var Xhe=Uj.div(({theme:e})=>({border:`2px dashed ${e.appBorderColor}`,borderRadius:"8px",padding:"40px",textAlign:"center",marginBottom:"20px",backgroundColor:e.background.app}));Se();import Zhe from"react";import{styled as Io}from"storybook/theming";var n1e=Io.div(({theme:e})=>({marginBottom:"16px",border:`1px solid ${e.appBorderColor}`,borderRadius:"8px",overflow:"hidden",backgroundColor:e.background.content})),r1e=Io.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",backgroundColor:e.background.app,borderBottom:`1px solid ${e.appBorderColor}`})),o1e=Io.div({display:"flex",alignItems:"center",gap:"8px",flex:1}),i1e=Io.div(({theme:e})=>({fontSize:"14px",fontWeight:600,color:e.color.defaultText})),a1e=Io.div(({theme:e})=>({flex:1,height:"4px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden",marginLeft:"12px"})),s1e=Io.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"})),l1e=Io.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontWeight:500,minWidth:"40px",textAlign:"right"})),c1e=Io.div(({theme:e})=>({padding:"16px",backgroundColor:e.background.app,textAlign:"center"})),u1e=Io.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)"}}})),d1e=Io.span(({theme:e})=>({fontSize:"12px",color:e.textMutedColor,fontStyle:"italic"}));Se();import f1e,{useState as m1e}from"react";import{styled as To}from"storybook/theming";var y1e=To.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)`}}),b1e=To.div({display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",userSelect:"none"}),w1e=To.div({display:"flex",alignItems:"center",gap:"8px"}),v1e=To.span({fontSize:"12px",opacity:.7}),S1e=To.span({fontSize:"13px",fontWeight:500}),k1e=To.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})),C1e=To.div({marginTop:"12px",fontSize:"11px"}),I1e=To.div({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px",marginBottom:"8px"}),T1e=To.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"})),E1e=To.span({fontSize:"12px"});Ue();De();import an from"react";import{styled as Ro}from"storybook/theming";import r5 from"react";import{styled as q6}from"storybook/theming";Se();var jj=q6.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin}px`,padding:`${e.layoutMargin}px`,border:`1px solid ${e.appBorderColor}`,borderRadius:e.appBorderRadius,backgroundColor:e.background.hoverable,fontFamily:e.typography.fonts.base,fontSize:e.typography.size.s2,color:e.color.defaultText})),Vj=q6.span({flex:1,lineHeight:1.4}),Y6=()=>{let{isAnonymous:e,oauthPending:t,signUpToSave:n}=no(),{currentReviewId:r}=ue();return!e||!r?null:r5.createElement(jj,null,r5.createElement(Vj,null,"This review lives only in this session \u2014 sign up free to keep it. Your project and results transfer automatically."),r5.createElement(Qt,{disabled:t,onClick:()=>n()},t?"Opening sign-in\u2026":"Sign up to save"))};import po,{useEffect as XX}from"react";import{styled as Nl}from"storybook/theming";Se();import ea,{useState as aq}from"react";import{styled as ts}from"storybook/theming";var K6={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 X6(e,t){let n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}var Wj=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Gj=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,qj={};function ad(e,t){return((t||qj).jsx?Gj:Wj).test(e)}var Yj=/[ \t\n\f\r]/g;function o5(e){return typeof e=="object"?e.type==="text"?J6(e.value):!1:J6(e)}function J6(e){return e.replace(Yj,"")===""}var Wo=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Wo.prototype.normal={};Wo.prototype.property={};Wo.prototype.space=void 0;function i5(e,t){let n={},r={};for(let o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new Wo(n,r,t)}function wl(e){return e.toLowerCase()}var Dn=class{constructor(t,n){this.attribute=n,this.property=t}};Dn.prototype.attribute="";Dn.prototype.booleanish=!1;Dn.prototype.boolean=!1;Dn.prototype.commaOrSpaceSeparated=!1;Dn.prototype.commaSeparated=!1;Dn.prototype.defined=!1;Dn.prototype.mustUseProperty=!1;Dn.prototype.number=!1;Dn.prototype.overloadedBoolean=!1;Dn.prototype.property="";Dn.prototype.spaceSeparated=!1;Dn.prototype.space=void 0;var vl={};Ee(vl,{boolean:()=>rt,booleanish:()=>cn,commaOrSpaceSeparated:()=>yr,commaSeparated:()=>yi,number:()=>re,overloadedBoolean:()=>sd,spaceSeparated:()=>Ut});var Kj=0,rt=qi(),cn=qi(),sd=qi(),re=qi(),Ut=qi(),yi=qi(),yr=qi();function qi(){return 2**++Kj}var a5=Object.keys(vl),Yi=class extends Dn{constructor(t,n,r,o){let i=-1;if(super(t,n),Q6(this,"space",o),typeof r=="number")for(;++i<a5.length;){let a=a5[i];Q6(this,a5[i],(r&vl[a])===vl[a])}}};Yi.prototype.defined=!0;function Q6(e,t,n){n&&(e[t]=n)}function jr(e){let t={},n={};for(let[r,o]of Object.entries(e.properties)){let i=new Yi(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[wl(r)]=r,n[wl(i.attribute)]=r}return new Wo(t,n,e.space)}var s5=jr({properties:{ariaActiveDescendant:null,ariaAtomic:cn,ariaAutoComplete:null,ariaBusy:cn,ariaChecked:cn,ariaColCount:re,ariaColIndex:re,ariaColSpan:re,ariaControls:Ut,ariaCurrent:null,ariaDescribedBy:Ut,ariaDetails:null,ariaDisabled:cn,ariaDropEffect:Ut,ariaErrorMessage:null,ariaExpanded:cn,ariaFlowTo:Ut,ariaGrabbed:cn,ariaHasPopup:null,ariaHidden:cn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Ut,ariaLevel:re,ariaLive:null,ariaModal:cn,ariaMultiLine:cn,ariaMultiSelectable:cn,ariaOrientation:null,ariaOwns:Ut,ariaPlaceholder:null,ariaPosInSet:re,ariaPressed:cn,ariaReadOnly:cn,ariaRelevant:null,ariaRequired:cn,ariaRoleDescription:Ut,ariaRowCount:re,ariaRowIndex:re,ariaRowSpan:re,ariaSelected:cn,ariaSetSize:re,ariaSort:null,ariaValueMax:re,ariaValueMin:re,ariaValueNow:re,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function ld(e,t){return t in e?e[t]:t}function cd(e,t){return ld(e,t.toLowerCase())}var Z6=jr({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:yi,acceptCharset:Ut,accessKey:Ut,action:null,allow:null,allowFullScreen:rt,allowPaymentRequest:rt,allowUserMedia:rt,alt:null,as:null,async:rt,autoCapitalize:null,autoComplete:Ut,autoFocus:rt,autoPlay:rt,blocking:Ut,capture:null,charSet:null,checked:rt,cite:null,className:Ut,cols:re,colSpan:null,content:null,contentEditable:cn,controls:rt,controlsList:Ut,coords:re|yi,crossOrigin:null,data:null,dateTime:null,decoding:null,default:rt,defer:rt,dir:null,dirName:null,disabled:rt,download:sd,draggable:cn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:rt,formTarget:null,headers:Ut,height:re,hidden:sd,high:re,href:null,hrefLang:null,htmlFor:Ut,httpEquiv:Ut,id:null,imageSizes:null,imageSrcSet:null,inert:rt,inputMode:null,integrity:null,is:null,isMap:rt,itemId:null,itemProp:Ut,itemRef:Ut,itemScope:rt,itemType:Ut,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:rt,low:re,manifest:null,max:null,maxLength:re,media:null,method:null,min:null,minLength:re,multiple:rt,muted:rt,name:null,nonce:null,noModule:rt,noValidate:rt,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:rt,optimum:re,pattern:null,ping:Ut,placeholder:null,playsInline:rt,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:rt,referrerPolicy:null,rel:Ut,required:rt,reversed:rt,rows:re,rowSpan:re,sandbox:Ut,scope:null,scoped:rt,seamless:rt,selected:rt,shadowRootClonable:rt,shadowRootDelegatesFocus:rt,shadowRootMode:null,shape:null,size:re,sizes:null,slot:null,span:re,spellCheck:cn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:re,step:null,style:null,tabIndex:re,target:null,title:null,translate:null,type:null,typeMustMatch:rt,useMap:null,value:cn,width:re,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Ut,axis:null,background:null,bgColor:null,border:re,borderColor:null,bottomMargin:re,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:rt,declare:rt,event:null,face:null,frame:null,frameBorder:null,hSpace:re,leftMargin:re,link:null,longDesc:null,lowSrc:null,marginHeight:re,marginWidth:re,noResize:rt,noHref:rt,noShade:rt,noWrap:rt,object:null,profile:null,prompt:null,rev:null,rightMargin:re,rules:null,scheme:null,scrolling:cn,standby:null,summary:null,text:null,topMargin:re,valueType:null,version:null,vAlign:null,vLink:null,vSpace:re,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:rt,disableRemotePlayback:rt,prefix:null,property:null,results:re,security:null,unselectable:null},space:"html",transform:cd});var e7=jr({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:yr,accentHeight:re,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:re,amplitude:re,arabicForm:null,ascent:re,attributeName:null,attributeType:null,azimuth:re,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:re,by:null,calcMode:null,capHeight:re,className:Ut,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:re,diffuseConstant:re,direction:null,display:null,dur:null,divisor:re,dominantBaseline:null,download:rt,dx:null,dy:null,edgeMode:null,editable:null,elevation:re,enableBackground:null,end:null,event:null,exponent:re,externalResourcesRequired:null,fill:null,fillOpacity:re,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:yi,g2:yi,glyphName:yi,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:re,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:re,horizOriginX:re,horizOriginY:re,id:null,ideographic:re,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:re,k:re,k1:re,k2:re,k3:re,k4:re,kernelMatrix:yr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:re,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:re,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:re,overlineThickness:re,paintOrder:null,panose1:null,path:null,pathLength:re,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Ut,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:re,pointsAtY:re,pointsAtZ:re,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:yr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:yr,rev:yr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:yr,requiredFeatures:yr,requiredFonts:yr,requiredFormats:yr,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:re,specularExponent:re,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:re,strikethroughThickness:re,string:null,stroke:null,strokeDashArray:yr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:re,strokeOpacity:re,strokeWidth:null,style:null,surfaceScale:re,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:yr,tabIndex:re,tableValues:null,target:null,targetX:re,targetY:re,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:yr,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:re,underlineThickness:re,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:re,values:null,vAlphabetic:re,vMathematical:re,vectorEffect:null,vHanging:re,vIdeographic:re,version:null,vertAdvY:re,vertOriginX:re,vertOriginY:re,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:re,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:ld});var l5=jr({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 c5=jr({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:cd});var u5=jr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}});var d5={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 Xj=/[A-Z]/g,t7=/-[a-z]/g,Jj=/^data[-\w.:]+$/i;function p5(e,t){let n=wl(t),r=t,o=Dn;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Jj.test(t)){if(t.charAt(4)==="-"){let i=t.slice(5).replace(t7,Zj);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{let i=t.slice(4);if(!t7.test(i)){let a=i.replace(Xj,Qj);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}o=Yi}return new o(r,t)}function Qj(e){return"-"+e.toLowerCase()}function Zj(e){return e.charAt(1).toUpperCase()}var n7=i5([s5,Z6,l5,c5,u5],"html"),ud=i5([s5,e7,l5,c5,u5],"svg");function r7(e){return e.join(" ").trim()}var y7=Kl(f7(),1);var pd=m7("end"),Ka=m7("start");function m7(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 m5(e){let t=Ka(e),n=pd(e);if(t&&n)return{start:t,end:n}}function bi(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?h7(e.position):"start"in e||"end"in e?h7(e):"line"in e||"column"in e?h5(e):""}function h5(e){return x7(e&&e.line)+":"+x7(e&&e.column)}function h7(e){return h5(e&&e.start)+"-"+h5(e&&e.end)}function x7(e){return e&&typeof e=="number"?e:1}var xn=class extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let o="",i={},a=!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&&(a=!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 s=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=s?s.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=s?s.line:void 0,this.name=bi(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=a&&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}};xn.prototype.file="";xn.prototype.name="";xn.prototype.reason="";xn.prototype.message="";xn.prototype.stack="";xn.prototype.column=void 0;xn.prototype.line=void 0;xn.prototype.ancestors=void 0;xn.prototype.cause=void 0;xn.prototype.fatal=void 0;xn.prototype.place=void 0;xn.prototype.ruleId=void 0;xn.prototype.source=void 0;var x5={}.hasOwnProperty,IV=new Map,TV=/[A-Z]/g,EV=new Set(["table","tbody","thead","tfoot","tr"]),RV=new Set(["td","th"]),b7="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function y5(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=DV(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=zV(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"?ud:n7,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=w7(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function w7(e,t,n){if(t.type==="element")return AV(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return FV(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return MV(e,t,n);if(t.type==="mdxjsEsm")return PV(e,t);if(t.type==="root")return LV(e,t,n);if(t.type==="text")return BV(e,t)}function AV(e,t,n){let r=e.schema,o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=ud,e.schema=o),e.ancestors.push(t);let i=S7(e,t.tagName,!1),a=NV(e,t),s=w5(e,t);return EV.has(t.tagName)&&(s=s.filter(function(u){return typeof u=="string"?!o5(u):!0})),v7(e,a,i,t),b5(a,s),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function FV(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)}kl(e,t.position)}function PV(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);kl(e,t.position)}function MV(e,t,n){let r=e.schema,o=r;t.name==="svg"&&r.space==="html"&&(o=ud,e.schema=o),e.ancestors.push(t);let i=t.name===null?e.Fragment:S7(e,t.name,!0),a=_V(e,t),s=w5(e,t);return v7(e,a,i,t),b5(a,s),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LV(e,t,n){let r={};return b5(r,w5(e,t)),e.create(t,e.Fragment,r,n)}function BV(e,t){return t.value}function v7(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function b5(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function zV(e,t,n){return r;function r(o,i,a,s){let c=Array.isArray(a.children)?n:t;return s?c(i,a,s):c(i,a)}}function DV(e,t){return n;function n(r,o,i,a){let s=Array.isArray(i.children),u=Ka(r);return t(o,i,a,s,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function NV(e,t){let n={},r,o;for(o in t.properties)if(o!=="children"&&x5.call(t.properties,o)){let i=OV(e,o,t.properties[o]);if(i){let[a,s]=i;e.tableCellAlignToStyle&&a==="align"&&typeof s=="string"&&RV.has(t.tagName)?r=s:n[a]=s}}if(r){let i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function _V(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 a=i.expression;a.type;let s=a.properties[0];s.type,Object.assign(n,e.evaluater.evaluateExpression(s.argument))}else kl(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 s=r.value.data.estree.body[0];s.type,i=e.evaluater.evaluateExpression(s.expression)}else kl(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function w5(e,t){let n=[],r=-1,o=e.passKeys?new Map:IV;for(;++r<t.children.length;){let i=t.children[r],a;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;a=u+"-"+c,o.set(u,c+1)}}let s=w7(e,i,a);s!==void 0&&n.push(s)}return n}function OV(e,t,n){let r=p5(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?X6(n):r7(n)),r.property==="style"){let o=typeof n=="object"?n:$V(e,String(n));return e.stylePropertyNameCase==="css"&&(o=HV(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?d5[r.property]||r.property:r.attribute,n]}}function $V(e,t){try{return(0,y7.default)(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let r=n,o=new xn("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=b7+"#cannot-parse-style-attribute",o}}function S7(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){let o=t.split("."),i=-1,a;for(;++i<o.length;){let s=ad(o[i])?{type:"Identifier",name:o[i]}:{type:"Literal",value:o[i]};a=a?{type:"MemberExpression",object:a,property:s,computed:!!(i&&s.type==="Literal"),optional:!1}:s}r=a}else r=ad(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){let o=r.value;return x5.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);kl(e)}function kl(e,t){let n=new xn("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=b7+"#cannot-handle-mdx-estrees-without-createevaluater",n}function HV(e){let t={},n;for(n in e)x5.call(e,n)&&(t[UV(n)]=e[n]);return t}function UV(e){let t=e.replace(TV,jV);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function jV(e){return"-"+e.toLowerCase()}var Cl={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 JG,jsx as QG,jsxs as ZG}from"react/jsx-runtime";import{useEffect as Wve,useState as Gve}from"react";var VV={};function v5(e,t){let n=t||VV,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return C7(e,r,o)}function C7(e,t,n){if(WV(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 k7(e.children,t,n)}return Array.isArray(e)?k7(e,t,n):""}function k7(e,t,n){let r=[],o=-1;for(;++o<e.length;)r[o]=C7(e[o],t,n);return r.join("")}function WV(e){return!!(e&&typeof e=="object")}var I7=document.createElement("i");function Xa(e){let t="&"+e+";";I7.innerHTML=t;let n=I7.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function jn(e,t,n,r){let o=e.length,i=0,a;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i<r.length;)a=r.slice(i,i+1e4),a.unshift(t,0),e.splice(...a),i+=1e4,t+=1e4}function nr(e,t){return e.length>0?(jn(e,e.length,0,t),e):t}var T7={}.hasOwnProperty;function E7(e){let t={},n=-1;for(;++n<e.length;)GV(t,e[n]);return t}function GV(e,t){let n;for(n in t){let o=(T7.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){T7.call(o,a)||(o[a]=[]);let s=i[a];qV(o[a],Array.isArray(s)?s:s?[s]:[])}}}function qV(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);jn(e,0,0,r)}function gd(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 Rr=wi(/[A-Za-z]/),Nn=wi(/[\dA-Za-z]/),R7=wi(/[#-'*+\--9=?A-Z^-~]/);function Il(e){return e!==null&&(e<32||e===127)}var Tl=wi(/\d/),A7=wi(/[\dA-Fa-f]/),F7=wi(/[!-/:-@[-`{-~]/);function be(e){return e!==null&&e<-2}function yn(e){return e!==null&&(e<0||e===32)}function et(e){return e===-2||e===-1||e===32}var P7=wi(/\p{P}|\p{S}/u),M7=wi(/\s/);function wi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Vr(e){let t=[],n=-1,r=0,o=0;for(;++n<e.length;){let i=e.charCodeAt(n),a="";if(i===37&&Nn(e.charCodeAt(n+1))&&Nn(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(a=String.fromCharCode(i));else if(i>55295&&i<57344){let s=e.charCodeAt(n+1);i<56320&&s>56319&&s<57344?(a=String.fromCharCode(i,s),o=1):a="\uFFFD"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+o+1,a=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function ot(e,t,n,r){let o=r?r-1:Number.POSITIVE_INFINITY,i=0;return a;function a(u){return et(u)?(e.enter(n),s(u)):t(u)}function s(u){return et(u)&&i++<o?(e.consume(u),s):(e.exit(n),t(u))}}var L7={tokenize:YV};function YV(e){let t=e.attempt(this.parser.constructs.contentInitial,r,o),n;return t;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),ot(e,t,"linePrefix")}function o(s){return e.enter("paragraph"),i(s)}function i(s){let u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,a(s)}function a(s){if(s===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(s);return}return be(s)?(e.consume(s),e.exit("chunkText"),i):(e.consume(s),a)}}var z7={tokenize:KV},B7={tokenize:XV};function KV(e){let t=this,n=[],r=0,o,i,a;return s;function s(M){if(r<n.length){let z=n[r];return t.containerState=z[1],e.attempt(z[0].continuation,u,c)(M)}return c(M)}function u(M){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&x();let z=t.events.length,O=z,L;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){L=t.events[O][1].end;break}S(r);let N=z;for(;N<t.events.length;)t.events[N][1].end={...L},N++;return jn(t.events,O+1,0,t.events.slice(z)),t.events.length=N,c(M)}return s(M)}function c(M){if(r===n.length){if(!o)return g(M);if(o.currentConstruct&&o.currentConstruct.concrete)return f(M);t.interrupt=!!(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(B7,l,p)(M)}function l(M){return o&&x(),S(r),g(M)}function p(M){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,f(M)}function g(M){return t.containerState={},e.attempt(B7,d,f)(M)}function d(M){return r++,n.push([t.currentConstruct,t.containerState]),g(M)}function f(M){if(M===null){o&&x(),S(0),e.consume(M);return}return o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:o,contentType:"flow",previous:i}),y(M)}function y(M){if(M===null){I(e.exit("chunkFlow"),!0),S(0),e.consume(M);return}return be(M)?(e.consume(M),I(e.exit("chunkFlow")),r=0,t.interrupt=void 0,s):(e.consume(M),y)}function I(M,z){let O=t.sliceStream(M);if(z&&O.push(null),M.previous=i,i&&(i.next=M),i=M,o.defineSkip(M.start),o.write(O),t.parser.lazy[M.start.line]){let L=o.events.length;for(;L--;)if(o.events[L][1].start.offset<a&&(!o.events[L][1].end||o.events[L][1].end.offset>a))return;let N=t.events.length,m=N,v,k;for(;m--;)if(t.events[m][0]==="exit"&&t.events[m][1].type==="chunkFlow"){if(v){k=t.events[m][1].end;break}v=!0}for(S(r),L=N;L<t.events.length;)t.events[L][1].end={...k},L++;jn(t.events,m+1,0,t.events.slice(N)),t.events.length=L}}function S(M){let z=n.length;for(;z-- >M;){let O=n[z];t.containerState=O[1],O[0].exit.call(t,e)}n.length=M}function x(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function XV(e,t,n){return ot(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function S5(e){if(e===null||yn(e)||M7(e))return 1;if(P7(e))return 2}function Ja(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 El={name:"attention",resolveAll:JV,tokenize:QV};function JV(e,t){let n=-1,r,o,i,a,s,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 p={...e[r][1].end},g={...e[n][1].start};D7(p,-u),D7(g,u),a={type:u>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},s={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:{...a.start},end:{...s.end}},e[r][1].end={...a.start},e[n][1].start={...s.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=nr(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=nr(c,[["enter",o,t],["enter",a,t],["exit",a,t],["enter",i,t]]),c=nr(c,Ja(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=nr(c,[["exit",i,t],["enter",s,t],["exit",s,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(l=2,c=nr(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):l=0,jn(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 QV(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=S5(r),i;return a;function a(u){return i=u,e.enter("attentionSequence"),s(u)}function s(u){if(u===i)return e.consume(u),s;let c=e.exit("attentionSequence"),l=S5(u),p=!l||l===2&&o||n.includes(u),g=!o||o===2&&l||n.includes(r);return c._open=!!(i===42?p:p&&(o||!g)),c._close=!!(i===42?g:g&&(l||!p)),t(u)}}function D7(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var k5={name:"autolink",tokenize:ZV};function ZV(e,t,n){let r=0;return o;function o(d){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(d){return Rr(d)?(e.consume(d),a):d===64?n(d):c(d)}function a(d){return d===43||d===45||d===46||Nn(d)?(r=1,s(d)):c(d)}function s(d){return d===58?(e.consume(d),r=0,u):(d===43||d===45||d===46||Nn(d))&&r++<32?(e.consume(d),s):(r=0,c(d))}function u(d){return d===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):d===null||d===32||d===60||Il(d)?n(d):(e.consume(d),u)}function c(d){return d===64?(e.consume(d),l):R7(d)?(e.consume(d),c):n(d)}function l(d){return Nn(d)?p(d):n(d)}function p(d){return d===46?(e.consume(d),r=0,l):d===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):g(d)}function g(d){if((d===45||Nn(d))&&r++<63){let f=d===45?g:p;return e.consume(d),f}return n(d)}}var vi={partial:!0,tokenize:eW};function eW(e,t,n){return r;function r(i){return et(i)?ot(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||be(i)?t(i):n(i)}}var fd={continuation:{tokenize:nW},exit:rW,name:"blockQuote",tokenize:tW};function tW(e,t,n){let r=this;return o;function o(a){if(a===62){let s=r.containerState;return s.open||(e.enter("blockQuote",{_container:!0}),s.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),i}return n(a)}function i(a){return et(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function nW(e,t,n){let r=this;return o;function o(a){return et(a)?ot(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):i(a)}function i(a){return e.attempt(fd,t,n)(a)}}function rW(e){e.exit("blockQuote")}var md={name:"characterEscape",tokenize:oW};function oW(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 F7(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}var hd={name:"characterReference",tokenize:iW};function iW(e,t,n){let r=this,o=0,i,a;return s;function s(p){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),u}function u(p){return p===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(p),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),i=31,a=Nn,l(p))}function c(p){return p===88||p===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(p),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,a=A7,l):(e.enter("characterReferenceValue"),i=7,a=Tl,l(p))}function l(p){if(p===59&&o){let g=e.exit("characterReferenceValue");return a===Nn&&!Xa(r.sliceSerialize(g))?n(p):(e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(p)&&o++<i?(e.consume(p),l):n(p)}}var N7={partial:!0,tokenize:sW},xd={concrete:!0,name:"codeFenced",tokenize:aW};function aW(e,t,n){let r=this,o={partial:!0,tokenize:O},i=0,a=0,s;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,s=L,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(L)}function l(L){return L===s?(a++,e.consume(L),l):a<3?n(L):(e.exit("codeFencedFenceSequence"),et(L)?ot(e,p,"whitespace")(L):p(L))}function p(L){return L===null||be(L)?(e.exit("codeFencedFence"),r.interrupt?t(L):e.check(N7,y,z)(L)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(L))}function g(L){return L===null||be(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),p(L)):et(L)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ot(e,d,"whitespace")(L)):L===96&&L===s?n(L):(e.consume(L),g)}function d(L){return L===null||be(L)?p(L):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),f(L))}function f(L){return L===null||be(L)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),p(L)):L===96&&L===s?n(L):(e.consume(L),f)}function y(L){return e.attempt(o,z,I)(L)}function I(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),S}function S(L){return i>0&&et(L)?ot(e,x,"linePrefix",i+1)(L):x(L)}function x(L){return L===null||be(L)?e.check(N7,y,z)(L):(e.enter("codeFlowValue"),M(L))}function M(L){return L===null||be(L)?(e.exit("codeFlowValue"),x(L)):(e.consume(L),M)}function z(L){return e.exit("codeFenced"),t(L)}function O(L,N,m){let v=0;return k;function k(C){return L.enter("lineEnding"),L.consume(C),L.exit("lineEnding"),E}function E(C){return L.enter("codeFencedFence"),et(C)?ot(L,h,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(C):h(C)}function h(C){return C===s?(L.enter("codeFencedFenceSequence"),b(C)):m(C)}function b(C){return C===s?(v++,L.consume(C),b):v>=a?(L.exit("codeFencedFenceSequence"),et(C)?ot(L,F,"whitespace")(C):F(C)):m(C)}function F(C){return C===null||be(C)?(L.exit("codeFencedFence"),N(C)):m(C)}}}function sW(e,t,n){let r=this;return o;function o(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}var Rl={name:"codeIndented",tokenize:cW},lW={partial:!0,tokenize:uW};function cW(e,t,n){let r=this;return o;function o(c){return e.enter("codeIndented"),ot(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?a(c):n(c)}function a(c){return c===null?u(c):be(c)?e.attempt(lW,a,u)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||be(c)?(e.exit("codeFlowValue"),a(c)):(e.consume(c),s)}function u(c){return e.exit("codeIndented"),t(c)}}function uW(e,t,n){let r=this;return o;function o(a){return r.parser.lazy[r.now().line]?n(a):be(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):ot(e,i,"linePrefix",5)(a)}function i(a){let s=r.events[r.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):be(a)?o(a):n(a)}}var C5={name:"codeText",previous:pW,resolve:dW,tokenize:gW};function dW(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 pW(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function gW(e,t,n){let r=this,o=0,i,a;return s;function s(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?(a=e.enter("codeTextSequence"),i=0,p(g)):be(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||be(g)?(e.exit("codeTextData"),c(g)):(e.consume(g),l)}function p(g){return g===96?(e.consume(g),i++,p):i===o?(e.exit("codeTextSequence"),e.exit("codeText"),t(g)):(a.type="codeTextData",l(g))}}var yd=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&&Al(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),Al(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Al(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);Al(this.right,n.reverse())}else{let n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Al(this.left,n.reverse())}}};function Al(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 bd(e){let t={},n=-1,r,o,i,a,s,u,c,l=new yd(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,fW(l,n)),n=t[n],c=!0);else if(r[1]._container){for(i=n,o=void 0;i--;)if(a=l.get(i),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank")a[0]==="enter"&&(o&&(l.get(o)[1].type="lineEndingBlank"),a[1].type="lineEnding",o=i);else if(!(a[1].type==="linePrefix"||a[1].type==="listItemIndent"))break;o&&(r[1].end={...l.get(o)[1].start},s=l.slice(o,n),s.unshift(r),l.splice(o,n-o+1,s))}}return jn(e,0,Number.POSITIVE_INFINITY,l.slice(0)),!c}function fW(e,t){let n=e.get(t)[1],r=e.get(t)[2],o=t-1,i=[],a=n._tokenizer;a||(a=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(a._contentTypeTextTrailing=!0));let s=a.events,u=[],c={},l,p,g=-1,d=n,f=0,y=0,I=[y];for(;d;){for(;e.get(++o)[1]!==d;);i.push(o),d._tokenizer||(l=r.sliceStream(d),d.next||l.push(null),p&&a.defineSkip(d.start),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(l),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),p=d,d=d.next}for(d=n;++g<s.length;)s[g][0]==="exit"&&s[g-1][0]==="enter"&&s[g][1].type===s[g-1][1].type&&s[g][1].start.line!==s[g][1].end.line&&(y=g+1,I.push(y),d._tokenizer=void 0,d.previous=void 0,d=d.next);for(a.events=[],d?(d._tokenizer=void 0,d.previous=void 0):I.pop(),g=I.length;g--;){let S=s.slice(I[g],I[g+1]),x=i.pop();u.push([x,x+S.length-1]),e.splice(x,2,S)}for(u.reverse(),g=-1;++g<u.length;)c[f+u[g][0]]=f+u[g][1],f+=u[g][1]-u[g][0]-1;return c}var I5={resolve:hW,tokenize:xW},mW={partial:!0,tokenize:yW};function hW(e){return bd(e),e}function xW(e,t){let n;return r;function r(s){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(s)}function o(s){return s===null?i(s):be(s)?e.check(mW,a,i)(s):(e.consume(s),o)}function i(s){return e.exit("chunkContent"),e.exit("content"),t(s)}function a(s){return e.consume(s),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,o}}function yW(e,t,n){let r=this;return o;function o(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),ot(e,i,"linePrefix")}function i(a){if(a===null||be(a))return n(a);let s=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function wd(e,t,n,r,o,i,a,s,u){let c=u||Number.POSITIVE_INFINITY,l=0;return p;function p(S){return S===60?(e.enter(r),e.enter(o),e.enter(i),e.consume(S),e.exit(i),g):S===null||S===32||S===41||Il(S)?n(S):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),y(S))}function g(S){return S===62?(e.enter(i),e.consume(S),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(S))}function d(S){return S===62?(e.exit("chunkString"),e.exit(s),g(S)):S===null||S===60||be(S)?n(S):(e.consume(S),S===92?f:d)}function f(S){return S===60||S===62||S===92?(e.consume(S),d):d(S)}function y(S){return!l&&(S===null||S===41||yn(S))?(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(S)):l<c&&S===40?(e.consume(S),l++,y):S===41?(e.consume(S),l--,y):S===null||S===32||S===40||Il(S)?n(S):(e.consume(S),S===92?I:y)}function I(S){return S===40||S===41||S===92?(e.consume(S),y):y(S)}}function vd(e,t,n,r,o,i){let a=this,s=0,u;return c;function c(d){return e.enter(r),e.enter(o),e.consume(d),e.exit(o),e.enter(i),l}function l(d){return s>999||d===null||d===91||d===93&&!u||d===94&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):d===93?(e.exit(i),e.enter(o),e.consume(d),e.exit(o),e.exit(r),t):be(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),p(d))}function p(d){return d===null||d===91||d===93||be(d)||s++>999?(e.exit("chunkString"),l(d)):(e.consume(d),u||(u=!et(d)),d===92?g:p)}function g(d){return d===91||d===92||d===93?(e.consume(d),s++,p):p(d)}}function Sd(e,t,n,r,o,i){let a;return s;function s(g){return g===34||g===39||g===40?(e.enter(r),e.enter(o),e.consume(g),e.exit(o),a=g===40?41:g,u):n(g)}function u(g){return g===a?(e.enter(o),e.consume(g),e.exit(o),e.exit(r),t):(e.enter(i),c(g))}function c(g){return g===a?(e.exit(i),u(a)):g===null?n(g):be(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),ot(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(g))}function l(g){return g===a||g===null||be(g)?(e.exit("chunkString"),c(g)):(e.consume(g),g===92?p:l)}function p(g){return g===a||g===92?(e.consume(g),l):l(g)}}function Xi(e,t){let n;return r;function r(o){return be(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):et(o)?ot(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}var T5={name:"definition",tokenize:wW},bW={partial:!0,tokenize:vW};function wW(e,t,n){let r=this,o;return i;function i(d){return e.enter("definition"),a(d)}function a(d){return vd.call(r,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)}function s(d){return o=Go(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),d===58?(e.enter("definitionMarker"),e.consume(d),e.exit("definitionMarker"),u):n(d)}function u(d){return yn(d)?Xi(e,c)(d):c(d)}function c(d){return wd(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(d)}function l(d){return e.attempt(bW,p,p)(d)}function p(d){return et(d)?ot(e,g,"whitespace")(d):g(d)}function g(d){return d===null||be(d)?(e.exit("definition"),r.parser.defined.push(o),t(d)):n(d)}}function vW(e,t,n){return r;function r(s){return yn(s)?Xi(e,o)(s):n(s)}function o(s){return Sd(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function i(s){return et(s)?ot(e,a,"whitespace")(s):a(s)}function a(s){return s===null||be(s)?t(s):n(s)}}var E5={name:"hardBreakEscape",tokenize:SW};function SW(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return be(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}var R5={name:"headingAtx",resolve:kW,tokenize:CW};function kW(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"},jn(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function CW(e,t,n){let r=0;return o;function o(l){return e.enter("atxHeading"),i(l)}function i(l){return e.enter("atxHeadingSequence"),a(l)}function a(l){return l===35&&r++<6?(e.consume(l),a):l===null||yn(l)?(e.exit("atxHeadingSequence"),s(l)):n(l)}function s(l){return l===35?(e.enter("atxHeadingSequence"),u(l)):l===null||be(l)?(e.exit("atxHeading"),t(l)):et(l)?ot(e,s,"whitespace")(l):(e.enter("atxHeadingText"),c(l))}function u(l){return l===35?(e.consume(l),u):(e.exit("atxHeadingSequence"),s(l))}function c(l){return l===null||l===35||yn(l)?(e.exit("atxHeadingText"),s(l)):(e.consume(l),c)}}var _7=["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"],A5=["pre","script","style","textarea"];var F5={concrete:!0,name:"htmlFlow",resolveTo:EW,tokenize:RW},IW={partial:!0,tokenize:FW},TW={partial:!0,tokenize:AW};function EW(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 RW(e,t,n){let r=this,o,i,a,s,u;return c;function c(R){return l(R)}function l(R){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(R),p}function p(R){return R===33?(e.consume(R),g):R===47?(e.consume(R),i=!0,y):R===63?(e.consume(R),o=3,r.interrupt?t:T):Rr(R)?(e.consume(R),a=String.fromCharCode(R),I):n(R)}function g(R){return R===45?(e.consume(R),o=2,d):R===91?(e.consume(R),o=5,s=0,f):Rr(R)?(e.consume(R),o=4,r.interrupt?t:T):n(R)}function d(R){return R===45?(e.consume(R),r.interrupt?t:T):n(R)}function f(R){let te="CDATA[";return R===te.charCodeAt(s++)?(e.consume(R),s===te.length?r.interrupt?t:h:f):n(R)}function y(R){return Rr(R)?(e.consume(R),a=String.fromCharCode(R),I):n(R)}function I(R){if(R===null||R===47||R===62||yn(R)){let te=R===47,j=a.toLowerCase();return!te&&!i&&A5.includes(j)?(o=1,r.interrupt?t(R):h(R)):_7.includes(a.toLowerCase())?(o=6,te?(e.consume(R),S):r.interrupt?t(R):h(R)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(R):i?x(R):M(R))}return R===45||Nn(R)?(e.consume(R),a+=String.fromCharCode(R),I):n(R)}function S(R){return R===62?(e.consume(R),r.interrupt?t:h):n(R)}function x(R){return et(R)?(e.consume(R),x):k(R)}function M(R){return R===47?(e.consume(R),k):R===58||R===95||Rr(R)?(e.consume(R),z):et(R)?(e.consume(R),M):k(R)}function z(R){return R===45||R===46||R===58||R===95||Nn(R)?(e.consume(R),z):O(R)}function O(R){return R===61?(e.consume(R),L):et(R)?(e.consume(R),O):M(R)}function L(R){return R===null||R===60||R===61||R===62||R===96?n(R):R===34||R===39?(e.consume(R),u=R,N):et(R)?(e.consume(R),L):m(R)}function N(R){return R===u?(e.consume(R),u=null,v):R===null||be(R)?n(R):(e.consume(R),N)}function m(R){return R===null||R===34||R===39||R===47||R===60||R===61||R===62||R===96||yn(R)?O(R):(e.consume(R),m)}function v(R){return R===47||R===62||et(R)?M(R):n(R)}function k(R){return R===62?(e.consume(R),E):n(R)}function E(R){return R===null||be(R)?h(R):et(R)?(e.consume(R),E):n(R)}function h(R){return R===45&&o===2?(e.consume(R),A):R===60&&o===1?(e.consume(R),B):R===62&&o===4?(e.consume(R),D):R===63&&o===3?(e.consume(R),T):R===93&&o===5?(e.consume(R),_):be(R)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(IW,H,b)(R)):R===null||be(R)?(e.exit("htmlFlowData"),b(R)):(e.consume(R),h)}function b(R){return e.check(TW,F,H)(R)}function F(R){return e.enter("lineEnding"),e.consume(R),e.exit("lineEnding"),C}function C(R){return R===null||be(R)?b(R):(e.enter("htmlFlowData"),h(R))}function A(R){return R===45?(e.consume(R),T):h(R)}function B(R){return R===47?(e.consume(R),a="",P):h(R)}function P(R){if(R===62){let te=a.toLowerCase();return A5.includes(te)?(e.consume(R),D):h(R)}return Rr(R)&&a.length<8?(e.consume(R),a+=String.fromCharCode(R),P):h(R)}function _(R){return R===93?(e.consume(R),T):h(R)}function T(R){return R===62?(e.consume(R),D):R===45&&o===2?(e.consume(R),T):h(R)}function D(R){return R===null||be(R)?(e.exit("htmlFlowData"),H(R)):(e.consume(R),D)}function H(R){return e.exit("htmlFlow"),t(R)}}function AW(e,t,n){let r=this;return o;function o(a){return be(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function FW(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(vi,t,n)}}var P5={name:"htmlText",tokenize:PW};function PW(e,t,n){let r=this,o,i,a;return s;function s(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),O):T===63?(e.consume(T),M):Rr(T)?(e.consume(T),m):n(T)}function c(T){return T===45?(e.consume(T),l):T===91?(e.consume(T),i=0,f):Rr(T)?(e.consume(T),x):n(T)}function l(T){return T===45?(e.consume(T),d):n(T)}function p(T){return T===null?n(T):T===45?(e.consume(T),g):be(T)?(a=p,B(T)):(e.consume(T),p)}function g(T){return T===45?(e.consume(T),d):p(T)}function d(T){return T===62?A(T):T===45?g(T):p(T)}function f(T){let D="CDATA[";return T===D.charCodeAt(i++)?(e.consume(T),i===D.length?y:f):n(T)}function y(T){return T===null?n(T):T===93?(e.consume(T),I):be(T)?(a=y,B(T)):(e.consume(T),y)}function I(T){return T===93?(e.consume(T),S):y(T)}function S(T){return T===62?A(T):T===93?(e.consume(T),S):y(T)}function x(T){return T===null||T===62?A(T):be(T)?(a=x,B(T)):(e.consume(T),x)}function M(T){return T===null?n(T):T===63?(e.consume(T),z):be(T)?(a=M,B(T)):(e.consume(T),M)}function z(T){return T===62?A(T):M(T)}function O(T){return Rr(T)?(e.consume(T),L):n(T)}function L(T){return T===45||Nn(T)?(e.consume(T),L):N(T)}function N(T){return be(T)?(a=N,B(T)):et(T)?(e.consume(T),N):A(T)}function m(T){return T===45||Nn(T)?(e.consume(T),m):T===47||T===62||yn(T)?v(T):n(T)}function v(T){return T===47?(e.consume(T),A):T===58||T===95||Rr(T)?(e.consume(T),k):be(T)?(a=v,B(T)):et(T)?(e.consume(T),v):A(T)}function k(T){return T===45||T===46||T===58||T===95||Nn(T)?(e.consume(T),k):E(T)}function E(T){return T===61?(e.consume(T),h):be(T)?(a=E,B(T)):et(T)?(e.consume(T),E):v(T)}function h(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),o=T,b):be(T)?(a=h,B(T)):et(T)?(e.consume(T),h):(e.consume(T),F)}function b(T){return T===o?(e.consume(T),o=void 0,C):T===null?n(T):be(T)?(a=b,B(T)):(e.consume(T),b)}function F(T){return T===null||T===34||T===39||T===60||T===61||T===96?n(T):T===47||T===62||yn(T)?v(T):(e.consume(T),F)}function C(T){return T===47||T===62||yn(T)?v(T):n(T)}function A(T){return T===62?(e.consume(T),e.exit("htmlTextData"),e.exit("htmlText"),t):n(T)}function B(T){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),P}function P(T){return et(T)?ot(e,_,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(T):_(T)}function _(T){return e.enter("htmlTextData"),a(T)}}var Ji={name:"labelEnd",resolveAll:zW,resolveTo:DW,tokenize:NW},MW={tokenize:_W},LW={tokenize:OW},BW={tokenize:$W};function zW(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&&jn(e,0,e.length,n),e}function DW(e,t){let n=e.length,r=0,o,i,a,s;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(a){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"&&(a=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[a][1].end}},l={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[a-2][1].start}};return s=[["enter",u,t],["enter",c,t]],s=nr(s,e.slice(i+1,i+r+3)),s=nr(s,[["enter",l,t]]),s=nr(s,Ja(t.parser.constructs.insideSpan.null,e.slice(i+r+4,a-3),t)),s=nr(s,[["exit",l,t],e[a-2],e[a-1],["exit",c,t]]),s=nr(s,e.slice(a+1)),s=nr(s,[["exit",u,t]]),jn(e,i,e.length,s),e}function NW(e,t,n){let r=this,o=r.events.length,i,a;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 s;function s(g){return i?i._inactive?p(g):(a=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(MW,l,a?l:p)(g):g===91?e.attempt(LW,l,a?c:p)(g):a?l(g):p(g)}function c(g){return e.attempt(BW,l,p)(g)}function l(g){return t(g)}function p(g){return i._balanced=!0,n(g)}}function _W(e,t,n){return r;function r(p){return e.enter("resource"),e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),o}function o(p){return yn(p)?Xi(e,i)(p):i(p)}function i(p){return p===41?l(p):wd(e,a,s,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function a(p){return yn(p)?Xi(e,u)(p):l(p)}function s(p){return n(p)}function u(p){return p===34||p===39||p===40?Sd(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):l(p)}function c(p){return yn(p)?Xi(e,l)(p):l(p)}function l(p){return p===41?(e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),e.exit("resource"),t):n(p)}}function OW(e,t,n){let r=this;return o;function o(s){return vd.call(r,e,i,a,"reference","referenceMarker","referenceString")(s)}function i(s){return r.parser.defined.includes(Go(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(s):n(s)}function a(s){return n(s)}}function $W(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 M5={name:"labelStartImage",resolveAll:Ji.resolveAll,tokenize:HW};function HW(e,t,n){let r=this;return o;function o(s){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(s),e.exit("labelImageMarker"),i}function i(s){return s===91?(e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelImage"),a):n(s)}function a(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}var L5={name:"labelStartLink",resolveAll:Ji.resolveAll,tokenize:UW};function UW(e,t,n){let r=this;return o;function o(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),i}function i(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}var Fl={name:"lineEnding",tokenize:jW};function jW(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),ot(e,t,"linePrefix")}}var Qi={name:"thematicBreak",tokenize:VW};function VW(e,t,n){let r=0,o;return i;function i(c){return e.enter("thematicBreak"),a(c)}function a(c){return o=c,s(c)}function s(c){return c===o?(e.enter("thematicBreakSequence"),u(c)):r>=3&&(c===null||be(c))?(e.exit("thematicBreak"),t(c)):n(c)}function u(c){return c===o?(e.consume(c),r++,u):(e.exit("thematicBreakSequence"),et(c)?ot(e,s,"whitespace")(c):s(c))}}var Jn={continuation:{tokenize:YW},exit:XW,name:"list",tokenize:qW},WW={partial:!0,tokenize:JW},GW={partial:!0,tokenize:KW};function qW(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,a=0;return s;function s(d){let f=r.containerState.type||(d===42||d===43||d===45?"listUnordered":"listOrdered");if(f==="listUnordered"?!r.containerState.marker||d===r.containerState.marker:Tl(d)){if(r.containerState.type||(r.containerState.type=f,e.enter(f,{_container:!0})),f==="listUnordered")return e.enter("listItemPrefix"),d===42||d===45?e.check(Qi,n,c)(d):c(d);if(!r.interrupt||d===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(d)}return n(d)}function u(d){return Tl(d)&&++a<10?(e.consume(d),u):(!r.interrupt||a<2)&&(r.containerState.marker?d===r.containerState.marker:d===41||d===46)?(e.exit("listItemValue"),c(d)):n(d)}function c(d){return e.enter("listItemMarker"),e.consume(d),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||d,e.check(vi,r.interrupt?n:l,e.attempt(WW,g,p))}function l(d){return r.containerState.initialBlankLine=!0,i++,g(d)}function p(d){return et(d)?(e.enter("listItemPrefixWhitespace"),e.consume(d),e.exit("listItemPrefixWhitespace"),g):n(d)}function g(d){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(d)}}function YW(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(vi,o,i);function o(s){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ot(e,t,"listItemIndent",r.containerState.size+1)(s)}function i(s){return r.containerState.furtherBlankLines||!et(s)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(s)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(GW,t,a)(s))}function a(s){return r.containerState._closeFlow=!0,r.interrupt=void 0,ot(e,e.attempt(Jn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function KW(e,t,n){let r=this;return ot(e,o,"listItemIndent",r.containerState.size+1);function o(i){let a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function XW(e){e.exit(this.containerState.type)}function JW(e,t,n){let r=this;return ot(e,o,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){let a=r.events[r.events.length-1];return!et(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}var kd={name:"setextUnderline",resolveTo:QW,tokenize:ZW};function QW(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 a={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",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function ZW(e,t,n){let r=this,o;return i;function i(c){let l=r.events.length,p;for(;l--;)if(r.events[l][1].type!=="lineEnding"&&r.events[l][1].type!=="linePrefix"&&r.events[l][1].type!=="content"){p=r.events[l][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),o=c,a(c)):n(c)}function a(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===o?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),et(c)?ot(e,u,"lineSuffix")(c):u(c))}function u(c){return c===null||be(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}var O7={tokenize:eG};function eG(e){let t=this,n=e.attempt(vi,r,e.attempt(this.parser.constructs.flowInitial,o,ot(e,e.attempt(this.parser.constructs.flow,o,e.attempt(I5,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 $7={resolveAll:V7()},H7=j7("string"),U7=j7("text");function j7(e){return{resolveAll:V7(e==="text"?tG:void 0),tokenize:t};function t(n){let r=this,o=this.parser.constructs[e],i=n.attempt(o,a,s);return a;function a(l){return c(l)?i(l):s(l)}function s(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 p=o[l],g=-1;if(p)for(;++g<p.length;){let d=p[g];if(!d.previous||d.previous.call(r,r.previous))return!0}return!1}}}function V7(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 tG(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,a=-1,s=0,u;for(;i--;){let c=o[i];if(typeof c=="string"){for(a=c.length;c.charCodeAt(a-1)===32;)s++,a--;if(a)break;a=-1}else if(c===-2)u=!0,s++;else if(c!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let c={type:n===e.length||u||s<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?a:r.start._bufferIndex+a,_index:r.start._index+i,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},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 B5={};Ee(B5,{attentionMarkers:()=>cG,contentInitial:()=>rG,disable:()=>uG,document:()=>nG,flow:()=>iG,flowInitial:()=>oG,insideSpan:()=>lG,string:()=>aG,text:()=>sG});var nG={42:Jn,43:Jn,45:Jn,48:Jn,49:Jn,50:Jn,51:Jn,52:Jn,53:Jn,54:Jn,55:Jn,56:Jn,57:Jn,62:fd},rG={91:T5},oG={[-2]:Rl,[-1]:Rl,32:Rl},iG={35:R5,42:Qi,45:[kd,Qi],60:F5,61:kd,95:Qi,96:xd,126:xd},aG={38:hd,92:md},sG={[-5]:Fl,[-4]:Fl,[-3]:Fl,33:M5,38:hd,42:El,60:[k5,P5],91:L5,92:[E5,md],93:Ji,95:El,96:C5},lG={null:[El,$7]},cG={null:[42,95]},uG={null:[]};function W7(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=[],a=[],s=[],u=!0,c={attempt:v(N),check:v(m),consume:z,enter:O,exit:L,interrupt:v(m,{interrupt:!0})},l={code:null,containerState:{},defineSkip:S,events:[],now:I,parser:e,previous:null,sliceSerialize:f,sliceStream:y,write:d},p=t.tokenize.call(l,c),g;return t.resolveAll&&i.push(t),l;function d(b){return a=nr(a,b),x(),a[a.length-1]!==null?[]:(k(t,0),l.events=Ja(i,l.events,l),l.events)}function f(b,F){return pG(y(b),F)}function y(b){return dG(a,b)}function I(){let{_bufferIndex:b,_index:F,line:C,column:A,offset:B}=r;return{_bufferIndex:b,_index:F,line:C,column:A,offset:B}}function S(b){o[b.line]=b.column,h()}function x(){let b;for(;r._index<a.length;){let F=a[r._index];if(typeof F=="string")for(b=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===b&&r._bufferIndex<F.length;)M(F.charCodeAt(r._bufferIndex));else M(F)}}function M(b){u=void 0,g=b,p=p(b)}function z(b){be(b)?(r.line++,r.column=1,r.offset+=b===-3?2:1,h()):b!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=b,u=!0}function O(b,F){let C=F||{};return C.type=b,C.start=I(),l.events.push(["enter",C,l]),s.push(C),C}function L(b){let F=s.pop();return F.end=I(),l.events.push(["exit",F,l]),F}function N(b,F){k(b,F.from)}function m(b,F){F.restore()}function v(b,F){return C;function C(A,B,P){let _,T,D,H;return Array.isArray(A)?te(A):"tokenize"in A?te([A]):R(A);function R(ne){return Te;function Te(ye){let de=ye!==null&&ne[ye],Fe=ye!==null&&ne.null,ge=[...Array.isArray(de)?de:de?[de]:[],...Array.isArray(Fe)?Fe:Fe?[Fe]:[]];return te(ge)(ye)}}function te(ne){return _=ne,T=0,ne.length===0?P:j(ne[T])}function j(ne){return Te;function Te(ye){return H=E(),D=ne,ne.partial||(l.currentConstruct=ne),ne.name&&l.parser.constructs.disable.null.includes(ne.name)?X(ye):ne.tokenize.call(F?Object.assign(Object.create(l),F):l,c,Y,X)(ye)}}function Y(ne){return u=!0,b(D,H),B}function X(ne){return u=!0,H.restore(),++T<_.length?j(_[T]):P}}}function k(b,F){b.resolveAll&&!i.includes(b)&&i.push(b),b.resolve&&jn(l.events,F,l.events.length-F,b.resolve(l.events.slice(F),l)),b.resolveTo&&(l.events=b.resolveTo(l.events,l))}function E(){let b=I(),F=l.previous,C=l.currentConstruct,A=l.events.length,B=Array.from(s);return{from:A,restore:P};function P(){r=b,l.previous=F,l.currentConstruct=C,l.events.length=A,s=B,h()}}function h(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function dG(e,t){let n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex,a;if(n===o)a=[e[n].slice(r,i)];else{if(a=e.slice(n,o),r>-1){let s=a[0];typeof s=="string"?a[0]=s.slice(r):a.shift()}i>0&&a.push(e[o].slice(0,i))}return a}function pG(e,t){let n=-1,r=[],o;for(;++n<e.length;){let i=e[n],a;if(typeof i=="string")a=i;else switch(i){case-5:{a="\r";break}case-4:{a=`
|
|
132
132
|
`;break}case-3:{a=`\r
|
|
133
133
|
`;break}case-2:{a=t?" ":" ";break}case-1:{if(!t&&o)continue;a=" ";break}default:a=String.fromCharCode(i)}o=i===-2,r.push(a)}return r.join("")}function z5(e){let r={constructs:E7([B5,...(e||{}).extensions||[]]),content:o(L7),defined:[],document:o(z7),flow:o(O7),lazy:{},string:o(H7),text:o(U7)};return r;function o(i){return a;function a(s){return W7(r,i,s)}}}function D5(e){for(;!bd(e););return e}var G7=/[\0\t\n\r]/g;function N5(){let e=1,t="",n=!0,r;return o;function o(i,a,s){let u=[],c,l,p,g,d;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(a||void 0).decode(i)),p=0,t="",n&&(i.charCodeAt(0)===65279&&p++,n=void 0);p<i.length;){if(G7.lastIndex=p,c=G7.exec(i),g=c&&c.index!==void 0?c.index:i.length,d=i.charCodeAt(g),!c){t=i.slice(p);break}if(d===10&&p===g&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),p<g&&(u.push(i.slice(p,g)),e+=g-p),d){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}p=g+1}return s&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}var gG=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function q7(e){return e.replace(gG,fG)}function fG(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let o=n.charCodeAt(1),i=o===120||o===88;return gd(n.slice(i?2:1),i?16:10)}return Xa(n)||e}var K7={}.hasOwnProperty;function _5(e,t,n){return typeof t!="string"&&(n=t,t=void 0),mG(n)(D5(z5(n).document().write(N5()(e,t,!0))))}function mG(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(wt),autolinkProtocol:v,autolinkEmail:v,atxHeading:i(pe),blockQuote:i(ye),characterEscape:v,characterReference:v,codeFenced:i(de),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:i(de,a),codeText:i(Fe,a),codeTextData:v,data:v,codeFlowValue:v,definition:i(ge),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:i(Me),hardBreakEscape:i(Mt),hardBreakTrailing:i(Mt),htmlFlow:i(Yt,a),htmlFlowData:v,htmlText:i(Yt,a),htmlTextData:v,image:i(Lt),label:a,link:i(wt),listItem:i(je),listItemValue:g,listOrdered:i(Ar,p),listUnordered:i(Ar),paragraph:i(Qe),reference:R,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:i(pe),strong:i(pt),thematicBreak:i(_n)},exit:{atxHeading:u(),atxHeadingSequence:O,autolink:u(),autolinkEmail:Te,autolinkProtocol:ne,blockQuote:u(),characterEscapeValue:k,characterReferenceMarkerHexadecimal:j,characterReferenceMarkerNumeric:j,characterReferenceValue:Y,characterReference:X,codeFenced:u(I),codeFencedFence:y,codeFencedFenceInfo:d,codeFencedFenceMeta:f,codeFlowValue:k,codeIndented:u(S),codeText:u(C),codeTextData:k,data:k,definition:u(),definitionDestinationString:z,definitionLabelString:x,definitionTitleString:M,emphasis:u(),hardBreakEscape:u(h),hardBreakTrailing:u(h),htmlFlow:u(b),htmlFlowData:k,htmlText:u(F),htmlTextData:k,image:u(B),label:_,labelText:P,lineEnding:E,link:u(A),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:te,resourceDestinationString:T,resourceTitleString:D,resource:H,setextHeading:u(m),setextHeadingLineSequence:N,setextHeadingText:L,strong:u(),thematicBreak:u()}};X7(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(V){let ee={type:"root",children:[]},le={stack:[ee],tokenStack:[],config:t,enter:s,exit:c,buffer:a,resume:l,data:n},U=[],oe=-1;for(;++oe<V.length;)if(V[oe][1].type==="listOrdered"||V[oe][1].type==="listUnordered")if(V[oe][0]==="enter")U.push(oe);else{let xe=U.pop();oe=o(V,xe,oe)}for(oe=-1;++oe<V.length;){let xe=t[V[oe][0]];K7.call(xe,V[oe][1].type)&&xe[V[oe][1].type].call(Object.assign({sliceSerialize:V[oe][2].sliceSerialize},le),V[oe][1])}if(le.tokenStack.length>0){let xe=le.tokenStack[le.tokenStack.length-1];(xe[1]||Y7).call(le,void 0,xe[0])}for(ee.position={start:Si(V.length>0?V[0][1].start:{line:1,column:1,offset:0}),end:Si(V.length>0?V[V.length-2][1].end:{line:1,column:1,offset:0})},oe=-1;++oe<t.transforms.length;)ee=t.transforms[oe](ee)||ee;return ee}function o(V,ee,le){let U=ee-1,oe=-1,xe=!1,we,me,fe,Le;for(;++U<=le;){let Tt=V[U];switch(Tt[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{Tt[0]==="enter"?oe++:oe--,Le=void 0;break}case"lineEndingBlank":{Tt[0]==="enter"&&(we&&!Le&&!oe&&!fe&&(fe=U),Le=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Le=void 0}if(!oe&&Tt[0]==="enter"&&Tt[1].type==="listItemPrefix"||oe===-1&&Tt[0]==="exit"&&(Tt[1].type==="listUnordered"||Tt[1].type==="listOrdered")){if(we){let nn=U;for(me=void 0;nn--;){let On=V[nn];if(On[1].type==="lineEnding"||On[1].type==="lineEndingBlank"){if(On[0]==="exit")continue;me&&(V[me][1].type="lineEndingBlank",xe=!0),On[1].type="lineEnding",me=nn}else if(!(On[1].type==="linePrefix"||On[1].type==="blockQuotePrefix"||On[1].type==="blockQuotePrefixWhitespace"||On[1].type==="blockQuoteMarker"||On[1].type==="listItemIndent"))break}fe&&(!me||fe<me)&&(we._spread=!0),we.end=Object.assign({},me?V[me][1].start:Tt[1].end),V.splice(me||U,0,["exit",we,Tt[2]]),U++,le++}if(Tt[1].type==="listItemPrefix"){let nn={type:"listItem",_spread:!1,start:Object.assign({},Tt[1].start),end:void 0};we=nn,V.splice(U,0,["enter",nn,Tt[2]]),U++,le++,fe=void 0,Le=!0}}}return V[ee][1]._spread=xe,le}function i(V,ee){return le;function le(U){s.call(this,V(U),U),ee&&ee.call(this,U)}}function a(){this.stack.push({type:"fragment",children:[]})}function s(V,ee,le){this.stack[this.stack.length-1].children.push(V),this.stack.push(V),this.tokenStack.push([ee,le||void 0]),V.position={start:Si(ee.start),end:void 0}}function u(V){return ee;function ee(le){V&&V.call(this,le),c.call(this,le)}}function c(V,ee){let le=this.stack.pop(),U=this.tokenStack.pop();if(U)U[0].type!==V.type&&(ee?ee.call(this,V,U[0]):(U[1]||Y7).call(this,V,U[0]));else throw new Error("Cannot close `"+V.type+"` ("+bi({start:V.start,end:V.end})+"): it\u2019s not open");le.position.end=Si(V.end)}function l(){return v5(this.stack.pop())}function p(){this.data.expectingFirstListItemValue=!0}function g(V){if(this.data.expectingFirstListItemValue){let ee=this.stack[this.stack.length-2];ee.start=Number.parseInt(this.sliceSerialize(V),10),this.data.expectingFirstListItemValue=void 0}}function d(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.lang=V}function f(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.meta=V}function y(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function I(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.value=V.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function S(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.value=V.replace(/(\r?\n|\r)$/g,"")}function x(V){let ee=this.resume(),le=this.stack[this.stack.length-1];le.label=ee,le.identifier=Go(this.sliceSerialize(V)).toLowerCase()}function M(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.title=V}function z(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.url=V}function O(V){let ee=this.stack[this.stack.length-1];if(!ee.depth){let le=this.sliceSerialize(V).length;ee.depth=le}}function L(){this.data.setextHeadingSlurpLineEnding=!0}function N(V){let ee=this.stack[this.stack.length-1];ee.depth=this.sliceSerialize(V).codePointAt(0)===61?1:2}function m(){this.data.setextHeadingSlurpLineEnding=void 0}function v(V){let le=this.stack[this.stack.length-1].children,U=le[le.length-1];(!U||U.type!=="text")&&(U=Ot(),U.position={start:Si(V.start),end:void 0},le.push(U)),this.stack.push(U)}function k(V){let ee=this.stack.pop();ee.value+=this.sliceSerialize(V),ee.position.end=Si(V.end)}function E(V){let ee=this.stack[this.stack.length-1];if(this.data.atHardBreak){let le=ee.children[ee.children.length-1];le.position.end=Si(V.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(ee.type)&&(v.call(this,V),k.call(this,V))}function h(){this.data.atHardBreak=!0}function b(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.value=V}function F(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.value=V}function C(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.value=V}function A(){let V=this.stack[this.stack.length-1];if(this.data.inReference){let ee=this.data.referenceType||"shortcut";V.type+="Reference",V.referenceType=ee,delete V.url,delete V.title}else delete V.identifier,delete V.label;this.data.referenceType=void 0}function B(){let V=this.stack[this.stack.length-1];if(this.data.inReference){let ee=this.data.referenceType||"shortcut";V.type+="Reference",V.referenceType=ee,delete V.url,delete V.title}else delete V.identifier,delete V.label;this.data.referenceType=void 0}function P(V){let ee=this.sliceSerialize(V),le=this.stack[this.stack.length-2];le.label=q7(ee),le.identifier=Go(ee).toLowerCase()}function _(){let V=this.stack[this.stack.length-1],ee=this.resume(),le=this.stack[this.stack.length-1];if(this.data.inReference=!0,le.type==="link"){let U=V.children;le.children=U}else le.alt=ee}function T(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.url=V}function D(){let V=this.resume(),ee=this.stack[this.stack.length-1];ee.title=V}function H(){this.data.inReference=void 0}function R(){this.data.referenceType="collapsed"}function te(V){let ee=this.resume(),le=this.stack[this.stack.length-1];le.label=ee,le.identifier=Go(this.sliceSerialize(V)).toLowerCase(),this.data.referenceType="full"}function j(V){this.data.characterReferenceType=V.type}function Y(V){let ee=this.sliceSerialize(V),le=this.data.characterReferenceType,U;le?(U=gd(ee,le==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):U=Xa(ee);let oe=this.stack[this.stack.length-1];oe.value+=U}function X(V){let ee=this.stack.pop();ee.position.end=Si(V.end)}function ne(V){k.call(this,V);let ee=this.stack[this.stack.length-1];ee.url=this.sliceSerialize(V)}function Te(V){k.call(this,V);let ee=this.stack[this.stack.length-1];ee.url="mailto:"+this.sliceSerialize(V)}function ye(){return{type:"blockquote",children:[]}}function de(){return{type:"code",lang:null,meta:null,value:""}}function Fe(){return{type:"inlineCode",value:""}}function ge(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Me(){return{type:"emphasis",children:[]}}function pe(){return{type:"heading",depth:0,children:[]}}function Mt(){return{type:"break"}}function Yt(){return{type:"html",value:""}}function Lt(){return{type:"image",title:null,url:"",alt:null}}function wt(){return{type:"link",title:null,url:"",children:[]}}function Ar(V){return{type:"list",ordered:V.type==="listOrdered",start:null,spread:V._spread,children:[]}}function je(V){return{type:"listItem",spread:V._spread,checked:null,children:[]}}function Qe(){return{type:"paragraph",children:[]}}function pt(){return{type:"strong",children:[]}}function Ot(){return{type:"text",value:""}}function _n(){return{type:"thematicBreak"}}}function Si(e){return{line:e.line,column:e.column,offset:e.offset}}function X7(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?X7(e,r):hG(e,r)}}function hG(e,t){let n;for(n in t)if(K7.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 Y7(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+bi({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+bi({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+bi({start:t.start,end:t.end})+") is still open")}function Cd(e){let t=this;t.parser=n;function n(r){return _5(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function J7(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 Q7(e,t){let n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
|
|
134
134
|
`}]}function Z7(e,t){let n=t.value?t.value+`
|
|
@@ -249,7 +249,7 @@ ${"=".repeat(40)}
|
|
|
249
249
|
&:hover {
|
|
250
250
|
background: rgba(255, 255, 255, 0.3);
|
|
251
251
|
}
|
|
252
|
-
`,tQ=rr.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",gap:`${e.layoutMargin}px`,height:"28px",padding:`0 ${e.layoutMargin*1.2}px`,borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,fontSize:"10px",color:e.color.mediumdark})),nQ=rr.span(({theme:e})=>({fontFamily:e.typography.fonts.mono,opacity:.7})),rQ=rr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*1.2}px`,fontFamily:e.typography.fonts.mono})),bT=rr.span(({theme:e,tone:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",color:t,"& .muted":{color:e.color.mediumdark,fontWeight:400},"& .val":{fontWeight:e.typography.weight.bold}})),wT=rr.div(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"48px 24px",textAlign:"center",gap:"16px"})),vT=rr.div({fontSize:"32px"}),ST=rr.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),kT=rr.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s2,color:e.color.mediumdark,maxWidth:"320px",lineHeight:1.5})),CT=rr.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})),IT=rr.span({flex:1}),TT=rr.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`}})),ET=()=>{let{selectedProjectId:e,projects:t,loadingProjects:n}=Ke(),{isConnected:r,sessionToken:o,authError:i}=he(),{currentStoryId:a}=gt(),{currentReviewId:s,userRole:u,roleOverride:c,setRoleOverride:l,setFeatureFlags:p,pendingSettingsOpen:g,setPendingSettingsOpen:d,reviewHistory:f,validationUsage:y,featureFlags:I}=ue(),{figmaExpired:S}=hT(),[x,M]=KJ(!1);yT(()=>{g&&(M(!0),d(!1))},[g,d]);let z=()=>{l(null),o&&fetch(`${K()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(T=>T.json()).then(T=>{p({enableFixGeneration:!!T.enableFixGeneration,enableFixApply:!!T.enableFixApply,enableAutoMap:!!T.enableAutoMap,enableReviewBadges:!!T.enableReviewBadges,showCosts:!!T.showCosts,enableParallelReview:!!T.enableParallelReview,enableModelSelection:!!T.enableModelSelection,enableAiReview:!!T.enableAiReview})}).catch(()=>{})};hh(),Lh(),mT(),Ih(),Sh();let{notification:O,dismissNotification:L}=dT();yT(()=>{if(O){let T=setTimeout(L,5e3);return()=>clearTimeout(T)}},[O,L]);let N=t.find(T=>T.id===e),m=r&&!!e&&!!N,{onboarded:v,dismiss:k}=gT(),E=xT({sessionToken:o,selectedProjectId:e,selectedProjectLoaded:!!N,loadingProjects:n,projectsCount:t.length}),{loadingMapping:h}=gt(),b=m&&!!a&&!s&&h,F=f.find(T=>T.id===s),C=(F?.costUsd||0)+(y?.costUsd||0),A=(F?.inputTokens||0)+(F?.outputTokens||0)+(y?.inputTokens||0)+(y?.outputTokens||0),B=!!I.showCosts&&C>0,P=T=>T<.01?T.toFixed(4):T<.1?T.toFixed(3):T.toFixed(2),_=T=>T>=1e3?`${(T/1e3).toFixed(1)}K`:String(T);return st.createElement(rp,{header:st.createElement(op,{toolbar:st.createElement(_m,{onOpenSettings:()=>M(!0)})}),footer:st.createElement(tQ,null,st.createElement(nQ,null,jt.NAME," v","0.
|
|
252
|
+
`,tQ=rr.div(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",gap:`${e.layoutMargin}px`,height:"28px",padding:`0 ${e.layoutMargin*1.2}px`,borderTop:`1px solid ${e.appBorderColor}`,backgroundColor:e.background.app,fontSize:"10px",color:e.color.mediumdark})),nQ=rr.span(({theme:e})=>({fontFamily:e.typography.fonts.mono,opacity:.7})),rQ=rr.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*1.2}px`,fontFamily:e.typography.fonts.mono})),bT=rr.span(({theme:e,tone:t})=>({display:"inline-flex",alignItems:"center",gap:"4px",color:t,"& .muted":{color:e.color.mediumdark,fontWeight:400},"& .val":{fontWeight:e.typography.weight.bold}})),wT=rr.div(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"48px 24px",textAlign:"center",gap:"16px"})),vT=rr.div({fontSize:"32px"}),ST=rr.h3(({theme:e})=>({margin:0,fontSize:e.typography.size.s3,fontWeight:e.typography.weight.bold,color:e.color.defaultText})),kT=rr.p(({theme:e})=>({margin:0,fontSize:e.typography.size.s2,color:e.color.mediumdark,maxWidth:"320px",lineHeight:1.5})),CT=rr.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})),IT=rr.span({flex:1}),TT=rr.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`}})),ET=()=>{let{selectedProjectId:e,projects:t,loadingProjects:n}=Ke(),{isConnected:r,sessionToken:o,authError:i}=he(),{currentStoryId:a}=gt(),{currentReviewId:s,userRole:u,roleOverride:c,setRoleOverride:l,setFeatureFlags:p,pendingSettingsOpen:g,setPendingSettingsOpen:d,reviewHistory:f,validationUsage:y,featureFlags:I}=ue(),{figmaExpired:S}=hT(),[x,M]=KJ(!1);yT(()=>{g&&(M(!0),d(!1))},[g,d]);let z=()=>{l(null),o&&fetch(`${K()}/api/addon/flags`,{headers:{Authorization:`Bearer ${o}`}}).then(T=>T.json()).then(T=>{p({enableFixGeneration:!!T.enableFixGeneration,enableFixApply:!!T.enableFixApply,enableAutoMap:!!T.enableAutoMap,enableReviewBadges:!!T.enableReviewBadges,showCosts:!!T.showCosts,enableParallelReview:!!T.enableParallelReview,enableModelSelection:!!T.enableModelSelection,enableAiReview:!!T.enableAiReview})}).catch(()=>{})};hh(),Lh(),mT(),Ih(),Sh();let{notification:O,dismissNotification:L}=dT();yT(()=>{if(O){let T=setTimeout(L,5e3);return()=>clearTimeout(T)}},[O,L]);let N=t.find(T=>T.id===e),m=r&&!!e&&!!N,{onboarded:v,dismiss:k}=gT(),E=xT({sessionToken:o,selectedProjectId:e,selectedProjectLoaded:!!N,loadingProjects:n,projectsCount:t.length}),{loadingMapping:h}=gt(),b=m&&!!a&&!s&&h,F=f.find(T=>T.id===s),C=(F?.costUsd||0)+(y?.costUsd||0),A=(F?.inputTokens||0)+(F?.outputTokens||0)+(y?.inputTokens||0)+(y?.outputTokens||0),B=!!I.showCosts&&C>0,P=T=>T<.01?T.toFixed(4):T<.1?T.toFixed(3):T.toFixed(2),_=T=>T>=1e3?`${(T/1e3).toFixed(1)}K`:String(T);return st.createElement(rp,{header:st.createElement(op,{toolbar:st.createElement(_m,{onOpenSettings:()=>M(!0)})}),footer:st.createElement(tQ,null,st.createElement(nQ,null,jt.NAME," v","0.9.1"),B&&st.createElement(rQ,null,st.createElement(bT,{tone:Ye.green},st.createElement("span",{className:"muted"},"cost"),st.createElement("span",{className:"val"},"$",P(C)),st.createElement("span",{className:"muted"},"/"),st.createElement("span",{className:"val"},"\u20AA",P(C*3.65))),A>0&&st.createElement(bT,{tone:Xl},st.createElement("span",{className:"val"},"#"),st.createElement("span",{className:"val"},_(A)),st.createElement("span",{className:"muted"},"tokens"))))},O&&st.createElement(JJ,{variant:O.variant||"success"},st.createElement(QJ,null,O.variant==="error"?"!":O.variant==="warning"?"\u26A0":"+"),st.createElement(ZJ,null,O.message),st.createElement(eQ,{onClick:L},"x")),i&&st.createElement(CT,null,st.createElement("span",null,"\u26A0"),st.createElement(IT,null,i),st.createElement(TT,{onClick:()=>M(!0)},"Reconnect")),u==="admin"&&c&&st.createElement(CT,null,st.createElement("span",null,"\u{1F441}"),st.createElement(IT,null,"Previewing as ",c),st.createElement(TT,{onClick:z},"Exit preview")),E||b?st.createElement(zl,{label:E?"Loading...":"Loading review..."}):i?st.createElement(wT,null,st.createElement(vT,null,"\u2699"),st.createElement(ST,null,"Connection issue"),st.createElement(kT,null,"Session expired or dashboard unreachable. Please reconnect."),st.createElement(Qt,{onClick:()=>M(!0)},"Reconnect")):v&&!S&&o&&!n&&!e?st.createElement(wT,null,st.createElement(vT,null,"\u{1F4C1}"),st.createElement(ST,null,"No project selected"),st.createElement(kT,null,"Select or create a project for this Storybook to start reviewing."),st.createElement(Qt,{onClick:()=>M(!0)},"Open Settings")):v&&!S?st.createElement(Tx,null):st.createElement(d6,{onSkip:k,canSkip:m&&!S,figmaExpired:S}),x&&st.createElement(d3,{onClose:()=>M(!1)}))};import RT,{useCallback as oQ}from"react";import{useStorybookApi as iQ}from"storybook/manager-api";import{IconButton as aQ}from"storybook/internal/components";var sQ="uireview",lQ=`${sQ}/panel`,AT=()=>{let e=iQ();lC(e);let t=oQ(()=>{e.togglePanel(!0),e.setSelectedPanel(lQ)},[e]);return RT.createElement(aQ,{key:"uireview-tool",title:"UI Review - Compare with Figma",onClick:t},RT.createElement(Kx,null))};Se();import bn,{useState as Yd,useCallback as MT,useEffect as LT}from"react";import{styled as Ko,useTheme as bQ}from"storybook/theming";import{addons as Kd}from"storybook/manager-api";De();Ue();import{addons as fQ,experimental_getStatusStore as qd}from"storybook/manager-api";De();Ue();var cQ=K(),uQ="uireview/badge";async function dQ(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;w.warn(`[reviewAll] Rate limited, retrying in ${i}ms`),await new Promise(a=>setTimeout(a,i))}throw new Error("Max retries exceeded")}async function pQ(e,t){let n=new TextDecoder,r="",o=null,i=0,a=0,s=0,u=0,c=0,l=0;for(;;){let{done:p,value:g}=await e.read();if(p)break;if(t()){e.cancel();break}r+=n.decode(g,{stream:!0});let d=r.split(`
|
|
253
253
|
`);r=d.pop()||"";for(let f of d)if(f.startsWith("data: "))try{let y=JSON.parse(f.slice(6));if(y.type==="complete"){o=y.complianceScore??y.validation?.complianceScore??null;let S=(y.issues||[]).filter(x=>!x.dismissed);i=S.filter(x=>x.severity==="critical").length,a=S.filter(x=>x.severity==="major").length,s=S.filter(x=>x.severity==="minor").length,u=y.costUsd||0,c=y.inputTokens||0,l=y.outputTokens||0}}catch{}}return{score:o,criticalCount:i,majorCount:a,minorCount:s,costUsd:u,inputTokens:c,outputTokens:l}}function Gd(e,t,n,r,o){e&&e.set([{value:n,typeId:uQ,storyId:t,title:r,description:o}])}async function gQ(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 FT(e,t,n,r,o,i){Gd(o,e.storyId,"status-value:pending","Reviewing...",e.storyName);try{console.warn(`[reviewAll] Capturing for: ${e.storyName} (${e.storyId})`);let a=await gQ(e.storyId);console.warn(`[reviewAll] Captured: screenshot=${!!a.screenshot} domTree=${!!a.domTree} styles=${!!a.computedStyles} for: ${e.storyName}`);let s=await dQ(`${cQ}/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:a.screenshot,computedStyles:a.computedStyles,domTree:a.domTree,aiModels:[r]})});if(console.warn(`[reviewAll] API response for ${e.storyName}: HTTP ${s.status}`),!s.ok)throw new Error(`HTTP ${s.status}`);let u=s.body?.getReader();if(!u)throw new Error("No response body");let c=await pQ(u,i),{score:l,criticalCount:p,majorCount:g,minorCount:d,costUsd:f,inputTokens:y,outputTokens:I}=c;if(l!==null){let S=p>0||l<70?"status-value:error":g>0||l<90?"status-value:warning":"status-value:success",x=[`Score: ${l}`];p>0&&x.push(`${p} critical`),g>0&&x.push(`${g} major`),d>0&&x.push(`${d} minor`);let M=l>=90?`\u2713 Score ${l}`:l>=70?`\u26A0 Score ${l}`:`\u2717 Score ${l}`;return Gd(o,e.storyId,S,M,x.join(" \xB7 ")),{passed:l>=70,score:l,costUsd:f,inputTokens:y,outputTokens:I}}return Gd(o,e.storyId,"status-value:error","Review Failed","No score received"),{passed:!1,score:null,costUsd:0,inputTokens:0,outputTokens:0}}catch(a){w.error(`[reviewAll] Failed to review ${e.storyName}:`,a);let s=a instanceof Error?a.message:"Unknown error";return Gd(o,e.storyId,"status-value:error","Review Failed",s),{passed:!1,score:null,costUsd:0,inputTokens:0,outputTokens:0}}}var mQ=K(),Vl="uireview/badge";function PT(){let e=!1,t=!1;try{let n=fQ.getChannel();n.on(Lx,async()=>{if(!t){t=!0,e=!1;try{await yQ(n,()=>e)}finally{t=!1}}}),n.on(Bx,()=>{e=!0})}catch{}}async function Mx(){try{let e=localStorage.getItem("uicopilot_session_token"),t=localStorage.getItem("uicopilot_selected_project_id");if(!e||!t)return[];let n=await fetch(`${mQ}/api/mappings?projectId=${t}`,{headers:{Authorization:`Bearer ${e}`}});if(!n.ok)return[];let i=((await n.json()).mappings||[]).filter(a=>a.figmaNodeId).map(a=>{let s=a;return{storyId:s.storyId,storyName:s.name||s.storyId,figmaNodeId:s.figmaNodeId}});return hQ(i),i}catch(e){return w.error("[useReviewAll] Failed to load mapped stories:",e),[]}}function hQ(e){try{if(typeof qd!="function")return;let t=qd(Vl);if(!t)return;let n=t.getAll?.()||{},r=new Set(e.map(a=>a.storyId)),o=Object.keys(n).filter(a=>n[a]?.[Vl]&&!r.has(a));o.length>0&&t.unset(o);let i=e.filter(a=>{let s=n[a.storyId]?.[Vl];return!(s?.value==="status-value:success"||s?.value==="status-value:warning"||s?.value==="status-value:error")}).map(a=>({value:"status-value:pending",typeId:Vl,storyId:a.storyId,title:"Mapped to Figma",description:"Ready for UI review \u2014 click Run to start"}));i.length>0&&t.set(i)}catch{}}function xQ(){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 yQ(e,t){let n=await Mx();if(n.length===0){e.emit(Gl,{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 y=localStorage.getItem("uicopilot_selected_models");if(y){let I=JSON.parse(y);Array.isArray(I)&&I.length>0&&(i=I[0])}}catch{}let a=null;try{typeof qd=="function"&&(a=qd(Vl))}catch{}let s=xQ(),u=0,c=0,l=0,p=0,g=0,d=0;e.emit(Wl,{total:n.length,completed:0,currentStoryName:n[0]?.storyName||""});let f=n.map(y=>()=>FT(y,r,o,i,a,t));await Du(f,s,(y,I)=>{if(I&&typeof I=="object"&&"score"in I){let S=I;S.score!==null&&S.score>=90?u++:S.score!==null&&S.score>=70?c++:l++,p+=S.costUsd||0,g+=S.inputTokens||0,d+=S.outputTokens||0}else l++;console.warn(`[reviewAll] Story ${y+1}/${n.length} done:`,n[y].storyName,I),e.emit(Wl,{total:n.length,completed:u+c+l,currentStoryName:n[y].storyName})},t),e.emit(Gl,{total:n.length,passed:u,failed:l,warnCount:c,costUsd:p,inputTokens:g,outputTokens:d})}var wQ=Ko.div({padding:"8px 12px",display:"flex",flexDirection:"column",gap:"6px"}),vQ=Ko.div({display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"}),SQ=Ko.span(({theme:e})=>({fontSize:"12px",fontWeight:500,color:e.color.defaultText})),BT=Ko.span(({theme:e})=>({fontSize:"11px",color:e.color.mediumdark})),zT=Ko.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}})),kQ=Ko.div(({theme:e})=>({width:"100%",height:"3px",backgroundColor:e.appBorderColor,borderRadius:"2px",overflow:"hidden"})),CQ=Ko.div(({theme:e,percent:t})=>({width:`${t}%`,height:"100%",backgroundColor:e.color.secondary,borderRadius:"2px",transition:"width 0.3s ease"})),DT=Ko.div(({theme:e})=>({display:"flex",alignItems:"center",gap:`${e.layoutMargin*.8}px`,fontSize:e.typography.size.s1,color:e.color.mediumdark})),os=Ko.span(e=>({display:"flex",alignItems:"center",gap:"3px","&::before":{content:'""',display:"inline-block",width:"7px",height:"7px",borderRadius:"50%",backgroundColor:e.dotColor}})),Lx="uireview/review-all-start",Bx="uireview/review-all-cancel",Wl="uireview/review-all-progress",Gl="uireview/review-all-complete",NT=()=>{let[e,t]=Yd(!1),[n,r]=Yd(null),[o,i]=Yd(null),[a,s]=Yd(null);LT(()=>{let d=()=>{Mx().then(S=>{s(S.length)}).catch(()=>{})},f=setTimeout(d,3e3),y=null;try{y=Kd.getChannel(),y.on("storyChanged",d),y.on("uireview/mappings-changed",d)}catch{}let I=setInterval(d,6e4);return()=>{clearTimeout(f),clearInterval(I),y&&(y.off("storyChanged",d),y.off("uireview/mappings-changed",d))}},[]),LT(()=>{let d;try{d=Kd.getChannel()}catch{return}let f=I=>{r(I),t(!0)},y=I=>{t(!1),r(null),i({total:I.total,passed:I.passed,failed:I.failed,warned:I.warnCount||0,costUsd:I.costUsd||0})};return d.on(Wl,f),d.on(Gl,y),()=>{d.off(Wl,f),d.off(Gl,y)}},[]);let u=MT(()=>{try{Kd.getChannel().emit(Lx),t(!0),i(null)}catch{}},[]),c=MT(()=>{try{Kd.getChannel().emit(Bx)}catch{}t(!1),r(null)},[]),l=n?Math.round(n.completed/n.total*100):0,p=bQ(),g=(()=>{try{return!!JSON.parse(localStorage.getItem("uicopilot_feature_flags")||"{}").showCosts}catch{return!1}})();return bn.createElement(wQ,null,bn.createElement(vQ,null,bn.createElement(SQ,null,"UI Review"),e?bn.createElement(zT,{running:!0,onClick:c},"Cancel"):bn.createElement(zT,{onClick:u,disabled:!a||a===0},"Run",a?` (${a})`:"")),!e&&o?bn.createElement(bn.Fragment,null,bn.createElement(DT,null,bn.createElement(os,{dotColor:p.color.positive},"Pass (",o.passed,")"),bn.createElement(os,{dotColor:p.color.warning},"Warn (",o.warned,")"),bn.createElement(os,{dotColor:p.color.negative},"Fail (",o.failed,")")),g&&o.costUsd>0&&bn.createElement(BT,null,"$",o.costUsd.toFixed(3)," \xB7 \u20AA",(o.costUsd*3.6).toFixed(3))):e?null:bn.createElement(DT,null,bn.createElement(os,{dotColor:p.color.positive},"Pass"),bn.createElement(os,{dotColor:p.color.warning},"Warn"),bn.createElement(os,{dotColor:p.color.negative},"Fail")),e&&n&&bn.createElement(bn.Fragment,null,bn.createElement(kQ,null,bn.createElement(CQ,{percent:l})),bn.createElement(BT,null,"Reviewing ",Math.min(n.completed+1,n.total),"/",n.total," \u2014 ",n.currentStoryName)))};import*as OT from"@sentry/react";var IQ="https://015e961f5f626bad5315430e02940616@o138219.ingest.us.sentry.io/4511134750539776",_T=!1;function TQ(){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 $T(){if(!_T){_T=!0;try{OT.init({dsn:IQ,environment:TQ(),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{}}}$T();var Jd="uireview",AQ=`${Jd}/panel`,FQ=`${Jd}/tool`,HT=`${Jd}/test-provider`,PQ=RQ.span(({theme:e})=>({marginLeft:6,padding:"0 5px",fontSize:9,fontWeight:e.typography.weight.bold,lineHeight:"14px",textTransform:"uppercase",letterSpacing:"0.04em",borderRadius:8,color:e.color.lightest,background:G,verticalAlign:"middle"})),MQ=()=>Ei.createElement(Ei.Fragment,null,"UI Parity",Ei.createElement(PQ,null,"beta"));Xd.register(Jd,()=>{if(YS(),qS(),console.log("[UI Review] Registering addon, checking for StatusStore API..."),typeof Dx=="function"){console.log("[UI Review] StatusStore API available, initializing badges");let e=Dx("uireview/badge");ZS(e);let t=Dx("uireview/mapped");n4(t),console.log("[UI Review] Badge listener initialized")}else console.warn("[UI Review] experimental_getStatusStore not available \u2014 badges disabled");Xd.add(FQ,{type:zx.TOOL,title:"UI Parity",match:({viewMode:e})=>e==="story",render:()=>Ei.createElement(AT,null)}),PT(),Xd.add(HT,{type:zx.experimental_TEST_PROVIDER,id:HT,render:()=>Ei.createElement(NT,null)}),Xd.add(AQ,{type:zx.PANEL,title:MQ,match:({viewMode:e})=>e==="story",render:({active:e})=>Ei.createElement(EQ,{active:e||!1},Ei.createElement(Lm,null,Ei.createElement(ET,null)))})});
|
|
254
254
|
/*! Bundled license information:
|
|
255
255
|
|