Compare commits

..

No commits in common. "main" and "2024.08.08.dabb480" have entirely different histories.

86 changed files with 9 additions and 1081 deletions

View File

@ -1,2 +0,0 @@
import{h as w,I as p,U as S,y as i,c as e,C as f,Y as h}from"./useTitle-4zhrJw0D.js";window.opener&&(console=window.opener.console);function m(){var s,a;const[t,d]=w("default"),{editStatus:n,replyToStatus:o,draftStatus:l}=window.__COMPOSE__||{};return p(n?"Editing source status":o?`Replying to @${((s=o.account)==null?void 0:s.acct)||((a=o.account)==null?void 0:a.username)}`:"Compose"),i(()=>{S()},[]),i(()=>{if(t==="closed"){try{window.opener.focus()}catch{}window.close()}},[t]),t==="closed"?e("div",{class:"box",children:[e("p",{children:"You may close this page now."}),e("p",{children:e("button",{onClick:()=>{window.close()},children:"Close window"})})]}):e(f,{editStatus:n,replyToStatus:o,draftStatus:l,standalone:!0,hasOpener:window.opener,onClose:c=>{const{newStatus:r,fn:u=()=>{}}=c||{};try{r&&window.opener.__STATES__.reloadStatusPage++,u(),d("closed")}catch{}}})}h(e(m,{}),document.getElementById("app-standalone"));
//# sourceMappingURL=compose-SFPeyg8r.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"compose-SFPeyg8r.js","sources":["../../src/compose.jsx"],"sourcesContent":["import './index.css';\nimport './app.css';\nimport './polyfills';\n\nimport { render } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\n\nimport ComposeSuspense from './components/compose-suspense';\nimport { initStates } from './utils/states';\nimport useTitle from './utils/useTitle';\n\nif (window.opener) {\n console = window.opener.console;\n}\n\nfunction App() {\n const [uiState, setUIState] = useState('default');\n\n const { editStatus, replyToStatus, draftStatus } = window.__COMPOSE__ || {};\n\n useTitle(\n editStatus\n ? 'Editing source status'\n : replyToStatus\n ? `Replying to @${\n replyToStatus.account?.acct || replyToStatus.account?.username\n }`\n : 'Compose',\n );\n\n useEffect(() => {\n initStates();\n }, []);\n\n useEffect(() => {\n if (uiState === 'closed') {\n try {\n // Focus parent window\n window.opener.focus();\n } catch (e) {}\n window.close();\n }\n }, [uiState]);\n\n if (uiState === 'closed') {\n return (\n <div class=\"box\">\n <p>You may close this page now.</p>\n <p>\n <button\n onClick={() => {\n window.close();\n }}\n >\n Close window\n </button>\n </p>\n </div>\n );\n }\n\n console.debug('OPEN COMPOSE');\n\n return (\n <ComposeSuspense\n editStatus={editStatus}\n replyToStatus={replyToStatus}\n draftStatus={draftStatus}\n standalone\n hasOpener={window.opener}\n onClose={(results) => {\n const { newStatus, fn = () => {} } = results || {};\n try {\n if (newStatus) {\n window.opener.__STATES__.reloadStatusPage++;\n }\n fn();\n setUIState('closed');\n } catch (e) {}\n }}\n />\n );\n}\n\nrender(<App />, document.getElementById('app-standalone'));\n"],"names":["window","opener","console","App","uiState","setUIState","useState","editStatus","replyToStatus","draftStatus","__COMPOSE__","account","acct","username","useEffect","initStates","focus","close","_jsxs","class","children","_jsx","onClick","standalone","hasOpener","newStatus","results","fn","render"],"mappings":"qFAWIA,OAAOC,SACTC,QAAUF,OAAOC,OAAOC,SAG1B,SAASC,GAAM,SACb,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAS,SAAS,EAE1C,CAAEC,WAAAA,EAAYC,cAAAA,EAAeC,YAAAA,CAAAA,EAAgBT,OAAOU,aAAe,GA0BzE,OAvBEH,EAAAA,EACI,wBACAC,EACA,kBACEA,EAAAA,EAAcG,UAAdH,YAAAA,EAAuBI,SAAQJ,EAAAA,EAAcG,UAAdH,YAAAA,EAAuBK,SAAQ,GAEhE,SACN,EAEAC,EAAU,IAAM,CACHC,GACb,EAAG,CAAE,CAAA,EAELD,EAAU,IAAM,CACd,GAAIV,IAAY,SAAU,CACpB,GAAA,CAEFJ,OAAOC,OAAOe,aACJ,CAAC,CACbhB,OAAOiB,MAAM,CACf,CAAA,EACC,CAACb,CAAO,CAAC,EAERA,IAAY,SAEZc,EAAA,MAAA,CAAKC,MAAM,MAAKC,UACdC,EAAA,IAAA,CAAAD,SAAG,8BAAA,CAA+B,EAClCC,EAAA,IAAA,CAAAD,SACEC,EAAA,SAAA,CACEC,QAASA,IAAM,CACbtB,OAAOiB,MAAM,CACf,EAAEG,SACH,cAAA,CAEO,CAAA,CACP,CAAC,CAAA,CACD,EAITlB,IAA4B,CAE5B,WAAAK,EAEIA,cAAAA,EACAC,YAAAA,EACAC,WAAAA,GACAc,UAAU,OAAA,OACVC,WAAkBvB,OAEV,UAAAwB,EAAEA,GAAAA,EAAAA,IAAAA,EAAsB,EAACC,GAAA,CAAA,EAAE,GAAIA,CACjCD,GACF,OAAe,OAAA,WAAA,mBAEfE,IACGtB,EAAA,QAAA,CACHA,MAAAA,EACW,CAAA,CACf,CAAA,CAGNuB,EAAAP,EAAAlB,EAAA,CAAA,CAAA,EAAA,SAAA,eAAA,gBAAA,CAAA"}

