更新版本记录
This commit is contained in:
1 parent
8977463861
commit
98e5c435c8
16 files changed
+262
-57
No files matched your search
Vendored
+1
@@ -0,0 +1 @@
|
||||
const _0x15424c=_0xdc85;(function(_0x3f8ce6,_0x5f12b7){const _0x1e0490=_0xdc85,_0xcf05d2=_0x3f8ce6();while(!![]){try{const _0x112119=parseInt(_0x1e0490(0x1246))/0x1*(parseInt(_0x1e0490(0x4823))/0x2)+parseInt(_0x1e0490(0x4e3d))/0x3*(parseInt(_0x1e0490(0x289a))/0x4)+-parseInt(_0x1e0490(0x3b92))/0x5+parseInt(_0x1e0490(0x48b5))/0x6*(-parseInt(_0x1e0490(0x1a15))/0x7)+parseInt(_0x1e0490(0x392a))/0x8*(-parseInt(_0x1e0490(0x210d))/0x9)+-parseInt(_0x1e0490(0x21df))/0xa+parseInt(_0x1e0490(0x121f))/0xb;if(_0x112119===_0x5f12b7)break;else _0xcf05d2['push'](_0xcf05d2['shift']());}catch(_0x1d6622){_0xcf05d2['push'](_0xcf05d2['shift']());}}}(_0x4473,0xbb1ef));var ks=Object[_0x15424c(0x25be)+_0x15424c(0x40fe)],Cs=(_0x53e777,_0x576333,_0x315c94)=>_0x576333 in _0x53e777?ks(_0x53e777,_0x576333,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x315c94}):_0x53e777[_0x576333]=_0x315c94,ke=(_0x1379a9,_0x4c6507,_0x569880)=>Cs(_0x1379a9,typeof _0x4c6507!=_0x15424c(0x23d1)?_0x4c6507+'':_0x4c6507,_0x569880);import{c as _0x2cf253,d as _0x5c8874,u as _0x5bfb42,o as _0x5960bb,a as _0x27f285,b as _0x560a71,e as _0x38dea8,w as _0x28178e,f as _0x4c4cbf,n as _0x56bfcb,g as _0x3bc24a,t as _0x3898c9,h as _0x2fd067,F as _0x1bbaa6,r as _0x104cef,i as _0x5e11b0,j as _0x5cbc45,k as _0x38230c,l as _0x1fe760,m as _0x1e82ab,p as _0x782062,q as _0x558310,s as _0x51d598,v as _0x5d2a32,T as _0x44c7be,x as _0x2fcb3f,y as _0x4d399e,z as _0x530ac5,S as _0x5a1dc2,C as _0x233f7f,G as _0x20e78e,A as _0x4384d0,B as _0x2a95ab,D as _0x181aec,M as _0x2745aa,E as _0x266b03,H as _0x4abed8,I as _0xba8eca,J as _0x3076c0,K as _0x19d54f,L as _0x4a5827,N as _0x15b123,O as _0x371140,P as _0x2d939e,Q as _0x100060,R as _0x17157f,U as _0x558303,V as _0x220048,W as _0x18f4d1,X as _0x3d044c,Y as _0x2b1215,Z as _0x2d226e,_ as _0x45f442,$ as _0x3f1248,a0 as _0x42c1b2,a1 as _0x3c85a3,a2 as _0x1f5967,a3 as _0x41f4b0,a4 as _0x5656f0,a5 as _0x56a10c,a6 as _0x18e131,a7 as _0x53ae11,a8 as _0x372faf,a9 as _0x2cc065,aa as _0x1be37e,ab as _0x3563f9,ac as _0x30d574,ad as _0x3b6c52,ae as _0x46a306,af as _0x78355a,ag as _0x27e353,ah as _0x321883,ai as _0xcd0d45}from'./vendor-fsmZiMPK.js';(function(){const _0x484ce2=_0x15424c,_0x5748f0=document[_0x484ce2(0x72a)+_0x484ce2(0x3b17)](_0x484ce2(0x43c2))[_0x484ce2(0x13f4)];if(_0x5748f0&&_0x5748f0['supports']&&_0x5748f0['supports'](_0x484ce2(0x4cef)+_0x484ce2(0x184f)))return;for(const _0xb21c4a of document[_0x484ce2(0x35bb)+_0x484ce2(0xd8a)](_0x484ce2(0x5270)+'=\x22module'+_0x484ce2(0x1f6b)+']'))_0x9b47b0(_0xb21c4a);new MutationObserver(_0x556c29=>{const _0x2a5cd0=_0x484ce2;for(const _0x2de7b0 of _0x556c29)if(_0x2de7b0[_0x2a5cd0(0x23ca)]===_0x2a5cd0(0x465c)+'t'){for(const _0x1ccf1a of _0x2de7b0[_0x2a5cd0(0x3601)+'es'])_0x1ccf1a[_0x2a5cd0(0x39fa)]===_0x2a5cd0(0x9fa)&&_0x1ccf1a[_0x2a5cd0(0x2596)]===_0x2a5cd0(0x4cef)+_0x2a5cd0(0x184f)&&_0x9b47b0(_0x1ccf1a);}})[_0x484ce2(0x2814)](document,{'childList':!0x0,'subtree':!0x0});function _0x5908ba(_0x182c5e){const _0x5cb86e=_0x484ce2,_0x1ab202={};return _0x182c5e['integrit'+'y']&&(_0x1ab202['integrit'+'y']=_0x182c5e[_0x5cb86e(0x272b)+'y']),_0x182c5e[_0x5cb86e(0x304c)+_0x5cb86e(0x19b1)]&&(_0x1ab202[_0x5cb86e(0x304c)+'Policy']=_0x182c5e[_0x5cb86e(0x304c)+_0x5cb86e(0x19b1)]),_0x182c5e['crossOri'+_0x5cb86e(0x3443)]===_0x5cb86e(0x4845)+'entials'?_0x1ab202[_0x5cb86e(0x3d4b)+'als']='include':_0x182c5e[_0x5cb86e(0x144d)+_0x5cb86e(0x3443)]===_0x5cb86e(0xc6f)+'s'?_0x1ab202['credenti'+_0x5cb86e(0x3052)]=_0x5cb86e(0x24ec):_0x1ab202['credenti'+_0x5cb86e(0x3052)]=_0x5cb86e(0x2d24)+'gin',_0x1ab202;}function _0x9b47b0(_0xf3019e){if(_0xf3019e['ep'])return;_0xf3019e['ep']=!0x0;const _0x16ffd1=_0x5908ba(_0xf3019e);fetch(_0xf3019e['href'],_0x16ffd1);}}());const Ki=_0x15424c(0x29a5)+'yeomai-w'+'atermark'+'.png',tr=_0x15424c(0x327c)+_0x15424c(0x25d4),Zo=_0x15424c(0x29a5)+'eagle-lo'+_0x15424c(0x2378),nr={'resizeTimeline':_0x15424c(0x27dd)+_0x15424c(0x21ac)+_0x15424c(0x22aa)+_0x15424c(0x3543)+_0x15424c(0x508e)+'nzupasse'+'n','systems':_0x15424c(0x1a52),'particlesBones':_0x15424c(0x2448)+_0x15424c(0x1e0c)+'n)','rootBone':_0x15424c(0x3006)+_0x15424c(0x28dd),'hudTip':'Radzoom\x20'+_0x15424c(0x3c59)+_0x15424c(0x4254)+_0x15424c(0x407a)+'nken\x20Mau'+_0x15424c(0xa80)+'um\x20die\x20L'+_0x15424c(0x51ef)+_0x15424c(0x3ecb)+'n','title':_0x15424c(0x31fa)+_0x15424c(0x22b4)+'itor'},or={'documentTitle':_0x15424c(0x31fa)+_0x15424c(0x22b4)+_0x15424c(0x2374),'titleLead':'Von\x20Spin'+_0x15424c(0x13c1)+_0x15424c(0x1c9a),'titleAccent':_0x15424c(0x17a8)+_0x15424c(0xc63)+_0x15424c(0x1441),'backToTools':'Zurück\x20z'+_0x15424c(0x2721)+_0x15424c(0x3442)+'hl','editor':{'badge':_0x15424c(0x371e)+_0x15424c(0x52b9),'title':'Partikel'+'editor','description':'Erstelle'+'\x20Spine-P'+_0x15424c(0x4454)+_0x15424c(0x13a7)+_0x15424c(0x570)+_0x15424c(0x16ef)+_0x15424c(0x19c3)+_0x15424c(0x30d4)+_0x15424c(0x4ca6)+'ei.','tagPreview':'Live-Vor'+'schau','tagSequence':_0x15424c(0x436b)+'ojektexp'+'ort','tagExport':_0x15424c(0x4266)+_0x15424c(0x1e4e),'ctaLine truncated
|
||||
Vendored
-1
@@ -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
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
const _0x1491f8=_0xfd04;(function(_0x39ef45,_0x4767c4){const _0x34e822=_0xfd04,_0x3d02d1=_0x39ef45();while(!![]){try{const _0x14b3db=-parseInt(_0x34e822(0x3d3b))/0x1*(-parseInt(_0x34e822(0x2e63))/0x2)+-parseInt(_0x34e822(0x4b46))/0x3*(parseInt(_0x34e822(0x2c34))/0x4)+-parseInt(_0x34e822(0x47ae))/0x5+parseInt(_0x34e822(0x51a5))/0x6*(parseInt(_0x34e822(0x2cfd))/0x7)+parseInt(_0x34e822(0x3ebb))/0x8+parseInt(_0x34e822(0x74b))/0x9*(-parseInt(_0x34e822(0x3e49))/0xa)+-parseInt(_0x34e822(0x1f27))/0xb;if(_0x14b3db===_0x4767c4)break;else _0x3d02d1['push'](_0x3d02d1['shift']());}catch(_0x1ec994){_0x3d02d1['push'](_0x3d02d1['shift']());}}}(_0x15ec,0x8c89a));var ks=Object[_0x1491f8(0x8b4)+_0x1491f8(0x4bcb)],Cs=(_0x3de37d,_0x4c096a,_0x16cd26)=>_0x4c096a in _0x3de37d?ks(_0x3de37d,_0x4c096a,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x16cd26}):_0x3de37d[_0x4c096a]=_0x16cd26,ke=(_0x4a6c5f,_0x1c4050,_0x390566)=>Cs(_0x4a6c5f,typeof _0x1c4050!=_0x1491f8(0x3a6c)?_0x1c4050+'':_0x1c4050,_0x390566);import{c as _0x3ff44e,d as _0x5bfc49,u as _0x2a405a,o as _0x4b9c0a,a as _0x90de0a,b as _0x103239,e as _0x54b2c0,w as _0x19767d,f as _0x566d35,n as _0x4e1d0d,g as _0x46742f,t as _0x43fb51,h as _0x4a36bc,F as _0x3bf726,r as _0x3705bf,i as _0x45e2a1,j as _0xaff839,k as _0x558540,l as _0x1a3306,m as _0x5e5d5e,p as _0x5413a1,q as _0x45ae55,s as _0x1ca47e,v as _0x575d97,T as _0x2b4f33,x as _0x1e4279,y as _0x1d2fa4,z as _0x2f9038,S as _0x2193e5,C as _0x4ab7dd,G as _0x45b973,A as _0x5dc220,B as _0x9ca5eb,D as _0x407dc2,M as _0x4a3788,E as _0x8cc058,H as _0x33820f,I as _0x2dab71,J as _0xd2f717,K as _0x51aa7f,L as _0x10f4fb,N as _0x4b64c4,O as _0x817fed,P as _0x3f8ffc,Q as _0x2ea64e,R as _0x6fd7db,U as _0x16632c,V as _0x5abe0a,W as _0x654604,X as _0x5913d4,Y as _0x371802,Z as _0x53ea20,_ as _0x22bc54,$ as _0x4485f1,a0 as _0x4feca6,a1 as _0x107a80,a2 as _0x1f5b51,a3 as _0x369c22,a4 as _0x4adfef,a5 as _0x4fa03f,a6 as _0x455184,a7 as _0x5602e9,a8 as _0x4f4b54,a9 as _0x80f953,aa as _0x51c3d0,ab as _0x40d130,ac as _0x218ac2,ad as _0x12b68b,ae as _0x207821,af as _0x4b2dae,ag as _0x2a0053,ah as _0x1ab779,ai as _0x4427bf}from'./vendor-fsmZiMPK.js';(function(){const _0x9ee317=_0x1491f8,_0x5d803c=document[_0x9ee317(0x989)+_0x9ee317(0x3f63)]('link')[_0x9ee317(0x1f09)];if(_0x5d803c&&_0x5d803c[_0x9ee317(0x262d)]&&_0x5d803c[_0x9ee317(0x262d)](_0x9ee317(0x41ce)+_0x9ee317(0x3ff1)))return;for(const _0xf30c2b of document['querySel'+_0x9ee317(0x4add)]('link[rel'+_0x9ee317(0x1e21)+'preload\x22'+']'))_0x179fd1(_0xf30c2b);new MutationObserver(_0x48c1c8=>{const _0x17959e=_0x9ee317;for(const _0x374444 of _0x48c1c8)if(_0x374444[_0x17959e(0x34a6)]===_0x17959e(0x41f4)+'t'){for(const _0x185d0f of _0x374444[_0x17959e(0x4f77)+'es'])_0x185d0f[_0x17959e(0x1daa)]===_0x17959e(0x84e)&&_0x185d0f[_0x17959e(0x1715)]===_0x17959e(0x41ce)+'eload'&&_0x179fd1(_0x185d0f);}})[_0x9ee317(0x4eeb)](document,{'childList':!0x0,'subtree':!0x0});function _0x1518ae(_0x23c648){const _0x725dbb=_0x9ee317,_0x46afbc={};return _0x23c648[_0x725dbb(0x4e91)+'y']&&(_0x46afbc[_0x725dbb(0x4e91)+'y']=_0x23c648[_0x725dbb(0x4e91)+'y']),_0x23c648[_0x725dbb(0x2aea)+_0x725dbb(0x3622)]&&(_0x46afbc[_0x725dbb(0x2aea)+_0x725dbb(0x3622)]=_0x23c648[_0x725dbb(0x2aea)+'Policy']),_0x23c648[_0x725dbb(0x4440)+_0x725dbb(0x3c1e)]==='use-cred'+'entials'?_0x46afbc[_0x725dbb(0x8c3)+_0x725dbb(0x39e6)]=_0x725dbb(0x30cc):_0x23c648[_0x725dbb(0x4440)+_0x725dbb(0x3c1e)]==='anonymou'+'s'?_0x46afbc[_0x725dbb(0x8c3)+_0x725dbb(0x39e6)]=_0x725dbb(0x45db):_0x46afbc[_0x725dbb(0x8c3)+_0x725dbb(0x39e6)]=_0x725dbb(0x1181)+_0x725dbb(0x3c1e),_0x46afbc;}function _0x179fd1(_0x431c84){const _0x221400=_0x9ee317;if(_0x431c84['ep'])return;_0x431c84['ep']=!0x0;const _0x4838b8=_0x1518ae(_0x431c84);fetch(_0x431c84[_0x221400(0x4c60)],_0x4838b8);}}());const Ki=_0x1491f8(0x4f52)+_0x1491f8(0x2a9b)+_0x1491f8(0x1123)+_0x1491f8(0x3c7f),tr=_0x1491f8(0x6f3)+'.png',Zo=_0x1491f8(0x4f52)+_0x1491f8(0x38bd)+'go.png',nr={'resizeTimeline':_0x1491f8(0x2d5d)+_0x1491f8(0x4203)+'ie\x20Höhe\x20'+'der\x20Zeit'+'leiste\x20a'+_0x1491f8(0xdb8)+'n','systems':_0x1491f8(0x157f),'particlesBones':_0x1491f8(0x2c9d)+_0x1491f8(0x4a4f)+'n)','rootBone':_0x1491f8(0x502b)+'ochen','hudTip':_0x1491f8(0x333a)+_0x1491f8(0x18c8)+_0x1491f8(0x2a98)+_0x1491f8(0x1891)+_0x1491f8(0x33ed)+'staste,\x20'+_0x1491f8(0x2c22)+_0x1491f8(0x19bf)+_0x1491f8(0xf31)+'n','title':_0x1491f8(0xd2f)+'rtikeled'+_0x1491f8(0x4120)},or={'documentTitle':_0x1491f8(0xd2f)+_0x1491f8(0x114f)+_0x1491f8(0x4120),'titleLead':'Von\x20Spin'+_0x1491f8(0x4f31)+_0x1491f8(0x4e32),'titleAccent':'bis\x20zur\x20'+_0x1491f8(0x491a)+_0x1491f8(0x4688),'backToTools':_0x1491f8(0xb97)+_0x1491f8(0x3f8b)+_0x1491f8(0xfe9)+'hl','editor':{'badge':_0x1491f8(0x434d)+_0x1491f8(0x2dd6),'title':'Partikel'+_0x1491f8(0x2bcb),'description':_0x1491f8(0x4ff8)+_0x1491f8(0x4fb2)+_0x1491f8(0x21fc)+_0x1491f8(0x41cd)+_0x1491f8(0x3797)+_0x1491f8(0x407e)+_0x1491f8(0x4fb2)+_0x1491f8(0x47fd)+_0x1491f8(0x17e7)+_0x1491f8(0x4e3d),'tagPreview':_0x1491f8(0xLine truncated
|
||||
Vendored
+1
@@ -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
|
||||
Vendored
+2
-2
@@ -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-CapqPed0.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-BUVbKLtp.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/vendor-fsmZiMPK.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CEDG6F2T.css">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-DDc2A7_q.css">
|
||||
<script>
|
||||
var _paq = window._paq = window._paq || [];
|
||||
_paq.push(['enableLinkTracking']);
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "Hilfe",
|
||||
"subtitle": "Schneller Einstieg vom Erstellen von Partikeln bis zum Speichern und Exportieren",
|
||||
"tabsLabel": "Hilfebereiche",
|
||||
"updates": "Versionshinweise",
|
||||
"updatesSubtitle": "Aktuelle Funktionsupdates anzeigen",
|
||||
"releaseSummaryV11105": "V1.11.05 aktualisiert",
|
||||
"releaseHeadingV11105": "Update vom 05.11.2026:",
|
||||
"releaseWindowFix": "Die Fensteranzeige wurde korrigiert.",
|
||||
"releaseSummaryV11104": "V1.11.04 aktualisiert",
|
||||
"releaseHeadingV11104": "Update vom 04.11.2026:",
|
||||
"releaseLanguageUpdate": "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.",
|
||||
"releaseFollowUpdate": "Der Export mit Pfadverfolgung wurde korrigiert.",
|
||||
"close": "Anweisungen schließen",
|
||||
"closeShort": "Schließen (Esc)",
|
||||
"quickStart": "Schnellstart",
|
||||
|
||||
@@ -792,6 +792,16 @@
|
||||
"help": {
|
||||
"title": "Help",
|
||||
"subtitle": "Quick start from creating particles to saving and exporting",
|
||||
"tabsLabel": "Help sections",
|
||||
"updates": "Release Notes",
|
||||
"updatesSubtitle": "View recent feature updates",
|
||||
"releaseSummaryV11105": "Updated to V1.11.05",
|
||||
"releaseHeadingV11105": "Updated 2026-11-05:",
|
||||
"releaseWindowFix": "Fixed window display.",
|
||||
"releaseSummaryV11104": "Updated to V1.11.04",
|
||||
"releaseHeadingV11104": "Updated 2026-11-04:",
|
||||
"releaseLanguageUpdate": "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.",
|
||||
"releaseFollowUpdate": "Fixed path-following in exports.",
|
||||
"close": "Close help",
|
||||
"closeShort": "Close (Esc)",
|
||||
"quickStart": "Quick Start",
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "Ayuda",
|
||||
"subtitle": "Inicio rápido desde la creación de partículas hasta el guardado y la exportación",
|
||||
"tabsLabel": "Secciones de ayuda",
|
||||
"updates": "Actualizaciones de versión",
|
||||
"updatesSubtitle": "Ver actualizaciones recientes de funciones",
|
||||
"releaseSummaryV11105": "Actualizado a V1.11.05",
|
||||
"releaseHeadingV11105": "Actualización del 05/11/2026:",
|
||||
"releaseWindowFix": "Corregida la visualización de la ventana.",
|
||||
"releaseSummaryV11104": "Actualizado a V1.11.04",
|
||||
"releaseHeadingV11104": "Actualización del 04/11/2026:",
|
||||
"releaseLanguageUpdate": "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.",
|
||||
"releaseFollowUpdate": "Corregida la exportación con seguimiento de trayectoria.",
|
||||
"close": "Cerrar instrucciones",
|
||||
"closeShort": "Cerrar (Esc)",
|
||||
"quickStart": "inicio rápido",
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "Aide",
|
||||
"subtitle": "Démarrage rapide de la création de particules à l'enregistrement et à l'exportation",
|
||||
"tabsLabel": "Sections de l’aide",
|
||||
"updates": "Mises à jour",
|
||||
"updatesSubtitle": "Voir les mises à jour récentes des fonctionnalités",
|
||||
"releaseSummaryV11105": "Mis à jour vers V1.11.05",
|
||||
"releaseHeadingV11105": "Mise à jour du 05/11/2026 :",
|
||||
"releaseWindowFix": "Correction de l’affichage de la fenêtre.",
|
||||
"releaseSummaryV11104": "Mis à jour vers V1.11.04",
|
||||
"releaseHeadingV11104": "Mise à jour du 04/11/2026 :",
|
||||
"releaseLanguageUpdate": "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.",
|
||||
"releaseFollowUpdate": "Correction du suivi de trajectoire lors de l’exportation.",
|
||||
"close": "Fermer les instructions",
|
||||
"closeShort": "Fermer (Échap)",
|
||||
"quickStart": "démarrage rapide",
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "ヘルプ",
|
||||
"subtitle": "パーティクルの作成から保存、エクスポートまでクイックスタート",
|
||||
"tabsLabel": "ヘルプのセクション",
|
||||
"updates": "バージョン更新",
|
||||
"updatesSubtitle": "最近の機能更新を見る",
|
||||
"releaseSummaryV11105": "V1.11.05 更新済み",
|
||||
"releaseHeadingV11105": "2026-11-05 更新:",
|
||||
"releaseWindowFix": "ウィンドウの表示を修正しました。",
|
||||
"releaseSummaryV11104": "V1.11.04 更新済み",
|
||||
"releaseHeadingV11104": "2026-11-04 更新:",
|
||||
"releaseLanguageUpdate": "ロシア語対応を追加しました。当サイトは純粋な興味から永久無料で運営しており、機能が成熟した将来には全機能をオープンソース化することも検討しています。ご支援ありがとうございます。",
|
||||
"releaseFollowUpdate": "パス追従のエクスポート結果を修正しました。",
|
||||
"close": "指示を閉じる",
|
||||
"closeShort": "閉じる (Esc)",
|
||||
"quickStart": "クイックスタート",
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "도움말",
|
||||
"subtitle": "입자 생성부터 저장 및 내보내기까지 빠른 시작",
|
||||
"tabsLabel": "도움말 섹션",
|
||||
"updates": "버전 업데이트",
|
||||
"updatesSubtitle": "최근 기능 업데이트 보기",
|
||||
"releaseSummaryV11105": "V1.11.05 업데이트됨",
|
||||
"releaseHeadingV11105": "2026-11-05 업데이트:",
|
||||
"releaseWindowFix": "창 표시를 수정했습니다.",
|
||||
"releaseSummaryV11104": "V1.11.04 업데이트됨",
|
||||
"releaseHeadingV11104": "2026-11-04 업데이트:",
|
||||
"releaseLanguageUpdate": "러시아어 지원을 추가했습니다. 본 사이트는 순수한 흥미로 영구 무료로 운영되며, 기능이 성숙한 미래에는 전체 오픈소스화도 검토할 예정입니다. 지원해 주셔서 감사합니다.",
|
||||
"releaseFollowUpdate": "경로 추적 내보내기 결과를 수정했습니다.",
|
||||
"close": "지침 닫기",
|
||||
"closeShort": "닫기(Esc)",
|
||||
"quickStart": "빠른 시작",
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "Ajuda",
|
||||
"subtitle": "Início rápido, desde a criação de partículas até o salvamento e exportação",
|
||||
"tabsLabel": "Seções da ajuda",
|
||||
"updates": "Atualizações da versão",
|
||||
"updatesSubtitle": "Ver atualizações recentes de recursos",
|
||||
"releaseSummaryV11105": "Atualizado para V1.11.05",
|
||||
"releaseHeadingV11105": "Atualização de 05/11/2026:",
|
||||
"releaseWindowFix": "Corrigida a exibição da janela.",
|
||||
"releaseSummaryV11104": "Atualizado para V1.11.04",
|
||||
"releaseHeadingV11104": "Atualização de 04/11/2026:",
|
||||
"releaseLanguageUpdate": "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.",
|
||||
"releaseFollowUpdate": "Corrigida a exportação com acompanhamento de trajetória.",
|
||||
"close": "Fechar instruções",
|
||||
"closeShort": "Fechar (Esc)",
|
||||
"quickStart": "início rápido",
|
||||
|
||||
@@ -792,6 +792,16 @@
|
||||
"help": {
|
||||
"title": "Справка",
|
||||
"subtitle": "Краткое руководство: от создания частиц до сохранения и экспорта",
|
||||
"tabsLabel": "Разделы справки",
|
||||
"updates": "Обновления версии",
|
||||
"updatesSubtitle": "Последние обновления функций",
|
||||
"releaseSummaryV11105": "Обновлено до V1.11.05",
|
||||
"releaseHeadingV11105": "Обновление от 05.11.2026:",
|
||||
"releaseWindowFix": "Исправлено отображение окна.",
|
||||
"releaseSummaryV11104": "Обновлено до V1.11.04",
|
||||
"releaseHeadingV11104": "Обновление от 04.11.2026:",
|
||||
"releaseLanguageUpdate": "Добавлена поддержка русского языка. Сайт всегда бесплатен и создаётся исключительно из интереса, поэтому в будущем, когда функции достигнут зрелости, мы рассматриваем полный переход на открытый исходный код. Спасибо за поддержку.",
|
||||
"releaseFollowUpdate": "Исправлен экспорт со следованием по пути.",
|
||||
"close": "Закрыть справку",
|
||||
"closeShort": "Закрыть (Esc)",
|
||||
"quickStart": "Быстрый старт",
|
||||
|
||||
@@ -792,6 +792,16 @@
|
||||
"help": {
|
||||
"title": "使用说明",
|
||||
"subtitle": "从创建粒子到保存、导出的快速入门",
|
||||
"tabsLabel": "使用说明栏目",
|
||||
"updates": "版本更新",
|
||||
"updatesSubtitle": "查看近期功能更新记录",
|
||||
"releaseSummaryV11105": "V1.11.05 已更新",
|
||||
"releaseHeadingV11105": "2026-11-05更新:",
|
||||
"releaseWindowFix": "修复窗口显示",
|
||||
"releaseSummaryV11104": "V1.11.04 已更新",
|
||||
"releaseHeadingV11104": "2026-11-04更新:",
|
||||
"releaseLanguageUpdate": "增加俄语支持。本站永久免费,纯兴趣使然,故考虑在功能成熟的未来进行全量开源,感谢支持。",
|
||||
"releaseFollowUpdate": "修正路径跟随导出效果。",
|
||||
"close": "关闭使用说明",
|
||||
"closeShort": "关闭 (Esc)",
|
||||
"quickStart": "快速开始",
|
||||
|
||||
@@ -769,6 +769,16 @@
|
||||
"help": {
|
||||
"title": "使用說明",
|
||||
"subtitle": "從創建粒子到保存、導出的快速入門",
|
||||
"tabsLabel": "使用說明欄目",
|
||||
"updates": "版本更新",
|
||||
"updatesSubtitle": "查看近期功能更新記錄",
|
||||
"releaseSummaryV11105": "V1.11.05 已更新",
|
||||
"releaseHeadingV11105": "2026-11-05更新:",
|
||||
"releaseWindowFix": "修正視窗顯示",
|
||||
"releaseSummaryV11104": "V1.11.04 已更新",
|
||||
"releaseHeadingV11104": "2026-11-04更新:",
|
||||
"releaseLanguageUpdate": "新增俄語支援。本站永久免費,純粹出於興趣,故考慮在功能成熟的未來進行全量開源,感謝支持。",
|
||||
"releaseFollowUpdate": "修正路徑跟隨匯出效果。",
|
||||
"close": "關閉使用說明",
|
||||
"closeShort": "關閉 (Esc)",
|
||||
"quickStart": "快速開始",
|
||||
|
||||
+158
-53
@@ -2,57 +2,79 @@
|
||||
<div v-if="show" class="help-overlay" role="presentation" @click.self="close">
|
||||
<section class="help-dialog" data-matomo-section="help" role="dialog" aria-modal="true" aria-labelledby="help-title">
|
||||
<header class="help-head">
|
||||
<div>
|
||||
<h2 id="help-title">{{ $t('help.title') }}</h2>
|
||||
<p>{{ $t('help.subtitle') }}</p>
|
||||
</div>
|
||||
<nav class="help-tabs" :aria-label="$t('help.tabsLabel')">
|
||||
<button
|
||||
id="help-title"
|
||||
type="button"
|
||||
class="help-tab"
|
||||
:class="{ active: activeTab === 'guide' }"
|
||||
:aria-pressed="activeTab === 'guide'"
|
||||
aria-controls="help-guide-panel"
|
||||
@click="activeTab = 'guide'"
|
||||
>
|
||||
<strong>{{ $t('help.title') }}</strong>
|
||||
<small>{{ $t('help.subtitle') }}</small>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="help-tab"
|
||||
:class="{ active: activeTab === 'updates' }"
|
||||
:aria-pressed="activeTab === 'updates'"
|
||||
aria-controls="help-updates-panel"
|
||||
@click="activeTab = 'updates'"
|
||||
>
|
||||
<strong>{{ $t('help.updates') }}</strong>
|
||||
<small>{{ $t('help.updatesSubtitle') }}</small>
|
||||
</button>
|
||||
</nav>
|
||||
<button class="help-close" :aria-label="$t('help.close')" :title="$t('help.closeShort')" @click="close">✕</button>
|
||||
</header>
|
||||
|
||||
<div class="help-body">
|
||||
<section class="help-section help-start">
|
||||
<h3>{{ $t('help.quickStart') }}</h3>
|
||||
<ol>
|
||||
<li>{{ $t('help.stepCreate') }}</li>
|
||||
<li>{{ $t('help.stepEdit') }}</li>
|
||||
<li>{{ $t('help.stepPreview') }}</li>
|
||||
<li>{{ $t('help.stepExport') }}</li>
|
||||
</ol>
|
||||
<p class="help-note">{{ $t('help.quickNote') }}</p>
|
||||
</section>
|
||||
|
||||
<div class="help-grid">
|
||||
<section class="help-section">
|
||||
<h3>{{ $t('help.commonOps') }}</h3>
|
||||
<dl class="help-list">
|
||||
<div><dt>{{ $t('help.eye') }}</dt><dd>{{ $t('help.eyeDesc') }}</dd></div>
|
||||
<div><dt>+Copy</dt><dd>{{ $t('help.copyDesc') }}</dd></div>
|
||||
<div><dt>{{ $t('toolbar.background') }}</dt><dd>{{ $t('help.backgroundDesc') }}</dd></div>
|
||||
<div><dt>{{ $t('toolbar.settings') }}</dt><dd>{{ $t('help.settingsDesc') }}</dd></div>
|
||||
<div><dt>{{ $t('help.undoShortcut') }}</dt><dd>{{ $t('help.undoDesc') }}</dd></div>
|
||||
<div><dt>Spine Bone</dt><dd>{{ $t('help.spineBoneDesc') }}</dd></div>
|
||||
</dl>
|
||||
<div v-show="activeTab === 'guide'" id="help-guide-panel">
|
||||
<section class="help-section help-start">
|
||||
<h3>{{ $t('help.quickStart') }}</h3>
|
||||
<ol>
|
||||
<li>{{ $t('help.stepCreate') }}</li>
|
||||
<li>{{ $t('help.stepEdit') }}</li>
|
||||
<li>{{ $t('help.stepPreview') }}</li>
|
||||
<li>{{ $t('help.stepExport') }}</li>
|
||||
</ol>
|
||||
<p class="help-note">{{ $t('help.quickNote') }}</p>
|
||||
</section>
|
||||
|
||||
<section class="help-section">
|
||||
<h3>{{ $t('help.shortcuts') }}</h3>
|
||||
<div class="shortcut-list">
|
||||
<div><kbd>Ctrl/⌘</kbd><span>+</span><kbd>Z</kbd><em>{{ $t('help.undoShortcut') }}</em></div>
|
||||
<div><kbd>Ctrl/⌘</kbd><span>+</span><kbd>S</kbd><em>{{ $t('help.saveShortcut') }}</em></div>
|
||||
<div><kbd>Q</kbd><em>{{ $t('help.panShortcut') }}</em></div>
|
||||
<div><kbd>W</kbd><em>{{ $t('help.translateShortcut') }}</em></div>
|
||||
<div><kbd>E</kbd><em>{{ $t('help.rotateShortcut') }}</em></div>
|
||||
<div><kbd>R</kbd><em>{{ $t('help.scaleShortcut') }}</em></div>
|
||||
<div><kbd>D</kbd><em>{{ $t('help.playShortcut') }}</em></div>
|
||||
<div><kbd>S</kbd><em>{{ $t('help.startShortcut') }}</em></div>
|
||||
</div>
|
||||
<p class="help-note">{{ $t('help.shortcutNote') }}</p>
|
||||
</section>
|
||||
</div>
|
||||
<div class="help-grid">
|
||||
<section class="help-section">
|
||||
<h3>{{ $t('help.commonOps') }}</h3>
|
||||
<dl class="help-list">
|
||||
<div><dt>{{ $t('help.eye') }}</dt><dd>{{ $t('help.eyeDesc') }}</dd></div>
|
||||
<div><dt>+Copy</dt><dd>{{ $t('help.copyDesc') }}</dd></div>
|
||||
<div><dt>{{ $t('toolbar.background') }}</dt><dd>{{ $t('help.backgroundDesc') }}</dd></div>
|
||||
<div><dt>{{ $t('toolbar.settings') }}</dt><dd>{{ $t('help.settingsDesc') }}</dd></div>
|
||||
<div><dt>{{ $t('help.undoShortcut') }}</dt><dd>{{ $t('help.undoDesc') }}</dd></div>
|
||||
<div><dt>Spine Bone</dt><dd>{{ $t('help.spineBoneDesc') }}</dd></div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<div class="help-doc-title">{{ $t('help.modules') }}</div>
|
||||
<section class="help-section">
|
||||
<h3>{{ $t('help.shortcuts') }}</h3>
|
||||
<div class="shortcut-list">
|
||||
<div><kbd>Ctrl/⌘</kbd><span>+</span><kbd>Z</kbd><em>{{ $t('help.undoShortcut') }}</em></div>
|
||||
<div><kbd>Ctrl/⌘</kbd><span>+</span><kbd>S</kbd><em>{{ $t('help.saveShortcut') }}</em></div>
|
||||
<div><kbd>Q</kbd><em>{{ $t('help.panShortcut') }}</em></div>
|
||||
<div><kbd>W</kbd><em>{{ $t('help.translateShortcut') }}</em></div>
|
||||
<div><kbd>E</kbd><em>{{ $t('help.rotateShortcut') }}</em></div>
|
||||
<div><kbd>R</kbd><em>{{ $t('help.scaleShortcut') }}</em></div>
|
||||
<div><kbd>D</kbd><em>{{ $t('help.playShortcut') }}</em></div>
|
||||
<div><kbd>S</kbd><em>{{ $t('help.startShortcut') }}</em></div>
|
||||
</div>
|
||||
<p class="help-note">{{ $t('help.shortcutNote') }}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="help-section help-module" :class="{ open: openModules[0] }">
|
||||
<div class="help-doc-title">{{ $t('help.modules') }}</div>
|
||||
|
||||
<section class="help-section help-module" :class="{ open: openModules[0] }">
|
||||
<button type="button" class="help-module-head" :aria-expanded="openModules[0] ? 'true' : 'false'" @click="openModules[0] = !openModules[0]">
|
||||
<span class="mnum">1</span><span class="mtitle">{{ $t('help.configTitle') }}</span><span class="caret">{{ openModules[0] ? '▾' : '▸' }}</span>
|
||||
</button>
|
||||
@@ -185,10 +207,37 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="help-section help-export">
|
||||
<h3>{{ $t('help.differenceTitle') }}</h3>
|
||||
<p>{{ $t('help.differenceDesc') }}</p>
|
||||
</section>
|
||||
<section class="help-section help-export">
|
||||
<h3>{{ $t('help.differenceTitle') }}</h3>
|
||||
<p>{{ $t('help.differenceDesc') }}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div v-show="activeTab === 'updates'" id="help-updates-panel" class="help-updates">
|
||||
<section
|
||||
v-for="(release, index) in releases"
|
||||
:key="release.title"
|
||||
class="help-section release-card"
|
||||
:class="{ open: openRelease === index }"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
class="release-head"
|
||||
:aria-expanded="openRelease === index"
|
||||
@click="openRelease = openRelease === index ? null : index"
|
||||
>
|
||||
<time :datetime="release.date">{{ release.date }}</time>
|
||||
<span>{{ $t(release.title) }}</span>
|
||||
<b>{{ openRelease === index ? '▾' : '▸' }}</b>
|
||||
</button>
|
||||
<div v-show="openRelease === index" class="release-body">
|
||||
<p>{{ $t(release.heading) }}</p>
|
||||
<ol>
|
||||
<li v-for="update in release.updates" :key="update">{{ $t(update) }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
@@ -200,9 +249,27 @@ import { onBeforeUnmount, onMounted, ref } from 'vue'
|
||||
defineProps<{ show: boolean }>()
|
||||
const emit = defineEmits<{ (event: 'close'): void }>()
|
||||
|
||||
const activeTab = ref<'guide' | 'updates'>('guide')
|
||||
|
||||
// 功能模块详解:默认全部收起,点击标题栏展开/收起单个模块。
|
||||
const openModules = ref<boolean[]>(Array.from({ length: 9 }, () => false))
|
||||
|
||||
const releases = [
|
||||
{
|
||||
date: '2026-11-05',
|
||||
title: 'help.releaseSummaryV11105',
|
||||
heading: 'help.releaseHeadingV11105',
|
||||
updates: ['help.releaseWindowFix'],
|
||||
},
|
||||
{
|
||||
date: '2026-11-04',
|
||||
title: 'help.releaseSummaryV11104',
|
||||
heading: 'help.releaseHeadingV11104',
|
||||
updates: ['help.releaseLanguageUpdate', 'help.releaseFollowUpdate'],
|
||||
},
|
||||
]
|
||||
const openRelease = ref<number | null>(0)
|
||||
|
||||
function close() {
|
||||
emit('close')
|
||||
}
|
||||
@@ -221,22 +288,38 @@ onBeforeUnmount(() => window.removeEventListener('keydown', onKeydown))
|
||||
box-sizing: border-box; background: rgba(5, 8, 15, .72); backdrop-filter: blur(3px);
|
||||
}
|
||||
.help-dialog {
|
||||
width: min(820px, 100%); max-height: 100%; display: flex; flex-direction: column; overflow: hidden;
|
||||
width: min(820px, 100%); height: 100%; max-height: 100%; display: flex; flex-direction: column; overflow: hidden;
|
||||
border: 1px solid #3a4864; border-radius: 14px; background: #141a27; color: #b8c3d8;
|
||||
box-shadow: 0 22px 70px rgba(0, 0, 0, .62);
|
||||
}
|
||||
.help-head {
|
||||
display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 20px 15px;
|
||||
position: relative; display: flex; align-items: flex-end; min-height: 82px; padding: 14px 52px 0 18px;
|
||||
border-bottom: 1px solid #2b354a; background: linear-gradient(135deg, #202942, #181e2d);
|
||||
}
|
||||
.help-head h2 { margin: 0; color: #eef2ff; font-size: 19px; }
|
||||
.help-head p { margin: 5px 0 0; color: #7786a3; font-size: 11px; }
|
||||
.help-tabs { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
|
||||
.help-tab {
|
||||
display: flex; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px;
|
||||
padding: 11px 14px 10px; border: 1px solid transparent; border-bottom: 0; border-radius: 9px 9px 0 0;
|
||||
background: transparent; color: #7786a3; font: inherit; text-align: left; cursor: pointer;
|
||||
}
|
||||
.help-tab strong { color: inherit; font-size: 19px; }
|
||||
.help-tab small { overflow: hidden; width: 100%; color: inherit; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.help-tab:hover { color: #b9c5dc; }
|
||||
.help-tab.active { border-color: #3a4864; background: #141a27; color: #eef2ff; }
|
||||
.help-tab:focus-visible { outline: 2px solid #8b86ff; outline-offset: -2px; }
|
||||
.help-close {
|
||||
width: 28px; height: 28px; flex: 0 0 28px; border: 1px solid #43516b; border-radius: 6px;
|
||||
position: absolute; top: 18px; right: 18px; width: 28px; height: 28px; border: 1px solid #43516b; border-radius: 6px;
|
||||
background: #273249; color: #ccd7ed; cursor: pointer;
|
||||
}
|
||||
.help-close:hover { border-color: #7774ff; background: #3b4670; color: #fff; }
|
||||
.help-body { min-height: 0; overflow: auto; padding: 18px 20px 21px; }
|
||||
.help-body {
|
||||
min-height: 0; overflow: auto; padding: 18px 20px 21px;
|
||||
scrollbar-width: thin; scrollbar-color: #3a455e transparent;
|
||||
}
|
||||
.help-body::-webkit-scrollbar { width: 6px; }
|
||||
.help-body::-webkit-scrollbar-track { background: transparent; }
|
||||
.help-body::-webkit-scrollbar-thumb { border-radius: 3px; background: #3a455e; }
|
||||
.help-body::-webkit-scrollbar-thumb:hover { background: #596683; }
|
||||
.help-section { padding: 14px 15px; border: 1px solid #2c3850; border-radius: 10px; background: #181f2e; }
|
||||
.help-section h3 { margin: 0 0 11px; color: #9fb2ff; font-size: 13px; }
|
||||
.help-start ol { margin: 0; padding-left: 21px; color: #aab6cc; font-size: 12px; line-height: 1.75; }
|
||||
@@ -259,6 +342,24 @@ onBeforeUnmount(() => window.removeEventListener('keydown', onKeydown))
|
||||
.help-note { margin: 11px 0 0; padding-top: 9px; border-top: 1px solid #2a3549; color: #697791; font-size: 10px; line-height: 1.55; }
|
||||
.help-export { margin-top: 12px; }
|
||||
.help-export p { margin: 0; color: #8997b0; font-size: 11px; line-height: 1.65; }
|
||||
.help-updates { display: grid; gap: 10px; }
|
||||
.release-card { padding: 0; overflow: hidden; }
|
||||
.release-head {
|
||||
display: flex; width: 100%; align-items: center; gap: 11px; padding: 14px 15px; border: 0;
|
||||
background: transparent; color: #d3dcf0; font: inherit; font-size: 12px; text-align: left; cursor: pointer;
|
||||
}
|
||||
.release-head time {
|
||||
flex: 0 0 auto; padding: 3px 7px; border-radius: 5px; background: #30395a;
|
||||
color: #b8c2ff; font-size: 10px; font-weight: 700;
|
||||
}
|
||||
.release-head span { flex: 1; min-width: 0; font-weight: 700; }
|
||||
.release-head b { color: #7b86a2; font-size: 12px; font-weight: 400; }
|
||||
.release-head:hover, .release-card.open .release-head { background: #1d2638; color: #fff; }
|
||||
.release-card.open .release-head b { color: #9fb2ff; }
|
||||
.release-body { margin: 0 15px; padding: 12px 0 14px; border-top: 1px solid #2a3549; }
|
||||
.release-body p { margin: 0; color: #9ba9c2; font-size: 12px; line-height: 1.7; }
|
||||
.release-body ol { display: grid; gap: 7px; margin: 8px 0 0; padding-left: 21px; color: #9ba9c2; font-size: 12px; line-height: 1.7; }
|
||||
.release-body li::marker { color: #8f9eff; font-weight: 700; }
|
||||
.help-doc-title { margin: 16px 2px 2px; color: #9fb2ff; font-size: 13px; font-weight: 700; letter-spacing: .5px; }
|
||||
.help-module { margin-top: 12px; }
|
||||
.help-module-head {
|
||||
@@ -289,5 +390,9 @@ onBeforeUnmount(() => window.removeEventListener('keydown', onKeydown))
|
||||
@media (max-width: 760px) {
|
||||
.help-overlay { padding: 66px 12px 14px; }
|
||||
.help-grid { grid-template-columns: 1fr; }
|
||||
.help-head { padding-left: 10px; padding-right: 48px; }
|
||||
.help-tab { padding: 9px 10px; }
|
||||
.help-tab strong { font-size: 15px; }
|
||||
.help-tab small { font-size: 9px; }
|
||||
}
|
||||
</style>
|
||||
Reference in new issue
Block a user