handler-playable-sdk 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-VPC22EHY.js → chunk-NSGXNRYZ.js} +55 -55
- package/dist/cli/brand-dna.mjs +1 -1
- package/dist/cli/canva-import.mjs +1 -1
- package/dist/cli/cleanup-assets.mjs +1 -1
- package/dist/cli/fix-scales.mjs +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/screen-helper.mjs +1 -1
- package/dist/cli/setup-library.mjs +1 -1
- package/dist/cli/student-helper.mjs +1 -1
- package/dist/cli/sync-screens.mjs +1 -1
- package/dist/cli/validate-assets.mjs +1 -1
- package/dist/cli/validate.mjs +1 -1
- package/dist/index.cjs +35 -35
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/pixi/index.cjs +10 -10
- package/dist/pixi/index.js +1 -1
- package/dist/three/index.cjs +1 -1
- package/dist/three/index.js +1 -1
- package/package.json +1 -1
package/dist/pixi/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x39078a,_0x3b7162){var a0_0x7b8192={_0x10212a:0xce,_0x653b8d:0xbc,_0x2381b4:0xdb,_0x573642:0xb1,_0x38f9a4:0xac,_0x1a6485:0x1c7,_0x71a29f:'8Jzw',_0x32c0db:0x1d9,_0x1215f4:0x1c8,_0x421502:0xb6,_0x2b4beb:0xaa,_0x532b4b:0xa4,_0x54038b:0x1dc,_0x123a30:'TtmN',_0x41e129:0x1d4,_0x598844:0x1c7,_0x51e08b:0x1c5,_0x195b6d:0x1c1,_0xf84596:0x1c6,_0x36ef4:0x1cb,_0x57c3f7:'xZ%F',_0x18459d:0x2a9,_0x39dd6a:0x2bb,_0x110a1b:'xZ%F',_0x365d3a:0x2ca,_0x4fe5df:0x2be,_0x133822:0xcb,_0x459e32:0xc1,_0x591698:0xd3,_0x455f11:'3WHc',_0x180324:0x1e4,_0xb1dd00:'&eRx',_0x210f70:0x1dc,_0x3799c2:0xc4,_0x302683:0xd3,_0x38e8bd:0xc1,_0xa3b0cc:0xcd,_0x5c75d4:')DCH',_0x109c25:0x2c6},a0_0x4b50ca={_0x2607fb:0x30e},a0_0x3ef560={_0x2577e3:0x1f3};function _0x3358e9(_0x392d27,_0x1ea711,_0x23509f,_0x2063ca,_0x30f787){return a0_0x5a19(_0x392d27- -a0_0x3ef560._0x2577e3,_0x2063ca);}function _0xeffc1b(_0xe80f32,_0x10389a,_0x3f24f3,_0x5a71c0,_0x207831){return a0_0x5a19(_0x3f24f3- -a0_0x4b50ca._0x2607fb,_0x10389a);}function _0xa928b1(_0x51db09,_0x1ff401,_0x3b054e,_0x47e88e,_0x35f73f){return a0_0x5a19(_0x3b054e-0x183,_0x51db09);}var _0x210b1c=_0x39078a();while(!![]){try{var _0x484cbe=parseInt(_0x3358e9(-a0_0x7b8192._0x10212a,-0xbd,-a0_0x7b8192._0x653b8d,'xZ%F',-a0_0x7b8192._0x2381b4))/(-0x24d4+-0x1e5*0xc+0x3b91)*(parseInt(_0x3358e9(-a0_0x7b8192._0x573642,-0xbb,-0xb2,'swqm',-a0_0x7b8192._0x38f9a4))/(0x3f*0x26+0x845*0x1+0x1f5*-0x9))+parseInt(_0xeffc1b(-a0_0x7b8192._0x1a6485,a0_0x7b8192._0x71a29f,-a0_0x7b8192._0x32c0db,-a0_0x7b8192._0x1215f4,-0x1d1))/(0x26b5+0x57*-0x1b+-0x1d85)*(parseInt(_0x3358e9(-a0_0x7b8192._0x421502,-0xab,-a0_0x7b8192._0x2b4beb,'6PCz',-a0_0x7b8192._0x532b4b))/(0x2e3*0x5+-0x1ca6+-0x1*-0xe3b))+parseInt(_0xeffc1b(-a0_0x7b8192._0x54038b,a0_0x7b8192._0x123a30,-a0_0x7b8192._0x41e129,-a0_0x7b8192._0x598844,-a0_0x7b8192._0x51e08b))/(-0x745+-0x3f*-0x37+-0x29*0x27)+parseInt(_0xeffc1b(-a0_0x7b8192._0x195b6d,a0_0x7b8192._0x123a30,-0x1cd,-a0_0x7b8192._0xf84596,-a0_0x7b8192._0x36ef4))/(-0x4*-0x6d5+-0x1420+-0x72e)*(-parseInt(_0xa928b1(a0_0x7b8192._0x57c3f7,a0_0x7b8192._0x18459d,0x2ac,0x2a6,a0_0x7b8192._0x39dd6a))/(-0xd0f*0x2+-0x1*-0x11fc+-0x829*-0x1))+parseInt(_0xa928b1(a0_0x7b8192._0x110a1b,a0_0x7b8192._0x365d3a,a0_0x7b8192._0x4fe5df,0x2b7,0x2b9))/(-0x973+-0x951+-0x3*-0x644)+parseInt(_0x3358e9(-a0_0x7b8192._0x133822,-a0_0x7b8192._0x459e32,-a0_0x7b8192._0x591698,a0_0x7b8192._0x455f11,-0xde))/(0xb5f+0x25ae+0x1882*-0x2)*(parseInt(_0xeffc1b(-a0_0x7b8192._0x180324,a0_0x7b8192._0xb1dd00,-a0_0x7b8192._0x210f70,-0x1ea,-0x1e1))/(0xf*-0xf1+0x1377+-0x54e))+-parseInt(_0x3358e9(-a0_0x7b8192._0x3799c2,-a0_0x7b8192._0x302683,-a0_0x7b8192._0x38e8bd,']2l(',-a0_0x7b8192._0xa3b0cc))/(-0x1336*-0x2+-0x1*-0x15a+-0x7*0x5ad)*(parseInt(_0xa928b1(a0_0x7b8192._0x5c75d4,0x2ac,0x2bc,a0_0x7b8192._0x109c25,a0_0x7b8192._0x18459d))/(-0x27*0xf1+0x94f+0x1b74));if(_0x484cbe===_0x3b7162)break;else _0x210b1c['push'](_0x210b1c['shift']());}catch(_0x17892b){_0x210b1c['push'](_0x210b1c['shift']());}}}(a0_0x2616,0x16*0x1645+0x9b77+-0x32c*-0x4b));var a0_0x3f0989=(function(){var _0x362b68=!![];return function(_0x1d255d,_0xe9dbb6){var a0_0x1c18a3={_0x1128d8:0x36a,_0x2aacca:0x36d,_0x282e61:0x36b,_0x3c8ca9:0x37a},_0x2cf5af=_0x362b68?function(){function _0x4281aa(_0xe66dde,_0x58132c,_0x46360e,_0x3241c0,_0x224b3d){return a0_0x5a19(_0x3241c0-0x23f,_0xe66dde);}if(_0xe9dbb6){var _0x36a40a=_0xe9dbb6[_0x4281aa('8Jzw',a0_0x1c18a3._0x1128d8,a0_0x1c18a3._0x2aacca,a0_0x1c18a3._0x282e61,a0_0x1c18a3._0x3c8ca9)](_0x1d255d,arguments);return _0xe9dbb6=null,_0x36a40a;}}:function(){};return _0x362b68=![],_0x2cf5af;};}()),a0_0x5b9f31=a0_0x3f0989(this,function(){var a0_0x12eff3={_0x3dad19:0x1da,_0x3880ab:0x1db,_0x4e2bef:0x1e6,_0x52afe6:0x1ce,_0x5bc85e:0x1d4,_0x7d3fcb:0x1dc,_0x4a285e:'#$nF',_0x2855c6:'y8Wr',_0x261fd4:0x254,_0x18ab23:0x240,_0x2d0ba3:0x252,_0x2032e9:0x1e0,_0x49f7d7:0x1e5,_0x3c2a38:0x1ed,_0x4473a3:'1jwj',_0x42a9ef:'RVwf',_0x15d799:0xa8,_0x678ecc:0xba,_0x1ce8ec:0xac,_0x5462f3:0xb0,_0x394b8a:'t2sN',_0x202b19:0xba,_0x4585c0:'rwbr',_0x18e44d:0xb1,_0x10acf9:0xaf,_0x21352a:0x1c6,_0x1d3741:0x1e4,_0x1e9c37:0x1ef,_0xb788c7:0x1dc,_0x1f0bbe:0x1f6,_0x8d854f:0x1ec,_0x5594f9:'Ypij',_0x549fbe:'rwbr',_0x456aa3:0x26e,_0x2e9dc8:0x260,_0x52af7b:0x1f6,_0x3ca738:0x1e0,_0x126588:'KM5H',_0x4be4c0:0x253,_0x505673:0x251,_0x382c7f:0x25e,_0x420e31:0x25a,_0x57e6a6:'[JK1',_0x206f00:0xb5,_0x4f79f0:0xa9,_0x2da624:0xaa,_0x7d35ee:'Ypij',_0x38b030:0x266,_0xdfdc6b:0x270,_0x982560:0x26b},a0_0x22c219={_0x1c2ab4:0x12c},a0_0x5e49a5={_0x1de259:0x316},a0_0x34da37={_0x28dcdc:0x8b},_0x296c5a={};_0x296c5a[_0x276786(-a0_0x12eff3._0x3dad19,-a0_0x12eff3._0x3880ab,-a0_0x12eff3._0x4e2bef,-a0_0x12eff3._0x4e2bef,'[JK1')]=_0x276786(-a0_0x12eff3._0x52afe6,-0x1dc,-a0_0x12eff3._0x5bc85e,-a0_0x12eff3._0x7d3fcb,a0_0x12eff3._0x4a285e)+_0x3c0b8f(a0_0x12eff3._0x2855c6,0x25f,a0_0x12eff3._0x261fd4,a0_0x12eff3._0x18ab23,a0_0x12eff3._0x2d0ba3)+'+$';function _0x1ec583(_0x5bbc00,_0xd785be,_0x5c4b6d,_0x41a19b,_0x30cd0e){return a0_0x5a19(_0xd785be- -a0_0x34da37._0x28dcdc,_0x5bbc00);}function _0x276786(_0x131e80,_0x5c6be2,_0x344da6,_0x119795,_0x2e0a36){return a0_0x5a19(_0x131e80- -a0_0x5e49a5._0x1de259,_0x2e0a36);}var _0x5aca66=_0x296c5a;function _0x3c0b8f(_0x33cfc0,_0x332893,_0x439946,_0x43bbad,_0x48dcfb){return a0_0x5a19(_0x48dcfb-a0_0x22c219._0x1c2ab4,_0x33cfc0);}return a0_0x5b9f31[_0x276786(-0x1e9,-a0_0x12eff3._0x2032e9,-a0_0x12eff3._0x49f7d7,-a0_0x12eff3._0x3c2a38,a0_0x12eff3._0x4473a3)+_0x1ec583(a0_0x12eff3._0x42a9ef,a0_0x12eff3._0x15d799,a0_0x12eff3._0x678ecc,a0_0x12eff3._0x1ce8ec,a0_0x12eff3._0x5462f3)]()[_0x1ec583(a0_0x12eff3._0x394b8a,0xad,a0_0x12eff3._0x202b19,0xa0,0xa8)+'h'](_0x1ec583(a0_0x12eff3._0x4585c0,a0_0x12eff3._0x1ce8ec,a0_0x12eff3._0x18e44d,a0_0x12eff3._0x678ecc,a0_0x12eff3._0x10acf9)+_0x276786(-0x1d8,-0x1c6,-a0_0x12eff3._0x21352a,-a0_0x12eff3._0x1d3741,'3WHc')+'+$')[_0x276786(-a0_0x12eff3._0x1e9c37,-a0_0x12eff3._0xb788c7,-a0_0x12eff3._0x1f0bbe,-a0_0x12eff3._0x8d854f,a0_0x12eff3._0x5594f9)+_0x3c0b8f(a0_0x12eff3._0x549fbe,a0_0x12eff3._0x456aa3,0x271,0x24e,a0_0x12eff3._0x2e9dc8)]()[_0x276786(-a0_0x12eff3._0x8d854f,-a0_0x12eff3._0x52af7b,-0x1e1,-a0_0x12eff3._0x3ca738,'^[h9')+_0x3c0b8f(a0_0x12eff3._0x126588,a0_0x12eff3._0x4be4c0,a0_0x12eff3._0x505673,a0_0x12eff3._0x382c7f,a0_0x12eff3._0x420e31)+'r'](a0_0x5b9f31)[_0x1ec583(a0_0x12eff3._0x57e6a6,a0_0x12eff3._0x206f00,a0_0x12eff3._0x4f79f0,0xa6,a0_0x12eff3._0x2da624)+'h'](_0x5aca66[_0x3c0b8f(a0_0x12eff3._0x7d35ee,0x269,a0_0x12eff3._0x38b030,a0_0x12eff3._0xdfdc6b,a0_0x12eff3._0x982560)]);});a0_0x5b9f31();import{A as a0_0xc1fa47,B as a0_0x459da4,C as a0_0x4eb340,D as a0_0x559a17,b as a0_0x5b15f7,c as a0_0x1d8b1d,d as a0_0x5bfdbb,e as a0_0x2e8e72,f as a0_0x3275c4,g as a0_0x10026f,h as a0_0x58acd3,i as a0_0x20e698,j as a0_0x51aaee,k as a0_0xb44acb,l as a0_0x3053b5,m as a0_0x24cb60,n as a0_0xe48eb0,o as a0_0x432673,p as a0_0x5e9594,q as a0_0x1d272c,r as a0_0x553ade,s as a0_0xbfc4de,t as a0_0x5e64c3,u as a0_0x2db5ba,v as a0_0x579b52,w as a0_0x48086f,x as a0_0x103fdd,y as a0_0x5c41ed,z as a0_0x113ddc}from'../chunk-VPC22EHY.js';function a0_0x2616(){var _0x4004e1=['W4hdOKbTWPG','amkSWR4ScG','vapdPMxdSmo8W7BdGq','WOJdKxr6xuBdLMhcR8kzcqWE','ahNdUHTDCg9hW6JcLCkGWQ0b','W6TcW7uOlW','W7ZdGWq7p8oBW50x','isf/W6ym','p8kMWQOQyW','W5n9W7a4cW','WOhdMhf4xXZcN3FcQSkmdW','WQiAw8kaWQtcMw7dLG','W7RdVr/cIf5IjXa2ea','e8kawmkpW6OIEmo5y3CFqSkD','W7/cMYFcN1JdLmkJbZj8','W7ldGrS5gmoFW68p','W6BcTIZdNmkStxRcJG','CSoGEuhcIq','WQJdTmkMhCkpWO5dAmkTW4RcJG','c3RdSbugfG9XW7ZcMq','W6hdN8kZqNi','amktWP08vG','mtjLW7PlzmkkWP9pxa','bx3cO20FnXDT','BKH2b8kE','r8k1FCowfCkTtw8','W6hdLMNcRvO','a1qGEeO','dmoYASoHkq','W4ldLJlcQ8osW4NdKCo6eYWrWOWu','W7RdHmkPwqRcKmoxb8oMBW','emknx8kiW6WHEmoEshK/tmk6','nSkWW41MnhJcOmketIa','D8oyW6O','WOdcPa8','WRNcKY3dUg/cNmkxqa91','nSoovSk0WQjYiCkq'];a0_0x2616=function(){return _0x4004e1;};return a0_0x2616();}import{a as a0_0x15b52c,b as a0_0x373170,c as a0_0x4df1c4,d as a0_0x581c9d,e as a0_0xffb54f}from'../chunk-I5OOVR5U.js';import'../chunk-PW2FGMCO.js';import'../chunk-HVKF2KYL.js';import'../chunk-E6WJCS24.js';import'../chunk-JXBG6UFL.js';function a0_0x5a19(_0x3645cc,_0x49b700){_0x3645cc=_0x3645cc-(0x7d6*-0x1+-0x2*0xe6d+0x95*0x41);var _0x509576=a0_0x2616();var _0x59a9ef=_0x509576[_0x3645cc];if(a0_0x5a19['eQRxWb']===undefined){var _0x431c14=function(_0x3a454f){var _0x4de6e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x6a6000='',_0x414dda='',_0xcb918e=_0x6a6000+_0x431c14;for(var _0x405d22=-0x22ff+0x45a*-0x1+0x59f*0x7,_0x4d3702,_0x2fa0e6,_0x35eb5c=0x523*0x5+-0x103*-0xd+-0x26d6;_0x2fa0e6=_0x3a454f['charAt'](_0x35eb5c++);~_0x2fa0e6&&(_0x4d3702=_0x405d22%(-0x1*-0x301+0x962*0x2+0x1*-0x15c1)?_0x4d3702*(-0x14c+-0x1f3*-0x9+-0xfff)+_0x2fa0e6:_0x2fa0e6,_0x405d22++%(0x92c+-0x6e+-0x8ba))?_0x6a6000+=_0xcb918e['charCodeAt'](_0x35eb5c+(-0x21eb*0x1+-0x199d+0x3b92))-(-0x31e*0xc+-0x237*0x9+0x18d*0x25)!==0x13d6+0x739+0x1b0f*-0x1?String['fromCharCode'](-0x1264+-0x185c+-0x3*-0xe95&_0x4d3702>>(-(0x8b6+0x552+-0xe06)*_0x405d22&0x11ad*0x2+0x6a0+0x14*-0x219)):_0x405d22:0x1*0x473+-0xed3+-0x2*-0x530){_0x2fa0e6=_0x4de6e3['indexOf'](_0x2fa0e6);}for(var _0x1d1086=-0x637*-0x3+0x4*0x7ba+-0x318d,_0x26d0fd=_0x6a6000['length'];_0x1d1086<_0x26d0fd;_0x1d1086++){_0x414dda+='%'+('00'+_0x6a6000['charCodeAt'](_0x1d1086)['toString'](0x19d0+0xee0*-0x1+-0xae0))['slice'](-(-0x241e+0xa08+-0xd0c*-0x2));}return decodeURIComponent(_0x414dda);};var _0x186125=function(_0x4035f1,_0x2b7b7c){var _0x4f8179=[],_0x177422=0x1f10+0x238e+-0x429e,_0x5bc89f,_0x15ff70='';_0x4035f1=_0x431c14(_0x4035f1);var _0x510b39;for(_0x510b39=-0x7*-0x53+-0x8a7*0x3+-0x4*-0x5ec;_0x510b39<-0x3e*0x71+0xff2+0xc6c;_0x510b39++){_0x4f8179[_0x510b39]=_0x510b39;}for(_0x510b39=0x7c*0x4f+-0x19f+-0xb1*0x35;_0x510b39<0x1549*-0x1+0x626+-0x1b*-0x99;_0x510b39++){_0x177422=(_0x177422+_0x4f8179[_0x510b39]+_0x2b7b7c['charCodeAt'](_0x510b39%_0x2b7b7c['length']))%(-0x1*0x1b19+-0x34*0xb+0x1*0x1e55),_0x5bc89f=_0x4f8179[_0x510b39],_0x4f8179[_0x510b39]=_0x4f8179[_0x177422],_0x4f8179[_0x177422]=_0x5bc89f;}_0x510b39=0x58*0x62+0xb85*-0x1+0xe3*-0x19,_0x177422=-0x1*0x829+0xf3*0x1b+-0x68*0x2b;for(var _0x171fa5=0x3*-0x699+0x1a25+-0x65a;_0x171fa5<_0x4035f1['length'];_0x171fa5++){_0x510b39=(_0x510b39+(-0xe3f+0xef9+0xb9*-0x1))%(0x1148+-0xc*0x32f+-0x17*-0xf4),_0x177422=(_0x177422+_0x4f8179[_0x510b39])%(0x377+0x1bbd+0x1e34*-0x1),_0x5bc89f=_0x4f8179[_0x510b39],_0x4f8179[_0x510b39]=_0x4f8179[_0x177422],_0x4f8179[_0x177422]=_0x5bc89f,_0x15ff70+=String['fromCharCode'](_0x4035f1['charCodeAt'](_0x171fa5)^_0x4f8179[(_0x4f8179[_0x510b39]+_0x4f8179[_0x177422])%(0xe7f+0xf*-0x209+0x1108)]);}return _0x15ff70;};a0_0x5a19['xcsbtL']=_0x186125,a0_0x5a19['sCPLsz']={},a0_0x5a19['eQRxWb']=!![];}var _0x515674=_0x509576[-0x6*0x7c+0xc+0x2dc],_0x5eee16=_0x3645cc+_0x515674,_0x247ca9=a0_0x5a19['sCPLsz'][_0x5eee16];if(!_0x247ca9){if(a0_0x5a19['wSfOru']===undefined){var _0x34a930=function(_0x27de0b){this['nkismd']=_0x27de0b,this['QJsWIm']=[0x4+0x9ae*-0x1+0x9ab,0x26a2*-0x1+-0x1bb1+0x4253,-0x1*-0x171a+0xd6*-0xb+-0x2*0x6f4],this['PgQtIP']=function(){return'newState';},this['aDpQsz']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['gTWwAq']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x34a930['prototype']['NxOzZG']=function(){var _0x18b813=new RegExp(this['aDpQsz']+this['gTWwAq']),_0xccae2=_0x18b813['test'](this['PgQtIP']['toString']())?--this['QJsWIm'][0x223+0x1424*-0x1+0x1202]:--this['QJsWIm'][0x135e+0x1f5e+-0x44*0xbf];return this['QyhIMl'](_0xccae2);},_0x34a930['prototype']['QyhIMl']=function(_0xfcfa0d){if(!Boolean(~_0xfcfa0d))return _0xfcfa0d;return this['dKAREl'](this['nkismd']);},_0x34a930['prototype']['dKAREl']=function(_0x45a33d){for(var _0x521107=-0x1283+0xbd8+0x6ab,_0x160c68=this['QJsWIm']['length'];_0x521107<_0x160c68;_0x521107++){this['QJsWIm']['push'](Math['round'](Math['random']())),_0x160c68=this['QJsWIm']['length'];}return _0x45a33d(this['QJsWIm'][-0x2416+0xffb+0x1*0x141b]);},new _0x34a930(a0_0x5a19)['NxOzZG'](),a0_0x5a19['wSfOru']=!![];}_0x59a9ef=a0_0x5a19['xcsbtL'](_0x59a9ef,_0x49b700),a0_0x5a19['sCPLsz'][_0x5eee16]=_0x59a9ef;}else _0x59a9ef=_0x247ca9;return _0x59a9ef;}export{a0_0x15b52c as AssetCache,a0_0x4df1c4 as AssetLoader,a0_0x2db5ba as AssetSystem,a0_0x581c9d as AssetTextures,a0_0xbfc4de as Assets,a0_0x432673 as BaseSystem,a0_0xe48eb0 as GameEngine,a0_0x2e8e72 as GameObject,a0_0x3275c4 as GameObjectManager,a0_0x24cb60 as ObjectFactory,a0_0x5bfdbb as Renderer,a0_0x5e9594 as RuntimeObjectRegistry,a0_0x1d8b1d as Transform,a0_0x459da4 as applyScreenAnchor,a0_0x1d272c as basePixi,a0_0x48086f as clearResponsiveElements,a0_0x5b15f7 as createPixiBase,a0_0x51aaee as getRegisteredFontIds,a0_0x579b52 as globalResponsiveMultipliers,a0_0xffb54f as initAssetTextures,a0_0x5e64c3 as initAssets,a0_0x4eb340 as layout,a0_0x3053b5 as playLottieOverlay,a0_0x20e698 as registerFont,a0_0x373170 as registerType,a0_0x5c41ed as resolveAnchorVec2,a0_0x10026f as resolveFont,a0_0x58acd3 as resolveFontWeight,a0_0x113ddc as resolveScreenAnchorPoint,a0_0xc1fa47 as resolveScreenRatioPoint,a0_0x559a17 as runInitSequence,a0_0xb44acb as setLottieInstance,a0_0x553ade as spawnSceneFromConfig,a0_0x103fdd as updateScreenState};
|
|
1
|
+
function a0_0x3896(_0x29aa9f,_0x49a75a){_0x29aa9f=_0x29aa9f-(-0x1578+0xfe6+0x77a);var _0x54e8ac=a0_0x23f7();var _0x4ed358=_0x54e8ac[_0x29aa9f];if(a0_0x3896['HOpdQx']===undefined){var _0x3b3346=function(_0x3f435e){var _0x14b054='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x356e00='',_0x5942e6='',_0x1c9046=_0x356e00+_0x3b3346;for(var _0x5aea47=-0x1*0x99b+0x74b+-0x10*-0x25,_0x5a516d,_0x531d09,_0x4378f1=-0x4e5+0x1b0d+0xb14*-0x2;_0x531d09=_0x3f435e['charAt'](_0x4378f1++);~_0x531d09&&(_0x5a516d=_0x5aea47%(-0x21b*-0x3+0x748*0x3+-0x1c25)?_0x5a516d*(-0x116+-0x242+0x398)+_0x531d09:_0x531d09,_0x5aea47++%(-0x1fa8+-0x15ad+0x3559))?_0x356e00+=_0x1c9046['charCodeAt'](_0x4378f1+(0x1*-0xb9c+-0x9fa+0x15a0))-(-0xb*-0xda+-0x1f*0x28+-0x47c)!==0x1db8+-0x1981*-0x1+0xd3*-0x43?String['fromCharCode'](-0x7*-0x2b+0x1*-0x2282+0x2254&_0x5a516d>>(-(-0x829+-0xb56+0x1*0x1381)*_0x5aea47&-0x6*-0x527+0x208d*0x1+0x3f71*-0x1)):_0x5aea47:-0x6cf+-0x1d55*-0x1+-0x1*0x1686){_0x531d09=_0x14b054['indexOf'](_0x531d09);}for(var _0x16bbd2=-0x2169+0x1*0x2482+-0x319,_0x383af9=_0x356e00['length'];_0x16bbd2<_0x383af9;_0x16bbd2++){_0x5942e6+='%'+('00'+_0x356e00['charCodeAt'](_0x16bbd2)['toString'](0xb6*-0x23+0x269+-0x9*-0x281))['slice'](-(0xfa7+-0x1288+-0x2e3*-0x1));}return decodeURIComponent(_0x5942e6);};var _0x109605=function(_0x2485f1,_0x58ba67){var _0x514889=[],_0x81cbea=0x14*0x177+0xaea+-0x2836,_0x1117cc,_0x2a996c='';_0x2485f1=_0x3b3346(_0x2485f1);var _0x314826;for(_0x314826=0xe22+-0x22b1+0x148f;_0x314826<0x24f5+0x238e+-0x1*0x4783;_0x314826++){_0x514889[_0x314826]=_0x314826;}for(_0x314826=0x2287+0x1b7*0x5+-0x2b1a;_0x314826<0x2015*-0x1+-0xbb9*-0x3+-0x216;_0x314826++){_0x81cbea=(_0x81cbea+_0x514889[_0x314826]+_0x58ba67['charCodeAt'](_0x314826%_0x58ba67['length']))%(0x1dbb+-0x1d20+0x65),_0x1117cc=_0x514889[_0x314826],_0x514889[_0x314826]=_0x514889[_0x81cbea],_0x514889[_0x81cbea]=_0x1117cc;}_0x314826=-0xe36+-0x1*0x5a2+0x13d8,_0x81cbea=0x5*0x8b+-0xbd9+0x922;for(var _0xedcee1=-0x16a6+-0xcb5*-0x1+-0x1fd*-0x5;_0xedcee1<_0x2485f1['length'];_0xedcee1++){_0x314826=(_0x314826+(0x1739+0x1c43+-0x23d*0x17))%(-0x7bb+-0x13ca+0x1c85),_0x81cbea=(_0x81cbea+_0x514889[_0x314826])%(-0x10d*0x1a+-0x21e1+0x3e33),_0x1117cc=_0x514889[_0x314826],_0x514889[_0x314826]=_0x514889[_0x81cbea],_0x514889[_0x81cbea]=_0x1117cc,_0x2a996c+=String['fromCharCode'](_0x2485f1['charCodeAt'](_0xedcee1)^_0x514889[(_0x514889[_0x314826]+_0x514889[_0x81cbea])%(0x10f+-0x202d+-0x201e*-0x1)]);}return _0x2a996c;};a0_0x3896['urmNUr']=_0x109605,a0_0x3896['HxGftM']={},a0_0x3896['HOpdQx']=!![];}var _0x27aba=_0x54e8ac[0x15a6+-0x628*0x1+-0xf7e],_0x24fcef=_0x29aa9f+_0x27aba,_0xcc5f06=a0_0x3896['HxGftM'][_0x24fcef];if(!_0xcc5f06){if(a0_0x3896['yfEYUx']===undefined){var _0x586899=function(_0x5b194f){this['MuKOtE']=_0x5b194f,this['wavdUb']=[-0x25b1+0x7*0x75+-0x227f*-0x1,-0x2229+-0x1b4d*-0x1+-0x4*-0x1b7,-0x1381*-0x1+-0x1f7b*-0x1+-0x32fc],this['jNHmGf']=function(){return'newState';},this['tkzAHf']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['zOwZzJ']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x586899['prototype']['XdlHFL']=function(){var _0xf78d03=new RegExp(this['tkzAHf']+this['zOwZzJ']),_0x51cadc=_0xf78d03['test'](this['jNHmGf']['toString']())?--this['wavdUb'][-0x1f6d+-0xd*-0x44+0x1bfa]:--this['wavdUb'][0xe8d+0x2595+-0x1a11*0x2];return this['JIgYsr'](_0x51cadc);},_0x586899['prototype']['JIgYsr']=function(_0x4216eb){if(!Boolean(~_0x4216eb))return _0x4216eb;return this['KncVNk'](this['MuKOtE']);},_0x586899['prototype']['KncVNk']=function(_0x337ed7){for(var _0x3a546a=-0x6f7+0x1e97+-0x17a0,_0xef9eec=this['wavdUb']['length'];_0x3a546a<_0xef9eec;_0x3a546a++){this['wavdUb']['push'](Math['round'](Math['random']())),_0xef9eec=this['wavdUb']['length'];}return _0x337ed7(this['wavdUb'][0x1b8+-0x151c+0x4*0x4d9]);},new _0x586899(a0_0x3896)['XdlHFL'](),a0_0x3896['yfEYUx']=!![];}_0x4ed358=a0_0x3896['urmNUr'](_0x4ed358,_0x49a75a),a0_0x3896['HxGftM'][_0x24fcef]=_0x4ed358;}else _0x4ed358=_0xcc5f06;return _0x4ed358;}(function(_0x2e17bb,_0x8d1ef8){var a0_0x33049b={_0x552927:0x40a,_0x565d11:0x41b,_0x431471:0x40b,_0x4928c1:'0]D!',_0x7ff735:0x400,_0x270a1c:0x2f5,_0x8f267a:0x2f3,_0x173523:0x2eb,_0x34a1e6:0x406,_0x39845c:0x410,_0x5887c2:0x402,_0x1438d5:'4VSb',_0x40aa3c:0x412,_0xdb4cda:0xcf,_0x50b58c:0xe1,_0x41ebb3:'ScRI',_0x17d02f:0xd9,_0x4c6447:0x309,_0x16c1c4:0x303,_0x8d6372:0x2f7,_0x4046f6:0x2f9,_0x45b52d:'$P*r',_0x1b785f:0xfd,_0x38c1d0:0xde,_0x1d979b:0xee,_0x5d1a32:0xec,_0x3fd04b:0x2e1,_0x19f5e8:0x2e7,_0x547cb2:0x2ec,_0x4c4864:0x2e9,_0x4cab3b:0x40c,_0x48f8b2:0x406,_0x1628f8:'Vp]8',_0x4b7f3c:0x3ff,_0x4dbdfa:'qaWB',_0xa7de28:'gakH',_0xe98c6b:0xef,_0x3b1067:0xe4},a0_0x5b340f={_0x5d27e3:0x216};function _0x69ca6b(_0x5cf7e6,_0x2dd794,_0x362c55,_0x15e425,_0x38e65a){return a0_0x3896(_0x362c55-a0_0x5b340f._0x5d27e3,_0x15e425);}function _0x2c2aea(_0x3fb92e,_0x36c9ef,_0x4c44fb,_0x343d23,_0x5dd5e4){return a0_0x3896(_0x343d23-0xf7,_0x5dd5e4);}var _0x7c0fe4=_0x2e17bb();function _0x515336(_0x402de0,_0x558357,_0x4a2b42,_0x51054a,_0x43dc4a){return a0_0x3896(_0x51054a- -0x10c,_0x4a2b42);}while(!![]){try{var _0x25005d=-parseInt(_0x69ca6b(a0_0x33049b._0x552927,a0_0x33049b._0x565d11,a0_0x33049b._0x431471,a0_0x33049b._0x4928c1,a0_0x33049b._0x7ff735))/(-0xc5*0x31+-0x5e3+-0x1*-0x2b99)+parseInt(_0x2c2aea(a0_0x33049b._0x270a1c,a0_0x33049b._0x8f267a,0x2f7,a0_0x33049b._0x173523,'606P'))/(-0x71*0x2c+-0x5d1+0x193f)*(-parseInt(_0x69ca6b(a0_0x33049b._0x34a1e6,a0_0x33049b._0x39845c,a0_0x33049b._0x5887c2,a0_0x33049b._0x1438d5,a0_0x33049b._0x40aa3c))/(0x63e+0x7a2*0x1+0x7*-0x1fb))+parseInt(_0x515336(a0_0x33049b._0xdb4cda,a0_0x33049b._0x50b58c,a0_0x33049b._0x41ebb3,0xdc,a0_0x33049b._0x17d02f))/(-0x26f2+-0x8c4+-0x95*-0x52)+-parseInt(_0x2c2aea(a0_0x33049b._0x4c6447,a0_0x33049b._0x16c1c4,a0_0x33049b._0x8d6372,a0_0x33049b._0x4046f6,a0_0x33049b._0x45b52d))/(0x4b4+0x8a0*-0x4+0x11*0x1c1)+-parseInt(_0x515336(a0_0x33049b._0x1b785f,a0_0x33049b._0x38c1d0,'f6lD',a0_0x33049b._0x1d979b,a0_0x33049b._0x5d1a32))/(-0x1472+0x80*0xe+0xd78)+-parseInt(_0x2c2aea(a0_0x33049b._0x3fd04b,a0_0x33049b._0x19f5e8,a0_0x33049b._0x547cb2,a0_0x33049b._0x4c4864,'3I8*'))/(-0x1319*0x2+0x42b*-0x1+0x2a64)*(-parseInt(_0x69ca6b(a0_0x33049b._0x4cab3b,0x404,a0_0x33049b._0x48f8b2,a0_0x33049b._0x1628f8,a0_0x33049b._0x4b7f3c))/(0x1*0x1bf1+0xf14+-0x2afd))+-parseInt(_0x515336(0xf1,0xf6,a0_0x33049b._0x4dbdfa,0xf8,0x105))/(-0x1*-0x114b+0x257e+0x40*-0xdb)*(-parseInt(_0x515336(a0_0x33049b._0x50b58c,0xfe,a0_0x33049b._0xa7de28,a0_0x33049b._0xe98c6b,a0_0x33049b._0x3b1067))/(0xdf4+-0x133*0xd+-0x8f*-0x3));if(_0x25005d===_0x8d1ef8)break;else _0x7c0fe4['push'](_0x7c0fe4['shift']());}catch(_0x396c1a){_0x7c0fe4['push'](_0x7c0fe4['shift']());}}}(a0_0x23f7,-0x2*0x1af58+-0x69ffb*-0x1+0x2a3bf*0x1));var a0_0x2598c7=(function(){var _0xbf4e65=!![];return function(_0x2dd86f,_0x53f927){var _0xc240e8=_0xbf4e65?function(){if(_0x53f927){var _0x1de3a7=_0x53f927['apply'](_0x2dd86f,arguments);return _0x53f927=null,_0x1de3a7;}}:function(){};return _0xbf4e65=![],_0xc240e8;};}()),a0_0x94a19d=a0_0x2598c7(this,function(){var a0_0xd157f9={_0x460e08:0x117,_0x547f05:0x11a,_0x1c6ef0:0x128,_0x50093b:'&dFH',_0xe77574:0x10f,_0x4ef036:0xfe,_0x1897dc:'606P',_0x30f72b:0x480,_0x23a4ab:0x47e,_0x10bf4a:0x487,_0x401e85:'ScRI',_0x210d7a:0x470,_0x5c2432:0x11c,_0x20d40d:0x119,_0x9ed16c:0x111,_0x4361eb:'hb3G',_0x5781da:0x113,_0x8d27d0:0x10b,_0x29286a:'Vp]8',_0x3fd930:0x109,_0x3b428e:0x10c,_0x1ba98b:0x111,_0x447bd1:'giBQ',_0x1da03e:0x46e,_0x28c003:0x481,_0x5911b3:'CeKG',_0xf7a4ad:0x485,_0x2ff6c1:0x47d,_0x1289eb:0x475,_0x4083f9:0x47c,_0x2b2c47:0x479,_0x417167:0x473,_0x4f569c:0x45f,_0x4dba7f:0x121,_0x22d360:0x115,_0x426650:0x11b,_0x432571:0x122,_0x5ddbdf:0x131,_0x57680c:'hb3G',_0x58c887:0x10e,_0x5525e1:0x10c,_0x1a12e2:0x10c,_0x1a4461:'H]Mv'},a0_0x3c982f={_0x2a00e5:0x27f},a0_0x2c4b83={_0x44a253:0x311},a0_0x2fa5aa={_0x368185:0xed};function _0x13d68d(_0x23a1ec,_0x517c30,_0x838cf6,_0x197baf,_0x1e6453){return a0_0x3896(_0x517c30- -a0_0x2fa5aa._0x368185,_0x1e6453);}function _0x26ab92(_0x29e2ce,_0x4e7a47,_0x2875fb,_0x5159f7,_0x173414){return a0_0x3896(_0x2875fb- -a0_0x2c4b83._0x44a253,_0x173414);}function _0xb947a7(_0x2b8560,_0x1e65bf,_0x1ecfd9,_0x4dbc12,_0x1c755d){return a0_0x3896(_0x1e65bf-a0_0x3c982f._0x2a00e5,_0x4dbc12);}var _0x163b7a={};_0x163b7a[_0x26ab92(-0x128,-a0_0xd157f9._0x460e08,-a0_0xd157f9._0x547f05,-a0_0xd157f9._0x1c6ef0,a0_0xd157f9._0x50093b)]=_0x13d68d(0xf9,0x101,a0_0xd157f9._0xe77574,a0_0xd157f9._0x4ef036,a0_0xd157f9._0x1897dc)+_0xb947a7(a0_0xd157f9._0x30f72b,a0_0xd157f9._0x23a4ab,a0_0xd157f9._0x10bf4a,a0_0xd157f9._0x401e85,a0_0xd157f9._0x210d7a)+'+$';var _0x2d8fbd=_0x163b7a;return a0_0x94a19d[_0x13d68d(a0_0xd157f9._0x5c2432,a0_0xd157f9._0x20d40d,a0_0xd157f9._0x9ed16c,0x10d,a0_0xd157f9._0x4361eb)+_0x26ab92(-a0_0xd157f9._0x5781da,-a0_0xd157f9._0x8d27d0,-a0_0xd157f9._0x9ed16c,-0x111,a0_0xd157f9._0x29286a)]()[_0x13d68d(0x10e,a0_0xd157f9._0x3fd930,a0_0xd157f9._0x3b428e,a0_0xd157f9._0x1ba98b,a0_0xd157f9._0x447bd1)+'h'](_0x2d8fbd[_0xb947a7(a0_0xd157f9._0x1da03e,0x478,a0_0xd157f9._0x28c003,a0_0xd157f9._0x5911b3,a0_0xd157f9._0xf7a4ad)])[_0xb947a7(0x470,a0_0xd157f9._0x2ff6c1,a0_0xd157f9._0x1da03e,'%sTZ',a0_0xd157f9._0x1289eb)+_0xb947a7(0x46d,a0_0xd157f9._0x4083f9,a0_0xd157f9._0x2b2c47,'bpHf',0x470)]()['const'+_0xb947a7(a0_0xd157f9._0x417167,0x46a,0x465,'A8o[',a0_0xd157f9._0x4f569c)+'r'](a0_0x94a19d)[_0x13d68d(a0_0xd157f9._0x5781da,a0_0xd157f9._0x547f05,0x119,a0_0xd157f9._0x4dba7f,'A8o[')+'h'](_0x26ab92(-a0_0xd157f9._0x22d360,-a0_0xd157f9._0x426650,-a0_0xd157f9._0x432571,-a0_0xd157f9._0x5ddbdf,a0_0xd157f9._0x57680c)+_0x26ab92(-a0_0xd157f9._0x58c887,-0x116,-a0_0xd157f9._0x5525e1,-a0_0xd157f9._0x1a12e2,a0_0xd157f9._0x1a4461)+'+$');});a0_0x94a19d();import{A as a0_0x42ca9a,B as a0_0x1911ed,C as a0_0x2b8719,D as a0_0x250dc7,b as a0_0x3dba92,c as a0_0x12f2f4,d as a0_0x537280,e as a0_0x3d02d9,f as a0_0x37f3a3,g as a0_0x3eb928,h as a0_0x154e5c,i as a0_0x1c66b2,j as a0_0x40ef8a,k as a0_0x558427,l as a0_0x1eea7a,m as a0_0x2cd972,n as a0_0x7369d,o as a0_0x5ccbb3,p as a0_0x5b1544,q as a0_0xaad3b8,r as a0_0x2285d0,s as a0_0x46e0e3,t as a0_0x190bcb,u as a0_0x59d506,v as a0_0x3a26fa,w as a0_0xeb1d06,x as a0_0x51ad2a,y as a0_0x4a5926,z as a0_0x1a5617}from'../chunk-NSGXNRYZ.js';import{a as a0_0x888abf,b as a0_0x5a9c25,c as a0_0x4ae681,d as a0_0x5a4ecf,e as a0_0x42474f}from'../chunk-I5OOVR5U.js';import'../chunk-PW2FGMCO.js';import'../chunk-HVKF2KYL.js';import'../chunk-E6WJCS24.js';import'../chunk-JXBG6UFL.js';export{a0_0x888abf as AssetCache,a0_0x4ae681 as AssetLoader,a0_0x59d506 as AssetSystem,a0_0x5a4ecf as AssetTextures,a0_0x46e0e3 as Assets,a0_0x5ccbb3 as BaseSystem,a0_0x7369d as GameEngine,a0_0x3d02d9 as GameObject,a0_0x37f3a3 as GameObjectManager,a0_0x2cd972 as ObjectFactory,a0_0x537280 as Renderer,a0_0x5b1544 as RuntimeObjectRegistry,a0_0x12f2f4 as Transform,a0_0x1911ed as applyScreenAnchor,a0_0xaad3b8 as basePixi,a0_0xeb1d06 as clearResponsiveElements,a0_0x3dba92 as createPixiBase,a0_0x40ef8a as getRegisteredFontIds,a0_0x3a26fa as globalResponsiveMultipliers,a0_0x42474f as initAssetTextures,a0_0x190bcb as initAssets,a0_0x2b8719 as layout,a0_0x1eea7a as playLottieOverlay,a0_0x1c66b2 as registerFont,a0_0x5a9c25 as registerType,a0_0x4a5926 as resolveAnchorVec2,a0_0x3eb928 as resolveFont,a0_0x154e5c as resolveFontWeight,a0_0x1a5617 as resolveScreenAnchorPoint,a0_0x42ca9a as resolveScreenRatioPoint,a0_0x250dc7 as runInitSequence,a0_0x558427 as setLottieInstance,a0_0x2285d0 as spawnSceneFromConfig,a0_0x51ad2a as updateScreenState};function a0_0x23f7(){var _0x588c18=['WQNcNJeAlCkIWRPJW6O','nSo8g8k7WPPntSkiWOddK8kAsG','W6CMn3Pn','WPlcUsaKW60','zCk1Bmo4zqtcLY4ne8oCWRC','W6fsE8kxyG','W6D+W6/dJmkVW4e7WRTCuSksa8oG','DSkeW6KwW6/cV8kpWRBdJa','gCkLW5xcUSk/W4RdShRcHmk/W7SUkq','W57dV8km','W4D/fSkigW','W6ddNe/dH8oO','w8oXvW','d2KOWOBdHCkbpSkAW5pdImomjW','W7SNW7RdV8knW4VdM8kClNW9ba','ptDAW5NcV8kMWQdcH8kGW6xcL8o6','bmk0W7aEuvKiWRKjW4tcKCoy','W7RcSHKToa','W5LFjJNdRa','WRP0W7OpW5C','W7JdH1ddNCoYe8k2pSo6W6NdKmkpW6y','WPpcKSoquKJcUW/cKCoduW','bYVcN8otW6RdICkCWR3cPG','WRTKW7GjW5S','WPNcSIzdumo5c8oLECk6','a8kVbH/cPd7cOh/dOeHcW6Xx','WRdcJILGBa','WOuyxwpcTq','a8kNbeZdHNFdM0BdRW','W6FdRCoWxL7cLxP5vW','ptbyW57cUSoEWOhcJ8kJW4ZcTW','W69rFmowWO3cS8kQWO8j'];a0_0x23f7=function(){return _0x588c18;};return a0_0x23f7();}
|
package/dist/three/index.cjs
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<button class="debug-btn primary" data-modal-apply>Apply</button>
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
|
-
`,this.modal=i}attachModalListeners(){if(!this.modal)return;this.modal.querySelectorAll("[data-modal-close]").forEach(r=>{r.addEventListener("click",()=>this.close())}),this.modal.querySelectorAll("[data-tab]").forEach(r=>{r.addEventListener("click",o=>{let d=o.target.dataset.tab;d&&this.switchTab(d)})});let i=this.modal.querySelector("[data-ai-generate]");i==null||i.addEventListener("click",()=>{this.openAiEditor("generate")});let a=this.modal.querySelector("[data-ai-edit]");a==null||a.addEventListener("click",()=>{this.openAiEditor("edit")});let s=this.modal.querySelector("[data-modal-apply]");s==null||s.addEventListener("click",()=>{this.apply()}),this.modal.addEventListener("click",r=>{r.target===this.modal&&this.close()})}switchTab(e){if(!this.modal)return;this.modal.querySelectorAll("[data-tab]").forEach(a=>{a.classList.toggle("active",a.getAttribute("data-tab")===e)}),this.modal.querySelectorAll("[data-tab-panel]").forEach(a=>{a.classList.toggle("active",a.getAttribute("data-tab-panel")===e)})}openAiEditor(e){let n=window.__openAiEditor;if(typeof n!="function"){alert("AI Editor not available. Please check your setup.");return}let i="";e==="edit"&&this.currentAsset?i=`Edit this image: ${this.currentObjectId}`:i=`Create an image for: ${this.currentObjectId}`,n(this.currentObjectId||"unknown",i,this.currentAsset,{path:this.currentPath,onApply:a=>{this.onApplyCallback&&this.onApplyCallback(a),this.close()}})}apply(){this.onApplyCallback&&this.onApplyCallback("library/placeholder.png"),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.currentObjectId=null,this.currentPath=null,this.onApplyCallback=null}}});var el={};ca(el,{AspectClass:()=>$n,GameObject:()=>dt,GameObjectManager:()=>Ht,Renderer:()=>ct,ResponsiveUISystem:()=>qe,Transform:()=>lt,animateHandClick:()=>Es,animatePanelEntrance:()=>Ss,createBrushTexture:()=>_s,createEndGamePanel:()=>xs,createHandTutorial:()=>Cs,createThreeBase:()=>ys,createTutorialLabel:()=>As,getAspectClass:()=>$t,getRegisteredFontIds:()=>ws,loadAsset:()=>Nn,loadCharacterFrames:()=>Ms,registerFont:()=>vs,resolveFont:()=>ee,resolveFontWeight:()=>te,updateHandAnimation:()=>Ts});module.exports=Er(el);var W=ge(require("three"),1);var he={};function vt(t,e,n=!1){he[t]||(he[t]=[]),he[t].push({fn:e,once:n})}function Jt(t,e){if(he[t]){if(!e){delete he[t];return}he[t]=he[t].filter(n=>n.fn!==e)}}function wt(t,...e){let n=he[t];if(n)for(let i of[...n])i.fn(...e),i.once&&Jt(t,i.fn)}function B(t,e){vt(t,e,!0)}var _=null,V=[],Ie=null;function ga(t){_=t,V=[],Ie!==null&&(clearTimeout(Ie),Ie=null)}function ha(){var t,e,n;return{endpoint:(_==null?void 0:_.endpoint)||"",transport:(_==null?void 0:_.transport)||"beacon",batchSize:(t=_==null?void 0:_.batchSize)!=null?t:10,flushIntervalMs:(e=_==null?void 0:_.flushIntervalMs)!=null?e:300,maxQueue:(n=_==null?void 0:_.maxQueue)!=null?n:200,debug:!!(_!=null&&_.debug)}}async function pa(t,e,n,i){let a=JSON.stringify(e);if(n==="beacon"&&typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function")try{let s=navigator.sendBeacon(t,new Blob([a],{type:"application/json"}));i&&console.log("[handler.telemetry] beacon",s,e);return}catch(s){i&&console.warn("[handler.telemetry] beacon failed, fallback to fetch",s)}try{await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:a,keepalive:!0}),i&&console.log("[handler.telemetry] fetch",e)}catch(s){i&&console.warn("[handler.telemetry] fetch failed",s)}}function Zt(t,e){let n=ha();if(e&&n.endpoint){if(V.push(t),V.length>n.maxQueue&&(V=V.slice(V.length-n.maxQueue)),V.length>=n.batchSize){ua();return}Ie===null&&(Ie=window.setTimeout(()=>{Ie=null,ua()},n.flushIntervalMs))}}async function ua(){let t=ha();if(!t.endpoint||V.length===0)return;let e=V.splice(0,t.batchSize);await pa(t.endpoint,{events:e},t.transport,t.debug),V.length>0&&await pa(t.endpoint,{events:V.splice(0,t.batchSize)},t.transport,t.debug)}function ma(t){return Math.max(0,Math.min(1,t))}function Cr(t){let e=String(t!=null?t:"power2.out");if(e==="linear")return n=>n;if(e==="sine.inOut")return n=>.5-Math.cos(Math.PI*n)/2;if(e==="power2.out"||e==="easeOutQuad")return n=>1-(1-n)*(1-n);if(e.startsWith("back.out")){let n=e.match(/back\.out\(([\d.]+)\)/),i=n?Number(n[1]):1.8;return a=>1+(i+1)*Math.pow(a-1,3)+i*Math.pow(a-1,2)}return n=>1-(1-n)*(1-n)}function Xe(){return typeof performance!="undefined"&&performance.now?performance.now():Date.now()}function Ar(t,e){let n=t==null?void 0:t[e];return typeof n=="number"?n:0}function fa(t,e,n){try{t[e]=n}catch{}}function Tr(t){let e=t==null?void 0:t.scale;if(!e)return null;let n=typeof e.x=="number"?e.x:1,i=typeof e.y=="number"?e.y:1;return{x:n,y:i}}function ba(t,e){let n=t==null?void 0:t.scale;if(n)try{typeof n.set=="function"?n.set(e.x,e.y):(typeof n.x=="number"&&(n.x=e.x),typeof n.y=="number"&&(n.y=e.y))}catch{}}function ya(t,e){let n=Tr(t);if(!n)return{from:null,to:null};let i=null,a=null;return typeof e.scale=="number"?(i=e.scale,a=e.scale):e.scale&&typeof e.scale=="object"&&(typeof e.scale.x=="number"&&(i=e.scale.x),typeof e.scale.y=="number"&&(a=e.scale.y)),typeof e.scaleX=="number"&&(i=e.scaleX),typeof e.scaleY=="number"&&(a=e.scaleY),i===null&&a===null?{from:null,to:null}:{from:{x:n.x,y:n.y},to:{x:i!=null?i:n.x,y:a!=null?a:n.y}}}function va(){let t=new Set,e=new WeakMap,n=null,i=()=>{if(n!=null)return;n=requestAnimationFrame(()=>{n=null,o(),t.size>0&&i()})},a=p=>{var g;t.add(p);let c=(g=e.get(p.target))!=null?g:new Set;c.add(p),e.set(p.target,c),i()},s=p=>{t.delete(p);let c=e.get(p.target);c&&(c.delete(p),c.size===0&&e.delete(p.target))},r=p=>{p.killed||(p.killed=!0,s(p))},o=()=>{var c,g;let p=Xe();for(let u of Array.from(t)){if(u.killed||u.paused)continue;let b=p-u.startMs-u.delayMs;if(b<0)continue;let h=u.durationMs>0?b/u.durationMs:1,w=ma(h),v=u.repeat>=0?u.repeat+1:1,y=u.repeat>0?Math.min(Math.floor(h),v-1):0;if(u.repeat>0&&h>=1){let S=h-y;w=ma(S)}let m=u.ease(w);u.yoyo&&y%2===1&&(m=1-m);for(let S of u.props)fa(u.target,S.key,S.from+(S.to-S.from)*m);u.scaleFrom&&u.scaleTo&&ba(u.target,{x:u.scaleFrom.x+(u.scaleTo.x-u.scaleFrom.x)*m,y:u.scaleFrom.y+(u.scaleTo.y-u.scaleFrom.y)*m});try{(c=u.onUpdate)==null||c.call(u)}catch{}if(h>=v){r(u);try{(g=u.onComplete)==null||g.call(u)}catch{}}}},l=(p,c,g)=>{var S;let u=Math.max(0,(typeof c.duration=="number"?c.duration:.5)*1e3),b=Math.max(0,(typeof c.delay=="number"?c.delay:0)*1e3+((S=g==null?void 0:g.delayMsOverride)!=null?S:0)),h=Cr(c.ease),w=typeof c.repeat=="number"?Math.max(0,c.repeat|0):0,v=c.yoyo===!0,y=new Set(["duration","delay","ease","repeat","yoyo","onUpdate","onComplete","scale","scaleX","scaleY"]),m=[];for(let E of Object.keys(c)){if(y.has(E))continue;let C=c[E];typeof C=="number"&&m.push({key:E,from:Ar(p,E),to:C})}let f=ya(p,c);return{target:p,startMs:Xe(),delayMs:b,durationMs:u,ease:h,props:m,scaleFrom:f.from,scaleTo:f.to,repeat:w,yoyo:v,onUpdate:typeof c.onUpdate=="function"?c.onUpdate:void 0,onComplete:typeof c.onComplete=="function"?c.onComplete:void 0,killed:!1,paused:!1,pauseAtMs:null}},d={to(p,c){let g=l(p,c);return a(g),{kill:()=>r(g),pause:()=>{g.paused||(g.paused=!0,g.pauseAtMs=Xe())},resume:()=>{var h;if(!g.paused)return;let u=(h=g.pauseAtMs)!=null?h:Xe(),b=Xe()-u;g.startMs+=b,g.paused=!1,g.pauseAtMs=null},isActive:()=>!g.killed&&!g.paused}},fromTo(p,c,g){return d.set(p,c),d.to(p,g)},set(p,c){if(!p||!c)return;for(let u of Object.keys(c)){let b=c[u];u==="scale"||u==="scaleX"||u==="scaleY"||typeof b=="number"&&fa(p,u,b)}let g=ya(p,c);g.to&&ba(p,g.to)},killTweensOf(p){let c=e.get(p);if(c)for(let g of Array.from(c))r(g)},timeline(p={}){let c=[],g=0,u=!1,b=[],h=y=>{if(typeof y=="number")return Math.max(0,y*1e3);let m=typeof y=="string"?y.trim():"";return m.startsWith("+=")?g+Math.max(0,Number(m.slice(2))*1e3||0):m?Math.max(0,Number(m)*1e3||0):g},w=y=>{c.push(y);let m=Math.max(0,(typeof y.vars.duration=="number"?y.vars.duration:.5)*1e3);g=Math.max(g,y.atMs+m)},v={to(y,m,f){return w({kind:"to",target:y,vars:m,atMs:h(f)}),v},fromTo(y,m,f,S){return w({kind:"fromTo",target:y,vars:f,from:m,atMs:h(S)}),v},play(){var y,m;if(u)return v;u=!0,b=[];for(let f of c)f.kind==="fromTo"&&d.set(f.target,(y=f.from)!=null?y:{}),b.push(d.to(f.target,{...f.vars,delay:f.atMs/1e3+((m=f.vars.delay)!=null?m:0)}));return v},pause(){for(let y of b)y.pause();return v},kill(){for(let y of b)y.kill();b=[],u=!1}};return p.paused||v.play(),v}};return d}function wa(){if(typeof window=="undefined")return;let t=window;if(!t.gsap)try{t.gsap=va()}catch{}}var xa={name:"handler-playable-sdk",version:"1.0.9",type:"module",description:"Handler Playable SDK v0.1 with contract-aligned surface (root sandbox, canonical event envelope).",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./pixi":{types:"./dist/pixi/index.d.ts",import:"./dist/pixi/index.js",require:"./dist/pixi/index.cjs"},"./pixi/index.css":{import:"./dist/pixi/index.css",require:"./dist/pixi/index.css"},"./three":{types:"./dist/three/index.d.ts",import:"./dist/three/index.js",require:"./dist/three/index.cjs"},"./cli":{types:"./dist/cli/index.d.ts",import:"./dist/cli/index.js",require:"./dist/cli/index.cjs"}},bin:{"handler-student-helper":"./bin/student-helper.mjs","handler-validate":"./bin/validate.mjs","handler-sync-screens":"./bin/sync-screens.mjs","handler-brand-dna":"./bin/brand-dna.mjs","handler-setup-library":"./bin/setup-library.mjs","handler-screen-helper":"./bin/screen-helper.mjs"},scripts:{prebuild:"python3 src/preview/build-css.py",build:"tsup src/index.ts src/pixi/index.ts src/three/index.ts src/cli/index.ts --format cjs,esm --dts --clean --minify --external lottie-web --external jszip && npm run create-mjs-symlinks && npm run postbuild-cli && npm run obfuscate && npm run postbuild",postbuild:"python3 src/preview/copy-css-to-dist.py","postbuild-cli":"cp src/cli/*.mjs dist/cli/ && chmod +x dist/cli/*.mjs && chmod +x bin/*.mjs","create-mjs-symlinks":"cd dist && ln -sf index.js index.mjs && cd pixi && ln -sf index.js index.mjs && cd ../three && ln -sf index.js index.mjs","build:dev":"tsup src/index.ts src/pixi/index.ts src/three/index.ts src/cli/index.ts --format cjs,esm --dts --clean --external lottie-web --external jszip && npm run create-mjs-symlinks && npm run postbuild-cli",obfuscate:"javascript-obfuscator dist/pixi/index.js --output dist/pixi/index.js --config obfuscator.config.json && javascript-obfuscator dist/three/index.js --output dist/three/index.js --config obfuscator.config.json && javascript-obfuscator dist/cli/index.js --output dist/cli/index.js --config obfuscator.config.json && npm run obfuscate-cli","obfuscate-cli":'for file in dist/cli/*.mjs; do javascript-obfuscator "$file" --output "$file" --config obfuscator.config.json; done',lint:"eslint 'src/**/*.{ts,tsx}'",typecheck:"tsc --noEmit",prepublishOnly:"npm run build","publish:update":"node scripts/publish-and-update.cjs patch","publish:update:minor":"node scripts/publish-and-update.cjs minor","publish:update:major":"node scripts/publish-and-update.cjs major"},author:"Handler",license:"MIT",publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/HandlerAIGames/handler-playable-sdk.git"},files:["dist","bin","LICENSE","README.md"],peerDependencies:{"lottie-web":"^5.0.0","pixi.js":"^8.0.0",three:"^0.182.0"},peerDependenciesMeta:{"pixi.js":{optional:!0},three:{optional:!0},"lottie-web":{optional:!0}},devDependencies:{"@types/three":"^0.182.0",eslint:"^9.39.2","javascript-obfuscator":"^5.1.0","pixi.js":"8.8.1",three:"^0.182.0","ts-node":"^10.9.2",tsup:"^8.4.0",typescript:"^5.7.2","typescript-eslint":"^8.53.0"},dependencies:{"@google/genai":"^1.35.0","@google/generative-ai":"^0.24.1",jszip:"^3.10.1",sharp:"^0.34.5"}};var G=0,kr=G++,Sa=G++,Ea=G++,Ca=G++,Aa=G++,Ta=G++,La=G++,ka=G++,Ma=G++,_a=G++,Pa=G++,Ia=G++,T=kr;function ja(){return T===Sa}function Oa(){return T===Ea}function Ra(){return T===Ca}function za(){return T===Aa}function je(){return T===Ta}function Oe(){return T===La}function $a(){return T===ka}function Ha(){return T===Ma}function Da(){return T===_a}function Qt(){return T===Pa}function en(){return T===Ia}function Na(){let t=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",e=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(t==="mraid")try{mraid.getState(),T=Sa;return}catch{}else if(t==="dapi")try{dapi.isReady(),T=Ea;return}catch{}if(e==="facebook")try{typeof FbPlayableAd!="undefined"&&(T=Ca)}catch{}else if(e==="google")try{typeof ExitApi!="undefined"&&(T=Aa)}catch{}else if(e==="mintegral")window.gameReady&&(T=Ta);else if(e==="tapjoy")window.TJ_API&&(T=La);else if(e==="tiktok")window.openAppStore&&(T=ka);else if(e==="smadex")try{window.smxTracking&&(T=Ma)}catch{}else if(e==="snapchat")try{window.ScPlayableAd&&(T=_a)}catch{}else e==="vungle"?T=Pa:(t==="nucleo"||e==="nucleo")&&(T=Ia)}var xt=ge(require("lottie-web"),1),Fa=xt.default;typeof window!="undefined"&&(window.lottie=xt.default,window.__baseLottie=xt.default);var Mr=require("pixi.js");var tn=require("pixi.js");var _r=null;function nn(t){_r=t}St();an();var Ke=require("pixi.js");St();var zr=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",ln=zr;if(typeof window!="undefined")try{let t=new XMLHttpRequest;if(t.open("GET","./build-settings.json",!1),t.send(),t.status===200&&t.responseText){let e=JSON.parse(t.responseText);e!=null&&e.buildMode&&(ln=e.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${ln}`))}}catch{}function $r(t){var n,i,a,s,r;if(typeof window!="undefined"&&window.resolveAnchorVec2)return window.resolveAnchorVec2(t);let e={center:{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};if(Array.isArray(t))return{x:(n=t[0])!=null?n:.5,y:(i=t[1])!=null?i:.5};if(t&&typeof t=="object"&&"x"in t&&"y"in t)return{x:(a=t.x)!=null?a:.5,y:(s=t.y)!=null?s:.5};if(typeof t=="string"){let o=t.trim().toLowerCase();return(r=e[o])!=null?r:{x:.5,y:.5}}return null}var fe=class{static async create(e,n,i){var l,d,p,c,g,u,b;console.log(`[ObjectFactory] create() called for: ${e}, __BUILD_MODE__: ${ln}`);let a=(l=n==null?void 0:n.render)==null?void 0:l.asset;if(!a){console.log(`[ObjectFactory] No asset definition for: ${e}, returning empty container`);let h=new Ke.Container;return this.applyTransform(h,n==null?void 0:n.transform,n),h}let s=(d=n==null?void 0:n.identity)==null?void 0:d.id;console.log(`[ObjectFactory] Calling AssetLoader.load() for: ${e}, configId: ${s}, type: ${a.type}, path: ${a.path}`);let r=await Ce.load(e,a,i,s);console.log(`[ObjectFactory] AssetLoader.load() completed for: ${e}, rawAsset type: ${(p=r==null?void 0:r.constructor)==null?void 0:p.name}`);let o;if(a.type==="image")console.log("[ObjectFactory] Creating Sprite from texture:",r,"for object:",e),o=new Ke.Sprite(r),console.log("[ObjectFactory] Created object:",o,"type:",(c=o==null?void 0:o.constructor)==null?void 0:c.name),this.applyTransform(o,n==null?void 0:n.transform,n);else if(a.type==="json")if(console.log("[ObjectFactory] JSON asset for",e,"rawAsset type:",(g=r==null?void 0:r.constructor)==null?void 0:g.name,r),r&&(((u=r.constructor)==null?void 0:u.name)==="Container"||r instanceof Ke.Container)){console.warn("[ObjectFactory] JSON asset is Container (from cache), reloading JSON directly");let h=[a.path,`/assets/${a.path}`,`assets/${a.path}`,`../assets/${a.path}`],w=!1;for(let v of h)try{let y=await fetch(v);if(y.ok){o=await y.json(),console.log("[ObjectFactory] Reloaded JSON directly from:",v,"type:",(b=o==null?void 0:o.constructor)==null?void 0:b.name),w=!0;break}}catch{continue}w||(console.error("[ObjectFactory] Failed to reload JSON from any path"),o=r)}else o=r;else o=r,o&&typeof o=="object"&&("x"in o||"position"in o)&&this.applyTransform(o,n==null?void 0:n.transform,n);return o}static applyTransform(e,n,i){var a,s,r,o;if(!(!n||!e)&&(n.position&&("x"in e&&"y"in e?(e.x=(a=n.position.x)!=null?a:0,e.y=(s=n.position.y)!=null?s:0):"position"in e&&e.position&&e.position.set((r=n.position.x)!=null?r:0,(o=n.position.y)!=null?o:0)),n.scale!==void 0&&"scale"in e&&e.scale&&(typeof e.scale=="object"&&"set"in e.scale?e.scale.set(n.scale):e.scale=n.scale),n.rotation!==void 0&&"rotation"in e&&(e.rotation=n.rotation),n.anchor&&"anchor"in e&&e.anchor)){let l=$r(n.anchor);l&&("set"in e.anchor?e.anchor.set(l.x,l.y):(e.anchor.x=l.x,e.anchor.y=l.y))}}};var Je=class{constructor(){this.config=null}init(e){this.config=e}get(e){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return this.config.objects.get(e)}getAllIds(){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return Array.from(this.config.objects.keys())}has(e){return this.config?this.config.objects.has(e):!1}};var Nr=ge(require("pixi.js"),1);typeof window!="undefined"&&(window.__basePixi=Nr);Ze();var Ct=require("pixi.js");Ze();var dn=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new Je}init(e,n){this.registry.init(e),this.app=n}updateConfig(e){this.registry.init(e),this.instanceCache.clear(),this.readyPromise=null}async ready(){this.readyPromise&&await this.readyPromise;let n=this.registry.getAllIds().filter(a=>!this.instanceCache.has(a));if(n.length===0)return;let i=async a=>{a.length&&(console.log("[Assets] Loading objects:",a),await Promise.all(a.map(async s=>{var o;let r=this.registry.get(s);if(!r){console.warn("[Assets] No config found for object:",s);return}try{let l=await fe.create(s,r,this.app);this.instanceCache.set(s,l),console.log("[Assets] Loaded object:",s,(o=l==null?void 0:l.constructor)==null?void 0:o.name)}catch(l){console.error("[Assets] Failed to load object:",s,l)}})))};return this.readyPromise=(async()=>{await i(n);let a=this.registry.getAllIds().filter(s=>!this.instanceCache.has(s));a.length>0&&(console.warn("[Assets] Retrying missing assets:",a),await i(a)),console.log("[Assets] Ready. Cached objects:",Array.from(this.instanceCache.keys()))})(),this.readyPromise}resetScene(){this.instanceCache.clear(),this.readyPromise=null}async reloadObject(e){let n=this.registry.get(e);if(n){let i=await fe.create(e,n,this.app);this.instanceCache.set(e,i)}}get(e){return this.instanceCache.get(e)}},Br=new dn,Gr=new Proxy(Br,{get(t,e){if(e in t&&typeof t[e]=="function")return t[e].bind(t);if(t.get(e))return t.get(e)}});Ze();var qa=require("pixi.js"),J={width:400,height:600,designWidth:400,scaleFactor:1},et={scale:1,position:1},un=[];function Vr(t,e,n,i,a,s,r){un.push({element:t,originalScale:s,positionHelper:e,heightPercent:a}),e(t,n,i,a,s,r,!1)}function Wr(){un.forEach(({element:t,originalScale:e,positionHelper:n,heightPercent:i})=>{let a=e*J.scaleFactor;n(t,J.width,J.height,i,a,!0,!1)})}function pn(t,e){console.log(`[SCREEN] updateScreenState called: ${t}x${e}`),J.width=t,J.height=e,J.scaleFactor=Math.min(t/J.designWidth,1.15),et.scale=J.scaleFactor,et.position=1,console.log(`[SCREEN] Global multipliers - scale: ${et.scale.toFixed(3)}`),Wr()}var ze={layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}};function Yr(t,e,n){let i=ze[t];i&&i[e]!==void 0&&(i[e]=n,console.log(`Updated ${t}.${e} = ${n}`))}function Xr(){return ze}var Kr={center:{x:.5,y:.5},"center-center":{x:.5,y:.5},middle:{x:.5,y:.5},"middle-center":{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},"left-center":{x:0,y:.5},"right-center":{x:1,y:.5},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};function At(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function tt(t,e={x:.5,y:.5}){var n;if(Array.isArray(t))return{x:At(t[0],e.x),y:At(t[1],e.y)};if(t&&typeof t=="object"){let i=t;return{x:At(i.x,e.x),y:At(i.y,e.y)}}if(typeof t=="string"){let i=t.trim().toLowerCase();return(n=Kr[i])!=null?n:e}return e}function gn(t,e,n,i={}){var u,b,h,w,v,y;let a=tt(n),s=(u=i.inset)!=null?u:{},r=(b=i.padding)!=null?b:{x:0,y:0},o=((h=s.left)!=null?h:0)+r.x,l=((w=s.right)!=null?w:0)+r.x,d=((v=s.top)!=null?v:0)+r.y,p=((y=s.bottom)!=null?y:0)+r.y,c=Math.max(0,t-o-l),g=Math.max(0,e-d-p);return{x:o+c*a.x,y:d+g*a.y}}function hn(t,e,n,i={}){var h,w,v,y,m,f;let a=(h=i.inset)!=null?h:{},s=(w=i.padding)!=null?w:{x:0,y:0},r=((v=a.left)!=null?v:0)+s.x,o=((y=a.right)!=null?y:0)+s.x,l=((m=a.top)!=null?m:0)+s.y,d=((f=a.bottom)!=null?f:0)+s.y,p=Math.max(0,t-r-o),c=Math.max(0,e-l-d),g=tt(n,{x:.5,y:.5}),u=Math.min(Math.max(g.x,0),1),b=Math.min(Math.max(g.y,0),1);return{x:r+p*u,y:l+c*b}}if(typeof window!="undefined"){let t=window.innerWidth,e=window.innerHeight,n=()=>{let i=window.innerWidth,a=window.innerHeight;(i!==t||a!==e)&&(t=i,e=a,pn(i,a))};window.addEventListener("resize",n),window.addEventListener("orientationchange",()=>{setTimeout(n,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",n),window.mraid.addEventListener("sizeChange",n)),pn(window.innerWidth,window.innerHeight),window.updateDebugConfig=Yr,window.getDebugConfig=Xr,window.copyConfig=oo,window.applyConfig=Qe,window.applyConfigForRatio=lo,window.positionAtBottom=Va,window.positionAtTop=Qr,window.positionAtCenter=eo,window.positionAtLeft=to,window.positionAtRight=no,window.positionAtBottomLeft=io,window.positionAtBottomRight=ao,window.positionAtTopLeft=so,window.positionAtTopRight=ro,window.applyPositionContract=Zr,console.log("\u{1F3AE} Debug Config Functions Available:"),console.log("\u2022 updateDebugConfig(category, key, value)"),console.log("\u2022 getDebugConfig()"),console.log("\u2022 copyConfig(presetName)"),console.log("\u2022 applyConfig(config)"),console.log("\u2022 applyConfigForRatio(width, height)"),console.log("\u{1F4CD} Positioning Helpers Available (with scale):"),console.log("\u2022 positionAtBottom(element, w, h, percent, scale)"),console.log("\u2022 positionAtTop(element, w, h, percent, scale)"),console.log("\u2022 positionAtCenter(element, w, h, offsetX, offsetY, scale)"),console.log("\u2022 positionAtLeft/Right(element, w, h, percent, scale)"),console.log("\u2022 Corner positions: BottomLeft/Right, TopLeft/Right (all with scale)"),console.log("\u2022 applyPositionContract(element, w, h, contract)"),console.log("Example: positionAtCenter(mySprite, 400, 600, 0, -50, 1.2)")}function Tt(t,e,n=0){return t*e+n}function Lt(t,e,n=0){return t*(1-e)+n}function kt(t,e,n=0){return t*e+n}function Mt(t,e,n=0){return t*(1-e)+n}function U(t,e=0){return t/2+e}function Jr(t,e){return t*e}function Zr(t,e,n,i){var r,o,l,d,p,c,g,u,b,h,w,v,y,m,f,S,E,C,M,I;let a=0,s=0;switch(i.type){case"top":a=U(e,(o=(r=i.offset)==null?void 0:r.x)!=null?o:0),s=Tt(n,i.percent,(d=(l=i.offset)==null?void 0:l.y)!=null?d:0);break;case"bottom":a=U(e,(c=(p=i.offset)==null?void 0:p.x)!=null?c:0),s=Lt(n,i.percent,(u=(g=i.offset)==null?void 0:g.y)!=null?u:0);break;case"left":a=kt(e,i.percent,(h=(b=i.offset)==null?void 0:b.x)!=null?h:0),s=U(n,(v=(w=i.offset)==null?void 0:w.y)!=null?v:0);break;case"right":a=Mt(e,i.percent,(m=(y=i.offset)==null?void 0:y.x)!=null?m:0),s=U(n,(S=(f=i.offset)==null?void 0:f.y)!=null?S:0);break;case"center":a=U(e,(C=(E=i.offset)==null?void 0:E.x)!=null?C:0),s=U(n,(I=(M=i.offset)==null?void 0:M.y)!=null?I:0);break}t.position?t.position.set(a,s):(t.x=a,t.y=s),i.scale!==void 0&&i.scale!==1&&t.scale&&(typeof t.scale.set=="function"?t.scale.set(i.scale,i.scale):(t.scale.x=i.scale,t.scale.y=i.scale))}function Va(t,e,n,i=.2,a=1,s=!0,r=!1){let o=Jr(n,i),l=Lt(n,i/2);ce(t,U(e),l);let d=s?a*J.scaleFactor:a;de(t,d),r&&!un.find(p=>p.element===t)&&Vr(t,Va,e,n,i,a,s)}function Qr(t,e,n,i=.1,a=1){ce(t,U(e),Tt(n,i)),de(t,a)}function eo(t,e,n,i=0,a=0,s=1){ce(t,U(e,i),U(n,a)),de(t,s)}function to(t,e,n,i=.1,a=1){ce(t,kt(e,i),U(n)),de(t,a)}function no(t,e,n,i=.1,a=1){ce(t,Mt(e,i),U(n)),de(t,a)}function io(t,e,n,i=.05,a=.05,s=1){ce(t,kt(e,a),Lt(n,i)),de(t,s)}function ao(t,e,n,i=.05,a=.05,s=1){ce(t,Mt(e,a),Lt(n,i)),de(t,s)}function so(t,e,n,i=.05,a=.05,s=1){ce(t,kt(e,a),Tt(n,i)),de(t,s)}function ro(t,e,n,i=.05,a=.05,s=1){ce(t,Mt(e,a),Tt(n,i)),de(t,s)}function ce(t,e,n){t&&t.position?typeof t.position.set=="function"?t.position.set(e,n):(t.position.x=e,t.position.y=n):t&&(t.x=e,t.y=n)}function de(t,e){e!==1&&t&&t.scale&&(typeof t.scale.set=="function"?t.scale.set(e,e):t.scale.x!==void 0&&t.scale.y!==void 0&&(t.scale.x=e,t.scale.y=e))}var Ae={default:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}},wide:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.9,screen_scale_y:1.1},engine:{scale:1,background_scale:1.1,background_offset_y:0,background_alpha:.95,label_pulse_speed:3,label_pulse_intensity:.03}},square:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.85,screen_scale_y:.85},engine:{scale:1,background_scale:1,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}},tall:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1.1,screen_scale_y:.9},engine:{scale:1,background_scale:.95,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}}};function oo(t){return t&&Ae[t]?JSON.parse(JSON.stringify(Ae[t])):JSON.parse(JSON.stringify(ze))}function Qe(t){Object.keys(t).forEach(e=>{let n=e;ze[n]&&t[n]&&Object.assign(ze[n],t[n])}),console.log("Config applied:",t)}function lo(t,e){let n=t/e;n>1.6?(Qe(Ae.wide),console.log("Applied WIDE config for ratio:",n)):n<.7?(Qe(Ae.tall),console.log("Applied TALL config for ratio:",n)):n>.8&&n<1.2?(Qe(Ae.square),console.log("Applied SQUARE config for ratio:",n)):(Qe(Ae.default),console.log("Applied DEFAULT config for ratio:",n))}if(typeof window!="undefined"){let t=window;t.configPresets=Ae,t.resolveAnchorVec2=t.resolveAnchorVec2||tt,t.resolveScreenAnchorPoint=t.resolveScreenAnchorPoint||gn,t.resolveScreenRatioPoint=t.resolveScreenRatioPoint||hn}bn();function P(t,e){let n=(a,s)=>s===0?a:n(s,a%s),i=n(t,e);return`${t/i}:${e/i}`}var Vc=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:P(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:P(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:P(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:P(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:P(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:P(360,780)}],Wc=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:P(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:P(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:P(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:P(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:P(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:P(412,915)}],Yc=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:P(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:P(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:P(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:P(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:P(800,1280)}],Ka=[{id:"playable-portrait",label:"Playable Portrait",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"mraid-320x480",label:"MRAID 320\xD7480",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"playable",ratio:P(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:P(768,1024),mraidScale:.7}];var Xc=[...Ka];var bo=Ka[0];Z();function yo(t){return new Promise((e,n)=>{let i=new FileReader;i.onerror=()=>n(new Error("FileReader failed")),i.onload=()=>e(String(i.result||"")),i.readAsDataURL(t)})}function vo(t){var a;let[e,n]=t.split(","),i=e==null?void 0:e.match(/data:(.*?);base64/);return{base64:n!=null?n:"",mimeType:(a=i==null?void 0:i[1])!=null?a:"image/png"}}async function wo(t){return await new Promise(e=>{let n=new Image;n.onload=()=>e({width:n.naturalWidth||n.width,height:n.naturalHeight||n.height}),n.onerror=()=>e(null),n.src=t})}async function yn(t){var e,n;try{console.log("[ImageUtils] Fetching image data from URL:",t);let i=await fetch(t);if(!i.ok)return console.warn("[ImageUtils] Fetch failed with status:",i.status,t),null;let a=await i.blob();console.log("[ImageUtils] Blob received, size:",a.size,"type:",a.type);let s=await yo(a),r=await wo(s),o=vo(s);return console.log("[ImageUtils] Success resolution:",r==null?void 0:r.width,"x",r==null?void 0:r.height,"mime:",o.mimeType),{base64:o.base64,mimeType:o.mimeType,dataUrl:s,width:(e=r==null?void 0:r.width)!=null?e:0,height:(n=r==null?void 0:r.height)!=null?n:0}}catch(i){return console.error("[ImageUtils] Error fetching image data:",i),null}}async function _t(t,e=30){try{console.log("[ImageUtils] Removing background color...");let n=await new Promise((c,g)=>{let u=new Image;u.onload=()=>c(u),u.onerror=()=>g(new Error("Failed to load image")),u.src=t}),i=document.createElement("canvas");i.width=n.width,i.height=n.height;let a=i.getContext("2d");if(!a)return console.error("[ImageUtils] Failed to get canvas context"),t;a.drawImage(n,0,0);let s=a.getImageData(0,0,i.width,i.height),r=s.data,l=[{name:"top-left",offset:0},{name:"top-right",offset:(i.width-1)*4},{name:"bottom-left",offset:(i.height-1)*i.width*4},{name:"bottom-right",offset:((i.height-1)*i.width+(i.width-1))*4}].map(c=>({r:r[c.offset],g:r[c.offset+1],b:r[c.offset+2]})),d=0;for(let c=0;c<r.length;c+=4){let g=r[c],u=r[c+1],b=r[c+2],h=!1;for(let w of l)if(Math.sqrt(Math.pow(g-w.r,2)+Math.pow(u-w.g,2)+Math.pow(b-w.b,2))<e){h=!0;break}h&&(r[c+3]=0,d++)}return console.log(`[ImageUtils] Removed background from ${d} pixels (4-corner sampling, tolerance: ${e})`),a.putImageData(s,0,0),i.toDataURL("image/png")}catch(n){return console.error("[ImageUtils] Error removing background:",n),t}}var Qa=require("@google/genai");async function vn(t,e,n=[],i={}){var a,s,r,o,l,d,p;try{if(!(t!=null&&t.trim()))throw new Error("Gemini API key is required");if(!(e!=null&&e.trim()))throw new Error("Prompt is required");for(let v=0;v<n.length;v++){let y=n[v];if(!y.base64||!y.mimeType)throw new Error(`Image ${v+1} is missing required data`);if(y.base64.length<1e3&&console.warn(`Image ${v+1} data appears very small, may be corrupted`),!y.mimeType.startsWith("image/"))throw new Error(`Image ${v+1} has invalid MIME type: ${y.mimeType}`)}let c=new Qa.GoogleGenAI({apiKey:t}),g="gemini-2.5-flash",u=[e];n.length>0&&n.forEach((v,y)=>{u.push({inlineData:{data:v.base64,mimeType:v.mimeType}}),console.log(`[Gemini] Added image ${y+1}: ${v.mimeType}, size: ${Math.round(v.base64.length/1024)}KB`)}),console.log(`[Gemini] Making request with ${n.length} images and prompt length: ${e.length}`);let b=await c.models.generateContent({model:g,contents:u}),h="",w=(r=(s=(a=b.candidates)==null?void 0:a[0])==null?void 0:s.content)==null?void 0:r.parts;if(w)for(let v of w)v.text&&(h+=v.text);if(!h.trim())throw new Error("Empty response from Gemini API");return console.log(`[Gemini] Response received, length: ${h.length}`),h}catch(c){throw console.error("[Gemini] API error:",c),(o=c.message)!=null&&o.includes("Unable to process input image")?new Error("Unable to process the uploaded image. Please ensure it's a valid PNG, JPG, or JPEG file under 10MB and not corrupted."):(l=c.message)!=null&&l.includes("API_KEY_INVALID")?new Error("Invalid Gemini API key. Please check your API key configuration."):(d=c.message)!=null&&d.includes("QUOTA_EXCEEDED")?new Error("Gemini API quota exceeded. Please try again later or check your billing."):(p=c.message)!=null&&p.includes("SAFETY")?new Error("Content was flagged by Gemini safety filters. Please try with different images."):c}}var es=require("@google/genai");async function Pt(t,e,n=[],i={}){try{console.info("[GEMINI-REAL-SDK] Initializing GoogleGenAI...");let a=new es.GoogleGenAI({apiKey:t}),s=[{text:e}];n.length>0&&n.forEach((o,l)=>{console.info(`[GEMINI-REAL-SDK] Adding image part ${l}`),s.push({inlineData:{mimeType:o.mimeType,data:o.base64}})}),console.info("[GEMINI-REAL-SDK] Calling generateContent with model: gemini-2.5-flash-image");let r=await a.models.generateContent({model:"gemini-2.5-flash-image",contents:s});if(console.info("[GEMINI-REAL-SDK] Received response from model"),!r.candidates||!r.candidates[0]||!r.candidates[0].content||!r.candidates[0].content.parts)throw new Error("Gemini 2.5 Flash Image returned invalid response structure.");for(let o of r.candidates[0].content.parts)if(o.text)console.log(o.text);else if(o.inlineData){let l=o.inlineData.data,d=o.inlineData.mimeType||"image/png";return console.info("[GEMINI-REAL-SDK] Found inline image data in response"),`data:${d};base64,${l}`}throw new Error("Gemini 2.5 Flash Image returned no image data.")}catch(a){throw console.error("[GEMINI-REAL-SDK] Error in generateImageWithGemini25Flash:",JSON.stringify(a,Object.getOwnPropertyNames(a),2)),a}}var xo=require("pixi.js");Ze();Z();var ns=require("pixi.js");var Eo=require("pixi.js");Z();function jo(t){return new Promise((e,n)=>{let i=new FileReader;i.onerror=()=>n(new Error("FileReader failed")),i.onload=()=>e(String(i.result||"")),i.readAsDataURL(t)})}function Oo(t){var a;let[e,n]=t.split(","),i=e==null?void 0:e.match(/data:(.*?);base64/);return{base64:n!=null?n:"",mimeType:(a=i==null?void 0:i[1])!=null?a:"image/png"}}function Ro(t){return`
|
|
46
|
+
`,this.modal=i}attachModalListeners(){if(!this.modal)return;this.modal.querySelectorAll("[data-modal-close]").forEach(r=>{r.addEventListener("click",()=>this.close())}),this.modal.querySelectorAll("[data-tab]").forEach(r=>{r.addEventListener("click",o=>{let d=o.target.dataset.tab;d&&this.switchTab(d)})});let i=this.modal.querySelector("[data-ai-generate]");i==null||i.addEventListener("click",()=>{this.openAiEditor("generate")});let a=this.modal.querySelector("[data-ai-edit]");a==null||a.addEventListener("click",()=>{this.openAiEditor("edit")});let s=this.modal.querySelector("[data-modal-apply]");s==null||s.addEventListener("click",()=>{this.apply()}),this.modal.addEventListener("click",r=>{r.target===this.modal&&this.close()})}switchTab(e){if(!this.modal)return;this.modal.querySelectorAll("[data-tab]").forEach(a=>{a.classList.toggle("active",a.getAttribute("data-tab")===e)}),this.modal.querySelectorAll("[data-tab-panel]").forEach(a=>{a.classList.toggle("active",a.getAttribute("data-tab-panel")===e)})}openAiEditor(e){let n=window.__openAiEditor;if(typeof n!="function"){alert("AI Editor not available. Please check your setup.");return}let i="";e==="edit"&&this.currentAsset?i=`Edit this image: ${this.currentObjectId}`:i=`Create an image for: ${this.currentObjectId}`,n(this.currentObjectId||"unknown",i,this.currentAsset,{path:this.currentPath,onApply:a=>{this.onApplyCallback&&this.onApplyCallback(a),this.close()}})}apply(){this.onApplyCallback&&this.onApplyCallback("library/placeholder.png"),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.currentObjectId=null,this.currentPath=null,this.onApplyCallback=null}}});var el={};ca(el,{AspectClass:()=>$n,GameObject:()=>dt,GameObjectManager:()=>Ht,Renderer:()=>ct,ResponsiveUISystem:()=>qe,Transform:()=>lt,animateHandClick:()=>Es,animatePanelEntrance:()=>Ss,createBrushTexture:()=>_s,createEndGamePanel:()=>xs,createHandTutorial:()=>Cs,createThreeBase:()=>ys,createTutorialLabel:()=>As,getAspectClass:()=>$t,getRegisteredFontIds:()=>ws,loadAsset:()=>Nn,loadCharacterFrames:()=>Ms,registerFont:()=>vs,resolveFont:()=>ee,resolveFontWeight:()=>te,updateHandAnimation:()=>Ts});module.exports=Er(el);var W=ge(require("three"),1);var he={};function vt(t,e,n=!1){he[t]||(he[t]=[]),he[t].push({fn:e,once:n})}function Jt(t,e){if(he[t]){if(!e){delete he[t];return}he[t]=he[t].filter(n=>n.fn!==e)}}function wt(t,...e){let n=he[t];if(n)for(let i of[...n])i.fn(...e),i.once&&Jt(t,i.fn)}function B(t,e){vt(t,e,!0)}var _=null,V=[],Ie=null;function ga(t){_=t,V=[],Ie!==null&&(clearTimeout(Ie),Ie=null)}function ha(){var t,e,n;return{endpoint:(_==null?void 0:_.endpoint)||"",transport:(_==null?void 0:_.transport)||"beacon",batchSize:(t=_==null?void 0:_.batchSize)!=null?t:10,flushIntervalMs:(e=_==null?void 0:_.flushIntervalMs)!=null?e:300,maxQueue:(n=_==null?void 0:_.maxQueue)!=null?n:200,debug:!!(_!=null&&_.debug)}}async function pa(t,e,n,i){let a=JSON.stringify(e);if(n==="beacon"&&typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function")try{let s=navigator.sendBeacon(t,new Blob([a],{type:"application/json"}));i&&console.log("[handler.telemetry] beacon",s,e);return}catch(s){i&&console.warn("[handler.telemetry] beacon failed, fallback to fetch",s)}try{await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:a,keepalive:!0}),i&&console.log("[handler.telemetry] fetch",e)}catch(s){i&&console.warn("[handler.telemetry] fetch failed",s)}}function Zt(t,e){let n=ha();if(e&&n.endpoint){if(V.push(t),V.length>n.maxQueue&&(V=V.slice(V.length-n.maxQueue)),V.length>=n.batchSize){ua();return}Ie===null&&(Ie=window.setTimeout(()=>{Ie=null,ua()},n.flushIntervalMs))}}async function ua(){let t=ha();if(!t.endpoint||V.length===0)return;let e=V.splice(0,t.batchSize);await pa(t.endpoint,{events:e},t.transport,t.debug),V.length>0&&await pa(t.endpoint,{events:V.splice(0,t.batchSize)},t.transport,t.debug)}function ma(t){return Math.max(0,Math.min(1,t))}function Cr(t){let e=String(t!=null?t:"power2.out");if(e==="linear")return n=>n;if(e==="sine.inOut")return n=>.5-Math.cos(Math.PI*n)/2;if(e==="power2.out"||e==="easeOutQuad")return n=>1-(1-n)*(1-n);if(e.startsWith("back.out")){let n=e.match(/back\.out\(([\d.]+)\)/),i=n?Number(n[1]):1.8;return a=>1+(i+1)*Math.pow(a-1,3)+i*Math.pow(a-1,2)}return n=>1-(1-n)*(1-n)}function Xe(){return typeof performance!="undefined"&&performance.now?performance.now():Date.now()}function Ar(t,e){let n=t==null?void 0:t[e];return typeof n=="number"?n:0}function fa(t,e,n){try{t[e]=n}catch{}}function Tr(t){let e=t==null?void 0:t.scale;if(!e)return null;let n=typeof e.x=="number"?e.x:1,i=typeof e.y=="number"?e.y:1;return{x:n,y:i}}function ba(t,e){let n=t==null?void 0:t.scale;if(n)try{typeof n.set=="function"?n.set(e.x,e.y):(typeof n.x=="number"&&(n.x=e.x),typeof n.y=="number"&&(n.y=e.y))}catch{}}function ya(t,e){let n=Tr(t);if(!n)return{from:null,to:null};let i=null,a=null;return typeof e.scale=="number"?(i=e.scale,a=e.scale):e.scale&&typeof e.scale=="object"&&(typeof e.scale.x=="number"&&(i=e.scale.x),typeof e.scale.y=="number"&&(a=e.scale.y)),typeof e.scaleX=="number"&&(i=e.scaleX),typeof e.scaleY=="number"&&(a=e.scaleY),i===null&&a===null?{from:null,to:null}:{from:{x:n.x,y:n.y},to:{x:i!=null?i:n.x,y:a!=null?a:n.y}}}function va(){let t=new Set,e=new WeakMap,n=null,i=()=>{if(n!=null)return;n=requestAnimationFrame(()=>{n=null,o(),t.size>0&&i()})},a=p=>{var g;t.add(p);let c=(g=e.get(p.target))!=null?g:new Set;c.add(p),e.set(p.target,c),i()},s=p=>{t.delete(p);let c=e.get(p.target);c&&(c.delete(p),c.size===0&&e.delete(p.target))},r=p=>{p.killed||(p.killed=!0,s(p))},o=()=>{var c,g;let p=Xe();for(let u of Array.from(t)){if(u.killed||u.paused)continue;let b=p-u.startMs-u.delayMs;if(b<0)continue;let h=u.durationMs>0?b/u.durationMs:1,w=ma(h),v=u.repeat>=0?u.repeat+1:1,y=u.repeat>0?Math.min(Math.floor(h),v-1):0;if(u.repeat>0&&h>=1){let S=h-y;w=ma(S)}let m=u.ease(w);u.yoyo&&y%2===1&&(m=1-m);for(let S of u.props)fa(u.target,S.key,S.from+(S.to-S.from)*m);u.scaleFrom&&u.scaleTo&&ba(u.target,{x:u.scaleFrom.x+(u.scaleTo.x-u.scaleFrom.x)*m,y:u.scaleFrom.y+(u.scaleTo.y-u.scaleFrom.y)*m});try{(c=u.onUpdate)==null||c.call(u)}catch{}if(h>=v){r(u);try{(g=u.onComplete)==null||g.call(u)}catch{}}}},l=(p,c,g)=>{var S;let u=Math.max(0,(typeof c.duration=="number"?c.duration:.5)*1e3),b=Math.max(0,(typeof c.delay=="number"?c.delay:0)*1e3+((S=g==null?void 0:g.delayMsOverride)!=null?S:0)),h=Cr(c.ease),w=typeof c.repeat=="number"?Math.max(0,c.repeat|0):0,v=c.yoyo===!0,y=new Set(["duration","delay","ease","repeat","yoyo","onUpdate","onComplete","scale","scaleX","scaleY"]),m=[];for(let E of Object.keys(c)){if(y.has(E))continue;let C=c[E];typeof C=="number"&&m.push({key:E,from:Ar(p,E),to:C})}let f=ya(p,c);return{target:p,startMs:Xe(),delayMs:b,durationMs:u,ease:h,props:m,scaleFrom:f.from,scaleTo:f.to,repeat:w,yoyo:v,onUpdate:typeof c.onUpdate=="function"?c.onUpdate:void 0,onComplete:typeof c.onComplete=="function"?c.onComplete:void 0,killed:!1,paused:!1,pauseAtMs:null}},d={to(p,c){let g=l(p,c);return a(g),{kill:()=>r(g),pause:()=>{g.paused||(g.paused=!0,g.pauseAtMs=Xe())},resume:()=>{var h;if(!g.paused)return;let u=(h=g.pauseAtMs)!=null?h:Xe(),b=Xe()-u;g.startMs+=b,g.paused=!1,g.pauseAtMs=null},isActive:()=>!g.killed&&!g.paused}},fromTo(p,c,g){return d.set(p,c),d.to(p,g)},set(p,c){if(!p||!c)return;for(let u of Object.keys(c)){let b=c[u];u==="scale"||u==="scaleX"||u==="scaleY"||typeof b=="number"&&fa(p,u,b)}let g=ya(p,c);g.to&&ba(p,g.to)},killTweensOf(p){let c=e.get(p);if(c)for(let g of Array.from(c))r(g)},timeline(p={}){let c=[],g=0,u=!1,b=[],h=y=>{if(typeof y=="number")return Math.max(0,y*1e3);let m=typeof y=="string"?y.trim():"";return m.startsWith("+=")?g+Math.max(0,Number(m.slice(2))*1e3||0):m?Math.max(0,Number(m)*1e3||0):g},w=y=>{c.push(y);let m=Math.max(0,(typeof y.vars.duration=="number"?y.vars.duration:.5)*1e3);g=Math.max(g,y.atMs+m)},v={to(y,m,f){return w({kind:"to",target:y,vars:m,atMs:h(f)}),v},fromTo(y,m,f,S){return w({kind:"fromTo",target:y,vars:f,from:m,atMs:h(S)}),v},play(){var y,m;if(u)return v;u=!0,b=[];for(let f of c)f.kind==="fromTo"&&d.set(f.target,(y=f.from)!=null?y:{}),b.push(d.to(f.target,{...f.vars,delay:f.atMs/1e3+((m=f.vars.delay)!=null?m:0)}));return v},pause(){for(let y of b)y.pause();return v},kill(){for(let y of b)y.kill();b=[],u=!1}};return p.paused||v.play(),v}};return d}function wa(){if(typeof window=="undefined")return;let t=window;if(!t.gsap)try{t.gsap=va()}catch{}}var xa={name:"handler-playable-sdk",version:"1.0.10",type:"module",description:"Handler Playable SDK v0.1 with contract-aligned surface (root sandbox, canonical event envelope).",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./pixi":{types:"./dist/pixi/index.d.ts",import:"./dist/pixi/index.js",require:"./dist/pixi/index.cjs"},"./pixi/index.css":{import:"./dist/pixi/index.css",require:"./dist/pixi/index.css"},"./three":{types:"./dist/three/index.d.ts",import:"./dist/three/index.js",require:"./dist/three/index.cjs"},"./cli":{types:"./dist/cli/index.d.ts",import:"./dist/cli/index.js",require:"./dist/cli/index.cjs"}},bin:{"handler-student-helper":"./bin/student-helper.mjs","handler-validate":"./bin/validate.mjs","handler-sync-screens":"./bin/sync-screens.mjs","handler-brand-dna":"./bin/brand-dna.mjs","handler-setup-library":"./bin/setup-library.mjs","handler-screen-helper":"./bin/screen-helper.mjs"},scripts:{prebuild:"python3 src/preview/build-css.py",build:"tsup src/index.ts src/pixi/index.ts src/three/index.ts src/cli/index.ts --format cjs,esm --dts --clean --minify --external lottie-web --external jszip && npm run create-mjs-symlinks && npm run postbuild-cli && npm run obfuscate && npm run postbuild",postbuild:"python3 src/preview/copy-css-to-dist.py","postbuild-cli":"cp src/cli/*.mjs dist/cli/ && chmod +x dist/cli/*.mjs && chmod +x bin/*.mjs","create-mjs-symlinks":"cd dist && ln -sf index.js index.mjs && cd pixi && ln -sf index.js index.mjs && cd ../three && ln -sf index.js index.mjs","build:dev":"tsup src/index.ts src/pixi/index.ts src/three/index.ts src/cli/index.ts --format cjs,esm --dts --clean --external lottie-web --external jszip && npm run create-mjs-symlinks && npm run postbuild-cli",obfuscate:"javascript-obfuscator dist/pixi/index.js --output dist/pixi/index.js --config obfuscator.config.json && javascript-obfuscator dist/three/index.js --output dist/three/index.js --config obfuscator.config.json && javascript-obfuscator dist/cli/index.js --output dist/cli/index.js --config obfuscator.config.json && npm run obfuscate-cli","obfuscate-cli":'for file in dist/cli/*.mjs; do javascript-obfuscator "$file" --output "$file" --config obfuscator.config.json; done',lint:"eslint 'src/**/*.{ts,tsx}'",typecheck:"tsc --noEmit",prepublishOnly:"npm run build","publish:update":"node scripts/publish-and-update.cjs patch","publish:update:minor":"node scripts/publish-and-update.cjs minor","publish:update:major":"node scripts/publish-and-update.cjs major"},author:"Handler",license:"MIT",publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/HandlerAIGames/handler-playable-sdk.git"},files:["dist","bin","LICENSE","README.md"],peerDependencies:{"lottie-web":"^5.0.0","pixi.js":"^8.0.0",three:"^0.182.0"},peerDependenciesMeta:{"pixi.js":{optional:!0},three:{optional:!0},"lottie-web":{optional:!0}},devDependencies:{"@types/three":"^0.182.0",eslint:"^9.39.2","javascript-obfuscator":"^5.1.0","pixi.js":"8.8.1",three:"^0.182.0","ts-node":"^10.9.2",tsup:"^8.4.0",typescript:"^5.7.2","typescript-eslint":"^8.53.0"},dependencies:{"@google/genai":"^1.35.0","@google/generative-ai":"^0.24.1",jszip:"^3.10.1",sharp:"^0.34.5"}};var G=0,kr=G++,Sa=G++,Ea=G++,Ca=G++,Aa=G++,Ta=G++,La=G++,ka=G++,Ma=G++,_a=G++,Pa=G++,Ia=G++,T=kr;function ja(){return T===Sa}function Oa(){return T===Ea}function Ra(){return T===Ca}function za(){return T===Aa}function je(){return T===Ta}function Oe(){return T===La}function $a(){return T===ka}function Ha(){return T===Ma}function Da(){return T===_a}function Qt(){return T===Pa}function en(){return T===Ia}function Na(){let t=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",e=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(t==="mraid")try{mraid.getState(),T=Sa;return}catch{}else if(t==="dapi")try{dapi.isReady(),T=Ea;return}catch{}if(e==="facebook")try{typeof FbPlayableAd!="undefined"&&(T=Ca)}catch{}else if(e==="google")try{typeof ExitApi!="undefined"&&(T=Aa)}catch{}else if(e==="mintegral")window.gameReady&&(T=Ta);else if(e==="tapjoy")window.TJ_API&&(T=La);else if(e==="tiktok")window.openAppStore&&(T=ka);else if(e==="smadex")try{window.smxTracking&&(T=Ma)}catch{}else if(e==="snapchat")try{window.ScPlayableAd&&(T=_a)}catch{}else e==="vungle"?T=Pa:(t==="nucleo"||e==="nucleo")&&(T=Ia)}var xt=ge(require("lottie-web"),1),Fa=xt.default;typeof window!="undefined"&&(window.lottie=xt.default,window.__baseLottie=xt.default);var Mr=require("pixi.js");var tn=require("pixi.js");var _r=null;function nn(t){_r=t}St();an();var Ke=require("pixi.js");St();var zr=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",ln=zr;if(typeof window!="undefined")try{let t=new XMLHttpRequest;if(t.open("GET","./build-settings.json",!1),t.send(),t.status===200&&t.responseText){let e=JSON.parse(t.responseText);e!=null&&e.buildMode&&(ln=e.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${ln}`))}}catch{}function $r(t){var n,i,a,s,r;if(typeof window!="undefined"&&window.resolveAnchorVec2)return window.resolveAnchorVec2(t);let e={center:{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};if(Array.isArray(t))return{x:(n=t[0])!=null?n:.5,y:(i=t[1])!=null?i:.5};if(t&&typeof t=="object"&&"x"in t&&"y"in t)return{x:(a=t.x)!=null?a:.5,y:(s=t.y)!=null?s:.5};if(typeof t=="string"){let o=t.trim().toLowerCase();return(r=e[o])!=null?r:{x:.5,y:.5}}return null}var fe=class{static async create(e,n,i){var l,d,p,c,g,u,b;console.log(`[ObjectFactory] create() called for: ${e}, __BUILD_MODE__: ${ln}`);let a=(l=n==null?void 0:n.render)==null?void 0:l.asset;if(!a){console.log(`[ObjectFactory] No asset definition for: ${e}, returning empty container`);let h=new Ke.Container;return this.applyTransform(h,n==null?void 0:n.transform,n),h}let s=(d=n==null?void 0:n.identity)==null?void 0:d.id;console.log(`[ObjectFactory] Calling AssetLoader.load() for: ${e}, configId: ${s}, type: ${a.type}, path: ${a.path}`);let r=await Ce.load(e,a,i,s);console.log(`[ObjectFactory] AssetLoader.load() completed for: ${e}, rawAsset type: ${(p=r==null?void 0:r.constructor)==null?void 0:p.name}`);let o;if(a.type==="image")console.log("[ObjectFactory] Creating Sprite from texture:",r,"for object:",e),o=new Ke.Sprite(r),console.log("[ObjectFactory] Created object:",o,"type:",(c=o==null?void 0:o.constructor)==null?void 0:c.name),this.applyTransform(o,n==null?void 0:n.transform,n);else if(a.type==="json")if(console.log("[ObjectFactory] JSON asset for",e,"rawAsset type:",(g=r==null?void 0:r.constructor)==null?void 0:g.name,r),r&&(((u=r.constructor)==null?void 0:u.name)==="Container"||r instanceof Ke.Container)){console.warn("[ObjectFactory] JSON asset is Container (from cache), reloading JSON directly");let h=[a.path,`/assets/${a.path}`,`assets/${a.path}`,`../assets/${a.path}`],w=!1;for(let v of h)try{let y=await fetch(v);if(y.ok){o=await y.json(),console.log("[ObjectFactory] Reloaded JSON directly from:",v,"type:",(b=o==null?void 0:o.constructor)==null?void 0:b.name),w=!0;break}}catch{continue}w||(console.error("[ObjectFactory] Failed to reload JSON from any path"),o=r)}else o=r;else o=r,o&&typeof o=="object"&&("x"in o||"position"in o)&&this.applyTransform(o,n==null?void 0:n.transform,n);return o}static applyTransform(e,n,i){var a,s,r,o;if(!(!n||!e)&&(n.position&&("x"in e&&"y"in e?(e.x=(a=n.position.x)!=null?a:0,e.y=(s=n.position.y)!=null?s:0):"position"in e&&e.position&&e.position.set((r=n.position.x)!=null?r:0,(o=n.position.y)!=null?o:0)),n.scale!==void 0&&"scale"in e&&e.scale&&(typeof e.scale=="object"&&"set"in e.scale?e.scale.set(n.scale):e.scale=n.scale),n.rotation!==void 0&&"rotation"in e&&(e.rotation=n.rotation),n.anchor&&"anchor"in e&&e.anchor)){let l=$r(n.anchor);l&&("set"in e.anchor?e.anchor.set(l.x,l.y):(e.anchor.x=l.x,e.anchor.y=l.y))}}};var Je=class{constructor(){this.config=null}init(e){this.config=e}get(e){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return this.config.objects.get(e)}getAllIds(){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return Array.from(this.config.objects.keys())}has(e){return this.config?this.config.objects.has(e):!1}};var Nr=ge(require("pixi.js"),1);typeof window!="undefined"&&(window.__basePixi=Nr);Ze();var Ct=require("pixi.js");Ze();var dn=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new Je}init(e,n){this.registry.init(e),this.app=n}updateConfig(e){this.registry.init(e),this.instanceCache.clear(),this.readyPromise=null}async ready(){this.readyPromise&&await this.readyPromise;let n=this.registry.getAllIds().filter(a=>!this.instanceCache.has(a));if(n.length===0)return;let i=async a=>{a.length&&(console.log("[Assets] Loading objects:",a),await Promise.all(a.map(async s=>{var o;let r=this.registry.get(s);if(!r){console.warn("[Assets] No config found for object:",s);return}try{let l=await fe.create(s,r,this.app);this.instanceCache.set(s,l),console.log("[Assets] Loaded object:",s,(o=l==null?void 0:l.constructor)==null?void 0:o.name)}catch(l){console.error("[Assets] Failed to load object:",s,l)}})))};return this.readyPromise=(async()=>{await i(n);let a=this.registry.getAllIds().filter(s=>!this.instanceCache.has(s));a.length>0&&(console.warn("[Assets] Retrying missing assets:",a),await i(a)),console.log("[Assets] Ready. Cached objects:",Array.from(this.instanceCache.keys()))})(),this.readyPromise}resetScene(){this.instanceCache.clear(),this.readyPromise=null}async reloadObject(e){let n=this.registry.get(e);if(n){let i=await fe.create(e,n,this.app);this.instanceCache.set(e,i)}}get(e){return this.instanceCache.get(e)}},Br=new dn,Gr=new Proxy(Br,{get(t,e){if(e in t&&typeof t[e]=="function")return t[e].bind(t);if(t.get(e))return t.get(e)}});Ze();var qa=require("pixi.js"),J={width:400,height:600,designWidth:400,scaleFactor:1},et={scale:1,position:1},un=[];function Vr(t,e,n,i,a,s,r){un.push({element:t,originalScale:s,positionHelper:e,heightPercent:a}),e(t,n,i,a,s,r,!1)}function Wr(){un.forEach(({element:t,originalScale:e,positionHelper:n,heightPercent:i})=>{let a=e*J.scaleFactor;n(t,J.width,J.height,i,a,!0,!1)})}function pn(t,e){console.log(`[SCREEN] updateScreenState called: ${t}x${e}`),J.width=t,J.height=e,J.scaleFactor=Math.min(t/J.designWidth,1.15),et.scale=J.scaleFactor,et.position=1,console.log(`[SCREEN] Global multipliers - scale: ${et.scale.toFixed(3)}`),Wr()}var ze={layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}};function Yr(t,e,n){let i=ze[t];i&&i[e]!==void 0&&(i[e]=n,console.log(`Updated ${t}.${e} = ${n}`))}function Xr(){return ze}var Kr={center:{x:.5,y:.5},"center-center":{x:.5,y:.5},middle:{x:.5,y:.5},"middle-center":{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},"left-center":{x:0,y:.5},"right-center":{x:1,y:.5},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};function At(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function tt(t,e={x:.5,y:.5}){var n;if(Array.isArray(t))return{x:At(t[0],e.x),y:At(t[1],e.y)};if(t&&typeof t=="object"){let i=t;return{x:At(i.x,e.x),y:At(i.y,e.y)}}if(typeof t=="string"){let i=t.trim().toLowerCase();return(n=Kr[i])!=null?n:e}return e}function gn(t,e,n,i={}){var u,b,h,w,v,y;let a=tt(n),s=(u=i.inset)!=null?u:{},r=(b=i.padding)!=null?b:{x:0,y:0},o=((h=s.left)!=null?h:0)+r.x,l=((w=s.right)!=null?w:0)+r.x,d=((v=s.top)!=null?v:0)+r.y,p=((y=s.bottom)!=null?y:0)+r.y,c=Math.max(0,t-o-l),g=Math.max(0,e-d-p);return{x:o+c*a.x,y:d+g*a.y}}function hn(t,e,n,i={}){var h,w,v,y,m,f;let a=(h=i.inset)!=null?h:{},s=(w=i.padding)!=null?w:{x:0,y:0},r=((v=a.left)!=null?v:0)+s.x,o=((y=a.right)!=null?y:0)+s.x,l=((m=a.top)!=null?m:0)+s.y,d=((f=a.bottom)!=null?f:0)+s.y,p=Math.max(0,t-r-o),c=Math.max(0,e-l-d),g=tt(n,{x:.5,y:.5}),u=Math.min(Math.max(g.x,0),1),b=Math.min(Math.max(g.y,0),1);return{x:r+p*u,y:l+c*b}}if(typeof window!="undefined"){let t=window.innerWidth,e=window.innerHeight,n=()=>{let i=window.innerWidth,a=window.innerHeight;(i!==t||a!==e)&&(t=i,e=a,pn(i,a))};window.addEventListener("resize",n),window.addEventListener("orientationchange",()=>{setTimeout(n,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",n),window.mraid.addEventListener("sizeChange",n)),pn(window.innerWidth,window.innerHeight),window.updateDebugConfig=Yr,window.getDebugConfig=Xr,window.copyConfig=oo,window.applyConfig=Qe,window.applyConfigForRatio=lo,window.positionAtBottom=Va,window.positionAtTop=Qr,window.positionAtCenter=eo,window.positionAtLeft=to,window.positionAtRight=no,window.positionAtBottomLeft=io,window.positionAtBottomRight=ao,window.positionAtTopLeft=so,window.positionAtTopRight=ro,window.applyPositionContract=Zr,console.log("\u{1F3AE} Debug Config Functions Available:"),console.log("\u2022 updateDebugConfig(category, key, value)"),console.log("\u2022 getDebugConfig()"),console.log("\u2022 copyConfig(presetName)"),console.log("\u2022 applyConfig(config)"),console.log("\u2022 applyConfigForRatio(width, height)"),console.log("\u{1F4CD} Positioning Helpers Available (with scale):"),console.log("\u2022 positionAtBottom(element, w, h, percent, scale)"),console.log("\u2022 positionAtTop(element, w, h, percent, scale)"),console.log("\u2022 positionAtCenter(element, w, h, offsetX, offsetY, scale)"),console.log("\u2022 positionAtLeft/Right(element, w, h, percent, scale)"),console.log("\u2022 Corner positions: BottomLeft/Right, TopLeft/Right (all with scale)"),console.log("\u2022 applyPositionContract(element, w, h, contract)"),console.log("Example: positionAtCenter(mySprite, 400, 600, 0, -50, 1.2)")}function Tt(t,e,n=0){return t*e+n}function Lt(t,e,n=0){return t*(1-e)+n}function kt(t,e,n=0){return t*e+n}function Mt(t,e,n=0){return t*(1-e)+n}function U(t,e=0){return t/2+e}function Jr(t,e){return t*e}function Zr(t,e,n,i){var r,o,l,d,p,c,g,u,b,h,w,v,y,m,f,S,E,C,M,I;let a=0,s=0;switch(i.type){case"top":a=U(e,(o=(r=i.offset)==null?void 0:r.x)!=null?o:0),s=Tt(n,i.percent,(d=(l=i.offset)==null?void 0:l.y)!=null?d:0);break;case"bottom":a=U(e,(c=(p=i.offset)==null?void 0:p.x)!=null?c:0),s=Lt(n,i.percent,(u=(g=i.offset)==null?void 0:g.y)!=null?u:0);break;case"left":a=kt(e,i.percent,(h=(b=i.offset)==null?void 0:b.x)!=null?h:0),s=U(n,(v=(w=i.offset)==null?void 0:w.y)!=null?v:0);break;case"right":a=Mt(e,i.percent,(m=(y=i.offset)==null?void 0:y.x)!=null?m:0),s=U(n,(S=(f=i.offset)==null?void 0:f.y)!=null?S:0);break;case"center":a=U(e,(C=(E=i.offset)==null?void 0:E.x)!=null?C:0),s=U(n,(I=(M=i.offset)==null?void 0:M.y)!=null?I:0);break}t.position?t.position.set(a,s):(t.x=a,t.y=s),i.scale!==void 0&&i.scale!==1&&t.scale&&(typeof t.scale.set=="function"?t.scale.set(i.scale,i.scale):(t.scale.x=i.scale,t.scale.y=i.scale))}function Va(t,e,n,i=.2,a=1,s=!0,r=!1){let o=Jr(n,i),l=Lt(n,i/2);ce(t,U(e),l);let d=s?a*J.scaleFactor:a;de(t,d),r&&!un.find(p=>p.element===t)&&Vr(t,Va,e,n,i,a,s)}function Qr(t,e,n,i=.1,a=1){ce(t,U(e),Tt(n,i)),de(t,a)}function eo(t,e,n,i=0,a=0,s=1){ce(t,U(e,i),U(n,a)),de(t,s)}function to(t,e,n,i=.1,a=1){ce(t,kt(e,i),U(n)),de(t,a)}function no(t,e,n,i=.1,a=1){ce(t,Mt(e,i),U(n)),de(t,a)}function io(t,e,n,i=.05,a=.05,s=1){ce(t,kt(e,a),Lt(n,i)),de(t,s)}function ao(t,e,n,i=.05,a=.05,s=1){ce(t,Mt(e,a),Lt(n,i)),de(t,s)}function so(t,e,n,i=.05,a=.05,s=1){ce(t,kt(e,a),Tt(n,i)),de(t,s)}function ro(t,e,n,i=.05,a=.05,s=1){ce(t,Mt(e,a),Tt(n,i)),de(t,s)}function ce(t,e,n){t&&t.position?typeof t.position.set=="function"?t.position.set(e,n):(t.position.x=e,t.position.y=n):t&&(t.x=e,t.y=n)}function de(t,e){e!==1&&t&&t.scale&&(typeof t.scale.set=="function"?t.scale.set(e,e):t.scale.x!==void 0&&t.scale.y!==void 0&&(t.scale.x=e,t.scale.y=e))}var Ae={default:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}},wide:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.9,screen_scale_y:1.1},engine:{scale:1,background_scale:1.1,background_offset_y:0,background_alpha:.95,label_pulse_speed:3,label_pulse_intensity:.03}},square:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.85,screen_scale_y:.85},engine:{scale:1,background_scale:1,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}},tall:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1.1,screen_scale_y:.9},engine:{scale:1,background_scale:.95,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}}};function oo(t){return t&&Ae[t]?JSON.parse(JSON.stringify(Ae[t])):JSON.parse(JSON.stringify(ze))}function Qe(t){Object.keys(t).forEach(e=>{let n=e;ze[n]&&t[n]&&Object.assign(ze[n],t[n])}),console.log("Config applied:",t)}function lo(t,e){let n=t/e;n>1.6?(Qe(Ae.wide),console.log("Applied WIDE config for ratio:",n)):n<.7?(Qe(Ae.tall),console.log("Applied TALL config for ratio:",n)):n>.8&&n<1.2?(Qe(Ae.square),console.log("Applied SQUARE config for ratio:",n)):(Qe(Ae.default),console.log("Applied DEFAULT config for ratio:",n))}if(typeof window!="undefined"){let t=window;t.configPresets=Ae,t.resolveAnchorVec2=t.resolveAnchorVec2||tt,t.resolveScreenAnchorPoint=t.resolveScreenAnchorPoint||gn,t.resolveScreenRatioPoint=t.resolveScreenRatioPoint||hn}bn();function P(t,e){let n=(a,s)=>s===0?a:n(s,a%s),i=n(t,e);return`${t/i}:${e/i}`}var Vc=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:P(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:P(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:P(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:P(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:P(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:P(360,780)}],Wc=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:P(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:P(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:P(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:P(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:P(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:P(412,915)}],Yc=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:P(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:P(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:P(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:P(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:P(800,1280)}],Ka=[{id:"playable-portrait",label:"Playable Portrait",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"mraid-320x480",label:"MRAID 320\xD7480",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"playable",ratio:P(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:P(768,1024),mraidScale:.7}];var Xc=[...Ka];var bo=Ka[0];Z();function yo(t){return new Promise((e,n)=>{let i=new FileReader;i.onerror=()=>n(new Error("FileReader failed")),i.onload=()=>e(String(i.result||"")),i.readAsDataURL(t)})}function vo(t){var a;let[e,n]=t.split(","),i=e==null?void 0:e.match(/data:(.*?);base64/);return{base64:n!=null?n:"",mimeType:(a=i==null?void 0:i[1])!=null?a:"image/png"}}async function wo(t){return await new Promise(e=>{let n=new Image;n.onload=()=>e({width:n.naturalWidth||n.width,height:n.naturalHeight||n.height}),n.onerror=()=>e(null),n.src=t})}async function yn(t){var e,n;try{console.log("[ImageUtils] Fetching image data from URL:",t);let i=await fetch(t);if(!i.ok)return console.warn("[ImageUtils] Fetch failed with status:",i.status,t),null;let a=await i.blob();console.log("[ImageUtils] Blob received, size:",a.size,"type:",a.type);let s=await yo(a),r=await wo(s),o=vo(s);return console.log("[ImageUtils] Success resolution:",r==null?void 0:r.width,"x",r==null?void 0:r.height,"mime:",o.mimeType),{base64:o.base64,mimeType:o.mimeType,dataUrl:s,width:(e=r==null?void 0:r.width)!=null?e:0,height:(n=r==null?void 0:r.height)!=null?n:0}}catch(i){return console.error("[ImageUtils] Error fetching image data:",i),null}}async function _t(t,e=30){try{console.log("[ImageUtils] Removing background color...");let n=await new Promise((c,g)=>{let u=new Image;u.onload=()=>c(u),u.onerror=()=>g(new Error("Failed to load image")),u.src=t}),i=document.createElement("canvas");i.width=n.width,i.height=n.height;let a=i.getContext("2d");if(!a)return console.error("[ImageUtils] Failed to get canvas context"),t;a.drawImage(n,0,0);let s=a.getImageData(0,0,i.width,i.height),r=s.data,l=[{name:"top-left",offset:0},{name:"top-right",offset:(i.width-1)*4},{name:"bottom-left",offset:(i.height-1)*i.width*4},{name:"bottom-right",offset:((i.height-1)*i.width+(i.width-1))*4}].map(c=>({r:r[c.offset],g:r[c.offset+1],b:r[c.offset+2]})),d=0;for(let c=0;c<r.length;c+=4){let g=r[c],u=r[c+1],b=r[c+2],h=!1;for(let w of l)if(Math.sqrt(Math.pow(g-w.r,2)+Math.pow(u-w.g,2)+Math.pow(b-w.b,2))<e){h=!0;break}h&&(r[c+3]=0,d++)}return console.log(`[ImageUtils] Removed background from ${d} pixels (4-corner sampling, tolerance: ${e})`),a.putImageData(s,0,0),i.toDataURL("image/png")}catch(n){return console.error("[ImageUtils] Error removing background:",n),t}}var Qa=require("@google/genai");async function vn(t,e,n=[],i={}){var a,s,r,o,l,d,p;try{if(!(t!=null&&t.trim()))throw new Error("Gemini API key is required");if(!(e!=null&&e.trim()))throw new Error("Prompt is required");for(let v=0;v<n.length;v++){let y=n[v];if(!y.base64||!y.mimeType)throw new Error(`Image ${v+1} is missing required data`);if(y.base64.length<1e3&&console.warn(`Image ${v+1} data appears very small, may be corrupted`),!y.mimeType.startsWith("image/"))throw new Error(`Image ${v+1} has invalid MIME type: ${y.mimeType}`)}let c=new Qa.GoogleGenAI({apiKey:t}),g="gemini-2.5-flash",u=[e];n.length>0&&n.forEach((v,y)=>{u.push({inlineData:{data:v.base64,mimeType:v.mimeType}}),console.log(`[Gemini] Added image ${y+1}: ${v.mimeType}, size: ${Math.round(v.base64.length/1024)}KB`)}),console.log(`[Gemini] Making request with ${n.length} images and prompt length: ${e.length}`);let b=await c.models.generateContent({model:g,contents:u}),h="",w=(r=(s=(a=b.candidates)==null?void 0:a[0])==null?void 0:s.content)==null?void 0:r.parts;if(w)for(let v of w)v.text&&(h+=v.text);if(!h.trim())throw new Error("Empty response from Gemini API");return console.log(`[Gemini] Response received, length: ${h.length}`),h}catch(c){throw console.error("[Gemini] API error:",c),(o=c.message)!=null&&o.includes("Unable to process input image")?new Error("Unable to process the uploaded image. Please ensure it's a valid PNG, JPG, or JPEG file under 10MB and not corrupted."):(l=c.message)!=null&&l.includes("API_KEY_INVALID")?new Error("Invalid Gemini API key. Please check your API key configuration."):(d=c.message)!=null&&d.includes("QUOTA_EXCEEDED")?new Error("Gemini API quota exceeded. Please try again later or check your billing."):(p=c.message)!=null&&p.includes("SAFETY")?new Error("Content was flagged by Gemini safety filters. Please try with different images."):c}}var es=require("@google/genai");async function Pt(t,e,n=[],i={}){try{console.info("[GEMINI-REAL-SDK] Initializing GoogleGenAI...");let a=new es.GoogleGenAI({apiKey:t}),s=[{text:e}];n.length>0&&n.forEach((o,l)=>{console.info(`[GEMINI-REAL-SDK] Adding image part ${l}`),s.push({inlineData:{mimeType:o.mimeType,data:o.base64}})}),console.info("[GEMINI-REAL-SDK] Calling generateContent with model: gemini-2.5-flash-image");let r=await a.models.generateContent({model:"gemini-2.5-flash-image",contents:s});if(console.info("[GEMINI-REAL-SDK] Received response from model"),!r.candidates||!r.candidates[0]||!r.candidates[0].content||!r.candidates[0].content.parts)throw new Error("Gemini 2.5 Flash Image returned invalid response structure.");for(let o of r.candidates[0].content.parts)if(o.text)console.log(o.text);else if(o.inlineData){let l=o.inlineData.data,d=o.inlineData.mimeType||"image/png";return console.info("[GEMINI-REAL-SDK] Found inline image data in response"),`data:${d};base64,${l}`}throw new Error("Gemini 2.5 Flash Image returned no image data.")}catch(a){throw console.error("[GEMINI-REAL-SDK] Error in generateImageWithGemini25Flash:",JSON.stringify(a,Object.getOwnPropertyNames(a),2)),a}}var xo=require("pixi.js");Ze();Z();var ns=require("pixi.js");var Eo=require("pixi.js");Z();function jo(t){return new Promise((e,n)=>{let i=new FileReader;i.onerror=()=>n(new Error("FileReader failed")),i.onload=()=>e(String(i.result||"")),i.readAsDataURL(t)})}function Oo(t){var a;let[e,n]=t.split(","),i=e==null?void 0:e.match(/data:(.*?);base64/);return{base64:n!=null?n:"",mimeType:(a=i==null?void 0:i[1])!=null?a:"image/png"}}function Ro(t){return`
|
|
47
47
|
Analyze these screenshots of a brand or game and extract its "Brand DNA".
|
|
48
48
|
|
|
49
49
|
Provide a concise summary (2-3 sentences) covering:
|