mirror of
https://github.com/sune-org/sune.git
synced 2026-10-29 04:54:51 +00:00
This build was committed by a bot.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mediabunny-aac-encoder-laB6T72z.js","assets/src-DlKePj_l.js"])))=>i.map(i=>d[i]);
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mediabunny-aac-encoder-nnOl37BH.js","assets/src-DlKePj_l.js"])))=>i.map(i=>d[i]);
|
||||
import mathjax3 from "https://esm.sh/markdown-it-mathjax3@5.2.0";
|
||||
//#region \0vite/modulepreload-polyfill.js
|
||||
(function polyfill() {
|
||||
@@ -896,7 +896,7 @@ var loadMb = async () => {
|
||||
sampleRate: 48e3,
|
||||
bitrate: AUDIO_BPS
|
||||
})) (await __vitePreload(async () => {
|
||||
const { registerAacEncoder } = await import("./mediabunny-aac-encoder-laB6T72z.js");
|
||||
const { registerAacEncoder } = await import("./mediabunny-aac-encoder-nnOl37BH.js");
|
||||
return { registerAacEncoder };
|
||||
}, __vite__mapDeps([0,1]))).registerAacEncoder();
|
||||
return mb = m;
|
||||
@@ -2803,13 +2803,21 @@ $(el.accountSettingsForm).on("submit", (e) => {
|
||||
renderUserUI();
|
||||
closeAccountSettings();
|
||||
});
|
||||
$(el.accountPanelAPI).on("click", (e) => {
|
||||
const b = e.target.closest("[data-reveal-for]");
|
||||
if (!b) return;
|
||||
const i = document.getElementById(b.dataset.revealFor);
|
||||
if (!i) return;
|
||||
b.innerHTML = `<i data-lucide="${i.classList.toggle("key-mask") ? "eye" : "eye-off"}" class="h-4 w-4"></i>`;
|
||||
var setIco = (b, n) => {
|
||||
b.innerHTML = `<i data-lucide="${n}" class="h-4 w-4"></i>`;
|
||||
icons();
|
||||
};
|
||||
$(el.accountPanelAPI).on("click", async (e) => {
|
||||
const c = e.target.closest("[data-copy-for]");
|
||||
if (c) {
|
||||
if (await copyToClipboard(document.getElementById(c.dataset.copyFor)?.value || "")) setIco(c, "check"), setTimeout(() => setIco(c, "copy"), 1200);
|
||||
return;
|
||||
}
|
||||
const b = e.target.closest("[data-reveal-for]"), i = b && document.getElementById(b.dataset.revealFor);
|
||||
if (!i) return;
|
||||
const p = i.type === "password";
|
||||
i.type = p ? "text" : "password";
|
||||
setIco(b, p ? "eye-off" : "eye");
|
||||
});
|
||||
el.accountTabGeneral.onclick = () => showAccountTab("General");
|
||||
el.accountTabAPI.onclick = () => showAccountTab("API");
|
||||
@@ -7,7 +7,6 @@ html,body{overscroll-behavior-y:contain;font-family:'Assistant',sans-serif}
|
||||
.msg-avatar{font-size:16px}
|
||||
.menu-card{position:fixed;z-index:60;min-width:12rem;border-radius:0.75rem;border:1px solid #e5e7eb;background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.08)}
|
||||
.menu-item{width:100%;text-align:left;padding:.5rem .75rem;font-size:0.875rem;display:flex;align-items:center;gap:.5rem}
|
||||
.key-mask{-webkit-text-security:disc}
|
||||
#attachBtn{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
|
||||
#htmlEditor,#extensionHtmlEditor,#jsonSchemaEditor{outline:none;white-space:pre!important;font-size:11px;line-height:1.5;}
|
||||
:not(pre)>code{font-size:85%;padding:.2em .4em;margin:0;border-radius:6px;background-color:rgba(175,184,193,0.2)}
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/__vite-browser-external-ey8rhZ1c.js","assets/src-DlKePj_l.js"])))=>i.map(i=>d[i]);
|
||||
import { t as __vitePreload } from "./index-CYlIx5yy.js";
|
||||
import { t as __vitePreload } from "./index-CQ-hyoC4.js";
|
||||
import { CustomAudioEncoder, EncodedPacket, Logging, n as __require$1, r as __toESM, registerEncoder } from "./src-DlKePj_l.js";
|
||||
//#region node_modules/@mediabunny/aac-encoder/dist/bundles/mediabunny-aac-encoder.mjs
|
||||
/*!
|
||||
Vendored
+3
-3
@@ -13,8 +13,8 @@
|
||||
<script defer src="https://unpkg.com/alpinejs@3.17.5/dist/cdn.min.js"></script>
|
||||
|
||||
|
||||
<script type="module" crossorigin src="/assets/index-CYlIx5yy.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-BcZbcl2R.css">
|
||||
<script type="module" crossorigin src="/assets/index-CQ-hyoC4.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-DDqI2rlK.css">
|
||||
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
|
||||
<body class="bg-white text-gray-900 selection:bg-black/10" x-data @click.window="if($event.target.closest('button')) haptic(); if(!document.getElementById('threadPopover').contains($event.target)&&!$event.target.closest('[data-thread-menu]')) hideThreadPopover(); if(!document.getElementById('sunePopover').contains($event.target)&&!$event.target.closest('[data-sune-menu]')) hideSunePopover(); if(!document.getElementById('userMenu').contains($event.target)&&!document.getElementById('userMenuBtn').contains($event.target)) document.getElementById('userMenu').classList.add('hidden')">
|
||||
<div class="flex flex-col h-dvh max-h-dvh overflow-hidden">
|
||||
@@ -203,7 +203,7 @@
|
||||
<div><label class="block text-gray-700 font-medium mb-1">Master Prompt</label><textarea id="set_master_prompt" rows="6" class="w-full rounded-xl border border-gray-300 px-3 py-2" placeholder="Applies to all sunes on this device"></textarea><p class="mt-1 text-xs text-gray-500">Stored locally.</p></div>
|
||||
<div><label class="block text-gray-700 font-medium mb-1">Model preference for titles</label><input id="set_title_model" type="text" class="w-full rounded-xl border border-gray-300 px-3 py-2" placeholder="or:google/gemma-3-12b-it"/><p class="mt-1 text-xs text-gray-500">Used for auto-generating thread titles.</p></div>
|
||||
</div>
|
||||
<div id="accountPanelAPI" class="p-4 overflow-y-auto hidden"><div class="grid grid-cols-2 gap-x-4 gap-y-4"><div><label class="block text-gray-700 font-medium mb-1">OpenRouter Key</label><div class="relative"><input id="set_api_key_or" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-or-..."><button type="button" data-reveal-for="set_api_key_or" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenRouter</code></p></div><div><label class="block text-gray-700 font-medium mb-1">OpenAI Key</label><div class="relative"><input id="set_api_key_oai" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-..."><button type="button" data-reveal-for="set_api_key_oai" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenAI</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Google Key</label><div class="relative"><input id="set_api_key_g" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="AIza..."><button type="button" data-reveal-for="set_api_key_g" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Gemini/Studio. Use: <code>USER.apiKeyGoogle</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Anthropic Key</label><div class="relative"><input id="set_api_key_ant" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-ant-..."><button type="button" data-reveal-for="set_api_key_ant" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyAnthropic</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Cloudflare Token</label><div class="relative"><input id="set_api_key_cf" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="..."><button type="button" data-reveal-for="set_api_key_cf" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Not used. Use: <code>USER.apiKeyCloudflare</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Custom Key 1</label><div class="relative"><input id="set_api_key_custom1" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="..."><button type="button" data-reveal-for="set_api_key_custom1" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.customKey1</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Github Token</label><div class="relative"><input id="set_gh_token" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="key-mask w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="ghp_..."><button type="button" data-reveal-for="set_gh_token" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.githubToken</code></p></div></div></div>
|
||||
<div id="accountPanelAPI" class="p-4 overflow-y-auto hidden"><div class="grid grid-cols-2 gap-x-4 gap-y-4"><div><label class="block text-gray-700 font-medium mb-1">OpenRouter Key <button type="button" data-copy-for="set_api_key_or" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_api_key_or" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-or-..."><button type="button" data-reveal-for="set_api_key_or" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenRouter</code></p></div><div><label class="block text-gray-700 font-medium mb-1">OpenAI Key <button type="button" data-copy-for="set_api_key_oai" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_api_key_oai" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-..."><button type="button" data-reveal-for="set_api_key_oai" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyOpenAI</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Google Key <button type="button" data-copy-for="set_api_key_g" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_api_key_g" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="AIza..."><button type="button" data-reveal-for="set_api_key_g" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Gemini/Studio. Use: <code>USER.apiKeyGoogle</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Anthropic Key <button type="button" data-copy-for="set_api_key_ant" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_api_key_ant" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="sk-ant-..."><button type="button" data-reveal-for="set_api_key_ant" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.apiKeyAnthropic</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Cloudflare Token <button type="button" data-copy-for="set_api_key_cf" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_api_key_cf" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="..."><button type="button" data-reveal-for="set_api_key_cf" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Not used. Use: <code>USER.apiKeyCloudflare</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Custom Key 1 <button type="button" data-copy-for="set_api_key_custom1" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_api_key_custom1" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="..."><button type="button" data-reveal-for="set_api_key_custom1" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.customKey1</code></p></div><div><label class="block text-gray-700 font-medium mb-1">Github Token <button type="button" data-copy-for="set_gh_token" class="inline-flex align-middle text-gray-400 hover:text-gray-600"><i data-lucide="copy" class="h-4 w-4"></i></button></label><div class="relative"><input id="set_gh_token" type="password" class="w-full rounded-xl border border-gray-300 px-3 py-2 pr-10" placeholder="ghp_..."><button type="button" data-reveal-for="set_gh_token" class="absolute inset-y-0 right-0 px-3 flex items-center text-gray-400 hover:text-gray-600"><i data-lucide="eye" class="h-4 w-4"></i></button></div><p class="mt-1 text-xs text-gray-500">Use: <code>USER.githubToken</code></p></div></div></div>
|
||||
<div id="accountPanelUser" class="p-4 space-y-4 overflow-y-auto hidden">
|
||||
<div class="flex items-center gap-4">
|
||||
<div class="relative"><img id="userAvatarPreview" class="h-16 w-16 rounded-full object-cover bg-gray-200"><button type="button" id="setUserAvatarBtn" class="absolute bottom-0 right-0 h-6 w-6 rounded-full bg-white border border-gray-300 flex items-center justify-center hover:bg-gray-100" aria-label="Edit photo"><i data-lucide="edit-3" class="h-3 w-3"></i></button></div>
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
if(!self.define){let e,s={};const n=(n,r)=>(n=new URL(n+".js",r).href,s[n]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()}).then(()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e}));self.define=(r,i)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let l={};const o=e=>n(e,t),c={module:{uri:t},exports:l,require:o};s[t]=Promise.all(r.map(e=>c[e]||o(e))).then(e=>(i(...e),l))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"cbb5a4bb5021c4de3f94495ecf6d2fc4"},{url:"assets/src-DlKePj_l.js",revision:null},{url:"assets/mediabunny-aac-encoder-laB6T72z.js",revision:null},{url:"assets/index-CYlIx5yy.js",revision:null},{url:"assets/index-BcZbcl2R.css",revision:null},{url:"assets/__vite-browser-external-ey8rhZ1c.js",revision:null},{url:"appstore_content/✺.png",revision:"06dd8ca13016278fc47e9a226acdb7f9"},{url:"manifest.webmanifest",revision:"70d853d7dcb45ddd8488db46950b4b33"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
|
||||
if(!self.define){let e,s={};const n=(n,r)=>(n=new URL(n+".js",r).href,s[n]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()}).then(()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e}));self.define=(r,i)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let l={};const o=e=>n(e,t),c={module:{uri:t},exports:l,require:o};s[t]=Promise.all(r.map(e=>c[e]||o(e))).then(e=>(i(...e),l))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"cd350fbe9f3a1be563ab8cc16cc91f73"},{url:"assets/src-DlKePj_l.js",revision:null},{url:"assets/mediabunny-aac-encoder-nnOl37BH.js",revision:null},{url:"assets/index-DDqI2rlK.css",revision:null},{url:"assets/index-CQ-hyoC4.js",revision:null},{url:"assets/__vite-browser-external-ey8rhZ1c.js",revision:null},{url:"appstore_content/✺.png",revision:"06dd8ca13016278fc47e9a226acdb7f9"},{url:"manifest.webmanifest",revision:"70d853d7dcb45ddd8488db46950b4b33"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
|
||||
|
||||
Reference in New Issue
Block a user