Compare commits

..

2 Commits

Author SHA1 Message Date
archos 90c36e5392 Aktualizace nová verze Phanpy, přídána čeština 2024-08-31 18:44:58 +02:00
archos 2afe460672 Enhance language preferences and RTL support
- Set sort order when filtering by Boosts in Catch-up
- Fix bugs related to user language preferences
- Improve RTL text direction handling
- Disable scroll snap for wider viewports
- Add support for new post languages (Jawi Malay, Kashubian, Mohawk, and more)
2024-08-11 19:34:25 +02:00
86 changed files with 1081 additions and 9 deletions
+2
View File
@@ -0,0 +1,2 @@
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
+1
View File
@@ -0,0 +1 @@
{"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"}
+2
View File
@@ -0,0 +1,2 @@
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
+366
View File
@@ -0,0 +1,366 @@
[
"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
+20 -3
View File
@@ -7,9 +7,26 @@
<title>Compose / Phanpy</title>
<meta name="color-scheme" content="dark light" />
<meta name="google" content="notranslate" />
<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="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">
<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>
+21 -5
View File
@@ -55,12 +55,28 @@
content="Minimalistic opinionated Mastodon web client"
/>
<meta property="og:image" content="https://phanpy.social/og-image-2.jpg" />
<script type="module" crossorigin src="./assets/main-Gn0PSoQw.js"></script>
<link rel="modulepreload" crossorigin href="./assets/useTitle-Mh8hVeGN.js">
<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">
<link rel="modulepreload" crossorigin href="./assets/tinyld-light-PxOyhYWY.js">
<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="modulepreload" crossorigin href="./assets/fuse-MwQ_F2cO.js">
<link rel="stylesheet" crossorigin href="./assets/style-wyTLd4Oi.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>
+1 -1
View File
@@ -1 +1 @@
{"buildTime":"2024-08-08T01:46:42.798Z","commitHash":"dabb480"}
{"buildTime":"2024-08-31T13:00:46.020Z","commitHash":"1b8ab47"}