sliccy 2.53.0 → 2.54.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/ui/assets/{adobe-CpY266Zc.js → adobe-BDVWBWXF.js} +2 -2
- package/dist/ui/assets/{adobe-Ce4pGa6k.js → adobe-BQ_6PvWv.js} +1 -1
- package/dist/ui/assets/{agent-bridge-DGLDgqPE.js → agent-bridge-7e9zqI-3.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-ySHRDnOA.js → agent-message-to-chat-BIka_kys.js} +1 -1
- package/dist/ui/assets/{anthropic-CQXRZrKe.js → anthropic-B3g2jrQe.js} +1 -1
- package/dist/ui/assets/{azure-openai-7f0I1c2g.js → azure-openai-BRojwWK8.js} +1 -1
- package/dist/ui/assets/{azure-openai-CqN5Wyf8.js → azure-openai-peWSLdW3.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-B6VpI3fU.js → azure-openai-responses-BZMXkkMn.js} +1 -1
- package/dist/ui/assets/{backend-local-D-jeTNnr.js → backend-local-C97MTiUQ.js} +1 -1
- package/dist/ui/assets/{bedrock-camp-CqXHYC67.js → bedrock-camp-jigA67u0.js} +3 -3
- package/dist/ui/assets/{cdp-C1mctqQQ.js → cdp-BWUDgMo5.js} +3 -3
- package/dist/ui/assets/cost-command-BNHBGGLd.js +1 -0
- package/dist/ui/assets/{dist-DGI-KRHb.js → dist-BETSJsV5.js} +1 -1
- package/dist/ui/assets/dist-BhoaJ6E3.js +43 -0
- package/dist/ui/assets/{dist-DTOmXa93.js → dist-C_pwrhfY.js} +1 -1
- package/dist/ui/assets/{dist-6maigE1F.js → dist-Ck3Vla0r.js} +1 -1
- package/dist/ui/assets/{dist-8qo5XTx8.js → dist-DB19jrs9.js} +1 -1
- package/dist/ui/assets/{es-CdoilK6E.js → es-Bo7IVtba.js} +1 -1
- package/dist/ui/assets/follower-sprinkle-bridge-B8hu3_Tp.js +1 -0
- package/dist/ui/assets/{fs-BSEneDlc.js → fs-Dp9UJZnC.js} +3 -3
- package/dist/ui/assets/{fs-D0XzcKxU.js → fs-rho7qRtS.js} +1 -1
- package/dist/ui/assets/{github-DvH9BDfk.js → github-B9Bph-2R.js} +2 -2
- package/dist/ui/assets/{github-ET50AuxZ.js → github-BiuHWCY3.js} +1 -1
- package/dist/ui/assets/{google-BszFYcuS.js → google-D5tttDSd.js} +1 -1
- package/dist/ui/assets/{google-shared-D_QrelB6.js → google-shared-az0i8UPc.js} +1 -1
- package/dist/ui/assets/{google-vertex-qkuMo_cz.js → google-vertex-DOtir00q.js} +1 -1
- package/dist/ui/assets/index-BAW3Fm6o.js +1422 -0
- package/dist/ui/assets/{kernel-worker-UTlIe_KM.js → kernel-worker-TRMDkezf.js} +609 -609
- package/dist/ui/assets/{local-llm-BeFRU84A.js → local-llm-BknrpgG6.js} +1 -1
- package/dist/ui/assets/{local-llm-DnhS4Nc8.js → local-llm-Dp456JSl.js} +1 -1
- package/dist/ui/assets/magick-wasm-CPN3NKqF.js +1 -0
- package/dist/ui/assets/{mistral-7vMFlwyv.js → mistral-BV0eFkMp.js} +1 -1
- package/dist/ui/assets/{mount-vDUPSYAA.js → mount-D_Q23bU0.js} +2 -2
- package/dist/ui/assets/{mount-BRCe8J-8.js → mount-evbRXtHZ.js} +1 -1
- package/dist/ui/assets/{nuke-command-BvSSDKyh.js → nuke-command-BvjHoS6k.js} +1 -1
- package/dist/ui/assets/{oauth-bootstrap-qeeH1muA.js → oauth-bootstrap-Cnh_jJ-b.js} +1 -1
- package/dist/ui/assets/{oauth-service-CP7_knvf.js → oauth-service-B2PM0srO.js} +1 -1
- package/dist/ui/assets/{oauth-service-sgmdLPuV.js → oauth-service-D3sNJGYO.js} +1 -1
- package/dist/ui/assets/{offscreen-client-BPqEe2hm.js → offscreen-client-HYuBnZnD.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-BWrouEJg.js → onboarding-orchestrator-Be9xOaHr.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-DW3ZYFcb.js → openai-codex-responses-DXb3k86e.js} +1 -1
- package/dist/ui/assets/{openai-completions-D5rB4vsV.js → openai-completions-BXuJR1eK.js} +1 -1
- package/dist/ui/assets/{openai-responses-CF3yEStf.js → openai-responses-Bjk0FI2e.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-vokXRwgV.js → openai-responses-shared-CYpbeIvb.js} +1 -1
- package/dist/ui/assets/provider-settings-BwSeCV7i.js +28 -0
- package/dist/ui/assets/{provider-settings-CNtqy5Bx.js → provider-settings-Cuv-5hdn.js} +1 -1
- package/dist/ui/assets/{providers-CR2KVBJC.js → providers-CmRKdFtK.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-DKpFrNt5.js → remote-terminal-view-mqv_gQku.js} +3 -3
- package/dist/ui/assets/shared-Bzh87vAD.js +1 -0
- package/dist/ui/assets/{slicc-editor-DfIx330Y.js → slicc-editor-QB-g14AA.js} +2 -2
- package/dist/ui/assets/{spawn-koTNaVLy.js → spawn-BsRiKEiy.js} +1 -1
- package/dist/ui/assets/sprinkle-renderer-KJJoM4E0.js +112 -0
- package/dist/ui/assets/{telemetry-BHB_tqYb.js → telemetry-qzXntW4J.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-eWV10cS4.js → upgrade-detection-D97svMgN.js} +1 -1
- package/dist/ui/electron-overlay-entry.js +7 -7
- package/dist/ui/index.html +16 -14
- package/dist/ui/packages/webapp/index.html +16 -14
- package/package.json +1 -1
- package/dist/ui/assets/cost-command-De1m63Hp.js +0 -1
- package/dist/ui/assets/index-ZLv5StNy.js +0 -1532
- package/dist/ui/assets/magick-wasm-BCZpZeyl.js +0 -1
- package/dist/ui/assets/provider-settings-BHwoEn-1.js +0 -28
- /package/dist/ui/assets/{addon-fit-CVV7fTw9.js → addon-fit-CJBYijzN.js} +0 -0
- /package/dist/ui/assets/{azure-ai-foundry-rmhg6ipI.js → azure-ai-foundry-c-8tCxDt.js} +0 -0
- /package/dist/ui/assets/{chat-fixture-B4ajo0MH.js → chat-fixture-Hp7QoBPd.js} +0 -0
- /package/dist/ui/assets/{diagnostics-DEZCW87A.js → diagnostics-Bab61WyO.js} +0 -0
- /package/dist/ui/assets/{dist-BzFg7Vf5.js → dist-uJp2dR6X.js} +0 -0
- /package/dist/ui/assets/{env-api-keys-DxKb6C4Q.js → env-api-keys-BoL4zxcb.js} +0 -0
- /package/dist/ui/assets/{git-config-BCAVbrIP.js → git-config-DrjQgeV7.js} +0 -0
- /package/dist/ui/assets/{github-copilot-headers-B6Fvsk-Y.js → github-copilot-headers-DCDy_wqp.js} +0 -0
- /package/dist/ui/assets/{hash-CQjDwcjR.js → hash-K0cSe8jy.js} +0 -0
- /package/dist/ui/assets/{headers-DkHU-pcw.js → headers-Dr-OH1-5.js} +0 -0
- /package/dist/ui/assets/{json-parse-C5jSA6JB.js → json-parse-Cu2r6BfV.js} +0 -0
- /package/dist/ui/assets/{mount-picker-popup-DJJfRF_c.js → mount-picker-popup-ys6_YNH0.js} +0 -0
- /package/dist/ui/assets/{openai-CRGaNv9i.js → openai-C-uvPKpB.js} +0 -0
- /package/dist/ui/assets/{page-storage-sync-B_kI_rjd.js → page-storage-sync-CCCwfs1s.js} +0 -0
- /package/dist/ui/assets/{panel-rpc-handlers-D6u8EbY-.js → panel-rpc-handlers-DSdIUEco.js} +0 -0
- /package/dist/ui/assets/{path-utils-d3qOVZOu.js → path-utils-mhPGPhd8.js} +0 -0
- /package/dist/ui/assets/{rum-DP66esB2.js → rum-fanUFgbu.js} +0 -0
- /package/dist/ui/assets/{sanitize-unicode-BD2XKRoV.js → sanitize-unicode-Dw-JFaZE.js} +0 -0
- /package/dist/ui/assets/{secret-env-BN6ZnD74.js → secret-env-DTcVaCe1.js} +0 -0
- /package/dist/ui/assets/{simple-options-imi_RHvn.js → simple-options-D8vGmEnp.js} +0 -0
- /package/dist/ui/assets/{sprinkle-bridge-channel-BJWN_rO5.js → sprinkle-bridge-channel-Cj_CAZH2.js} +0 -0
- /package/dist/ui/assets/{src-BcpYRmFj.js → src-CpO2JX79.js} +0 -0
- /package/dist/ui/assets/{tool-ui-B3Bihlxa.js → tool-ui-DaAXBPJY.js} +0 -0
- /package/dist/ui/assets/{tray-follower-status-DKq8RTLd.js → tray-follower-status-hrOEFANe.js} +0 -0
- /package/dist/ui/assets/{xterm-ucbPh68r.js → xterm-DHgoOdoP.js} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/slicc-editor-QB-g14AA.js","assets/preload-helper-ca-nBW7U.js","assets/dist-uJp2dR6X.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=`slicc-theme`,n=new Set([`dark`,`light`,`system`]);function r(){let e=localStorage.getItem(t);return e&&n.has(e)?e:`system`}function i(){return document.documentElement.classList.contains(`theme-light`)}var a=new Set;function o(e){e&&a.add(e)}function s(e){e&&a.delete(e)}function c(){let e=i();for(let t of a)try{t.postMessage({type:`slicc-theme`,isLight:e},`*`)}catch{a.delete(t)}}function l(){let e=r(),t=e===`light`;e===`system`&&(t=window.matchMedia?.(`(prefers-color-scheme: light)`).matches??!1),document.documentElement.classList.toggle(`theme-light`,t),c()}var u,d;function f(){l(),u=window.matchMedia?.(`(prefers-color-scheme: light)`),u?.addEventListener?.(`change`,()=>{r()===`system`&&l()}),typeof MutationObserver<`u`&&!d&&(d=new MutationObserver(()=>c()),d.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}))}var p=typeof chrome<`u`&&!!chrome?.runtime?.id,m=/<script\b([^>]*)\bsrc\s*=\s*["'](https?:\/\/[^"']+)["']([^>]*)><\/script>/gi;async function h(e){let t=[],n;for(;(n=m.exec(e))!==null;)t.push({full:n[0],url:n[2],index:n.index});if(m.lastIndex=0,t.length===0)return e;let r=await Promise.all(t.map(async e=>{try{let t=await fetch(e.url);if(!t.ok)throw Error(`HTTP ${t.status}`);return{...e,text:await t.text()}}catch(t){let n=t instanceof Error?t.message:String(t);return{...e,text:`console.error('[sprinkle] Failed to load ${e.url}: ${n}')`}}})),i=e;for(let e=r.length-1;e>=0;e--){let{full:t,text:n}=r[e],a=n.replace(/<\/script/gi,`<\\/script`);i=i.replace(t,()=>`<script>${a}<\/script>`)}return i}function g(e){let t=e.trimStart().toLowerCase();return t.startsWith(`<!doctype`)||t.startsWith(`<html`)}var _=class t{container;bridge;scripts=[];iframe=null;static cachedLucideScript=null;static lucideScriptPromise=null;messageHandler=null;constructor(e,t){this.container=e,this.bridge=t}async render(e,t){this.dispose(),p?await this.renderInSandbox(e,t,g(e)):g(e)?await this.renderFullDoc(e,t):this.renderInline(e,t)}async renderInSandbox(e,t,n=!1){let r=document.createElement(`iframe`);r.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),r.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,this.iframe=r,console.log(`[sprinkle-renderer] creating sandbox iframe`,r.src),await new Promise((e,t)=>{let n=setTimeout(()=>{console.error(`[sprinkle-renderer] iframe load timed out after 5s`),t(Error(`sprinkle sandbox iframe load timed out`))},5e3);r.addEventListener(`load`,()=>{clearTimeout(n),console.log(`[sprinkle-renderer] iframe loaded, contentWindow:`,!!r.contentWindow),o(r.contentWindow),e()},{once:!0}),r.addEventListener(`error`,e=>{clearTimeout(n),console.error(`[sprinkle-renderer] iframe error:`,e),t(Error(`sprinkle sandbox iframe failed to load`))},{once:!0}),this.container.appendChild(r)}),this.messageHandler=e=>{if(e.source!==r.contentWindow)return;let n=e.data;if(n?.type){if(n.type===`sprinkle-lick`)this.bridge.lick({action:n.action,data:n.data});else if(n.type===`sprinkle-set-state`)this.bridge.setState(n.data);else if(n.type===`sprinkle-close`)this.bridge.close();else if(n.type===`sprinkle-stop-cone`)this.bridge.stopCone();else if(n.type===`sprinkle-storage-set`)try{localStorage.setItem(`slicc-sprinkle-ls:${t}:${n.key}`,n.value)}catch(e){console.warn(`[sprinkle-renderer] localStorage setItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-remove`)try{localStorage.removeItem(`slicc-sprinkle-ls:${t}:${n.key}`)}catch(e){console.warn(`[sprinkle-renderer] localStorage removeItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-clear`){let e=`slicc-sprinkle-ls:${t}:`;for(let t=localStorage.length-1;t>=0;t--){let n=localStorage.key(t);n?.startsWith(e)&&localStorage.removeItem(n)}}else if(n.type===`sprinkle-open`)this.bridge.open(n.path,n.projectRoot?{projectRoot:n.projectRoot}:void 0);else if(n.type===`sprinkle-readfile`)this.bridge.readFile(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,content:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-writefile`)this.bridge.writeFile(n.path,n.content).then(()=>r.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-readdir`)this.bridge.readDir(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,entries:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exists`)this.bridge.exists(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,exists:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-stat`)this.bridge.stat(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,stat:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-mkdir`)this.bridge.mkdir(n.path).then(()=>r.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-rm`)this.bridge.rm(n.path).then(()=>r.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-fetch-script`){let e=n.url,t=n.id;fetch(e).then(e=>e.ok?e.text():Promise.reject(Error(`HTTP ${e.status}`))).then(n=>{r.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,text:n},`*`)}).catch(n=>{r.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,error:n instanceof Error?n.message:String(n)},`*`)})}}},window.addEventListener(`message`,this.messageHandler);let a=this.collectThemeCSS(),s={},c=`slicc-sprinkle-ls:${t}:`;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);t?.startsWith(c)&&(s[t.slice(c.length)]=localStorage.getItem(t)??``)}let l=this.bridge.getState(),u=``,d=``;if(n){let t=[];e.includes(`<slicc-editor`)&&t.push(fetch(chrome.runtime.getURL(`slicc-editor.js`)).then(e=>e.ok?e.text():``).then(e=>{u=e}).catch(()=>{})),e.includes(`<slicc-diff`)&&t.push(fetch(chrome.runtime.getURL(`slicc-diff.js`)).then(e=>e.ok?e.text():``).then(e=>{d=e}).catch(()=>{})),await Promise.all(t)}let f=await this.getLucideScript(),p=n?await h(e):e;r.contentWindow.postMessage({type:`sprinkle-render`,content:p,name:t,themeCSS:a,savedState:l,savedStorage:s,fullDoc:n,editorScript:u,diffScript:d,lucideScript:f,isLight:i()},`*`)}pushUpdate(e){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-update`,data:e},`*`)}collectThemeCSS(){return y()}generateBridgeScript(){return`(function() {
|
|
3
|
+
var _updateListeners = new Set();
|
|
4
|
+
var _sprinkleName = '';
|
|
5
|
+
var _state = null;
|
|
6
|
+
var _cbId = 0;
|
|
7
|
+
var _callbacks = {};
|
|
8
|
+
|
|
9
|
+
window.addEventListener('message', function(event) {
|
|
10
|
+
var msg = event.data;
|
|
11
|
+
if (!msg || !msg.type) return;
|
|
12
|
+
if (msg.type === 'sprinkle-init') {
|
|
13
|
+
_sprinkleName = msg.name || '';
|
|
14
|
+
_state = msg.savedState || null;
|
|
15
|
+
if (window.slicc) window.slicc.name = _sprinkleName;
|
|
16
|
+
} else if (msg.type === 'sprinkle-update') {
|
|
17
|
+
_updateListeners.forEach(function(cb) { try { cb(msg.data); } catch(e) { console.error(e); } });
|
|
18
|
+
} else if (msg.type === 'slicc-theme') {
|
|
19
|
+
document.documentElement.classList.toggle('theme-light', !!msg.isLight);
|
|
20
|
+
} else if (msg.id && _callbacks[msg.id]) {
|
|
21
|
+
var cb = _callbacks[msg.id];
|
|
22
|
+
delete _callbacks[msg.id];
|
|
23
|
+
cb(msg);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
function _vfsCall(type, params, extractResult) {
|
|
28
|
+
return new Promise(function(resolve, reject) {
|
|
29
|
+
var id = ++_cbId;
|
|
30
|
+
_callbacks[id] = function(msg) {
|
|
31
|
+
if (msg.error) reject(new Error(msg.error));
|
|
32
|
+
else resolve(extractResult ? extractResult(msg) : undefined);
|
|
33
|
+
};
|
|
34
|
+
var m = { type: type, id: id };
|
|
35
|
+
if (params) { for (var k in params) m[k] = params[k]; }
|
|
36
|
+
parent.postMessage(m, '*');
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
var api = {
|
|
41
|
+
lick: function(event) {
|
|
42
|
+
var action, data;
|
|
43
|
+
if (typeof event === 'string') { action = event; } else { action = event.action; data = event.data; }
|
|
44
|
+
parent.postMessage({ type: 'sprinkle-lick', action: action, data: data }, '*');
|
|
45
|
+
},
|
|
46
|
+
on: function(event, callback) { if (event === 'update') _updateListeners.add(callback); },
|
|
47
|
+
off: function(event, callback) { if (event === 'update') _updateListeners.delete(callback); },
|
|
48
|
+
readFile: function(path) {
|
|
49
|
+
return _vfsCall('sprinkle-readfile', { path: path }, function(m) { return m.content; });
|
|
50
|
+
},
|
|
51
|
+
writeFile: function(path, content) {
|
|
52
|
+
return _vfsCall('sprinkle-writefile', { path: path, content: content });
|
|
53
|
+
},
|
|
54
|
+
readDir: function(path) {
|
|
55
|
+
return _vfsCall('sprinkle-readdir', { path: path }, function(m) { return m.entries; });
|
|
56
|
+
},
|
|
57
|
+
exists: function(path) {
|
|
58
|
+
return _vfsCall('sprinkle-exists', { path: path }, function(m) { return m.exists; });
|
|
59
|
+
},
|
|
60
|
+
stat: function(path) {
|
|
61
|
+
return _vfsCall('sprinkle-stat', { path: path }, function(m) { return m.stat; });
|
|
62
|
+
},
|
|
63
|
+
mkdir: function(path) {
|
|
64
|
+
return _vfsCall('sprinkle-mkdir', { path: path });
|
|
65
|
+
},
|
|
66
|
+
rm: function(path) {
|
|
67
|
+
return _vfsCall('sprinkle-rm', { path: path });
|
|
68
|
+
},
|
|
69
|
+
screenshot: function(selector) {
|
|
70
|
+
return new Promise(function(resolve, reject) {
|
|
71
|
+
try {
|
|
72
|
+
var target = selector ? document.querySelector(selector) : document.body;
|
|
73
|
+
if (!target) { reject(new Error('Element not found: ' + selector)); return; }
|
|
74
|
+
var rect = target.getBoundingClientRect();
|
|
75
|
+
var w = Math.ceil(rect.width);
|
|
76
|
+
var h = Math.ceil(rect.height);
|
|
77
|
+
if (w === 0 || h === 0) { reject(new Error('Element has zero dimensions')); return; }
|
|
78
|
+
var canvas = document.createElement('canvas');
|
|
79
|
+
var dpr = window.devicePixelRatio || 1;
|
|
80
|
+
canvas.width = w * dpr;
|
|
81
|
+
canvas.height = h * dpr;
|
|
82
|
+
var ctx = canvas.getContext('2d');
|
|
83
|
+
ctx.scale(dpr, dpr);
|
|
84
|
+
var clone = target.cloneNode(true);
|
|
85
|
+
var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' + w + '" height="' + h + '">' +
|
|
86
|
+
'<foreignObject width="100%" height="100%">' +
|
|
87
|
+
new XMLSerializer().serializeToString(clone) +
|
|
88
|
+
'</foreignObject></svg>';
|
|
89
|
+
var img = new Image();
|
|
90
|
+
img.onload = function() { ctx.drawImage(img, 0, 0); resolve(canvas.toDataURL('image/png')); };
|
|
91
|
+
img.onerror = function() { reject(new Error('Screenshot rendering failed')); };
|
|
92
|
+
img.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svg);
|
|
93
|
+
} catch(e) { reject(e); }
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
setState: function(data) { _state = data; parent.postMessage({ type: 'sprinkle-set-state', data: data }, '*'); },
|
|
97
|
+
getState: function() { return _state; },
|
|
98
|
+
close: function() { parent.postMessage({ type: 'sprinkle-close' }, '*'); },
|
|
99
|
+
stopCone: function() { parent.postMessage({ type: 'sprinkle-stop-cone' }, '*'); },
|
|
100
|
+
name: ''
|
|
101
|
+
};
|
|
102
|
+
window.slicc = api;
|
|
103
|
+
window.bridge = api;
|
|
104
|
+
})();`}async renderFullDoc(e,t){let n=`<script>${this.generateBridgeScript()}<\/script>`,r=this.collectThemeCSS(),a=r?`<style>${r}</style>`:``,s=e.includes(`<slicc-editor`)?`<script src="/slicc-editor.js"><\/script>`:``,c=e.includes(`<slicc-diff`)?`<script src="/slicc-diff.js"><\/script>`:``,l=`<script>(function(){try{if(${i()?`true`:`false`})document.documentElement.classList.add('theme-light');}catch(e){}})();<\/script>`+n+a+s+c+`<script src="/lucide-icons.js"><\/script>`,u,d=e.match(/<head\b[^>]*>/i);if(d){let t=d.index+d[0].length;u=e.slice(0,t)+l+e.slice(t)}else{let t=e.match(/<script\b/i);if(t)u=e.slice(0,t.index)+l+e.slice(t.index);else{let t=e.match(/<html\b[^>]*>/i);if(t){let n=t.index+t[0].length;u=e.slice(0,n)+l+e.slice(n)}else u=l+e}}let f=document.createElement(`iframe`);f.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),f.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,f.srcdoc=u,this.iframe=f,await new Promise((e,n)=>{let r=setTimeout(()=>{n(Error(`full-doc iframe load timed out`))},5e3);f.addEventListener(`load`,()=>{clearTimeout(r),o(f.contentWindow);let n=this.bridge.getState();f.contentWindow?.postMessage({type:`sprinkle-init`,name:t,savedState:n},`*`),e()},{once:!0}),f.addEventListener(`error`,e=>{clearTimeout(r),n(Error(`full-doc iframe failed to load`))},{once:!0}),this.container.appendChild(f)}),this.messageHandler=e=>{if(e.source!==f.contentWindow)return;let t=e.data;t?.type&&(t.type===`sprinkle-lick`?this.bridge.lick({action:t.action,data:t.data}):t.type===`sprinkle-set-state`?this.bridge.setState(t.data):t.type===`sprinkle-close`?this.bridge.close():t.type===`sprinkle-stop-cone`?this.bridge.stopCone():t.type===`sprinkle-readfile`?this.bridge.readFile(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,content:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-writefile`?this.bridge.writeFile(t.path,t.content).then(()=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-readdir`?this.bridge.readDir(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,entries:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exists`?this.bridge.exists(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,exists:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-stat`?this.bridge.stat(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,stat:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-mkdir`?this.bridge.mkdir(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-rm`&&this.bridge.rm(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)))},window.addEventListener(`message`,this.messageHandler)}renderInline(t,n){if(t.includes(`<slicc-editor`)&&!customElements.get(`slicc-editor`)&&e(()=>import(`./slicc-editor-QB-g14AA.js`),__vite__mapDeps([0,1,2])),t.includes(`<slicc-diff`)&&!customElements.get(`slicc-diff`)){let e=document.createElement(`script`);e.src=`/slicc-diff.js`,document.head.appendChild(e)}window.__slicc_sprinkles||(window.__slicc_sprinkles={}),window.__slicc_sprinkles[n]=this.bridge,this.bridge._container=this.container;let r=document.createElement(`div`);r.className=`sprinkle-content`,r.innerHTML=t,this.container.appendChild(r);for(let e of r.querySelectorAll(`.fill[data-value]`)){let t=parseFloat(e.dataset.value||`0`);t>=0&&t<=100&&(e.style.width=`${t}%`)}let i=`window.__slicc_sprinkles[${JSON.stringify(n)}]`;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;/\b(slicc|bridge)\b/.test(t)&&e.setAttribute(`onclick`,t.replace(/\b(slicc|bridge)\b/g,i))}let a=Array.from(r.querySelectorAll(`script`));for(let e of a){e.remove();let t=document.createElement(`script`);for(let n of e.attributes)t.setAttribute(n.name,n.value);if(!e.src){let n=new Set;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;for(let e of t.matchAll(/\b(\w+)\s*\(/g)){let t=e[1];[`slicc`,`bridge`,`lick`,`close`].includes(t)||n.add(t)}}let a=[...n].map(e=>`if (typeof ${e} === 'function') window.${e} = ${e};`).join(`
|
|
105
|
+
`);t.textContent=`(function() { var slicc = ${i}; var bridge = slicc;\n`+e.textContent+(a?`
|
|
106
|
+
`+a:``)+`
|
|
107
|
+
})();`}r.appendChild(t),this.scripts.push(t)}}dispose(){this.messageHandler&&=(window.removeEventListener(`message`,this.messageHandler),null),this.iframe&&=(s(this.iframe.contentWindow),this.iframe.remove(),null);for(let e of this.scripts)e.remove();this.scripts=[];let e=this.container.querySelector(`.sprinkle-content`);e&&e.remove(),window.__slicc_sprinkles&&delete window.__slicc_sprinkles[this.bridge.name]}async getLucideScript(){return t.cachedLucideScript===null?(t.lucideScriptPromise===null&&(t.lucideScriptPromise=(async()=>{try{let e=await fetch(chrome.runtime.getURL(`lucide-icons.js`));if(e.ok){let n=await e.text();return t.cachedLucideScript=n,n}}catch{}return t.cachedLucideScript=``,``})()),t.lucideScriptPromise):t.cachedLucideScript}};function v(e,t){return e.replace(/url\(\s*['"]?([^'")]+)['"]?\s*\)/g,(e,n)=>{if(/^(https?:|data:|blob:)/i.test(n))return`url('${n}')`;try{return`url('${new URL(n,t).href}')`}catch{return`url('${n}')`}})}function y(){if(typeof getComputedStyle!=`function`)return``;let e=[],t=[],n=[],r=location.href,i=e=>e===`:root`||e===`:root.theme-light`||e.startsWith(`.theme-light `)||e===`.theme-light`||e.split(`,`).some(e=>{let t=e.trim();return t===`:root`||t===`:root.theme-light`||t.startsWith(`.theme-light `)||t===`.theme-light`});for(let a of document.styleSheets)try{for(let o of a.cssRules)if(o instanceof CSSFontFaceRule)e.push(v(o.cssText,r));else if(o instanceof CSSStyleRule){let e=o.selectorText;i(e)&&t.push(o.cssText),(e.includes(`.sprinkle-`)||e.includes(`.fill`))&&n.push(o.cssText)}}catch{}return e.join(`
|
|
108
|
+
`)+`
|
|
109
|
+
`+t.join(`
|
|
110
|
+
`)+`
|
|
111
|
+
`+n.join(`
|
|
112
|
+
`)}export{o as a,i,y as n,s as o,f as r,_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=null,n=!1;function r(){return typeof chrome<`u`&&chrome?.runtime?.id?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function i(){if(!n&&!(typeof localStorage<`u`&&localStorage.getItem(`telemetry-disabled`)===`true`))try{let i=r();typeof window<`u`&&(window.RUM_GENERATION=`slicc-${i}`),i===`extension`?(t=(await e(()=>import(`./rum-
|
|
1
|
+
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=null,n=!1;function r(){return typeof chrome<`u`&&chrome?.runtime?.id?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function i(){if(!n&&!(typeof localStorage<`u`&&localStorage.getItem(`telemetry-disabled`)===`true`))try{let i=r();typeof window<`u`&&(window.RUM_GENERATION=`slicc-${i}`),i===`extension`?(t=(await e(()=>import(`./rum-fanUFgbu.js`),[])).default,typeof window<`u`&&(window.addEventListener(`error`,e=>{c(`js`,u(e.message??``))}),window.addEventListener(`unhandledrejection`,e=>{let t=e.reason;c(`js`,u(t instanceof Error?t.message:String(t)))}))):(typeof window<`u`&&(window.SAMPLE_PAGEVIEWS_AT_RATE=`high`),t=(await e(()=>import(`./src-CpO2JX79.js`),[])).sampleRUM),n=!0,t&&t(`navigate`,{source:typeof document<`u`?document.referrer:``,target:i})}catch{}}function a(e,n){t?.(`formsubmit`,{source:e,target:n})}function o(e){t?.(`viewblock`,{source:e})}function s(e){t?.(`viewmedia`,{source:e})}function c(e,n){t?.(`error`,{source:e,target:n})}function l(e){t?.(`signup`,{source:e})}function u(e){return(e??``).slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`)}export{o as a,l as i,a as n,s as r,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,m as t}from"./db-DPvmo9md.js";const n=`slicc:last-seen-version`;function r(){return{version:`2.
|
|
1
|
+
import{S as e,m as t}from"./db-DPvmo9md.js";const n=`slicc:last-seen-version`;function r(){return{version:`2.54.0`,releasedAt:`2026-05-19T21:24:33Z`}}async function i(){let e=await t(n);return e&&e.length>0?e:null}async function a(t){await e(n,t)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var B=[{id:"chat",label:"Chat"},{id:"terminal",label:"Terminal"},{id:"files",label:"Files"},{id:"memory",label:"Memory"}],
|
|
1
|
+
"use strict";(()=>{var B=[{id:"chat",label:"Chat"},{id:"terminal",label:"Terminal"},{id:"files",label:"Files"},{id:"memory",label:"Memory"}],F=B,M="chat",ut=new Set(B.map(r=>r.id));function u(r,t=M){return r&&r.length>0?r:t}var et=["top-left","top-right","bottom-left","bottom-right","top","right","bottom","left"],rt="top-right",ot=6,nt=12,at=.6;function m(r,t=rt){return et.includes(r)?r:t}function C(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,M),corner:m(r.corner)}}function Z(r){return{...r,open:!r.open}}function T(r,t){return r.open===t?r:{...r,open:t}}function O(r,t){let e=u(t,r.activeTab);return r.activeTab===e?r:{...r,activeTab:e}}function A(r,t){let e=m(t,r.corner);return r.corner===e?r:{...r,corner:e}}function R(r,t){return r>=ot||r>=nt&&t>=at}function $({clientX:r,clientY:t,viewportWidth:e,viewportHeight:o,velocityXPxPerMs:n=0,velocityYPxPerMs:a=0,flickProjectionMs:s=180}){let l=H(r+n*s,0,e),p=H(t+a*s,0,o),i=l/e,c=p/o,d=i>1/3&&i<2/3,h=c>1/3&&c<2/3;if(d&&h){let f=c,b=1-c,S=i,g=1-i,w=Math.min(f,b,S,g);return w===f?"top":w===b?"bottom":w===S?"left":"right"}if(d)return c<.5?"top":"bottom";if(h)return i<.5?"left":"right";let E=i<.5?"left":"right";return`${c<.5?"top":"bottom"}-${E}`}function H(r,t,e){return Math.min(Math.max(r,t),e)}var j="slicc-electron-overlay:set-tab";var W=`<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(191.47118749999993, 12.583024999999978) scale(1.1115000000000002)"><g transform="translate(0, 0)"><g id="Cone">
|
|
3
3
|
<path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: rgb(34, 34, 34); stroke: rgb(255, 255, 255); stroke-linejoin: round; stroke-width: 20px;"/>
|
|
4
4
|
<g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
</g><g id="Left_Eye" data-name="Left Eye">
|
|
25
25
|
<circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: rgb(0, 0, 0); stroke: rgb(255, 255, 255); stroke-miterlimit: 10; stroke-width: 6px;"/>
|
|
26
26
|
<path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(255, 255, 255);"/>
|
|
27
|
-
</g></g></g></svg>`;var
|
|
27
|
+
</g></g></g></svg>`;var q=`<?xml version="1.0" encoding="UTF-8"?>
|
|
28
28
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(191.47118749999993, 12.583024999999978) scale(1.1115000000000002)"><g transform="translate(0, 0)"><g id="Cone">
|
|
29
29
|
<path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: #fff; stroke: #000; stroke-linejoin: round; stroke-width: 20px;"/>
|
|
30
30
|
<g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
</g><g id="Left_Eye" data-name="Left Eye">
|
|
51
51
|
<circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: #fff; stroke: #000; stroke-miterlimit: 10; stroke-width: 6px;"/>
|
|
52
52
|
<path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(0, 0, 0);"/>
|
|
53
|
-
</g></g></g></svg>`;var U="slicc-electron-overlay-root",
|
|
53
|
+
</g></g></g></svg>`;var U="slicc-electron-overlay-root",N="slicc-electron-overlay",pt="Semicolon",K=";",dt="slicc-electron-overlay:toggle",k="slicc-electron-launcher",L="slicc-electron-sidebar",v="",y=18,J="slicc-electron-overlay-launcher-corner";function X(r,t){let e=r.createElement("style");return e.textContent=t,e}function z(r){return r.replace(/<\?xml[^?]*\?>\s*/i,"")}var V=`
|
|
54
54
|
:host {
|
|
55
55
|
color-scheme: dark light;
|
|
56
56
|
--s2-gray-25: #1a1a1a;
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
--s2-shadow-elevated: 0 10px 32px rgba(0, 0, 0, 0.14), 0 2px 10px rgba(0, 0, 0, 0.08);
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
`;function gt(r,t){try{let e=new URL(r,window.location.href);return e.searchParams.set("tab",t),e.toString()}catch{return r}}var
|
|
102
|
+
`;function gt(r,t){try{let e=new URL(r,window.location.href);return e.searchParams.set("tab",t),e.toString()}catch{return r}}var P=class extends HTMLElement{static observedAttributes=["open","corner"];button=null;pointerState=null;suppressClick=!1;connectedCallback(){this.shadowRoot||this.render(),this.sync()}attributeChangedCallback(){this.sync()}render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument,o=y;t.appendChild(X(e,`
|
|
103
103
|
${V}
|
|
104
104
|
:host {
|
|
105
105
|
all: initial;
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
.logo-for-dark { display: none; }
|
|
204
204
|
.logo-for-light { display: block; }
|
|
205
205
|
}
|
|
206
|
-
`));let n=e.createElement("button");n.type="button";let s=`${navigator.platform?.startsWith("Mac")||navigator.userAgent?.includes("Mac")?"\u2318":"Ctrl+"}${K}`;n.setAttribute("aria-label","Toggle SLICC overlay"),n.title=`Toggle SLICC (${s})`;let l=e.createElement("div");l.className="logo-icon logo-for-dark",l.innerHTML=
|
|
206
|
+
`));let n=e.createElement("button");n.type="button";let s=`${navigator.platform?.startsWith("Mac")||navigator.userAgent?.includes("Mac")?"\u2318":"Ctrl+"}${K}`;n.setAttribute("aria-label","Toggle SLICC overlay"),n.title=`Toggle SLICC (${s})`;let l=e.createElement("div");l.className="logo-icon logo-for-dark",l.innerHTML=z(W),l.setAttribute("aria-hidden","true");let p=e.createElement("div");p.className="logo-icon logo-for-light",p.innerHTML=z(q),p.setAttribute("aria-hidden","true");let i=e.createElement("span");i.className="tab-label",i.textContent="SLICC",n.appendChild(l),n.appendChild(p),n.appendChild(i),t.appendChild(n),this.button=n,this.button?.addEventListener("click",c=>{if(this.suppressClick){this.suppressClick=!1,c.preventDefault(),c.stopImmediatePropagation();return}this.dispatchEvent(new CustomEvent("slicc-overlay-toggle",{bubbles:!0,composed:!0}))}),this.button?.addEventListener("pointerdown",this.onPointerDown),this.button?.addEventListener("pointermove",this.onPointerMove),this.button?.addEventListener("pointerup",this.onPointerUp),this.button?.addEventListener("pointercancel",this.onPointerCancel)}sync(){this.button?.setAttribute("aria-pressed",String(this.hasAttribute("open")))}onPointerDown=t=>{if(!t.isPrimary||t.button!==0||!this.button)return;let e=this.getBoundingClientRect();this.pointerState={pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,startLeft:e.left,startTop:e.top,width:e.width,height:e.height,lastX:t.clientX,lastY:t.clientY,lastTimestamp:t.timeStamp,velocityX:0,velocityY:0,dragging:!1},this.suppressClick=!1,this.button.setPointerCapture(t.pointerId),t.preventDefault()};onPointerMove=t=>{let e=this.pointerState;if(!e||t.pointerId!==e.pointerId)return;let o=t.clientX-e.startX,n=t.clientY-e.startY,a=Math.hypot(o,n);!e.dragging&&R(a,0)&&(e.dragging=!0,this.setAttribute("dragging",""));let s=Math.max(t.timeStamp-e.lastTimestamp,1),l=(t.clientX-e.lastX)/s,p=(t.clientY-e.lastY)/s;if(e.velocityX=e.velocityX===0?l:e.velocityX*.35+l*.65,e.velocityY=e.velocityY===0?p:e.velocityY*.35+p*.65,e.lastX=t.clientX,e.lastY=t.clientY,e.lastTimestamp=t.timeStamp,!e.dragging)return;let i=Math.max(y,window.innerWidth-e.width-y),c=Math.max(y,window.innerHeight-e.height-y),d=G(e.startLeft+o,y,i),h=G(e.startTop+n,y,c);this.style.left=`${d}px`,this.style.top=`${h}px`,this.style.right="auto",this.style.bottom="auto",t.preventDefault()};onPointerUp=t=>{this.finishPointerInteraction(t)};onPointerCancel=t=>{this.finishPointerInteraction(t,!1)};finishPointerInteraction(t,e=!0){let o=this.pointerState;if(!o||t.pointerId!==o.pointerId||!this.button)return;let n=Math.hypot(t.clientX-o.startX,t.clientY-o.startY),a=Math.hypot(o.velocityX,o.velocityY);if(e&&(o.dragging||R(n,a))){let l=$({clientX:t.clientX,clientY:t.clientY,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,velocityXPxPerMs:o.velocityX,velocityYPxPerMs:o.velocityY});this.dispatchEvent(new CustomEvent("slicc-overlay-move",{bubbles:!0,composed:!0,detail:{corner:l}})),this.suppressClick=!0,t.preventDefault()}this.button.hasPointerCapture(t.pointerId)&&this.button.releasePointerCapture(t.pointerId),this.pointerState=null,this.removeAttribute("dragging"),this.resetDragStyles()}resetDragStyles(){this.style.left="",this.style.top="",this.style.right="",this.style.bottom=""}},Y=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];tabButtons=new Map;iframe=null;emptyState=null;currentAppUrl=v;frameLoaded=!1;lastPostedTab=null;connectedCallback(){this.shadowRoot||this.render(),this.sync()}attributeChangedCallback(){this.sync()}render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument,o=u(this.getAttribute("active-tab"));t.appendChild(X(e,`
|
|
207
207
|
${V}
|
|
208
208
|
:host { all: initial; position: fixed; inset: 0; display: block; pointer-events: none; font-family: var(--s2-font-family); }
|
|
209
209
|
:host([open]) { pointer-events: auto; }
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
iframe { border: 0; width: 100%; height: 100%; display: block; background: var(--s2-bg-base); }
|
|
256
256
|
.empty-state { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; color: var(--s2-content-secondary); font-size: 13px; line-height: 1.5; }
|
|
257
257
|
.empty-state[hidden] { display: none; }
|
|
258
|
-
`));let n=e.createElement("div");n.className="backdrop",n.setAttribute("part","backdrop"),n.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),t.appendChild(n);let a=e.createElement("aside");a.className="sidebar",a.setAttribute("part","sidebar"),a.setAttribute("aria-label","SLICC overlay sidebar");let s=e.createElement("header");s.className="header";let l=e.createElement("div");l.className="header__brand";let p=e.createElement("div"),i=e.createElement("div");i.className="header__title",i.textContent="slicc";let c=e.createElement("div");c.className="header__subtitle",c.textContent="electron float",p.appendChild(i),p.appendChild(c),l.appendChild(p),s.appendChild(l);let d=e.createElement("button");d.type="button",d.className="header__close",d.setAttribute("aria-label","Close SLICC overlay"),d.textContent="\xD7",d.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),s.appendChild(d),a.appendChild(s);let h=e.createElement("div");h.className="tab-bar",h.setAttribute("role","tablist"),h.setAttribute("aria-label","SLICC overlay tabs");for(let{id:b,label:S}of
|
|
258
|
+
`));let n=e.createElement("div");n.className="backdrop",n.setAttribute("part","backdrop"),n.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),t.appendChild(n);let a=e.createElement("aside");a.className="sidebar",a.setAttribute("part","sidebar"),a.setAttribute("aria-label","SLICC overlay sidebar");let s=e.createElement("header");s.className="header";let l=e.createElement("div");l.className="header__brand";let p=e.createElement("div"),i=e.createElement("div");i.className="header__title",i.textContent="slicc";let c=e.createElement("div");c.className="header__subtitle",c.textContent="electron float",p.appendChild(i),p.appendChild(c),l.appendChild(p),s.appendChild(l);let d=e.createElement("button");d.type="button",d.className="header__close",d.setAttribute("aria-label","Close SLICC overlay"),d.textContent="\xD7",d.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),s.appendChild(d),a.appendChild(s);let h=e.createElement("div");h.className="tab-bar",h.setAttribute("role","tablist"),h.setAttribute("aria-label","SLICC overlay tabs");for(let{id:b,label:S}of F){let g=e.createElement("button");g.type="button",g.className="tab-bar__tab"+(b===o?" tab-bar__tab--active":""),g.setAttribute("role","tab"),g.setAttribute("aria-selected",String(b===o)),g.dataset.tab=b,g.textContent=S,this.tabButtons.set(b,g),g.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-select-tab",{bubbles:!0,composed:!0,detail:{tab:b}}))}),h.appendChild(g)}a.appendChild(h);let E=e.createElement("div");E.className="viewport";let x=e.createElement("iframe");x.title="SLICC electron float",this.iframe=x,x.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()}),E.appendChild(x);let f=e.createElement("div");f.className="empty-state",f.textContent="Starting the local SLICC runtime\u2026",this.emptyState=f,E.appendChild(f),a.appendChild(E),t.appendChild(a),this.iframe?.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()})}sync(){let t=u(this.getAttribute("active-tab")),e=this.getAttribute("app-url")?.trim()??v;for(let[o,n]of this.tabButtons){let a=o===t;n.classList.toggle("tab-bar__tab--active",a),n.setAttribute("aria-selected",String(a))}this.emptyState?.toggleAttribute("hidden",!!e),this.syncFrameUrl(e,t),this.postActiveTab()}syncFrameUrl(t,e){if(this.iframe){if(!t){this.currentAppUrl&&(this.currentAppUrl=v,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.removeAttribute("src"));return}t!==this.currentAppUrl&&(this.currentAppUrl=t,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.src=gt(t,e))}}postActiveTab(){if(!this.frameLoaded||!this.iframe?.contentWindow)return;let t=u(this.getAttribute("active-tab"));this.lastPostedTab!==t&&(this.iframe.contentWindow.postMessage({type:j,tab:t},"*"),this.lastPostedTab=t)}},_=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];state=C();appUrlValue=v;syncingAttributes=!1;connectedCallback(){this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:m(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.shadowRoot||this.render(),this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner),this.ownerDocument.addEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.addEventListener("message",this.onMessage)}disconnectedCallback(){this.ownerDocument.removeEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.removeEventListener("message",this.onMessage)}attributeChangedCallback(){this.syncingAttributes||(this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:m(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}get open(){return this.state.open}set open(t){this.applyState(T(this.state,t))}get activeTab(){return this.state.activeTab}set activeTab(t){this.applyState(O(this.state,t))}get corner(){return this.state.corner}set corner(t){this.applyState(A(this.state,t))}get appUrl(){return this.appUrlValue}set appUrl(t){let e=t.trim();e!==this.appUrlValue&&(this.appUrlValue=e,this.syncingAttributes=!0,e?this.setAttribute("app-url",e):this.removeAttribute("app-url"),this.syncingAttributes=!1,this.syncChildren())}toggle(){this.applyState(Z(this.state))}showSidebar(){this.applyState(T(this.state,!0))}hideSidebar(){this.applyState(T(this.state,!1))}applyState(t){t.open===this.state.open&&t.activeTab===this.state.activeTab&&t.corner===this.state.corner||(this.state=t,this.syncingAttributes=!0,this.toggleAttribute("open",t.open),this.setAttribute("active-tab",t.activeTab),this.setAttribute("corner",t.corner),this.syncingAttributes=!1,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}onKeyDown=t=>{if((t.key===K||t.code===pt)&&(t.metaKey||t.ctrlKey)&&!t.shiftKey&&!t.altKey&&!t.repeat){t.preventDefault(),t.stopPropagation(),this.toggle();return}t.key!=="Escape"||!this.state.open||this.hideSidebar()};onMessage=t=>{t.data&&typeof t.data=="object"&&"type"in t.data&&t.data.type===dt&&this.toggle()};render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument;t.appendChild(X(e,`
|
|
259
259
|
${V}
|
|
260
260
|
:host {
|
|
261
261
|
all: initial;
|
|
@@ -266,4 +266,4 @@
|
|
|
266
266
|
z-index: 2147483647;
|
|
267
267
|
contain: layout style paint;
|
|
268
268
|
}
|
|
269
|
-
`));let o=e.createElement(
|
|
269
|
+
`));let o=e.createElement(k);o.addEventListener("slicc-overlay-toggle",()=>this.toggle()),o.addEventListener("slicc-overlay-move",a=>{let s=a.detail?.corner;this.applyState(A(this.state,s))}),t.appendChild(o);let n=e.createElement(L);n.addEventListener("slicc-overlay-close",()=>this.hideSidebar()),n.addEventListener("slicc-overlay-select-tab",a=>{let s=a.detail?.tab;this.applyState(O(this.state,s))}),t.appendChild(n)}syncChildren(){let t=this.shadowRoot;if(!t)return;let e=t.querySelector(k),o=t.querySelector(L);!e||!o||(e.toggleAttribute("open",this.state.open),e.setAttribute("corner",this.state.corner),o.toggleAttribute("open",this.state.open),o.setAttribute("corner",this.state.corner),o.setAttribute("active-tab",this.state.activeTab),this.appUrlValue?o.setAttribute("app-url",this.appUrlValue):o.removeAttribute("app-url"))}};function ht(r=customElements){r.get(k)||r.define(k,P),r.get(L)||r.define(L,Y),r.get(N)||r.define(N,_)}function Q(r=document,t={}){ht(r.defaultView?.customElements??customElements);let e=r.getElementById(U),o;return e instanceof _?o=e:(e?.remove(),o=r.createElement(N)),o.id=U,o.isConnected||(r.body??r.documentElement).appendChild(o),typeof t.open=="boolean"&&(o.open=t.open),t.activeTab!==void 0&&(o.activeTab=u(t.activeTab)),t.appUrl!==void 0&&(o.appUrl=t.appUrl??v),t.corner!==void 0&&(o.corner=t.corner??D(r.defaultView)),o}function tt(r=document){r.getElementById(U)?.remove()}function D(r){try{return m(r?.localStorage.getItem(J))}catch{return m(null)}}function I(r,t){try{r?.localStorage.setItem(J,t)}catch{}}function G(r,t,e){return Math.min(Math.max(r,t),e)}window.__SLICC_ELECTRON_OVERLAY__={inject(r={}){try{Q(document,r)}catch(t){console.error("[slicc-overlay] Injection failed:",t)}},remove(){try{tt(document)}catch(r){console.error("[slicc-overlay] Removal failed:",r)}}};})();
|
package/dist/ui/index.html
CHANGED
|
@@ -5,24 +5,26 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>slicc</title>
|
|
7
7
|
<link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BAW3Fm6o.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-jRWAZmH_.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-ca-nBW7U.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/env-api-keys-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/simple-options-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/json-parse-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/tray-follower-status-
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/env-api-keys-BoL4zxcb.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/simple-options-D8vGmEnp.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/json-parse-Cu2r6BfV.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-jigA67u0.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/tray-follower-status-hrOEFANe.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/logger-B-No_qN_.js">
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/tool-ui-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/telemetry-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/provider-settings-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/backend-local-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/path-utils-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/fs-
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/tool-ui-DaAXBPJY.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/telemetry-qzXntW4J.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/provider-settings-BwSeCV7i.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-ys6_YNH0.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/backend-local-C97MTiUQ.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/path-utils-mhPGPhd8.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/fs-Dp9UJZnC.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/mime-types-DL940yDZ.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/mount-
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/mount-D_Q23bU0.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/shared-Bzh87vAD.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/sprinkle-renderer-KJJoM4E0.js">
|
|
26
28
|
<link rel="stylesheet" crossorigin href="/assets/index-eWuuouO-.css">
|
|
27
29
|
</head>
|
|
28
30
|
<body>
|
|
@@ -5,24 +5,26 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>slicc</title>
|
|
7
7
|
<link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BAW3Fm6o.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-jRWAZmH_.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-ca-nBW7U.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/env-api-keys-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/simple-options-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/json-parse-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/tray-follower-status-
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/env-api-keys-BoL4zxcb.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/simple-options-D8vGmEnp.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/json-parse-Cu2r6BfV.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-jigA67u0.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/tray-follower-status-hrOEFANe.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/logger-B-No_qN_.js">
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/tool-ui-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/telemetry-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/provider-settings-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/backend-local-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/path-utils-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/fs-
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/tool-ui-DaAXBPJY.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/telemetry-qzXntW4J.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/provider-settings-BwSeCV7i.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-ys6_YNH0.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/backend-local-C97MTiUQ.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/path-utils-mhPGPhd8.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/fs-Dp9UJZnC.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/mime-types-DL940yDZ.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/mount-
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/mount-D_Q23bU0.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/shared-Bzh87vAD.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/sprinkle-renderer-KJJoM4E0.js">
|
|
26
28
|
<link rel="stylesheet" crossorigin href="/assets/index-eWuuouO-.css">
|
|
27
29
|
</head>
|
|
28
30
|
<body>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./index-ZLv5StNy.js";function e(e){}export{e as registerSessionCostsProvider};
|