handler-playable-sdk 0.5.552 → 0.5.556

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.
@@ -6368,6 +6368,290 @@
6368
6368
  }
6369
6369
  }
6370
6370
 
6371
+ /* Canva ZIP Wizard Styles */
6372
+ .canva-wizard-overlay {
6373
+ position: fixed;
6374
+ top: 0;
6375
+ left: 0;
6376
+ right: 0;
6377
+ bottom: 0;
6378
+ background: rgba(0, 0, 0, 0.75);
6379
+ backdrop-filter: blur(4px);
6380
+ z-index: 10000;
6381
+ display: flex;
6382
+ align-items: center;
6383
+ justify-content: center;
6384
+ padding: 20px;
6385
+ animation: fade-in 0.2s ease-out;
6386
+ }
6387
+
6388
+ @keyframes fade-in {
6389
+ from {
6390
+ opacity: 0;
6391
+ }
6392
+ to {
6393
+ opacity: 1;
6394
+ }
6395
+ }
6396
+
6397
+ .canva-wizard-modal {
6398
+ background: var(--ui-surface);
6399
+ border: 1px solid var(--ui-border);
6400
+ border-radius: 16px;
6401
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
6402
+ width: 100%;
6403
+ max-width: 1200px;
6404
+ max-height: 90vh;
6405
+ display: flex;
6406
+ flex-direction: column;
6407
+ overflow: hidden;
6408
+ animation: slide-up 0.3s ease-out;
6409
+ }
6410
+
6411
+ @keyframes slide-up {
6412
+ from {
6413
+ transform: translateY(20px);
6414
+ opacity: 0;
6415
+ }
6416
+ to {
6417
+ transform: translateY(0);
6418
+ opacity: 1;
6419
+ }
6420
+ }
6421
+
6422
+ .canva-wizard-header {
6423
+ display: flex;
6424
+ align-items: center;
6425
+ justify-content: space-between;
6426
+ padding: 20px 24px;
6427
+ border-bottom: 1px solid var(--ui-border);
6428
+ background: var(--ui-surface-2);
6429
+ }
6430
+
6431
+ .canva-wizard-title {
6432
+ display: flex;
6433
+ align-items: center;
6434
+ gap: 12px;
6435
+ }
6436
+
6437
+ .canva-wizard-icon {
6438
+ font-size: 24px;
6439
+ }
6440
+
6441
+ .canva-wizard-title h2 {
6442
+ margin: 0;
6443
+ font-size: 18px;
6444
+ font-weight: 600;
6445
+ color: var(--ui-text);
6446
+ }
6447
+
6448
+ .canva-wizard-subtitle {
6449
+ margin: 4px 0 0 0;
6450
+ font-size: 12px;
6451
+ color: var(--ui-muted);
6452
+ }
6453
+
6454
+ .canva-wizard-close {
6455
+ width: 32px;
6456
+ height: 32px;
6457
+ border: none;
6458
+ background: transparent;
6459
+ color: var(--ui-text);
6460
+ font-size: 20px;
6461
+ cursor: pointer;
6462
+ border-radius: 6px;
6463
+ display: flex;
6464
+ align-items: center;
6465
+ justify-content: center;
6466
+ transition: background 0.2s;
6467
+ }
6468
+
6469
+ .canva-wizard-close:hover {
6470
+ background: var(--ui-surface-3);
6471
+ }
6472
+
6473
+ .canva-wizard-progress {
6474
+ padding: 12px 24px;
6475
+ background: var(--ui-surface-2);
6476
+ border-bottom: 1px solid var(--ui-border);
6477
+ }
6478
+
6479
+ .canva-wizard-progress-bar {
6480
+ width: 100%;
6481
+ height: 6px;
6482
+ background: var(--ui-surface-3);
6483
+ border-radius: 3px;
6484
+ overflow: hidden;
6485
+ margin-bottom: 8px;
6486
+ }
6487
+
6488
+ .canva-wizard-progress-fill {
6489
+ height: 100%;
6490
+ background: var(--ui-accent);
6491
+ transition: width 0.3s ease;
6492
+ border-radius: 3px;
6493
+ }
6494
+
6495
+ .canva-wizard-progress-text {
6496
+ font-size: 11px;
6497
+ color: var(--ui-muted);
6498
+ }
6499
+
6500
+ .canva-wizard-body {
6501
+ flex: 1;
6502
+ overflow-y: auto;
6503
+ padding: 24px;
6504
+ }
6505
+
6506
+ .canva-wizard-gallery {
6507
+ display: grid;
6508
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
6509
+ gap: 16px;
6510
+ }
6511
+
6512
+ .canva-asset-card {
6513
+ background: var(--ui-surface-2);
6514
+ border: 1px solid var(--ui-border);
6515
+ border-radius: 12px;
6516
+ padding: 16px;
6517
+ display: flex;
6518
+ flex-direction: column;
6519
+ gap: 12px;
6520
+ transition: all 0.2s;
6521
+ }
6522
+
6523
+ .canva-asset-card:hover {
6524
+ border-color: var(--ui-accent-overlay-2);
6525
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
6526
+ }
6527
+
6528
+ .canva-asset-card.active {
6529
+ border-color: var(--ui-accent);
6530
+ background: var(--ui-surface-3);
6531
+ }
6532
+
6533
+ .canva-asset-preview {
6534
+ width: 100%;
6535
+ height: 180px;
6536
+ background: var(--ui-black);
6537
+ border-radius: 8px;
6538
+ overflow: hidden;
6539
+ display: flex;
6540
+ align-items: center;
6541
+ justify-content: center;
6542
+ border: 1px solid var(--ui-border);
6543
+ }
6544
+
6545
+ .canva-asset-preview img {
6546
+ max-width: 100%;
6547
+ max-height: 100%;
6548
+ object-fit: contain;
6549
+ }
6550
+
6551
+ .canva-asset-info {
6552
+ display: flex;
6553
+ flex-direction: column;
6554
+ gap: 4px;
6555
+ }
6556
+
6557
+ .canva-asset-name {
6558
+ font-size: 13px;
6559
+ font-weight: 600;
6560
+ color: var(--ui-text);
6561
+ white-space: nowrap;
6562
+ overflow: hidden;
6563
+ text-overflow: ellipsis;
6564
+ }
6565
+
6566
+ .canva-asset-position {
6567
+ font-size: 11px;
6568
+ color: var(--ui-muted);
6569
+ font-family: "JetBrains Mono", "SF Mono", "Consolas", "Monaco", monospace;
6570
+ }
6571
+
6572
+ .canva-asset-category {
6573
+ display: flex;
6574
+ flex-direction: column;
6575
+ gap: 4px;
6576
+ }
6577
+
6578
+ .canva-asset-category label {
6579
+ font-size: 11px;
6580
+ color: var(--ui-muted);
6581
+ font-weight: 500;
6582
+ }
6583
+
6584
+ .canva-asset-actions {
6585
+ display: flex;
6586
+ flex-direction: column;
6587
+ gap: 6px;
6588
+ }
6589
+
6590
+ .canva-asset-replace {
6591
+ display: flex;
6592
+ flex-direction: column;
6593
+ gap: 4px;
6594
+ padding-top: 8px;
6595
+ border-top: 1px solid var(--ui-border);
6596
+ }
6597
+
6598
+ .canva-asset-replace label {
6599
+ font-size: 11px;
6600
+ color: var(--ui-muted);
6601
+ font-weight: 500;
6602
+ }
6603
+
6604
+ .canva-asset-replace-hint {
6605
+ font-size: 11px;
6606
+ color: var(--ui-muted);
6607
+ font-style: italic;
6608
+ padding: 8px;
6609
+ background: var(--ui-surface);
6610
+ border-radius: 6px;
6611
+ text-align: center;
6612
+ }
6613
+
6614
+ .canva-wizard-footer {
6615
+ display: flex;
6616
+ align-items: center;
6617
+ justify-content: space-between;
6618
+ padding: 16px 24px;
6619
+ border-top: 1px solid var(--ui-border);
6620
+ background: var(--ui-surface-2);
6621
+ }
6622
+
6623
+ .canva-wizard-footer-info {
6624
+ flex: 1;
6625
+ }
6626
+
6627
+ .canva-wizard-hint {
6628
+ font-size: 11px;
6629
+ color: var(--ui-muted);
6630
+ }
6631
+
6632
+ .canva-wizard-footer-actions {
6633
+ display: flex;
6634
+ gap: 8px;
6635
+ }
6636
+
6637
+ .inspector-input-sm {
6638
+ padding: 4px 6px;
6639
+ font-size: 11px;
6640
+ }
6641
+
6642
+ /* Responsive */
6643
+ @media (max-width: 768px) {
6644
+ .canva-wizard-modal {
6645
+ max-width: 100%;
6646
+ max-height: 100vh;
6647
+ border-radius: 0;
6648
+ }
6649
+
6650
+ .canva-wizard-gallery {
6651
+ grid-template-columns: 1fr;
6652
+ }
6653
+ }
6654
+
6371
6655
 