View File

@ -1,2 +0,0 @@
import{a7 as _,h as l,i as o,U as v,M as g,a3 as T,y as u,T as t,c as e,I as m,v as y,a8 as I,aa as C}from"./useTitle-SRT6j-GL.js";_();window.opener&&(console=window.opener.console);function x(){var d,r;const[s,p]=l("default"),[a,f]=l(null),{editStatus:c,replyToStatus:i,draftStatus:h}=window.__COMPOSE__||{};return v(c?o._({id:"Txus+H"}):i?o._({id:"03vjxE",values:{0:((d=i.account)==null?void 0:d.acct)||((r=i.account)==null?void 0:r.username)}}):o._({id:"QOhkyl"})),u(()=>{const n=g();f(!!n),n&&T()},[]),u(()=>{if(s==="closed"){try{window.opener.focus()}catch{}window.close()}},[s]),s==="closed"?e("div",{class:"box",children:[e("p",{children:e(t,{id:"mBdQnV"})}),e("p",{children:e("button",{onClick:()=>{window.close()},children:e(t,{id:"rf8fiC"})})})]}):a===!1?e("div",{class:"box",children:[e("h1",{children:e(t,{id:"SlfejT"})}),e("p",{children:e(t,{id:"D3vX+9"})}),e("p",{children:e("a",{href:"/",children:e(t,{id:"iWpEwy"})})})]}):a?e(m,{editStatus:c,replyToStatus:i,draftStatus:h,standalone:!0,hasOpener:window.opener,onClose:n=>{const{newStatus:w,fn:S=()=>{}}=n||{};try{w&&window.opener.__STATES__.reloadStatusPage++,S(),p("closed")}catch{}}}):e("div",{class:"box",children:e(y,{})})}C(e(I,{i18n:o,children:e(x,{})}),document.getElementById("app-standalone"));
//# sourceMappingURL=compose-ZHWvrAfe.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,366 +0,0 @@
[
"mastodon.social",
"mstdn.jp",
"mstdn.social",
"infosec.exchange",
"mas.to",
"mastodon.world",
"hachyderm.io",
"m.cmx.im",
"troet.cafe",
"techhub.social",
"piaille.fr",
"mastodon.uno",
"mastodon.gamedev.place",
"social.vivaldi.net",
"mastodonapp.uk",
"universeodon.com",
"mastodon.nl",
"social.tchncs.de",
"kolektiva.social",
"mastodon.sdf.org",
"tech.lgbt",
"c.im",
"norden.social",
"mstdn.ca",
"occm.cc",
"mastodon.scot",
"sfba.social",
"nrw.social",
"aus.social",
"mathstodon.xyz",
"mastodon-japan.net",
"mstdn.party",
"det.social",
"toot.community",
"ohai.social",
"mstdn.business",
"mastodon.ie",
"sueden.social",
"defcon.social",
"masto.es",
"mastodontech.de",
"mastodon.nu",
"ioc.exchange",
"mindly.social",
"hessen.social",
"ruhr.social",
"mastodon.au",
"nerdculture.de",
"mastodon.green",
"social.cologne",
"muenchen.social",
"indieweb.social",
"social.linux.pizza",
"feuerwehr.social",
"social.anoxinon.de",
"mastodon.nz",
"ruby.social",
"livellosegreto.it",
"fairy.id",
"ieji.de",
"toot.io",
"mastouille.fr",
"mastodont.cat",
"tkz.one",
"toot.wales",
"pouet.chapril.org",
"phpc.social",
"cyberplace.social",
"sciences.social",
"noc.social",
"mastodon.com.tr",
"ravenation.club",
"masto.nu",
"metalhead.club",
"mastodon.ml",
"urbanists.social",
"mastodontti.fi",
"climatejustice.social",
"flipboard.social",
"mstdn.plus",
"dresden.network",
"pol.social",
"mastodon.bida.im",
"mastodon.eus",
"mstdn.games",
"snabelen.no",
"mastodon.me.uk",
"rollenspiel.social",
"todon.eu",
"bark.lgbt",
"hostux.social",
"furry.engineer",
"sunny.garden",
"uri.life",
"mast.lat",
"wien.rocks",
"mastodon.zaclys.com",
"emacs.ch",
"freiburg.social",
"discuss.systems",
"mapstodon.space",
"masto.pt",
"hcommons.social",
"tooting.ch",
"socel.net",
"theblower.au",
"glasgow.social",
"lor.sh",
"stranger.social",
"tilde.zone",
"rheinneckar.social",
"peoplemaking.games",
"geekdom.social",
"bonn.social",
"mastodon-belgium.be",
"wehavecookies.social",
"toad.social",
"mastodon.iriseden.eu",
"vmst.io",
"muenster.im",
"union.place",
"h4.io",
"awscommunity.social",
"blorbo.social",
"qdon.space",
"todon.nl",
"pawb.fun",
"tooot.im",
"rivals.space",
"ludosphere.fr",
"expressional.social",
"mast.dragon-fly.club",
"mastorol.es",
"cupoftea.social",
"veganism.social",
"mastodon.berlin",
"shelter.moe",
"famichiki.jp",
"lgbtqia.space",
"graphics.social",
"mastodon.gal",
"retro.pizza",
"sakurajima.moe",
"historians.social",
"fandom.ink",
"4bear.com",
"oslo.town",
"disabled.social",
"convo.casa",
"urusai.social",
"freeradical.zone",
"masto.nobigtech.es",
"witter.cz",
"eupolicy.social",
"gaygeek.social",
"furries.club",
"muri.network",
"corteximplant.com",
"cr8r.gg",
"toot.aquilenet.fr",
"mastodon.uy",
"xarxa.cloud",
"pnw.zone",
"libretooth.gr",
"machteburch.social",
"dizl.de",
"mustard.blog",
"babka.social",
"vkl.world",
"kanoa.de",
"qaf.men",
"fulda.social",
"archaeo.social",
"spojnik.works",
"dmv.community",
"bookstodon.com",
"mastodon.energy",
"thecanadian.social",
"mastodon.arch-linux.cz",
"social.bau-ha.us",
"drupal.community",
"donphan.social",
"hear-me.social",
"toot.funami.tech",
"toot.kif.rocks",
"musicians.today",
"mograph.social",
"masto.nyc",
"mountains.social",
"federated.press",
"mstdn.dk",
"mast.hpc.social",
"social.seattle.wa.us",
"mastodon.pnpde.social",
"norcal.social",
"hometech.social",
"is.nota.live",
"ani.work",
"tyrol.social",
"gamepad.club",
"wargamers.social",
"social.politicaconciencia.org",
"mastodon.com.pl",
"mastodon.london",
"musician.social",
"epicure.social",
"genealysis.social",
"cosocial.ca",
"mastoot.fr",
"toot.si",
"kurry.social",
"esq.social",
"est.social",
"bahn.social",
"musicworld.social",
"mastodon.mnetwork.co.kr",
"lgbt.io",
"h-net.social",
"social.silicon.moe",
"tooter.social",
"fedi.at",
"frikiverse.zone",
"datasci.social",
"augsburg.social",
"opencoaster.net",
"hispagatos.space",
"neovibe.app",
"friendsofdesoto.social",
"elekk.xyz",
"cyberfurz.social",
"guitar.rodeo",
"khiar.net",
"seocommunity.social",
"theatl.social",
"colorid.es",
"puntarella.party",
"aut.social",
"toot.garden",
"apobangpo.space",
"mastodon.vlaanderen",
"gardenstate.social",
"opalstack.social",
"mastodon.education",
"occitania.social",
"earthstream.social",
"indieauthors.social",
"mastodon.africa",
"masto.yttrx.com",
"arvr.social",
"allthingstech.social",
"furry.energy",
"tuiter.rocks",
"beekeeping.ninja",
"lounge.town",
"mastodon.wien",
"lewacki.space",
"mastodon.pirateparty.be",
"kfem.cat",
"burningboard.net",
"social.veraciousnetwork.com",
"raphus.social",
"lsbt.me",
"poweredbygay.social",
"fikaverse.club",
"jvm.social",
"rail.chat",
"mastodon-swiss.org",
"elizur.me",
"metalverse.social",
"x0r.be",
"library.love",
"drumstodon.net",
"mastodon.sg",
"rheinhessen.social",
"synapse.cafe",
"fribygda.no",
"cultur.social",
"mastodon.cr",
"mastodon.free-solutions.org",
"mastodon.cipherbliss.com",
"cwb.social",
"mastodon.holeyfox.co",
"hoosier.social",
"toot.re",
"techtoots.com",
"mastodon.escepticos.es",
"seo.chat",
"leipzig.town",
"bzh.social",
"mastodon.bot",
"bologna.one",
"vermont.masto.host",
"squawk.mytransponder.com",
"freemasonry.social",
"frontrange.co",
"tchafia.be",
"k8s.social",
"planetearth.social",
"tu.social",
"growers.social",
"toots.nu",
"clj.social",
"paktodon.asia",
"devianze.city",
"xreality.social",
"camp.smolnet.org",
"episcodon.net",
"okla.social",
"mastodon.hosnet.fr",
"balkan.fedive.rs",
"stereodon.social",
"mastodon.bachgau.social",
"nomanssky.social",
"sanjuans.life",
"cville.online",
"t.chadole.com",
"mastodon.conquestuniverse.com",
"skastodon.com",
"mastodon.babb.no",
"travelpandas.fr",
"mastodon.iow.social",
"rap.social",
"masr.social",
"silversword.online",
"kcmo.social",
"ailbhean.co-shaoghal.net",
"mikumikudance.cloud",
"toot.works",
"mastodon.ph",
"mcr.wtf",
"social.diva.exchange",
"fpl.social",
"kzoo.to",
"mastodon.ee",
"pdx.sh",
"23.illuminati.org",
"social.sndevs.com",
"voi.social",
"mastodon.frl",
"nwb.social",
"polsci.social",
"nfld.me",
"mastodon.fedi.quebec",
"social.ferrocarril.net",
"pool.social",
"neurodiversity-in.au",
"biplus.social",
"mastodon.mg",
"mastodon.vanlife.is",
"ms.maritime.social",
"bvb.social",
"netsphere.one",
"ceilidh.online",
"persia.social",
"jaxbeach.social",
"publishing.social",
"wayne.social",
"troet.fediverse.at",
"kjas.no",
"darticulate.com",
"computerfairi.es",
"learningdisability.social",
"wxw.moe",
"tea.codes"
]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,26 +7,9 @@
<title>Compose / Phanpy</title>
<meta name="color-scheme" content="dark light" />
<meta name="google" content="notranslate" />
<link rel="alternate" hreflang="en" href="https://phanpy.social/?lang=en">
<link rel="alternate" hreflang="ca-ES" href="https://phanpy.social/?lang=ca-ES">
<link rel="alternate" hreflang="cs-CZ" href="https://phanpy.social/?lang=cs-CZ">
<link rel="alternate" hreflang="de-DE" href="https://phanpy.social/?lang=de-DE">
<link rel="alternate" hreflang="es-ES" href="https://phanpy.social/?lang=es-ES">
<link rel="alternate" hreflang="eu-ES" href="https://phanpy.social/?lang=eu-ES">
<link rel="alternate" hreflang="fa-IR" href="https://phanpy.social/?lang=fa-IR">
<link rel="alternate" hreflang="fi-FI" href="https://phanpy.social/?lang=fi-FI">
<link rel="alternate" hreflang="fr-FR" href="https://phanpy.social/?lang=fr-FR">
<link rel="alternate" hreflang="gl-ES" href="https://phanpy.social/?lang=gl-ES">
<link rel="alternate" hreflang="kab" href="https://phanpy.social/?lang=kab">
<link rel="alternate" hreflang="ko-KR" href="https://phanpy.social/?lang=ko-KR">
<link rel="alternate" hreflang="pt-BR" href="https://phanpy.social/?lang=pt-BR">
<link rel="alternate" hreflang="pt-PT" href="https://phanpy.social/?lang=pt-PT">
<link rel="alternate" hreflang="ru-RU" href="https://phanpy.social/?lang=ru-RU">
<link rel="alternate" hreflang="zh-CN" href="https://phanpy.social/?lang=zh-CN">
<link rel="alternate" hreflang="x-default" href="https://phanpy.social">
<script type="module" crossorigin src="../assets/compose-ZHWvrAfe.js"></script>
<link rel="modulepreload" crossorigin href="../assets/useTitle-SRT6j-GL.js">
<link rel="stylesheet" crossorigin href="../assets/style-wyTLd4Oi.css">
<script type="module" crossorigin src="../assets/compose-25Dzs_uX.js"></script>
<link rel="modulepreload" crossorigin href="../assets/useTitle-Mh8hVeGN.js">
<link rel="stylesheet" crossorigin href="../assets/style-Jyj9EDmC.css">
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:inline-sw">if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})}</script></head>
<body>
<div id="app-standalone"></div>

