@devframes/hub-ui 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/embedded.js +12433 -6788
- package/dist/client/standalone/assets/DockStandalone-DmKlcLSi.js +5 -0
- package/dist/client/standalone/assets/{browser-agent-rpc-BXhoSh1z-BXjEC3fI.js → browser-agent-rpc-BXhoSh1z-BGwGAFgw.js} +1 -1
- package/dist/client/standalone/assets/context-DXAKT0Qy.js +1 -0
- package/dist/client/standalone/assets/de-0EYlkrf7.js +1 -0
- package/dist/client/standalone/assets/es-NBKbdCFk.js +1 -0
- package/dist/client/standalone/assets/fr-Cogcs7Zt.js +1 -0
- package/dist/client/standalone/assets/index-DHmJGo7c.js +11 -0
- package/dist/client/standalone/assets/ja-CSSMrYtx.js +1 -0
- package/dist/client/standalone/assets/ko--HUHLftu.js +1 -0
- package/dist/client/standalone/assets/popup-7nXO1R7H.js +4 -0
- package/dist/client/standalone/assets/pt-BR-Sm_tTRgU.js +1 -0
- package/dist/client/standalone/assets/ru-CpPe8qoW.js +1 -0
- package/dist/client/standalone/assets/zh-CN-DH0fIxQ0.js +1 -0
- package/dist/client/standalone/assets/zh-TW-BGbhPyn7.js +1 -0
- package/dist/client/standalone/index.html +1 -1
- package/dist/index.d.mts +37 -1
- package/dist/index.mjs +24 -2
- package/package.json +21 -20
- package/dist/client/standalone/assets/DockStandalone-DYHlZBZ4.js +0 -3
- package/dist/client/standalone/assets/context-21-OkK1E.js +0 -1
- package/dist/client/standalone/assets/index-Co92Bzrl.js +0 -9
- package/dist/client/standalone/assets/popup-liQVtB70.js +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-DmKlcLSi.js","./index-DHmJGo7c.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$n as e,$r as t,Dt as n,Mr as r,Qr as i,Xr as a,_ as o,g as s,p as c,s as l,v as u,x as d}from"./index-DHmJGo7c.js";var f={bus:{agentManifestChanged:`agent:manifest:changed`,agentToolRegistered:`agent:tool:registered`,agentToolUnregistered:`agent:tool:unregistered`,agentResourceRegistered:`agent:resource:registered`,agentResourceUnregistered:`agent:resource:unregistered`},client:{isTrustedUpdated:`rpc:is-trusted:updated`,error:`rpc:error`,connectionStatus:`connection:status`,connectionError:`connection:error`},broadcast:{authRevoked:`devframe:auth:revoked`,clientStateUpdated:`devframe:rpc:client-state:updated`,clientStatePatch:`devframe:rpc:client-state:patch`,streamingChunk:`devframe:streaming:chunk`,streamingEnd:`devframe:streaming:end`,streamingUploadCancel:`devframe:streaming:upload-cancel`},inPageChannel:{panelStateUpdated:`devframe:in-page:panel-state:updated`,panelStatePatch:`devframe:in-page:panel-state:patch`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`,inPageChannel:`devframe:in-page-channel`}},p=`devframe-remote-connection`,ee=f.postMessage.remoteAssetsError,te=/^[a-z][a-z\d+.-]*:/i;function m(e){let t=e.trim();return!!t&&!t.startsWith(`/`)&&!t.startsWith(`./`)&&!t.startsWith(`../`)&&!te.test(t)}function h(e,t={}){if(!m(e))return e;let n=t.resolveClientModule?.(e);if(n)return n;if(!t.template)return e;let r=t.template.includes(`{specifier}`)?t.template.replaceAll(`{specifier}`,e):t.template+e;try{return new URL(r,t.metaBaseUrl).href}catch{return r}}function ne(e,t){return m(e)?t===e?". The specifier is a bare npm specifier and this host advertises no client-module resolution (`ConnectionMeta.configs.dock.clientModuleResolution`). Serve the script as a self-contained bundle by URL, pass `resolveClientModule` to this client host, or run under a host that resolves bare specifiers (e.g. Vite: `/@id/{specifier}`).":`. The host resolved the bare specifier "${e}" to this URL but could not serve the module. Check the package is installed and resolvable from the host project's root (and built, if its exports point at build output).`:``}function g(e){let t=e.split(`&`),n=t.filter(e=>e.split(`=`)[0]!==p);return[n.join(`&`),n.length!==t.length]}function re(e){let t=e.indexOf(`?`);if(t===-1)return g(e);let n=e.slice(0,t),[r,i]=g(e.slice(t+1));return i?[r?`${n}?${r}`:n,!0]:[e,!1]}function ie(e){let t=e.indexOf(`?`);if(t===-1)return[e,!1];let n=e.slice(0,t),[r,i]=g(e.slice(t+1));return i?[r?`${n}?${r}`:n,!0]:[e,!1]}function ae(e){let t=e.indexOf(`#`),n=t===-1?void 0:e.slice(t+1),r=t===-1?e:e.slice(0,t),[i,a]=n===void 0?[void 0,!1]:re(n),[o,s]=ie(r);return!a&&!s?e:i?`${o}#${i}`:o}var oe=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],se=/[a-z_$]/i,ce=/[\w$.:]/,_=/\d/,le=/\s/;function ue(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(le.test(r)){n++;continue}if(r===`(`){t.push({type:`lparen`}),n++;continue}if(r===`)`){t.push({type:`rparen`}),n++;continue}let i=!1;for(let r of oe)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(_.test(r)){let r=n;for(;r<e.length&&_.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&_.test(e[r+1]))for(r++;r<e.length&&_.test(e[r]);)r++;t.push({type:`number`,value:Number(e.slice(n,r))}),n=r;continue}if(r===`"`||r===`'`){let i=r,a=n+1,o=``;for(;a<e.length&&e[a]!==i;)if(e[a]===`\\`&&a+1<e.length){let t=e[a+1];o+=t===`n`?`
|
|
3
|
+
`:t===`t`?` `:t,a+=2}else o+=e[a],a++;if(a>=e.length)throw Error(`Unterminated string literal at position ${n}`);a++,t.push({type:`string`,value:o}),n=a;continue}if(se.test(r)){let r=n;for(;r<e.length&&ce.test(e[r]);)r++;let i=e.slice(n,r);i===`true`?t.push({type:`bool`,value:!0}):i===`false`?t.push({type:`bool`,value:!1}):t.push({type:`ident`,value:i}),n=r;continue}throw Error(`Unexpected character "${r}" at position ${n}`)}}return t.push({type:`eof`}),t}function de(e){let t=ue(e),n=0,r=()=>t[n],i=()=>t[n++],a=e=>{let t=r();return t.type===`op`&&t.value===e},o=()=>{let e=i();if(e.type!==`op`)throw Error(`internal: expected operator token, got ${v(e)}`);return e.value};function s(){let e=c();for(;a(`||`);)i(),e={type:`binary`,op:`||`,left:e,right:c()};return e}function c(){let e=l();for(;a(`&&`);)i(),e={type:`binary`,op:`&&`,left:e,right:l()};return e}function l(){let e=u();for(;a(`===`)||a(`!==`)||a(`==`)||a(`!=`);){let t=o(),n=t===`==`||t===`!=`?te():u();e={type:`binary`,op:t,left:e,right:n}}return e}function u(){let e=d();for(;a(`<=`)||a(`>=`)||a(`<`)||a(`>`);)e={type:`binary`,op:o(),left:e,right:d()};return e}function d(){let e=f();for(;a(`+`)||a(`-`);)e={type:`binary`,op:o(),left:e,right:f()};return e}function f(){let e=p();for(;a(`*`)||a(`/`)||a(`%`);)e={type:`binary`,op:o(),left:e,right:p()};return e}function p(){return a(`!`)||a(`-`)||a(`+`)?{type:`unary`,op:o(),operand:p()}:ee()}function ee(){let e=r();if(e.type===`number`||e.type===`string`||e.type===`bool`)return i(),{type:`literal`,value:e.value};if(e.type===`ident`)return i(),{type:`key`,key:e.value};if(e.type===`lparen`){i();let e=s(),t=r();if(t.type!==`rparen`)throw Error(`Expected ")" but got ${v(t)}`);return i(),e}throw Error(`Unexpected token: ${v(e)}`)}function te(){let e=r();if(e.type===`string`)return i(),{type:`literal`,value:e.value};if(e.type===`number`||e.type===`bool`)return i(),{type:`literal`,value:String(e.value)};if(e.type===`ident`)return i(),{type:`literal`,value:e.value};throw Error(`Expected value literal or identifier on right side of equality, got ${v(e)}`)}let m=s(),h=r();if(h.type!==`eof`)throw Error(`Unexpected token: ${v(h)}`);return m}function v(e){switch(e.type){case`eof`:return`end of expression`;case`lparen`:return`"("`;case`rparen`:return`")"`;case`op`:case`ident`:case`string`:return`"${e.value}"`;case`number`:case`bool`:return`"${String(e.value)}"`}}function fe(e,t,n={}){let{strict:r=!1}=n;return!!y(e,t,r)}function y(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return ge(e.key,t,n);case`unary`:return pe(e.op,y(e.operand,t,n));case`binary`:return me(e,t,n)}}function pe(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function me(e,t,n){let{op:r}=e;if(r===`&&`)return y(e.left,t,n)&&y(e.right,t,n);if(r===`||`)return y(e.left,t,n)||y(e.right,t,n);let i=y(e.left,t,n),a=y(e.right,t,n);switch(r){case`==`:return String(i)===String(a);case`!=`:return String(i)!==String(a);case`===`:return i===a;case`!==`:return i!==a;case`<`:return i<a;case`>`:return i>a;case`<=`:return i<=a;case`>=`:return i>=a;case`+`:return i+a;case`-`:return i-a;case`*`:return i*a;case`/`:return i/a;case`%`:return i%a}}function he(e,t,n){return fe(de(e),t,n)}function ge(e,t,n){let{found:r,value:i}=_e(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function _e(e,t){if(e in t)return{found:!0,value:t[e]};let n=e.includes(`.`)?`.`:e.includes(`:`)?`:`:null;if(n){let r=e.split(n),i=t;for(let e of r){if(typeof i!=`object`||!i)return{found:!1,value:void 0};let t=i;if(!(e in t))return{found:!1,value:void 0};i=t[e]}return{found:!0,value:i}}return{found:!1,value:void 0}}function b(e,t,n){return he(e,t,n)}var ve=`devframes:hub-ui:hide`,ye=`devframes_plugin_terminals`,be=`devframes_plugin_messages`,xe=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),Se=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),Ce=Object.freeze([xe,Se]),x=Object.freeze({showIframeAddressBar:!1,closeOnOutsideClick:!1,autoCollapseEdgeToolbar:!0,showDevframeInspector:!1});function we(e,t){return e?.[t]??x[t]}var S=new WeakMap;function Te(e){let t=S.get(e);if(!t){let r=c(e.docks.settings);t=n(()=>({...x,...r.value})),S.set(e,t)}return t}var C=`~pinned`,Ee=-1e5;function w(e,n){return e===C?Ee:n?.[e]??t[e]??0}function De(e){return typeof e==`string`?e:e?.light??e?.dark}var Oe={default:`category.default`,app:`category.app`,framework:`category.framework`,web:`category.web`,advanced:`category.advanced`,"~builtin":`category.builtin`,[C]:`category.pinned`};function ke(e){return e!==`~builtin`&&e!==C}function Ae(e){let t=Oe[e];return t?l(t):e}function je(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function Me(e,t){if(!t||t.type===`group`||!t.groupId)return;let n=e.find(e=>e.id===t.groupId);return n?.type===`group`?n:void 0}function T(e,t,n,r){let i=e.filter(e=>e.type!==`group`&&e.groupId===t);if(!n)return i.length?[[`default`,i]]:[];let a=e.find(e=>e.type===`group`&&e.id===t);return O(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function Ne(e,t,n,r){return T(e,t,n,r).flatMap(([,e])=>e)}function E(e,t,n,r){if(!n)return;let i=e.find(e=>e.type!==`group`&&e.groupId===t&&e.id===n);if(i){if(i.when){if(r){if(!b(i.when,r))return}else if(i.when===`false`)return}return i}}function Pe(e,t,n,r){let i=E(e,t.id,n,r);return(i?.type===`action`?void 0:i)??E(e,t.id,t.defaultChildId,r)}function D(e,t){return e?t?!b(e,t):e===`false`:!1}function Fe(e,t,n){return D(e.when,n)||D(e.visibility,n)||e.id===`devframes_plugin_inspect`&&!we(t,`showDevframeInspector`)?!0:t.docksHidden.includes(e.id)}function Ie(e){let t=new Map;for(let n of e)n.type===`group`&&t.set(n.id,n.category??`default`);return t}function Le(e,t,n){let r=w(e,n),i=w(t,n);return i===r?t.localeCompare(e):r-i}function Re(e,t,n){let r=n[e.id]??0,i=n[t.id]??0;if(r!==i)return r-i;let a=e.defaultOrder??0,o=t.defaultOrder??0;return o===a?t.title.localeCompare(e.title):a-o}function ze(e,t,n){let r=t??e.category??`default`;return n.includes(e.id)&&t===void 0?C:r}function Be(e,t,n,r){let{docksCategoriesHidden:i,docksPinned:a}=n,{includeHidden:o,whenContext:s,collapseGroups:c,ignoreCategoryHidden:l}=r,u=new Map;for(let r of e){let e=r.type!==`group`&&r.groupId?t.get(r.groupId):void 0;if(c&&e!==void 0||!o&&Fe(r,n,s))continue;let d=ze(r,e,a);(o||l||!i.includes(d))&&(u.has(d)||u.set(d,[]),u.get(d).push(r))}return u}function O(e,t,n){let{docksCustomOrder:r}=t,{includeHidden:i=!1,whenContext:a,collapseGroups:o=!1,ignoreCategoryHidden:s=!1,categoryOrderOverride:c}=n??{},l=Be(e,Ie(e),t,{includeHidden:i,whenContext:a,collapseGroups:o,ignoreCategoryHidden:s}),u=Array.from(l.entries()).sort(([e],[t])=>Le(e,t,c));for(let[,e]of u)e.sort((e,t)=>Re(e,t,r));return u}function Ve(e){let{availableHeight:t,reservedHeight:n,itemHeight:r,dividerHeight:i,moreButtonHeight:a,dividerCount:o,totalItems:s}=e;if(s<=0||r<=0)return 0;let c=t-n-Math.max(0,o)*i;if(Math.floor(c/r)>=s)return s;let l=Math.floor((c-a)/r);return Math.max(0,l)}function k(e,t){let n=[],r=[],i=t;for(let[t,a]of e)i<=0?r.push([t,a]):a.length>i?(n.push([t,a.slice(0,i)]),r.push([t,a.slice(i)]),i=0):(i-=a.length,n.push([t,a]));return{visible:n,overflow:r}}function He(e,t){return e.some(([,e])=>e.some(e=>e.id===t))}function Ue(e,t,n=null){let r=k(e,t);if(r.overflow.reduce((e,[,t])=>e+t.length,0)===1)return{visible:[...r.visible,...r.overflow],overflow:[],recent:null};if(!n||r.overflow.length===0||He(r.visible,n.id))return{...r,recent:null};let i=k(e,Math.max(t-1,0)),a=i.overflow.map(([e,t])=>[e,t.filter(e=>e.id!==n.id)]).filter(([,e])=>e.length>0);return{visible:i.visible,overflow:a,recent:n}}var A=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform??``);function We(e){return e.split(`+`).map(e=>e===`Mod`?A?`⌘`:`Ctrl`:e===`Shift`?A?`⇧`:`Shift`:e===`Alt`?A?`⌥`:`Alt`:e)}function Ge(e){let t=[];(A?e.metaKey:e.ctrlKey)&&t.push(`Mod`),(A?e.ctrlKey:e.metaKey)&&t.push(A?`Ctrl`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n.length===1&&(n=n.toUpperCase()),[`Control`,`Meta`,`Alt`,`Shift`].includes(n)||t.push(n),t.join(`+`)}function Ke(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>e.key===r[t]?.key)}function qe(e,t){return e!==void 0&&!Ke(e,t)}function j(e,t,n=[]){for(let r of e){let e=t(r,n);if(e===`stop`||e!==`skip`&&r.children?.length&&j(r.children,t,[...n,r])===`stop`)return`stop`}}function Je(e,t){let n;return j(e,e=>{if(e.id===t)return n=e,`stop`}),n}function Ye(e,t){let n=e=>!e.when||b(e.when,t),r=e=>{let t=[];for(let i of e){if(!n(i))continue;if(!i.children){t.push(i);continue}let e=r(i.children);t.push({...i,children:e})}return t};return r(e)}function Xe(e,t){let n=[];return j(e.value,e=>{for(let r of t(e.id))n.push({id:e.id,keybinding:r})}),n}var Ze={"Mod+T":`Open new tab`,"Mod+W":`Close tab`,"Mod+N":`Open new window`,"Mod+L":`Focus address bar`,"Mod+D":`Bookmark page`,"Mod+Q":`Quit browser`,"Mod+Shift+T":`Reopen closed tab`,"Mod+Shift+N":`Open incognito window`,"Mod+Shift+W":`Close window`,"Mod+Shift+Q":`Quit browser (Chrome)`,"Alt+F4":`Close window (Windows)`,"Mod+R":`Reload page`,"Mod+Shift+R":`Hard reload page`,"Mod+F":`Find in page`},Qe=`devframes:docks`;function M(e){return`${Qe}:${e}`}function $e(e){return e.at(-1)?.id??null}function N(e,t){return e.source===`client`&&!!e.action&&!!e.children?.length&&t.some(t=>t.type===`group`&&M(t.id)===e.id)}function et(e,t){return N(e,t)?`execute`:e.children?.length?`drill`:`execute`}function tt(e,t,n,r){return N(e,t)&&n&&r===e.id}function nt(e){let t=[];return j(e,(e,n)=>{if(e.showInPalette===!1)return`skip`;let r=n.at(-1)?.title;if(t.push({entry:e,...r?{parentTitle:r}:{},searchTitle:[...n.map(e=>e.title),e.title].join(` > `)}),e.showInPalette===`without-children`)return`skip`}),t}function P(e,t){if(!t)return[];let n=[];return j(e,(e,r)=>{if(e.id===t)return e.children?.length&&(n=[...r,e].filter(e=>e.children?.length).map(e=>({id:e.id,title:e.title,items:e.children}))),`stop`}),n}function rt(e,t,n){let r=n!=null&&t.some(e=>e.id===n),i=[],a=e;for(let e of t){let t=a.find(t=>t.id===e.id);if(!t?.children?.length)break;let n=t.children;i.push({id:t.id,title:t.title,items:n}),a=n}return r&&!i.some(e=>e.id===n)?P(e,n):i}var F=r(null),I=r(null),L=r(null),R=r(null);function it(e){F.value=e}function at(){return F}function z(e){I.value=e}function ot(){return I}function st(e){L.value=e}function ct(){return L}var B=r(null);function lt(e){B.value=e}function ut(){return B}function dt(e){R.value=e}function ft(){return R}var V=r(null);function pt(e){V.value=e}function mt(){return V}var H=20,U=100,ht=320,gt=240,W=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,G=`__DEVFRAME_CONNECTION_META__`,K=r(null),q=r(!1),J=i(),Y,X,Z,Q,_t=async()=>await a(()=>import(`./DockStandalone-DmKlcLSi.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1]),import.meta.url);J.on(`popup:open-requested`,e=>{jt(e)});function vt(){if(typeof window<`u`)return window.documentPictureInPicture}function yt(){Y?.(),Y=void 0,X?.(),X=void 0}function bt(t){return e(d,e=>{t.document.documentElement?.style.setProperty(`color-scheme`,e?`dark`:`light`)},{immediate:!0})}function xt(){Z?.remove(),Z=void 0}function $(){yt(),xt(),K.value=null,q.value=!1;let e=Q;Q=void 0,e?.docks.switchEntry(null)}function St(e,t,n){return Math.min(Math.max(e,t),n)}function Ct(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=St(Math.round(t.innerWidth/window.innerWidth*100),H,U),e.panel.store.height=St(Math.round(t.innerHeight/window.innerHeight*100),H,U))}async function wt(e,t){let n=await _t(),r=t.document.createElement(`style`);r.textContent=[`html, body {`,` margin: 0;`,` padding: 0;`,` width: 100%;`,` height: 100%;`,` overflow: hidden;`,` background: transparent;`,`}`,`#devframes-popup-root {`,` width: 100vw;`,` height: 100vh;`,`}`,`#devframes-popup-root > devframes-dock-standalone {`,` display: block;`,` width: 100%;`,` height: 100%;`,`}`].join(`
|
|
4
|
+
`),s(t.document,u().value),t.document.head?.appendChild(r),t.document.body.textContent=``,t[G]=globalThis[G]??e.rpc.connectionMeta;let i=t.document.createElement(`div`);i.id=`devframes-popup-root`,t.document.body.appendChild(i);let a=new n({context:e});o(a,u().value.primaryColor),Z=a,i.appendChild(a)}function Tt(){return!!vt()?.requestWindow}function Et(e,t){typeof window<`u`&&e!==`standalone`&&(window[W]=t)}async function Dt(e,t){if(typeof window<`u`&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[W];return typeof n==`function`?await n(t):void 0}catch{return}}function Ot(){return K}function kt(){return q}function At(e){J.emit(`popup:open-requested`,e)}async function jt(e){z(null);let t=K.value;if(t?.closed)$();else if(t)return t.focus(),t;let n=vt();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(ht,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(gt,Math.round(window.innerHeight*e.panel.store.height/100))});await wt(e,t),X=bt(t);let i=()=>Ct(e,t),a=()=>{K.value===t&&$()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),Y=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},Q=e,K.value=t,q.value=!0,t}catch{return r&&!r.closed&&r.close(),$(),null}}export{b as $,We as A,Ne as B,$e as C,Xe as D,Ze as E,Ve as F,E as G,je as H,O as I,Ce as J,Pe as K,Ue as L,A as M,Ge as N,Ye as O,j as P,ye as Q,Ae as R,P as S,et as T,ke as U,T as V,De as W,ve as X,Se as Y,be as Z,mt as _,Ot as a,nt as b,lt as c,pt as d,ne as et,it as f,ct as g,ot as h,Dt as i,f as it,qe as j,Je as k,z as l,ut as m,Et as n,ae as nt,kt as o,ft as p,Te as q,At as r,ee as rt,dt as s,Tt as t,h as tt,st as u,at as v,rt as w,tt as x,M as y,Me as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={"common.ok":`OK`,"common.cancel":`Cancelar`,"common.retry":`Tentar novamente`,"common.loading":`Carregando...`,"common.show":`Mostrar`,"common.hide":`Ocultar`,"common.refresh":`Atualizar`,"common.back":`Voltar`,"common.reload":`Recarregar`,"command.togglePalette":`Alternar paleta de comandos`,"command.closePanel":`Fechar painel`,"command.openSettings":`Abrir configurações`,"command.hide":`Ocultar {productName}`,"command.dockMode":`Modo de encaixe`,"command.floatMode":`Modo flutuante`,"command.edgeMode":`Modo de borda`,"command.docks":`Painéis`,"dock.settings":`Configurações`,"dock.unauthorized":`Não autorizado`,"dock.edgePosition":`Posição da borda`,"dock.floatMode":`Modo flutuante`,"dock.popup":`Janela separada`,"dock.showMore":`Mostrar mais`,"dock.overflow":`Mais`,"dock.noTools":`Nenhuma ferramenta ainda`,"category.default":`Padrão`,"category.app":`Aplicativo`,"category.framework":`Framework`,"category.web":`Web`,"category.advanced":`Avançado`,"category.builtin":`Integrado`,"category.pinned":`Fixados`,"palette.placeholder":`Digite um comando...`,"palette.noResults":`Nenhum resultado para "{query}"`,"palette.empty":`Nenhum comando disponível`,"palette.server":`servidor`,"palette.navigate":`navegar`,"palette.back":`voltar`,"palette.close":`fechar`,"palette.select":`selecionar`,"settings.appearance":`Aparência`,"settings.docks":`Painéis`,"settings.shortcuts":`Atalhos`,"settings.advanced":`Avançado`,"appearance.language":`Idioma`,"appearance.languageHint":`Idioma da interface do {productName}`,"appearance.languageAuto":`Automático`,"appearance.colorMode":`Modo de cor`,"appearance.colorModeHint":`Tema do {productName} e de seus painéis internos`,"appearance.colorAuto":`Automático`,"appearance.colorLight":`Claro`,"appearance.colorDark":`Escuro`,"appearance.dockMode":`Modo de encaixe`,"appearance.dockModeHint":`Como o painel do {productName} é exibido`,"appearance.dockFloat":`Flutuante`,"appearance.dockEdge":`Borda`,"appearance.dockPopup":`Janela separada`,"appearance.addressBar":`Sempre mostrar a barra de endereço dos iframes`,"appearance.addressBarHint":`Mostra a barra de endereço em cada painel iframe.`,"appearance.closeOutside":`Fechar o painel ao clicar fora`,"appearance.closeOutsideHint":`Fecha o painel do {productName} ao clicar fora dele (somente no modo incorporado)`,"appearance.autoCollapse":`Recolher automaticamente a barra de borda`,"appearance.autoCollapseHint":`Reduz a barra encaixada na borda a uma pequena alça quando inativa e fechada (somente no modo de borda)`,"docks.intro":`Gerencie a visibilidade e a ordem dos painéis. Painéis ocultos não aparecem na barra.`,"docks.resetOrder":`Redefinir ordem personalizada`,"docks.alwaysVisible":`Sempre visível`,"docks.action":`Ação`,"docks.group":`Grupo`,"docks.moveUp":`Mover para cima (maior prioridade)`,"docks.moveDown":`Mover para baixo (menor prioridade)`,"docks.pin":`Fixar`,"docks.unpin":`Desafixar`,"docks.emptyGroup":`Nenhuma ferramenta neste grupo ainda`,"shortcuts.intro":`Personalize os atalhos de teclado dos comandos.`,"shortcuts.search":`Pesquisar comandos...`,"shortcuts.edit":`Clique para editar`,"shortcuts.add":`Adicionar atalho`,"shortcuts.clear":`Remover atalho`,"shortcuts.resetDefault":`Redefinir para o padrão`,"shortcuts.empty":`Nenhum comando encontrado`,"shortcuts.editTitle":`Editar atalho`,"shortcuts.editHint":`Pressione uma combinação de teclas ou alterne os modificadores abaixo`,"shortcuts.pressKeys":`Pressione as teclas...`,"shortcuts.warnSingleKey":`Uma única tecla sem modificadores pode interferir na digitação`,"shortcuts.warnShiftLetter":`Shift + letra pode interferir na digitação`,"shortcuts.warnBrowser":`Conflita com um atalho do navegador: {description} ({keys})`,"shortcuts.warnCommand":`Conflita com "{title}"`,"advanced.inspector":`Mostrar Devframe Inspector`,"advanced.inspectorHint":`Exibe o painel experimental Devframe Inspector, as ferramentas de desenvolvimento das ferramentas de desenvolvimento`,"advanced.resetShortcuts":`Redefinir atalhos de teclado`,"advanced.resetShortcutsHint":`Remove todos os atalhos personalizados e restaura as combinações padrão`,"advanced.resetShortcutsAction":`Redefinir atalhos`,"advanced.resetShortcutsConfirm":`Redefinir todos os atalhos de teclado para o padrão?`,"advanced.resetDocks":`Redefinir configurações dos painéis`,"advanced.resetDocksHint":`Restaura a visibilidade, a ordem e a fixação padrão dos painéis`,"advanced.resetDocksAction":`Redefinir painéis`,"advanced.resetDocksConfirm":`Redefinir a visibilidade, a ordem e a fixação dos painéis para o padrão?`,"advanced.resetAll":`Redefinir todas as configurações`,"advanced.resetAllHint":`Redefine tudo para o padrão, incluindo aparência, painéis e atalhos`,"advanced.resetAllAction":`Redefinir tudo`,"advanced.resetAllConfirm":`Redefinir todas as configurações para o padrão? Isso inclui aparência, painéis e atalhos.`,"advanced.revoke":`Revogar autorização`,"advanced.revokeHint":`Remove a autorização deste navegador e revoga seu token de acesso; você precisará autorizar novamente com um novo código`,"advanced.revokeAction":`Revogar acesso`,"advanced.revokeConfirm":`Revogar o acesso deste navegador ao {productName}? Você precisará autorizar novamente com um novo código para reconectar.`,"auth.title":`Autorizar {productName}`,"auth.intro":`O {productName} pode acessar seu servidor, ler seu sistema de arquivos e executar comandos. Confirme que é você antes de continuar.`,"auth.findCode":`Encontre o {code} impresso no seu terminal.`,"auth.sixDigitCode":`código de 6 dígitos`,"auth.otpLabel":`Digite seu código de autorização de uso único`,"auth.otpGroupLabel":`Código de autorização de uso único`,"auth.otpDigit":`Dígito {index} de {length}`,"auth.authorize":`Autorizar`,"auth.authorizing":`Autorizando...`,"auth.reissue":`Reemitir senha de uso único`,"auth.magicLink":`Você também pode usar o link mágico para autorizar automaticamente.`,"auth.newCode":`Um novo código foi impresso no seu terminal.`,"auth.reissueFailed":`Não foi possível solicitar um novo código. Tente novamente.`,"auth.mismatch":`Esse código não corresponde. Verifique seu terminal e tente novamente.`,"auth.failed":`Algo deu errado durante a autorização. Tente novamente.`,"iframe.crossOrigin":`Origem cruzada`,"iframe.crossOriginHint":`iframe de origem cruzada`,"iframe.enterUrl":`Digite a URL...`,"iframe.openExternally":`Abrir externamente`,"launcher.launch":`Iniciar`,"launcher.success":`Sucesso`,"launcher.root":`Raiz de inicialização`,"launcher.viewTerminal":`Ver no terminal`,"assets.failed":`Falha ao carregar os recursos remotamente`,"assets.hint":`A interface desta ferramenta é publicada como {pkg}. Instale-a localmente ou habilite o acesso à rede para continuar.`,"assets.copy":`Copiar comando de instalação`,"assets.copied":`Copiado`,"renderer.missing":`Nenhum renderizador para “{type}” no ambiente atual`,"renderer.missingHint":`O host não registrou um renderizador para este tipo de painel.`,"renderer.failed":`O renderizador de “{type}” não pôde ser carregado`};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={"common.ok":`ОК`,"common.cancel":`Отмена`,"common.retry":`Повторить`,"common.loading":`Загрузка...`,"common.show":`Показать`,"common.hide":`Скрыть`,"common.refresh":`Обновить`,"common.back":`Назад`,"common.reload":`Перезагрузить`,"command.togglePalette":`Переключить палитру команд`,"command.closePanel":`Закрыть панель`,"command.openSettings":`Открыть настройки`,"command.hide":`Скрыть {productName}`,"command.dockMode":`Режим панели`,"command.floatMode":`Плавающий режим`,"command.edgeMode":`Режим у края`,"command.docks":`Панели`,"dock.settings":`Настройки`,"dock.unauthorized":`Не авторизовано`,"dock.edgePosition":`Положение у края`,"dock.floatMode":`Плавающий режим`,"dock.popup":`Отдельное окно`,"dock.showMore":`Показать ещё`,"dock.overflow":`Ещё`,"dock.noTools":`Инструментов пока нет`,"category.default":`По умолчанию`,"category.app":`Приложение`,"category.framework":`Фреймворк`,"category.web":`Веб`,"category.advanced":`Дополнительно`,"category.builtin":`Встроенные`,"category.pinned":`Закреплённые`,"palette.placeholder":`Введите команду...`,"palette.noResults":`Ничего не найдено по запросу "{query}"`,"palette.empty":`Нет доступных команд`,"palette.server":`сервер`,"palette.navigate":`навигация`,"palette.back":`назад`,"palette.close":`закрыть`,"palette.select":`выбрать`,"settings.appearance":`Внешний вид`,"settings.docks":`Панели`,"settings.shortcuts":`Сочетания клавиш`,"settings.advanced":`Дополнительно`,"appearance.language":`Язык`,"appearance.languageHint":`Язык интерфейса {productName}`,"appearance.languageAuto":`Авто`,"appearance.colorMode":`Цветовая схема`,"appearance.colorModeHint":`Тема для {productName} и его внутренних панелей`,"appearance.colorAuto":`Авто`,"appearance.colorLight":`Светлая`,"appearance.colorDark":`Тёмная`,"appearance.dockMode":`Режим панели`,"appearance.dockModeHint":`Как отображается панель {productName}`,"appearance.dockFloat":`Плавающая`,"appearance.dockEdge":`У края`,"appearance.dockPopup":`Отдельное окно`,"appearance.addressBar":`Всегда показывать адресную строку iframe`,"appearance.addressBarHint":`Показывать адресную строку для каждой панели iframe.`,"appearance.closeOutside":`Закрывать панель по клику вне её`,"appearance.closeOutsideHint":`Закрывать панель {productName} при клике вне её (только во встроенном режиме)`,"appearance.autoCollapse":`Автоматически сворачивать панель у края`,"appearance.autoCollapseHint":`Сворачивать закреплённую у края панель в небольшой ярлык, когда она неактивна и закрыта (только в режиме у края)`,"docks.intro":`Управляйте видимостью и порядком панелей. Скрытые панели не отображаются на панели инструментов.`,"docks.resetOrder":`Сбросить пользовательский порядок`,"docks.alwaysVisible":`Всегда видима`,"docks.action":`Действие`,"docks.group":`Группа`,"docks.moveUp":`Выше (больший приоритет)`,"docks.moveDown":`Ниже (меньший приоритет)`,"docks.pin":`Закрепить`,"docks.unpin":`Открепить`,"docks.emptyGroup":`В этой группе пока нет инструментов`,"shortcuts.intro":`Настройте сочетания клавиш для команд.`,"shortcuts.search":`Поиск команд...`,"shortcuts.edit":`Нажмите, чтобы изменить`,"shortcuts.add":`Добавить сочетание`,"shortcuts.clear":`Удалить сочетание`,"shortcuts.resetDefault":`Сбросить к значению по умолчанию`,"shortcuts.empty":`Команды не найдены`,"shortcuts.editTitle":`Изменить сочетание клавиш`,"shortcuts.editHint":`Нажмите комбинацию клавиш или переключите модификаторы ниже`,"shortcuts.pressKeys":`Нажмите клавиши...`,"shortcuts.warnSingleKey":`Одиночная клавиша без модификаторов может мешать вводу текста`,"shortcuts.warnShiftLetter":`Shift + буква может мешать вводу текста`,"shortcuts.warnBrowser":`Конфликт с сочетанием клавиш браузера: {description} ({keys})`,"shortcuts.warnCommand":`Конфликт с "{title}"`,"advanced.inspector":`Показать Devframe Inspector`,"advanced.inspectorHint":`Показать экспериментальную панель Devframe Inspector, инструменты разработчика для инструментов разработчика`,"advanced.resetShortcuts":`Сбросить сочетания клавиш`,"advanced.resetShortcutsHint":`Удалить все пользовательские сочетания и восстановить привязки по умолчанию`,"advanced.resetShortcutsAction":`Сбросить сочетания`,"advanced.resetShortcutsConfirm":`Сбросить все сочетания клавиш к значениям по умолчанию?`,"advanced.resetDocks":`Сбросить настройки панелей`,"advanced.resetDocksHint":`Восстановить видимость, порядок и закрепление панелей по умолчанию`,"advanced.resetDocksAction":`Сбросить панели`,"advanced.resetDocksConfirm":`Сбросить видимость, порядок и закрепление панелей к значениям по умолчанию?`,"advanced.resetAll":`Сбросить все настройки`,"advanced.resetAllHint":`Сбросить всё к значениям по умолчанию, включая внешний вид, панели и сочетания клавиш`,"advanced.resetAllAction":`Сбросить всё`,"advanced.resetAllConfirm":`Сбросить все настройки к значениям по умолчанию? Это включает внешний вид, панели и сочетания клавиш.`,"advanced.revoke":`Отозвать авторизацию`,"advanced.revokeHint":`Отозвать авторизацию этого браузера и его токен доступа; потребуется повторная авторизация с новым кодом`,"advanced.revokeAction":`Отозвать доступ`,"advanced.revokeConfirm":`Отозвать доступ этого браузера к {productName}? Для повторного подключения потребуется авторизация с новым кодом.`,"auth.title":`Авторизовать {productName}`,"auth.intro":`{productName} может обращаться к вашему серверу, читать файловую систему и выполнять команды. Подтвердите, что это вы, прежде чем продолжить.`,"auth.findCode":`Найдите {code}, выведенный в вашем терминале.`,"auth.sixDigitCode":`6-значный код`,"auth.otpLabel":`Введите одноразовый код авторизации`,"auth.otpGroupLabel":`Одноразовый код авторизации`,"auth.otpDigit":`Цифра {index} из {length}`,"auth.authorize":`Авторизовать`,"auth.authorizing":`Авторизация...`,"auth.reissue":`Выдать одноразовый пароль повторно`,"auth.magicLink":`Вы также можете использовать волшебную ссылку для автоматической авторизации.`,"auth.newCode":`Новый код выведен в вашем терминале.`,"auth.reissueFailed":`Не удалось запросить новый код. Попробуйте ещё раз.`,"auth.mismatch":`Код не совпадает. Проверьте терминал и попробуйте ещё раз.`,"auth.failed":`При авторизации произошла ошибка. Попробуйте ещё раз.`,"iframe.crossOrigin":`Другой источник`,"iframe.crossOriginHint":`iframe из другого источника`,"iframe.enterUrl":`Введите URL...`,"iframe.openExternally":`Открыть в новом окне`,"launcher.launch":`Запустить`,"launcher.success":`Успешно`,"launcher.root":`Корень запуска`,"launcher.viewTerminal":`Открыть в терминале`,"assets.failed":`Не удалось загрузить ресурсы удалённо`,"assets.hint":`Интерфейс этого инструмента опубликован как {pkg}. Установите его локально или разрешите доступ к сети, чтобы продолжить.`,"assets.copy":`Скопировать команду установки`,"assets.copied":`Скопировано`,"renderer.missing":`Нет рендерера для «{type}» в текущем окружении`,"renderer.missingHint":`Хост не зарегистрировал рендерер для этого типа панели.`,"renderer.failed":`Не удалось загрузить рендерер для «{type}»`};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={"common.ok":`确定`,"common.cancel":`取消`,"common.retry":`重试`,"common.loading":`加载中...`,"common.show":`显示`,"common.hide":`隐藏`,"common.refresh":`刷新`,"common.back":`返回`,"common.reload":`重新加载`,"command.togglePalette":`切换命令面板`,"command.closePanel":`关闭面板`,"command.openSettings":`打开设置`,"command.hide":`隐藏 {productName}`,"command.dockMode":`停靠模式`,"command.floatMode":`浮动模式`,"command.edgeMode":`边缘模式`,"command.docks":`工具面板`,"dock.settings":`设置`,"dock.unauthorized":`未授权`,"dock.edgePosition":`边缘位置`,"dock.floatMode":`浮动模式`,"dock.popup":`弹出窗口`,"dock.showMore":`显示更多`,"dock.overflow":`更多`,"dock.noTools":`暂无工具`,"category.default":`默认`,"category.app":`应用`,"category.framework":`框架`,"category.web":`Web`,"category.advanced":`高级`,"category.builtin":`内置`,"category.pinned":`已固定`,"palette.placeholder":`输入命令...`,"palette.noResults":`没有与“{query}”匹配的结果`,"palette.empty":`没有可用的命令`,"palette.server":`服务端`,"palette.navigate":`导航`,"palette.back":`返回`,"palette.close":`关闭`,"palette.select":`选择`,"settings.appearance":`外观`,"settings.docks":`工具面板`,"settings.shortcuts":`快捷键`,"settings.advanced":`高级`,"appearance.language":`语言`,"appearance.languageHint":`{productName} 界面使用的语言`,"appearance.languageAuto":`自动`,"appearance.colorMode":`颜色模式`,"appearance.colorModeHint":`{productName} 及其内部面板的主题`,"appearance.colorAuto":`自动`,"appearance.colorLight":`浅色`,"appearance.colorDark":`深色`,"appearance.dockMode":`停靠模式`,"appearance.dockModeHint":`{productName} 面板的显示方式`,"appearance.dockFloat":`浮动`,"appearance.dockEdge":`边缘`,"appearance.dockPopup":`弹出窗口`,"appearance.addressBar":`始终显示 iframe 地址栏`,"appearance.addressBarHint":`为每个 iframe 面板显示地址栏。`,"appearance.closeOutside":`点击外部时关闭面板`,"appearance.closeOutsideHint":`在 {productName} 面板外部点击时将其关闭(仅嵌入模式)`,"appearance.autoCollapse":`自动收起边缘工具栏`,"appearance.autoCollapseHint":`空闲且关闭时,将边缘停靠的工具栏收起为一个小把手(仅边缘模式)`,"docks.intro":`管理工具面板条目的可见性和顺序。隐藏的条目不会出现在工具栏中。`,"docks.resetOrder":`重置自定义顺序`,"docks.alwaysVisible":`始终可见`,"docks.action":`操作`,"docks.group":`分组`,"docks.moveUp":`上移(更高优先级)`,"docks.moveDown":`下移(更低优先级)`,"docks.pin":`固定`,"docks.unpin":`取消固定`,"docks.emptyGroup":`此分组中暂无工具`,"shortcuts.intro":`自定义命令的键盘快捷键。`,"shortcuts.search":`搜索命令...`,"shortcuts.edit":`点击编辑`,"shortcuts.add":`添加快捷键`,"shortcuts.clear":`清除快捷键`,"shortcuts.resetDefault":`重置为默认`,"shortcuts.empty":`未找到命令`,"shortcuts.editTitle":`编辑快捷键`,"shortcuts.editHint":`按下组合键,或在下方切换修饰键`,"shortcuts.pressKeys":`按下按键...`,"shortcuts.warnSingleKey":`不带修饰键的单个按键可能会干扰输入`,"shortcuts.warnShiftLetter":`Shift + 字母可能会干扰输入`,"shortcuts.warnBrowser":`与浏览器快捷键冲突:{description}({keys})`,"shortcuts.warnCommand":`与“{title}”冲突`,"advanced.inspector":`显示 Devframe Inspector`,"advanced.inspectorHint":`显示实验性的 Devframe Inspector 面板,即开发工具的开发工具`,"advanced.resetShortcuts":`重置键盘快捷键`,"advanced.resetShortcutsHint":`移除所有自定义快捷键并恢复默认按键绑定`,"advanced.resetShortcutsAction":`重置快捷键`,"advanced.resetShortcutsConfirm":`将所有键盘快捷键重置为默认值?`,"advanced.resetDocks":`重置工具面板设置`,"advanced.resetDocksHint":`恢复默认的工具面板可见性、顺序和固定状态`,"advanced.resetDocksAction":`重置工具面板`,"advanced.resetDocksConfirm":`将工具面板的可见性、顺序和固定状态重置为默认值?`,"advanced.resetAll":`重置所有设置`,"advanced.resetAllHint":`将所有内容重置为默认值,包括外观、工具面板和快捷键`,"advanced.resetAllAction":`全部重置`,"advanced.resetAllConfirm":`将所有设置重置为默认值?这包括外观、工具面板和快捷键。`,"advanced.revoke":`撤销授权`,"advanced.revokeHint":`取消此浏览器的授权并撤销其访问令牌;你需要使用新的验证码重新授权`,"advanced.revokeAction":`撤销访问`,"advanced.revokeConfirm":`撤销此浏览器对 {productName} 的访问权限?重新连接时需要使用新的验证码再次授权。`,"auth.title":`授权 {productName}`,"auth.intro":`{productName} 可以访问你的服务器、读取文件系统并运行命令。继续之前请确认是你本人。`,"auth.findCode":`在终端中找到打印出的{code}。`,"auth.sixDigitCode":`6 位验证码`,"auth.otpLabel":`输入你的一次性授权码`,"auth.otpGroupLabel":`一次性授权码`,"auth.otpDigit":`第 {index} 位,共 {length} 位`,"auth.authorize":`授权`,"auth.authorizing":`授权中...`,"auth.reissue":`重新发送一次性密码`,"auth.magicLink":`你也可以使用魔法链接自动完成授权。`,"auth.newCode":`新的验证码已打印在终端中。`,"auth.reissueFailed":`无法请求新的验证码,请重试。`,"auth.mismatch":`验证码不匹配。请查看终端后重试。`,"auth.failed":`授权时出现问题,请重试。`,"iframe.crossOrigin":`跨域`,"iframe.crossOriginHint":`跨域 iframe`,"iframe.enterUrl":`输入 URL...`,"iframe.openExternally":`在外部打开`,"launcher.launch":`启动`,"launcher.success":`成功`,"launcher.root":`启动根目录`,"launcher.viewTerminal":`在终端中查看`,"assets.failed":`远程加载资源失败`,"assets.hint":`此工具的界面已发布为 {pkg}。请在本地安装,或开启网络访问后继续。`,"assets.copy":`复制安装命令`,"assets.copied":`已复制`,"renderer.missing":`当前环境中没有“{type}”的渲染器`,"renderer.missingHint":`宿主尚未为此面板类型注册渲染器。`,"renderer.failed":`“{type}”的渲染器加载失败`};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={"common.ok":`確定`,"common.cancel":`取消`,"common.retry":`重試`,"common.loading":`載入中...`,"common.show":`顯示`,"common.hide":`隱藏`,"common.refresh":`重新整理`,"common.back":`返回`,"common.reload":`重新載入`,"command.togglePalette":`切換命令面板`,"command.closePanel":`關閉面板`,"command.openSettings":`開啟設定`,"command.hide":`隱藏 {productName}`,"command.dockMode":`停靠模式`,"command.floatMode":`浮動模式`,"command.edgeMode":`邊緣模式`,"command.docks":`工具面板`,"dock.settings":`設定`,"dock.unauthorized":`未授權`,"dock.edgePosition":`邊緣位置`,"dock.floatMode":`浮動模式`,"dock.popup":`彈出視窗`,"dock.showMore":`顯示更多`,"dock.overflow":`更多`,"dock.noTools":`尚無工具`,"category.default":`預設`,"category.app":`應用程式`,"category.framework":`框架`,"category.web":`Web`,"category.advanced":`進階`,"category.builtin":`內建`,"category.pinned":`已釘選`,"palette.placeholder":`輸入命令...`,"palette.noResults":`沒有符合「{query}」的結果`,"palette.empty":`沒有可用的命令`,"palette.server":`伺服器`,"palette.navigate":`瀏覽`,"palette.back":`返回`,"palette.close":`關閉`,"palette.select":`選擇`,"settings.appearance":`外觀`,"settings.docks":`工具面板`,"settings.shortcuts":`快速鍵`,"settings.advanced":`進階`,"appearance.language":`語言`,"appearance.languageHint":`{productName} 介面使用的語言`,"appearance.languageAuto":`自動`,"appearance.colorMode":`色彩模式`,"appearance.colorModeHint":`{productName} 及其內部面板的主題`,"appearance.colorAuto":`自動`,"appearance.colorLight":`淺色`,"appearance.colorDark":`深色`,"appearance.dockMode":`停靠模式`,"appearance.dockModeHint":`{productName} 面板的顯示方式`,"appearance.dockFloat":`浮動`,"appearance.dockEdge":`邊緣`,"appearance.dockPopup":`彈出視窗`,"appearance.addressBar":`一律顯示 iframe 網址列`,"appearance.addressBarHint":`為每個 iframe 面板顯示網址列。`,"appearance.closeOutside":`點擊外部時關閉面板`,"appearance.closeOutsideHint":`在 {productName} 面板外部點擊時將其關閉(僅嵌入模式)`,"appearance.autoCollapse":`自動收合邊緣工具列`,"appearance.autoCollapseHint":`閒置且關閉時,將邊緣停靠的工具列收合為一個小把手(僅邊緣模式)`,"docks.intro":`管理工具面板項目的可見性和順序。隱藏的項目不會出現在工具列中。`,"docks.resetOrder":`重設自訂順序`,"docks.alwaysVisible":`一律可見`,"docks.action":`動作`,"docks.group":`群組`,"docks.moveUp":`上移(較高優先順序)`,"docks.moveDown":`下移(較低優先順序)`,"docks.pin":`釘選`,"docks.unpin":`取消釘選`,"docks.emptyGroup":`此群組中尚無工具`,"shortcuts.intro":`自訂命令的鍵盤快速鍵。`,"shortcuts.search":`搜尋命令...`,"shortcuts.edit":`點擊以編輯`,"shortcuts.add":`新增快速鍵`,"shortcuts.clear":`清除快速鍵`,"shortcuts.resetDefault":`重設為預設`,"shortcuts.empty":`找不到命令`,"shortcuts.editTitle":`編輯快速鍵`,"shortcuts.editHint":`按下組合鍵,或在下方切換修飾鍵`,"shortcuts.pressKeys":`按下按鍵...`,"shortcuts.warnSingleKey":`不含修飾鍵的單一按鍵可能會干擾輸入`,"shortcuts.warnShiftLetter":`Shift + 字母可能會干擾輸入`,"shortcuts.warnBrowser":`與瀏覽器快速鍵衝突:{description}({keys})`,"shortcuts.warnCommand":`與「{title}」衝突`,"advanced.inspector":`顯示 Devframe Inspector`,"advanced.inspectorHint":`顯示實驗性的 Devframe Inspector 面板,即開發工具的開發工具`,"advanced.resetShortcuts":`重設鍵盤快速鍵`,"advanced.resetShortcutsHint":`移除所有自訂快速鍵並還原預設按鍵綁定`,"advanced.resetShortcutsAction":`重設快速鍵`,"advanced.resetShortcutsConfirm":`將所有鍵盤快速鍵重設為預設值?`,"advanced.resetDocks":`重設工具面板設定`,"advanced.resetDocksHint":`還原預設的工具面板可見性、順序和釘選狀態`,"advanced.resetDocksAction":`重設工具面板`,"advanced.resetDocksConfirm":`將工具面板的可見性、順序和釘選狀態重設為預設值?`,"advanced.resetAll":`重設所有設定`,"advanced.resetAllHint":`將所有內容重設為預設值,包括外觀、工具面板和快速鍵`,"advanced.resetAllAction":`全部重設`,"advanced.resetAllConfirm":`將所有設定重設為預設值?這包括外觀、工具面板和快速鍵。`,"advanced.revoke":`撤銷授權`,"advanced.revokeHint":`取消此瀏覽器的授權並撤銷其存取權杖;你需要使用新的驗證碼重新授權`,"advanced.revokeAction":`撤銷存取`,"advanced.revokeConfirm":`撤銷此瀏覽器對 {productName} 的存取權限?重新連線時需要使用新的驗證碼再次授權。`,"auth.title":`授權 {productName}`,"auth.intro":`{productName} 可以存取你的伺服器、讀取檔案系統並執行命令。繼續之前請確認是你本人。`,"auth.findCode":`在終端機中找到列印出的{code}。`,"auth.sixDigitCode":`6 位驗證碼`,"auth.otpLabel":`輸入你的一次性授權碼`,"auth.otpGroupLabel":`一次性授權碼`,"auth.otpDigit":`第 {index} 位,共 {length} 位`,"auth.authorize":`授權`,"auth.authorizing":`授權中...`,"auth.reissue":`重新發送一次性密碼`,"auth.magicLink":`你也可以使用魔法連結自動完成授權。`,"auth.newCode":`新的驗證碼已列印在終端機中。`,"auth.reissueFailed":`無法請求新的驗證碼,請重試。`,"auth.mismatch":`驗證碼不符。請查看終端機後重試。`,"auth.failed":`授權時發生問題,請重試。`,"iframe.crossOrigin":`跨來源`,"iframe.crossOriginHint":`跨來源 iframe`,"iframe.enterUrl":`輸入 URL...`,"iframe.openExternally":`在外部開啟`,"launcher.launch":`啟動`,"launcher.success":`成功`,"launcher.root":`啟動根目錄`,"launcher.viewTerminal":`在終端機中檢視`,"assets.failed":`遠端載入資源失敗`,"assets.hint":`此工具的介面已發布為 {pkg}。請在本機安裝,或開啟網路存取後繼續。`,"assets.copy":`複製安裝命令`,"assets.copied":`已複製`,"renderer.missing":`目前環境中沒有「{type}」的渲染器`,"renderer.missingHint":`主機尚未為此面板類型註冊渲染器。`,"renderer.failed":`「{type}」的渲染器載入失敗`};export{e as default};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<title>Devframes</title>
|
|
7
7
|
<meta name="description" content="Devframes hub" />
|
|
8
8
|
<style>:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--devframes-viewer-background:#fff}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--devframes-viewer-background:#111}html,body{background:var(--devframes-viewer-background);height:100%;margin:0}#app{height:100%}</style>
|
|
9
|
-
<script type="module" crossorigin src="./assets/index-
|
|
9
|
+
<script type="module" crossorigin src="./assets/index-DHmJGo7c.js"></script>
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="app"></div>
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import { DevframeHubUi } from "@devframes/hub/initiate";
|
|
2
|
+
//#region src/locales.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* UI languages the reference hub-ui ships translations for, keyed by BCP 47
|
|
5
|
+
* tag with the language's own name as the picker label. Framework-free like
|
|
6
|
+
* `./types.ts` so the node entry can type `createUi({ locale })` without
|
|
7
|
+
* pulling in the client. Message files live in `client/i18n/locales/`, one
|
|
8
|
+
* per key here; adding a language means adding both.
|
|
9
|
+
*/
|
|
10
|
+
export declare const HUB_UI_LOCALES: {
|
|
11
|
+
readonly en: "English";
|
|
12
|
+
readonly 'zh-CN': "简体中文";
|
|
13
|
+
readonly 'zh-TW': "繁體中文";
|
|
14
|
+
readonly ja: "日本語";
|
|
15
|
+
readonly ko: "한국어";
|
|
16
|
+
readonly es: "Español";
|
|
17
|
+
readonly fr: "Français";
|
|
18
|
+
readonly de: "Deutsch";
|
|
19
|
+
readonly 'pt-BR': "Português (Brasil)";
|
|
20
|
+
readonly ru: "Русский";
|
|
21
|
+
};
|
|
22
|
+
type HubUiLocale = keyof typeof HUB_UI_LOCALES;
|
|
23
|
+
//#endregion
|
|
2
24
|
//#region src/types.d.ts
|
|
3
25
|
/**
|
|
4
26
|
* Published `createUi()` config types, kept framework-free so the node
|
|
@@ -108,6 +130,13 @@ declare module 'devframe/types' {
|
|
|
108
130
|
branding?: DevframeBranding;
|
|
109
131
|
embeddedVisibility?: EmbeddedVisibility;
|
|
110
132
|
dockPreferences?: DevframeDockPreferences;
|
|
133
|
+
/**
|
|
134
|
+
* The hub UI language. `createUi({ locale })` publishes the host's
|
|
135
|
+
* default; the running hub UI then overwrites it with the language it
|
|
136
|
+
* resolved (the visitor's own pick, else this default, else the
|
|
137
|
+
* browser's), so a mounted frame reads the effective one.
|
|
138
|
+
*/
|
|
139
|
+
locale?: HubUiLocale;
|
|
111
140
|
};
|
|
112
141
|
}
|
|
113
142
|
}
|
|
@@ -145,6 +174,13 @@ export interface CreateUiOptions {
|
|
|
145
174
|
* user-overridable preference the visitor's own choice then wins.
|
|
146
175
|
*/
|
|
147
176
|
dockPreferences?: DevframeDockPreferences;
|
|
177
|
+
/**
|
|
178
|
+
* Default UI language, one of {@link HUB_UI_LOCALES}. Published as
|
|
179
|
+
* `ConnectionMeta.configs.ui.locale` and, like the dock mode, only a
|
|
180
|
+
* seed: a visitor's own pick in Settings → Appearance wins. Without it
|
|
181
|
+
* the UI follows the browser language, falling back to English.
|
|
182
|
+
*/
|
|
183
|
+
locale?: HubUiLocale;
|
|
148
184
|
}
|
|
149
185
|
/**
|
|
150
186
|
* The reference implementation of the hub's {@link DevframeHubUi} slot,
|
|
@@ -165,4 +201,4 @@ export interface CreateUiOptions {
|
|
|
165
201
|
*/
|
|
166
202
|
export declare function createUi(options?: CreateUiOptions): DevframeHubUi;
|
|
167
203
|
//#endregion
|
|
168
|
-
export type { ColorSchemeValue, DevframeBranding, DevframeDockPreferences, EmbeddedVisibility, ViewerBackground };
|
|
204
|
+
export type { ColorSchemeValue, DevframeBranding, DevframeDockPreferences, EmbeddedVisibility, HubUiLocale, ViewerBackground };
|
package/dist/index.mjs
CHANGED
|
@@ -2,6 +2,27 @@ import { existsSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { createAuthBanner } from "devframe/recipes/interactive-auth";
|
|
5
|
+
//#region src/locales.ts
|
|
6
|
+
/**
|
|
7
|
+
* UI languages the reference hub-ui ships translations for, keyed by BCP 47
|
|
8
|
+
* tag with the language's own name as the picker label. Framework-free like
|
|
9
|
+
* `./types.ts` so the node entry can type `createUi({ locale })` without
|
|
10
|
+
* pulling in the client. Message files live in `client/i18n/locales/`, one
|
|
11
|
+
* per key here; adding a language means adding both.
|
|
12
|
+
*/
|
|
13
|
+
const HUB_UI_LOCALES = {
|
|
14
|
+
"en": "English",
|
|
15
|
+
"zh-CN": "简体中文",
|
|
16
|
+
"zh-TW": "繁體中文",
|
|
17
|
+
"ja": "日本語",
|
|
18
|
+
"ko": "한국어",
|
|
19
|
+
"es": "Español",
|
|
20
|
+
"fr": "Français",
|
|
21
|
+
"de": "Deutsch",
|
|
22
|
+
"pt-BR": "Português (Brasil)",
|
|
23
|
+
"ru": "Русский"
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
5
26
|
//#region src/index.ts
|
|
6
27
|
/**
|
|
7
28
|
* The built client assets live next to the built entry (`dist/index.mjs` →
|
|
@@ -46,7 +67,8 @@ function createUi(options = {}) {
|
|
|
46
67
|
ctx.staticConfig.ui = {
|
|
47
68
|
branding: options.branding || {},
|
|
48
69
|
...options.embeddedVisibility ? { embeddedVisibility: options.embeddedVisibility } : {},
|
|
49
|
-
...options.dockPreferences ? { dockPreferences: options.dockPreferences } : {}
|
|
70
|
+
...options.dockPreferences ? { dockPreferences: options.dockPreferences } : {},
|
|
71
|
+
...options.locale ? { locale: options.locale } : {}
|
|
50
72
|
};
|
|
51
73
|
},
|
|
52
74
|
/**
|
|
@@ -58,4 +80,4 @@ function createUi(options = {}) {
|
|
|
58
80
|
};
|
|
59
81
|
}
|
|
60
82
|
//#endregion
|
|
61
|
-
export { createUi };
|
|
83
|
+
export { HUB_UI_LOCALES, createUi };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devframes/hub-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"description": "Reference UI for the devframe hub, providing the floating dock and standalone viewer.",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@devframes/hub": "1.
|
|
33
|
-
"@devframes/json-render": "1.
|
|
34
|
-
"devframe": "1.
|
|
32
|
+
"@devframes/hub": "1.2.0",
|
|
33
|
+
"@devframes/json-render": "1.2.0",
|
|
34
|
+
"devframe": "1.2.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependenciesMeta": {
|
|
37
37
|
"@devframes/json-render": {
|
|
@@ -39,27 +39,28 @@
|
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@antfu/design": "^0.
|
|
43
|
-
"@devframes/hub": "1.
|
|
44
|
-
"@devframes/json-render": "1.
|
|
45
|
-
"@devframes/plugin-git": "1.
|
|
42
|
+
"@antfu/design": "^0.6.0",
|
|
43
|
+
"@devframes/hub": "1.2.0",
|
|
44
|
+
"@devframes/json-render": "1.2.0",
|
|
45
|
+
"@devframes/plugin-git": "1.2.0",
|
|
46
46
|
"@iconify-json/ph": "^1.2.2",
|
|
47
|
-
"@storybook/addon-docs": "^10.6.
|
|
48
|
-
"@storybook/vue3-vite": "^10.6.
|
|
49
|
-
"@types/node": "^26.
|
|
50
|
-
"@unocss/reset": "^66.10.
|
|
51
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
47
|
+
"@storybook/addon-docs": "^10.6.1",
|
|
48
|
+
"@storybook/vue3-vite": "^10.6.1",
|
|
49
|
+
"@types/node": "^26.6.4",
|
|
50
|
+
"@unocss/reset": "^66.10.5",
|
|
51
|
+
"@vitejs/plugin-vue": "^6.0.9",
|
|
52
52
|
"@vueuse/core": "^14.4.0",
|
|
53
|
-
"devframe": "1.
|
|
54
|
-
"dompurify": "^3.4.
|
|
53
|
+
"devframe": "1.2.0",
|
|
54
|
+
"dompurify": "^3.4.16",
|
|
55
55
|
"fuse.js": "^7.5.0",
|
|
56
56
|
"iframe-pane": "^1.1.0",
|
|
57
|
-
"storybook": "^10.6.
|
|
57
|
+
"storybook": "^10.6.1",
|
|
58
58
|
"tsdown": "^0.23.0",
|
|
59
|
-
"tsx": "^4.23.
|
|
60
|
-
"unocss": "^66.10.
|
|
61
|
-
"vite": "^8.3.
|
|
62
|
-
"vue": "^3.5.
|
|
59
|
+
"tsx": "^4.23.15",
|
|
60
|
+
"unocss": "^66.10.5",
|
|
61
|
+
"vite": "^8.3.2",
|
|
62
|
+
"vue": "^3.5.43",
|
|
63
|
+
"vue-afloat": "^0.2.0"
|
|
63
64
|
},
|
|
64
65
|
"scripts": {
|
|
65
66
|
"build": "pnpm run build:css && pnpm run build:node && pnpm run build:embedded && pnpm run build:standalone",
|