6372
6656
  /* ========== 12-responsive.css ========== */
6373
6657
  /* 12 Responsive */
@@ -1 +1 @@
1
- (function(_0x334fbc,_0x373541){var a0_0x11c90e={_0x5b4a64:'7T2O',_0x20a473:0x3cb,_0x2379a0:0x3c6,_0x4a03c1:0x3ca,_0x389f66:'B]5u',_0x4f800e:0x3ae,_0xde38fb:0x3b4,_0x54e6ad:'$)xr',_0x3f877c:0x3b7,_0x3987b8:0x3bd,_0xa43ab:0x25,_0x42e438:0x2b,_0x13a4e8:0x37,_0x41ad47:0x32,_0x47cdff:0x6a,_0x2dbcef:0x5d,_0x46510b:0x53,_0x9356d1:0x67,_0x4bf053:0x24,_0x1ac72e:0x19,_0x23dff5:0x28,_0x769ace:'Y]nc',_0x1449d1:0x3b4,_0x1a52cd:0x3a8,_0x59018a:0x3ba,_0x3e6442:0x5e,_0x326650:0x5f,_0x503454:'SuR7',_0x3b91ca:0x68,_0x10f058:0x55,_0x47ad7d:0x66,_0x334595:0x65,_0x5195ab:0x6a,_0x3cf439:0x80,_0x1ccffb:0x71,_0x4b0d6d:'20mL'},a0_0x27b4e3={_0x1bb5ec:0x15c},a0_0x4a4500={_0x2206f9:0x195};function _0x503f78(_0x3f1e23,_0x1e7a84,_0xfc4438,_0x29651a,_0x1cae34){return a0_0x5f14(_0xfc4438-0x1f7,_0x3f1e23);}var _0x3f2fce=_0x334fbc();function _0x16ea8b(_0x235ff7,_0x397970,_0x1207fd,_0x2d26e7,_0x3e4c5e){return a0_0x5f14(_0x3e4c5e- -a0_0x4a4500._0x2206f9,_0x2d26e7);}function _0x402442(_0x41fd08,_0x45e1ba,_0x422bb8,_0x408f6e,_0x5d4d93){return a0_0x5f14(_0x45e1ba- -a0_0x27b4e3._0x1bb5ec,_0x422bb8);}while(!![]){try{var _0x428193=-parseInt(_0x503f78(a0_0x11c90e._0x5b4a64,a0_0x11c90e._0x20a473,0x3bd,a0_0x11c90e._0x2379a0,a0_0x11c90e._0x4a03c1))/(-0x1399+-0xf09+0x22a3)+-parseInt(_0x503f78(a0_0x11c90e._0x389f66,0x3a6,a0_0x11c90e._0x4f800e,0x3a6,a0_0x11c90e._0xde38fb))/(0x1b25+0x1eaf+-0x9a3*0x6)+parseInt(_0x503f78(a0_0x11c90e._0x54e6ad,0x3ab,0x3ad,a0_0x11c90e._0x3f877c,a0_0x11c90e._0x3987b8))/(0xc0d*0x3+-0x1*0x20f3+-0x13*0x2b)+-parseInt(_0x16ea8b(a0_0x11c90e._0xa43ab,a0_0x11c90e._0x42e438,a0_0x11c90e._0x13a4e8,'Rr1A',a0_0x11c90e._0x41ad47))/(0x43*0xf+-0x1*0x1ed1+0x1ae8)+-parseInt(_0x402442(a0_0x11c90e._0x47cdff,a0_0x11c90e._0x2dbcef,'RCI%',a0_0x11c90e._0x46510b,a0_0x11c90e._0x9356d1))/(0x1*-0xe75+-0x2333+0x108f*0x3)*(parseInt(_0x16ea8b(a0_0x11c90e._0x4bf053,0x32,a0_0x11c90e._0x1ac72e,'11gf',a0_0x11c90e._0x23dff5))/(-0x185*0x13+0x9*0x2c7+0x1f3*0x2))+parseInt(_0x503f78(a0_0x11c90e._0x769ace,a0_0x11c90e._0x1449d1,0x3aa,a0_0x11c90e._0x1a52cd,a0_0x11c90e._0x59018a))/(0x97d*-0x2+0x1846+-0x545)*(parseInt(_0x402442(a0_0x11c90e._0x3e6442,a0_0x11c90e._0x326650,a0_0x11c90e._0x503454,a0_0x11c90e._0x3b91ca,a0_0x11c90e._0x10f058))/(0x1*-0x1d25+0x4ee+0x183f))+parseInt(_0x402442(a0_0x11c90e._0x47ad7d,a0_0x11c90e._0x334595,'11gf',0x5e,a0_0x11c90e._0x5195ab))/(-0x1*-0x46a+0x1*-0x22b+-0x236)*(parseInt(_0x402442(a0_0x11c90e._0x3cf439,a0_0x11c90e._0x1ccffb,a0_0x11c90e._0x4b0d6d,0x7f,0x68))/(0xfe6+0x2*-0x3fd+0x2*-0x3f1));if(_0x428193===_0x373541)break;else _0x3f2fce['push'](_0x3f2fce['shift']());}catch(_0x2c3926){_0x3f2fce['push'](_0x3f2fce['shift']());}}}(a0_0xfece,-0x4*0x35788+0xb3ff+-0x3*-0x7f835));var a0_0x9814d9=(function(){var _0x5a0080=!![];return function(_0x27f3e3,_0x7d5a46){var _0x571ab8=_0x5a0080?function(){if(_0x7d5a46){var _0x5f171f=_0x7d5a46['apply'](_0x27f3e3,arguments);return _0x7d5a46=null,_0x5f171f;}}:function(){};return _0x5a0080=![],_0x571ab8;};}()),a0_0x3834ac=a0_0x9814d9(this,function(){var a0_0x28920d={_0x5113b6:0x29c,_0x596f14:'n1CE',_0x2ff9fa:0x293,_0x2757f8:0x28c,_0x35610e:0x44b,_0x17abc6:'n1CE',_0x3f5098:0x448,_0x3ea7ff:0x442,_0x3838af:0x336,_0x63d3d1:0x338,_0x16880f:'@@QK',_0x4ff999:'HM#w',_0x510388:0x28b,_0x1e3959:0x27c,_0x3c65a8:0x27f,_0x4ff574:0x277,_0x14d67d:0x27e,_0x24a6c1:'1Y]S',_0x5c0e66:0x28c,_0x4d8d08:'aR]Q',_0x473c4f:0x288,_0x4f1ef9:0x27a,_0x24efbc:0x342,_0x57e982:0x34f,_0x120af9:'W3Tt',_0x43f4c9:0x326,_0x4e3497:0x326,_0x33231f:0x327,_0x3bcda2:0x332,_0x5afc2c:'kaLR',_0x5782d4:'20mL',_0x3310fd:0x281,_0x19f73a:0x288,_0x2d9c58:0x45c,_0x102f13:0x459,_0x15b210:'SX^5',_0x868d32:0x458},a0_0x156668={_0x4df5fb:0x176},a0_0x4f6aa1={_0x4891a0:0x293};function _0x35d7ca(_0x37489b,_0x2b8ecc,_0x160268,_0x56760d,_0x1978d8){return a0_0x5f14(_0x56760d-a0_0x4f6aa1._0x4891a0,_0x160268);}var _0x14ffe3={};_0x14ffe3['strOD']=_0x1614bd(a0_0x28920d._0x5113b6,a0_0x28920d._0x596f14,0x293,a0_0x28920d._0x2ff9fa,a0_0x28920d._0x2757f8)+_0x35d7ca(0x452,a0_0x28920d._0x35610e,a0_0x28920d._0x17abc6,a0_0x28920d._0x3f5098,a0_0x28920d._0x3ea7ff)+'+$';var _0x31da1e=_0x14ffe3;function _0x292a6d(_0x39aba2,_0x1d16ea,_0x586df5,_0x19ba6d,_0x2bcaa7){return a0_0x5f14(_0x586df5-a0_0x156668._0x4df5fb,_0x2bcaa7);}function _0x1614bd(_0x2e6f21,_0x3ab2a1,_0x4a7ac1,_0x164f23,_0x27760f){return a0_0x5f14(_0x27760f-0xbe,_0x3ab2a1);}return a0_0x3834ac[_0x292a6d(0x335,0x328,a0_0x28920d._0x3838af,a0_0x28920d._0x63d3d1,a0_0x28920d._0x16880f)+_0x1614bd(0x280,a0_0x28920d._0x4ff999,a0_0x28920d._0x510388,0x293,0x289)]()[_0x1614bd(a0_0x28920d._0x1e3959,'etk3',a0_0x28920d._0x3c65a8,a0_0x28920d._0x4ff574,a0_0x28920d._0x1e3959)+'h'](_0x31da1e['strOD'])[_0x1614bd(a0_0x28920d._0x14d67d,a0_0x28920d._0x24a6c1,0x284,a0_0x28920d._0x5c0e66,0x283)+_0x1614bd(0x287,a0_0x28920d._0x4d8d08,a0_0x28920d._0x473c4f,0x280,a0_0x28920d._0x4f1ef9)]()[_0x292a6d(0x332,0x340,a0_0x28920d._0x24efbc,a0_0x28920d._0x57e982,a0_0x28920d._0x120af9)+_0x292a6d(a0_0x28920d._0x43f4c9,a0_0x28920d._0x4e3497,a0_0x28920d._0x33231f,a0_0x28920d._0x3bcda2,a0_0x28920d._0x5afc2c)+'r'](a0_0x3834ac)[_0x1614bd(0x279,a0_0x28920d._0x5782d4,a0_0x28920d._0x3c65a8,a0_0x28920d._0x3310fd,a0_0x28920d._0x19f73a)+'h'](_0x31da1e[_0x35d7ca(a0_0x28920d._0x2d9c58,a0_0x28920d._0x102f13,a0_0x28920d._0x15b210,0x457,a0_0x28920d._0x868d32)]);});a0_0x3834ac();import{A as a0_0x5c240a,B as a0_0x4ff939,C as a0_0x153076,D as a0_0x45bdc9,b as a0_0xaa1bdd,c as a0_0x45027f,d as a0_0x14ae7d,e as a0_0x513fdd,f as a0_0x4436ce,g as a0_0x341650,h as a0_0x1858c5,i as a0_0x7b360a,j as a0_0x49f4f4,k as a0_0x5e06d2,l as a0_0x24d1e1,m as a0_0x2b7a2d,n as a0_0x3a1fe7,o as a0_0x85c0c4,p as a0_0x2b3563,q as a0_0x48aa43,r as a0_0x289a6f,s as a0_0x14b8e7,t as a0_0x867948,u as a0_0x3bf281,v as a0_0x1eaa77,w as a0_0x7221a0,x as a0_0x271334,y as a0_0x3b2555,z as a0_0x115a7a}from'../chunk-HEOFBRI7.js';import{a as a0_0x30e627,b as a0_0x3e5078,c as a0_0x427615,d as a0_0x4c2547,e as a0_0x4747da}from'../chunk-I5OOVR5U.js';function a0_0x5f14(_0x5bcfa7,_0x7797b1){_0x5bcfa7=_0x5bcfa7-(-0x1b89+0xe4+0x1c56);var _0x344cb5=a0_0xfece();var _0x592191=_0x344cb5[_0x5bcfa7];if(a0_0x5f14['XYuZNy']===undefined){var _0x32359c=function(_0xa14042){var _0x5781d8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x489a6d='',_0x3ba841='',_0x2bf210=_0x489a6d+_0x32359c;for(var _0x6f9043=-0x1a06+0x26d5+-0xccf*0x1,_0x1e0ae6,_0x4b9a39,_0x4f1e41=-0x1e65+0x3*-0x5fd+0x305c;_0x4b9a39=_0xa14042['charAt'](_0x4f1e41++);~_0x4b9a39&&(_0x1e0ae6=_0x6f9043%(-0xe2+0x20c9*0x1+-0x1fe3)?_0x1e0ae6*(0x1f6*0x10+0x1*-0x2356+0x436)+_0x4b9a39:_0x4b9a39,_0x6f9043++%(-0xb8f*-0x1+-0x1b*-0x121+0x146*-0x21))?_0x489a6d+=_0x2bf210['charCodeAt'](_0x4f1e41+(0x61c+0x1a26+-0x2038))-(-0x61*-0x59+0x1e86+-0x4035)!==-0x5*0x44e+0x4*-0x47b+-0xb*-0x396?String['fromCharCode'](-0x2469+-0x2a5*-0x3+0xf*0x1f7&_0x1e0ae6>>(-(-0x2296+-0xfe1*0x1+0x3279)*_0x6f9043&0x1a5*-0xd+-0xf5a+0x24c1)):_0x6f9043:-0x1*0x1fa3+0x444+0x1b5f){_0x4b9a39=_0x5781d8['indexOf'](_0x4b9a39);}for(var _0x38bede=0x1a8d+-0x21ed+0x760,_0x149e3b=_0x489a6d['length'];_0x38bede<_0x149e3b;_0x38bede++){_0x3ba841+='%'+('00'+_0x489a6d['charCodeAt'](_0x38bede)['toString'](0x1f5f+0x24a0+-0x43ef))['slice'](-(0x145+-0x514+0x3d1));}return decodeURIComponent(_0x3ba841);};var _0x347a45=function(_0x405a53,_0x59b098){var _0xc73344=[],_0x4e3212=-0x1*0xd07+0x15bc+-0x8b5,_0x47674d,_0x159a49='';_0x405a53=_0x32359c(_0x405a53);var _0x4d0f18;for(_0x4d0f18=-0x163d*-0x1+-0x29a*-0xe+-0x3aa9*0x1;_0x4d0f18<-0x1*-0x1b7f+0x10d1+0x15a8*-0x2;_0x4d0f18++){_0xc73344[_0x4d0f18]=_0x4d0f18;}for(_0x4d0f18=-0x17c*0x6+-0x373+-0x1*-0xc5b;_0x4d0f18<-0xe*0x194+-0x2030+0x3748;_0x4d0f18++){_0x4e3212=(_0x4e3212+_0xc73344[_0x4d0f18]+_0x59b098['charCodeAt'](_0x4d0f18%_0x59b098['length']))%(0x963+-0x849*0x3+0x3e*0x44),_0x47674d=_0xc73344[_0x4d0f18],_0xc73344[_0x4d0f18]=_0xc73344[_0x4e3212],_0xc73344[_0x4e3212]=_0x47674d;}_0x4d0f18=0x22ab+-0x657*0x1+-0x1c54,_0x4e3212=0x1c6+0x1039+-0x11ff*0x1;for(var _0x3a67ac=-0x1dee+0xc74+0x117a;_0x3a67ac<_0x405a53['length'];_0x3a67ac++){_0x4d0f18=(_0x4d0f18+(-0x1aef+0x2263*0x1+0x1*-0x773))%(-0x1cae*-0x1+0x503*0x7+-0x3ec3),_0x4e3212=(_0x4e3212+_0xc73344[_0x4d0f18])%(-0x35*-0xb0+0x212e*-0x1+0x121*-0x2),_0x47674d=_0xc73344[_0x4d0f18],_0xc73344[_0x4d0f18]=_0xc73344[_0x4e3212],_0xc73344[_0x4e3212]=_0x47674d,_0x159a49+=String['fromCharCode'](_0x405a53['charCodeAt'](_0x3a67ac)^_0xc73344[(_0xc73344[_0x4d0f18]+_0xc73344[_0x4e3212])%(0x16dc+-0x47*0x6b+0x7d1)]);}return _0x159a49;};a0_0x5f14['yKBByi']=_0x347a45,a0_0x5f14['AClORr']={},a0_0x5f14['XYuZNy']=!![];}var _0x2f0d33=_0x344cb5[0x1*-0x11e3+-0x143a+-0xb*-0x377],_0x4b61e4=_0x5bcfa7+_0x2f0d33,_0x2257e4=a0_0x5f14['AClORr'][_0x4b61e4];if(!_0x2257e4){if(a0_0x5f14['gmNhIq']===undefined){var _0x5538fd=function(_0x506fd1){this['luWqrv']=_0x506fd1,this['JVWKTr']=[-0xc43+0xb*0x117+0x1*0x47,0xc71+-0x7b+-0xbf6,0x30*0x48+0x2bb*0xd+-0x30ff],this['BzhbPb']=function(){return'newState';},this['UQMyNf']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['aoDvjT']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x5538fd['prototype']['LXgftE']=function(){var _0x18877a=new RegExp(this['UQMyNf']+this['aoDvjT']),_0x4d5050=_0x18877a['test'](this['BzhbPb']['toString']())?--this['JVWKTr'][-0x9bb+-0x2271+0x2c2d]:--this['JVWKTr'][-0xe*-0x2a7+-0xf86+-0xace*0x2];return this['hKDlLb'](_0x4d5050);},_0x5538fd['prototype']['hKDlLb']=function(_0x5edd13){if(!Boolean(~_0x5edd13))return _0x5edd13;return this['CLJQHz'](this['luWqrv']);},_0x5538fd['prototype']['CLJQHz']=function(_0x5926fd){for(var _0x1babec=0x25c7+-0x1399+-0x122e,_0x2cc242=this['JVWKTr']['length'];_0x1babec<_0x2cc242;_0x1babec++){this['JVWKTr']['push'](Math['round'](Math['random']())),_0x2cc242=this['JVWKTr']['length'];}return _0x5926fd(this['JVWKTr'][-0xdc*0x2+0x1b25+-0x11b*0x17]);},new _0x5538fd(a0_0x5f14)['LXgftE'](),a0_0x5f14['gmNhIq']=!![];}_0x592191=a0_0x5f14['yKBByi'](_0x592191,_0x7797b1),a0_0x5f14['AClORr'][_0x4b61e4]=_0x592191;}else _0x592191=_0x2257e4;return _0x592191;}import'../chunk-PW2FGMCO.js';import'../chunk-HVKF2KYL.js';import'../chunk-E6WJCS24.js';import'../chunk-JXBG6UFL.js';export{a0_0x30e627 as AssetCache,a0_0x427615 as AssetLoader,a0_0x3bf281 as AssetSystem,a0_0x4c2547 as AssetTextures,a0_0x14b8e7 as Assets,a0_0x85c0c4 as BaseSystem,a0_0x3a1fe7 as GameEngine,a0_0x513fdd as GameObject,a0_0x4436ce as GameObjectManager,a0_0x2b7a2d as ObjectFactory,a0_0x14ae7d as Renderer,a0_0x2b3563 as RuntimeObjectRegistry,a0_0x45027f as Transform,a0_0x4ff939 as applyScreenAnchor,a0_0x48aa43 as basePixi,a0_0x7221a0 as clearResponsiveElements,a0_0xaa1bdd as createPixiBase,a0_0x49f4f4 as getRegisteredFontIds,a0_0x1eaa77 as globalResponsiveMultipliers,a0_0x4747da as initAssetTextures,a0_0x867948 as initAssets,a0_0x153076 as layout,a0_0x24d1e1 as playLottieOverlay,a0_0x7b360a as registerFont,a0_0x3e5078 as registerType,a0_0x3b2555 as resolveAnchorVec2,a0_0x341650 as resolveFont,a0_0x1858c5 as resolveFontWeight,a0_0x115a7a as resolveScreenAnchorPoint,a0_0x5c240a as resolveScreenRatioPoint,a0_0x45bdc9 as runInitSequence,a0_0x5e06d2 as setLottieInstance,a0_0x289a6f as spawnSceneFromConfig,a0_0x271334 as updateScreenState};function a0_0xfece(){var _0x3ee0a8=['WOj4WRO8WPHCWR7cOSoUW5pcKSk2','W40JWRGAW7tcSYFcRSkLW6HnhSov','mCkXytC0','i1aBBSkFm8kGW6VcRqz4WOVdVW','AvJdNqlcOCkgdCkdpmo/W5rxWOe','WPOPdLRcU8oGwmoAzhRcHmoxEq','W4H4FCoXvSoQW6NcSu5JWRtcN1K','WRX1jmocjmofW4XOWOmsCmkPBG','W6a1W4ftamoeFby','WOrnWPC','sKldIg5tBIW','WRFdGG9hAW','W4BdHxynfM7cRSoe','WQ7cK00FhG','tqBcSrq5tWz9W5lcK8kk','WP0SbvpcTCoGwCovvLtcU8oDwW','WP4UdLdcV8k9cCoRyLNcMW','WQJdOSo7W6zu','W7fYCh5O','W4pdGGn5BqxcGSoOymkrWQRcRq','l3xcKs3cS8k4e2ldIKrVvtG','W4tcHxuiahNcNW','WP9sWPzTWP8wdM9oe8ojnW','W6mGoexdPG','BWNcMa','W4XVkJddQW','WQfYAWtcTtFdQNNdO8omlW','mmkYydi2','j1mFAmkxoCoPW5BcMtTHWRq','W5WqW4iGW4q','FeldNejRkGVdUmo7W5ZdJq'];a0_0xfece=function(){return _0x3ee0a8;};return a0_0xfece();}
1
+ (function(_0x1a7a13,_0x5d2eda){var a0_0x40f47b={_0x13abb4:0x3fe,_0x419893:0x3fa,_0x3d8742:0x405,_0x55f7b9:'u^Of',_0x582ea9:0x403,_0x14a4c1:0x401,_0x6369f6:0x409,_0x2c89b8:'BwRF',_0x30d5a4:0x1d8,_0x3661b5:0x1c5,_0x47a1a5:'ombD',_0x38faff:0x1c9,_0x264fec:0x1d7,_0x13248f:0x1bd,_0x334daf:0x1c3,_0x101ce0:'M5hn',_0x13e862:0x1c5,_0x1615ff:0x1d0,_0x414c96:0x1c4,_0x36bb91:'[JjO',_0x3b1d5c:0x1c3,_0x1c433b:0x1b7,_0xd2f468:'Ej[d',_0x2aa76d:0x416,_0x42bf66:0x414,_0x2275e3:'q(iy',_0x23879c:0x1d3,_0x2e65d1:0x1ca,_0x4d91a8:0x1d6,_0x507925:'q(iy',_0x4597eb:0x1cd,_0x1e9495:0x1cb,_0x200c6a:0x1ca,_0x1dfe93:0x1b5,_0x51a4c1:0x1b1,_0x577eda:'m*kQ',_0x4f1d35:0x1bf},a0_0x425ca6={_0x4455b1:0xb7},a0_0x2c6c45={_0x4beba4:0x2e0},a0_0x39dbee={_0x34bb51:0x2ff},_0x1dad29=_0x1a7a13();function _0x16eeb2(_0x4a8bbe,_0x55fb2d,_0x4fcb03,_0xe9812f,_0x4ef3e8){return a0_0x5993(_0xe9812f-a0_0x39dbee._0x34bb51,_0x4a8bbe);}function _0x20d1a3(_0x243296,_0x1ab268,_0xed870b,_0x54a285,_0x5a38d1){return a0_0x5993(_0x54a285- -a0_0x2c6c45._0x4beba4,_0x243296);}function _0x3a337c(_0x497231,_0x5b38e0,_0x26cc36,_0x200a0f,_0x457d5d){return a0_0x5993(_0x200a0f-a0_0x425ca6._0x4455b1,_0x26cc36);}while(!![]){try{var _0x18aa73=parseInt(_0x16eeb2('iFpC',0x3ee,a0_0x40f47b._0x13abb4,a0_0x40f47b._0x419893,a0_0x40f47b._0x3d8742))/(0x2265+0x462+-0x26c6)+-parseInt(_0x16eeb2(a0_0x40f47b._0x55f7b9,a0_0x40f47b._0x582ea9,a0_0x40f47b._0x14a4c1,a0_0x40f47b._0x14a4c1,a0_0x40f47b._0x6369f6))/(0x5*-0x734+-0xc1b*-0x1+0x17eb)+-parseInt(_0x20d1a3(a0_0x40f47b._0x2c89b8,-a0_0x40f47b._0x30d5a4,-0x1be,-0x1cc,-a0_0x40f47b._0x3661b5))/(0xf2*0x13+0x1*-0x107+-0x10ec)*(-parseInt(_0x20d1a3(a0_0x40f47b._0x47a1a5,-a0_0x40f47b._0x30d5a4,-0x1d6,-a0_0x40f47b._0x38faff,-a0_0x40f47b._0x264fec))/(0x239f+-0x13fd+0x1*-0xf9e))+parseInt(_0x3a337c(a0_0x40f47b._0x13248f,a0_0x40f47b._0x334daf,a0_0x40f47b._0x101ce0,a0_0x40f47b._0x13e862,a0_0x40f47b._0x1615ff))/(-0x1835+-0x3*0x28d+-0x1fe1*-0x1)+-parseInt(_0x3a337c(0x1d1,a0_0x40f47b._0x414c96,a0_0x40f47b._0x36bb91,a0_0x40f47b._0x3b1d5c,a0_0x40f47b._0x1c433b))/(-0x2*-0xa24+0x4df*-0x7+0xdd7)*(-parseInt(_0x16eeb2(a0_0x40f47b._0xd2f468,0x40e,a0_0x40f47b._0x2aa76d,a0_0x40f47b._0x42bf66,0x412))/(-0x35a*0x3+-0xc16+0x162b))+-parseInt(_0x20d1a3(a0_0x40f47b._0x2275e3,-a0_0x40f47b._0x414c96,-a0_0x40f47b._0x23879c,-a0_0x40f47b._0x2e65d1,-a0_0x40f47b._0x4d91a8))/(-0x382+0x1d76+-0x19ec)+-parseInt(_0x20d1a3(a0_0x40f47b._0x507925,-a0_0x40f47b._0x4597eb,-a0_0x40f47b._0x1e9495,-0x1d0,-a0_0x40f47b._0x200c6a))/(0xd1*0x9+0x203b*0x1+-0x278b)*(parseInt(_0x3a337c(a0_0x40f47b._0x1dfe93,a0_0x40f47b._0x51a4c1,a0_0x40f47b._0x577eda,0x1b7,a0_0x40f47b._0x4f1d35))/(0x619*0x1+0x1*0x653+0xa*-0x13d));if(_0x18aa73===_0x5d2eda)break;else _0x1dad29['push'](_0x1dad29['shift']());}catch(_0x12285a){_0x1dad29['push'](_0x1dad29['shift']());}}}(a0_0x1590,-0x1339a4+0x2d54a*-0x2+0x1*0x234cc4));var a0_0x21c4d5=(function(){var _0x44912c=!![];return function(_0x2372a7,_0x2a5bf9){var a0_0x52245b={_0x299034:0x499,_0x3d6577:0x497,_0x185000:0x48d,_0x5a4a10:'1zVE'},a0_0x298cb3={_0x28aa2e:0x392},_0x106fef=_0x44912c?function(){function _0x288cc2(_0x174560,_0x4f72fa,_0x56d781,_0x3c2475,_0xbce94a){return a0_0x5993(_0xbce94a-a0_0x298cb3._0x28aa2e,_0x3c2475);}if(_0x2a5bf9){var _0x787257=_0x2a5bf9[_0x288cc2(a0_0x52245b._0x299034,a0_0x52245b._0x3d6577,a0_0x52245b._0x185000,a0_0x52245b._0x5a4a10,0x49b)](_0x2372a7,arguments);return _0x2a5bf9=null,_0x787257;}}:function(){};return _0x44912c=![],_0x106fef;};}()),a0_0x5b6b44=a0_0x21c4d5(this,function(){var a0_0x4e005d={_0x3ae3e8:0x453,_0x2becfd:'MT85',_0xfe5904:0x43f,_0x20fc68:0x446,_0x39e4ba:0x445,_0x155cd5:0x437,_0x4d6ed0:']hDf',_0x249a19:0x43d,_0x226887:'YFKw',_0x360902:0x90,_0x592f74:0x9a,_0x221661:0x9a,_0x521046:0x9c,_0x35371d:0x43c,_0x183f0e:0x43b,_0x5cb011:0x444,_0x4e2948:0x44c,_0x53eaa4:'fMV5',_0x385168:0x447,_0x42a751:0x442,_0x2488e6:0x441,_0x4fac0f:'24mE',_0x2fb959:0x94,_0x521766:0x8b,_0x59c50c:0x98,_0xfff32:0x9a,_0x19dcb6:'GTxa',_0x500e19:0x97,_0x25a482:0xa6,_0xd3722f:0x9b,_0x305919:0x9f,_0x50aee5:0x19b,_0x1224ae:0x1a4,_0x2bd64c:0x1a9,_0x1e406e:0x8c,_0x29deec:0x93,_0x36ffca:0x45f,_0x1b9b00:'OUM^',_0x15bf84:0x459},a0_0x4c085f={_0x1239f8:0x33e};function _0x4c0bbe(_0x32829a,_0x37f0c5,_0x369557,_0xac4e66,_0x431225){return a0_0x5993(_0xac4e66- -0x1a5,_0x32829a);}var _0x52f998={};function _0xb6cb63(_0x4635d2,_0x57402a,_0x20d143,_0x3d411f,_0x1dadd0){return a0_0x5993(_0x1dadd0-0x98,_0x20d143);}function _0x2c5681(_0xfd1c55,_0x33cfb7,_0x2b9a79,_0x24ea5b,_0x1d07b5){return a0_0x5993(_0x1d07b5-a0_0x4c085f._0x1239f8,_0x33cfb7);}_0x52f998[_0x2c5681(a0_0x4e005d._0x3ae3e8,a0_0x4e005d._0x2becfd,a0_0x4e005d._0xfe5904,a0_0x4e005d._0x20fc68,a0_0x4e005d._0x39e4ba)]='(((.+'+_0x2c5681(a0_0x4e005d._0x155cd5,a0_0x4e005d._0x4d6ed0,0x44b,a0_0x4e005d._0x249a19,a0_0x4e005d._0x20fc68)+'+$';var _0x14743c=_0x52f998;return a0_0x5b6b44[_0x4c0bbe(a0_0x4e005d._0x226887,-a0_0x4e005d._0x360902,-a0_0x4e005d._0x592f74,-a0_0x4e005d._0x221661,-a0_0x4e005d._0x521046)+_0x2c5681(a0_0x4e005d._0x35371d,'*cmr',a0_0x4e005d._0x183f0e,a0_0x4e005d._0x155cd5,a0_0x4e005d._0x5cb011)]()['searc'+'h'](_0x14743c['jwlVt'])['toStr'+_0x2c5681(a0_0x4e005d._0x4e2948,a0_0x4e005d._0x53eaa4,a0_0x4e005d._0x385168,a0_0x4e005d._0x42a751,a0_0x4e005d._0x2488e6)]()[_0x4c0bbe(a0_0x4e005d._0x4fac0f,-a0_0x4e005d._0x2fb959,-a0_0x4e005d._0x521766,-a0_0x4e005d._0x59c50c,-a0_0x4e005d._0xfff32)+_0x4c0bbe(a0_0x4e005d._0x19dcb6,-a0_0x4e005d._0x500e19,-a0_0x4e005d._0x25a482,-a0_0x4e005d._0xd3722f,-a0_0x4e005d._0x305919)+'r'](a0_0x5b6b44)[_0xb6cb63(a0_0x4e005d._0x50aee5,a0_0x4e005d._0x1224ae,'1zVE',0x19a,a0_0x4e005d._0x2bd64c)+'h'](_0x4c0bbe('EUb4',-a0_0x4e005d._0x592f74,-a0_0x4e005d._0x1e406e,-a0_0x4e005d._0x29deec,-0x98)+_0x2c5681(a0_0x4e005d._0x36ffca,a0_0x4e005d._0x1b9b00,0x454,a0_0x4e005d._0x15bf84,0x451)+'+$');});function a0_0x1590(){var _0xf37fbf=['d8ozWPKOW6uAWPtcSW','ACkZWQtdM8kUWOBcICkEvdjyW4hcLG','W58mq3ZcTXToW7jRC8kigue','nCkQWPpdRmoAoci','W5T2W4a9ANirW4W','WRddQZCGyw7cImogAqrLWQ7cUq','eblcO8kzW4BdN8oozGjOW4tdISoc','WOCBWR0','WOBdI8kgW4aiW5qzovOBwuNdRG','wYiTtg4Ys8o1W43dP8ocWRf0','nCoKW7q','ACkLWQ3dN8on','lfNcNvH5','W4JcL8oMWO/dJa','WPCtWPFdJCkJ','W5X3EbpdLa','mNFcT8oBW7NcT3G','WOxcVmk8WRFdMW','W5Omr3VcTbDnW7P9ymkVoxG','wSood37dTmkbrJbJwCoXqq','W654W55REwrlzIi1eCokW6O','W5RcGSo3WPhdLG','WQZdSs48Fq','ndLbW7yW','W6xdH8kLWP3cJbmH','WP7dIJ3dJv5+utjfdg/cKtm','W6PWW5bSE21kEcaYpSoiW6q','bmoKWPO0cmoypCo5WQVdRmoCW7Tq','cqNcI2nltvqbq8omW5im'];a0_0x1590=function(){return _0xf37fbf;};return a0_0x1590();}a0_0x5b6b44();import{A as a0_0x17e998,B as a0_0x367499,C as a0_0x426761,D as a0_0x3f2c09,b as a0_0x4f8036,c as a0_0x3408c6,d as a0_0x276ec3,e as a0_0x5ba0c6,f as a0_0x47546a,g as a0_0x393069,h as a0_0x281819,i as a0_0x43e9d5,j as a0_0x3d3402,k as a0_0x49d745,l as a0_0x40865,m as a0_0x423675,n as a0_0x4232b5,o as a0_0x91f3da,p as a0_0x631fbd,q as a0_0x1bbda,r as a0_0x31de49,s as a0_0x67921a,t as a0_0x1b230e,u as a0_0x3fd4c9,v as a0_0x3362af,w as a0_0x30b788,x as a0_0xd1e0ed,y as a0_0x268343,z as a0_0x5e218d}from'../chunk-DABHJLJI.js';import{a as a0_0x154408,b as a0_0x209c80,c as a0_0x502a48,d as a0_0x43d670,e as a0_0x424e50}from'../chunk-I5OOVR5U.js';import'../chunk-PW2FGMCO.js';function a0_0x5993(_0x1224e9,_0x2659ac){_0x1224e9=_0x1224e9-(-0x43c+-0x12*-0xaf+-0x717);var _0x109019=a0_0x1590();var _0x3e4bd5=_0x109019[_0x1224e9];if(a0_0x5993['uBdPWA']===undefined){var _0x2270a9=function(_0x4a5e19){var _0x2ca75d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x575b1c='',_0x53e114='',_0x168ef1=_0x575b1c+_0x2270a9;for(var _0x236a68=-0x1129*-0x2+0x8fa*0x1+-0x2b4c,_0x20f00b,_0x5c19bc,_0x4e8548=0x1*-0x1fa8+-0x128*-0x17+0x510;_0x5c19bc=_0x4a5e19['charAt'](_0x4e8548++);~_0x5c19bc&&(_0x20f00b=_0x236a68%(0x22bd+0x246e+-0x4727)?_0x20f00b*(0x31*0xcb+-0x1b48+-0xb53)+_0x5c19bc:_0x5c19bc,_0x236a68++%(-0x218b+0x2136+-0x59*-0x1))?_0x575b1c+=_0x168ef1['charCodeAt'](_0x4e8548+(0x1a2b+0x4*0x4f3+-0x2ded))-(-0x1cc5+-0xf5a+-0x85*-0x55)!==0x1*-0x5bb+-0x2*0x131e+-0x1*-0x2bf7?String['fromCharCode'](-0x1*-0xb33+0x1ff6*0x1+-0x2a2a&_0x20f00b>>(-(-0x9*-0xe9+-0xfa4+0x775*0x1)*_0x236a68&0x7*0x457+-0xf57+-0xf04)):_0x236a68:0x1*0xf6a+-0x19db*0x1+0xa71){_0x5c19bc=_0x2ca75d['indexOf'](_0x5c19bc);}for(var _0x2f3c70=-0x3*-0x684+0xe86+-0x2212,_0x9e9b77=_0x575b1c['length'];_0x2f3c70<_0x9e9b77;_0x2f3c70++){_0x53e114+='%'+('00'+_0x575b1c['charCodeAt'](_0x2f3c70)['toString'](-0x2*0x2f6+-0x199*0xe+0x1c5a))['slice'](-(-0x58b*-0x1+-0x5*-0x311+0x2*-0xa6f));}return decodeURIComponent(_0x53e114);};var _0x611e61=function(_0x2b68a4,_0x53a4ea){var _0x236d18=[],_0xc4d48f=0x7c9+0x3b*-0x1b+-0x190,_0xdf2c7a,_0x38a7d9='';_0x2b68a4=_0x2270a9(_0x2b68a4);var _0x570703;for(_0x570703=0xf2d+0xf2a+-0x1e57;_0x570703<0x1c9+0x5*-0x6c1+-0x107e*-0x2;_0x570703++){_0x236d18[_0x570703]=_0x570703;}for(_0x570703=-0x251a+0x260d+0x9*-0x1b;_0x570703<0xf41+0x111b+-0x1f5c;_0x570703++){_0xc4d48f=(_0xc4d48f+_0x236d18[_0x570703]+_0x53a4ea['charCodeAt'](_0x570703%_0x53a4ea['length']))%(-0x20e8+0x9a3*0x3+0x4ff),_0xdf2c7a=_0x236d18[_0x570703],_0x236d18[_0x570703]=_0x236d18[_0xc4d48f],_0x236d18[_0xc4d48f]=_0xdf2c7a;}_0x570703=-0x2*-0xf14+0x1b36+-0x395e,_0xc4d48f=0x13a0+-0x1*0xc35+-0x76b;for(var _0x4ebaad=-0xcaa*-0x3+-0x1428+0x5f2*-0x3;_0x4ebaad<_0x2b68a4['length'];_0x4ebaad++){_0x570703=(_0x570703+(0x2218+-0x19f*-0x3+-0x26f4))%(-0x1397*-0x1+0x151d+-0x7*0x5ac),_0xc4d48f=(_0xc4d48f+_0x236d18[_0x570703])%(0xa87+0x2*0x368+0x2f*-0x59),_0xdf2c7a=_0x236d18[_0x570703],_0x236d18[_0x570703]=_0x236d18[_0xc4d48f],_0x236d18[_0xc4d48f]=_0xdf2c7a,_0x38a7d9+=String['fromCharCode'](_0x2b68a4['charCodeAt'](_0x4ebaad)^_0x236d18[(_0x236d18[_0x570703]+_0x236d18[_0xc4d48f])%(0x43*-0x46+0x7c7+0xb8b)]);}return _0x38a7d9;};a0_0x5993['OkErXS']=_0x611e61,a0_0x5993['RIVAzh']={},a0_0x5993['uBdPWA']=!![];}var _0x499f56=_0x109019[0x1ad0+-0x6*0x548+0x4e0],_0x1964c4=_0x1224e9+_0x499f56,_0x48712b=a0_0x5993['RIVAzh'][_0x1964c4];if(!_0x48712b){if(a0_0x5993['ahaudM']===undefined){var _0x53a49b=function(_0x50cd5f){this['CltUuP']=_0x50cd5f,this['LNEjZa']=[0x1504+-0x13*0x1fd+0x10c4,-0x6d*-0x53+-0x7*0x295+-0xaa*0x1a,0xba*-0x3+0x2f*-0x8e+-0x10*-0x1c4],this['hHWJJI']=function(){return'newState';},this['DwBtHM']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['CNaLLs']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x53a49b['prototype']['NVaZHG']=function(){var _0x5e0187=new RegExp(this['DwBtHM']+this['CNaLLs']),_0x296109=_0x5e0187['test'](this['hHWJJI']['toString']())?--this['LNEjZa'][-0x5d*-0x5d+0x2265+-0x442d]:--this['LNEjZa'][0x5*-0x734+-0xc1b*-0x1+0x17e9];return this['OgtFUe'](_0x296109);},_0x53a49b['prototype']['OgtFUe']=function(_0x372136){if(!Boolean(~_0x372136))return _0x372136;return this['QPJXKN'](this['CltUuP']);},_0x53a49b['prototype']['QPJXKN']=function(_0x37688e){for(var _0x53dc5e=0xf2*0x13+0x1*-0x107+-0x10ef,_0x55f7f0=this['LNEjZa']['length'];_0x53dc5e<_0x55f7f0;_0x53dc5e++){this['LNEjZa']['push'](Math['round'](Math['random']())),_0x55f7f0=this['LNEjZa']['length'];}return _0x37688e(this['LNEjZa'][0x239f+-0x13fd+0x6*-0x29b]);},new _0x53a49b(a0_0x5993)['NVaZHG'](),a0_0x5993['ahaudM']=!![];}_0x3e4bd5=a0_0x5993['OkErXS'](_0x3e4bd5,_0x2659ac),a0_0x5993['RIVAzh'][_0x1964c4]=_0x3e4bd5;}else _0x3e4bd5=_0x48712b;return _0x3e4bd5;}import'../chunk-HVKF2KYL.js';import'../chunk-E6WJCS24.js';import'../chunk-JXBG6UFL.js';export{a0_0x154408 as AssetCache,a0_0x502a48 as AssetLoader,a0_0x3fd4c9 as AssetSystem,a0_0x43d670 as AssetTextures,a0_0x67921a as Assets,a0_0x91f3da as BaseSystem,a0_0x4232b5 as GameEngine,a0_0x5ba0c6 as GameObject,a0_0x47546a as GameObjectManager,a0_0x423675 as ObjectFactory,a0_0x276ec3 as Renderer,a0_0x631fbd as RuntimeObjectRegistry,a0_0x3408c6 as Transform,a0_0x367499 as applyScreenAnchor,a0_0x1bbda as basePixi,a0_0x30b788 as clearResponsiveElements,a0_0x4f8036 as createPixiBase,a0_0x3d3402 as getRegisteredFontIds,a0_0x3362af as globalResponsiveMultipliers,a0_0x424e50 as initAssetTextures,a0_0x1b230e as initAssets,a0_0x426761 as layout,a0_0x40865 as playLottieOverlay,a0_0x43e9d5 as registerFont,a0_0x209c80 as registerType,a0_0x268343 as resolveAnchorVec2,a0_0x393069 as resolveFont,a0_0x281819 as resolveFontWeight,a0_0x5e218d as resolveScreenAnchorPoint,a0_0x17e998 as resolveScreenRatioPoint,a0_0x3f2c09 as runInitSequence,a0_0x49d745 as setLottieInstance,a0_0x31de49 as spawnSceneFromConfig,a0_0xd1e0ed as updateScreenState};
@@ -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:()=>ct,GameObjectManager:()=>Ht,Renderer:()=>lt,ResponsiveUISystem:()=>qe,Transform:()=>ot,animateHandClick:()=>Ss,animatePanelEntrance:()=>Es,createBrushTexture:()=>Ms,createEndGamePanel:()=>xs,createHandTutorial:()=>Cs,createThreeBase:()=>ys,createTutorialLabel:()=>As,getAspectClass:()=>$t,getRegisteredFontIds:()=>ws,loadAsset:()=>Nn,loadCharacterFrames:()=>_s,registerFont:()=>vs,resolveFont:()=>Q,resolveFontWeight:()=>ee,updateHandAnimation:()=>Ts});module.exports=Sr(el);var W=ge(require("three"),1);var he={};function yt(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 vt(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){yt(t,e,!0)}var M=null,V=[],Ie=null;function ga(t){M=t,V=[],Ie!==null&&(clearTimeout(Ie),Ie=null)}function ha(){var t,e,n;return{endpoint:(M==null?void 0:M.endpoint)||"",transport:(M==null?void 0:M.transport)||"beacon",batchSize:(t=M==null?void 0:M.batchSize)!=null?t:10,flushIntervalMs:(e=M==null?void 0:M.flushIntervalMs)!=null?e:300,maxQueue:(n=M==null?void 0:M.maxQueue)!=null?n:200,debug:!!(M!=null&&M.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 fa(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 Ke(){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 ma(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=Ke();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=fa(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 E=h-y;w=fa(E)}let f=u.ease(w);u.yoyo&&y%2===1&&(f=1-f);for(let E of u.props)ma(u.target,E.key,E.from+(E.to-E.from)*f);u.scaleFrom&&u.scaleTo&&ba(u.target,{x:u.scaleFrom.x+(u.scaleTo.x-u.scaleFrom.x)*f,y:u.scaleFrom.y+(u.scaleTo.y-u.scaleFrom.y)*f});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 E;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+((E=g==null?void 0:g.delayMsOverride)!=null?E: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"]),f=[];for(let S of Object.keys(c)){if(y.has(S))continue;let C=c[S];typeof C=="number"&&f.push({key:S,from:Ar(p,S),to:C})}let m=ya(p,c);return{target:p,startMs:Ke(),delayMs:b,durationMs:u,ease:h,props:f,scaleFrom:m.from,scaleTo:m.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=Ke())},resume:()=>{var h;if(!g.paused)return;let u=(h=g.pauseAtMs)!=null?h:Ke(),b=Ke()-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"&&ma(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 f=typeof y=="string"?y.trim():"";return f.startsWith("+=")?g+Math.max(0,Number(f.slice(2))*1e3||0):f?Math.max(0,Number(f)*1e3||0):g},w=y=>{c.push(y);let f=Math.max(0,(typeof y.vars.duration=="number"?y.vars.duration:.5)*1e3);g=Math.max(g,y.atMs+f)},v={to(y,f,m){return w({kind:"to",target:y,vars:f,atMs:h(m)}),v},fromTo(y,f,m,E){return w({kind:"fromTo",target:y,vars:m,from:f,atMs:h(E)}),v},play(){var y,f;if(u)return v;u=!0,b=[];for(let m of c)m.kind==="fromTo"&&d.set(m.target,(y=m.from)!=null?y:{}),b.push(d.to(m.target,{...m.vars,delay:m.atMs/1e3+((f=m.vars.delay)!=null?f: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:"0.5.552",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 && 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 && 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 U=0,kr=U++,Ea=U++,Sa=U++,Ca=U++,Aa=U++,Ta=U++,La=U++,ka=U++,_a=U++,Ma=U++,Pa=U++,Ia=U++,T=kr;function ja(){return T===Ea}function Oa(){return T===Sa}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===_a}function Da(){return T===Ma}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=Ea;return}catch{}else if(t==="dapi")try{dapi.isReady(),T=Sa;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=_a)}catch{}else if(e==="snapchat")try{window.ScPlayableAd&&(T=Ma)}catch{}else e==="vungle"?T=Pa:(t==="nucleo"||e==="nucleo")&&(T=Ia)}var wt=ge(require("lottie-web"),1),Fa=wt.default;typeof window!="undefined"&&(window.lottie=wt.default,window.__baseLottie=wt.default);var _r=require("pixi.js");var tn=require("pixi.js");var Mr=null;function nn(t){Mr=t}xt();an();var Xe=require("pixi.js");xt();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 me=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 Xe.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 Xe.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 Xe.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 St=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 me.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 me.create(e,n,this.app);this.instanceCache.set(e,i)}}get(e){return this.instanceCache.get(e)}},Br=new dn,Ur=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"),le={width:400,height:600,designWidth:400,scaleFactor:1},At={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*le.scaleFactor;n(t,le.width,le.height,i,a,!0,!1)})}function pn(t,e){console.log(`[SCREEN] updateScreenState called: ${t}x${e}`),le.width=t,le.height=e,le.scaleFactor=Math.min(t/le.designWidth,1.15),At.scale=le.scaleFactor,At.position=1,console.log(`[SCREEN] Global multipliers - scale: ${At.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 Kr(){return ze}var Xr={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 Ct(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function et(t,e={x:.5,y:.5}){var n;if(Array.isArray(t))return{x:Ct(t[0],e.x),y:Ct(t[1],e.y)};if(t&&typeof t=="object"){let i=t;return{x:Ct(i.x,e.x),y:Ct(i.y,e.y)}}if(typeof t=="string"){let i=t.trim().toLowerCase();return(n=Xr[i])!=null?n:e}return e}function gn(t,e,n,i={}){var u,b,h,w,v,y;let a=et(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,f,m;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=((f=a.top)!=null?f:0)+s.y,d=((m=a.bottom)!=null?m:0)+s.y,p=Math.max(0,t-r-o),c=Math.max(0,e-l-d),g=et(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=Kr,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 _t(t,e,n=0){return t*(1-e)+n}function G(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,f,m,E,S,C,_,I;let a=0,s=0;switch(i.type){case"top":a=G(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=G(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=G(n,(v=(w=i.offset)==null?void 0:w.y)!=null?v:0);break;case"right":a=_t(e,i.percent,(f=(y=i.offset)==null?void 0:y.x)!=null?f:0),s=G(n,(E=(m=i.offset)==null?void 0:m.y)!=null?E:0);break;case"center":a=G(e,(C=(S=i.offset)==null?void 0:S.x)!=null?C:0),s=G(n,(I=(_=i.offset)==null?void 0:_.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,G(e),l);let d=s?a*le.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,G(e),Tt(n,i)),de(t,a)}function eo(t,e,n,i=0,a=0,s=1){ce(t,G(e,i),G(n,a)),de(t,s)}function to(t,e,n,i=.1,a=1){ce(t,kt(e,i),G(n)),de(t,a)}function no(t,e,n,i=.1,a=1){ce(t,_t(e,i),G(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,_t(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,_t(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||et,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)}],Xa=[{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 Kc=[...Xa];var bo=Xa[0];J();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 Mt(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();J();var ns=require("pixi.js");var So=require("pixi.js");J();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:()=>ct,GameObjectManager:()=>Ht,Renderer:()=>lt,ResponsiveUISystem:()=>qe,Transform:()=>ot,animateHandClick:()=>Ss,animatePanelEntrance:()=>Es,createBrushTexture:()=>Ms,createEndGamePanel:()=>xs,createHandTutorial:()=>Cs,createThreeBase:()=>ys,createTutorialLabel:()=>As,getAspectClass:()=>$t,getRegisteredFontIds:()=>ws,loadAsset:()=>Nn,loadCharacterFrames:()=>_s,registerFont:()=>vs,resolveFont:()=>Q,resolveFontWeight:()=>ee,updateHandAnimation:()=>Ts});module.exports=Sr(el);var W=ge(require("three"),1);var he={};function yt(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 vt(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){yt(t,e,!0)}var M=null,V=[],Ie=null;function ga(t){M=t,V=[],Ie!==null&&(clearTimeout(Ie),Ie=null)}function ha(){var t,e,n;return{endpoint:(M==null?void 0:M.endpoint)||"",transport:(M==null?void 0:M.transport)||"beacon",batchSize:(t=M==null?void 0:M.batchSize)!=null?t:10,flushIntervalMs:(e=M==null?void 0:M.flushIntervalMs)!=null?e:300,maxQueue:(n=M==null?void 0:M.maxQueue)!=null?n:200,debug:!!(M!=null&&M.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 fa(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 Ke(){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 ma(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=Ke();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=fa(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 E=h-y;w=fa(E)}let f=u.ease(w);u.yoyo&&y%2===1&&(f=1-f);for(let E of u.props)ma(u.target,E.key,E.from+(E.to-E.from)*f);u.scaleFrom&&u.scaleTo&&ba(u.target,{x:u.scaleFrom.x+(u.scaleTo.x-u.scaleFrom.x)*f,y:u.scaleFrom.y+(u.scaleTo.y-u.scaleFrom.y)*f});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 E;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+((E=g==null?void 0:g.delayMsOverride)!=null?E: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"]),f=[];for(let S of Object.keys(c)){if(y.has(S))continue;let C=c[S];typeof C=="number"&&f.push({key:S,from:Ar(p,S),to:C})}let m=ya(p,c);return{target:p,startMs:Ke(),delayMs:b,durationMs:u,ease:h,props:f,scaleFrom:m.from,scaleTo:m.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=Ke())},resume:()=>{var h;if(!g.paused)return;let u=(h=g.pauseAtMs)!=null?h:Ke(),b=Ke()-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"&&ma(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 f=typeof y=="string"?y.trim():"";return f.startsWith("+=")?g+Math.max(0,Number(f.slice(2))*1e3||0):f?Math.max(0,Number(f)*1e3||0):g},w=y=>{c.push(y);let f=Math.max(0,(typeof y.vars.duration=="number"?y.vars.duration:.5)*1e3);g=Math.max(g,y.atMs+f)},v={to(y,f,m){return w({kind:"to",target:y,vars:f,atMs:h(m)}),v},fromTo(y,f,m,E){return w({kind:"fromTo",target:y,vars:m,from:f,atMs:h(E)}),v},play(){var y,f;if(u)return v;u=!0,b=[];for(let m of c)m.kind==="fromTo"&&d.set(m.target,(y=m.from)!=null?y:{}),b.push(d.to(m.target,{...m.vars,delay:m.atMs/1e3+((f=m.vars.delay)!=null?f: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:"0.5.556",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 && 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 && 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 U=0,kr=U++,Ea=U++,Sa=U++,Ca=U++,Aa=U++,Ta=U++,La=U++,ka=U++,_a=U++,Ma=U++,Pa=U++,Ia=U++,T=kr;function ja(){return T===Ea}function Oa(){return T===Sa}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===_a}function Da(){return T===Ma}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=Ea;return}catch{}else if(t==="dapi")try{dapi.isReady(),T=Sa;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=_a)}catch{}else if(e==="snapchat")try{window.ScPlayableAd&&(T=Ma)}catch{}else e==="vungle"?T=Pa:(t==="nucleo"||e==="nucleo")&&(T=Ia)}var wt=ge(require("lottie-web"),1),Fa=wt.default;typeof window!="undefined"&&(window.lottie=wt.default,window.__baseLottie=wt.default);var _r=require("pixi.js");var tn=require("pixi.js");var Mr=null;function nn(t){Mr=t}xt();an();var Xe=require("pixi.js");xt();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 me=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 Xe.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 Xe.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 Xe.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 St=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 me.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 me.create(e,n,this.app);this.instanceCache.set(e,i)}}get(e){return this.instanceCache.get(e)}},Br=new dn,Ur=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"),le={width:400,height:600,designWidth:400,scaleFactor:1},At={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*le.scaleFactor;n(t,le.width,le.height,i,a,!0,!1)})}function pn(t,e){console.log(`[SCREEN] updateScreenState called: ${t}x${e}`),le.width=t,le.height=e,le.scaleFactor=Math.min(t/le.designWidth,1.15),At.scale=le.scaleFactor,At.position=1,console.log(`[SCREEN] Global multipliers - scale: ${At.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 Kr(){return ze}var Xr={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 Ct(t,e){return typeof t=="number"&&Number.isFinite(t)?t:e}function et(t,e={x:.5,y:.5}){var n;if(Array.isArray(t))return{x:Ct(t[0],e.x),y:Ct(t[1],e.y)};if(t&&typeof t=="object"){let i=t;return{x:Ct(i.x,e.x),y:Ct(i.y,e.y)}}if(typeof t=="string"){let i=t.trim().toLowerCase();return(n=Xr[i])!=null?n:e}return e}function gn(t,e,n,i={}){var u,b,h,w,v,y;let a=et(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,f,m;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=((f=a.top)!=null?f:0)+s.y,d=((m=a.bottom)!=null?m:0)+s.y,p=Math.max(0,t-r-o),c=Math.max(0,e-l-d),g=et(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=Kr,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 _t(t,e,n=0){return t*(1-e)+n}function G(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,f,m,E,S,C,_,I;let a=0,s=0;switch(i.type){case"top":a=G(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=G(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=G(n,(v=(w=i.offset)==null?void 0:w.y)!=null?v:0);break;case"right":a=_t(e,i.percent,(f=(y=i.offset)==null?void 0:y.x)!=null?f:0),s=G(n,(E=(m=i.offset)==null?void 0:m.y)!=null?E:0);break;case"center":a=G(e,(C=(S=i.offset)==null?void 0:S.x)!=null?C:0),s=G(n,(I=(_=i.offset)==null?void 0:_.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,G(e),l);let d=s?a*le.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,G(e),Tt(n,i)),de(t,a)}function eo(t,e,n,i=0,a=0,s=1){ce(t,G(e,i),G(n,a)),de(t,s)}function to(t,e,n,i=.1,a=1){ce(t,kt(e,i),G(n)),de(t,a)}function no(t,e,n,i=.1,a=1){ce(t,_t(e,i),G(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,_t(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,_t(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||et,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)}],Xa=[{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 Kc=[...Xa];var bo=Xa[0];J();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 Mt(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();J();var ns=require("pixi.js");var So=require("pixi.js");J();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: