公告栏

This commit is contained in:
tianmo committed 2026-11-04 10:55:40 +08:00
1 parent 720e3e0ceb
commit 87d6561779
23 files changed
+364 -6

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
{
"enabled": true,
"scrollDurationSeconds": 24,
"messages": {
"zh-CN": "2026-11-04更新:增加俄语支持。本站永久免费,纯兴趣使然,故考虑在功能成熟的未来进行全量开源,感谢支持。",
"zh-TW": "2026-11-04更新:新增俄語支援。本站永久免費,純粹出於興趣,故考慮在功能成熟的未來進行全量開源,感謝支持。",
"en": "Updated 2026-11-04: Russian language support has been added. This site is permanently free and driven purely by interest, so we may fully open-source it once the features mature. Thank you for your support.",
"ja": "2026-11-04 更新:ロシア語対応を追加しました。当サイトは純粋な興味から永久無料で運営しており、機能が成熟した将来には全機能をオープンソース化することも検討しています。ご支援ありがとうございます。",
"ko": "2026-11-04 업데이트: 러시아어 지원을 추가했습니다. 본 사이트는 순수한 흥미로 영구 무료로 운영되며, 기능이 성숙한 미래에는 전체 오픈소스화도 검토할 예정입니다. 지원해 주셔서 감사합니다.",
"ru": "Обновление от 04.11.2026: добавлена поддержка русского языка. Сайт всегда бесплатен и создаётся исключительно из интереса, поэтому в будущем, когда функции достигнут зрелости, мы рассматриваем полный переход на открытый исходный код. Спасибо за поддержку.",
"fr": "Mise à jour du 04/11/2026 : prise en charge du russe ajoutée. Ce site est gratuit en permanence et réalisé par simple intérêt ; nous envisageons donc de l’ouvrir entièrement en open source lorsque les fonctionnalités seront matures. Merci pour votre soutien.",
"de": "Update vom 04.11.2026: Russische Sprachunterstützung hinzugefügt. Diese Website ist dauerhaft kostenlos und entsteht aus reinem Interesse; daher erwägen wir eine vollständige Open-Source-Veröffentlichung, sobald die Funktionen ausgereift sind. Vielen Dank für Ihre Unterstützung.",
"pt-BR": "Atualização de 04/11/2026: adicionado suporte ao idioma russo. Este site é permanentemente gratuito e feito por puro interesse, por isso poderemos abri-lo totalmente como código aberto quando os recursos estiverem maduros. Obrigado pelo apoio.",
"es": "Actualización del 04/11/2026: se añadió compatibilidad con el idioma ruso. Este sitio es gratuito de forma permanente y nace por puro interés, por lo que consideraremos publicarlo completamente como código abierto cuando las funciones estén maduras. Gracias por tu apoyo."
}
}
-1
View File
@@ -1 +0,0 @@
const _0x3d2db7=_0x36f0;(function(_0x3a6367,_0x2e25ba){const _0x176ba1=_0x36f0,_0x1c433d=_0x3a6367();while(!![]){try{const _0xc6030f=-parseInt(_0x176ba1(0x2752))/0x1+parseInt(_0x176ba1(0x223e))/0x2*(parseInt(_0x176ba1(0x3b66))/0x3)+parseInt(_0x176ba1(0x464d))/0x4+parseInt(_0x176ba1(0xda5))/0x5*(parseInt(_0x176ba1(0x490b))/0x6)+parseInt(_0x176ba1(0x3271))/0x7+parseInt(_0x176ba1(0x4703))/0x8*(-parseInt(_0x176ba1(0x2448))/0x9)+-parseInt(_0x176ba1(0x9dc))/0xa;if(_0xc6030f===_0x2e25ba)break;else _0x1c433d['push'](_0x1c433d['shift']());}catch(_0x87a4fb){_0x1c433d['push'](_0x1c433d['shift']());}}}(_0x339b,0x2bbab));var ys=Object[_0x3d2db7(0x4f99)+_0x3d2db7(0x2676)],xs=(_0x25fc2d,_0x3ff519,_0x401110)=>_0x3ff519 in _0x25fc2d?ys(_0x25fc2d,_0x3ff519,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x401110}):_0x25fc2d[_0x3ff519]=_0x401110,ke=(_0x5b9d2a,_0x115a5c,_0x5119e5)=>xs(_0x5b9d2a,typeof _0x115a5c!='symbol'?_0x115a5c+'':_0x115a5c,_0x5119e5);import{c as _0x21d8ab,d as _0x31b7a6,u as _0x363a0d,o as _0x832303,a as _0x376468,b as _0x38ac53,e as _0x530fd1,w as _0x5b1cb8,f as _0xd53c2f,n as _0x137b62,g as _0x3f491b,t as _0x4a7e69,h as _0x37b204,F as _0x141c41,r as _0xf053b0,i as _0x4285f6,j as _0xf644ff,k as _0x5c5115,l as _0x9b86f5,m as _0x1d76b5,p as _0x17b4a0,q as _0x37fca8,s as _0x3adbd0,v as _0x52240a,T as _0x323129,x as _0x148bd4,y as _0x46b6ec,z as _0x59acdb,S as _0x47bc56,C as _0x54b014,G as _0x4d3ad9,A as _0x55ffed,B as _0x57aaf7,D as _0x19475c,M as _0x11521a,E as _0xa3892f,H as _0x3dd97a,I as _0x49da46,J as _0x4dadfe,K as _0x593bbe,L as _0x4d7d45,N as _0x543ece,O as _0x24ae2a,P as _0x28b792,Q as _0x4bea83,R as _0x42799f,U as _0xd37709,V as _0xd44f11,W as _0x3dd8f8,X as _0xea3aa0,Y as _0x4ebf17,Z as _0xcacef4,_ as _0x58ea49,$ as _0x5f1f1c,a0 as _0xa8e916,a1 as _0x511733,a2 as _0x1a0d7d,a3 as _0x33a769,a4 as _0x4cd42b,a5 as _0x50e6ed,a6 as _0x5c1a17,a7 as _0x1dec22,a8 as _0x4fa443,a9 as _0x96d010,aa as _0x2f02e9,ab as _0x460767,ac as _0x9474ad,ad as _0x441d87,ae as _0x3ea42e,af as _0x450caa,ag as _0x4eaa5d,ah as _0x442f89,ai as _0x4de708}from'./vendor-fsmZiMPK.js';(function(){const _0x543aae=_0x3d2db7,_0x41ea83=document[_0x543aae(0x4635)+_0x543aae(0x2794)]('link')[_0x543aae(0x4787)];if(_0x41ea83&&_0x41ea83['supports']&&_0x41ea83[_0x543aae(0x9c4)](_0x543aae(0x2ef8)+_0x543aae(0x3913)))return;for(const _0x5c9a55 of document[_0x543aae(0x2899)+_0x543aae(0x2d88)](_0x543aae(0x5207)+_0x543aae(0x21a4)+'preload\x22'+']'))_0x152f70(_0x5c9a55);new MutationObserver(_0x6648c0=>{const _0x1eb949=_0x543aae;for(const _0x25b1a of _0x6648c0)if(_0x25b1a[_0x1eb949(0x3e65)]===_0x1eb949(0x33c5)+'t'){for(const _0x300a48 of _0x25b1a[_0x1eb949(0x2177)+'es'])_0x300a48[_0x1eb949(0x48a3)]===_0x1eb949(0x7a6)&&_0x300a48['rel']===_0x1eb949(0x2ef8)+_0x1eb949(0x3913)&&_0x152f70(_0x300a48);}})[_0x543aae(0x487d)](document,{'childList':!0x0,'subtree':!0x0});function _0x1116ba(_0x2d2ec3){const _0x39df69=_0x543aae,_0x57ea42={};return _0x2d2ec3[_0x39df69(0x1123)+'y']&&(_0x57ea42[_0x39df69(0x1123)+'y']=_0x2d2ec3[_0x39df69(0x1123)+'y']),_0x2d2ec3[_0x39df69(0x4cf2)+_0x39df69(0x3bf7)]&&(_0x57ea42[_0x39df69(0x4cf2)+_0x39df69(0x3bf7)]=_0x2d2ec3[_0x39df69(0x4cf2)+_0x39df69(0x3bf7)]),_0x2d2ec3[_0x39df69(0x653)+'gin']===_0x39df69(0x4d5e)+_0x39df69(0x30b9)?_0x57ea42['credenti'+_0x39df69(0x7c0)]='include':_0x2d2ec3[_0x39df69(0x653)+_0x39df69(0x1ce9)]==='anonymou'+'s'?_0x57ea42['credenti'+_0x39df69(0x7c0)]=_0x39df69(0x18ad):_0x57ea42['credenti'+_0x39df69(0x7c0)]='same-ori'+_0x39df69(0x1ce9),_0x57ea42;}function _0x152f70(_0xbb413){const _0x1eb422=_0x543aae;if(_0xbb413['ep'])return;_0xbb413['ep']=!0x0;const _0x3da38d=_0x1116ba(_0xbb413);fetch(_0xbb413[_0x1eb422(0x42c1)],_0x3da38d);}}());const Ji=_0x3d2db7(0x41ae)+_0x3d2db7(0x3465)+'atermark'+_0x3d2db7(0x10d1),_s=_0x3d2db7(0x4e14)+_0x3d2db7(0x10d1),Ko='/images/'+_0x3d2db7(0x1f6b)+'go.png',Qs={'resizeTimeline':_0x3d2db7(0x1008)+'ie,\x20um\x20d'+_0x3d2db7(0x26f3)+_0x3d2db7(0x3680)+_0x3d2db7(0x1a06)+'nzupasse'+'n','systems':_0x3d2db7(0xad3),'particlesBones':_0x3d2db7(0x736)+_0x3d2db7(0x49aa)+'n)','rootBone':_0x3d2db7(0x38a2)+_0x3d2db7(0x1036),'hudTip':_0x3d2db7(0x4e80)+_0x3d2db7(0x4d0a)+_0x3d2db7(0x3909)+_0x3d2db7(0x1eac)+_0x3d2db7(0x1c81)+_0x3d2db7(0x3c3f)+'um\x20die\x20L'+'einwand\x20'+_0x3d2db7(0x3f92)+'n','title':'Spine-Pa'+_0x3d2db7(0x330b)+_0x3d2db7(0xd51)},er={'documentTitle':_0x3d2db7(0x35d7)+'rtikeled'+_0x3d2db7(0xd51),'titleLead':'Von\x20Spin'+_0x3d2db7(0x2f6c)+'eln','titleAccent':_0x3d2db7(0x4900)+_0x3d2db7(0x246)+_0x3d2db7(0xfb3),'backToTools':'Zurück\x20z'+'ur\x20Werkz'+_0x3d2db7(0x2e07)+'hl','editor':{'badge':_0x3d2db7(0x29eb)+_0x3d2db7(0xeed),'title':_0x3d2db7(0x736)+_0x3d2db7(0x47ad),'description':_0x3d2db7(0x2d03)+_0x3d2db7(0x4da2)+_0x3d2db7(0x1839)+_0x3d2db7(0x2932)+_0x3d2db7(0x102c)+_0x3d2db7(0x1974)+_0x3d2db7(0x4da2)+_0x3d2db7(0x43d9)+'teien\x20fr'+_0x3d2db7(0x705),'tagPreview':_0x3d2db7(0x4f20)+'schau','tagSequence':_0x3d2db7(0x2598)+_0x3d2db7(0x41cf)+_0x3d2db7(0x3d42),'tagExport'Line truncated
+1
View File
@@ -0,0 +1 @@
const _0x3492a6=_0x4417;(function(_0x4bf164,_0x19a2ad){const _0x44e305=_0x4417,_0x52aa9d=_0x4bf164();while(!![]){try{const _0x459168=parseInt(_0x44e305(0x1197))/0x1*(-parseInt(_0x44e305(0x3267))/0x2)+-parseInt(_0x44e305(0x10db))/0x3+-parseInt(_0x44e305(0x2cfb))/0x4*(-parseInt(_0x44e305(0x3fc0))/0x5)+parseInt(_0x44e305(0x3b68))/0x6+parseInt(_0x44e305(0x43ef))/0x7*(-parseInt(_0x44e305(0x250e))/0x8)+-parseInt(_0x44e305(0x48a))/0x9*(-parseInt(_0x44e305(0x907))/0xa)+-parseInt(_0x44e305(0x25ee))/0xb*(-parseInt(_0x44e305(0x26f8))/0xc);if(_0x459168===_0x19a2ad)break;else _0x52aa9d['push'](_0x52aa9d['shift']());}catch(_0x2cea33){_0x52aa9d['push'](_0x52aa9d['shift']());}}}(_0x1439,0xc1060));var ks=Object[_0x3492a6(0x30c1)+_0x3492a6(0x509b)],Cs=(_0x22557a,_0xe2b4cc,_0x3af58a)=>_0xe2b4cc in _0x22557a?ks(_0x22557a,_0xe2b4cc,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x3af58a}):_0x22557a[_0xe2b4cc]=_0x3af58a,ke=(_0x5f213f,_0xfb0ccf,_0x23d375)=>Cs(_0x5f213f,typeof _0xfb0ccf!=_0x3492a6(0x3108)?_0xfb0ccf+'':_0xfb0ccf,_0x23d375);import{c as _0x269525,d as _0x7b5d44,u as _0x16adac,o as _0x9406e4,a as _0x46c1d2,b as _0x5b3eaa,e as _0x2eca48,w as _0xe7eec,f as _0x138b97,n as _0x1798f2,g as _0x37ee3c,t as _0x20d84f,h as _0x3678bb,F as _0x24761e,r as _0x5d8e0f,i as _0x4b9e7b,j as _0x2ef4e5,k as _0x1d368c,l as _0x33dc98,m as _0x113fce,p as _0x34ee81,q as _0x152788,s as _0x5e7540,v as _0x355e34,T as _0x25fd3e,x as _0x45e086,y as _0x53f7ff,z as _0xa6e1dd,S as _0x32d30b,C as _0x4a688e,G as _0x220a0a,A as _0x588201,B as _0x360f69,D as _0x26859d,M as _0x149ca0,E as _0x581c4b,H as _0x3708a2,I as _0x38073a,J as _0x424fda,K as _0x10b763,L as _0x5bee94,N as _0x504596,O as _0x17aaa9,P as _0x337033,Q as _0x4b0011,R as _0x537b33,U as _0x3b4324,V as _0x632b94,W as _0x3a6cbd,X as _0x1104b0,Y as _0x38bdba,Z as _0x2eea03,_ as _0x1d6e11,$ as _0x11eb7b,a0 as _0xbd6c0b,a1 as _0x57a27e,a2 as _0x3698a9,a3 as _0x368131,a4 as _0x5b6b97,a5 as _0x1966ea,a6 as _0x5eb906,a7 as _0x537fe9,a8 as _0x38da0e,a9 as _0x560000,aa as _0x397a2a,ab as _0x52b1ed,ac as _0x3db82b,ad as _0x1a1390,ae as _0x15c982,af as _0x3219ae,ag as _0x103e31,ah as _0x34b582,ai as _0x1d6aad}from'./vendor-C2uhScDe.js';(function(){const _0x56a650=_0x3492a6,_0x222d1a=document['createEl'+_0x56a650(0x4ab)]('link')[_0x56a650(0x524d)];if(_0x222d1a&&_0x222d1a[_0x56a650(0x508b)]&&_0x222d1a['supports']('modulepr'+'eload'))return;for(const _0x3203eb of document[_0x56a650(0x173b)+_0x56a650(0x235b)](_0x56a650(0x1844)+_0x56a650(0x3d80)+'preload\x22'+']'))_0x5e4daf(_0x3203eb);new MutationObserver(_0x1a758b=>{const _0x1d3dbf=_0x56a650;for(const _0x4c679a of _0x1a758b)if(_0x4c679a[_0x1d3dbf(0x1d25)]===_0x1d3dbf(0x2c6)+'t'){for(const _0x153c66 of _0x4c679a['addedNod'+'es'])_0x153c66[_0x1d3dbf(0x3e0)]==='LINK'&&_0x153c66[_0x1d3dbf(0x201a)]==='modulepr'+'eload'&&_0x5e4daf(_0x153c66);}})['observe'](document,{'childList':!0x0,'subtree':!0x0});function _0x58dff5(_0xfe86ba){const _0x20ac89=_0x56a650,_0xfdb9e1={};return _0xfe86ba[_0x20ac89(0x14fd)+'y']&&(_0xfdb9e1[_0x20ac89(0x14fd)+'y']=_0xfe86ba[_0x20ac89(0x14fd)+'y']),_0xfe86ba['referrer'+_0x20ac89(0x1a58)]&&(_0xfdb9e1['referrer'+_0x20ac89(0x1a58)]=_0xfe86ba[_0x20ac89(0x3520)+'Policy']),_0xfe86ba[_0x20ac89(0x67e)+_0x20ac89(0x42e9)]===_0x20ac89(0x2c67)+'entials'?_0xfdb9e1[_0x20ac89(0x4886)+_0x20ac89(0x502d)]=_0x20ac89(0x252c):_0xfe86ba[_0x20ac89(0x67e)+'gin']===_0x20ac89(0x33c7)+'s'?_0xfdb9e1[_0x20ac89(0x4886)+_0x20ac89(0x502d)]=_0x20ac89(0x4420):_0xfdb9e1[_0x20ac89(0x4886)+_0x20ac89(0x502d)]=_0x20ac89(0x1df8)+'gin',_0xfdb9e1;}function _0x5e4daf(_0x1434b7){const _0x4015ac=_0x56a650;if(_0x1434b7['ep'])return;_0x1434b7['ep']=!0x0;const _0x4bab96=_0x58dff5(_0x1434b7);fetch(_0x1434b7[_0x4015ac(0x1881)],_0x4bab96);}}());const Ki=_0x3492a6(0xc6e)+_0x3492a6(0x91b)+_0x3492a6(0x4d90)+_0x3492a6(0x1484),tr=_0x3492a6(0x47c)+'.png',Zo='/images/'+_0x3492a6(0x2c4)+_0x3492a6(0x298a),nr={'resizeTimeline':_0x3492a6(0x2027)+'ie,\x20um\x20d'+_0x3492a6(0x1fce)+_0x3492a6(0x3329)+_0x3492a6(0x3616)+_0x3492a6(0x399a)+'n','systems':_0x3492a6(0xf90),'particlesBones':_0x3492a6(0x3be6)+_0x3492a6(0x3af4)+'n)','rootBone':'Wurzelkn'+'ochen','hudTip':_0x3492a6(0x422)+_0x3492a6(0x9b2)+_0x3492a6(0xe3b)+_0x3492a6(0x3578)+_0x3492a6(0x3784)+'staste,\x20'+_0x3492a6(0x28dd)+_0x3492a6(0x981)+_0x3492a6(0x1ea9)+'n','title':_0x3492a6(0x421e)+_0x3492a6(0x20cf)+_0x3492a6(0x90d)},or={'documentTitle':_0x3492a6(0x421e)+'rtikeled'+_0x3492a6(0x90d),'titleLead':_0x3492a6(0x5080)+_0x3492a6(0x2e6d)+_0x3492a6(0x194a),'titleAccent':_0x3492a6(0x3ab9)+_0x3492a6(0xa95)+_0x3492a6(0x2263),'backToTools':_0x3492a6(0x1cfb)+'ur\x20Werkz'+_0x3492a6(0x307f)+'hl','editor':{'badge':_0x3492a6(0x311b)+_0x3492a6(0x439f),'title':_0x3492a6(0x3be6)+_0x3492a6(0x32f4),'description':_0x3492a6(0x3470)+_0x3492a6(0x3ea5)+_0x3492a6(0x536f)+_0x3492a6(0x30f1)+'rtiere\x20J'+_0x3492a6(0x4a53)+'\x20Spine-P'+_0x3492a6(0x4b76)+_0x3492a6(0xcf1)+_0x3492a6(0x42f0),'tagPreview':_0x3492a6(0x14e9)+'schau','tagSequence':'Spine-Pr'+'ojLine truncated
-1
View File
@@ -1 +0,0 @@
.language-picker[data-v-811a66dc]{display:flex;height:28px;align-items:center;gap:6px;margin-left:auto;color:#9aa8c1;font-size:11px;white-space:nowrap}.language-dropdown[data-v-811a66dc]{position:relative}.language-trigger[data-v-811a66dc]{display:flex;height:28px;min-width:88px;align-items:center;gap:7px;padding:0 8px;border:1px solid #3a4963;border-radius:6px;outline:none;background:#202a3b;color:#dbe4f5;font:inherit;font-size:11px;cursor:pointer}.language-trigger[data-v-811a66dc]:hover,.language-trigger.open[data-v-811a66dc]{border-color:#5b608c;background:#2b3a5c}.language-trigger[data-v-811a66dc]:focus-visible{border-color:#7774ff}.language-flag-icon[data-v-811a66dc],.language-option-flag-icon[data-v-811a66dc]{display:block;width:22px;height:15px;flex:0 0 auto;overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px #ffffff1f}.language-short[data-v-811a66dc]{min-width:20px;color:#dbe4f5;font-size:11px;font-weight:600}.language-chevron[data-v-811a66dc]{width:10px;height:6px;margin-left:auto;fill:none;stroke:#aab;stroke-width:1.7;transition:transform .15s ease}.language-trigger.open .language-chevron[data-v-811a66dc]{transform:rotate(180deg)}.language-menu[data-v-811a66dc]{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;width:190px;max-height:min(360px,calc(100vh - 120px));overflow-y:auto;padding:5px;border:1px solid #343b50;border-radius:9px;background:#141420fa;box-shadow:0 8px 24px #0000007a}.menu-down .language-menu[data-v-811a66dc]{top:calc(100% + 6px);bottom:auto}.language-option[data-v-811a66dc]{display:grid;width:100%;min-height:38px;grid-template-columns:24px 1fr 16px;align-items:center;gap:8px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:#aeb8cc;font:inherit;font-size:12px;text-align:left;white-space:nowrap;cursor:pointer}.language-option[data-v-811a66dc]:hover,.language-option[data-v-811a66dc]:focus-visible{outline:none;background:#2b3a5c;color:#fff}.language-option.selected[data-v-811a66dc]{background:#343b63;color:#fff}.language-check[data-v-811a66dc]{justify-self:end;color:#fff;font-size:18px;font-weight:500}.welcome-shell[data-v-1a06af44]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;padding:clamp(22px,3vw,42px) clamp(22px,4vw,64px) 28px;color:#eef0f5;background:radial-gradient(circle at 17% 0%,rgba(218,45,57,.16),transparent 32%),radial-gradient(circle at 85% 8%,rgba(72,100,170,.16),transparent 30%),linear-gradient(145deg,#09090d,#0d0f15 52%,#090b10);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.welcome-shell[data-v-1a06af44]:before{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 70%);mask-image:linear-gradient(to bottom,#000,transparent 70%)}.welcome-header[data-v-1a06af44],.welcome-intro[data-v-1a06af44],.hub-grid[data-v-1a06af44]{position:relative}.welcome-header[data-v-1a06af44]{display:flex;min-height:42px;align-items:center;gap:18px}.welcome-header[data-v-1a06af44]{z-index:40}.brand-link[data-v-1a06af44]{display:inline-flex;border-radius:6px;transition:opacity .16s ease}.brand-link[data-v-1a06af44]:hover{opacity:.78}.brand-link[data-v-1a06af44]:focus-visible{outline:2px solid #ef5147;outline-offset:5px}.brand-logo[data-v-1a06af44]{display:block;width:clamp(128px,10vw,156px);height:auto}.welcome-intro[data-v-1a06af44]{padding:clamp(34px,6vh,64px) 0 clamp(22px,3.5vh,34px);text-align:center}.welcome-intro h1[data-v-1a06af44]{max-width:none;margin:0 auto;color:#f3f3f5;font-size:clamp(20px,2.4vw,40px);line-height:1.1;letter-spacing:-.025em;white-space:nowrap}.welcome-intro h1 span[data-v-1a06af44]{color:#ff4e47}.welcome-intro p[data-v-1a06af44]{max-width:390px;margin:0 0 3px;color:#8c93a3;font-size:13px;line-height:1.75}.hub-grid[data-v-1a06af44]{display:grid;min-height:0;flex:0 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.5vw,22px);width:min(100%,1540px);margin:0 auto}.hub-card[data-v-1a06af44]{--hub-border: #242731;--hub-divider: #242731;position:relative;display:flex;min-width:0;min-height:0;flex-direction:column;padding:0;overflow:hidden;border:1px solid var(--hub-border);border-radius:18px;background:linear-gradient(180deg,#1a1d26f0,#0f1117fa);color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer;box-shadow:0 20px 52px #00000040;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.hub-card[data-v-1a06af44]:hover{transform:translateY(-3px);border-color:var(--hub-border);box-shadow:0 25px 64px #00000061}.hub-card[data-v-1a06af44]:focus-visible{outline:2px solid #ff5b50;outline-offset:2px}.editor-card[data-v-1a06af44]:hover{--hub-border: #706bea}.viewer-card[data-v-1a06af44]:hover,.thumbnail-card[data-v-1a06af44]:hover{--hub-bordeLine truncated
+1
View File
@@ -0,0 +1 @@
.language-picker[data-v-811a66dc]{display:flex;height:28px;align-items:center;gap:6px;margin-left:auto;color:#9aa8c1;font-size:11px;white-space:nowrap}.language-dropdown[data-v-811a66dc]{position:relative}.language-trigger[data-v-811a66dc]{display:flex;height:28px;min-width:88px;align-items:center;gap:7px;padding:0 8px;border:1px solid #3a4963;border-radius:6px;outline:none;background:#202a3b;color:#dbe4f5;font:inherit;font-size:11px;cursor:pointer}.language-trigger[data-v-811a66dc]:hover,.language-trigger.open[data-v-811a66dc]{border-color:#5b608c;background:#2b3a5c}.language-trigger[data-v-811a66dc]:focus-visible{border-color:#7774ff}.language-flag-icon[data-v-811a66dc],.language-option-flag-icon[data-v-811a66dc]{display:block;width:22px;height:15px;flex:0 0 auto;overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px #ffffff1f}.language-short[data-v-811a66dc]{min-width:20px;color:#dbe4f5;font-size:11px;font-weight:600}.language-chevron[data-v-811a66dc]{width:10px;height:6px;margin-left:auto;fill:none;stroke:#aab;stroke-width:1.7;transition:transform .15s ease}.language-trigger.open .language-chevron[data-v-811a66dc]{transform:rotate(180deg)}.language-menu[data-v-811a66dc]{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;width:190px;max-height:min(360px,calc(100vh - 120px));overflow-y:auto;padding:5px;border:1px solid #343b50;border-radius:9px;background:#141420fa;box-shadow:0 8px 24px #0000007a}.menu-down .language-menu[data-v-811a66dc]{top:calc(100% + 6px);bottom:auto}.language-option[data-v-811a66dc]{display:grid;width:100%;min-height:38px;grid-template-columns:24px 1fr 16px;align-items:center;gap:8px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:#aeb8cc;font:inherit;font-size:12px;text-align:left;white-space:nowrap;cursor:pointer}.language-option[data-v-811a66dc]:hover,.language-option[data-v-811a66dc]:focus-visible{outline:none;background:#2b3a5c;color:#fff}.language-option.selected[data-v-811a66dc]{background:#343b63;color:#fff}.language-check[data-v-811a66dc]{justify-self:end;color:#fff;font-size:18px;font-weight:500}.welcome-shell[data-v-1a06af44]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;padding:clamp(22px,3vw,42px) clamp(22px,4vw,64px) 28px;color:#eef0f5;background:radial-gradient(circle at 17% 0%,rgba(218,45,57,.16),transparent 32%),radial-gradient(circle at 85% 8%,rgba(72,100,170,.16),transparent 30%),linear-gradient(145deg,#09090d,#0d0f15 52%,#090b10);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.welcome-shell[data-v-1a06af44]:before{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 70%);mask-image:linear-gradient(to bottom,#000,transparent 70%)}.welcome-header[data-v-1a06af44],.welcome-intro[data-v-1a06af44],.hub-grid[data-v-1a06af44]{position:relative}.welcome-header[data-v-1a06af44]{display:flex;min-height:42px;align-items:center;gap:18px}.welcome-header[data-v-1a06af44]{z-index:40}.brand-link[data-v-1a06af44]{display:inline-flex;border-radius:6px;transition:opacity .16s ease}.brand-link[data-v-1a06af44]:hover{opacity:.78}.brand-link[data-v-1a06af44]:focus-visible{outline:2px solid #ef5147;outline-offset:5px}.brand-logo[data-v-1a06af44]{display:block;width:clamp(128px,10vw,156px);height:auto}.welcome-intro[data-v-1a06af44]{padding:clamp(34px,6vh,64px) 0 clamp(22px,3.5vh,34px);text-align:center}.welcome-intro h1[data-v-1a06af44]{max-width:none;margin:0 auto;color:#f3f3f5;font-size:clamp(20px,2.4vw,40px);line-height:1.1;letter-spacing:-.025em;white-space:nowrap}.welcome-intro h1 span[data-v-1a06af44]{color:#ff4e47}.welcome-intro p[data-v-1a06af44]{max-width:390px;margin:0 0 3px;color:#8c93a3;font-size:13px;line-height:1.75}.hub-grid[data-v-1a06af44]{display:grid;min-height:0;flex:0 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.5vw,22px);width:min(100%,1540px);margin:0 auto}.hub-card[data-v-1a06af44]{--hub-border: #242731;--hub-divider: #242731;position:relative;display:flex;min-width:0;min-height:0;flex-direction:column;padding:0;overflow:hidden;border:1px solid var(--hub-border);border-radius:18px;background:linear-gradient(180deg,#1a1d26f0,#0f1117fa);color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer;box-shadow:0 20px 52px #00000040;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.hub-card[data-v-1a06af44]:hover{transform:translateY(-3px);border-color:var(--hub-border);box-shadow:0 25px 64px #00000061}.hub-card[data-v-1a06af44]:focus-visible{outline:2px solid #ff5b50;outline-offset:2px}.editor-card[data-v-1a06af44]:hover{--hub-border: #706bea}.viewer-card[data-v-1a06af44]:hover,.thumbnail-card[data-v-1a06af44]:hover{--hub-bordeLine truncated
@@ -1324,4 +1324,4 @@ void main(void){
gl_FragColor.a = color.a * vColor.a;
gl_FragColor.rgb = ((color.a - 1.0) * vDarkColor.a + 1.0 - color.rgb) * vDarkColor.rgb + color.rgb * vColor.rgb;
}
`;class gg extends li{constructor(t){super(t),this.shaderGenerator=new Np(dL,fL),this.geometryClass=Uw,this.vertexSize=7}packInterleavedGeometry(t,e,s,r,n){const{uint32View:a,float32View:o}=e,h=r/this.vertexSize,l=t.uvs,c=t.indices,u=t.vertexData,d=t._texture.baseTexture._batchLocation,f=Math.min(t.worldAlpha,1),m=Wt.shared.setValue(t._tintRGB).toPremultiplied(f,!0),p=Wt.shared.setValue(t._darkTintRGB).premultiply(f,!0).toPremultiplied(1,!1);for(let g=0;g<u.length;g+=2)o[r++]=u[g],o[r++]=u[g+1],o[r++]=l[g],o[r++]=l[g+1],a[r++]=m,a[r++]=p,o[r++]=d;for(let g=0;g<c.length;g++)s[n++]=h+c[g]}}x(gg,"extension",{name:"darkTintBatch",type:gt.RendererPlugin});St.add(gg);const ai=class ai extends zn{constructor(){const e=new Zc;e.getBuffer("aVertexPosition").static=!1,e.getBuffer("aTextureCoord").static=!1;const s=new rl(Nt.EMPTY);super(e,s);x(this,"name","");x(this,"warnedTwoTint",!1)}updateFromSpineData(e,s,r,n,a,o,h,l){var y,_;this.texture=e.texture;const c=a/(l?12:8)*2,u=this.geometry.getBuffer("aTextureCoord");((y=u.data)==null?void 0:y.length)!==c&&(u.data=new Float32Array(c));const d=this.geometry.getBuffer("aVertexPosition");((_=d.data)==null?void 0:_.length)!==c&&(d.data=new Float32Array(c));let f=0;const m=u.data,p=d.data;for(let v=0;v<a;v+=l?12:8){let b=v;p[f]=n[b++],p[f+1]=n[b++],b+=4,m[f]=n[b++],m[f+1]=n[b++],f+=2}l&&!this.warnedTwoTint&&(console.warn("DarkTint is not enabled by default. To enable use a DarkSlotMesh factory while creating the Spine object."),this.warnedTwoTint=!0),ai.auxColor[0]=n[2],ai.auxColor[1]=n[3],ai.auxColor[2]=n[4],ai.auxColor[3]=n[5],this.tint=ai.auxColor,this.alpha=ai.auxColor[3],this.blendMode=qn.toPixiBlending(s);const g=this.geometry.indexBuffer;if(g.data.length!==o.length)g.data=new Uint32Array(o);else{const v=g.data;for(let b=0;b<h;b++)v[b]=o[b]}this.name=r,u.update(),d.update(),g.update()}};x(ai,"auxColor",[0,0,0,0]);let yc=ai;class mL{constructor(t,e,s,r){x(this,"x");x(this,"y");x(this,"width");x(this,"height");this.x=t,this.y=e,this.width=s,this.height=r}calculateBounds(){return{x:this.x,y:this.y,width:this.width,height:this.height}}}class pL{constructor(t=!1){x(this,"clipping");this.clipping=t}calculateBounds(t){if(!t.skeleton)return{x:0,y:0,width:0,height:0};const e=new Mi(t.skeleton.data);e.setupPose(),e.updateWorldTransform(Os.update);const s=e.getBoundsRect(this.clipping?new ao:void 0);return s.width===Number.NEGATIVE_INFINITY?{x:0,y:0,width:0,height:0}:s}}class gL{constructor(t,e=[],s=.05,r=!1){x(this,"animation");x(this,"skins");x(this,"timeStep");x(this,"clipping");this.animation=t,this.skins=e,this.timeStep=s,this.clipping=r}calculateBounds(t){if(!t.skeleton||!t.state)return{x:0,y:0,width:0,height:0};const e=new qa(t.state.data),s=new Mi(t.skeleton.data),r=this.clipping?new ao:void 0,n=s.data;if(this.skins.length>0){const o=new Ka("custom-skin");for(const h of this.skins){const l=n.findSkin(h);l!=null&&o.addSkin(l)}s.setSkin(o)}s.setupPose();const a=this.animation!=null?n.findAnimation(this.animation):null;if(a==null){s.updateWorldTransform(Os.update);const o=s.getBoundsRect(r);return o.width===Number.NEGATIVE_INFINITY?{x:0,y:0,width:0,height:0}:o}else{let o=Number.POSITIVE_INFINITY,h=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;e.clearTracks(),e.setAnimation(0,a,!1);const u=Math.max(a.duration/this.timeStep,1);for(let f=0;f<u;f++){const m=f>0?this.timeStep:0;e.update(m),e.apply(s),s.update(m),s.updateWorldTransform(Os.update);const p=s.getBoundsRect(r);o=Math.min(o,p.x),h=Math.min(h,p.y),l=Math.max(l,p.x+p.width),c=Math.max(c,p.y+p.height)}const d={x:o,y:h,width:l-o,height:c-h};return d.width===Number.NEGATIVE_INFINITY?{x:0,y:0,width:0,height:0}:d}}}const $t=class $t extends fs{constructor(e){super();x(this,"skeleton");x(this,"state");x(this,"skeletonPhysics");x(this,"darkTint",!1);x(this,"hasNeverUpdated",!0);x(this,"_debug");x(this,"slotMeshFactory",()=>new yc);x(this,"beforeUpdateWorldTransforms",()=>{});x(this,"afterUpdateWorldTransforms",()=>{});x(this,"_autoUpdate",!1);x(this,"_ticker",ss.shared);x(this,"meshesCache",new Map);x(this,"lightColor",new Ft);x(this,"darkColor",new Ft);x(this,"clippingVertAux",new Float32Array(6));x(this,"_boundsProvider");x(this,"_boundsPoint",new Kt);x(this,"_boundsSpineID",-1);x(this,"_boundsSpineDirty",!0);x(this,"slotsObject",new Map);x(this,"verticesCache",bt.newFloatArray(1024));x(this,"clippingSlotToPixiMasks",{});e instanceof Bl?e={skeletonData:e}:"skeleton"in e&&(e=new.target.createOptions(e));const{autoUpdate:s=!0,boundsProvider:r,darkTint:n,skeletonData:a,ticker:o}=e;this.skeleton=new Mi(a),this.skeletonPhysics=new pg(this.skeleton,{readTransform:(h,l)=>this.readPhysicsTransform(h,l),worldToSkeleton:h=>this.pixiWorldCoordinatesToSkeleton(h)}),this.state=new qa(new og(a)),o&&(this._ticker=o),this.autoUpdate=s,this.boundsProvider=r,this.darkTint=n===void 0?this.skeleton.slots.some(h=>!!h.data.setupPose.darkColor):n,this.darkTint&&(this.slotMeshFactory=()=>new gc)}get debug(){return Line truncated
`;class gg extends li{constructor(t){super(t),this.shaderGenerator=new Np(dL,fL),this.geometryClass=Uw,this.vertexSize=7}packInterleavedGeometry(t,e,s,r,n){const{uint32View:a,float32View:o}=e,h=r/this.vertexSize,l=t.uvs,c=t.indices,u=t.vertexData,d=t._texture.baseTexture._batchLocation,f=Math.min(t.worldAlpha,1),m=Wt.shared.setValue(t._tintRGB).toPremultiplied(f,!0),p=Wt.shared.setValue(t._darkTintRGB).premultiply(f,!0).toPremultiplied(1,!1);for(let g=0;g<u.length;g+=2)o[r++]=u[g],o[r++]=u[g+1],o[r++]=l[g],o[r++]=l[g+1],a[r++]=m,a[r++]=p,o[r++]=d;for(let g=0;g<c.length;g++)s[n++]=h+c[g]}}x(gg,"extension",{name:"darkTintBatch",type:gt.RendererPlugin});St.add(gg);const ai=class ai extends zn{constructor(){const e=new Zc;e.getBuffer("aVertexPosition").static=!1,e.getBuffer("aTextureCoord").static=!1;const s=new rl(Nt.EMPTY);super(e,s);x(this,"name","");x(this,"warnedTwoTint",!1)}updateFromSpineData(e,s,r,n,a,o,h,l){var y,_;this.texture=e.texture;const c=a/(l?12:8)*2,u=this.geometry.getBuffer("aTextureCoord");((y=u.data)==null?void 0:y.length)!==c&&(u.data=new Float32Array(c));const d=this.geometry.getBuffer("aVertexPosition");((_=d.data)==null?void 0:_.length)!==c&&(d.data=new Float32Array(c));let f=0;const m=u.data,p=d.data;for(let v=0;v<a;v+=l?12:8){let b=v;p[f]=n[b++],p[f+1]=n[b++],b+=4,m[f]=n[b++],m[f+1]=n[b++],f+=2}l&&!this.warnedTwoTint&&(console.warn("DarkTint is not enabled by default. To enable use a DarkSlotMesh factory while creating the Spine object."),this.warnedTwoTint=!0),ai.auxColor[0]=n[2],ai.auxColor[1]=n[3],ai.auxColor[2]=n[4],ai.auxColor[3]=n[5],this.tint=ai.auxColor,this.alpha=ai.auxColor[3],this.blendMode=qn.toPixiBlending(s);const g=this.geometry.indexBuffer;if(g.data.length!==o.length)g.data=new Uint32Array(o);else{const v=g.data;for(let b=0;b<h;b++)v[b]=o[b]}this.name=r,u.update(),d.update(),g.update()}};x(ai,"auxColor",[0,0,0,0]);let yc=ai;class mL{constructor(t,e,s,r){x(this,"x");x(this,"y");x(this,"width");x(this,"height");this.x=t,this.y=e,this.width=s,this.height=r}calculateBounds(){return{x:this.x,y:this.y,width:this.width,height:this.height}}}class pL{constructor(t=!1){x(this,"clipping");this.clipping=t}calculateBounds(t){if(!t.skeleton)return{x:0,y:0,width:0,height:0};const e=new Mi(t.skeleton.data);e.setupPose(),e.updateWorldTransform(Os.update);const s=e.getBoundsRect(this.clipping?new ao:void 0);return s.width===Number.NEGATIVE_INFINITY?{x:0,y:0,width:0,height:0}:s}}class gL{constructor(t,e=[],s=.05,r=!1){x(this,"animation");x(this,"skins");x(this,"timeStep");x(this,"clipping");this.animation=t,this.skins=e,this.timeStep=s,this.clipping=r}calculateBounds(t){if(!t.skeleton||!t.state)return{x:0,y:0,width:0,height:0};const e=new qa(t.state.data),s=new Mi(t.skeleton.data),r=this.clipping?new ao:void 0,n=s.data;if(this.skins.length>0){const o=new Ka("custom-skin");for(const h of this.skins){const l=n.findSkin(h);l!=null&&o.addSkin(l)}s.setSkin(o)}s.setupPose();const a=this.animation!=null?n.findAnimation(this.animation):null;if(a==null){s.updateWorldTransform(Os.update);const o=s.getBoundsRect(r);return o.width===Number.NEGATIVE_INFINITY?{x:0,y:0,width:0,height:0}:o}else{let o=Number.POSITIVE_INFINITY,h=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;e.clearTracks(),e.setAnimation(0,a,!1);const u=Math.max(a.duration/this.timeStep,1);for(let f=0;f<u;f++){const m=f>0?this.timeStep:0;e.update(m),e.apply(s),s.update(m),s.updateWorldTransform(Os.update);const p=s.getBoundsRect(r);o=Math.min(o,p.x),h=Math.min(h,p.y),l=Math.max(l,p.x+p.width),c=Math.max(c,p.y+p.height)}const d={x:o,y:h,width:l-o,height:c-h};return d.width===Number.NEGATIVE_INFINITY?{x:0,y:0,width:0,height:0}:d}}}const $t=class $t extends fs{constructor(e){super();x(this,"skeleton");x(this,"state");x(this,"skeletonPhysics");x(this,"darkTint",!1);x(this,"hasNeverUpdated",!0);x(this,"_debug");x(this,"slotMeshFactory",()=>new yc);x(this,"beforeUpdateWorldTransforms",()=>{});x(this,"afterUpdateWorldTransforms",()=>{});x(this,"_autoUpdate",!1);x(this,"_ticker",ss.shared);x(this,"meshesCache",new Map);x(this,"lightColor",new Ft);x(this,"darkColor",new Ft);x(this,"clippingVertAux",new Float32Array(6));x(this,"_boundsProvider");x(this,"_boundsPoint",new Kt);x(this,"_boundsSpineID",-1);x(this,"_boundsSpineDirty",!0);x(this,"slotsObject",new Map);x(this,"verticesCache",bt.newFloatArray(1024));x(this,"clippingSlotToPixiMasks",{});e instanceof Bl?e={skeletonData:e}:"skeleton"in e&&(e=new.target.createOptions(e));const{autoUpdate:s=!0,boundsProvider:r,darkTint:n,skeletonData:a,ticker:o}=e;this.skeleton=new Mi(a),this.skeletonPhysics=new pg(this.skeleton,{readTransform:(h,l)=>this.readPhysicsTransform(h,l),worldToSkeleton:h=>this.pixiWorldCoordinatesToSkeleton(h)}),this.state=new qa(new og(a)),o&&(this._ticker=o),this.autoUpdate=s,this.boundsProvider=r,this.darkTint=n===void 0?this.skeleton.slots.some(h=>!!h.data.setupPose.darkColor):n,this.darkTint&&(this.slotMeshFactory=()=>new gc)}get debug(){return Line truncated
+3 -3
View File
@@ -9,9 +9,9 @@
html, body { margin: 0; padding: 0; background: #111; color: #eee; font-family: system-ui, -apple-system, sans-serif; }
#app { display: flex; flex-direction: column; height: 100vh; }
</style>
<script type="module" crossorigin src="/assets/index-2hiaaCNg.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-fsmZiMPK.js">
<link rel="stylesheet" crossorigin href="/assets/index-Br0H8csi.css">
<script type="module" crossorigin src="/assets/index-B7x1Nyv0.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-C2uhScDe.js">
<link rel="stylesheet" crossorigin href="/assets/index-C1nrR5m-.css">
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['enableLinkTracking']);