@devframes/hub-ui 1.1.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.
@@ -1 +1 @@
1
- import{wt as e}from"./index-Bkw6gJ1V.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
1
+ import{Zr as e}from"./index-DHmJGo7c.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
@@ -0,0 +1 @@
1
+ import{$ as e,B as t,D as n,G as r,H as i,I as a,J as o,K as s,N as c,O as l,W as u,X as d,Y as f,a as p,et as m,i as h,it as g,k as _,n as ee,o as te,tt as v,y}from"./popup-7nXO1R7H.js";import{$n as b,$r as x,Cr as S,Dr as C,Dt as w,Ir as ne,Jr as re,Qr as ie,Xr as T,d as ae,ei as oe,er as E,f as se,h as ce,kr as D,m as le,n as ue,ni as O,p as k,qr as de,s as A,t as fe,ti as pe,u as me,v as he}from"./index-DHmJGo7c.js";var j=new WeakMap;async function ge(t,n,r,i){if(j.has(n))return j.get(n);let a=await n.sharedState.get(`devframe:commands`,{initialValue:[]}),o=k(a),s=C(new Map),c=k(r),u=w(()=>c.value.commandShortcuts??{}),d=D(!1),f=D(null),p=te(),m=()=>i?i():{clientType:t,dockOpen:!1,paletteOpen:d.value,dockSelectedId:``,popupOpen:p.value},h=w(()=>[...o.value,...Array.from(s.values())].map(e=>fe(e))),g=w(()=>{let e=m();return l(h.value,e).filter(e=>e.showInPalette!==!1)});function ee(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function v(e){f.value=e??null,d.value=!0}async function y(t,...r){let i=_(h.value,t);if(!i)throw Error(`Command "${t}" not found`);if(i.when){let n=m();if(!e(i.when,n))throw Error(`Command "${t}" is not available in the current context`)}if(i.source===`server`)return n.call(`hub:commands:execute`,t,...r);if(i.action)return i.action(...r);throw Error(`Command "${t}" has no action`)}function b(e){let t=u.value[e];return t===void 0?_(h.value,e)?.keybindings??[]:t}typeof window<`u`&&M(m,h,b,y);let x=C({commands:h,paletteCommands:g,register:ee,execute:y,getKeybindings:b,settings:S(r),paletteOpen:d,paletteScopeId:f,openPalette:v});return j.set(n,x),x}function M(t,r,i,a){let o=o=>{if(o.composedPath().some(e=>e.classList?.contains(`shortcut-key-input`)))return;let s=c(o);if(!s||s===`Mod`||s===`Shift`||s===`Alt`)return;let l=t(),u=n(r,i);for(let{id:t,keybinding:n}of u){if(n.key!==s)continue;let i=_(r.value,t);if(!i?.when||e(i.when,l)){o.preventDefault(),o.stopPropagation(),a(t).catch(console.error);return}}};window.addEventListener(`keydown`,o,{capture:!0}),b(p(),(e,t)=>{t&&t.removeEventListener(`keydown`,o,{capture:!0}),e&&e.addEventListener(`keydown`,o,{capture:!0})})}function _e(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function ve(e){if(e.type===`iframe`)return e.clientScript;if(e.type===`action`)return e.action;if(e.type===`custom-render`)return e.renderer}async function N(e,t,n){if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);let r=v(n.importFrom,{template:t.rpc.connectionMeta?.configs?.dock?.clientModuleResolution,metaBaseUrl:t.rpc.connection?.metaBaseUrl});try{let e=(await T(()=>import(r),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${r}" exports no callable "${n.importName??`default`}"`);if(!t.rpc.isTrusted)throw Error(`[@devframes/hub-ui] RPC client is no longer trusted`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script from ${r}${m(n.importFrom,r)}`,e),e}}var P=new WeakMap;function F(e,t,n=e.type!==`action`){let r=ve(e),i=P.get(t.rpc);i||(i=new Map,P.set(t.rpc,i));let a=JSON.stringify([e.id,r?.importFrom,r?.importName??`default`]),o=i.get(a);if(n&&o)return o;let s=N(e,t,r);return n?(i.set(a,s),s.catch(()=>{i.get(a)===s&&i.delete(a)}),s):s}var I=new WeakMap;async function L(e,n,c,l,p=D(!0)){if(I.has(n))return I.get(n);let{entries:m,initialSyncComplete:_}=await le(n),v={},T=await n.sharedState.get(pe,{initialValue:v}),fe=k(T),j=ce(T,v),M=C(new Map),N=w(()=>{let e=m.value,t;if(M.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(M.get(t.id)??t);for(let[e,t]of M)n.has(e)||r.push(t);t=r}let n=t.map(ue);return n.some(e=>e.id===f.id)?n:[...n,{...f,title:A(`dock.settings`)}]});l||=D(ae());let P={...l.value},L=D(P.open&&P.selectedDockId!=null),R=w({get:()=>l.value.selectedDockId,set:e=>{l.value.selectedDockId=e}}),ye=w({get:()=>l.value.selectedDockRoute,set:e=>{l.value.selectedDockRoute=e}}),z=w(()=>L.value?null:N.value.find(e=>e.id===R.value)??o.find(e=>e.id===R.value)??null),B=C(new Map);E(()=>{for(let e of N.value){if(B.has(e.id)){B.get(e.id).entryMeta=e;continue}B.set(e.id,se(e,z))}});let V=(e,t=!1)=>{if(M.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered; pass force to overwrite`);return M.set(e.id,e),B.has(e.id)||B.set(e.id,se(e,z)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=M.get(e.id);n&&M.set(e.id,{...n,...t})},dispose:()=>{M.delete(e.id)&&(B.delete(e.id),R.value===e.id&&(R.value=null))}}},be=e=>{if(!M.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update; register it first`);M.set(e.id,e)};c||=D(me());let xe=ie(),H,Se,U=S(await(async()=>(Se||=n.sharedState.get(`devframe:user-settings`,{initialValue:oe()}),Se))()),Ce=k(U),W,we=te(),G=()=>({clientType:e,dockOpen:l.value.open,paletteOpen:W?.paletteOpen??!1,dockSelectedId:R.value??``,popupOpen:we.value}),Te=new Map,Ee=e=>{if(e.type===`group`)return s(N.value,e,l.value.groupLastChildIds?.[e.id],G())?.id??t(N.value,e.id)[0]?.id??!1;if(e.type===`iframe`&&e.subTabs){let t=e.frameId??e.id,n=Te.get(t);if(n&&n!==e.id&&N.value.some(e=>e.id===n))return n}return null};function K(e){return C({...ne(H),current:B.get(e.id),messages:_e(n)})}async function De(e){e.type===`iframe`&&e.clientScript&&await F(e,K(e))}async function Oe(e){(e.type===`action`||e.type===`custom-render`)&&await F(e,K(e))}function ke(){if(n.isTrusted)for(let e of N.value)(e.type===`iframe`||e.type===`action`)&&ve(e)?.eager&&F(e,K(e),!0).catch(()=>{})}let Ae=e=>{e.type===`iframe`&&e.frameId&&!e.subTabs&&Te.set(e.frameId,e.id),e.type!==`action`&&e.groupId&&((l.value.groupLastChildIds??={})[e.groupId]=e.id),e.type!==`iframe`&&(l.value.selectedDockRoute=null)},je=new Set,Me=(e,t)=>{let n=e.groupId;if(!n||je.has(n))return;let i=N.value.find(e=>e.type===`group`&&e.id===n),a=i?.type===`group`?r(N.value,n,i.defaultChildId,G()):void 0;if(!a||(je.add(n),a.id===e.id))return;let o=l.value.groupLastChildIds?.[n];return t(a.id).then(()=>{o?(l.value.groupLastChildIds??={})[n]=o:delete l.value.groupLastChildIds?.[n]})},q=async(t=null)=>{if(t==null)return L.value=!1,R.value=null,l.value.open=!1,l.value.selectedDockRoute=null,!0;if(t===`~client-auth-notice`)return L.value=!1,R.value=t,l.value.open=!0,!0;let r=N.value.find(e=>e.id===t);if(!r)return!1;let i=Ee(r);if(i===!1)return!1;if(i!==null)return q(i);let a=Me(r,q);return a&&await a,r.type===`action`&&await h(e,r.id)!=null||!n.isTrusted||(await De(r),!n.isTrusted)?!1:(L.value=!1,R.value=r.id,l.value.open=!0,await Oe(r),Ae(r),!0)},J=async e=>R.value===e?q(null):q(e),Y=new Map,X=new Map,Ne=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=Y.get(n);if(r){if(r.iframe===t)return;r.dispose(),Y.delete(n)}let i=de({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:V,switchEntry:q,getStateById:e=>B.get(e)}});Y.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};b(N,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),X.has(n.id)))continue;let e=B.get(n.id);e&&(X.set(n.id,n.frameId??n.id),Ne(n,e))}for(let[e,n]of[...X])t.has(e)||(X.delete(e),Y.get(n)?.dispose(),Y.delete(n))},{immediate:!0}),n.client.register({name:O.broadcast.docksActivate,type:`action`,handler:e=>{e?.dockId&&q(e.dockId).catch(()=>{})}});let Z=n.connectionMeta.configs?.ui?.dockPreferences?.categoryOrder,Pe=w(()=>a(N.value,Ce.value,{whenContext:G(),collapseGroups:!0,categoryOrderOverride:Z}));W=await ge(e,n,U,G);let Fe;E(()=>{Fe?.(),Fe=W.register([{id:`devframes:toggle-palette`,source:`client`,title:A(`command.togglePalette`),icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{W.paletteOpen=!W.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:A(`command.closePanel`),icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{l.value.open=!1,R.value=null}},{id:`devframes:open-settings`,source:`client`,title:A(`command.openSettings`),icon:`ph:gear-duotone`,action:()=>{q(`~settings`)}},{id:`devframes:hide`,source:`client`,title:A(`command.hide`,{productName:he().value.productName}),icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(d))}},{id:`devframes:dock-mode`,source:`client`,title:A(`command.dockMode`),icon:`ph:layout-duotone`,when:e===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:A(`command.floatMode`),icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{c.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:A(`command.edgeMode`),icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{c.value.mode=`edge`}}]}])});let Ie;E(()=>{Ie?.();let e=e=>({id:y(e.id),source:`client`,title:e.title,icon:u(e.icon),action:()=>{J(e.id)}}),n=(e,t)=>{if(t){J(t);return}if(W.paletteOpen&&W.paletteScopeId===e){W.paletteOpen=!1;return}W.openPalette(e)},r=i(N.value),a=N.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&r.has(e.groupId))).flatMap(r=>{if(r.type!==`group`)return[e(r)];let i=t(N.value,r.id,Ce.value,{whenContext:G()}),a=s(N.value,r,l.value.groupLastChildIds?.[r.id],G())?.id;if(i.length===0&&!a)return[];let o=y(r.id);return[{...e(r),action:()=>n(o,a??(i.length===1?i[0].id:void 0)),children:i.map(e)}]});a.length>0&&(Ie=W.register({id:`devframes:docks`,source:`client`,title:A(`command.docks`),icon:`ph:layout-duotone`,children:a}))});let Q=P.selectedDockId==null?null:P.selectedDockRoute;H=C({panel:{get state(){let e;e=p.value?l.value.open?`open`:`closed`:`hidden`;let t={state:e};return R.value!==null&&(t.selectedDockId=R.value),t},events:S(xe),store:c,session:l,isDragging:!1,isResizing:!1,isVertical:w(()=>c.value.position===`left`||c.value.position===`right`),consumeBootRoute:e=>{if(Q!=null&&e===P.selectedDockId){let e=Q;return Q=null,e}return null}},docks:{selectedId:R,selectedRoute:ye,selected:z,entries:N,entryToStateMap:S(B),groupedEntries:Pe,categoryOrder:Z?{...x,...Z}:x,settings:U,getStateById:e=>B.get(e),switchEntry:q,toggleEntry:J,register:V,update:be},commands:W,when:{get context(){return G()}},connection:{get status(){return n.status},get error(){return n.connectionError},events:n.events},renderers:S(re({context:()=>H,manifest:()=>fe.value})),rpc:S(n),clientType:e}),ee(e,async e=>{let t=N.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:q(t.id)});let Le=async()=>{n.isTrusted||await new Promise(e=>{let t=n.events.on(g.client.isTrustedUpdated,n=>{n&&(t(),e())})})},Re=async()=>{let e=P.selectedDockId;if(P.open&&e!=null&&(await Promise.all([Le(),_,j]),L.value)){if(R.value!==e){L.value=!1;return}L.value=!1,await q(e)}},$=H.panel.state;return b([p,()=>l.value.open,R],()=>{let e=H.panel.state;(e.state!==$.state||e.selectedDockId!==$.selectedDockId)&&($=e,xe.emit(O.client.docksPanelStateChanged,e))},{flush:`post`}),Re(),b(N,ke,{immediate:!0}),n.events.on(g.client.isTrustedUpdated,ke),I.set(n,H),H}export{L as createDocksContext};
@@ -0,0 +1 @@
1
+ var e={"common.ok":`OK`,"common.cancel":`Abbrechen`,"common.retry":`Erneut versuchen`,"common.loading":`Wird geladen...`,"common.show":`Anzeigen`,"common.hide":`Ausblenden`,"common.refresh":`Aktualisieren`,"common.back":`Zurück`,"common.reload":`Neu laden`,"command.togglePalette":`Befehlspalette umschalten`,"command.closePanel":`Panel schließen`,"command.openSettings":`Einstellungen öffnen`,"command.hide":`{productName} ausblenden`,"command.dockMode":`Dock-Modus`,"command.floatMode":`Schwebemodus`,"command.edgeMode":`Randmodus`,"command.docks":`Docks`,"dock.settings":`Einstellungen`,"dock.unauthorized":`Nicht autorisiert`,"dock.edgePosition":`Randposition`,"dock.floatMode":`Schwebemodus`,"dock.popup":`Popup`,"dock.showMore":`Mehr anzeigen`,"dock.overflow":`Mehr`,"dock.noTools":`Noch keine Werkzeuge`,"category.default":`Standard`,"category.app":`App`,"category.framework":`Framework`,"category.web":`Web`,"category.advanced":`Erweitert`,"category.builtin":`Integriert`,"category.pinned":`Angeheftet`,"palette.placeholder":`Befehl eingeben...`,"palette.noResults":`Keine Ergebnisse für "{query}"`,"palette.empty":`Keine Befehle verfügbar`,"palette.server":`Server`,"palette.navigate":`navigieren`,"palette.back":`zurück`,"palette.close":`schließen`,"palette.select":`auswählen`,"settings.appearance":`Darstellung`,"settings.docks":`Docks`,"settings.shortcuts":`Tastenkürzel`,"settings.advanced":`Erweitert`,"appearance.language":`Sprache`,"appearance.languageHint":`Sprache der {productName}-Oberfläche`,"appearance.languageAuto":`Automatisch`,"appearance.colorMode":`Farbmodus`,"appearance.colorModeHint":`Design für {productName} und seine inneren Panels`,"appearance.colorAuto":`Automatisch`,"appearance.colorLight":`Hell`,"appearance.colorDark":`Dunkel`,"appearance.dockMode":`Dock-Modus`,"appearance.dockModeHint":`Wie das {productName}-Panel angezeigt wird`,"appearance.dockFloat":`Schwebend`,"appearance.dockEdge":`Rand`,"appearance.dockPopup":`Popup`,"appearance.addressBar":`Iframe-Adressleisten immer anzeigen`,"appearance.addressBarHint":`Zeigt die Adressleiste für jedes Iframe-Dock an.`,"appearance.closeOutside":`Panel bei Klick außerhalb schließen`,"appearance.closeOutsideHint":`Schließt das {productName}-Panel bei einem Klick außerhalb (nur im eingebetteten Modus)`,"appearance.autoCollapse":`Randleiste automatisch einklappen`,"appearance.autoCollapseHint":`Verkleinert die am Rand angedockte Leiste zu einem kleinen Griff, wenn sie inaktiv und geschlossen ist (nur im Randmodus)`,"docks.intro":`Sichtbarkeit und Reihenfolge der Dock-Einträge verwalten. Ausgeblendete Einträge erscheinen nicht in der Dock-Leiste.`,"docks.resetOrder":`Eigene Reihenfolge zurücksetzen`,"docks.alwaysVisible":`Immer sichtbar`,"docks.action":`Aktion`,"docks.group":`Gruppe`,"docks.moveUp":`Nach oben (höhere Priorität)`,"docks.moveDown":`Nach unten (niedrigere Priorität)`,"docks.pin":`Anheften`,"docks.unpin":`Lösen`,"docks.emptyGroup":`Noch keine Werkzeuge in dieser Gruppe`,"shortcuts.intro":`Tastenkürzel für Befehle anpassen.`,"shortcuts.search":`Befehle suchen...`,"shortcuts.edit":`Zum Bearbeiten klicken`,"shortcuts.add":`Tastenkürzel hinzufügen`,"shortcuts.clear":`Tastenkürzel entfernen`,"shortcuts.resetDefault":`Auf Standard zurücksetzen`,"shortcuts.empty":`Keine Befehle gefunden`,"shortcuts.editTitle":`Tastenkürzel bearbeiten`,"shortcuts.editHint":`Tastenkombination drücken oder unten Modifikatoren umschalten`,"shortcuts.pressKeys":`Tasten drücken...`,"shortcuts.warnSingleKey":`Eine einzelne Taste ohne Modifikator kann die Texteingabe stören`,"shortcuts.warnShiftLetter":`Shift + Buchstabe kann die Texteingabe stören`,"shortcuts.warnBrowser":`Konflikt mit Browser-Tastenkürzel: {description} ({keys})`,"shortcuts.warnCommand":`Konflikt mit "{title}"`,"advanced.inspector":`Devframe Inspector anzeigen`,"advanced.inspectorHint":`Zeigt das experimentelle Devframe-Inspector-Dock, die Devtools für die Devtools`,"advanced.resetShortcuts":`Tastenkürzel zurücksetzen`,"advanced.resetShortcutsHint":`Entfernt alle eigenen Tastenkürzel und stellt die Standardbelegung wieder her`,"advanced.resetShortcutsAction":`Tastenkürzel zurücksetzen`,"advanced.resetShortcutsConfirm":`Alle Tastenkürzel auf die Standardwerte zurücksetzen?`,"advanced.resetDocks":`Dock-Einstellungen zurücksetzen`,"advanced.resetDocksHint":`Stellt Sichtbarkeit, Reihenfolge und Anheften der Docks auf die Standardwerte zurück`,"advanced.resetDocksAction":`Docks zurücksetzen`,"advanced.resetDocksConfirm":`Sichtbarkeit, Reihenfolge und Anheften der Docks auf die Standardwerte zurücksetzen?`,"advanced.resetAll":`Alle Einstellungen zurücksetzen`,"advanced.resetAllHint":`Setzt alles auf die Standardwerte zurück, einschließlich Darstellung, Docks und Tastenkürzel`,"advanced.resetAllAction":`Alles zurücksetzen`,"advanced.resetAllConfirm":`Alle Einstellungen auf die Standardwerte zurücksetzen? Dies umfasst Darstellung, Docks und Tastenkürzel.`,"advanced.revoke":`Autorisierung widerrufen`,"advanced.revokeHint":`Entzieht diesem Browser die Autorisierung und widerruft sein Zugriffstoken; du musst dich mit einem neuen Code erneut autorisieren`,"advanced.revokeAction":`Zugriff widerrufen`,"advanced.revokeConfirm":`Den Zugriff dieses Browsers auf {productName} widerrufen? Zum erneuten Verbinden musst du dich mit einem neuen Code autorisieren.`,"auth.title":`{productName} autorisieren`,"auth.intro":`{productName} kann auf deinen Server zugreifen, dein Dateisystem lesen und Befehle ausführen. Bestätige, dass du es bist, bevor du fortfährst.`,"auth.findCode":`Suche den {code} in deinem Terminal.`,"auth.sixDigitCode":`6-stelligen Code`,"auth.otpLabel":`Gib deinen einmaligen Autorisierungscode ein`,"auth.otpGroupLabel":`Einmaliger Autorisierungscode`,"auth.otpDigit":`Ziffer {index} von {length}`,"auth.authorize":`Autorisieren`,"auth.authorizing":`Autorisierung...`,"auth.reissue":`Einmalpasswort neu ausstellen`,"auth.magicLink":`Du kannst auch den Magic Link verwenden, um dich automatisch zu autorisieren.`,"auth.newCode":`Ein neuer Code wurde in deinem Terminal ausgegeben.`,"auth.reissueFailed":`Es konnte kein neuer Code angefordert werden. Bitte versuche es erneut.`,"auth.mismatch":`Dieser Code stimmt nicht. Prüfe dein Terminal und versuche es erneut.`,"auth.failed":`Bei der Autorisierung ist ein Fehler aufgetreten. Bitte versuche es erneut.`,"iframe.crossOrigin":`Fremder Ursprung`,"iframe.crossOriginHint":`Iframe mit fremdem Ursprung`,"iframe.enterUrl":`URL eingeben...`,"iframe.openExternally":`Extern öffnen`,"launcher.launch":`Starten`,"launcher.success":`Erfolgreich`,"launcher.root":`Startverzeichnis`,"launcher.viewTerminal":`Im Terminal anzeigen`,"assets.failed":`Ressourcen konnten nicht remote geladen werden`,"assets.hint":`Die Oberfläche dieses Werkzeugs ist als {pkg} veröffentlicht. Installiere sie lokal oder erlaube den Netzwerkzugriff, um fortzufahren.`,"assets.copy":`Installationsbefehl kopieren`,"assets.copied":`Kopiert`,"renderer.missing":`Kein Renderer für „{type}“ in der aktuellen Umgebung`,"renderer.missingHint":`Der Host hat für diesen Dock-Typ keinen Renderer registriert.`,"renderer.failed":`Der Renderer für „{type}“ konnte nicht geladen werden`};export{e as default};
@@ -0,0 +1 @@
1
+ var e={"common.ok":`Aceptar`,"common.cancel":`Cancelar`,"common.retry":`Reintentar`,"common.loading":`Cargando...`,"common.show":`Mostrar`,"common.hide":`Ocultar`,"common.refresh":`Actualizar`,"common.back":`Atrás`,"common.reload":`Recargar`,"command.togglePalette":`Alternar paleta de comandos`,"command.closePanel":`Cerrar panel`,"command.openSettings":`Abrir ajustes`,"command.hide":`Ocultar {productName}`,"command.dockMode":`Modo de anclaje`,"command.floatMode":`Modo flotante`,"command.edgeMode":`Modo de borde`,"command.docks":`Paneles`,"dock.settings":`Ajustes`,"dock.unauthorized":`No autorizado`,"dock.edgePosition":`Posición del borde`,"dock.floatMode":`Modo flotante`,"dock.popup":`Ventana emergente`,"dock.showMore":`Mostrar más`,"dock.overflow":`Más`,"dock.noTools":`Aún no hay herramientas`,"category.default":`Predeterminado`,"category.app":`Aplicación`,"category.framework":`Framework`,"category.web":`Web`,"category.advanced":`Avanzado`,"category.builtin":`Integrado`,"category.pinned":`Fijados`,"palette.placeholder":`Escribe un comando...`,"palette.noResults":`Sin resultados para "{query}"`,"palette.empty":`No hay comandos disponibles`,"palette.server":`servidor`,"palette.navigate":`navegar`,"palette.back":`atrás`,"palette.close":`cerrar`,"palette.select":`seleccionar`,"settings.appearance":`Apariencia`,"settings.docks":`Paneles`,"settings.shortcuts":`Atajos`,"settings.advanced":`Avanzado`,"appearance.language":`Idioma`,"appearance.languageHint":`Idioma de la interfaz de {productName}`,"appearance.languageAuto":`Automático`,"appearance.colorMode":`Modo de color`,"appearance.colorModeHint":`Tema de {productName} y sus paneles internos`,"appearance.colorAuto":`Automático`,"appearance.colorLight":`Claro`,"appearance.colorDark":`Oscuro`,"appearance.dockMode":`Modo de anclaje`,"appearance.dockModeHint":`Cómo se muestra el panel de {productName}`,"appearance.dockFloat":`Flotante`,"appearance.dockEdge":`Borde`,"appearance.dockPopup":`Emergente`,"appearance.addressBar":`Mostrar siempre la barra de direcciones de los iframes`,"appearance.addressBarHint":`Muestra la barra de direcciones en cada panel iframe.`,"appearance.closeOutside":`Cerrar el panel al hacer clic fuera`,"appearance.closeOutsideHint":`Cierra el panel de {productName} al hacer clic fuera de él (solo en modo integrado)`,"appearance.autoCollapse":`Contraer automáticamente la barra de borde`,"appearance.autoCollapseHint":`Reduce la barra anclada al borde a un pequeño asa cuando está inactiva y cerrada (solo en modo de borde)`,"docks.intro":`Gestiona la visibilidad y el orden de los paneles. Los paneles ocultos no aparecerán en la barra.`,"docks.resetOrder":`Restablecer orden personalizado`,"docks.alwaysVisible":`Siempre visible`,"docks.action":`Acción`,"docks.group":`Grupo`,"docks.moveUp":`Subir (mayor prioridad)`,"docks.moveDown":`Bajar (menor prioridad)`,"docks.pin":`Fijar`,"docks.unpin":`Desfijar`,"docks.emptyGroup":`Aún no hay herramientas en este grupo`,"shortcuts.intro":`Personaliza los atajos de teclado de los comandos.`,"shortcuts.search":`Buscar comandos...`,"shortcuts.edit":`Haz clic para editar`,"shortcuts.add":`Añadir atajo`,"shortcuts.clear":`Quitar atajo`,"shortcuts.resetDefault":`Restablecer al valor predeterminado`,"shortcuts.empty":`No se encontraron comandos`,"shortcuts.editTitle":`Editar atajo`,"shortcuts.editHint":`Pulsa una combinación de teclas o activa los modificadores de abajo`,"shortcuts.pressKeys":`Pulsa las teclas...`,"shortcuts.warnSingleKey":`Una sola tecla sin modificadores puede interferir al escribir`,"shortcuts.warnShiftLetter":`Shift + letra puede interferir al escribir`,"shortcuts.warnBrowser":`Entra en conflicto con un atajo del navegador: {description} ({keys})`,"shortcuts.warnCommand":`Entra en conflicto con "{title}"`,"advanced.inspector":`Mostrar Devframe Inspector`,"advanced.inspectorHint":`Muestra el panel experimental Devframe Inspector, las herramientas de desarrollo para las herramientas de desarrollo`,"advanced.resetShortcuts":`Restablecer atajos de teclado`,"advanced.resetShortcutsHint":`Elimina todos los atajos personalizados y restaura las combinaciones predeterminadas`,"advanced.resetShortcutsAction":`Restablecer atajos`,"advanced.resetShortcutsConfirm":`¿Restablecer todos los atajos de teclado a los valores predeterminados?`,"advanced.resetDocks":`Restablecer ajustes de paneles`,"advanced.resetDocksHint":`Restaura la visibilidad, el orden y el fijado predeterminados de los paneles`,"advanced.resetDocksAction":`Restablecer paneles`,"advanced.resetDocksConfirm":`¿Restablecer la visibilidad, el orden y el fijado de los paneles a los valores predeterminados?`,"advanced.resetAll":`Restablecer todos los ajustes`,"advanced.resetAllHint":`Restablece todo a los valores predeterminados, incluidos apariencia, paneles y atajos`,"advanced.resetAllAction":`Restablecer todo`,"advanced.resetAllConfirm":`¿Restablecer todos los ajustes a los valores predeterminados? Esto incluye apariencia, paneles y atajos.`,"advanced.revoke":`Revocar autorización`,"advanced.revokeHint":`Desautoriza este navegador y revoca su token de acceso; tendrás que volver a autorizar con un código nuevo`,"advanced.revokeAction":`Revocar acceso`,"advanced.revokeConfirm":`¿Revocar el acceso de este navegador a {productName}? Tendrás que autorizar de nuevo con un código nuevo para volver a conectar.`,"auth.title":`Autorizar {productName}`,"auth.intro":`{productName} puede acceder a tu servidor, leer tu sistema de archivos y ejecutar comandos. Confirma que eres tú antes de continuar.`,"auth.findCode":`Busca el {code} impreso en tu terminal.`,"auth.sixDigitCode":`código de 6 dígitos`,"auth.otpLabel":`Introduce tu código de autorización de un solo uso`,"auth.otpGroupLabel":`Código de autorización de un solo uso`,"auth.otpDigit":`Dígito {index} de {length}`,"auth.authorize":`Autorizar`,"auth.authorizing":`Autorizando...`,"auth.reissue":`Volver a emitir la contraseña de un solo uso`,"auth.magicLink":`También puedes usar el enlace mágico para autorizar automáticamente.`,"auth.newCode":`Se imprimió un código nuevo en tu terminal.`,"auth.reissueFailed":`No se pudo solicitar un código nuevo. Inténtalo de nuevo.`,"auth.mismatch":`Ese código no coincide. Revisa tu terminal e inténtalo de nuevo.`,"auth.failed":`Algo salió mal al autorizar. Inténtalo de nuevo.`,"iframe.crossOrigin":`Origen cruzado`,"iframe.crossOriginHint":`iframe de origen cruzado`,"iframe.enterUrl":`Introduce una URL...`,"iframe.openExternally":`Abrir externamente`,"launcher.launch":`Iniciar`,"launcher.success":`Correcto`,"launcher.root":`Raíz de inicio`,"launcher.viewTerminal":`Ver en la terminal`,"assets.failed":`No se pudieron cargar los recursos de forma remota`,"assets.hint":`La interfaz de esta herramienta se publica como {pkg}. Instálala localmente o habilita el acceso a la red para continuar.`,"assets.copy":`Copiar comando de instalación`,"assets.copied":`Copiado`,"renderer.missing":`No hay renderizador para “{type}” en el entorno actual`,"renderer.missingHint":`El host no ha registrado un renderizador para este tipo de panel.`,"renderer.failed":`El renderizador de “{type}” no se pudo cargar`};export{e as default};
@@ -0,0 +1 @@
1
+ var e={"common.ok":`OK`,"common.cancel":`Annuler`,"common.retry":`Réessayer`,"common.loading":`Chargement...`,"common.show":`Afficher`,"common.hide":`Masquer`,"common.refresh":`Actualiser`,"common.back":`Retour`,"common.reload":`Recharger`,"command.togglePalette":`Basculer la palette de commandes`,"command.closePanel":`Fermer le panneau`,"command.openSettings":`Ouvrir les paramètres`,"command.hide":`Masquer {productName}`,"command.dockMode":`Mode d'ancrage`,"command.floatMode":`Mode flottant`,"command.edgeMode":`Mode bord`,"command.docks":`Panneaux`,"dock.settings":`Paramètres`,"dock.unauthorized":`Non autorisé`,"dock.edgePosition":`Position du bord`,"dock.floatMode":`Mode flottant`,"dock.popup":`Fenêtre externe`,"dock.showMore":`Afficher plus`,"dock.overflow":`Plus`,"dock.noTools":`Aucun outil pour l'instant`,"category.default":`Par défaut`,"category.app":`Application`,"category.framework":`Framework`,"category.web":`Web`,"category.advanced":`Avancé`,"category.builtin":`Intégré`,"category.pinned":`Épinglés`,"palette.placeholder":`Saisissez une commande...`,"palette.noResults":`Aucun résultat pour "{query}"`,"palette.empty":`Aucune commande disponible`,"palette.server":`serveur`,"palette.navigate":`naviguer`,"palette.back":`retour`,"palette.close":`fermer`,"palette.select":`sélectionner`,"settings.appearance":`Apparence`,"settings.docks":`Panneaux`,"settings.shortcuts":`Raccourcis`,"settings.advanced":`Avancé`,"appearance.language":`Langue`,"appearance.languageHint":`Langue de l'interface de {productName}`,"appearance.languageAuto":`Automatique`,"appearance.colorMode":`Mode de couleur`,"appearance.colorModeHint":`Thème de {productName} et de ses panneaux internes`,"appearance.colorAuto":`Automatique`,"appearance.colorLight":`Clair`,"appearance.colorDark":`Sombre`,"appearance.dockMode":`Mode d'ancrage`,"appearance.dockModeHint":`Comment le panneau {productName} est affiché`,"appearance.dockFloat":`Flottant`,"appearance.dockEdge":`Bord`,"appearance.dockPopup":`Fenêtre externe`,"appearance.addressBar":`Toujours afficher la barre d'adresse des iframes`,"appearance.addressBarHint":`Affiche la barre d'adresse pour chaque panneau iframe.`,"appearance.closeOutside":`Fermer le panneau en cliquant à l'extérieur`,"appearance.closeOutsideHint":`Ferme le panneau {productName} lors d'un clic en dehors de celui-ci (mode intégré uniquement)`,"appearance.autoCollapse":`Réduire automatiquement la barre de bord`,"appearance.autoCollapseHint":`Réduit la barre ancrée au bord en une petite poignée lorsqu'elle est inactive et fermée (mode bord uniquement)`,"docks.intro":`Gérez la visibilité et l'ordre des panneaux. Les panneaux masqués n'apparaissent pas dans la barre.`,"docks.resetOrder":`Réinitialiser l'ordre personnalisé`,"docks.alwaysVisible":`Toujours visible`,"docks.action":`Action`,"docks.group":`Groupe`,"docks.moveUp":`Monter (priorité plus élevée)`,"docks.moveDown":`Descendre (priorité plus faible)`,"docks.pin":`Épingler`,"docks.unpin":`Désépingler`,"docks.emptyGroup":`Aucun outil dans ce groupe pour l'instant`,"shortcuts.intro":`Personnalisez les raccourcis clavier des commandes.`,"shortcuts.search":`Rechercher des commandes...`,"shortcuts.edit":`Cliquez pour modifier`,"shortcuts.add":`Ajouter un raccourci`,"shortcuts.clear":`Supprimer le raccourci`,"shortcuts.resetDefault":`Rétablir la valeur par défaut`,"shortcuts.empty":`Aucune commande trouvée`,"shortcuts.editTitle":`Modifier le raccourci`,"shortcuts.editHint":`Appuyez sur une combinaison de touches ou activez les modificateurs ci-dessous`,"shortcuts.pressKeys":`Appuyez sur des touches...`,"shortcuts.warnSingleKey":`Une touche seule sans modificateur peut gêner la saisie`,"shortcuts.warnShiftLetter":`Shift + lettre peut gêner la saisie`,"shortcuts.warnBrowser":`Conflit avec un raccourci du navigateur : {description} ({keys})`,"shortcuts.warnCommand":`Conflit avec "{title}"`,"advanced.inspector":`Afficher Devframe Inspector`,"advanced.inspectorHint":`Affiche le panneau expérimental Devframe Inspector, les outils de développement des outils de développement`,"advanced.resetShortcuts":`Réinitialiser les raccourcis clavier`,"advanced.resetShortcutsHint":`Supprime tous les raccourcis personnalisés et rétablit les combinaisons par défaut`,"advanced.resetShortcutsAction":`Réinitialiser les raccourcis`,"advanced.resetShortcutsConfirm":`Réinitialiser tous les raccourcis clavier aux valeurs par défaut ?`,"advanced.resetDocks":`Réinitialiser les paramètres des panneaux`,"advanced.resetDocksHint":`Rétablit la visibilité, l'ordre et l'épinglage par défaut des panneaux`,"advanced.resetDocksAction":`Réinitialiser les panneaux`,"advanced.resetDocksConfirm":`Réinitialiser la visibilité, l'ordre et l'épinglage des panneaux aux valeurs par défaut ?`,"advanced.resetAll":`Réinitialiser tous les paramètres`,"advanced.resetAllHint":`Rétablit tout aux valeurs par défaut, y compris l'apparence, les panneaux et les raccourcis`,"advanced.resetAllAction":`Tout réinitialiser`,"advanced.resetAllConfirm":`Réinitialiser tous les paramètres aux valeurs par défaut ? Cela inclut l'apparence, les panneaux et les raccourcis.`,"advanced.revoke":`Révoquer l'autorisation`,"advanced.revokeHint":`Retire l'autorisation de ce navigateur et révoque son jeton d'accès ; vous devrez autoriser à nouveau avec un nouveau code`,"advanced.revokeAction":`Révoquer l'accès`,"advanced.revokeConfirm":`Révoquer l'accès de ce navigateur à {productName} ? Vous devrez autoriser à nouveau avec un nouveau code pour vous reconnecter.`,"auth.title":`Autoriser {productName}`,"auth.intro":`{productName} peut accéder à votre serveur, lire votre système de fichiers et exécuter des commandes. Confirmez que c'est bien vous avant de continuer.`,"auth.findCode":`Trouvez le {code} affiché dans votre terminal.`,"auth.sixDigitCode":`code à 6 chiffres`,"auth.otpLabel":`Saisissez votre code d'autorisation à usage unique`,"auth.otpGroupLabel":`Code d'autorisation à usage unique`,"auth.otpDigit":`Chiffre {index} sur {length}`,"auth.authorize":`Autoriser`,"auth.authorizing":`Autorisation...`,"auth.reissue":`Renvoyer un mot de passe à usage unique`,"auth.magicLink":`Vous pouvez aussi utiliser le lien magique pour autoriser automatiquement.`,"auth.newCode":`Un nouveau code a été affiché dans votre terminal.`,"auth.reissueFailed":`Impossible de demander un nouveau code. Veuillez réessayer.`,"auth.mismatch":`Ce code ne correspond pas. Vérifiez votre terminal et réessayez.`,"auth.failed":`Une erreur s'est produite lors de l'autorisation. Veuillez réessayer.`,"iframe.crossOrigin":`Origine différente`,"iframe.crossOriginHint":`iframe d'origine différente`,"iframe.enterUrl":`Saisissez une URL...`,"iframe.openExternally":`Ouvrir à l'extérieur`,"launcher.launch":`Lancer`,"launcher.success":`Réussi`,"launcher.root":`Racine de lancement`,"launcher.viewTerminal":`Voir dans le terminal`,"assets.failed":`Échec du chargement des ressources à distance`,"assets.hint":`L'interface de cet outil est publiée sous {pkg}. Installez-la localement ou activez l'accès réseau pour continuer.`,"assets.copy":`Copier la commande d'installation`,"assets.copied":`Copié`,"renderer.missing":`Aucun moteur de rendu pour « {type} » dans l'environnement actuel`,"renderer.missingHint":`L'hôte n'a pas enregistré de moteur de rendu pour ce type de panneau.`,"renderer.failed":`Le moteur de rendu de « {type} » n'a pas pu être chargé`};export{e as default};