View File

@ -55,28 +55,12 @@
content="Minimalistic opinionated Mastodon web client"
/>
<meta property="og:image" content="https://phanpy.social/og-image-2.jpg" />
<link rel="alternate" hreflang="en" href="https://phanpy.social/?lang=en">
<link rel="alternate" hreflang="ca-ES" href="https://phanpy.social/?lang=ca-ES">
<link rel="alternate" hreflang="cs-CZ" href="https://phanpy.social/?lang=cs-CZ">
<link rel="alternate" hreflang="de-DE" href="https://phanpy.social/?lang=de-DE">
<link rel="alternate" hreflang="es-ES" href="https://phanpy.social/?lang=es-ES">
<link rel="alternate" hreflang="eu-ES" href="https://phanpy.social/?lang=eu-ES">
<link rel="alternate" hreflang="fa-IR" href="https://phanpy.social/?lang=fa-IR">
<link rel="alternate" hreflang="fi-FI" href="https://phanpy.social/?lang=fi-FI">
<link rel="alternate" hreflang="fr-FR" href="https://phanpy.social/?lang=fr-FR">
<link rel="alternate" hreflang="gl-ES" href="https://phanpy.social/?lang=gl-ES">
<link rel="alternate" hreflang="kab" href="https://phanpy.social/?lang=kab">
<link rel="alternate" hreflang="ko-KR" href="https://phanpy.social/?lang=ko-KR">
<link rel="alternate" hreflang="pt-BR" href="https://phanpy.social/?lang=pt-BR">
<link rel="alternate" hreflang="pt-PT" href="https://phanpy.social/?lang=pt-PT">
<link rel="alternate" hreflang="ru-RU" href="https://phanpy.social/?lang=ru-RU">
<link rel="alternate" hreflang="zh-CN" href="https://phanpy.social/?lang=zh-CN">
<link rel="alternate" hreflang="x-default" href="https://phanpy.social">
<script type="module" crossorigin src="./assets/main-kbQH2PR3.js"></script>
<link rel="modulepreload" crossorigin href="./assets/useTitle-SRT6j-GL.js">
<script type="module" crossorigin src="./assets/main-Gn0PSoQw.js"></script>
<link rel="modulepreload" crossorigin href="./assets/useTitle-Mh8hVeGN.js">
<link rel="modulepreload" crossorigin href="./assets/tinyld-light-PxOyhYWY.js">
<link rel="modulepreload" crossorigin href="./assets/fuse-MwQ_F2cO.js">
<link rel="stylesheet" crossorigin href="./assets/style-wyTLd4Oi.css">
<link rel="modulepreload" crossorigin href="./assets/index-CeOZgm-k.js">
<link rel="modulepreload" crossorigin href="./assets/fuse-4Bvpr1kU.js">
<link rel="stylesheet" crossorigin href="./assets/style-Jyj9EDmC.css">
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:inline-sw">if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})}</script></head>
<body>
<div id="app"></div>

View File

@ -1 +1 @@
{"buildTime":"2024-08-31T13:00:46.020Z","commitHash":"1b8ab47"}
{"buildTime":"2024-08-08T01:46:42.798Z","commitHash":"dabb480"}