commit 296ef9214b0020cdc6eb0c379e222fde4e5006f7 Author: Lim Chee Aun Date: Sun Dec 31 10:22:03 2023 +0000 Imported from 2023.12.31.8aa0542.tar.gz. SHA256:17ea8854a3504752a8ae4540ecb09e62f6f8aa260221d3619fda46f66b2ec43f diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000..cb3c18d Binary files /dev/null and b/apple-touch-icon.png differ diff --git a/assets/boosts-carousel-YjmjXTE6.jpg b/assets/boosts-carousel-YjmjXTE6.jpg new file mode 100644 index 0000000..17ac69a Binary files /dev/null and b/assets/boosts-carousel-YjmjXTE6.jpg differ diff --git a/assets/compose-sBS7hMqP.js b/assets/compose-sBS7hMqP.js new file mode 100644 index 0000000..d11f0a7 --- /dev/null +++ b/assets/compose-sBS7hMqP.js @@ -0,0 +1,2 @@ +import{W as u,G as p}from"./useTitle-zvzl1Hla.js";import{h as w,p as f,a as e,G as m}from"./vendor--8C7Txey.js";window.opener&&(console=window.opener.console);function S(){var s,a;const[t,i]=w("default"),{editStatus:n,replyToStatus:o,draftStatus:d}=window.__COMPOSE__||{};return u(n?"Editing source status":o?`Replying to @${((s=o.account)==null?void 0:s.acct)||((a=o.account)==null?void 0:a.username)}`:"Compose"),f(()=>{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(p,{editStatus:n,replyToStatus:o,draftStatus:d,standalone:!0,hasOpener:window.opener,onClose:c=>{const{newStatus:r,fn:l=()=>{}}=c||{};try{r&&window.opener.__STATES__.reloadStatusPage++,l(),i("closed")}catch{}}})}m(e(S,{}),document.getElementById("app-standalone")); +//# sourceMappingURL=compose-sBS7hMqP.js.map diff --git a/assets/compose-sBS7hMqP.js.map b/assets/compose-sBS7hMqP.js.map new file mode 100644 index 0000000..c2bd7a1 --- /dev/null +++ b/assets/compose-sBS7hMqP.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compose-sBS7hMqP.js","sources":["../../src/compose.jsx"],"sourcesContent":["import './index.css';\n\nimport './app.css';\n\nimport { render } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\n\nimport Compose from './components/compose';\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 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
\n

You may close this page now.

\n

\n {\n window.close();\n }}\n >\n Close window\n \n

\n
\n );\n }\n\n console.debug('OPEN COMPOSE');\n\n return (\n {\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(, document.getElementById('app-standalone'));\n"],"names":["window","opener","console","App","uiState","setUIState","useState","editStatus","replyToStatus","draftStatus","__COMPOSE__","account","acct","username","useEffect","focus","close","_jsxs","class","children","_jsx","onClick","standalone","hasOpener","newStatus","results","fn","render"],"mappings":"gHAUIA,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,GAsBzE,OAnBEH,EAAAA,EACI,wBACAC,EACC,kBACCA,EAAAA,EAAcG,UAAdH,YAAAA,EAAuBI,SAAQJ,EAAAA,EAAcG,UAAdH,YAAAA,EAAuBK,SACvD,GACD,SACN,EAEAC,EAAU,IAAM,CACd,GAAIV,IAAY,SAAU,CACpB,GAAA,CAEFJ,OAAOC,OAAOc,aACJ,CAAC,CACbf,OAAOgB,MAAM,CACf,CAAA,EACC,CAACZ,CAAO,CAAC,EAERA,IAAY,SAEZa,EAAA,MAAA,CAAKC,MAAM,MAAKC,UACdC,EAAA,IAAA,CAAAD,SAAG,8BAAA,CAA+B,EAClCC,EAAA,IAAA,CAAAD,SACEC,EAAA,SAAA,CACEC,QAASA,IAAM,CACbrB,OAAOgB,MAAM,CACf,EAAEG,SACH,cAAA,CAEO,CAAA,CACP,CAAC,CAAA,CACD,EAITjB,IAA4B,CAE5B,WAAAK,EAEIA,cAAAA,EACAC,YAAAA,EACAC,WAAAA,GACAa,UAAU,OAAA,OACVC,WAAkBtB,OAEV,UAAAuB,EAAEA,GAAAA,EAAAA,IAAAA,EAAsB,EAACC,GAAA,CAAA,EAAE,GAAIA,CACjCD,GACF,OAAe,OAAA,WAAA,mBAEfE,IACGrB,EAAA,QAAA,CACHA,MAAAA,EACW,CAAA,CACf,CAAA,CAGNsB,EAAAP,EAAAjB,EAAA,CAAA,CAAA,EAAA,SAAA,eAAA,gBAAA,CAAA"} \ No newline at end of file diff --git a/assets/grouped-notifications-xYMFVY91.jpg b/assets/grouped-notifications-xYMFVY91.jpg new file mode 100644 index 0000000..969b6df Binary files /dev/null and b/assets/grouped-notifications-xYMFVY91.jpg differ diff --git a/assets/icons/add-circle-line--O-MfyNy.js b/assets/icons/add-circle-line--O-MfyNy.js new file mode 100644 index 0000000..65c5611 --- /dev/null +++ b/assets/icons/add-circle-line--O-MfyNy.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=add-circle-line--O-MfyNy.js.map diff --git a/assets/icons/add-circle-line--O-MfyNy.js.map b/assets/icons/add-circle-line--O-MfyNy.js.map new file mode 100644 index 0000000..4f09336 --- /dev/null +++ b/assets/icons/add-circle-line--O-MfyNy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"add-circle-line--O-MfyNy.js","sources":["../../../node_modules/@iconify-icons/mingcute/add-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/alert-line-zyc6hy8V.js b/assets/icons/alert-line-zyc6hy8V.js new file mode 100644 index 0000000..f890892 --- /dev/null +++ b/assets/icons/alert-line-zyc6hy8V.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=alert-line-zyc6hy8V.js.map diff --git a/assets/icons/alert-line-zyc6hy8V.js.map b/assets/icons/alert-line-zyc6hy8V.js.map new file mode 100644 index 0000000..15fdc0a --- /dev/null +++ b/assets/icons/alert-line-zyc6hy8V.js.map @@ -0,0 +1 @@ +{"version":3,"file":"alert-line-zyc6hy8V.js","sources":["../../../node_modules/@iconify-icons/mingcute/alert-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,m2BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/android-2-line-uPwvVubH.js b/assets/icons/android-2-line-uPwvVubH.js new file mode 100644 index 0000000..27de5b5 --- /dev/null +++ b/assets/icons/android-2-line-uPwvVubH.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=android-2-line-uPwvVubH.js.map diff --git a/assets/icons/android-2-line-uPwvVubH.js.map b/assets/icons/android-2-line-uPwvVubH.js.map new file mode 100644 index 0000000..677e00d --- /dev/null +++ b/assets/icons/android-2-line-uPwvVubH.js.map @@ -0,0 +1 @@ +{"version":3,"file":"android-2-line-uPwvVubH.js","sources":["../../../node_modules/@iconify-icons/mingcute/android-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q/BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/announcement-line-MSlAmDH1.js b/assets/icons/announcement-line-MSlAmDH1.js new file mode 100644 index 0000000..59d8af1 --- /dev/null +++ b/assets/icons/announcement-line-MSlAmDH1.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=announcement-line-MSlAmDH1.js.map diff --git a/assets/icons/announcement-line-MSlAmDH1.js.map b/assets/icons/announcement-line-MSlAmDH1.js.map new file mode 100644 index 0000000..4ec4ff0 --- /dev/null +++ b/assets/icons/announcement-line-MSlAmDH1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"announcement-line-MSlAmDH1.js","sources":["../../../node_modules/@iconify-icons/mingcute/announcement-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+pCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-down-circle-line-mpqFtRtO.js b/assets/icons/arrow-down-circle-line-mpqFtRtO.js new file mode 100644 index 0000000..a314118 --- /dev/null +++ b/assets/icons/arrow-down-circle-line-mpqFtRtO.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-down-circle-line-mpqFtRtO.js.map diff --git a/assets/icons/arrow-down-circle-line-mpqFtRtO.js.map b/assets/icons/arrow-down-circle-line-mpqFtRtO.js.map new file mode 100644 index 0000000..26b733b --- /dev/null +++ b/assets/icons/arrow-down-circle-line-mpqFtRtO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-down-circle-line-mpqFtRtO.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-down-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,m6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-down-line-0TRJUP_K.js b/assets/icons/arrow-down-line-0TRJUP_K.js new file mode 100644 index 0000000..79a7aaa --- /dev/null +++ b/assets/icons/arrow-down-line-0TRJUP_K.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-down-line-0TRJUP_K.js.map diff --git a/assets/icons/arrow-down-line-0TRJUP_K.js.map b/assets/icons/arrow-down-line-0TRJUP_K.js.map new file mode 100644 index 0000000..c9afdd9 --- /dev/null +++ b/assets/icons/arrow-down-line-0TRJUP_K.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-down-line-0TRJUP_K.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-down-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-left-line-_YC6-XGG.js b/assets/icons/arrow-left-line-_YC6-XGG.js new file mode 100644 index 0000000..2e113bc --- /dev/null +++ b/assets/icons/arrow-left-line-_YC6-XGG.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-left-line-_YC6-XGG.js.map diff --git a/assets/icons/arrow-left-line-_YC6-XGG.js.map b/assets/icons/arrow-left-line-_YC6-XGG.js.map new file mode 100644 index 0000000..7be3f99 --- /dev/null +++ b/assets/icons/arrow-left-line-_YC6-XGG.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-left-line-_YC6-XGG.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-left-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-right-line-PypiEqpu.js b/assets/icons/arrow-right-line-PypiEqpu.js new file mode 100644 index 0000000..5a7f5de --- /dev/null +++ b/assets/icons/arrow-right-line-PypiEqpu.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-right-line-PypiEqpu.js.map diff --git a/assets/icons/arrow-right-line-PypiEqpu.js.map b/assets/icons/arrow-right-line-PypiEqpu.js.map new file mode 100644 index 0000000..1dd3644 --- /dev/null +++ b/assets/icons/arrow-right-line-PypiEqpu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-right-line-PypiEqpu.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-right-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,iwBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-up-circle-line-e3kZqEZN.js b/assets/icons/arrow-up-circle-line-e3kZqEZN.js new file mode 100644 index 0000000..a7e1755 --- /dev/null +++ b/assets/icons/arrow-up-circle-line-e3kZqEZN.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-up-circle-line-e3kZqEZN.js.map diff --git a/assets/icons/arrow-up-circle-line-e3kZqEZN.js.map b/assets/icons/arrow-up-circle-line-e3kZqEZN.js.map new file mode 100644 index 0000000..148d152 --- /dev/null +++ b/assets/icons/arrow-up-circle-line-e3kZqEZN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-up-circle-line-e3kZqEZN.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-up-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,65BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-up-line-fcuKqhVE.js b/assets/icons/arrow-up-line-fcuKqhVE.js new file mode 100644 index 0000000..e457bae --- /dev/null +++ b/assets/icons/arrow-up-line-fcuKqhVE.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-up-line-fcuKqhVE.js.map diff --git a/assets/icons/arrow-up-line-fcuKqhVE.js.map b/assets/icons/arrow-up-line-fcuKqhVE.js.map new file mode 100644 index 0000000..fdf9436 --- /dev/null +++ b/assets/icons/arrow-up-line-fcuKqhVE.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-up-line-fcuKqhVE.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-up-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/at-line-9vJS_Hnl.js b/assets/icons/at-line-9vJS_Hnl.js new file mode 100644 index 0000000..af36287 --- /dev/null +++ b/assets/icons/at-line-9vJS_Hnl.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=at-line-9vJS_Hnl.js.map diff --git a/assets/icons/at-line-9vJS_Hnl.js.map b/assets/icons/at-line-9vJS_Hnl.js.map new file mode 100644 index 0000000..e650267 --- /dev/null +++ b/assets/icons/at-line-9vJS_Hnl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"at-line-9vJS_Hnl.js","sources":["../../../node_modules/@iconify-icons/mingcute/at-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8xCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/attachment-line-C2PUa1Ke.js b/assets/icons/attachment-line-C2PUa1Ke.js new file mode 100644 index 0000000..aa7968d --- /dev/null +++ b/assets/icons/attachment-line-C2PUa1Ke.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=attachment-line-C2PUa1Ke.js.map diff --git a/assets/icons/attachment-line-C2PUa1Ke.js.map b/assets/icons/attachment-line-C2PUa1Ke.js.map new file mode 100644 index 0000000..eeaa929 --- /dev/null +++ b/assets/icons/attachment-line-C2PUa1Ke.js.map @@ -0,0 +1 @@ +{"version":3,"file":"attachment-line-C2PUa1Ke.js","sources":["../../../node_modules/@iconify-icons/mingcute/attachment-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u9BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/bookmark-line-D6jQ7QFs.js b/assets/icons/bookmark-line-D6jQ7QFs.js new file mode 100644 index 0000000..e0cb878 --- /dev/null +++ b/assets/icons/bookmark-line-D6jQ7QFs.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=bookmark-line-D6jQ7QFs.js.map diff --git a/assets/icons/bookmark-line-D6jQ7QFs.js.map b/assets/icons/bookmark-line-D6jQ7QFs.js.map new file mode 100644 index 0000000..d5848ed --- /dev/null +++ b/assets/icons/bookmark-line-D6jQ7QFs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bookmark-line-D6jQ7QFs.js","sources":["../../../node_modules/@iconify-icons/mingcute/bookmark-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,w1BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/building-5-line-ew7lu83B.js b/assets/icons/building-5-line-ew7lu83B.js new file mode 100644 index 0000000..4256ed9 --- /dev/null +++ b/assets/icons/building-5-line-ew7lu83B.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=building-5-line-ew7lu83B.js.map diff --git a/assets/icons/building-5-line-ew7lu83B.js.map b/assets/icons/building-5-line-ew7lu83B.js.map new file mode 100644 index 0000000..513195c --- /dev/null +++ b/assets/icons/building-5-line-ew7lu83B.js.map @@ -0,0 +1 @@ +{"version":3,"file":"building-5-line-ew7lu83B.js","sources":["../../../node_modules/@iconify-icons/mingcute/building-5-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,qzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/bus-2-line-XuQdDZ_w.js b/assets/icons/bus-2-line-XuQdDZ_w.js new file mode 100644 index 0000000..885b8aa --- /dev/null +++ b/assets/icons/bus-2-line-XuQdDZ_w.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=bus-2-line-XuQdDZ_w.js.map diff --git a/assets/icons/bus-2-line-XuQdDZ_w.js.map b/assets/icons/bus-2-line-XuQdDZ_w.js.map new file mode 100644 index 0000000..f6c08c1 --- /dev/null +++ b/assets/icons/bus-2-line-XuQdDZ_w.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bus-2-line-XuQdDZ_w.js","sources":["../../../node_modules/@iconify-icons/mingcute/bus-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,orCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/calendar-month-line-VoXZVWAe.js b/assets/icons/calendar-month-line-VoXZVWAe.js new file mode 100644 index 0000000..0df6506 --- /dev/null +++ b/assets/icons/calendar-month-line-VoXZVWAe.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=calendar-month-line-VoXZVWAe.js.map diff --git a/assets/icons/calendar-month-line-VoXZVWAe.js.map b/assets/icons/calendar-month-line-VoXZVWAe.js.map new file mode 100644 index 0000000..7a3c5b6 --- /dev/null +++ b/assets/icons/calendar-month-line-VoXZVWAe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"calendar-month-line-VoXZVWAe.js","sources":["../../../node_modules/@iconify-icons/mingcute/calendar-month-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6+BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/chart-bar-line-5r_DfN2w.js b/assets/icons/chart-bar-line-5r_DfN2w.js new file mode 100644 index 0000000..a2a0f1d --- /dev/null +++ b/assets/icons/chart-bar-line-5r_DfN2w.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=chart-bar-line-5r_DfN2w.js.map diff --git a/assets/icons/chart-bar-line-5r_DfN2w.js.map b/assets/icons/chart-bar-line-5r_DfN2w.js.map new file mode 100644 index 0000000..f6cfa9c --- /dev/null +++ b/assets/icons/chart-bar-line-5r_DfN2w.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chart-bar-line-5r_DfN2w.js","sources":["../../../node_modules/@iconify-icons/mingcute/chart-bar-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wwBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/chart-line-line-pHaLt6yC.js b/assets/icons/chart-line-line-pHaLt6yC.js new file mode 100644 index 0000000..bc32fa0 --- /dev/null +++ b/assets/icons/chart-line-line-pHaLt6yC.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=chart-line-line-pHaLt6yC.js.map diff --git a/assets/icons/chart-line-line-pHaLt6yC.js.map b/assets/icons/chart-line-line-pHaLt6yC.js.map new file mode 100644 index 0000000..320fd83 --- /dev/null +++ b/assets/icons/chart-line-line-pHaLt6yC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chart-line-line-pHaLt6yC.js","sources":["../../../node_modules/@iconify-icons/mingcute/chart-line-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/chat-3-line-F0xcdpXY.js b/assets/icons/chat-3-line-F0xcdpXY.js new file mode 100644 index 0000000..e737b8a --- /dev/null +++ b/assets/icons/chat-3-line-F0xcdpXY.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=chat-3-line-F0xcdpXY.js.map diff --git a/assets/icons/chat-3-line-F0xcdpXY.js.map b/assets/icons/chat-3-line-F0xcdpXY.js.map new file mode 100644 index 0000000..46d04b8 --- /dev/null +++ b/assets/icons/chat-3-line-F0xcdpXY.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chat-3-line-F0xcdpXY.js","sources":["../../../node_modules/@iconify-icons/mingcute/chat-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,khCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/check-circle-line-sE41WGxF.js b/assets/icons/check-circle-line-sE41WGxF.js new file mode 100644 index 0000000..315154a --- /dev/null +++ b/assets/icons/check-circle-line-sE41WGxF.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=check-circle-line-sE41WGxF.js.map diff --git a/assets/icons/check-circle-line-sE41WGxF.js.map b/assets/icons/check-circle-line-sE41WGxF.js.map new file mode 100644 index 0000000..3df91ce --- /dev/null +++ b/assets/icons/check-circle-line-sE41WGxF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"check-circle-line-sE41WGxF.js","sources":["../../../node_modules/@iconify-icons/mingcute/check-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u3BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/clipboard-line-9F_Yeo71.js b/assets/icons/clipboard-line-9F_Yeo71.js new file mode 100644 index 0000000..d08da46 --- /dev/null +++ b/assets/icons/clipboard-line-9F_Yeo71.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=clipboard-line-9F_Yeo71.js.map diff --git a/assets/icons/clipboard-line-9F_Yeo71.js.map b/assets/icons/clipboard-line-9F_Yeo71.js.map new file mode 100644 index 0000000..049bf14 --- /dev/null +++ b/assets/icons/clipboard-line-9F_Yeo71.js.map @@ -0,0 +1 @@ +{"version":3,"file":"clipboard-line-9F_Yeo71.js","sources":["../../../node_modules/@iconify-icons/mingcute/clipboard-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,29BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/close-circle-line-qd3g541O.js b/assets/icons/close-circle-line-qd3g541O.js new file mode 100644 index 0000000..15d9b42 --- /dev/null +++ b/assets/icons/close-circle-line-qd3g541O.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=close-circle-line-qd3g541O.js.map diff --git a/assets/icons/close-circle-line-qd3g541O.js.map b/assets/icons/close-circle-line-qd3g541O.js.map new file mode 100644 index 0000000..ba75cd3 --- /dev/null +++ b/assets/icons/close-circle-line-qd3g541O.js.map @@ -0,0 +1 @@ +{"version":3,"file":"close-circle-line-qd3g541O.js","sources":["../../../node_modules/@iconify-icons/mingcute/close-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,25BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/close-line-YTE7hIJE.js b/assets/icons/close-line-YTE7hIJE.js new file mode 100644 index 0000000..93468be --- /dev/null +++ b/assets/icons/close-line-YTE7hIJE.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=close-line-YTE7hIJE.js.map diff --git a/assets/icons/close-line-YTE7hIJE.js.map b/assets/icons/close-line-YTE7hIJE.js.map new file mode 100644 index 0000000..0fef4f6 --- /dev/null +++ b/assets/icons/close-line-YTE7hIJE.js.map @@ -0,0 +1 @@ +{"version":3,"file":"close-line-YTE7hIJE.js","sources":["../../../node_modules/@iconify-icons/mingcute/close-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+zBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/cloud-line-abe0HgFS.js b/assets/icons/cloud-line-abe0HgFS.js new file mode 100644 index 0000000..347cb2b --- /dev/null +++ b/assets/icons/cloud-line-abe0HgFS.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=cloud-line-abe0HgFS.js.map diff --git a/assets/icons/cloud-line-abe0HgFS.js.map b/assets/icons/cloud-line-abe0HgFS.js.map new file mode 100644 index 0000000..1accd33 --- /dev/null +++ b/assets/icons/cloud-line-abe0HgFS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cloud-line-abe0HgFS.js","sources":["../../../node_modules/@iconify-icons/mingcute/cloud-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,62BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/comment-2-line-xEXuT-Ip.js b/assets/icons/comment-2-line-xEXuT-Ip.js new file mode 100644 index 0000000..e1be968 --- /dev/null +++ b/assets/icons/comment-2-line-xEXuT-Ip.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=comment-2-line-xEXuT-Ip.js.map diff --git a/assets/icons/comment-2-line-xEXuT-Ip.js.map b/assets/icons/comment-2-line-xEXuT-Ip.js.map new file mode 100644 index 0000000..70f58be --- /dev/null +++ b/assets/icons/comment-2-line-xEXuT-Ip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"comment-2-line-xEXuT-Ip.js","sources":["../../../node_modules/@iconify-icons/mingcute/comment-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4oCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/delete-2-line-pjUduCFs.js b/assets/icons/delete-2-line-pjUduCFs.js new file mode 100644 index 0000000..1e728a3 --- /dev/null +++ b/assets/icons/delete-2-line-pjUduCFs.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=delete-2-line-pjUduCFs.js.map diff --git a/assets/icons/delete-2-line-pjUduCFs.js.map b/assets/icons/delete-2-line-pjUduCFs.js.map new file mode 100644 index 0000000..20d00dc --- /dev/null +++ b/assets/icons/delete-2-line-pjUduCFs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delete-2-line-pjUduCFs.js","sources":["../../../node_modules/@iconify-icons/mingcute/delete-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,ujCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/down-line-9PeS5YhF.js b/assets/icons/down-line-9PeS5YhF.js new file mode 100644 index 0000000..c32011c --- /dev/null +++ b/assets/icons/down-line-9PeS5YhF.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=down-line-9PeS5YhF.js.map diff --git a/assets/icons/down-line-9PeS5YhF.js.map b/assets/icons/down-line-9PeS5YhF.js.map new file mode 100644 index 0000000..5eb293b --- /dev/null +++ b/assets/icons/down-line-9PeS5YhF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"down-line-9PeS5YhF.js","sources":["../../../node_modules/@iconify-icons/mingcute/down-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/earth-line-t1Um8wpQ.js b/assets/icons/earth-line-t1Um8wpQ.js new file mode 100644 index 0000000..1d74fcf --- /dev/null +++ b/assets/icons/earth-line-t1Um8wpQ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=earth-line-t1Um8wpQ.js.map diff --git a/assets/icons/earth-line-t1Um8wpQ.js.map b/assets/icons/earth-line-t1Um8wpQ.js.map new file mode 100644 index 0000000..c15c069 --- /dev/null +++ b/assets/icons/earth-line-t1Um8wpQ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"earth-line-t1Um8wpQ.js","sources":["../../../node_modules/@iconify-icons/mingcute/earth-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8rEACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/emoji-2-line--uNVc2IC.js b/assets/icons/emoji-2-line--uNVc2IC.js new file mode 100644 index 0000000..aaf8d6d --- /dev/null +++ b/assets/icons/emoji-2-line--uNVc2IC.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=emoji-2-line--uNVc2IC.js.map diff --git a/assets/icons/emoji-2-line--uNVc2IC.js.map b/assets/icons/emoji-2-line--uNVc2IC.js.map new file mode 100644 index 0000000..6e05eb8 --- /dev/null +++ b/assets/icons/emoji-2-line--uNVc2IC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"emoji-2-line--uNVc2IC.js","sources":["../../../node_modules/@iconify-icons/mingcute/emoji-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4hCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/exit-line-l-1uUgI7.js b/assets/icons/exit-line-l-1uUgI7.js new file mode 100644 index 0000000..5e8fd13 --- /dev/null +++ b/assets/icons/exit-line-l-1uUgI7.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=exit-line-l-1uUgI7.js.map diff --git a/assets/icons/exit-line-l-1uUgI7.js.map b/assets/icons/exit-line-l-1uUgI7.js.map new file mode 100644 index 0000000..9fe7120 --- /dev/null +++ b/assets/icons/exit-line-l-1uUgI7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exit-line-l-1uUgI7.js","sources":["../../../node_modules/@iconify-icons/mingcute/exit-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,k7BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/external-link-line-8nOOkmFu.js b/assets/icons/external-link-line-8nOOkmFu.js new file mode 100644 index 0000000..98dd0b2 --- /dev/null +++ b/assets/icons/external-link-line-8nOOkmFu.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=external-link-line-8nOOkmFu.js.map diff --git a/assets/icons/external-link-line-8nOOkmFu.js.map b/assets/icons/external-link-line-8nOOkmFu.js.map new file mode 100644 index 0000000..89aa383 --- /dev/null +++ b/assets/icons/external-link-line-8nOOkmFu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"external-link-line-8nOOkmFu.js","sources":["../../../node_modules/@iconify-icons/mingcute/external-link-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,qzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/eye-2-line-vz_Kw-rK.js b/assets/icons/eye-2-line-vz_Kw-rK.js new file mode 100644 index 0000000..c15ec87 --- /dev/null +++ b/assets/icons/eye-2-line-vz_Kw-rK.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=eye-2-line-vz_Kw-rK.js.map diff --git a/assets/icons/eye-2-line-vz_Kw-rK.js.map b/assets/icons/eye-2-line-vz_Kw-rK.js.map new file mode 100644 index 0000000..deb69bb --- /dev/null +++ b/assets/icons/eye-2-line-vz_Kw-rK.js.map @@ -0,0 +1 @@ +{"version":3,"file":"eye-2-line-vz_Kw-rK.js","sources":["../../../node_modules/@iconify-icons/mingcute/eye-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8nDACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/eye-close-line-lBiePPv9.js b/assets/icons/eye-close-line-lBiePPv9.js new file mode 100644 index 0000000..4c3e91e --- /dev/null +++ b/assets/icons/eye-close-line-lBiePPv9.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=eye-close-line-lBiePPv9.js.map diff --git a/assets/icons/eye-close-line-lBiePPv9.js.map b/assets/icons/eye-close-line-lBiePPv9.js.map new file mode 100644 index 0000000..720db82 --- /dev/null +++ b/assets/icons/eye-close-line-lBiePPv9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"eye-close-line-lBiePPv9.js","sources":["../../../node_modules/@iconify-icons/mingcute/eye-close-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,sgCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/filter-2-line-KyjbFYlO.js b/assets/icons/filter-2-line-KyjbFYlO.js new file mode 100644 index 0000000..f08df93 --- /dev/null +++ b/assets/icons/filter-2-line-KyjbFYlO.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=filter-2-line-KyjbFYlO.js.map diff --git a/assets/icons/filter-2-line-KyjbFYlO.js.map b/assets/icons/filter-2-line-KyjbFYlO.js.map new file mode 100644 index 0000000..f34c665 --- /dev/null +++ b/assets/icons/filter-2-line-KyjbFYlO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter-2-line-KyjbFYlO.js","sources":["../../../node_modules/@iconify-icons/mingcute/filter-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/flag-4-line-M3u-PO0J.js b/assets/icons/flag-4-line-M3u-PO0J.js new file mode 100644 index 0000000..01d1b2e --- /dev/null +++ b/assets/icons/flag-4-line-M3u-PO0J.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=flag-4-line-M3u-PO0J.js.map diff --git a/assets/icons/flag-4-line-M3u-PO0J.js.map b/assets/icons/flag-4-line-M3u-PO0J.js.map new file mode 100644 index 0000000..f3a0366 --- /dev/null +++ b/assets/icons/flag-4-line-M3u-PO0J.js.map @@ -0,0 +1 @@ +{"version":3,"file":"flag-4-line-M3u-PO0J.js","sources":["../../../node_modules/@iconify-icons/mingcute/flag-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,onCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/forbid-circle-line-3FxopGoP.js b/assets/icons/forbid-circle-line-3FxopGoP.js new file mode 100644 index 0000000..3205a6f --- /dev/null +++ b/assets/icons/forbid-circle-line-3FxopGoP.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=forbid-circle-line-3FxopGoP.js.map diff --git a/assets/icons/forbid-circle-line-3FxopGoP.js.map b/assets/icons/forbid-circle-line-3FxopGoP.js.map new file mode 100644 index 0000000..ea4400c --- /dev/null +++ b/assets/icons/forbid-circle-line-3FxopGoP.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forbid-circle-line-3FxopGoP.js","sources":["../../../node_modules/@iconify-icons/mingcute/forbid-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6zBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/group-line-JvhJklhQ.js b/assets/icons/group-line-JvhJklhQ.js new file mode 100644 index 0000000..b6fc99a --- /dev/null +++ b/assets/icons/group-line-JvhJklhQ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=group-line-JvhJklhQ.js.map diff --git a/assets/icons/group-line-JvhJklhQ.js.map b/assets/icons/group-line-JvhJklhQ.js.map new file mode 100644 index 0000000..680d58c --- /dev/null +++ b/assets/icons/group-line-JvhJklhQ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-line-JvhJklhQ.js","sources":["../../../node_modules/@iconify-icons/mingcute/group-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,69BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/hashtag-line-SS3QMu1R.js b/assets/icons/hashtag-line-SS3QMu1R.js new file mode 100644 index 0000000..c6af511 --- /dev/null +++ b/assets/icons/hashtag-line-SS3QMu1R.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=hashtag-line-SS3QMu1R.js.map diff --git a/assets/icons/hashtag-line-SS3QMu1R.js.map b/assets/icons/hashtag-line-SS3QMu1R.js.map new file mode 100644 index 0000000..a859808 --- /dev/null +++ b/assets/icons/hashtag-line-SS3QMu1R.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hashtag-line-SS3QMu1R.js","sources":["../../../node_modules/@iconify-icons/mingcute/hashtag-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u+BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/heart-line-VwvWYh8h.js b/assets/icons/heart-line-VwvWYh8h.js new file mode 100644 index 0000000..5102a4a --- /dev/null +++ b/assets/icons/heart-line-VwvWYh8h.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=heart-line-VwvWYh8h.js.map diff --git a/assets/icons/heart-line-VwvWYh8h.js.map b/assets/icons/heart-line-VwvWYh8h.js.map new file mode 100644 index 0000000..2ff90c9 --- /dev/null +++ b/assets/icons/heart-line-VwvWYh8h.js.map @@ -0,0 +1 @@ +{"version":3,"file":"heart-line-VwvWYh8h.js","sources":["../../../node_modules/@iconify-icons/mingcute/heart-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8rCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/history-line-yoG7K8wL.js b/assets/icons/history-line-yoG7K8wL.js new file mode 100644 index 0000000..05efdd0 --- /dev/null +++ b/assets/icons/history-line-yoG7K8wL.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=history-line-yoG7K8wL.js.map diff --git a/assets/icons/history-line-yoG7K8wL.js.map b/assets/icons/history-line-yoG7K8wL.js.map new file mode 100644 index 0000000..1b807e6 --- /dev/null +++ b/assets/icons/history-line-yoG7K8wL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"history-line-yoG7K8wL.js","sources":["../../../node_modules/@iconify-icons/mingcute/history-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wgCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/home-3-line-qJiZhXUH.js b/assets/icons/home-3-line-qJiZhXUH.js new file mode 100644 index 0000000..e398702 --- /dev/null +++ b/assets/icons/home-3-line-qJiZhXUH.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=home-3-line-qJiZhXUH.js.map diff --git a/assets/icons/home-3-line-qJiZhXUH.js.map b/assets/icons/home-3-line-qJiZhXUH.js.map new file mode 100644 index 0000000..14cc6e0 --- /dev/null +++ b/assets/icons/home-3-line-qJiZhXUH.js.map @@ -0,0 +1 @@ +{"version":3,"file":"home-3-line-qJiZhXUH.js","sources":["../../../node_modules/@iconify-icons/mingcute/home-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,69BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/information-line-8SOch6cR.js b/assets/icons/information-line-8SOch6cR.js new file mode 100644 index 0000000..dab8795 --- /dev/null +++ b/assets/icons/information-line-8SOch6cR.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=information-line-8SOch6cR.js.map diff --git a/assets/icons/information-line-8SOch6cR.js.map b/assets/icons/information-line-8SOch6cR.js.map new file mode 100644 index 0000000..f703a64 --- /dev/null +++ b/assets/icons/information-line-8SOch6cR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"information-line-8SOch6cR.js","sources":["../../../node_modules/@iconify-icons/mingcute/information-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,02BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/keyboard-line-10AZQcVH.js b/assets/icons/keyboard-line-10AZQcVH.js new file mode 100644 index 0000000..a27ca30 --- /dev/null +++ b/assets/icons/keyboard-line-10AZQcVH.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=keyboard-line-10AZQcVH.js.map diff --git a/assets/icons/keyboard-line-10AZQcVH.js.map b/assets/icons/keyboard-line-10AZQcVH.js.map new file mode 100644 index 0000000..d52f4d0 --- /dev/null +++ b/assets/icons/keyboard-line-10AZQcVH.js.map @@ -0,0 +1 @@ +{"version":3,"file":"keyboard-line-10AZQcVH.js","sources":["../../../node_modules/@iconify-icons/mingcute/keyboard-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+mCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/layout-4-line-FOdnyEcZ.js b/assets/icons/layout-4-line-FOdnyEcZ.js new file mode 100644 index 0000000..fe91724 --- /dev/null +++ b/assets/icons/layout-4-line-FOdnyEcZ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=layout-4-line-FOdnyEcZ.js.map diff --git a/assets/icons/layout-4-line-FOdnyEcZ.js.map b/assets/icons/layout-4-line-FOdnyEcZ.js.map new file mode 100644 index 0000000..b2288dc --- /dev/null +++ b/assets/icons/layout-4-line-FOdnyEcZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"layout-4-line-FOdnyEcZ.js","sources":["../../../node_modules/@iconify-icons/mingcute/layout-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,02BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/layout-5-line-9Kks7dle.js b/assets/icons/layout-5-line-9Kks7dle.js new file mode 100644 index 0000000..0ba647b --- /dev/null +++ b/assets/icons/layout-5-line-9Kks7dle.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=layout-5-line-9Kks7dle.js.map diff --git a/assets/icons/layout-5-line-9Kks7dle.js.map b/assets/icons/layout-5-line-9Kks7dle.js.map new file mode 100644 index 0000000..7d22d2a --- /dev/null +++ b/assets/icons/layout-5-line-9Kks7dle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"layout-5-line-9Kks7dle.js","sources":["../../../node_modules/@iconify-icons/mingcute/layout-5-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g0BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/left-line-Jck0yVmC.js b/assets/icons/left-line-Jck0yVmC.js new file mode 100644 index 0000000..5ac69dd --- /dev/null +++ b/assets/icons/left-line-Jck0yVmC.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=left-line-Jck0yVmC.js.map diff --git a/assets/icons/left-line-Jck0yVmC.js.map b/assets/icons/left-line-Jck0yVmC.js.map new file mode 100644 index 0000000..a97c7dd --- /dev/null +++ b/assets/icons/left-line-Jck0yVmC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"left-line-Jck0yVmC.js","sources":["../../../node_modules/@iconify-icons/mingcute/left-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/lightning-line-JMYUlCZM.js b/assets/icons/lightning-line-JMYUlCZM.js new file mode 100644 index 0000000..d3d46ac --- /dev/null +++ b/assets/icons/lightning-line-JMYUlCZM.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=lightning-line-JMYUlCZM.js.map diff --git a/assets/icons/lightning-line-JMYUlCZM.js.map b/assets/icons/lightning-line-JMYUlCZM.js.map new file mode 100644 index 0000000..9523d64 --- /dev/null +++ b/assets/icons/lightning-line-JMYUlCZM.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lightning-line-JMYUlCZM.js","sources":["../../../node_modules/@iconify-icons/mingcute/lightning-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q8BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/link-2-line-BUqp1EwN.js b/assets/icons/link-2-line-BUqp1EwN.js new file mode 100644 index 0000000..63c4d1b --- /dev/null +++ b/assets/icons/link-2-line-BUqp1EwN.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=link-2-line-BUqp1EwN.js.map diff --git a/assets/icons/link-2-line-BUqp1EwN.js.map b/assets/icons/link-2-line-BUqp1EwN.js.map new file mode 100644 index 0000000..78e3848 --- /dev/null +++ b/assets/icons/link-2-line-BUqp1EwN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"link-2-line-BUqp1EwN.js","sources":["../../../node_modules/@iconify-icons/mingcute/link-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,ooCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/list-check-line-qNqx9Mm4.js b/assets/icons/list-check-line-qNqx9Mm4.js new file mode 100644 index 0000000..a1e12df --- /dev/null +++ b/assets/icons/list-check-line-qNqx9Mm4.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=list-check-line-qNqx9Mm4.js.map diff --git a/assets/icons/list-check-line-qNqx9Mm4.js.map b/assets/icons/list-check-line-qNqx9Mm4.js.map new file mode 100644 index 0000000..7645eec --- /dev/null +++ b/assets/icons/list-check-line-qNqx9Mm4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"list-check-line-qNqx9Mm4.js","sources":["../../../node_modules/@iconify-icons/mingcute/list-check-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/lock-line-0jNHqZpm.js b/assets/icons/lock-line-0jNHqZpm.js new file mode 100644 index 0000000..f397c4b --- /dev/null +++ b/assets/icons/lock-line-0jNHqZpm.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=lock-line-0jNHqZpm.js.map diff --git a/assets/icons/lock-line-0jNHqZpm.js.map b/assets/icons/lock-line-0jNHqZpm.js.map new file mode 100644 index 0000000..3fdd1a1 --- /dev/null +++ b/assets/icons/lock-line-0jNHqZpm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lock-line-0jNHqZpm.js","sources":["../../../node_modules/@iconify-icons/mingcute/lock-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,i6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/mail-line-5XLS6FEo.js b/assets/icons/mail-line-5XLS6FEo.js new file mode 100644 index 0000000..cc0b1aa --- /dev/null +++ b/assets/icons/mail-line-5XLS6FEo.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=mail-line-5XLS6FEo.js.map diff --git a/assets/icons/mail-line-5XLS6FEo.js.map b/assets/icons/mail-line-5XLS6FEo.js.map new file mode 100644 index 0000000..220f9be --- /dev/null +++ b/assets/icons/mail-line-5XLS6FEo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mail-line-5XLS6FEo.js","sources":["../../../node_modules/@iconify-icons/mingcute/mail-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,w0BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/more-3-line-wUD-Yhmj.js b/assets/icons/more-3-line-wUD-Yhmj.js new file mode 100644 index 0000000..0359f4b --- /dev/null +++ b/assets/icons/more-3-line-wUD-Yhmj.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=more-3-line-wUD-Yhmj.js.map diff --git a/assets/icons/more-3-line-wUD-Yhmj.js.map b/assets/icons/more-3-line-wUD-Yhmj.js.map new file mode 100644 index 0000000..0f328a1 --- /dev/null +++ b/assets/icons/more-3-line-wUD-Yhmj.js.map @@ -0,0 +1 @@ +{"version":3,"file":"more-3-line-wUD-Yhmj.js","sources":["../../../node_modules/@iconify-icons/mingcute/more-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+1BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/notification-line-olNPLtgS.js b/assets/icons/notification-line-olNPLtgS.js new file mode 100644 index 0000000..07bd990 --- /dev/null +++ b/assets/icons/notification-line-olNPLtgS.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=notification-line-olNPLtgS.js.map diff --git a/assets/icons/notification-line-olNPLtgS.js.map b/assets/icons/notification-line-olNPLtgS.js.map new file mode 100644 index 0000000..44fe29b --- /dev/null +++ b/assets/icons/notification-line-olNPLtgS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"notification-line-olNPLtgS.js","sources":["../../../node_modules/@iconify-icons/mingcute/notification-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,++BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/pencil-line-bKXqElLR.js b/assets/icons/pencil-line-bKXqElLR.js new file mode 100644 index 0000000..f75700f --- /dev/null +++ b/assets/icons/pencil-line-bKXqElLR.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=pencil-line-bKXqElLR.js.map diff --git a/assets/icons/pencil-line-bKXqElLR.js.map b/assets/icons/pencil-line-bKXqElLR.js.map new file mode 100644 index 0000000..cee40e8 --- /dev/null +++ b/assets/icons/pencil-line-bKXqElLR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pencil-line-bKXqElLR.js","sources":["../../../node_modules/@iconify-icons/mingcute/pencil-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,yhCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/photo-album-line--GdJqjfq.js b/assets/icons/photo-album-line--GdJqjfq.js new file mode 100644 index 0000000..8c4c264 --- /dev/null +++ b/assets/icons/photo-album-line--GdJqjfq.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=photo-album-line--GdJqjfq.js.map diff --git a/assets/icons/photo-album-line--GdJqjfq.js.map b/assets/icons/photo-album-line--GdJqjfq.js.map new file mode 100644 index 0000000..0d94ed3 --- /dev/null +++ b/assets/icons/photo-album-line--GdJqjfq.js.map @@ -0,0 +1 @@ +{"version":3,"file":"photo-album-line--GdJqjfq.js","sources":["../../../node_modules/@iconify-icons/mingcute/photo-album-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4lCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/pin-line-ULyRQyWZ.js b/assets/icons/pin-line-ULyRQyWZ.js new file mode 100644 index 0000000..20e9166 --- /dev/null +++ b/assets/icons/pin-line-ULyRQyWZ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=pin-line-ULyRQyWZ.js.map diff --git a/assets/icons/pin-line-ULyRQyWZ.js.map b/assets/icons/pin-line-ULyRQyWZ.js.map new file mode 100644 index 0000000..38ff9d1 --- /dev/null +++ b/assets/icons/pin-line-ULyRQyWZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pin-line-ULyRQyWZ.js","sources":["../../../node_modules/@iconify-icons/mingcute/pin-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6nCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/play-fill-Ey-zv2eL.js b/assets/icons/play-fill-Ey-zv2eL.js new file mode 100644 index 0000000..ef50b85 --- /dev/null +++ b/assets/icons/play-fill-Ey-zv2eL.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=play-fill-Ey-zv2eL.js.map diff --git a/assets/icons/play-fill-Ey-zv2eL.js.map b/assets/icons/play-fill-Ey-zv2eL.js.map new file mode 100644 index 0000000..8a89d79 --- /dev/null +++ b/assets/icons/play-fill-Ey-zv2eL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"play-fill-Ey-zv2eL.js","sources":["../../../node_modules/@iconify-icons/mingcute/play-fill.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,46BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/quill-pen-line-h_5-FsGz.js b/assets/icons/quill-pen-line-h_5-FsGz.js new file mode 100644 index 0000000..c491915 --- /dev/null +++ b/assets/icons/quill-pen-line-h_5-FsGz.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=quill-pen-line-h_5-FsGz.js.map diff --git a/assets/icons/quill-pen-line-h_5-FsGz.js.map b/assets/icons/quill-pen-line-h_5-FsGz.js.map new file mode 100644 index 0000000..21b91c0 --- /dev/null +++ b/assets/icons/quill-pen-line-h_5-FsGz.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quill-pen-line-h_5-FsGz.js","sources":["../../../node_modules/@iconify-icons/mingcute/quill-pen-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,m5CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/radar-line-ndI8IhOG.js b/assets/icons/radar-line-ndI8IhOG.js new file mode 100644 index 0000000..04c205b --- /dev/null +++ b/assets/icons/radar-line-ndI8IhOG.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=radar-line-ndI8IhOG.js.map diff --git a/assets/icons/radar-line-ndI8IhOG.js.map b/assets/icons/radar-line-ndI8IhOG.js.map new file mode 100644 index 0000000..e681ea4 --- /dev/null +++ b/assets/icons/radar-line-ndI8IhOG.js.map @@ -0,0 +1 @@ +{"version":3,"file":"radar-line-ndI8IhOG.js","sources":["../../../node_modules/@iconify-icons/mingcute/radar-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,0zCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/react-line-YfZPqZem.js b/assets/icons/react-line-YfZPqZem.js new file mode 100644 index 0000000..b0ca225 --- /dev/null +++ b/assets/icons/react-line-YfZPqZem.js @@ -0,0 +1,2 @@ +const c={width:24,height:24,body:''};export{c as default}; +//# sourceMappingURL=react-line-YfZPqZem.js.map diff --git a/assets/icons/react-line-YfZPqZem.js.map b/assets/icons/react-line-YfZPqZem.js.map new file mode 100644 index 0000000..9ba3bf0 --- /dev/null +++ b/assets/icons/react-line-YfZPqZem.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-line-YfZPqZem.js","sources":["../../../node_modules/@iconify-icons/mingcute/react-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4sFACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/refresh-2-line-t42qqclb.js b/assets/icons/refresh-2-line-t42qqclb.js new file mode 100644 index 0000000..43df53f --- /dev/null +++ b/assets/icons/refresh-2-line-t42qqclb.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=refresh-2-line-t42qqclb.js.map diff --git a/assets/icons/refresh-2-line-t42qqclb.js.map b/assets/icons/refresh-2-line-t42qqclb.js.map new file mode 100644 index 0000000..d97e41f --- /dev/null +++ b/assets/icons/refresh-2-line-t42qqclb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refresh-2-line-t42qqclb.js","sources":["../../../node_modules/@iconify-icons/mingcute/refresh-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wjCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/right-line-7VBoqLdz.js b/assets/icons/right-line-7VBoqLdz.js new file mode 100644 index 0000000..fd1de00 --- /dev/null +++ b/assets/icons/right-line-7VBoqLdz.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=right-line-7VBoqLdz.js.map diff --git a/assets/icons/right-line-7VBoqLdz.js.map b/assets/icons/right-line-7VBoqLdz.js.map new file mode 100644 index 0000000..655f8a1 --- /dev/null +++ b/assets/icons/right-line-7VBoqLdz.js.map @@ -0,0 +1 @@ +{"version":3,"file":"right-line-7VBoqLdz.js","sources":["../../../node_modules/@iconify-icons/mingcute/right-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/rocket-line-rZbVYYCZ.js b/assets/icons/rocket-line-rZbVYYCZ.js new file mode 100644 index 0000000..160fb03 --- /dev/null +++ b/assets/icons/rocket-line-rZbVYYCZ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=rocket-line-rZbVYYCZ.js.map diff --git a/assets/icons/rocket-line-rZbVYYCZ.js.map b/assets/icons/rocket-line-rZbVYYCZ.js.map new file mode 100644 index 0000000..e4dfa8a --- /dev/null +++ b/assets/icons/rocket-line-rZbVYYCZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rocket-line-rZbVYYCZ.js","sources":["../../../node_modules/@iconify-icons/mingcute/rocket-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+lEACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/round-fill-a0rplSmV.js b/assets/icons/round-fill-a0rplSmV.js new file mode 100644 index 0000000..912938e --- /dev/null +++ b/assets/icons/round-fill-a0rplSmV.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=round-fill-a0rplSmV.js.map diff --git a/assets/icons/round-fill-a0rplSmV.js.map b/assets/icons/round-fill-a0rplSmV.js.map new file mode 100644 index 0000000..3092c6b --- /dev/null +++ b/assets/icons/round-fill-a0rplSmV.js.map @@ -0,0 +1 @@ +{"version":3,"file":"round-fill-a0rplSmV.js","sources":["../../../node_modules/@iconify-icons/mingcute/round-fill.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4sBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/route-line-2YYy3958.js b/assets/icons/route-line-2YYy3958.js new file mode 100644 index 0000000..9b4fdb0 --- /dev/null +++ b/assets/icons/route-line-2YYy3958.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=route-line-2YYy3958.js.map diff --git a/assets/icons/route-line-2YYy3958.js.map b/assets/icons/route-line-2YYy3958.js.map new file mode 100644 index 0000000..e5849a9 --- /dev/null +++ b/assets/icons/route-line-2YYy3958.js.map @@ -0,0 +1 @@ +{"version":3,"file":"route-line-2YYy3958.js","sources":["../../../node_modules/@iconify-icons/mingcute/route-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,24BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/rows-4-line-SxGPYpTa.js b/assets/icons/rows-4-line-SxGPYpTa.js new file mode 100644 index 0000000..3936192 --- /dev/null +++ b/assets/icons/rows-4-line-SxGPYpTa.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=rows-4-line-SxGPYpTa.js.map diff --git a/assets/icons/rows-4-line-SxGPYpTa.js.map b/assets/icons/rows-4-line-SxGPYpTa.js.map new file mode 100644 index 0000000..0b49004 --- /dev/null +++ b/assets/icons/rows-4-line-SxGPYpTa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rows-4-line-SxGPYpTa.js","sources":["../../../node_modules/@iconify-icons/mingcute/rows-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,yvBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/search-2-line-G39AynEw.js b/assets/icons/search-2-line-G39AynEw.js new file mode 100644 index 0000000..91af6d4 --- /dev/null +++ b/assets/icons/search-2-line-G39AynEw.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=search-2-line-G39AynEw.js.map diff --git a/assets/icons/search-2-line-G39AynEw.js.map b/assets/icons/search-2-line-G39AynEw.js.map new file mode 100644 index 0000000..f0874ef --- /dev/null +++ b/assets/icons/search-2-line-G39AynEw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"search-2-line-G39AynEw.js","sources":["../../../node_modules/@iconify-icons/mingcute/search-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/settings-3-line-kt4MSpRv.js b/assets/icons/settings-3-line-kt4MSpRv.js new file mode 100644 index 0000000..31fa412 --- /dev/null +++ b/assets/icons/settings-3-line-kt4MSpRv.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=settings-3-line-kt4MSpRv.js.map diff --git a/assets/icons/settings-3-line-kt4MSpRv.js.map b/assets/icons/settings-3-line-kt4MSpRv.js.map new file mode 100644 index 0000000..420b2ef --- /dev/null +++ b/assets/icons/settings-3-line-kt4MSpRv.js.map @@ -0,0 +1 @@ +{"version":3,"file":"settings-3-line-kt4MSpRv.js","sources":["../../../node_modules/@iconify-icons/mingcute/settings-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4kEACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/share-2-line-PYo-zN94.js b/assets/icons/share-2-line-PYo-zN94.js new file mode 100644 index 0000000..8a1adf1 --- /dev/null +++ b/assets/icons/share-2-line-PYo-zN94.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=share-2-line-PYo-zN94.js.map diff --git a/assets/icons/share-2-line-PYo-zN94.js.map b/assets/icons/share-2-line-PYo-zN94.js.map new file mode 100644 index 0000000..6d736a4 --- /dev/null +++ b/assets/icons/share-2-line-PYo-zN94.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share-2-line-PYo-zN94.js","sources":["../../../node_modules/@iconify-icons/mingcute/share-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+7BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/share-forward-line-4jL-2Q4u.js b/assets/icons/share-forward-line-4jL-2Q4u.js new file mode 100644 index 0000000..7971cd5 --- /dev/null +++ b/assets/icons/share-forward-line-4jL-2Q4u.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=share-forward-line-4jL-2Q4u.js.map diff --git a/assets/icons/share-forward-line-4jL-2Q4u.js.map b/assets/icons/share-forward-line-4jL-2Q4u.js.map new file mode 100644 index 0000000..3cb97f0 --- /dev/null +++ b/assets/icons/share-forward-line-4jL-2Q4u.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share-forward-line-4jL-2Q4u.js","sources":["../../../node_modules/@iconify-icons/mingcute/share-forward-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,y4CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/sparkles-2-line-g2FqdZ0R.js b/assets/icons/sparkles-2-line-g2FqdZ0R.js new file mode 100644 index 0000000..8af5ea2 --- /dev/null +++ b/assets/icons/sparkles-2-line-g2FqdZ0R.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=sparkles-2-line-g2FqdZ0R.js.map diff --git a/assets/icons/sparkles-2-line-g2FqdZ0R.js.map b/assets/icons/sparkles-2-line-g2FqdZ0R.js.map new file mode 100644 index 0000000..c4adbb8 --- /dev/null +++ b/assets/icons/sparkles-2-line-g2FqdZ0R.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sparkles-2-line-g2FqdZ0R.js","sources":["../../../node_modules/@iconify-icons/mingcute/sparkles-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+3DACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/sparkles-line-wjZWGZ1a.js b/assets/icons/sparkles-line-wjZWGZ1a.js new file mode 100644 index 0000000..c43a917 --- /dev/null +++ b/assets/icons/sparkles-line-wjZWGZ1a.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=sparkles-line-wjZWGZ1a.js.map diff --git a/assets/icons/sparkles-line-wjZWGZ1a.js.map b/assets/icons/sparkles-line-wjZWGZ1a.js.map new file mode 100644 index 0000000..8355f1c --- /dev/null +++ b/assets/icons/sparkles-line-wjZWGZ1a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sparkles-line-wjZWGZ1a.js","sources":["../../../node_modules/@iconify-icons/mingcute/sparkles-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g0DACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/time-line-ThP0kTRr.js b/assets/icons/time-line-ThP0kTRr.js new file mode 100644 index 0000000..3f1c755 --- /dev/null +++ b/assets/icons/time-line-ThP0kTRr.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=time-line-ThP0kTRr.js.map diff --git a/assets/icons/time-line-ThP0kTRr.js.map b/assets/icons/time-line-ThP0kTRr.js.map new file mode 100644 index 0000000..dd04a64 --- /dev/null +++ b/assets/icons/time-line-ThP0kTRr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-line-ThP0kTRr.js","sources":["../../../node_modules/@iconify-icons/mingcute/time-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,y1BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/transfer-4-line-Q9QJoxz3.js b/assets/icons/transfer-4-line-Q9QJoxz3.js new file mode 100644 index 0000000..fdd104d --- /dev/null +++ b/assets/icons/transfer-4-line-Q9QJoxz3.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=transfer-4-line-Q9QJoxz3.js.map diff --git a/assets/icons/transfer-4-line-Q9QJoxz3.js.map b/assets/icons/transfer-4-line-Q9QJoxz3.js.map new file mode 100644 index 0000000..90660e9 --- /dev/null +++ b/assets/icons/transfer-4-line-Q9QJoxz3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"transfer-4-line-Q9QJoxz3.js","sources":["../../../node_modules/@iconify-icons/mingcute/transfer-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,47BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/translate-line-HpDtlqS2.js b/assets/icons/translate-line-HpDtlqS2.js new file mode 100644 index 0000000..34529b4 --- /dev/null +++ b/assets/icons/translate-line-HpDtlqS2.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=translate-line-HpDtlqS2.js.map diff --git a/assets/icons/translate-line-HpDtlqS2.js.map b/assets/icons/translate-line-HpDtlqS2.js.map new file mode 100644 index 0000000..613779f --- /dev/null +++ b/assets/icons/translate-line-HpDtlqS2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"translate-line-HpDtlqS2.js","sources":["../../../node_modules/@iconify-icons/mingcute/translate-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+jCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/unlock-line-w3piJMVb.js b/assets/icons/unlock-line-w3piJMVb.js new file mode 100644 index 0000000..69523a0 --- /dev/null +++ b/assets/icons/unlock-line-w3piJMVb.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=unlock-line-w3piJMVb.js.map diff --git a/assets/icons/unlock-line-w3piJMVb.js.map b/assets/icons/unlock-line-w3piJMVb.js.map new file mode 100644 index 0000000..ba4bf26 --- /dev/null +++ b/assets/icons/unlock-line-w3piJMVb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"unlock-line-w3piJMVb.js","sources":["../../../node_modules/@iconify-icons/mingcute/unlock-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,whCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/upload-3-line-Qsjvubiw.js b/assets/icons/upload-3-line-Qsjvubiw.js new file mode 100644 index 0000000..b5178f1 --- /dev/null +++ b/assets/icons/upload-3-line-Qsjvubiw.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=upload-3-line-Qsjvubiw.js.map diff --git a/assets/icons/upload-3-line-Qsjvubiw.js.map b/assets/icons/upload-3-line-Qsjvubiw.js.map new file mode 100644 index 0000000..0733a7e --- /dev/null +++ b/assets/icons/upload-3-line-Qsjvubiw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"upload-3-line-Qsjvubiw.js","sources":["../../../node_modules/@iconify-icons/mingcute/upload-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,0hCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-4-line-zT_bpOrS.js b/assets/icons/user-4-line-zT_bpOrS.js new file mode 100644 index 0000000..2042044 --- /dev/null +++ b/assets/icons/user-4-line-zT_bpOrS.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-4-line-zT_bpOrS.js.map diff --git a/assets/icons/user-4-line-zT_bpOrS.js.map b/assets/icons/user-4-line-zT_bpOrS.js.map new file mode 100644 index 0000000..9f995f0 --- /dev/null +++ b/assets/icons/user-4-line-zT_bpOrS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-4-line-zT_bpOrS.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,2lCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-add-line-zzW9OULB.js b/assets/icons/user-add-line-zzW9OULB.js new file mode 100644 index 0000000..066a013 --- /dev/null +++ b/assets/icons/user-add-line-zzW9OULB.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-add-line-zzW9OULB.js.map diff --git a/assets/icons/user-add-line-zzW9OULB.js.map b/assets/icons/user-add-line-zzW9OULB.js.map new file mode 100644 index 0000000..03a9e7e --- /dev/null +++ b/assets/icons/user-add-line-zzW9OULB.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-add-line-zzW9OULB.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-add-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g5BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-edit-line-9VnWCh0X.js b/assets/icons/user-edit-line-9VnWCh0X.js new file mode 100644 index 0000000..c345b24 --- /dev/null +++ b/assets/icons/user-edit-line-9VnWCh0X.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-edit-line-9VnWCh0X.js.map diff --git a/assets/icons/user-edit-line-9VnWCh0X.js.map b/assets/icons/user-edit-line-9VnWCh0X.js.map new file mode 100644 index 0000000..486e67b --- /dev/null +++ b/assets/icons/user-edit-line-9VnWCh0X.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-edit-line-9VnWCh0X.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-edit-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g4CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-follow-line-k_GCWTtp.js b/assets/icons/user-follow-line-k_GCWTtp.js new file mode 100644 index 0000000..ac09221 --- /dev/null +++ b/assets/icons/user-follow-line-k_GCWTtp.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-follow-line-k_GCWTtp.js.map diff --git a/assets/icons/user-follow-line-k_GCWTtp.js.map b/assets/icons/user-follow-line-k_GCWTtp.js.map new file mode 100644 index 0000000..265c83f --- /dev/null +++ b/assets/icons/user-follow-line-k_GCWTtp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-follow-line-k_GCWTtp.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-follow-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,s8BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-warning-line-gL3RGb1N.js b/assets/icons/user-warning-line-gL3RGb1N.js new file mode 100644 index 0000000..e9b4a74 --- /dev/null +++ b/assets/icons/user-warning-line-gL3RGb1N.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-warning-line-gL3RGb1N.js.map diff --git a/assets/icons/user-warning-line-gL3RGb1N.js.map b/assets/icons/user-warning-line-gL3RGb1N.js.map new file mode 100644 index 0000000..86073eb --- /dev/null +++ b/assets/icons/user-warning-line-gL3RGb1N.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-warning-line-gL3RGb1N.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-warning-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,kwCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/volume-line-PZujbN8h.js b/assets/icons/volume-line-PZujbN8h.js new file mode 100644 index 0000000..be36111 --- /dev/null +++ b/assets/icons/volume-line-PZujbN8h.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=volume-line-PZujbN8h.js.map diff --git a/assets/icons/volume-line-PZujbN8h.js.map b/assets/icons/volume-line-PZujbN8h.js.map new file mode 100644 index 0000000..9bf3bba --- /dev/null +++ b/assets/icons/volume-line-PZujbN8h.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-line-PZujbN8h.js","sources":["../../../node_modules/@iconify-icons/mingcute/volume-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wrCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/volume-mute-line-WthBoXru.js b/assets/icons/volume-mute-line-WthBoXru.js new file mode 100644 index 0000000..30804db --- /dev/null +++ b/assets/icons/volume-mute-line-WthBoXru.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=volume-mute-line-WthBoXru.js.map diff --git a/assets/icons/volume-mute-line-WthBoXru.js.map b/assets/icons/volume-mute-line-WthBoXru.js.map new file mode 100644 index 0000000..9b28c1e --- /dev/null +++ b/assets/icons/volume-mute-line-WthBoXru.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-mute-line-WthBoXru.js","sources":["../../../node_modules/@iconify-icons/mingcute/volume-mute-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,kkCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/walk-line-CF7a5s4t.js b/assets/icons/walk-line-CF7a5s4t.js new file mode 100644 index 0000000..d646060 --- /dev/null +++ b/assets/icons/walk-line-CF7a5s4t.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=walk-line-CF7a5s4t.js.map diff --git a/assets/icons/walk-line-CF7a5s4t.js.map b/assets/icons/walk-line-CF7a5s4t.js.map new file mode 100644 index 0000000..7d4df81 --- /dev/null +++ b/assets/icons/walk-line-CF7a5s4t.js.map @@ -0,0 +1 @@ +{"version":3,"file":"walk-line-CF7a5s4t.js","sources":["../../../node_modules/@iconify-icons/mingcute/walk-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,42CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/instances-cddSOnAA.json b/assets/instances-cddSOnAA.json new file mode 100644 index 0000000..429f06c --- /dev/null +++ b/assets/instances-cddSOnAA.json @@ -0,0 +1,670 @@ +[ + "mastodon.social", + "pravda.me", + "pawoo.net", + "mstdn.jp", + "mstdn.social", + "mastodon.online", + "mastodon.world", + "mas.to", + "infosec.exchange", + "fedibird.com", + "fosstodon.org", + "hachyderm.io", + "troet.cafe", + "m.cmx.im", + "techhub.social", + "piaille.fr", + "planet.moe", + "mastodon.gamedev.place", + "mastodonapp.uk", + "universeodon.com", + "mastodon.uno", + "chaos.social", + "mastodon.art", + "mastodon.nl", + "mastodon.cloud", + "social.vivaldi.net", + "mastodon-japan.net", + "mstdn.ca", + "thu.closed.social", + "mastodon.sdf.org", + "noagendasocial.com", + "kolektiva.social", + "alive.bar", + "c.im", + "o3o.ca", + "masto.ai", + "tech.lgbt", + "norden.social", + "sfba.social", + "social.tchncs.de", + "meow.social", + "wxw.moe", + "aus.social", + "mastodon.scot", + "nrw.social", + "mstdn.party", + "det.social", + "aethy.com", + "occm.cc", + "newsie.social", + "toot.community", + "ohai.social", + "mastodon.top", + "mastodon.ie", + "mathstodon.xyz", + "twingyeo.kr", + "mamot.fr", + "sueden.social", + "dice.camp", + "botsin.space", + "mastodon.nu", + "mastodontech.de", + "loforo.com", + "mindly.social", + "ro-mastodon.puyo.jp", + "twit.social", + "ioc.exchange", + "hessen.social", + "defcon.social", + "ruhr.social", + "mastodon.au", + "kind.social", + "mastodon.green", + "nerdculture.de", + "social.cologne", + "mastodon.nz", + "fediscience.org", + "mastouille.fr", + "social.anoxinon.de", + "muenchen.social", + "qoto.org", + "framapiaf.org", + "akamdon.com", + "indieweb.social", + "social.linux.pizza", + "respublicae.eu", + "me.dm", + "eldritch.cafe", + "wandering.shop", + "mastodon.com.tr", + "g0v.social", + "mstdn.science", + "sigmoid.social", + "ecoevo.social", + "ruby.social", + "zirk.us", + "mastodon.xyz", + "mstdn.guru", + "social.librem.one", + "ravenation.club", + "ieji.de", + "livellosegreto.it", + "mastodont.cat", + "cubhub.social", + "bildung.social", + "noc.social", + "kinky.business", + "mastodonczech.cz", + "kemonodon.club", + "toot.wales", + "med-mastodon.com", + "urbanists.social", + "octodon.social", + "kmy.blue", + "digitalcourage.social", + "masto.nu", + "mastodontti.fi", + "pouet.chapril.org", + "toot.io", + "climatejustice.social", + "mastodon.radio", + "woof.group", + "sciences.social", + "social.dev-wiki.de", + "econtwitter.net", + "phpc.social", + "metalhead.club", + "yiff.life", + "berlin.social", + "101010.pl", + "mstdn.plus", + "mastodon.fun", + "rubber.social", + "mastodon.iriseden.eu", + "mastodon.bida.im", + "mastodon.ml", + "social.lol", + "rollenspiel.social", + "mstdn.games", + "best-friends.chat", + "equestria.social", + "wien.rocks", + "androiddev.social", + "socel.net", + "paquita.masto.host", + "mastodon.me.uk", + "genomic.social", + "scholar.social", + "snabelen.no", + "cyberplace.social", + "dresden.network", + "swiss.social", + "wobbl.xyz", + "hostux.social", + "ffxiv-mastodon.com", + "masto.pt", + "shakedown.social", + "uri.life", + "ursal.zone", + "pol.social", + "writing.exchange", + "typo.social", + "wetdry.world", + "mast.lat", + "todon.eu", + "floss.social", + "astrodon.social", + "tabletop.social", + "freiburg.social", + "mastodon-belgium.be", + "hci.social", + "qdon.space", + "openbiblio.social", + "gulp.cafe", + "mastodon.zaclys.com", + "tooot.im", + "stranger.social", + "theblower.au", + "furry.engineer", + "mstdn.io", + "toad.social", + "abdl.link", + "geekdom.social", + "journa.host", + "social.treehouse.systems", + "hcommons.social", + "mastoturk.org", + "glasgow.social", + "queer.party", + "social.coop", + "tooting.ch", + "peoplemaking.games", + "mastodonners.nl", + "pawb.fun", + "awscommunity.social", + "muenster.im", + "rivals.space", + "union.place", + "feuerwehr.social", + "h4.io", + "dju.social", + "toot.aquilenet.fr", + "vis.social", + "blorbo.social", + "otadon.com", + "imastodon.net", + "tilde.zone", + "vmst.io", + "lor.sh", + "mstdn.maud.io", + "ika.queloud.net", + "bonn.social", + "nofan.xyz", + "rheinneckar.social", + "toot.cat", + "discuss.systems", + "types.pl", + "vocalodon.net", + "4bear.com", + "girlcock.club", + "sunny.garden", + "mapstodon.space", + "emacs.ch", + "medibubble.org", + "famichiki.jp", + "blog.famichiki.jp", + "bsd.network", + "fandom.ink", + "cybre.space", + "persiansmastodon.com", + "ludosphere.fr", + "oldbytes.space", + "toot.blue", + "witches.live", + "cupoftea.social", + "photog.social", + "historians.social", + "weirder.earth", + "graphics.social", + "layer8.space", + "mstdn.in.th", + "pokemon.mastportal.info", + "social.sciences.re", + "vt.social", + "iosdev.space", + "todon.nl", + "masto.bike", + "gruene.social", + "flipboard.social", + "bolha.us", + "douchi.space", + "literatur.social", + "freak.university", + "jorts.horse", + "neuromatch.social", + "merveilles.town", + "shelter.moe", + "retro.pizza", + "scicomm.xyz", + "mastorol.es", + "disabled.social", + "trpg-o.xyz", + "freeradical.zone", + "mastodon.gal", + "expressional.social", + "h5q.net", + "witter.cz", + "mastodonbooks.net", + "vkl.world", + "mastodon.berlin", + "lile.cl", + "chitter.xyz", + "mona.do", + "mast.dragon-fly.club", + "spore.social", + "liker.social", + "furries.club", + "neurodifferent.me", + "mastodon.design", + "macaw.social", + "toot.lv", + "linuxrocks.online", + "bitbang.social", + "mstdn.beer", + "lgbtqia.space", + "transfur.social", + "climatejustice.rocks", + "glammr.us", + "mastodon.coffee", + "vtdon.com", + "gaypirates.club", + "oslo.town", + "mental.social", + "post.lurk.org", + "eupolicy.social", + "parfait.day", + "xoxo.zone", + "graz.social", + "veganism.social", + "sciencemastodon.com", + "be-lieve.hostdon.ne.jp", + "kinkyelephant.com", + "twiukraine.com", + "convo.casa", + "artisan.chat", + "pettingzoo.co", + "sociale.network", + "pkm.social", + "masto.nobigtech.es", + "urusai.social", + "freeatlantis.com", + "fairy.id", + "blimps.xyz", + "mastodon.la", + "musician.social", + "mustard.blog", + "m.otter.homes", + "mastodon.cat", + "dizl.de", + "mastodon.energy", + "sself.co", + "mastodon.arch-linux.cz", + "kirche.social", + "toot.cafe", + "mastodon.org.uk", + "mstdn.mx", + "federatedfandom.net", + "pnw.zone", + "xarxa.cloud", + "cr8r.gg", + "darmstadt.social", + "toot.funami.tech", + "awoo.space", + "mastodon.uy", + "plush.city", + "cztwitter.cz", + "thecanadian.social", + "thicc.horse", + "digipres.club", + "libretooth.gr", + "trpg.cloud", + "m.ai6yr.org", + "ramen-fsm.eu.org", + "jawns.club", + "mastodon.in.th", + "mao.mastodonhub.com", + "romancelandia.club", + "sakurajima.moe", + "mastodon.content.town", + "esperanto.masto.host", + "toot.bike", + "machteburch.social", + "fulda.social", + "worldkey.io", + "nnia.space", + "plural.cafe", + "federated.press", + "ani.work", + "better.boston", + "vulpine.club", + "ichiji.social", + "freemasonry.social", + "iztasocial.site", + "functional.cafe", + "warhammer.social", + "mastodo.fi", + "mstdn.kemono-friends.info", + "mastodon.acm.org", + "dotnet.social", + "mas.town", + "liberdon.com", + "babka.social", + "social.bau-ha.us", + "oc.todon.fr", + "nafo.uk", + "kirakiratter.com", + "sleeping.town", + "masto.nyc", + "mastodon.hams.social", + "donphan.social", + "en.osm.town", + "toot.portes-imaginaire.org", + "biplus.date", + "podcastindex.social", + "mastodon.mim-libre.fr", + "data-folks.masto.host", + "sukebe.hostdon.ne.jp", + "akademienl.social", + "gearheads.social", + "sauropods.win", + "archaeo.social", + "bear.community", + "swiss-talk.net", + "social.seattle.wa.us", + "assemblag.es", + "toot.kif.rocks", + "mograph.social", + "icosahedron.website", + "kurry.social", + "spacey.space", + "is.nota.live", + "cryptodon.lol", + "bbq.snoot.com", + "ai.wiki", + "photodn.net", + "im-in.space", + "opalstack.social", + "social.kyiv.dcomm.net.ua", + "wargamers.social", + "hometech.social", + "mastodon.mnetwork.co.kr", + "mstdn-bike.net", + "toot.si", + "gensokyo.town", + "social.politicaconciencia.org", + "tyrol.social", + "col.social", + "kopiti.am", + "norcal.social", + "toot.berlin", + "bookwor.ms", + "kanoa.de", + "mstdn.dk", + "h-net.social", + "jasette.facil.services", + "sunbeam.city", + "eightpoint.app", + "mstdn.tokyocameraclub.com", + "dobbs.town", + "est.social", + "mastoot.fr", + "epicure.social", + "artsio.com", + "social.edu.nl", + "mstdn.id", + "mstdn.fr", + "mastodon.com.br", + "seocommunity.social", + "hello.2heng.xin", + "arsenalfc.social", + "computerfairi.es", + "mastodon.hypnoguys.com", + "beekeeping.ninja", + "mastodon.tetaneutral.net", + "kirishima.cloud", + "tablegame.mstdn.cloud", + "otogamer.me", + "eigadon.net", + "federate.social", + "qubit-social.xyz", + "pointless.chat", + "mastodon.mit.edu", + "tribe.net", + "osna.social", + "uwu.social", + "blacktwitter.io", + "toki.social", + "gameliberty.club", + "colearn.social", + "esq.social", + "blabber.lu-rp.net", + "elekk.xyz", + "xn--lofll-1sat.is", + "flower.afn.social", + "cloud-native.social", + "burma.social", + "loðfíll.is", + "guitar.rodeo", + "nederland.online", + "mastodon.gougere.fr", + "piano.masto.host", + "mastodon.education", + "moresci.sale", + "social.veraciousnetwork.com", + "hispagatos.space", + "apobangpo.space", + "mastodon.juggler.jp", + "mastodon.bayern", + "dingdash.com", + "mastodon.hk", + "outdoors.lgbt", + "irsoluciones.social", + "mastodon.vlaanderen", + "9kb.me", + "social.datalabour.com", + "mastodon.partipirate.org", + "oulipo.social", + "yakyudon.net", + "kfem.cat", + "lounge.town", + "eletusk.club", + "lgbt.io", + "lewacki.space", + "oransns.com", + "mastodon.triggerphra.se", + "arvr.social", + "digforfire.org", + "maly.io", + "good.news", + "lou.lt", + "anticapitalist.party", + "mastodon.cc", + "gardenstate.social", + "mastorock.com", + "birds.town", + "kpop.social", + "social.yesterweb.org", + "earthstream.social", + "gensokyo.social", + "anarchism.space", + "acg.mn", + "deadinsi.de", + "baraag.net", + "mastodon.elte.hu", + "mastodon.pirateparty.be", + "social.chinwag.org", + "mstdn.es", + "metalverse.social", + "mastodon-swiss.org", + "mastodon.com.py", + "mstdn.osaka", + "social.slat.org", + "mastodon.free-solutions.org", + "macrofurs.social", + "aleph.land", + "mastodol.jp", + "poweredbygay.social", + "toots.social", + "gametoots.de", + "tenforward.social", + "occitania.social", + "rcsocial.net", + "mastodon.cipherbliss.com", + "mastodon.be", + "otoya.space", + "vocalounge.cafe", + "anime.kona.moe", + "toot.thoughtworks.com", + "toot.pizza", + "mastodon.cisti.org", + "masto.yttrx.com", + "yttrx.com", + "catdon.life", + "seo.chat", + "drumstodon.net", + "e.fo", + "hub.mtf.party", + "toot.turbo.chat", + "mastodon.holeyfox.co", + "social.targaryen.house", + "bologna.one", + "pieville.net", + "moe.cat", + "toot.site", + "lilymagic.com", + "social.opendesktop.org", + "bgme.me", + "mastodon.li", + "truthsocial.co.in", + "stereodon.social", + "mast.moe", + "nojack.easydns.ca", + "mikumikudance.cloud", + "social.coletivos.org", + "social.caa-ins.org", + "m.rthome.me", + "mastodon.oeru.org", + "nasface.cz", + "ephemeral.glitch.social", + "www.mstddntfdn.online", + "mastodon.librelabucm.org", + "livester.net", + "fetswing.org", + "mastodon.cosmicanimal.jp", + "summoners-riftodon.jp", + "dev.brighteon.social", + "todon.ploud.fr", + "kinbaku.club", + "animalliberation.social", + "jaxbeach.social", + "onmasto.com", + "mastodon.gza.jp", + "mastodon.firefly.land", + "ostatus.ikeji.ma", + "social.outsourcedmath.com", + "tkz.one", + "med-mammoth.com", + "bark.lgbt", + "moth.social", + "icosahedron.kal-tsit.halcy.de", + "id.cc", + "crypt.lol", + "freespeechextremist.com", + "cawfee.club", + "1234.as", + "fedi.absturztau.be", + "fsmi.social", + "go5.dev", + "poa.st", + "patriot.online", + "stereophonic.space", + "kazv.moe", + "seaofog.com", + "libranet.de", + "tea.codes", + "pixelfed.social", + "stop.voring.me", + "shitposter.club", + "squeet.me", + "shared.graphics", + "devs.live", + "pxlmo.com", + "pixel.tchncs.de", + "pythondevs.social", + "love.alicecomplex.com", + "mastodon.london", + "greenish.red", + "pixelfed.sdf.org", + "anar.chi.st", + "gram.social", + "friendica.eskimo.com", + "dudu.best", + "lolison.top", + "fedisnap.com", + "pix.diaspodon.fr", + "shpposter.club", + "pix.toot.wales", + "pleroma.noellabo.jp", + "fgc.network", + "pixey.org", + "fe.disroot.org", + "pixelfed.tokyo", + "mastodon.wien", + "448c.net", + "miraiverse.xyz", + "freeframe.masto.host", + "pixelfed.photos", + "varishangout.net", + "pixelfed.fr", + "friendica.vrije-mens.org", + "mastodon.tech", + "bae.st", + "brighteon.social", + "pixelfed.nz", + "hayu.sh", + "pixelfed.uno", + "pixelfed.au", + "miniwa.moe", + "bassam.social", + "genserver.social", + "spinster.xyz", + "pixelfed.de", + "metapixl.com", + "neenster.org", + "venera.social", + "outerheaven.club", + "gleasonator.com", + "pixelfed.fi", + "blob.cat", + "kids.0px.io", + "metu.life", + "cybre.club", + "snug.moe", + "eter9.com", + "infosec.town", + "lethallava.land", + "dvd.chat", + "poast.org" +] \ No newline at end of file diff --git a/assets/main-O03IOhxZ.js b/assets/main-O03IOhxZ.js new file mode 100644 index 0000000..504c53c --- /dev/null +++ b/assets/main-O03IOhxZ.js @@ -0,0 +1,22 @@ +import{s as k,a as B,b as Ae,u as En,c as me,o as ys,I as w,M as $e,d as ne,A as Qe,N as It,e as Fe,f as ze,L as ee,g as ot,h as Pn,l as ws,t as en,R as $t,i as vs,p as et,j as qe,k as Nn,m as Pt,E as Dn,n as Ue,q as Ke,r as Ss,v as Ie,w as tn,T as Un,x as ht,y as Fn,z as nn,B as ks,C as Is,D as On,F as _e,G as Ts,S as Le,H as Cs,J as $s,K as je,O as zn,P as Nt,Q as xs,U as ct,V as Bn,W as Re,X as Hn,Y as As,Z as Ls,_ as Ms,$ as gt,a0 as Rs,a1 as sn,a2 as _s,a3 as on,a4 as an}from"./useTitle-zvzl1Hla.js";import{_ as D,p as z,h as C,u as Me,w as Be,a as e,b as ke,g as A,s as xt,c as qt,M as ie,d as Pe,e as rt,F as he,T as Ve,S as Es,I as lt,y as Ge,f as qn,l as cn,i as Vn,j as Gn,k as He,A as Ps,N as Ns,q as Ds,J as Us,C as jn,m as Yn,n as tt,o as Wn,r as Fs,t as Os,v as zs,x as pt,z as Kn,B as rn,D as Bs,R as Vt,E as Ce,H as Hs,G as qs}from"./vendor--8C7Txey.js";function at(t=()=>{},n=[]){const i=D(t);z(()=>{i.current=t},[n]),z(()=>{const o=()=>{const a=document.hidden||document.visibilityState==="hidden";i.current(!a)};return document.addEventListener("visibilitychange",o),()=>document.removeEventListener("visibilitychange",o)},[])}const Vs=1e3*3,Gs=15e3,js=Be(function({isLoggedIn:n}){const[i,o]=C(!0);at(o);const a=async(l,r,d)=>{var h;if(k.notificationsLast){const c=l.v1.notifications.list({limit:1,sinceId:k.notificationsLast.id}),{value:p}=await c.next();if(p!=null&&p.length)if(d)k.notificationsShowNew=!0;else{let f;try{const b=await l.v1.markers.fetch({timeline:"notifications"});f=(h=b==null?void 0:b.notifications)==null?void 0:h.lastReadId}catch{}f?k.notificationsShowNew=p[0].id!==f:k.notificationsShowNew=!0}}};z(()=>{let l,r;if(n&&i){const{masto:d,streaming:h,instance:c}=B();(async()=>{await a(d,c);let p=!1;h&&(r=setTimeout(()=>{(async()=>{try{p=!0,l=h.user.notification.subscribe();for await(const f of l){if(!l||!i)break;f.event==="notification"&&Ae(f.payload,c,{skipThreading:!0}),k.notificationsShowNew=!0}}catch{p=!1}p||(r=setInterval(()=>{a(d,c,!0)},Gs))})()},Vs))})()}return()=>{var d;(d=l==null?void 0:l.unsubscribe)==null||d.call(l),l=null,clearTimeout(r),clearInterval(r)}},[i,n]);const s=D(),u=()=>{s.current=Date.now(),fetch("./version.json").then(l=>l.json()).then(l=>{l&&(k.appVersion=l)}).catch(l=>{})};return En(u,i&&1e3*60*30),at(l=>{l&&(s.current?Date.now()-s.current>1e3*60*60&&u():u())}),Me("shift+alt+k",()=>{const l=k.settings.cloakMode;k.settings.cloakMode=!l,me({text:`Cloak mode ${l?"disabled":"enabled"}`})}),null});function Ys(){function t(n){n.shiftKey?ys()||(k.showCompose=!0):k.showCompose=!0}return Me("c, shift+c",t,{ignoreEventWhen:n=>!!document.querySelector("#modal-container > *")}),e("button",{type:"button",id:"compose-button",onClick:t,children:e(w,{icon:"quill",size:"xl",alt:"Compose"})})}const Ws=Be(function(){const n=ke(k);function i(){k.showKeyboardShortcutsHelp=!1}return Me("?, shift+?",o=>{k.showKeyboardShortcutsHelp=!0},{ignoreEventWhen:o=>!!document.querySelector("#modal-container > *")}),!!n.showKeyboardShortcutsHelp&&e($e,{class:"light",onClose:i,children:e("div",{id:"keyboard-shortcuts-help-container",class:"sheet",tabindex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:i,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Keyboard shortcuts"})}),e("main",{children:e("table",{children:[{action:"Keyboard shortcuts help",keys:e("kbd",{children:"?"})},{action:"Next post",keys:e("kbd",{children:"j"})},{action:"Previous post",keys:e("kbd",{children:"k"})},{action:"Skip carousel to next post",keys:e(A,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"j"})]})},{action:"Skip carousel to previous post",keys:e(A,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"k"})]})},{action:"Open post details",keys:e(A,{children:[e("kbd",{children:"Enter"})," or ",e("kbd",{children:"o"})]})},{action:e(A,{children:["Expand content warning or",e("br",{}),"toggle expanded/collapsed thread"]}),keys:e("kbd",{children:"x"})},{action:"Close post or dialogs",keys:e(A,{children:[e("kbd",{children:"Esc"})," or ",e("kbd",{children:"Backspace"})]})},{action:"Focus column in multi-column mode",keys:e(A,{children:[e("kbd",{children:"1"})," to ",e("kbd",{children:"9"})]})},{action:"Compose new post",keys:e("kbd",{children:"c"})},{action:"Compose new post (new window)",className:"insignificant",keys:e(A,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"c"})]})},{action:"Send post",keys:e(A,{children:[e("kbd",{children:"Ctrl"})," + ",e("kbd",{children:"Enter"})," or ",e("kbd",{children:"⌘"})," +"," ",e("kbd",{children:"Enter"})]})},{action:"Search",keys:e("kbd",{children:"/"})},{action:"Reply",keys:e("kbd",{children:"r"})},{action:"Reply (new window)",className:"insignificant",keys:e(A,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"r"})]})},{action:"Like (favourite)",keys:e(A,{children:[e("kbd",{children:"l"})," or ",e("kbd",{children:"f"})]})},{action:"Boost",keys:e(A,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"b"})]})},{action:"Bookmark",keys:e("kbd",{children:"d"})},{action:"Toggle Cloak mode",keys:e(A,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"Alt"})," + ",e("kbd",{children:"k"})]})}].map(({action:o,className:a,keys:s})=>e("tr",{children:[e("th",{class:a,children:o}),e("td",{children:s})]},o))})})]})})});function Ks({onClose:t}){const{masto:n}=B(),i=ne.local.getJSON("accounts"),o=ne.session.get("currentAccount"),a=i.length>1,[s,u]=xt(r=>r+1,0),[l]=qt();return e("div",{id:"accounts-container",class:"sheet",tabIndex:"-1",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{class:"header-grid",children:e("h2",{children:"Accounts"})}),e("main",{children:e("section",{children:[e("ul",{class:"accounts-list",ref:l,children:i.map((r,d)=>{const h=r.info.id===o,c=d===0;return e("li",{children:[e("div",{children:[a&&e("span",{class:`current ${h?"is-current":""}`,children:e(w,{icon:"check-circle",alt:"Current"})}),e(Qe,{url:r.info.avatarStatic,size:"xxl",onDblClick:async()=>{if(h)try{const p=await n.v1.accounts.$select(r.info.id).fetch();r.info=p,ne.local.setJSON("accounts",i),u()}catch{}}}),e(It,{account:a?{...r.info,acct:/@/.test(r.info.acct)?r.info.acct:`${r.info.acct}@${r.instanceURL}`}:r.info,showAcct:!0,onClick:()=>{h?k.showAccount=`${r.info.username}@${r.instanceURL}`:(ne.session.set("currentAccount",r.info.id),location.reload())}})]}),e("div",{class:"actions",children:[c&&a&&e(A,{children:[e("span",{class:"tag",children:"Default"})," "]}),e(Fe,{align:"end",menuButton:e("button",{type:"button",title:"More",class:"plain more-button",children:e(w,{icon:"more",size:"l",alt:"More"})}),children:[e(ie,{onClick:()=>{k.showAccount=`${r.info.username}@${r.instanceURL}`},children:[e(w,{icon:"user"}),e("span",{children:"View profile…"})]}),e(Pe,{}),a&&e(ie,{disabled:c,onClick:()=>{i.splice(d,1),i.unshift(r),ne.local.setJSON("accounts",i),u()},children:[e(w,{icon:"check-circle"}),e("span",{children:"Set as default"})]}),e(ze,{subMenu:!0,confirmLabel:e(A,{children:[e(w,{icon:"exit"}),e("span",{children:["Log out @",r.info.acct,"?"]})]}),disabled:!h,menuItemClassName:"danger",onClick:()=>{i.splice(d,1),ne.local.setJSON("accounts",i),location.href=location.pathname||"/"},children:[e(w,{icon:"exit"}),e("span",{children:"Log out…"})]})]})]})]},r.info.id)})}),e("p",{children:e(ee,{to:"/login",class:"button plain2",onClick:t,children:[e(w,{icon:"plus"})," ",e("span",{children:"Add an existing account"})]})}),a&&e("p",{children:e("small",{children:["Note: ",e("i",{children:"Default"})," account will always be used for first load. Switched accounts will persist during the session."]})})]})})]})}const Gt="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2064%2064'%3e%3cpath%20fill='none'%20d='M0%200h63.994v63.994H0z'/%3e%3cpath%20fill='%23a4bff7'%20d='M37.774%2011.471c14.639%203.752%2019.034%2016.557%2015.889%2031.304-.696%203.261-2.563%206.661-6.356%208.693-3.204%201.717-8.07%202.537-15.338.55l-9.634-2.404C11.651%2046.992%208.378%2038.733%2010.027%2031.823c3.627-15.201%2015.543-23.48%2027.747-20.352Z'/%3e%3cpath%20fill='%23d8e7fe'%20d='M36.76%2015.429c12.289%203.15%2015.547%2014.114%2012.907%2026.493-.947%204.44-4.937%209.365-16.664%206.143l-9.684-2.417c-7.854-1.923-10.53-7.8-9.318-12.877%203.016-12.639%2012.611-19.943%2022.759-17.342Z'/%3e%3cpath%20fill='%236081e6'%20d='M27.471%2024.991c-1.457-.698-7.229%203.213-7.663%208.926-.182%202.39%204.55%203.237%205.071-.169.725-4.743%203.715-8.218%202.592-8.757Zm10.746%202.005c-2.083.327-.382%205.901-.595%2010.727-.123%202.8%204.388%203.464%204.703%202.011%201.098-5.073-2.066-13.058-4.108-12.738Z'/%3e%3c/svg%3e";function ln(t){const{masto:n}=B();return n.v1.push.subscription.create(t)}function Zs(){const{masto:t}=B();return t.v1.push.subscription.fetch()}function Js(t){const{masto:n}=B();return n.v1.push.subscription.update(t)}function Xs(){const{masto:t}=B();return t.v1.push.subscription.remove()}function At(){return"serviceWorker"in navigator&&"PushManager"in window}function Qs(){return navigator.serviceWorker.getRegistration()}async function jt(){const t=await Qs(),n=t?await t.pushManager.getSubscription():void 0;return{registration:t,subscription:n}}function Zn(t){const n="=".repeat((4-t.length%4)%4),i=`${t}${n}`.replace(/-/g,"+").replace(/_/g,"/"),o=window.atob(i),a=new Uint8Array(o.length);for(let s=0;s{f.preventDefault();const g=new FormData(o.current).get("theme"),v=document.documentElement;if(g==="auto"){v.classList.remove("is-light","is-dark");const m=document.querySelector('meta[data-theme-setting="manual"]');m&&(m.name=""),document.querySelectorAll('meta[data-theme-setting="auto"]').forEach(S=>{S.name="theme-color"})}else{v.classList.toggle("is-light",g==="light"),v.classList.toggle("is-dark",g==="dark");const m=document.querySelector('meta[data-theme-setting="manual"]');m&&(m.name="theme-color",m.content=g==="light"?m.dataset.themeLightColor:m.dataset.themeDarkColor),document.querySelectorAll('meta[data-theme-setting="auto"]').forEach(S=>{S.name=""})}document.querySelector('meta[name="color-scheme"]').setAttribute("content",g==="auto"?"dark light":g),g==="auto"?ne.local.del("theme"):ne.local.set("theme",g)},children:e("div",{class:"radio-group",children:[e("label",{children:[e("input",{type:"radio",name:"theme",value:"light",defaultChecked:i==="light"}),e("span",{children:"Light"})]}),e("label",{children:[e("input",{type:"radio",name:"theme",value:"dark",defaultChecked:i==="dark"}),e("span",{children:"Dark"})]}),e("label",{children:[e("input",{type:"radio",name:"theme",value:"auto",defaultChecked:i!=="light"&&i!=="dark"}),e("span",{children:"Auto"})]})]})})})]}),e("li",{children:[e("div",{children:e("label",{children:"Text size"})}),e("div",{class:"range-group",children:[e("span",{style:{fontSize:Xe[0]},children:"A"})," ",e("input",{type:"range",min:Xe[0],max:Xe[Xe.length-1],step:"1",value:l,list:"sizes",onChange:f=>{const b=parseInt(f.target.value,10);document.documentElement.style.setProperty("--text-size",`${b}px`),b===hn?ne.local.del("textSize"):ne.local.set("textSize",f.target.value)}})," ",e("span",{style:{fontSize:Xe[Xe.length-1]},children:"A"}),e("datalist",{id:"sizes",children:Xe.map(f=>e("option",{value:f}))})]})]})]})}),c&&e(A,{children:[e("h3",{children:"Posting"}),e("section",{children:e("ul",{children:e("li",{children:[e("div",{children:e("label",{for:"posting-privacy-field",children:["Default visibility"," ",e(w,{icon:"cloud",alt:"Synced",class:"synced-icon"})]})}),e("div",{children:e("select",{id:"posting-privacy-field",value:r["posting:default:visibility"]||"public",onChange:f=>{const{value:b}=f.target;(async()=>{try{await h.v1.accounts.updateCredentials({source:{privacy:b}}),d({...r,"posting:default:visibility":b}),ne.account.set("preferences",{...r,"posting:default:visibility":b})}catch{alert("Failed to update posting privacy")}})()},children:[e("option",{value:"public",children:"Public"}),e("option",{value:"unlisted",children:"Unlisted"}),e("option",{value:"private",children:"Followers only"})]})})]})})}),e("p",{class:"section-postnote",children:[e(w,{icon:"cloud",alt:"Synced",class:"synced-icon"})," ",e("small",{children:["Synced to your instance server's settings."," ",e("a",{href:`https://${p}/`,target:"_blank",rel:"noopener noreferrer",children:["Go to your instance (",p,") for more settings."]})]})]})]}),e("h3",{children:"Experiments"}),e("section",{children:e("ul",{children:[e("li",{children:e("label",{children:[e("input",{type:"checkbox",checked:n.settings.autoRefresh,onChange:f=>{k.settings.autoRefresh=f.target.checked}})," ","Auto refresh timeline posts"]})}),e("li",{children:e("label",{children:[e("input",{type:"checkbox",checked:n.settings.boostsCarousel,onChange:f=>{k.settings.boostsCarousel=f.target.checked}})," ","Boosts carousel"]})}),e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.contentTranslation,onChange:f=>{const{checked:b}=f.target;k.settings.contentTranslation=b,b||(k.settings.contentTranslationTargetLanguage=null)}})," ","Post translation"]}),e("div",{class:`sub-section ${n.settings.contentTranslation?"":"more-insignificant"}`,children:[e("div",{children:e("label",{children:["Translate to"," ",e("select",{value:a||"",disabled:!n.settings.contentTranslation,onChange:f=>{k.settings.contentTranslationTargetLanguage=f.target.value||null},children:[e("option",{value:"",children:["System language (",u,")"]}),e("option",{disabled:!0,children:"──────────"}),en.map(f=>e("option",{value:f.code,children:f.name}))]})]})}),e("hr",{}),e("p",{class:"checkbox-fieldset",children:['Hide "Translate" button for',n.settings.contentTranslationHideLanguages.length>0&&e(A,{children:[" ","(",n.settings.contentTranslationHideLanguages.length,")"]}),":",e("div",{class:"checkbox-fields",children:en.map(f=>e("label",{children:[e("input",{type:"checkbox",checked:n.settings.contentTranslationHideLanguages.includes(f.code),onChange:b=>{const{checked:g}=b.target;g?k.settings.contentTranslationHideLanguages.push(f.code):k.settings.contentTranslationHideLanguages=n.settings.contentTranslationHideLanguages.filter(v=>v!==f.code)}})," ",f.name]}))})]}),e("p",{class:"insignificant",children:e("small",{children:["Note: This feature uses external translation services, powered by"," ",e("a",{href:"https://github.com/cheeaun/lingva-api",target:"_blank",rel:"noopener noreferrer",children:"Lingva API"})," ","&"," ",e("a",{href:"https://github.com/thedaviddelta/lingva-translate",target:"_blank",rel:"noopener noreferrer",children:"Lingva Translate"}),"."]})}),e("hr",{}),e("div",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.contentTranslationAutoInline,disabled:!n.settings.contentTranslation,onChange:f=>{k.settings.contentTranslationAutoInline=f.target.checked}})," ","Auto inline translation"]}),e("p",{class:"insignificant",children:e("small",{children:["Automatically show translation for posts in timeline. Only works for ",e("b",{children:"short"})," posts without content warning, media and poll."]})})]})]})]}),!!si&&e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.mediaAltGenerator,onChange:f=>{k.settings.mediaAltGenerator=f.target.checked}})," ","Image description generator"," ",e(w,{icon:"sparkles2",class:"more-insignificant"})]}),e("div",{class:"sub-section insignificant",children:e("small",{children:"Only for new images while composing new posts."})}),e("div",{class:"sub-section insignificant",children:e("small",{children:["Note: This feature uses external AI service, powered by"," ",e("a",{href:"https://github.com/cheeaun/img-alt-api",target:"_blank",rel:"noopener noreferrer",children:"img-alt-api"}),". May not work well. Only for images and in English."]})})]}),e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.cloakMode,onChange:f=>{k.settings.cloakMode=f.target.checked}})," ","Cloak mode"," ",e("span",{class:"insignificant",children:["(",e("samp",{children:"Text"})," → ",e("samp",{children:"████"}),")"]})]}),e("div",{class:"sub-section insignificant",children:e("small",{children:"Replace text as blocks, useful when taking screenshots, for privacy reasons."})})]}),c&&e("li",{children:e("button",{type:"button",class:"light",onClick:()=>{k.showDrafts=!0,k.showSettings=!1},children:"Unsent drafts"})})]})}),c&&e(oi,{onClose:t}),e("h3",{children:"About"}),e("section",{children:[e("div",{style:{display:"flex",flexWrap:"wrap",gap:8,lineHeight:1.25,alignItems:"center",marginTop:8},children:[e("img",{src:Gt,alt:"",width:"64",height:"64",style:{aspectRatio:"1/1",verticalAlign:"middle",background:"#b7cdf9",borderRadius:12}}),e("div",{children:[e("b",{children:"Phanpy"})," ",e("a",{href:"https://hachyderm.io/@phanpy",rel:"noopener noreferrer",onClick:f=>{f.preventDefault(),k.showAccount="phanpy@hachyderm.io"},children:"@phanpy"}),e("br",{}),e("a",{href:"https://github.com/cheeaun/phanpy",target:"_blank",rel:"noopener noreferrer",children:"Built"})," ","by"," ",e("a",{href:"https://mastodon.social/@cheeaun",rel:"noopener noreferrer",onClick:f=>{f.preventDefault(),k.showAccount="cheeaun@mastodon.social"},children:"@cheeaun"})]})]}),e("p",{children:[e("a",{href:"https://github.com/sponsors/cheeaun",target:"_blank",rel:"noopener noreferrer",children:"Sponsor"})," ","·"," ",e("a",{href:"https://www.buymeacoffee.com/cheeaun",target:"_blank",rel:"noopener noreferrer",children:"Donate"})," ","·"," ",e("a",{href:ni,target:"_blank",rel:"noopener noreferrer",children:"Privacy Policy"})]}),e("p",{children:[fn&&e(A,{children:[e("span",{class:"insignificant",children:"Site:"})," ",fn.replace(/https?:\/\//g,"").replace(/\/$/,""),e("br",{})]}),e("span",{class:"insignificant",children:"Version:"})," ",e("input",{type:"text",class:"version-string",readOnly:!0,size:"18",value:`${"2023-12-31T10:21:54.910Z".slice(0,10).replace(/-/g,".")}.8aa0542`,onClick:f=>{f.target.select();try{navigator.clipboard.writeText(f.target.value),me("Version string copied")}catch{me("Unable to copy version string")}}})," ",e("span",{class:"ib insignificant",children:["(",e("a",{href:"https://github.com/cheeaun/phanpy/commit/8aa0542",target:"_blank",rel:"noopener noreferrer",children:e($t,{datetime:new Date("2023-12-31T10:21:54.910Z")})}),")"]})]})]})]})]})}function oi({onClose:t}){if(!At())return null;const{instance:n}=B(),[i,o]=C("default"),a=D(),[s,u]=C(!1),[l,r]=C(!1),d=D();z(()=>{(async()=>{o("loading");try{const{subscription:c,backendSubscription:p}=await ei();if(p!=null&&p.policy&&p.policy!=="none"){u(!0);const{alerts:f,policy:b}=p;d.current=b;const{elements:g}=a.current,v=g.namedItem(b);v&&(v.value=b),Object.keys(f).forEach(m=>{const y=g.namedItem(m);(y==null?void 0:y.type)==="checkbox"&&(y.checked=!0)})}o("default")}catch(c){/outside.*authorized/i.test(c.message)?r(!0):alert((c==null?void 0:c.message)||c),o("error")}})()},[]);const h=i==="loading";return e("form",{ref:a,onChange:()=>{const c=Object.fromEntries(new FormData(a.current)),p=!!c["policy-allow"],f={policy:c.policy,data:{alerts:{mention:!!c.mention,favourite:!!c.favourite,reblog:!!c.reblog,follow:!!c.follow,follow_request:!!c.followRequest,poll:!!c.poll,update:!!c.update,status:!!c.status}}};let b=0;Object.keys(f.data.alerts).forEach(v=>{f.data.alerts[v]?b++:delete f.data.alerts[v]});const g=d.current!==f.policy;p&&b>0?g?un().then(()=>{dn(f)}).catch(v=>{alert("Failed to update subscription. Please try again.")}):dn(f).catch(v=>{alert("Failed to update subscription. Please try again.")}):un().catch(v=>{alert("Failed to remove subscription. Please try again.")})},children:[e("h3",{children:"Push Notifications (beta)"}),e("section",{children:e("ul",{children:e("li",{children:[e("label",{children:[e("input",{type:"checkbox",disabled:h||l,name:"policy-allow",checked:s,onChange:async c=>{const{checked:p}=c.target;if(p){const f=await Notification.requestPermission();f==="granted"?u(!0):(u(!1),f==="denied"&&alert("Push notifications are blocked. Please enable them in your browser settings."))}else u(!1)}})," ","Allow from"," ",e("select",{name:"policy",disabled:h||l||!s,children:[{value:"all",label:"anyone"},{value:"followed",label:"people I follow"},{value:"follower",label:"followers"}].map(c=>e("option",{value:c.value,children:c.label}))})]}),e("div",{class:"shazam-container no-animation",style:{width:"100%"},hidden:!s,children:e("div",{class:"shazam-container-inner",children:e("div",{class:"sub-section",children:e("ul",{children:[{value:"mention",label:"Mentions"},{value:"favourite",label:"Likes"},{value:"reblog",label:"Boosts"},{value:"follow",label:"Follows"},{value:"followRequest",label:"Follow requests"},{value:"poll",label:"Polls"},{value:"update",label:"Post edits"},{value:"status",label:"New posts"}].map(c=>e("li",{children:e("label",{children:[e("input",{type:"checkbox",name:c.value})," ",c.label]})}))})})})}),l&&e("div",{class:"sub-section",children:e("p",{children:["Push permission was not granted since your last login. You'll need to"," ",e(ee,{to:`/login?instance=${n}`,onClick:t,children:[e("b",{children:"log in"})," again to grant push permission"]}),"."]})})]})})}),e("p",{class:"section-postnote",children:e("small",{children:["NOTE: Push notifications only work for ",e("b",{children:"one account"}),"."]})})]})}const Dt=()=>{let t=setTimeout(()=>{if(!document.getElementById("columns")){const i=document.querySelectorAll("#modal-container > *");if(i!=null&&i.length){const u=i[i.length-1],l=u.querySelector('[tabindex="-1"]')||u;if(l){l.focus();return}}if(document.querySelector(".deck-backdrop"))return;const a=document.querySelectorAll(".deck-container"),s=a[a.length-1];s&&s.tabIndex===-1&&s.focus()}},100);return()=>clearTimeout(t)};function Jn(t){if(!t)return;const n=rt(),i=D(n.pathname);z(()=>{i.current&&n.pathname!==i.current&&(t==null||t())},[n.pathname,t])}function Yt({list:t,onClose:n}){const{masto:i}=B(),[o,a]=C("default"),s=!!t,u=D(),l=D(),r=D();z(()=>{s&&(u.current.value=t.title,l.current.value=t.repliesPolicy,r.current&&(r.current.checked=t.exclusive))},[s]);const d=vs("@mastodon/list-exclusive");return e("div",{class:"sheet",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})})," ",e("header",{children:e("h2",{children:s?"Edit list":"New list"})}),e("main",{children:e("form",{class:"list-form",onSubmit:h=>{h.preventDefault();const c=new FormData(h.target),p=c.get("title"),f=c.get("replies_policy"),b=c.get("exclusive")==="on";a("loading"),(async()=>{try{let g;s?g=await i.v1.lists.$select(t.id).update({title:p,replies_policy:f,exclusive:b}):g=await i.v1.lists.create({title:p,replies_policy:f,exclusive:b}),a("default"),n==null||n({state:"success",list:g})}catch{a("error"),alert(s?"Unable to edit list.":"Unable to create list.")}})()},children:[e("div",{class:"list-form-row",children:e("label",{for:"list-title",children:["Name"," ",e("input",{ref:u,type:"text",id:"list-title",name:"title",required:!0,disabled:o==="loading",dir:"auto"})]})}),e("div",{class:"list-form-row",children:e("select",{ref:l,name:"replies_policy",required:!0,disabled:o==="loading",children:[e("option",{value:"list",children:"Show replies to list members"}),e("option",{value:"followed",children:"Show replies to people I follow"}),e("option",{value:"none",children:"Don't show replies"})]})}),d&&e("div",{class:"list-form-row",children:e("label",{class:"label-block",children:[e("input",{ref:r,type:"checkbox",name:"exclusive",disabled:o==="loading"})," ","Hide posts on this list from Home/Following"]})}),e("div",{class:"list-form-footer",children:[e("button",{type:"submit",disabled:o==="loading",children:s?"Save":"Create"}),s&&e(ze,{disabled:o==="loading",align:"end",menuItemClassName:"danger",confirmLabel:"Delete this list?",onClick:()=>{a("loading"),(async()=>{try{await i.v1.lists.$select(t.id).remove(),a("default"),n==null||n({state:"deleted"})}catch{a("error"),alert("Unable to delete list.")}})()},children:e("button",{type:"button",class:"light danger",disabled:o==="loading",children:"Delete…"})})]})]})})]})}const ai=[60*5,60*30,60*60,60*60*6,60*60*24,60*60*24*3,60*60*24*7,0],pn={0:"Forever",300:"5 minutes",1800:"30 minutes",3600:"1 hour",21600:"6 hours",86400:"1 day",259200:"3 days",604800:"1 week"},mn=80,Xn=1e3*60*10;function ci(t,n){return n.v1.accounts.familiarFollowers.fetch({id:[t]})}const ri=et(ci,{maxAge:Xn});async function li(t,n){const i=n.v1.accounts.$select(t).statuses.list({limit:20}).next(),{value:o}=await i,a={total:o.length,originals:0,replies:0,boosts:0};return o.forEach(s=>{s.reblog?a.boosts++:s.inReplyToId&&s.inReplyToAccountId!==s.account.id?a.replies++:a.originals++}),o.length&&(a.daysSinceLastPost=Math.ceil((Date.now()-new Date(o[o.length-1].createdAt))/864e5)),a}const di=et(li,{maxAge:Xn});function Qn({account:t,fetchAccount:n=()=>{},standalone:i,instance:o,authenticated:a}){const{masto:s}=B({instance:o}),{masto:u,instance:l}=B(),[r,d]=C("default"),h=typeof t=="string",[c,p]=C(h?null:t),f=he(()=>o===l,[o,l]);z(()=>{if(!h){p(t);return}d("loading"),(async()=>{try{const q=await n();k.accounts[`${q.id}@${o}`]=q,p(q),d("default")}catch{p(null),d("error")}})()},[h,t,n]);const{acct:b,avatar:g,avatarStatic:v,bot:m,createdAt:y,displayName:S,emojis:I,fields:T,followersCount:$,followingCount:L,group:F,id:O,lastStatusAt:U,locked:P,note:M,statusesCount:E,url:x,username:N,memorial:j,moved:se,roles:V}=c||{};let ye=!1,{header:ce,headerStatic:X}=c||{};(!ce||/missing\.png$/.test(ce))&&g&&!/missing\.png$/.test(g)&&(ce=g,ye=!0,v&&!/missing\.png$/.test(v)&&(X=v));const _=he(()=>O===ne.session.get("currentAccount"),[O]);z(()=>{const q=!!(c!=null&&c.id&&(c!=null&&c.username)&&(c!=null&&c.acct)&&(c!=null&&c.avatar)&&(c!=null&&c.avatarStatic)&&(c!=null&&c.displayName)&&(c!=null&&c.url));if(_&&o&&q){const ve=ne.local.getJSON("accounts");let ue=!1;ve.forEach(fe=>{fe.info.id===c.id&&fe.instanceURL===o&&(fe.info=c,ue=!0)}),ue&&ne.local.setJSON("accounts",ve)}},[_,c,o]);const W=he(()=>x?new URL(x).hostname:null,[x]),[te,le]=C([]),G=D(),oe=D([]);async function Q(q){(q||!G.current)&&(G.current=s.v1.accounts.$select(O).followers.list({limit:mn}));const ve=await G.current.next();if(_||!f)return ve;const{value:ue}=ve;let fe=[];if(q){const Ne=await s.v1.accounts.familiarFollowers.fetch({id:[O]});oe.current=Ne[0].accounts,fe=[...oe.current,...ue.filter(De=>!oe.current.some(Ee=>Ee.id===De.id))]}else ue!=null&&ue.length&&(fe=ue.filter(Ne=>!oe.current.some(De=>De.id===Ne.id)));return{...ve,value:fe}}const we=D();async function Y(q){return(q||!we.current)&&(we.current=s.v1.accounts.$select(O).following.list({limit:mn})),await we.current.next()}const K=i?"div":ee,ae=o?`/${o}/a/${O}`:`/a/${O}`,[pe,ge]=C([]),[de,R]=C(),[H,Z]=C("default"),re=!!(de!=null&&de.total),be=async q=>{try{const ve=await ri(q,u);ge(ve[0].accounts.slice(0,ui))}catch{}},xe=async()=>{if(O){Z("loading");try{const q=await di(O,s);R(q),Z("default")}catch{Z("error")}}},Te=Ve(({relationship:q,currentID:ve})=>{q.following||(be(ve),!i&&E>0&&xe())},[i,O,E]);return e("div",{tabIndex:"-1",class:`account-container ${r==="loading"?"skeleton":""}`,style:{"--header-color-1":te[0],"--header-color-2":te[1],"--header-color-3":te[2],"--header-color-4":te[3]},children:[r==="error"&&e("div",{class:"ui-state",children:[e("p",{children:"Unable to load account."}),e("p",{children:e("a",{href:h?t:x,target:"_blank",rel:"noopener noreferrer",children:["Go to account page ",e(w,{icon:"external"})]})})]}),r==="loading"?e(A,{children:[e("header",{children:e(qe,{avatarSize:"xxxl",skeleton:!0})}),e("main",{children:[e("div",{class:"note",children:[e("p",{children:"███████ ████ ████"}),e("p",{children:"████ ████████ ██████ █████████ ████ ██"})]}),e("div",{class:"account-metadata-box",children:[e("div",{class:"profile-metadata",children:[e("div",{class:"profile-field",children:[e("b",{class:"more-insignificant",children:"███"}),e("p",{children:"██████"})]}),e("div",{class:"profile-field",children:[e("b",{class:"more-insignificant",children:"████"}),e("p",{children:"███████████"})]})]}),e("div",{class:"stats",children:[e("div",{children:[e("span",{children:"██"})," Followers"]}),e("div",{children:[e("span",{children:"██"})," Following"]}),e("div",{children:[e("span",{children:"██"})," Posts"]})]})]}),e("div",{class:"actions",children:[e("span",{}),e("span",{class:"buttons",children:e("button",{type:"button",title:"More",class:"plain",disabled:!0,children:e(w,{icon:"more",size:"l",alt:"More"})})})]})]})]}):c&&e(A,{children:[!!se&&e("div",{class:"account-moved",children:[e("p",{children:[e("b",{children:S})," has indicated that their new account is now:"]}),e(qe,{account:se,instance:o,onClick:q=>{q.stopPropagation(),k.showAccount=se}})]}),!!ce&&!/missing\.png$/.test(ce)&&e("img",{src:ce,alt:"",class:`header-banner ${ye?"header-is-avatar":""}`,onError:q=>{q.target.crossOrigin?q.target.src!==X?q.target.src=X:(q.target.removeAttribute("crossorigin"),q.target.src=ce):q.target.src!==X?q.target.src=X:q.target.remove()},crossOrigin:"anonymous",onLoad:q=>{q.target.classList.add("loaded");try{const ve=document.createElement("canvas"),ue=ve.getContext("2d",{willReadFrequently:!0});ve.width=q.target.width,ve.height=q.target.height,ue.drawImage(q.target,0,0);const fe=10,De=[ue.getImageData(0,0,fe,fe).data,ue.getImageData(q.target.width-fe,0,fe,fe).data,ue.getImageData(0,q.target.height-fe,fe,fe).data,ue.getImageData(q.target.width-fe,q.target.height-fe,fe,fe).data].map(Ee=>{let nt=0,Oe=0,We=0,Je=0;for(let Se=0;Se{const[nt,Oe,We,Je]=fi(Ee);return`rgba(${nt}, ${Oe}, ${We}, ${Je})`});le(De)}catch{}}}),e("header",{children:e(qe,{account:c,instance:o,avatarSize:"xxxl",external:i,internal:!i})}),e("div",{class:"faux-header-bg","aria-hidden":"true"}),e("main",{children:[!!j&&e("span",{class:"tag",children:"In Memoriam"}),!!m&&e("span",{class:"tag",children:[e(w,{icon:"bot"})," Automated"]}),!!F&&e("span",{class:"tag",children:[e(w,{icon:"group"})," Group"]}),V==null?void 0:V.map(q=>e("span",{class:"tag",children:[q.name,!!W&&e(A,{children:[" ",e("span",{class:"more-insignificant",children:W})]})]})),e("div",{class:"note",dir:"auto",onClick:Nn({instance:l}),dangerouslySetInnerHTML:{__html:Pt(M,{emojis:I})}}),e("div",{class:"account-metadata-box",children:[(T==null?void 0:T.length)>0&&e("div",{class:"profile-metadata",children:T.map(({name:q,value:ve,verifiedAt:ue},fe)=>e("div",{class:`profile-field ${ue?"profile-verified":""}`,dir:"auto",children:[e("b",{children:[e(Dn,{text:q,emojis:I})," ",!!ue&&e(w,{icon:"check-circle",size:"s"})]}),e("p",{dangerouslySetInnerHTML:{__html:Pt(ve,{emojis:I})}})]},q+fe))}),e("div",{class:"stats",children:[e(K,{tabIndex:0,to:ae,onClick:()=>{setTimeout(()=>{k.showGenericAccounts={heading:"Followers",fetchAccounts:Q,instance:o,excludeRelationshipAttrs:_?["followedBy"]:[]}},0)},children:[!!pe.length&&e("span",{class:"shazam-container-horizontal",children:e("span",{class:"shazam-container-inner stats-avatars-bunch",children:pe.map(q=>e(Qe,{url:q.avatarStatic,size:"s",alt:`${q.displayName} @${q.acct}`,squircle:q==null?void 0:q.bot}))})}),e("span",{title:$,children:Ue($)})," ","Followers"]}),e(K,{class:"insignificant",tabIndex:0,to:ae,onClick:()=>{setTimeout(()=>{k.showGenericAccounts={heading:"Following",fetchAccounts:Y,instance:o,excludeRelationshipAttrs:_?["following"]:[]}},0)},children:[e("span",{title:L,children:Ue(L)})," ","Following",e("br",{})]}),e(K,{class:"insignificant",to:ae,children:[e("span",{title:E,children:Ue(E)})," ","Posts"]}),!!y&&e("div",{class:"insignificant",children:["Joined"," ",e("time",{datetime:y,children:Ke(y,{hideTime:!0})})]})]})]}),!!de&&e(K,{to:ae,class:"account-metadata-box",children:e("div",{class:"shazam-container",children:e("div",{class:"shazam-container-inner",children:re?e("div",{class:"posting-stats",title:`${Math.round(de.originals/de.total*100)}% original posts, ${Math.round(de.replies/de.total*100)}% replies, ${Math.round(de.boosts/de.total*100)}% boosts`,children:[e("div",{children:de.daysSinceLastPost<365?`Last ${de.total} post${de.total>1?"s":""} in the past + ${de.daysSinceLastPost} day${de.daysSinceLastPost>1?"s":""}`:` + Last ${de.total} posts in the past year(s) + `}),e("div",{class:"posting-stats-bar",style:{"--originals-percentage":`${de.originals/de.total*100}%`,"--replies-percentage":`${(de.originals+de.replies)/de.total*100}%`}}),e("div",{class:"posting-stats-legends",children:[e("span",{class:"ib",children:[e("span",{class:"posting-stats-legend-item posting-stats-legend-item-originals"})," ","Original"]})," ",e("span",{class:"ib",children:[e("span",{class:"posting-stats-legend-item posting-stats-legend-item-replies"})," ","Replies"]})," ",e("span",{class:"ib",children:[e("span",{class:"posting-stats-legend-item posting-stats-legend-item-boosts"})," ","Boosts"]})]})]}):e("div",{class:"posting-stats",children:"Post stats unavailable."})})})}),e("div",{class:"account-metadata-box",children:e("div",{class:"shazam-container no-animation",hidden:!!de,children:e("div",{class:"shazam-container-inner",children:e("button",{type:"button",class:"posting-stats-button",disabled:H==="loading",onClick:()=>{xe()},children:[e("div",{class:`posting-stats-bar posting-stats-icon ${H==="loading"?"loading":""}`,style:{"--originals-percentage":"33%","--replies-percentage":"66%"}}),"View post stats"," "]})})})})]}),e("footer",{children:e(hi,{info:c,instance:o,authenticated:a,onRelationshipChange:Te})})]})]})}const ui=3;function hi({info:t,instance:n,authenticated:i,onRelationshipChange:o=()=>{}}){var we;if(!t)return null;const{masto:a,instance:s,authenticated:u}=B(),l=n===s,[r,d]=C("default"),[h,c]=C(null),{id:p,acct:f,url:b,username:g,locked:v,lastStatusAt:m,note:y,fields:S,moved:I}=t,T=D(p),{following:$,showingReblogs:L,notifying:F,followedBy:O,blocking:U,blockedBy:P,muting:M,mutingNotifications:E,requested:x,domainBlocking:N,endorsed:j,note:se}=h||{},[V,ye]=C(null),[ce,X]=C(!1);z(()=>{if(t){const Y=ne.session.get("currentAccount");let K;(async()=>{if(l&&i)K=p;else if(!l&&u){const pe=t.acct.includes("@");try{const ge=await a.v2.search.fetch({q:pe?t.acct:`${t.username}@${n}`,type:"accounts",limit:1,resolve:!0});ge.accounts.length&&(K=ge.accounts[0].id,ye(ge.accounts[0]))}catch{}}if(!K)return;if(Y===K){X(!0);return}if(T.current=K,I)return;d("loading");const ae=a.v1.accounts.relationships.fetch({id:[K]});try{const pe=await ae;if(d("default"),pe.length){const ge=pe[0];c(ge),o({relationship:ge,currentID:K})}}catch{d("error")}})()}},[t,i]),z(()=>{t&&ce&&Ss(t)},[t,ce]);const _=r==="loading",[W,te]=C(!1),[le,G]=C(!1),[oe,Q]=C(!1);return e(A,{children:[e("div",{class:"actions",children:[e("span",{children:[O?e("span",{class:"tag",children:"Follows you"}):m?e("small",{class:"insignificant",children:["Last post:"," ",e("span",{class:"ib",children:Ke(m,{hideTime:!0})})]}):e("span",{}),M&&e("span",{class:"tag danger",children:"Muted"}),U&&e("span",{class:"tag danger",children:"Blocked"})]})," ",e("span",{class:"buttons",children:[!!se&&e("button",{type:"button",class:"private-note-tag",title:"Private note",onClick:()=>{Q(!0)},dir:"auto",children:e("span",{children:se})}),e(Fe,{portal:{target:document.body},containerProps:{style:{zIndex:1001}},align:"center",position:"anchor",overflow:"auto",menuButton:e("button",{type:"button",title:"More",class:"plain",disabled:_,children:e(w,{icon:"more",size:"l",alt:"More"})}),children:[u&&!ce&&e(A,{children:[e(ie,{onClick:()=>{k.showCompose={draftStatus:{status:`@${(V==null?void 0:V.acct)||f} `}}},children:[e(w,{icon:"at"}),e("span",{children:["Mention @",g]})]}),e(ie,{onClick:()=>{te(!0)},children:[e(w,{icon:"translate"}),e("span",{children:"Translate bio"})]}),e(ie,{onClick:()=>{Q(!0)},children:[e(w,{icon:"pencil"}),e("span",{children:se?"Edit private note":"Add private note"})]}),$&&e(ie,{onClick:()=>{G(!0)},children:[e(w,{icon:"list"}),e("span",{children:"Add/remove from Lists"})]}),e(Pe,{})]}),e(ie,{href:b,target:"_blank",children:[e(w,{icon:"external"}),e("small",{class:"menu-double-lines",children:pi(b)})]}),e("div",{class:"menu-horizontal",children:[e(ie,{onClick:()=>{try{navigator.clipboard.writeText(b),me("Link copied")}catch{me("Unable to copy link")}},children:[e(w,{icon:"link"}),e("span",{children:"Copy"})]}),(navigator==null?void 0:navigator.share)&&((we=navigator==null?void 0:navigator.canShare)==null?void 0:we.call(navigator,{url:b}))&&e(ie,{onClick:()=>{try{navigator.share({url:b})}catch{alert("Sharing doesn't seem to work.")}},children:[e(w,{icon:"share"}),e("span",{children:"Share…"})]})]}),!!h&&e(A,{children:[e(Pe,{}),M?e(ie,{onClick:()=>{d("loading"),(async()=>{try{const Y=await a.v1.accounts.$select((V==null?void 0:V.id)||p).unmute();c(Y),d("default"),me(`Unmuted @${g}`),k.reloadGenericAccounts.id="mute",k.reloadGenericAccounts.counter++}catch{d("error")}})()},children:[e(w,{icon:"unmute"}),e("span",{children:["Unmute @",g]})]}):e(Es,{openTrigger:"clickOnly",direction:"bottom",overflow:"auto",shift:16,label:e(A,{children:[e(w,{icon:"mute"}),e("span",{class:"menu-grow",children:["Mute @",g,"…"]}),e("span",{style:{textOverflow:"clip"},children:[e(w,{icon:"time"}),e(w,{icon:"chevron-right"})]})]}),children:e("div",{class:"menu-wrap",children:ai.map(Y=>e(ie,{onClick:()=>{d("loading"),(async()=>{try{const K=await a.v1.accounts.$select((V==null?void 0:V.id)||p).mute({duration:Y});c(K),d("default"),me(`Muted @${g} for ${pn[Y]}`),k.reloadGenericAccounts.id="mute",k.reloadGenericAccounts.counter++}catch{d("error"),me(`Unable to mute @${g}`)}})()},children:pn[Y]}))})}),e(ze,{subMenu:!0,confirm:!U,confirmLabel:e(A,{children:[e(w,{icon:"block"}),e("span",{children:["Block @",g,"?"]})]}),menuItemClassName:"danger",onClick:()=>{d("loading"),(async()=>{try{if(U){const Y=await a.v1.accounts.$select((V==null?void 0:V.id)||p).unblock();c(Y),d("default"),me(`Unblocked @${g}`)}else{const Y=await a.v1.accounts.$select((V==null?void 0:V.id)||p).block();c(Y),d("default"),me(`Blocked @${g}`)}k.reloadGenericAccounts.id="block",k.reloadGenericAccounts.counter++}catch{d("error"),U?me(`Unable to unblock @${g}`):me(`Unable to block @${g}`)}})()},children:U?e(A,{children:[e(w,{icon:"unblock"}),e("span",{children:["Unblock @",g]})]}):e(A,{children:[e(w,{icon:"block"}),e("span",{children:["Block @",g,"…"]})]})})]})]}),!h&&r==="loading"&&e(Ie,{abrupt:!0}),!!h&&e(ze,{confirm:$||x,confirmLabel:e("span",{children:x?"Withdraw follow request?":`Unfollow @${t.acct||t.username}?`}),menuItemClassName:"danger",align:"end",disabled:_,onClick:()=>{d("loading"),(async()=>{try{let Y;$||x?Y=await a.v1.accounts.$select(T.current).unfollow():Y=await a.v1.accounts.$select(T.current).follow(),Y&&c(Y),d("default")}catch(Y){alert(Y),d("error")}})()},children:e("button",{type:"button",class:`${$||x?"light swap":""}`,"data-swap-state":$||x?"danger":"",disabled:_,children:$?e(A,{children:[e("span",{children:"Following"}),e("span",{children:"Unfollow…"})]}):x?e(A,{children:[e("span",{children:"Requested"}),e("span",{children:"Withdraw…"})]}):v?e(A,{children:[e(w,{icon:"lock"})," ",e("span",{children:"Follow"})]}):"Follow"})})]})]}),!!W&&e($e,{class:"light",onClose:()=>{te(!1)},children:e(mi,{note:y,fields:S,onClose:()=>te(!1)})}),!!le&&e($e,{class:"light",onClose:()=>{G(!1)},children:e(gi,{accountID:T.current,onClose:()=>G(!1)})}),!!oe&&e($e,{class:"light",onClose:()=>{Q(!1)},children:e(bi,{account:t,note:se,onRelationshipChange:Y=>{c(Y)},onClose:()=>Q(!1)})})]})}function fi([t,n,i]){const o=.2126*t+.7152*n+.0722*i;let a;return o>=220?a=1:o<=50?a=.1:a=o/255,a=Math.min(1,a),[t,n,i,a]}function pi(t){if(!t)return;const n=new URL(t),{host:i,pathname:o}=n,a=o.replace(/\/$/,"").replace(/^\//,"");return e(A,{children:[e("span",{class:"more-insignificant",children:[i,"/"]}),e("wbr",{}),e("span",{children:a})]})}function mi({note:t,fields:n,onClose:i}){const o=(n==null?void 0:n.map(({name:s,value:u})=>`${s} +${tn(u)}`).join(` + +`))||"",a=tn(t)+(o?` + +${o}`:"");return e("div",{class:"sheet",children:[!!i&&e("button",{type:"button",class:"sheet-close",onClick:i,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Translated Bio"})}),e("main",{children:[e("p",{style:{whiteSpace:"pre-wrap"},children:a}),e(Un,{forceTranslate:!0,text:a})]})]})}function gi({accountID:t,onClose:n}){const{masto:i}=B(),[o,a]=C("default"),[s,u]=C([]),[l,r]=C([]),[d,h]=xt(f=>f+1,0);z(()=>{a("loading"),(async()=>{try{const f=await i.v1.lists.list();f.sort((g,v)=>g.title.localeCompare(v.title));const b=await i.v1.accounts.$select(t).lists.list();u(f),r(b),a("default")}catch{a("error")}})()},[d]);const[c,p]=C(!1);return e("div",{class:"sheet",id:"list-add-remove-container",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Add/Remove from Lists"})}),e("main",{children:[s.length>0?e("ul",{class:"list-add-remove",children:s.map(f=>{const b=l.some(g=>g.id===f.id);return e("li",{children:e("button",{type:"button",class:`light ${b?"checked":""}`,disabled:o==="loading",onClick:()=>{a("loading"),(async()=>{try{b?await i.v1.lists.$select(f.id).accounts.remove({accountIds:[t]}):await i.v1.lists.$select(f.id).accounts.create({accountIds:[t]}),h()}catch{a("error"),alert(b?"Unable to remove from list.":"Unable to add to list.")}})()},children:[e(w,{icon:"check-circle"}),e("span",{children:f.title})]})})})}):o==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):o==="error"?e("p",{class:"ui-state",children:"Unable to load lists."}):e("p",{class:"ui-state",children:"No lists."}),e("button",{type:"button",class:"plain2",onClick:()=>p(!0),disabled:o!=="default",children:[e(w,{icon:"plus",size:"l"})," ",e("span",{children:"New list"})]})]}),c&&e($e,{class:"light",onClick:f=>{f.target===f.currentTarget&&p(!1)},children:e(Yt,{list:c==null?void 0:c.list,onClose:f=>{f.state==="success"&&h(),p(!1)}})})]})}function bi({account:t,note:n,onRelationshipChange:i=()=>{},onClose:o=()=>{}}){const{masto:a}=B(),[s,u]=C("default"),l=D(null);return z(()=>{let r;return l.current&&!n&&(r=setTimeout(()=>{var d,h;(h=(d=l.current).focus)==null||h.call(d)},100)),()=>{clearTimeout(r)}},[]),e("div",{class:"sheet",id:"private-note-container",children:[!!o&&e("button",{type:"button",class:"sheet-close",onClick:o,children:e(w,{icon:"x"})}),e("header",{children:e("b",{children:["Private note about @",(t==null?void 0:t.username)||(t==null?void 0:t.acct)]})}),e("main",{children:e("form",{onSubmit:r=>{r.preventDefault();const h=new FormData(r.target).get("note");(h==null?void 0:h.trim())!==(n==null?void 0:n.trim())&&(u("loading"),(async()=>{try{const c=await a.v1.accounts.$select(t==null?void 0:t.id).note.create({comment:h});u("default"),i(c),o()}catch(c){u("error"),alert((c==null?void 0:c.message)||"Unable to update private note.")}})())},children:[e("textarea",{ref:l,name:"note",disabled:s==="loading",children:n}),e("footer",{children:[e("button",{type:"button",class:"light",disabled:s==="loading",onClick:()=>{o==null||o()},children:"Cancel"}),e("span",{children:[e(Ie,{abrupt:!0,hidden:s!=="loading"}),e("button",{disabled:s==="loading",type:"submit",children:"Save & close"})]})]})]})})]})}function yi({account:t,instance:n,onClose:i}){const{masto:o,instance:a,authenticated:s}=B({instance:n}),u=typeof t=="string";return z(()=>{u||(k.accounts[`${t.id}@${a}`]=t)},[t]),Jn(i),e("div",{class:"sheet",children:[!!i&&e("button",{type:"button",class:"sheet-close outer",onClick:i,children:e(w,{icon:"x"})}),e(Qn,{instance:a,authenticated:s,account:t,fetchAccount:async()=>{if(u)try{return await o.v1.accounts.lookup({acct:t,skip_webfinger:!1})}catch{const r=await o.v2.search.fetch({q:t,type:"accounts",limit:1,resolve:s});if(r.accounts.length)return r.accounts[0];if(/https?:\/\/[^/]+\/@/.test(t)){const h=new URL(t).pathname.replace(/^\//,""),c=await o.v2.search.fetch({q:h,type:"accounts",limit:1,resolve:s});if(c.accounts.length)return c.accounts[0]}}else return t}})]})}function wi({onClose:t}){const{masto:n}=B(),[i,o]=C("default"),[a,s]=C([]),[u,l]=xt(d=>d+1,0);z(()=>{o("loading"),(async()=>{try{const d=await ht.drafts.keys();if(d.length){const h=Fn(),c=d.filter(p=>p.startsWith(h));if(c.length){const p=await ht.drafts.getMany(c);p.sort((f,b)=>new Date(b.updatedAt).getTime()-new Date(f.updatedAt).getTime()),s(p)}else s([])}else s([]);o("default")}catch{o("error")}})()},[u]);const r=(a==null?void 0:a.length)>0;return e("div",{class:"sheet",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{children:[e("h2",{children:["Unsent drafts ",e(Ie,{abrupt:!0,hidden:i!=="loading"})]}),r&&e("div",{class:"insignificant",children:"Looks like you have unsent drafts. Let's continue where you left off."})]}),e("main",{children:r?e(A,{children:[e("ul",{class:"drafts-list",children:a.map(d=>{const{updatedAt:h,key:c,draftStatus:p,replyTo:f}=d,b=new Date(h);return e("li",{children:[e("div",{class:"mini-draft-meta",children:[e("b",{children:[e(w,{icon:f?"reply":"quill",size:"s"})," ",e("time",{children:[!!f&&e(A,{children:["@",f.account.acct,e("br",{})]}),Ke(b)]})]}),e(ze,{confirmLabel:e("span",{children:"Delete this draft?"}),menuItemClassName:"danger",align:"end",disabled:i==="loading",onClick:()=>{(async()=>{try{await ht.drafts.del(c),l()}catch{alert("Error deleting draft! Please try again.")}})()},children:e("button",{type:"button",class:"small light",disabled:i==="loading",children:"Delete…"})})]}),e("button",{type:"button",disabled:i==="loading",class:"draft-item",onClick:async()=>{let g;if(f){o("loading");try{g=await n.v1.statuses.$select(f.id).fetch()}catch{alert("Error fetching reply-to status!"),o("default");return}o("default")}window.__COMPOSE__={draftStatus:p,replyToStatus:g},k.showCompose=!0,k.showDrafts=!1},children:e(vi,{draft:d})})]},h)})}),a.length>1&&e("p",{children:e(ze,{confirmLabel:e("span",{children:"Delete all drafts?"}),menuItemClassName:"danger",disabled:i==="loading",onClick:()=>{(async()=>{o("loading");try{await ht.drafts.delMany(a.map(d=>d.key)),o("default"),l()}catch{alert("Error deleting drafts! Please try again."),o("error")}})()},children:e("button",{type:"button",class:"light danger",disabled:i==="loading",children:"Delete all…"})})})]}):e("p",{children:"No drafts found."})})]})}function vi({draft:t}){var c;const{draftStatus:n,replyTo:i}=t,{status:o,spoilerText:a,poll:s,mediaAttachments:u}=n,l=((c=s==null?void 0:s.options)==null?void 0:c.length)>0,r=(u==null?void 0:u.length)>0,d=l||r,h=he(()=>{if(!r)return;const p=u.find(g=>/image/.test(g.type));if(!p)return;const{file:f}=p;return URL.createObjectURL(f)},[r,u]);return e(A,{children:e("div",{class:"mini-draft",children:[d&&e("div",{class:`mini-draft-aside ${h?"has-image":""}`,style:h?{"--bg-image":`url(${h})`}:{},children:[l&&e(w,{icon:"poll"}),r&&e("span",{children:[e(w,{icon:"attachment"})," ",e("small",{children:u==null?void 0:u.length})]})]}),e("div",{class:"mini-draft-main",children:[!!a&&e("div",{class:"mini-draft-spoiler",children:a}),!!o&&e("div",{class:"mini-draft-status",children:o})]})]})})}async function Wt(t,n={}){if(!(t!=null&&t.length))return;const{masto:i}=B(),o=ne.session.get("currentAccount"),a=t.reduce((s,u)=>(!s.includes(u.id)&&!n[u.id]&&u.id!==o&&s.push(u.id),s),[]);if(!a.length)return null;try{return(await i.v1.accounts.relationships.fetch({id:a})).reduce((l,r)=>(l[r.id]=r,l),{})}catch{return null}}function Si({instance:t,excludeRelationshipAttrs:n=[],onClose:i=()=>{}}){const{masto:o,instance:a}=B(),s=t?t===a:!0,u=ke(k),[l,r]=C("default"),[d,h]=C([]),[c,p]=C(!1);if(Jn(i),!u.showGenericAccounts)return null;const{id:f,heading:b,fetchAccounts:g,accounts:v,showReactions:m}=u.showGenericAccounts,[y,S]=C({}),I=async L=>{if(!(L!=null&&L.length)||!s)return;const F=await Wt(L,y);F&&S({...y,...F})},T=L=>{g&&(L&&h([]),r("loading"),(async()=>{try{const{done:F,value:O}=await g(L);if(Array.isArray(O)){if(L){const U=[];for(let P=0;Px.id===M.id&&P!==N);E?E._types.push(...M._types):U.push({_types:[],...M})}h(U)}else h(U=>{const P=U;for(const M of O){const E=P.find(x=>x.id===M.id);E?E._types.push(...M._types):P.push(M)}return P});p(!F),I(O)}else p(!1);r("default")}catch{r("error")}})())},$=D(!0);return z(()=>{(v==null?void 0:v.length)>0?(h(v),I(v)):(T(!0),$.current=!1)},[v,g]),z(()=>{var L;$.current||((L=u.reloadGenericAccounts)==null?void 0:L.id)===f&&T(!0)},[u.reloadGenericAccounts.counter]),e("div",{id:"generic-accounts-container",class:"sheet",tabindex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:i,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:b||"Accounts"})}),e("main",{children:d.length>0?e(A,{children:[e("ul",{class:"accounts-list",children:d.map(L=>{var U,P;const F=y[L.id],O=`${L.id}-${((U=L._types)==null?void 0:U.length)||""}`;return e("li",{children:[m&&((P=L._types)==null?void 0:P.length)>0&&e("div",{class:"reactions-block",children:L._types.map(M=>e(w,{icon:{reblog:"rocket",favourite:"heart"}[M],class:`${M}-icon`}))}),e("div",{class:"account-relationships",children:e(qe,{account:L,showStats:!0,relationship:F,excludeRelationshipAttrs:n})})]},O)})}),l==="default"?c?e(lt,{onChange:L=>{L&&T()},children:e("button",{type:"button",class:"plain block",onClick:()=>T(),children:"Show more…"})}):e("p",{class:"ui-state insignificant",children:"The end."}):l==="loading"&&e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})})]}):l==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):l==="error"?e("p",{class:"ui-state",children:"Error loading accounts"}):e("p",{class:"ui-state insignificant",children:"Nothing to show"})})]})}function ki({alt:t,lang:n,onClose:i}){const o=ke(k),[a,s]=C(!1),u=Pn(!0),l=o.settings.contentTranslationHideLanguages||[],r=!!n&&n!==u&&!nn([n],[u])&&!l.find(d=>n===d||nn([n],[d]));return e("div",{class:"sheet",tabindex:"-1",children:[!!i&&e("button",{type:"button",class:"sheet-close outer",onClick:i,children:e(w,{icon:"x"})}),e("header",{class:"header-grid",children:[e("h2",{children:"Media description"}),e("div",{class:"header-side",children:e(Fe,{align:"end",menuButton:e("button",{type:"button",class:"plain4",children:e(w,{icon:"more",alt:"More",size:"xl"})}),children:[e(ie,{disabled:a,onClick:()=>{s(!0)},children:[e(w,{icon:"translate"}),e("span",{children:"Translate"})]}),ks&&e(ie,{onClick:()=>{Is(t,n)},children:[e(w,{icon:"speak"}),e("span",{children:"Speak"})]})]})})]}),e("main",{lang:n,dir:"auto",children:[e("p",{style:{whiteSpace:"pre-wrap",textWrap:"pretty"},children:t}),(r||a)&&e(Un,{forceTranslate:a,sourceLanguage:n,text:t})]})]})}function Lt(t,n,i){return Math.max(Math.min(t,i),n)}const Mt=t=>t>=.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,Rt=t=>t>=.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t;function es([t,n,i]){t=Mt(t/255),n=Mt(n/255),i=Mt(i/255);var o=.4122214708*t+.5363325363*n+.0514459929*i,a=.2119034982*t+.6806995451*n+.1073969566*i,s=.0883024619*t+.2817188376*n+.6299787005*i;return o=Math.cbrt(o),a=Math.cbrt(a),s=Math.cbrt(s),[o*.2104542553+a*.793617785+s*-.0040720468,o*1.9779984951+a*-2.428592205+s*.4505937099,o*.0259040371+a*.7827717662+s*-.808675766]}function ts([t,n,r]){var o=t+n*.3963377774+r*.2158037573,a=t+n*-.1055613458+r*-.0638541728,s=t+n*-.0894841775+r*-1.291485548;o=o**3,a=a**3,s=s**3;var u=o*4.0767416621+a*-3.3077115913+s*.2309699292,l=o*-1.2684380046+a*2.6097574011+s*-.3413193965,r=o*-.0041960863+a*-.7034186147+s*1.707614701;return u=255*Rt(u),l=255*Rt(l),r=255*Rt(r),u=Lt(u,0,255),l=Lt(l,0,255),r=Lt(r,0,255),u=Math.round(u),l=Math.round(l),r=Math.round(r),[u,l,r]}var Ii={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_IMG_ALT_API_URL:Sa}=Ii;function ns({mediaAttachments:t,statusID:n,instance:i,lang:o,index:a=0,onClose:s=()=>{}}){var y,S;const[u,l]=C("default"),r=D(null),[d,h]=C(a),c=D(null);Ge(()=>{var I;(I=c.current)==null||I.scrollIntoView()},[]);const p=D(n);z(()=>{const I=a*r.current.clientWidth,T=p.current!==n;T&&(p.current=n),r.current.scrollTo({left:I,behavior:T?"auto":"smooth"}),r.current.focus()},[a,n]);const[f,b]=C(!0);z(()=>{let I=()=>{s()};return r.current&&r.current.addEventListener("swiped-down",I),()=>{r.current&&r.current.removeEventListener("swiped-down",I)}},[]),Me("esc",s,{ignoreEventWhen:I=>!!document.querySelector("#modal-container > *")},[s]),z(()=>{let I=()=>{const{clientWidth:T,scrollLeft:$}=r.current,L=Math.round($/T);h(L)};return r.current&&r.current.addEventListener("scroll",I,{passive:!0}),()=>{r.current&&r.current.removeEventListener("scroll",I)}},[]),z(()=>{let I=setTimeout(()=>{var T,$;($=(T=r.current)==null?void 0:T.focus)==null||$.call(T)},100);return()=>clearTimeout(I)},[]);const g=he(()=>t==null?void 0:t.map(I=>{const{blurhash:T}=I;if(T){const $=qn(T),L=es($);return ts([.6,L[1],L[2]])}return null}),[t]),v=he(()=>{var $;const T=100/g.length;return(($=g==null?void 0:g.map((L,F)=>{const O=F*T+5,U=(F+1)*T-5;return L?` + rgba(${L==null?void 0:L.join(",")}, 0.4) ${O}%, + rgba(${L==null?void 0:L.join(",")}, 0.4) ${U}% + `:` + transparent ${O}%, + transparent ${U}% + `}))==null?void 0:$.join(", "))||"transparent"},[g]);let m=D(null);return z(()=>()=>{var I,T;(T=(I=m.current)==null?void 0:I.hideToast)==null||T.call(I)},[]),e("div",{class:`media-modal-container media-modal-count-${t==null?void 0:t.length}`,children:[e("div",{ref:r,tabIndex:"0","data-swipe-threshold":"44",class:"carousel",onClick:I=>{(I.target.classList.contains("carousel-item")||I.target.classList.contains("media")||I.target.classList.contains("media-zoom"))&&s()},style:t.length>1?{backgroundAttachment:"local",backgroundImage:`linear-gradient( + to right, ${v})`}:{},children:t==null?void 0:t.map((I,T)=>{const $=t.length===1?g[T]:null;return e("div",{class:"carousel-item",style:$?{"--accent-color":`rgb(${$==null?void 0:$.join(",")})`,"--accent-alpha-color":`rgba(${$==null?void 0:$.join(",")}, 0.4)`}:{},tabindex:"0",ref:T===d?c:null,onClick:L=>{L.target.classList.contains("media")||b(!f)},children:[!!I.description&&e("button",{type:"button",class:"media-alt",hidden:!f,onClick:()=>{k.showMediaAlt={alt:I.description,lang:o}},children:[e("span",{class:"alt-badge",children:"ALT"}),e("span",{class:"media-alt-desc",lang:o,dir:"auto",children:I.description})]}),e(On,{media:I,showOriginal:!0,lang:o})]},I.id)})}),e("div",{class:"carousel-top-controls",hidden:!f,children:[e("span",{children:e("button",{type:"button",class:"carousel-button",onClick:()=>s(),children:e(w,{icon:"x"})})}),(t==null?void 0:t.length)>1?e("span",{class:"carousel-dots",children:t==null?void 0:t.map((I,T)=>e("button",{type:"button",disabled:T===d,class:`carousel-dot ${T===d?"active":""}`,onClick:$=>{$.preventDefault(),$.stopPropagation(),r.current.scrollTo({left:r.current.clientWidth*T,behavior:"smooth"}),r.current.focus()},children:e(w,{icon:"round",size:"s"})},I.id))}):e("span",{}),e("span",{children:[e(Fe,{overflow:"auto",align:"end",position:"anchor",gap:4,menuClassName:"glass-menu",menuButton:e("button",{type:"button",class:"carousel-button",children:e(w,{icon:"more",alt:"More"})}),children:[e(_e,{href:((y=t[d])==null?void 0:y.remoteUrl)||((S=t[d])==null?void 0:S.url),class:"carousel-button",target:"_blank",title:"Open original media in new window",children:[e(w,{icon:"popout"}),e("span",{children:"Open original media"})]}),!1]})," ",e(ee,{to:`${i?`/${i}`:""}/s/${n}${window.matchMedia("(min-width: calc(40em + 350px))").matches?`?media=${d+1}`:""}`,class:"button carousel-button media-post-link",children:[e("span",{class:"button-label",children:"View post "}),"»"]})]})]}),(t==null?void 0:t.length)>1&&e("div",{class:"carousel-controls",hidden:!f,children:[e("button",{type:"button",class:"carousel-button",hidden:d===0,onClick:I=>{I.preventDefault(),I.stopPropagation(),r.current.focus(),r.current.scrollTo({left:r.current.clientWidth*(d-1),behavior:"smooth"})},children:e(w,{icon:"arrow-left"})}),e("button",{type:"button",class:"carousel-button",hidden:d===t.length-1,onClick:I=>{I.preventDefault(),I.stopPropagation(),r.current.focus(),r.current.scrollTo({left:r.current.clientWidth*(d+1),behavior:"smooth"})},children:e(w,{icon:"arrow-right"})})]})]})}const Ti="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%234169E1'%20d='M14%2052a4%204%200%201%201-8%200%204%204%200%200%201%208%200Zm64-42a4%204%200%201%201-8%200%204%204%200%200%201%208%200Z'/%3e%3c/svg%3e",Ci="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2082%2062'%3e%3crect%20width='78'%20height='58'%20x='2'%20y='2'%20fill='%23999'%20fill-opacity='.3'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='18'%20height='46'%20x='8'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='32'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='56'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3c/svg%3e",$i="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M19%203h62v10H19z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M43%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M52%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M3%2049h30v10H3z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M11%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M20%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3c/svg%3e",xi=200,Ai=10;async function Tt(){const{masto:t}=B(),n=t.v1.followedTags.list({limit:xi}),i=[];let o=0;do{const{value:a,done:s}=await n.next();if(s||(a==null?void 0:a.length)===0)break;i.push(...a),o++}while(oa.name.localeCompare(s.name)),i.length&&setTimeout(()=>{ne.account.set("followedTags",{tags:i,updatedAt:Date.now()})},1),i}const Li=24*60*60*1e3;async function Mi(){try{const{tags:t,updatedAt:n}=ne.account.get("followedTags")||{};return t!=null&&t.length?(Date.now()-n>Li&&Tt(),t):await Tt()}catch{return[]}}const gn=document.createElement("div"),Ri=t=>{if(!t)return[];if(t.indexOf("#")===-1)return[];gn.innerHTML=t;const n=gn.querySelectorAll("a.hashtag");return n.length?Array.from(n).map(i=>i.innerText.trim().replace(/^[^#]*#+/,"")):[]};function Ut({children:t}){if(typeof t=="string")return t;const[n,i]=C("");return z(()=>{Promise.resolve(t).then(i)},[t]),n}const Ze=9,_i=["following","mentions","notifications","list","public","trending","search","hashtag","bookmarks","favourites"],ss={following:"Home / Following",notifications:"Notifications",list:"List",public:"Public (Local / Federated)",search:"Search","account-statuses":"Account",bookmarks:"Bookmarks",favourites:"Likes",hashtag:"Hashtag",trending:"Trending",mentions:"Mentions"},vt={list:[{text:"List ID",name:"id"}],public:[{text:"Local only",name:"local",type:"checkbox"},{text:"Instance",name:"instance",type:"text",placeholder:"Optional, e.g. mastodon.social",notRequired:!0}],trending:[{text:"Instance",name:"instance",type:"text",placeholder:"Optional, e.g. mastodon.social",notRequired:!0}],search:[{text:"Search term",name:"query",type:"text",placeholder:"Optional, unless for multi-column mode",notRequired:!0}],"account-statuses":[{text:"@",name:"id",type:"text",placeholder:"cheeaun@mastodon.social"}],hashtag:[{text:"#",name:"hashtag",type:"text",placeholder:"e.g. PixelArt (Max 5, space-separated)",pattern:"[^#]+"},{text:"Media only",name:"media",type:"checkbox"},{text:"Instance",name:"instance",type:"text",placeholder:"Optional, e.g. mastodon.social",notRequired:!0}]},Ei=et(async({id:t})=>(await B().masto.v1.lists.$select(t).fetch()).title),Pi=et(async({id:t})=>{const n=await B().masto.v1.accounts.$select(t).fetch();return n.username||n.acct||n.displayName}),Ct={following:{id:"home",title:(t,n)=>n===0?"Home":"Following",path:"/",icon:"home"},mentions:{id:"mentions",title:"Mentions",path:"/mentions",icon:"at"},notifications:{id:"notifications",title:"Notifications",path:"/notifications",icon:"notification"},list:{id:"list",title:Ei,path:({id:t})=>`/l/${t}`,icon:"list"},public:{id:"public",title:({local:t})=>t?"Local":"Federated",subtitle:({instance:t})=>t||B().instance,path:({local:t,instance:n})=>`/${n}/p${t?"/l":""}`,icon:({local:t})=>t?"building":"earth"},trending:{id:"trending",title:"Trending",subtitle:({instance:t})=>t||B().instance,path:({instance:t})=>`/${t}/trending`,icon:"chart"},search:{id:"search",title:({query:t})=>t?`"${t}"`:"Search",path:({query:t})=>t?`/search?q=${t}&type=statuses`:"/search",icon:"search",excludeViewMode:({query:t})=>t?[]:["multi-column"]},"account-statuses":{id:"account-statuses",title:Pi,path:({id:t})=>`/a/${t}`,icon:"user"},bookmarks:{id:"bookmarks",title:"Bookmarks",path:"/b",icon:"bookmark"},favourites:{id:"favourites",title:"Likes",path:"/f",icon:"heart"},hashtag:{id:"hashtag",title:({hashtag:t})=>t,subtitle:({instance:t})=>t||B().instance,path:({hashtag:t,instance:n,media:i})=>`${n?`/${n}`:""}/t/${t.split(/\s+/).join("+")}${i?"?media=1":""}`,icon:"hashtag"}};function Ni({onClose:t}){const n=ke(k),{shortcuts:i}=n,[o,a]=C(!1),[s,u]=C(!1),[l]=qt();return e("div",{id:"shortcuts-settings-container",class:"sheet",tabindex:"-1",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:[e(w,{icon:"shortcut"})," Shortcuts"," ",e("sup",{style:{fontSize:12,opacity:.5,textTransform:"uppercase"},children:"beta"})]})}),e("main",{children:[e("p",{children:"Specify a list of shortcuts that'll appear as:"}),e("div",{class:"shortcuts-view-mode",children:[{value:"float-button",label:"Floating button",imgURL:Ti},{value:"tab-menu-bar",label:"Tab/Menu bar",imgURL:$i},{value:"multi-column",label:"Multi-column",imgURL:Ci}].map(({value:r,label:d,imgURL:h})=>{const c=n.settings.shortcutsViewMode===r||r==="float-button"&&!n.settings.shortcutsViewMode;return e("label",{class:c?"checked":"",children:[e("input",{type:"radio",name:"shortcuts-view-mode",value:r,checked:c,onChange:p=>{k.settings.shortcutsViewMode=p.target.value}})," ",e("img",{src:h,alt:"",width:"80",height:"58"})," ",e("span",{children:d})]},r)})}),i.length>0?e("ol",{class:"shortcuts-list",ref:l,children:i.filter(Boolean).map((r,d)=>{const h=Object.values(r).join("-"),{type:c}=r;if(!Ct[c])return null;let{icon:p,title:f,subtitle:b,excludeViewMode:g}=Ct[c];typeof f=="function"&&(f=f(r,d)),typeof b=="function"&&(b=b(r,d)),typeof p=="function"&&(p=p(r,d)),typeof g=="function"&&(g=g(r,d));const v=g==null?void 0:g.includes(n.settings.shortcutsViewMode);return e("li",{children:[e(w,{icon:p}),e("span",{class:"shortcut-text",children:[e(Ut,{children:f}),b&&e(A,{children:[" ",e("small",{class:"ib insignificant",children:b})]}),v&&e("span",{class:"tag",children:"Not available in current view mode"})]}),e("span",{class:"shortcut-actions",children:[e("button",{type:"button",class:"plain small",disabled:d===0,onClick:()=>{const m=Array.from(k.shortcuts);if(d>0){const y=k.shortcuts[d-1];m[d-1]=r,m[d]=y,k.shortcuts=m}},children:e(w,{icon:"arrow-up",alt:"Move up"})}),e("button",{type:"button",class:"plain small",disabled:d===i.length-1,onClick:()=>{const m=Array.from(k.shortcuts);if(d{a({shortcut:r,shortcutIndex:d})},children:e(w,{icon:"pencil",alt:"Edit"})})]})]},h)})}):e("div",{class:"ui-state insignificant",children:[e("p",{children:"No shortcuts yet. Tap on the Add shortcut button."}),e("p",{children:["Not sure what to add?",e("br",{}),"Try adding"," ",e("a",{href:"#",onClick:r=>{r.preventDefault(),k.shortcuts=[{type:"following"},{type:"notifications"}]},children:"Home / Following and Notifications"})," ","first."]})]}),e("p",{class:"insignificant",children:i.length>=Ze&&`Max ${Ze} shortcuts`}),e("p",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("button",{type:"button",class:"light",onClick:()=>u(!0),children:"Import/export"}),e("button",{type:"button",disabled:i.length>=Ze,onClick:()=>a(!0),children:[e(w,{icon:"plus"})," ",e("span",{children:"Add shortcut"})]})]})]}),o&&e($e,{class:"light",onClick:r=>{r.target===r.currentTarget&&a(!1)},children:e(Fi,{shortcut:o.shortcut,shortcutIndex:o.shortcutIndex,onSubmit:({result:r,mode:d})=>{d==="edit"?k.shortcuts[o.shortcutIndex]=r:k.shortcuts.push(r)},onClose:()=>a(!1)})}),s&&e($e,{class:"light",onClick:r=>{r.target===r.currentTarget&&u(!1)},children:e(Oi,{shortcuts:i,onClose:()=>u(!1)})})]})}const Di=1e3*60,Ui=et(()=>{const{masto:t}=B();return t.v1.lists.list()},{maxAge:Di}),bn={search:"For multi-column mode, search term is required, else the column will not be shown.",hashtag:"Multiple hashtags are supported. Space-separated."};function Fi({onSubmit:t,disabled:n,shortcut:i,shortcutIndex:o,onClose:a}){var v,m;const s=!!i,[u,l]=C((i==null?void 0:i.type)||null),{masto:r}=B(),[d,h]=C("default"),[c,p]=C([]),[f,b]=C([]);z(()=>{(async()=>{if(u==="list")try{h("loading");const y=await Ui();y.sort((S,I)=>S.title.localeCompare(I.title)),p(y),h("default")}catch{h("error")}})(),(async()=>{if(u==="hashtag")try{const y=await Tt();b(y)}catch{}})()},[u]);const g=D();return z(()=>{if(s&&u&&vt[u]){const y=g.current;vt[u].forEach(({name:S,type:I})=>{const T=y.querySelector(`[name="${S}"]`);T&&i[S]&&(I==="checkbox"?T.checked=i[S]==="on":T.value=i[S])})}},[s,u]),e("div",{id:"shortcut-settings-form",class:"sheet",children:[!!a&&e("button",{type:"button",class:"sheet-close",onClick:a,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:[s?"Edit":"Add"," shortcut"]})}),e("main",{tabindex:"-1",children:e("form",{ref:g,onSubmit:y=>{y.preventDefault();const S=new FormData(y.target),I={};S.forEach((T,$)=>{I[$]=T==null?void 0:T.trim(),$==="instance"&&(I[$]=I[$].replace(/^https?:\/\//,"").replace(/\/+$/,""),I[$]=I[$].replace(/^@?[^@]+@/,""))}),I.type&&(t({result:I,mode:s?"edit":"add"}),y.target.reset(),l(null),a==null||a())},children:[e("p",{children:e("label",{children:[e("span",{children:"Timeline"}),e("select",{required:!0,disabled:n,onChange:y=>{l(y.target.value)},defaultValue:s?i.type:void 0,name:"type",children:[e("option",{}),_i.map(y=>e("option",{value:y,children:ss[y]}))]})]})}),(m=(v=vt[u])==null?void 0:v.map)==null?void 0:m.call(v,({text:y,name:S,type:I,placeholder:T,pattern:$,notRequired:L})=>u==="list"?e("p",{children:e("label",{children:[e("span",{children:"List"}),e("select",{name:"id",required:!L,disabled:n||d==="loading",defaultValue:s?i.id:void 0,children:c.map(F=>e("option",{value:F.id,children:F.title}))})]})}):e("p",{children:e("label",{children:[e("span",{children:y})," ",e("input",{type:I,switch:I==="checkbox"||void 0,name:S,placeholder:T,required:I==="text"&&!L,disabled:n,list:u==="hashtag"?"followed-hashtags-datalist":null,autocorrect:"off",autocapitalize:"off",spellcheck:!1,pattern:$}),u==="hashtag"&&f.length>0&&e("datalist",{id:"followed-hashtags-datalist",children:f.map(F=>e("option",{value:F.name}))})]})})),!!bn[u]&&e("p",{class:"form-note insignificant",children:[e(w,{icon:"info"}),bn[u]]}),e("footer",{children:[e("button",{type:"submit",class:"block",disabled:n||d==="loading",children:s?"Save":"Add"}),s&&e("button",{type:"button",class:"light danger",onClick:()=>{k.shortcuts.splice(o,1),a==null||a()},children:"Remove"})]})]})})]})}function Oi({shortcuts:t,onClose:n}){var d;const i=he(()=>!t||!t.filter(Boolean).length?"":cn.compressToEncodedURIComponent(JSON.stringify(t.filter(Boolean))),[t]),[o,a]=C(""),[s,u]=C("default"),l=he(()=>{if(!o)return u("default"),null;try{const h=JSON.parse(cn.decompressFromEncodedURIComponent(o));if(!Array.isArray(h))throw new Error("Not an array");return u("default"),h}catch{try{const c=JSON.parse(o);if(!Array.isArray(c))throw new Error("Not an array");return u("default"),c}catch{return u("error"),null}}},[o]),r=k.shortcuts.length>0;return e("div",{id:"import-export-container",class:"sheet",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:["Import/Export ",e("small",{class:"ib insignificant",children:"Shortcuts"})]})}),e("main",{tabindex:"-1",children:[e("section",{children:[e("h3",{children:[e(w,{icon:"arrow-down-circle",size:"l",class:"insignificant"})," ",e("span",{children:"Import"})]}),e("p",{children:e("input",{type:"text",name:"import",placeholder:"Paste shortcuts here",class:"block",onInput:h=>{a(h.target.value)}})}),!!l&&Array.isArray(l)&&e(A,{children:[e("p",{children:[e("b",{children:l.length})," shortcut",l.length>1?"s":""," ",e("small",{class:"insignificant",children:["(",o.length," characters)"]})]}),e("ol",{class:"import-settings-list",children:l.map(h=>{var c,p;return e("li",{children:[e("span",{style:{opacity:t.some(f=>Object.keys(f).every(b=>f[b]===h[b]))?1:0},children:"*"}),e("span",{children:[ss[h.type],h.type==="list"&&" ⚠️"," ",(p=(c=vt[h.type])==null?void 0:c.map)==null?void 0:p.call(c,({text:f,name:b,type:g})=>h[b]?e(A,{children:[e("span",{class:"tag collapsed insignificant",children:[f,":"," ",g==="checkbox"?h[b]==="on"?"✅":"❌":h[b]]})," "]}):null)]})]})})}),e("p",{children:[e("small",{children:"* Exists in current shortcuts"}),e("br",{}),e("small",{children:"⚠️ List may not work if it's from a different account."})]})]}),s==="error"&&e("p",{class:"error",children:e("small",{children:"⚠️ Invalid settings format"})}),e("p",{children:[r&&e(A,{children:[e(ze,{confirmLabel:"Append to current shortcuts?",menuFooter:e("div",{class:"footer",children:"Only shortcuts that don’t exist in current shortcuts will be appended."}),onClick:()=>{const h=l.filter(f=>!k.shortcuts.some(b=>Object.keys(b).every(g=>b[g]===f[g])));if(!h.length){me("No new shortcuts to import");return}let c=[...k.shortcuts,...h];const p=c.length>Ze;p&&(c=c.slice(0,Ze)),k.shortcuts=c,me(p?`Shortcuts imported. Exceeded max ${Ze}, so the rest are not imported.`:"Shortcuts imported"),n==null||n()},children:e("button",{type:"button",class:"plain2",disabled:!l,children:"Import & append…"})})," "]}),e(ze,{confirmLabel:r?"Override current shortcuts?":"Import shortcuts?",menuItemClassName:r?"danger":void 0,onClick:()=>{k.shortcuts=l,me("Shortcuts imported"),n==null||n()},children:e("button",{type:"button",class:"plain2",disabled:!l,children:r?"or override…":"Import…"})})]})]}),e("section",{children:[e("h3",{children:[e(w,{icon:"arrow-up-circle",size:"l",class:"insignificant"})," ",e("span",{children:"Export"})]}),e("p",{children:e("input",{style:{width:"100%"},type:"text",value:i,readOnly:!0,onClick:h=>{if(h.target.value){h.target.select();try{navigator.clipboard.writeText(h.target.value),me("Shortcuts copied")}catch{me("Unable to copy shortcuts")}}}})}),e("p",{children:[e("button",{type:"button",class:"plain2",disabled:!i,onClick:()=>{try{navigator.clipboard.writeText(i),me("Shortcut settings copied")}catch{me("Unable to copy shortcut settings")}},children:[e(w,{icon:"clipboard"})," ",e("span",{children:"Copy"})]})," ",(navigator==null?void 0:navigator.share)&&((d=navigator==null?void 0:navigator.canShare)==null?void 0:d.call(navigator,{text:i}))&&e("button",{type:"button",class:"plain2",disabled:!i,onClick:()=>{try{navigator.share({text:i})}catch{alert("Sharing doesn't seem to work.")}},children:[e(w,{icon:"share"})," ",e("span",{children:"Share"})]})," ",i.length>0&&e("small",{class:"insignificant",children:[i.length," characters"]})]}),!!i&&e("details",{children:[e("summary",{class:"insignificant",children:e("small",{children:"Raw Shortcuts JSON"})}),e("textarea",{style:{width:"100%"},rows:10,readOnly:!0,children:JSON.stringify(t.filter(Boolean),null,2)})]})]})]})]})}Vn(k,t=>{for(const[n,i,o,a]of t)/^show/i.test(i)&&!o&&Dt()});function zi(){var o,a,s,u,l,r,d,h;const t=ke(k),n=Gn(),i=rt();return e(A,{children:[!!t.showCompose&&e($e,{children:e(Ts,{replyToStatus:typeof t.showCompose!="boolean"?t.showCompose.replyToStatus:((o=window.__COMPOSE__)==null?void 0:o.replyToStatus)||null,editStatus:((a=k.showCompose)==null?void 0:a.editStatus)||((s=window.__COMPOSE__)==null?void 0:s.editStatus)||null,draftStatus:((u=k.showCompose)==null?void 0:u.draftStatus)||((l=window.__COMPOSE__)==null?void 0:l.draftStatus)||null,onClose:c=>{const{newStatus:p,instance:f,type:b}=c||{};k.showCompose=!1,window.__COMPOSE__=null,p&&(k.reloadStatusPage++,me({text:{post:"Post published. Check it out.",reply:"Reply posted. Check it out.",edit:"Post updated. Check it out."}[b||"post"],delay:1e3,duration:1e4,onClick:g=>{g.hideToast(),k.prevLocation=i,n(f?`/${f}/s/${p.id}`:`/s/${p.id}`)}}))}})}),!!t.showSettings&&e($e,{onClose:()=>{k.showSettings=!1},children:e(ii,{onClose:()=>{k.showSettings=!1}})}),!!t.showAccounts&&e($e,{onClose:()=>{k.showAccounts=!1},children:e(Ks,{onClose:()=>{k.showAccounts=!1}})}),!!t.showAccount&&e($e,{class:"light",onClose:()=>{k.showAccount=!1},children:e(yi,{account:((r=t.showAccount)==null?void 0:r.account)||t.showAccount,instance:(d=t.showAccount)==null?void 0:d.instance,onClose:({destination:c}={})=>{k.showAccount=!1}})}),!!t.showDrafts&&e($e,{onClose:()=>{k.showDrafts=!1},children:e(wi,{onClose:()=>k.showDrafts=!1})}),!!t.showMediaModal&&e($e,{onClick:c=>{(c.target===c.currentTarget||c.target.classList.contains("media"))&&(k.showMediaModal=!1)},children:e(ns,{mediaAttachments:t.showMediaModal.mediaAttachments,instance:t.showMediaModal.instance,index:t.showMediaModal.index,statusID:t.showMediaModal.statusID,onClose:()=>{k.showMediaModal=!1}})}),!!t.showShortcutsSettings&&e($e,{class:"light",onClose:()=>{k.showShortcutsSettings=!1},children:e(Ni,{onClose:()=>k.showShortcutsSettings=!1})}),!!t.showGenericAccounts&&e($e,{class:"light",onClose:()=>{k.showGenericAccounts=!1},children:e(Si,{instance:t.showGenericAccounts.instance,excludeRelationshipAttrs:t.showGenericAccounts.excludeRelationshipAttrs,onClose:()=>k.showGenericAccounts=!1})}),!!t.showMediaAlt&&e($e,{class:"light",onClose:c=>{k.showMediaAlt=!1},children:e(ki,{alt:t.showMediaAlt.alt||t.showMediaAlt,lang:(h=t.showMediaAlt)==null?void 0:h.lang,onClose:()=>{k.showMediaAlt=!1}})})]})}function Ft({accountID:t,onChange:n}){const{masto:i}=B(),[o,a]=C("default"),[s,u]=C(null),[l,r]=C(null),d=l!==null;return e("p",{class:"follow-request-buttons",children:[e("button",{type:"button",disabled:o==="loading"||d,onClick:()=>{a("loading"),u("accept"),(async()=>{try{const h=await i.v1.followRequests.$select(t).authorize();if(!(h!=null&&h.followedBy))throw new Error("Follow request not accepted");r(h),n()}catch{}a("default")})()},children:"Accept"})," ",e("button",{type:"button",disabled:o==="loading"||d,class:"light danger",onClick:()=>{a("loading"),u("reject"),(async()=>{try{const h=await i.v1.followRequests.$select(t).reject();if(h!=null&&h.followedBy)throw new Error("Follow request not rejected");r(h),n()}catch{a("default")}})()},children:"Reject"}),e("span",{class:"follow-request-states",children:d&&s?s==="accept"?e(w,{icon:"check-circle",alt:"Accepted",class:"follow-accepted"}):e(w,{icon:"x-circle",alt:"Rejected",class:"follow-rejected"}):e(Ie,{hidden:o!=="loading"})})]})}const yn={mention:"comment",status:"notification",reblog:"rocket",follow:"follow",follow_request:"follow-add",favourite:"heart",poll:"poll",update:"pencil","admin.signup":"account-edit","admin.report":"account-warning"},st={mention:"mentioned you in their post.",status:"published a post.",reblog:"boosted your post.","reblog+account":t=>`boosted ${t} of your posts.`,reblog_reply:"boosted your reply.",follow:"followed you.",follow_request:"requested to follow you.",favourite:"liked your post.","favourite+account":t=>`liked ${t} of your posts.`,favourite_reply:"liked your reply.",poll:"A poll you have voted in or created has ended.","poll-self":"A poll you have created has ended.","poll-voted":"A poll you have voted in has ended.",update:"A post you interacted with has been edited.","favourite+reblog":"boosted & liked your post.","favourite+reblog+account":t=>`boosted & liked ${t} of your posts.`,"favourite+reblog_reply":"boosted & liked your reply.","admin.sign_up":"signed up.","admin.report":t=>e(A,{children:["reported ",t]})},_t=50;function Bi({notification:t,instance:n,isStatic:i,disableContextMenu:o}){var L,F,O,U;const{id:a,status:s,account:u,report:l,_accounts:r,_statuses:d}=t;let{type:h}=t;const c=(s==null?void 0:s.reblog)||s,p=c==null?void 0:c.id,f=ne.session.get("currentAccount"),b=f===(u==null?void 0:u.id),g=(L=s==null?void 0:s.poll)==null?void 0:L.voted,v=!!(s!=null&&s.inReplyToAccountId)&&(s==null?void 0:s.inReplyToAccountId)!==f&&((F=s==null?void 0:s.account)==null?void 0:F.id)===f;let m=0,y=0;if(h==="favourite+reblog"){for(const P of r)(O=P._types)!=null&&O.includes("favourite")&&m++,(U=P._types)!=null&&U.includes("reblog")&&y++;!y&&m&&(h="favourite"),!m&&y&&(h="reblog")}let S;if(h==="poll"?S=st[b?"poll-self":g?"poll-voted":"poll"]:h==="reblog"||h==="favourite"||h==="favourite+reblog"?(d==null?void 0:d.length)>1?S=st[`${h}+account`]:v?S=st[`${h}_reply`]:S=st[h]:st[h]?S=st[h]:S=`[Unknown notification type: ${h}]`,typeof S=="function"){const P=(d==null?void 0:d.length)||(r==null?void 0:r.length);if(P)S=S(P);else if(h==="admin.report"){const M=l==null?void 0:l.targetAccount;M&&(S=S(e(It,{account:M,showAvatar:!0})))}}if(h==="mention"&&!s)return null;const I=t.createdAt&&new Date(t.createdAt).toLocaleString(),T={"favourite+reblog":"Boosted/Liked by…",favourite:"Liked by…",reblog:"Boosted by…",follow:"Followed by…"}[h]||"Accounts",$=()=>{k.showGenericAccounts={heading:T,accounts:r,showReactions:h==="favourite+reblog",excludeRelationshipAttrs:h==="follow"?["followedBy"]:[]}};return e("div",{class:`notification notification-${h}`,"data-notification-id":a,tabIndex:"0",children:[e("div",{class:`notification-type notification-${h}`,title:I,children:h==="favourite+reblog"?e(A,{children:[e(w,{icon:"rocket",size:"xl",alt:h,class:"reblog-icon"}),e(w,{icon:"heart",size:"xl",alt:h,class:"favourite-icon"})]}):e(w,{icon:yn[h]||"notification",size:"xl",alt:h})}),e("div",{class:"notification-content",children:[h!=="mention"&&e(A,{children:[e("p",{children:[!/poll|update/i.test(h)&&e(A,{children:(r==null?void 0:r.length)>1?e(A,{children:[e("b",{tabIndex:"0",onClick:$,children:[e("span",{title:r.length,children:Ue(r.length)})," ","people"]})," "]}):e(A,{children:[e(It,{account:u,showAvatar:!0})," "]})}),S,h==="mention"&&e("span",{class:"insignificant",children:[" ","•"," ",e($t,{datetime:t.createdAt,format:"micro"})]})]}),h==="follow_request"&&e(Ft,{accountID:u.id})]}),(r==null?void 0:r.length)>1&&e("p",{class:"avatars-stack",children:[r.slice(0,_t).map(P=>e(A,{children:[e("a",{href:P.url,rel:"noopener noreferrer",class:"account-avatar-stack",onClick:M=>{M.preventDefault(),k.showAccount=P},children:[e(Qe,{url:P.avatarStatic,size:r.length<=10?"xxl":r.length<20?"xl":r.length<30?"l":r.length<40?"m":"s",alt:`${P.displayName} @${P.acct}`,squircle:P==null?void 0:P.bot},P.id),h==="favourite+reblog"&&e("div",{class:"account-sub-icons",children:P._types.map(M=>e(w,{icon:yn[M],size:"s",class:`${M}-icon`}))})]},P.id)," "]},P.id)),e("button",{type:"button",class:"small plain",onClick:$,children:[r.length>_t&&`+${r.length-_t}`,e(w,{icon:"chevron-down"})]})]}),(d==null?void 0:d.length)>1&&e("ul",{class:"notification-group-statuses",children:d.map(P=>e("li",{children:e(wn,{class:`status-link status-type-${h}`,to:n?`/${n}/s/${P.id}`:`/s/${P.id}`,children:e(Le,{status:P,size:"s"})})},P.id))}),s&&(!(d!=null&&d.length)||(d==null?void 0:d.length)<=1)&&e(wn,{class:`status-link status-type-${h}`,to:n?`/${n}/s/${p}`:`/s/${p}`,onContextMenu:o?void 0:P=>{const M=P.target.querySelector(".status");if(M){if(P.metaKey)return;P.preventDefault(),M.dispatchEvent(new MouseEvent("contextmenu",{clientX:P.clientX,clientY:P.clientY}))}},children:i?e(Le,{status:c,size:"s"}):e(Le,{statusID:p,size:"s"})})]})]})}function wn(t){const n=Cs();return e(ee,{...t,"data-read-more":"Read more →",ref:n})}const Kt=Be(Bi),Hi=Be(function(){if(!("serviceWorker"in navigator))return null;const n=ke(k),{routeNotification:i}=n,{id:o,accessToken:a}=i||{},[s,u]=C(!1);Ge(()=>{if(!o||!a)return;const{instance:r}=B(),{masto:d,instance:h}=B({accessToken:a}),c=r===h,p=a?$s(a):ot();(async()=>{const f=await d.v1.notifications.$select(o).fetch();if(f&&p){const b=p.instanceURL,{type:g,status:v,account:m}=f,y=!!document.querySelector("#modal-container > *"),S=g==="follow"&&!!(m!=null&&m.id),I=!!(m!=null&&m.id),T=!!(v!=null&&v.id);S&&c?k.showAccount={account:m,instance:b}:y||!c||I&&T?u({id:o,account:p,notification:f,sameInstance:c}):T?location.hash=`/${r}/s/${v.id}`:S?location.hash=`/${r}/a/${m.id}`:location.hash="/notifications"}})()},[o,a]),Ge(()=>{const r=d=>{const{type:h,id:c,accessToken:p}=(d==null?void 0:d.data)||{};h==="notification"&&(k.routeNotification={id:c,accessToken:p})};return navigator.serviceWorker.addEventListener("message",r),()=>{navigator.serviceWorker.removeEventListener("message",r)}},[]),Ge(()=>{navigator!=null&&navigator.clearAppBadge&&navigator.clearAppBadge()},[]),at(r=>{r&&(navigator!=null&&navigator.clearAppBadge)&&navigator.clearAppBadge()});const l=()=>{u(!1),k.routeNotification=null,/\/notifications\?id=/i.test(location.hash)&&(location.hash="/notifications")};if(s){const{id:r,account:d,notification:h,sameInstance:c}=s;return e($e,{class:"light",onClick:p=>{p.target===p.currentTarget&&l()},children:e("div",{class:"sheet",tabIndex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:l,children:e(w,{icon:"x"})}),e("header",{children:e("b",{children:"Notification"})}),e("main",{children:[!c&&e("p",{children:"This notification is from your other account."}),e("div",{class:"notification-peek",onClick:p=>{const{target:f}=p;(p.target.tagName==="BUTTON"||p.target.tagName==="A")&&l()},children:e(Kt,{instance:d.instanceURL,notification:h,isStatic:!0})}),e("div",{style:{textAlign:"end"},children:e(ee,{to:"/notifications",class:"button light",onClick:l,children:[e("span",{children:"View all notifications"})," ",e(w,{icon:"arrow-right"})]})})]})]})})}return null}),is=Ns((t,n)=>{const{instance:i}=B(),[o,a]=He(),[s,u]=C(!1),[l,r]=C(o.get("q")||""),d=o.get("type"),h=D(null),c=D(null);return Ps(n,()=>({setValue:p=>{r(p)},focus:()=>{c.current.focus()},select:()=>{c.current.select()},blur:()=>{c.current.blur()}})),e("form",{ref:h,class:"search-popover-container",onSubmit:p=>{var b;if(p.preventDefault(),/\/search/.test(location.hash))if(l){const g={q:l};d&&(g.type=d),a(g)}else a({});else l?location.hash=`/search?q=${encodeURIComponent(l)}${d?`&type=${d}`:""}`:location.hash="/search";(b=t==null?void 0:t.onSubmit)==null||b.call(t,p)},children:[e("input",{ref:c,value:l,name:"q",type:"search",placeholder:"Search",dir:"auto",autocomplete:"off",autocorrect:"off",autocapitalize:"off",onSearch:p=>{p.target.value||a({})},onInput:p=>{r(p.target.value),u(!0)},onFocus:()=>{u(!0)},onBlur:()=>{var p,f;setTimeout(()=>{u(!1)},100),(f=(p=h.current)==null?void 0:p.querySelector(".search-popover-item.focus"))==null||f.classList.remove("focus")},onKeyDown:p=>{var b;const{key:f}=p;switch(f){case"Escape":u(!1);break;case"Down":case"ArrowDown":if(p.preventDefault(),s){const g=h.current.querySelector(".search-popover-item.focus");if(g){let v=g.nextElementSibling;for(;v&&v.hidden;)v=v.nextElementSibling;v&&(v.classList.add("focus"),Array.from(v.parentElement.children).filter(y=>y!==v).forEach(y=>{y.classList.remove("focus")}))}else{const v=h.current.querySelector(".search-popover-item");v&&v.classList.add("focus")}}break;case"Up":case"ArrowUp":if(p.preventDefault(),s){const g=document.querySelector(".search-popover-item.focus");if(g){let v=g.previousElementSibling;for(;v&&v.hidden;)v=v.previousElementSibling;v&&(v.classList.add("focus"),Array.from(v.parentElement.children).filter(y=>y!==v).forEach(y=>{y.classList.remove("focus")}))}else{const v=document.querySelector(".search-popover-item:last-child");v&&v.classList.add("focus")}}break;case"Enter":if(s){const g=document.querySelector(".search-popover-item.focus");g&&(p.preventDefault(),g.click()),u(!1),(b=t==null?void 0:t.onSubmit)==null||b.call(t,p)}break}}}),e("div",{class:"search-popover",hidden:!s||!l,children:!!l&&[{label:e(A,{children:["Posts with ",e("q",{children:l})]}),to:`/search?q=${encodeURIComponent(l)}&type=statuses`,hidden:/^https?:/.test(l)},{label:e(A,{children:["Posts tagged with ",e("mark",{children:["#",l.replace(/^#/,"")]})]}),to:`/${i}/t/${l.replace(/^#/,"")}`,hidden:/^@/.test(l)||/^https?:/.test(l)||/\s/.test(l),top:/^#/.test(l),type:"link"},{label:e(A,{children:["Look up ",e("mark",{children:l})]}),to:`/${l}`,hidden:!/^https?:/.test(l),top:/^https?:/.test(l),type:"link"},{label:e(A,{children:["Accounts with ",e("q",{children:l})]}),to:`/search?q=${encodeURIComponent(l)}&type=accounts`}].sort((p,f)=>p.top&&!f.top?-1:!p.top&&f.top?1:0).map(({label:p,to:f,hidden:b,type:g})=>e(ee,{to:f,class:"search-popover-item",hidden:b,onClick:v=>{var m;(m=t==null?void 0:t.onSubmit)==null||m.call(t,v)},children:[e(w,{icon:g==="link"?"arrow-right":"search",class:"more-insignificant"}),e("span",{children:p})," "]}))})]})}),qi=Be(function({onClose:n=()=>{}}){const[i,o]=C(!1),a=D(null);Me("/",u=>{o(!0),setTimeout(()=>{var l,r,d,h;(r=(l=a.current)==null?void 0:l.focus)==null||r.call(l),(h=(d=a.current)==null?void 0:d.select)==null||h.call(d)},0)},{preventDefault:!0,ignoreEventWhen:u=>{const l=/\/search/.test(location.hash),r=!!document.querySelector("#modal-container > *");return l||r}});const s=()=>{o(!1),n()};return Me("esc",u=>{var l,r;(r=(l=a.current)==null?void 0:l.blur)==null||r.call(l),s()},{enabled:i,enableOnFormTags:!0,preventDefault:!0}),e("div",{id:"search-command-container",hidden:!i,onClick:u=>{u.target===u.currentTarget&&s()},children:e(is,{ref:a,onSubmit:()=>{s()}})})});function Vi(){const{instance:t}=B(),n=ke(k),{shortcuts:i,settings:o}=n;if(!i.length||o.shortcutsViewMode==="multi-column"||!o.shortcutsViewMode&&o.shortcutsColumnsMode)return null;const a=D(),s=he(()=>i.map((l,r)=>{const{type:d,...h}=l;if(!Ct[d])return null;let{id:c,path:p,title:f,subtitle:b,icon:g}=Ct[d];return typeof c=="function"&&(c=c(h,r)),typeof p=="function"&&(p=p({...h,instance:h.instance||t},r)),typeof f=="function"&&(f=f(h,r)),typeof b=="function"&&(b=b(h,r)),typeof g=="function"&&(g=g(h,r)),{id:c,path:p,title:f,subtitle:b,icon:g}}).filter(Boolean),[i]),u=Gn();return Me(["1","2","3","4","5","6","7","8","9"],(l,r)=>{var h,c;const d=parseInt(r.keys[0],10)-1;if(d{l.preventDefault(),k.showShortcutsSettings=!0},children:e("ul",{children:s.map(({id:l,path:r,title:d,subtitle:h,icon:c},p)=>e("li",{children:e(ee,{class:h?"has-subtitle":"",to:r,onClick:f=>{if(f.target.classList.contains("is-active")){f.preventDefault();const b=document.getElementById(`${l}-page`);if(b){b.scrollTop=0;const g=b.querySelector(".updates-button");g&&g.click()}}},children:[e(w,{icon:c,size:"xl",alt:d}),e("span",{children:[e(Ut,{children:d}),h&&e(A,{children:[e("br",{}),e("small",{children:h})]})]})]})},`${p}-${l}-${d}-${h}-${r}`))})}):e(Fe,{instanceRef:a,overflow:"auto",viewScroll:"close",menuClassName:"glass-menu shortcuts-menu",gap:8,position:"anchor",menuButton:e("button",{type:"button",id:"shortcuts-button",class:"plain",onContextMenu:l=>{l.preventDefault(),k.showShortcutsSettings=!0},onTransitionStart:l=>{var r,d;try{const{target:h}=l;getComputedStyle(h).pointerEvents==="none"&&((d=(r=a.current)==null?void 0:r.closeMenu)==null||d.call(r))}catch{}},children:e(w,{icon:"shortcut",size:"xl",alt:"Shortcuts"})}),children:s.map(({id:l,path:r,title:d,subtitle:h,icon:c},p)=>e(_e,{to:r,class:"glass-menu-item",children:[e(w,{icon:c,size:"l"})," ",e("span",{class:"menu-grow",children:[e("span",{children:e(Ut,{children:d})}),h&&e(A,{children:[" ",e("small",{class:"more-insignificant",children:h})]})]}),e("span",{class:"menu-shortcut hide-until-focus-visible",children:p+1})]},`${p}-${l}-${d}-${h}-${r}`))})})}const Gi=Be(Vi);function ji(t){var a;let n=[],i=[],o=0;for(let s=0;s10&&(i.length>t.length/4||o>=3)){const s=i.map(u=>u.id);if(i.length>t.length*3/4)n=[...n,{id:s,items:i,type:"boosts"}];else{const u=Math.floor(n.length/2);n=[...n.slice(0,u),{id:s,items:i,type:"boosts"},...n.slice(u)]}return n}else return t}function vn(t,n){const i=ne.account.get("boostedStatusIDs")||{},o=t.filter(s=>{if(!s.reblog)return!0;const u=`${n}-${s.reblog.id}`,l=i[u];return l&&l!==s.id?!1:(i[u]=s.id,!0)}),a=Object.keys(i);return a.length>50&&a.slice(0,a.length-50).forEach(s=>{delete i[s]}),ne.account.set("boostedStatusIDs",i),o}function Yi(t){const n=[];let i=0;t.forEach(s=>{for(let l=0;lr.id===s.id))return;if(n[l].find(r=>r.id===s.inReplyToId)||n[l].find(r=>r.inReplyToId===s.id)){n[l].push(s);return}}const u=t.find(l=>l.id===s.inReplyToId);u&&(n[i++]=[s,u])});for(let s=0;sn[u].includes(r))&&(n[s]=[...n[s],...n[u]],n[s]=n[s].filter((r,d,h)=>h.findIndex(c=>c.id===r.id)===d),n.splice(u,1),u--);n.forEach(s=>{s.sort((u,l)=>!u.inReplyToId&&!l.inReplyToId?new Date(u.createdAt)-new Date(l.createdAt):u.inReplyToId===l.id?1:l.inReplyToId===u.id||!u.inReplyToId?-1:l.inReplyToId?new Date(u.createdAt)-new Date(l.createdAt):1)}),n.forEach(s=>{const u=s[0].account.id;s.forEach(l=>{l.account.id!==u&&(l._differentAuthor=!0)})}),n.length;const o=[],a=[];return t.forEach(s=>{if(s.reblog){o.push(s);return}for(let u=0;ul.id===s.id)){if(a.includes(u))return;const l=n[u];l.sort((d,h)=>{const c=new Date(d.createdAt),p=new Date(h.createdAt);return c-p});const r=l[0].account.id;o.push({id:l.map(d=>d.id),items:l,type:l.every(d=>d.account.id===r)?"thread":"conversation"}),a.push(u);return}o.push(s)}),o}async function Wi(t,n){const i=await Mi();if(!i.length)return;const{statusFollowedTags:o}=k,a=[];if(t.forEach(s=>{var p;if(s.reblog)return;const{id:u,content:l,tags:r=[]}=s,d=je(u,n);if((p=o[d])!=null&&p.length)return;const h=Ri(l);if(!h.length&&!r.length)return;const c=i.reduce((f,b)=>((h.some(g=>g.toLowerCase()===b.name.toLowerCase())||r.some(g=>g.name.toLowerCase()===b.name.toLowerCase()))&&f.push(b.name),f),[]);c.length&&a.push({item:s,sKey:d,followedTags:c})}),a.length){const s=a.map(l=>l.item.account),u=await Wt(s);if(!u)return;a.forEach(l=>{const{item:r,sKey:d,followedTags:h}=l;u[r.account.id].following||(o[d]=h)})}}function Ki(){k.statusFollowedTags={}}function Zt({scrollableRef:t,distanceFromStart:n=1,distanceFromEnd:i=1,scrollThresholdStart:o=10,scrollThresholdEnd:a=10,direction:s="vertical",distanceFromStartPx:u,distanceFromEndPx:l}={}){const[r,d]=C(null),[h,c]=C(!1),[p,f]=C(!1),[b,g]=C(!1),[v,m]=C(!1),y=s==="vertical";return Ge(()=>{const S=t.current;if(!S)return{};let I=y?S.scrollTop:S.scrollLeft;function T(){const{scrollTop:$,scrollLeft:L,scrollHeight:F,scrollWidth:O,clientHeight:U,clientWidth:P}=S,M=y?$:L,E=y?F:O,x=y?U:P,N=Math.abs(M-I),j=u||Math.min(x*n,E,M),se=l||Math.min(x*i,E,E-M-x);N>=(I=E),g(M<=j),m(M+x>=E-se)}return S.addEventListener("scroll",T,{passive:!0}),()=>S.removeEventListener("scroll",T)},[n,i,o,a]),{scrollDirection:r,reachStart:h,reachEnd:p,nearReachStart:b,nearReachEnd:v,init:()=>{t.current&&t.current.dispatchEvent(new Event("scroll"))}}}function os({scrollableRef:t,distanceFromStart:n=1,distanceFromEnd:i=1,scrollThresholdStart:o=10,scrollThresholdEnd:a=10,direction:s="vertical",distanceFromStartPx:u,distanceFromEndPx:l,init:r}={},d,h){if(!d)return;const[c,p]=C(null),[f,b]=C(!1),[g,v]=C(!1),[m,y]=C(!1),[S,I]=C(!1),T=s==="vertical";Ge(()=>{const $=t.current;if(!$)return{};let L=T?$.scrollTop:$.scrollLeft;function F(){const{scrollTop:O,scrollLeft:U,scrollHeight:P,scrollWidth:M,clientHeight:E,clientWidth:x}=$,N=T?O:U,j=T?P:M,se=T?E:x,V=Math.abs(N-L),ye=u||Math.min(se*n,j,N),ce=l||Math.min(se*i,j,j-N-se);V>=(L=j),y(N<=ye),I(N+se>=j-ce)}return $.addEventListener("scroll",F,{passive:!0}),()=>$.removeEventListener("scroll",F)},[n,i,o,a]),z(()=>{d({scrollDirection:c,reachStart:f,reachEnd:g,nearReachStart:m,nearReachEnd:S})},[c,f,g,m,S,...h]),z(()=>{r&&t.current&&queueMicrotask(()=>{t.current.dispatchEvent(new Event("scroll"))})},[r])}function Zi({class:t,statusID:n,status:i,instance:o,parent:a,onMediaClick:s}){let u=je(n,o);const l=ke(k);if(i||(i=l.statuses[u]||l.statuses[n],u=je(i==null?void 0:i.id,o)),!i)return null;const{account:{acct:r,avatar:d,avatarStatic:h,id:c,url:p,displayName:f,username:b,emojis:g,bot:v,group:m},id:y,repliesCount:S,reblogged:I,reblogsCount:T,favourited:$,favouritesCount:L,bookmarked:F,poll:O,muted:U,sensitive:P,spoilerText:M,visibility:E,language:x,editedAt:N,filtered:j,card:se,createdAt:V,inReplyToId:ye,inReplyToAccountId:ce,content:X,mentions:_,mediaAttachments:W,reblog:te,uri:le,url:G,emojis:oe,_deleted:Q,_pinned:we}=i;if(!(W!=null&&W.length))return null;const Y=re=>{re.shiftKey},K=he(()=>ne.session.get("currentAccount"),[]),ae=he(()=>K&&K===c,[c,K]),pe=Ds(zn),ge=!ae&&Nt(j,pe);if((ge==null?void 0:ge.action)==="hide")return null;const de=P,H=he(()=>(ne.account.get("preferences")||{})["reading:expand:media"]||"default",[])==="show_all",Z=a||"div";return W.map((re,be)=>{const xe=`${u}-${re.id}`,Te=ge==null?void 0:ge.titlesStr;return e(Z,{"data-state-post-id":u,onMouseEnter:Y,"data-spoiler-text":M||(P?"Sensitive media":void 0),"data-filtered-text":ge?`Filtered${Te?`: ${Te}`:""}`:void 0,class:` + media-post + ${ge?"filtered":""} + ${de?"has-spoiler":""} + ${H?"show-media":""} + `,children:e(On,{class:t,media:re,lang:x,to:`/${o}/s/${y}?media-only=${be+1}`,onClick:s?q=>s(q,be,re,i):void 0})},xe)})}const Sn=Be(Zi);function mt(t){var S,I,T,$,L;const n=ke(k),{masto:i,instance:o,authenticated:a}=B(),[s,u]=C(),[l,r]=C(!1);z(()=>{const F=ne.local.getJSON("accounts")||[],O=F.find(U=>U.info.id===ne.session.get("currentAccount"));O&&u(O),r(F.length>1)},[]);const d=(n.settings.shortcutsViewMode==="multi-column"||!n.settings.shortcutsViewMode&&n.settings.shortcutsColumnsMode)&&!n.shortcuts.find(F=>F.type==="following"),h=Us(()=>{k.showAccounts=!0},{threshold:600,detect:"touch",cancelOnMovement:!0}),c=D(),[p,f]=C(void 0),b=xs([0,0,n.settings.shortcutsViewMode==="tab-menu-bar"?50:0,0]),g=D();async function v(F){return(F||!g.current)&&(g.current=i.v1.mutes.list({limit:80})),await g.current.next()}const m=D();async function y(F){return(F||!m.current)&&(m.current=i.v1.blocks.list({limit:80})),await m.current.next()}return e(A,{children:[e("button",{ref:c,type:"button",class:`button plain nav-menu-button ${l?"with-avatar":""} ${open?"active":""}`,style:{position:"relative"},onClick:()=>{f(F=>F?void 0:"open")},onContextMenu:F=>{F.preventDefault(),k.showAccounts=!0},...h(),children:[l&&e(Qe,{url:((S=s==null?void 0:s.info)==null?void 0:S.avatar)||((I=s==null?void 0:s.info)==null?void 0:I.avatarStatic),size:"l",squircle:(T=s==null?void 0:s.info)==null?void 0:T.bot}),e(w,{icon:"menu",size:l?"s":"l"})]}),e(jn,{menuClassName:"nav-menu",state:p,anchorRef:c,onClose:()=>{f(void 0)},containerProps:{style:{zIndex:10},onClick:()=>{f(void 0)}},portal:{target:document.body},...t,overflow:"auto",viewScroll:"close",position:"anchor",align:"center",boundingBoxPadding:b,unmountOnClose:!0,children:[!!(($=n.appVersion)!=null&&$.commitHash)&&n.appVersion.commitHash!=="8aa0542"&&e("div",{class:"top-menu",children:[e(ie,{onClick:()=>{confirm("Reload page now to update?")&&(async()=>{try{location.reload()}catch{}})()},children:[e(w,{icon:"sparkles",class:"sparkle-icon",size:"l"})," ",e("span",{children:"New update available…"})]}),e(Pe,{})]}),e("section",{children:[e(_e,{to:"/",children:[e(w,{icon:"home",size:"l"})," ",e("span",{children:"Home"})]}),a&&e(A,{children:[d&&e(_e,{to:"/following",children:[e(w,{icon:"following",size:"l"})," ",e("span",{children:"Following"})]}),e(_e,{to:"/mentions",children:[e(w,{icon:"at",size:"l"})," ",e("span",{children:"Mentions"})]}),e(_e,{to:"/notifications",children:[e(w,{icon:"notification",size:"l"})," ",e("span",{children:"Notifications"}),n.notificationsShowNew&&e("sup",{title:"New",style:{opacity:.5},children:[" ","•"]})]}),e(Pe,{}),e(_e,{to:"/l",children:[e(w,{icon:"list",size:"l"})," ",e("span",{children:"Lists"})]}),e(_e,{to:"/ft",children:[e(w,{icon:"hashtag",size:"l"})," ",e("span",{children:"Followed Hashtags"})]}),e(_e,{to:"/b",children:[e(w,{icon:"bookmark",size:"l"})," ",e("span",{children:"Bookmarks"})]}),e(_e,{to:"/f",children:[e(w,{icon:"heart",size:"l"})," ",e("span",{children:"Likes"})]})]}),e(Pe,{}),e(_e,{to:"/search",children:[e(w,{icon:"search",size:"l"})," ",e("span",{children:"Search"})]}),e(_e,{to:`/${o}/p/l`,children:[e(w,{icon:"building",size:"l"})," ",e("span",{children:"Local"})]}),e(_e,{to:`/${o}/p`,children:[e(w,{icon:"earth",size:"l"})," ",e("span",{children:"Federated"})]}),e(_e,{to:`/${o}/trending`,children:[e(w,{icon:"chart",size:"l"})," ",e("span",{children:"Trending"})]})]}),e("section",{children:a?e(A,{children:[e(Pe,{}),((L=s==null?void 0:s.info)==null?void 0:L.id)&&e(_e,{to:`/${o}/a/${s.info.id}`,children:[e(w,{icon:"user",size:"l"})," ",e("span",{children:"Profile"})]}),e(ie,{onClick:()=>{k.showAccounts=!0},children:[e(w,{icon:"group",size:"l"})," ",e("span",{children:"Accounts…"})]}),e(ie,{onClick:()=>{k.showGenericAccounts={id:"mute",heading:"Muted users",fetchAccounts:v,excludeRelationshipAttrs:["muting"]}},children:[e(w,{icon:"mute",size:"l"})," Muted users…"]}),e(ie,{onClick:()=>{k.showGenericAccounts={id:"block",heading:"Blocked users",fetchAccounts:y,excludeRelationshipAttrs:["blocking"]}},children:[e(w,{icon:"block",size:"l"}),"Blocked users…"]}),e(Pe,{className:"divider-grow"}),e(ie,{onClick:()=>{k.showKeyboardShortcutsHelp=!0},children:[e(w,{icon:"keyboard",size:"l"})," ",e("span",{children:"Keyboard shortcuts"})]}),e(ie,{onClick:()=>{k.showShortcutsSettings=!0},children:[e(w,{icon:"shortcut",size:"l"})," ",e("span",{children:"Shortcuts / Columns…"})]}),e(ie,{onClick:()=>{k.showSettings=!0},children:[e(w,{icon:"gear",size:"l"})," ",e("span",{children:"Settings…"})]})]}):e(A,{children:[e(Pe,{}),e(_e,{to:"/login",children:[e(w,{icon:"user",size:"l"})," ",e("span",{children:"Log in"})]}),e(ie,{onClick:()=>{k.showSettings=!0},children:[e(w,{icon:"gear",size:"l"})," ",e("span",{children:"Settings…"})]})]})})]})]})}const bt={block:"nearest",inline:"center",behavior:"smooth"};function Ye({title:t,titleComponent:n,id:i,instance:o,emptyText:a,errorText:s,useItemID:u,boostsCarousel:l,fetchItems:r=()=>{},checkForUpdates:d=()=>{},checkForUpdatesInterval:h=15e3,headerStart:c,headerEnd:p,timelineStart:f,refresh:b,view:g,filterContext:v,showFollowedTags:m}){const y=ke(k),[S,I]=C([]),[T,$]=C("default"),[L,F]=C(!1),[O,U]=C(!1),[P,M]=C(!0),E=D(),x=g!=="media",N=Yn(G=>{U(!1),T!=="loading"&&($("loading"),(async()=>{try{let{done:oe,value:Q}=await r(G);if(Array.isArray(Q)){const[we,Y]=Q.reduce((K,ae)=>(ae._pinned?K[0].push(ae):K[1].push(ae),K),[[],[]]);Q=Y,x&&(l&&(Q=ji(Q)),Q=Yi(Q)),we.length&&(Q=we.concat(Q)),I(G?Q:K=>[...K,...Q]),Q.length||(oe=!0),F(!oe)}else F(!1);$("default")}catch{$("error")}finally{N.cancel()}})())},1500,{leading:!0,trailing:!1}),j=".timeline-item, .timeline-item-alt",se=Me("j, shift+j",(G,oe)=>{const Q=document.activeElement.closest(j),we=Q==null?void 0:Q.getBoundingClientRect(),Y=Array.from(E.current.querySelectorAll(j));if(Q&&we.top0){const K=Y.indexOf(Q);let ae=Y[K+1];oe.shift&&(ae=Y.find((pe,ge)=>ge>K&&!pe.classList.contains("timeline-item-alt"))),ae&&(ae.focus(),ae.scrollIntoView(bt))}else{const K=Y.find(ae=>{const pe=ae.getBoundingClientRect();return pe.top>=44&&pe.left>=0});K&&(K.focus(),K.scrollIntoView(bt))}}),V=Me("k, shift+k",(G,oe)=>{const Q=document.activeElement.closest(j),we=Q==null?void 0:Q.getBoundingClientRect(),Y=Array.from(E.current.querySelectorAll(j));if(Q&&we.top0){const K=Y.indexOf(Q);let ae=Y[K-1];oe.shift&&(ae=Y.findLast((pe,ge)=>ge{const pe=ae.getBoundingClientRect();return pe.top>=44&&pe.left>=0});K&&(K.focus(),K.scrollIntoView(bt))}}),ye=Me(["enter","o"],()=>{const G=document.activeElement.closest(j);G&&G.click()}),ce=D(),[X,_]=C(!1);os({scrollableRef:E,distanceFromEnd:2,scrollThresholdStart:44},({scrollDirection:G,nearReachStart:oe,nearReachEnd:Q,reachStart:we,reachEnd:Y})=>{if(ce.current){const K=G==="end"&&!oe;ce.current.hidden=K}_(oe),we?N(!0):(Q||Y&&L)&&N()},[]),z(()=>{var G;(G=E.current)==null||G.scrollTo({top:0}),N(!0)},[]),z(()=>{N(!0)},[b]);const W=D(g);z(()=>{W.current!==g&&(W.current=g,I([]))},[g]);const te=Ve(async({disableIdleCheck:G=!1}={})=>{const oe=E.current?getComputedStyle(E.current).pointerEvents==="none":!1;y.settings.autoRefresh&&E.current.scrollTop<16&&(G||window.__IDLE__)&&!eo()&&!oe?N(!0):await d()&&U(!0)},[i,N,d,y.settings.autoRefresh]),le=D();return at(G=>{if(G){const oe=Date.now()-le.current;(!le.current||oe>1e3*3)&&te({disableIdleCheck:!0})}else le.current=Date.now();M(G)},[d,te,y.settings.autoRefresh]),En(te,P&&!O?h*(X?1:2):null),e(zn.Provider,{value:v,children:e("div",{id:`${i}-page`,class:"deck-container",ref:G=>{E.current=G,se.current=G,V.current=G,ye.current=G},tabIndex:"-1",children:e("div",{class:"timeline-deck deck",children:[e("header",{ref:ce,onClick:G=>{var oe;G.target.closest("a, button")||(oe=E.current)==null||oe.scrollTo({top:0,behavior:"smooth"})},onDblClick:G=>{G.target.closest("a, button")||N(!0)},class:T==="loading"?"loading":"",children:[e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(mt,{}),c??e(ee,{to:"/",class:"button plain home-button",children:e(w,{icon:"home",size:"l"})})]}),t&&(n||e("h1",{children:t})),e("div",{class:"header-side",children:!!p&&p})]}),S.length>0&&T!=="loading"&&O&&e("button",{class:"updates-button shiny-pill",type:"button",onClick:()=>{var G;N(!0),(G=E.current)==null||G.scrollTo({top:0,behavior:"smooth"})},children:[e(w,{icon:"arrow-up"})," New posts"]})]}),!!f&&e("div",{class:`timeline-start ${T==="loading"?"loading":""}`,children:f}),S.length?e(A,{children:[e("ul",{class:`timeline ${g?`timeline-${g}`:""}`,children:[S.map(G=>e(Ji,{status:G,instance:o,useItemID:u,filterContext:v,view:g,showFollowedTags:m},G.id+(G==null?void 0:G._pinned)+g)),L&&T==="loading"&&(g==="media"?null:e(A,{children:[e("li",{style:{height:"20vh"},children:e(Le,{skeleton:!0})}),e("li",{style:{height:"25vh"},children:e(Le,{skeleton:!0})})]}))]}),T==="default"&&(L?e(lt,{onChange:G=>{G&&N()},children:e("button",{type:"button",class:"plain block",onClick:()=>N(),style:{marginBlockEnd:"6em"},children:"Show more…"})}):e("p",{class:"ui-state insignificant",children:"The end."}))]}):T==="loading"?e("ul",{class:"timeline",children:Array.from({length:5}).map((G,oe)=>g==="media"?e("div",{style:{height:"50vh"}}):e("li",{children:e(Le,{skeleton:!0})},oe))}):T!=="error"&&e("p",{class:"ui-state",children:a}),T==="error"&&e("p",{class:"ui-state",children:[s,e("br",{}),e("br",{}),e("button",{type:"button",onClick:()=>N(!S.length),children:"Try again"})]})]})})})}function Ji({status:t,instance:n,useItemID:i,filterContext:o,view:a,showFollowedTags:s}){const{id:u,reblog:l,items:r,type:d,_pinned:h}=t;h&&(i=!1);const c=(l==null?void 0:l.id)||u,p=n?`/${n}/s/${c}`:`/s/${c}`;let f="";d==="boosts"?f=`${r.length} Boosts`:d==="pinned"&&(f="Pinned posts");const b=d==="boosts"||d==="pinned";if(r){const v=ct(r,o);if(b)return v.sort((y,S)=>{const I=Nt(y.filtered,o),T=Nt(S.filtered,o);return I&&!T?1:!I&&T?-1:0}),e("li",{class:"timeline-item-carousel",children:e(Xi,{title:f,class:`${d}-carousel`,children:v.map(y=>{const{id:S,reblog:I,_pinned:T}=y,$=(I==null?void 0:I.id)||S,L=n?`/${n}/s/${$}`:`/s/${$}`;return T&&(i=!1),e("li",{children:e(ee,{class:"status-carousel-link timeline-item-alt",to:L,children:i?e(Le,{statusID:S,instance:n,size:"s",contentTextWeight:!0,enableCommentHint:!0}):e(Le,{status:y,instance:n,size:"s",contentTextWeight:!0,enableCommentHint:!0})})},S)})})},`timeline-${u}`);const m=v.length>3;return v.map((y,S)=>{const{id:I,_differentAuthor:T}=y,$=n?`/${n}/s/${I}`:`/s/${I}`,L=S>0&&S0||m&&L&&(d==="thread"||d==="conversation"&&!T&&!v[S-1]._differentAuthor&&!v[S+1]._differentAuthor),U=S===0,P=S===v.length-1;return e("li",{class:`timeline-item-container timeline-item-container-type-${d} timeline-item-container-${U?"start":P?"end":"middle"} ${T?"timeline-item-diff-author":""}`,children:e(ee,{class:"status-link timeline-item",to:$,children:O?e(Qi,{status:y,instance:n}):i?e(Le,{statusID:I,instance:n,enableCommentHint:P,showFollowedTags:s}):e(Le,{status:y,instance:n,enableCommentHint:P,showFollowedTags:s})})},`timeline-${I}`)})}const g=`timeline-${u+h}`;return a==="media"?i?e(Sn,{class:"timeline-item",parent:"li",statusID:u,instance:n},g):e(Sn,{class:"timeline-item",parent:"li",status:t,instance:n},g):e("li",{children:e(ee,{class:"status-link timeline-item",to:p,children:i?e(Le,{statusID:u,instance:n,enableCommentHint:!0,showFollowedTags:s}):e(Le,{status:t,instance:n,enableCommentHint:!0,showFollowedTags:s})})},g)}function Xi({title:t,class:n,children:i}){const o=D(),a=D(),s=D();return os({scrollableRef:o,direction:"horizontal",init:!0},({reachStart:u,reachEnd:l})=>{a.current&&(a.current.disabled=u),s.current&&(s.current.disabled=l)},[]),e("div",{class:`status-carousel ${n}`,children:[e("header",{children:[e("h3",{children:t}),e("span",{children:[e("button",{ref:a,type:"button",class:"small plain2",onClick:()=>{var u,l;(l=o.current)==null||l.scrollBy({left:-Math.min(320,(u=o.current)==null?void 0:u.offsetWidth),behavior:"smooth"})},children:e(w,{icon:"chevron-left"})})," ",e("button",{ref:s,type:"button",class:"small plain2",onClick:()=>{var u,l;(l=o.current)==null||l.scrollBy({left:Math.min(320,(u=o.current)==null?void 0:u.offsetWidth),behavior:"smooth"})},children:e(w,{icon:"chevron-right"})})]})]}),e("ul",{ref:o,children:i})]})}function Qi({status:t,instance:n}){const i=ke(k),{id:o,visibility:a}=t,s=Bn(t),u=je(o,n);return e("article",{class:`status compact-thread ${a==="direct"?"visibility-direct":""}`,tabindex:"-1",children:[i.statusThreadNumber[u]?e("div",{class:"status-thread-badge",children:[e(w,{icon:"thread",size:"s"}),i.statusThreadNumber[u]?` ${i.statusThreadNumber[u]}/X`:""]}):e("div",{class:"status-thread-badge",children:e(w,{icon:"thread",size:"s"})}),e("div",{class:"content-compact",title:s,children:[s,t.sensitive&&t.spoilerText&&e(A,{children:[" ",e("span",{class:"spoiler-badge",children:e(w,{icon:"eye-close",size:"s"})})]})]})]})}function eo(){return!!document.querySelector(".deck-backdrop, #modal-container > *")}const it=20,Jt=1983,kn=`${Jt}-01`,to=(()=>{try{const t=document.createElement("input");return t.setAttribute("type","month"),t.type==="month"}catch{return!1}})();async function no(t){var o;const{masto:n}=B({instance:t}),i=await n.v2.search.fetch({q:"from:me",type:"statuses",limit:1});return!!((o=i==null?void 0:i.statuses)!=null&&o.length)}const so=et(no);function io(){const t=ke(k),{id:n,...i}=tt(),[o,a]=He(),s=o.get("month"),u=!o.get("replies"),l=!!o.get("boosts"),r=o.get("tagged"),d=!!o.get("media"),{masto:h,instance:c,authenticated:p}=B({instance:i.instance}),{masto:f,instance:b}=B(),g=D(),v=[s,u,l,r,d],[m,y]=C(),S=D(0);z(()=>{S.current=0},v);const I=he(()=>c===b,[c,b]),[T,$]=C(!1);z(()=>{I&&m!=null&&m.acct&&(async()=>{const X=await so(c);$(X)})()},[c,I,m==null?void 0:m.acct]);async function L(X){var oe,Q,we;const _=/^\d{4}-[01]\d$/.test(s),W=((Q=(oe=s==null?void 0:s.split)==null?void 0:oe.call(s,"-"))==null?void 0:Q[0])>=Jt;if(_&&W){if(!m)return{value:[],done:!0};const[Y,K]=s.split("-"),ae=parseInt(K,10)-1,pe=new Date(Y,ae,0),ge=`${pe.getFullYear()}-${(pe.getMonth()+1).toString().padStart(2,"0")}-${pe.getDate().toString().padStart(2,"0")}`,de=new Date(Y,ae+1,1),R=`${de.getFullYear()}-${(de.getMonth()+1).toString().padStart(2,"0")}-${de.getDate().toString().padStart(2,"0")}`;let H;X?(H=it+1,S.current=0):(H=it+S.current+1,S.current+=it);const Z=await h.v2.search.fetch({q:`from:${m.acct} after:${ge} before:${R}`,type:"statuses",limit:H,offset:S.current});if((we=Z==null?void 0:Z.statuses)!=null&&we.length){const re=Z.statuses.slice(0,it);re.forEach(xe=>{Ae(xe,c)});const be=Z.statuses.length<=it;return{value:re,done:be}}else return{value:[],done:!0}}const te=[];if(X){const{value:Y}=await h.v1.accounts.$select(n).statuses.list({pinned:!0}).next();if(Y!=null&&Y.length&&!r&&!d){const K=Y.map(ae=>(Ae(ae,c),{...ae,_pinned:!0}));if(K.length>=3){const ae=K.map(pe=>pe.id);te.push({id:ae,items:K,type:"pinned"})}else te.push(...K)}}(X||!g.current)&&(g.current=h.v1.accounts.$select(n).statuses.list({limit:it,exclude_replies:u,exclude_reblogs:l,only_media:d,tagged:r}));const{value:le,done:G}=await g.current.next();return le!=null&&le.length&&(te.push(...le),le.forEach(Y=>{Ae(Y,c)})),{value:te,done:G}}const[F,O]=C([]);Re(m!=null&&m.acct?`${m!=null&&m.displayName?m.displayName+" ":""}@${m.acct}${u?l?" (- Boosts)":r?` (#${r})`:d?" (Media)":s?` (${new Date(s).toLocaleString("default",{month:"long",year:"numeric"})})`:"":" (+ Replies)"}`:"Account posts","/:instance?/a/:id");const U=D(),P=Ve(()=>{const X=U.current||h.v1.accounts.$select(n).fetch();return U.current=X,X},[n,h]);z(()=>{(async()=>{try{const X=await P();y(X)}catch{}try{const X=await h.v1.accounts.$select(n).featuredTags.list();O(X)}catch{}})()},[n]);const{displayName:M,acct:E,emojis:x}=m||{},N=he(()=>{const X=t.accounts[`${n}@${c}`];return e(Qn,{instance:c,account:X||n,fetchAccount:P,authenticated:p,standalone:!0})},[n,c,p,P]),j=D(),se=he(()=>e(A,{children:[N,e("div",{class:"filter-bar",ref:j,style:{position:"relative"},children:[!u||l||r||d||!!s?e(ee,{to:`/${c}/a/${n}`,class:"insignificant filter-clear",title:"Clear filters",children:e(w,{icon:"x",size:"l"})},"clear-filters"):e(w,{icon:"filter",class:"insignificant",size:"l"}),e(ee,{to:`/${c}/a/${n}${u?"?replies=1":""}`,onClick:()=>{u&&me("Showing post with replies")},class:u?"":"is-active",children:"+ Replies"}),e(ee,{to:`/${c}/a/${n}${l?"":"?boosts=0"}`,onClick:()=>{l||me("Showing posts without boosts")},class:l?"is-active":"",children:"- Boosts"}),e(ee,{to:`/${c}/a/${n}${d?"":"?media=1"}`,onClick:()=>{d||me("Showing posts with media")},class:d?"is-active":"",children:"Media"}),F.map(_=>e(ee,{to:`/${c}/a/${n}${r===_.name?"":`?tagged=${encodeURIComponent(_.name)}`}`,onClick:()=>{r!==_.name&&me(`Showing posts tagged with #${_.name}`)},class:r===_.name?"is-active":"",children:e("span",{children:[e("span",{class:"more-insignificant",children:"#"}),_.name]})},_.id)),T&&(to?e("label",{class:`filter-field ${s?"is-active":""}`,children:[e(w,{icon:"month",size:"l"}),e("input",{type:"month",disabled:!(m!=null&&m.acct),value:s||"",min:kn,max:new Date().toISOString().slice(0,7),onInput:_=>{const{value:W,validity:te}=_.currentTarget;if(!te.valid)return;a(W?{month:W}:{});const[le,G]=W.split("-"),oe=parseInt(G,10)-1,Q=new Date(le,oe);me(`Showing posts in ${Q.toLocaleString("default",{month:"long",year:"numeric"})}`)}})]}):e(oo,{class:`filter-field ${s?"is-active":""}`,disabled:!(m!=null&&m.acct),value:s||"",min:kn,max:new Date().toISOString().slice(0,7),onInput:_=>{const{value:W,validity:te}=_;te.valid&&a(W?{month:W}:{})}}))]})]}),[n,c,p,F,T,...v]);z(()=>{var _;const X=(_=j.current)==null?void 0:_.querySelector(".is-active");X&&j.current.scrollTo({behavior:"smooth",left:X.offsetLeft-(j.current.offsetWidth-X.offsetWidth)/2})},[F,T,...v]);const V=he(()=>m!=null&&m.url?new URL(m.url).hostname:null,[m]),ce=!!m&&!(c===V);return e(Ye,{title:`${m!=null&&m.acct?"@"+m.acct:"Posts"}`,titleComponent:e("h1",{class:"header-double-lines header-account",children:[e("b",{children:e(Dn,{text:M,emojis:x})}),e("div",{children:e("span",{children:["@",E]})})]}),id:"account-statuses",instance:c,emptyText:"Nothing to see here yet.",errorText:"Unable to load posts",fetchItems:L,useItemID:!0,view:d?"media":void 0,boostsCarousel:t.settings.boostsCarousel,timelineStart:se,refresh:[u,l,r,d,s+(m==null?void 0:m.acct)].toString(),headerEnd:e(Fe,{portal:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(ie,{disabled:!ce,onClick:()=>{(async()=>{try{const{masto:X}=B({instance:V}),_=await X.v1.accounts.lookup({acct:m.acct}),{id:W}=_;location.hash=`/${V}/a/${W}`}catch{alert("Unable to fetch account info")}})()},children:[e(w,{icon:"transfer"})," ",e("small",{class:"menu-double-lines",children:["Switch to account's instance (",e("b",{children:V}),")"]})]}),!I&&e(ie,{onClick:()=>{(async()=>{try{const X=await f.v1.accounts.lookup({acct:m.acct+"@"+c}),{id:_}=X;location.hash=`/${b}/a/${_}`}catch{alert("Unable to fetch account info")}})()},children:[e(w,{icon:"transfer"})," ",e("small",{class:"menu-double-lines",children:["Switch to my instance (",e("b",{children:b}),")"]})]})]})},n)}function oo(t){const{class:n,disabled:i,value:o,min:a,max:s,onInput:u=()=>{}}=t,[l,r]=(o==null?void 0:o.split("-"))||[],d=D(),h=D(),c=(p,f)=>{const[b,g]=(a==null?void 0:a.split("-"))||[],[v,m]=(s==null?void 0:s.split("-"))||[];return!(fv||f===b&&pm)};return e("div",{class:n,children:[e(w,{icon:"month",size:"l"}),e("select",{ref:d,disabled:i,value:r||"",onInput:p=>{const{value:f}=p.currentTarget,b=h.current.value;if(!c(f,b))return{value:"",validity:{valid:!1}};u({value:f?`${b}-${f}`:"",validity:{valid:!0}})},children:[e("option",{value:"",children:"Month"}),e("option",{disabled:!0,children:"-----"}),Array.from({length:12},(p,f)=>e("option",{value:(f+1).toString().padStart(2,"0"),children:new Date(0,f).toLocaleString("default",{month:"long"})},f))]})," ",e("input",{ref:h,type:"number",disabled:i,value:l||new Date().getFullYear(),min:(a==null?void 0:a.slice(0,4))||Jt,max:(s==null?void 0:s.slice(0,4))||new Date().getFullYear(),onInput:p=>{const{value:f,validity:b}=p.currentTarget,g=d.current.value;if(!b.valid||!c(g,f))return{value:"",validity:{valid:!1}};u({value:f?`${f}-${g}`:"",validity:{valid:!0}})},style:{width:"4.5em"}})]})}const ao=20;function as(){Re("Bookmarks","/b");const{masto:t,instance:n}=B(),i=D();async function o(a){return(a||!i.current)&&(i.current=t.v1.bookmarks.list({limit:ao})),await i.current.next()}return e(Ye,{title:"Bookmarks",id:"bookmarks",emptyText:"No bookmarks yet. Go bookmark something!",errorText:"Unable to load bookmarks",instance:n,fetchItems:o})}const co=20;function cs(){Re("Likes","/f");const{masto:t,instance:n}=B(),i=D();async function o(a){return(a||!i.current)&&(i.current=t.v1.favourites.list({limit:co})),await i.current.next()}return e(Ye,{title:"Likes",id:"favourites",emptyText:"No likes yet. Go like something!",errorText:"Unable to load likes",instance:n,fetchItems:o})}function ro(){const{masto:t,instance:n}=B();Re("Followed Hashtags","/ft");const[i,o]=C("default"),[a,s]=C([]);return z(()=>{o("loading"),(async()=>{try{const u=await Tt();s(u),o("default")}catch{o("error")}})()},[]),e("div",{id:"followed-hashtags-page",class:"deck-container",tabIndex:"-1",children:e("div",{class:"timeline-deck deck",children:[e("header",{children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(mt,{}),e(ee,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l"})})]}),e("h1",{children:"Followed Hashtags"}),e("div",{class:"header-side"})]})}),e("main",{children:a.length>0?e("ul",{class:"link-list",children:a.map(u=>e("li",{children:e(ee,{to:n?`/${n}/t/${u.name}`:`/t/${u.name}`,children:[e(w,{icon:"hashtag"})," ",e("span",{children:u.name})]})}))}):i==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):i==="error"?e("p",{class:"ui-state",children:"Unable to load followed hashtags."}):e("p",{class:"ui-state",children:"No hashtags followed yet."})})]})})}const lo=20;function Xt({title:t,path:n,id:i,...o}){Re(t||"Following",n||"/following");const{masto:a,streaming:s,instance:u}=B(),l=ke(k),r=D(),d=D();async function h(p){(p||!r.current)&&(r.current=a.v1.timelines.home.list({limit:lo}));const f=await r.current.next();let{value:b}=f;if(b!=null&&b.length){let g=!1;p&&(b[0].id!==d.current&&(g=!0),d.current=b[0].id),b.forEach(v=>{Ae(v,u)}),b=vn(b,u),p&&g&&Ki(),Wi(b,u),b.sort((v,m)=>{const y=new Date(v.createdAt);return new Date(m.createdAt)-y})}return{...f,value:b}}async function c(){try{const p=await a.v1.timelines.home.list({limit:5,since_id:d.current}).next();let{value:f}=p;return!!(f!=null&&f.length&&(d.current=f[0].id,f=vn(f,u),f=ct(f,"home"),f.some(b=>!b.reblog)))}catch{return!1}}return z(()=>{let p;return(async()=>{if(s){p=s.user.subscribe();for await(const f of p){if(!p)break;if(f.event==="status.update"){const b=f.payload;Ae(b,u)}else if(f.event==="delete"){const b=f.payload,g=Hn(b,u);g&&(g._deleted=!0)}}}})(),()=>{var f;(f=p==null?void 0:p.unsubscribe)==null||f.call(p),p=null}},[s]),e(Ye,{title:t||"Following",id:i||"following",emptyText:"Nothing to see here.",errorText:"Unable to load posts.",instance:u,fetchItems:h,checkForUpdates:c,useItemID:!0,boostsCarousel:l.settings.boostsCarousel,...o,filterContext:"home",showFollowedTags:!0})}const uo=20,ho=4,In=ho+1;function rs({media:t,columnMode:n,...i}){let{hashtag:o,...a}=n?{}:tt();i.hashtag&&(o=i.hashtag);let s=o.trim().split(/[\s+]+/);s.sort(),o=s[0];const[u,l]=He(),r=t||!!u.get("media"),d=r?"?media=1":"",{masto:h,instance:c,authenticated:p}=B({instance:(i==null?void 0:i.instance)||a.instance}),{masto:f,instance:b,authenticated:g}=B(),v=s.map(M=>`#${M}`).join(" "),m=r?" (Media only)":"",y=c?`${v}${m} on ${c}`:`${v}${m}`;Re(y,"/:instance?/t/:hashtag");const S=D(),I=D(void 0);async function T(M){const E=await h.v1.timelines.tag.$select(o).list({limit:uo,any:s.slice(1),maxId:M?void 0:I.current,onlyMedia:r}).next();let{value:x}=E;return x!=null&&x.length&&(M&&(S.current=x[0].id),x.forEach(N=>{Ae(N,c,{skipThreading:r})}),I.current=x[x.length-1].id),{...E,value:x}}async function $(){try{const M=await h.v1.timelines.tag.$select(o).list({limit:1,any:s.slice(1),since_id:S.current,onlyMedia:r}).next();let{value:E}=M;return E=ct(E,"public"),!!(E!=null&&E.length)}catch{return!1}}const[L,F]=C("default"),[O,U]=C();z(()=>{(async()=>{try{const M=await h.v1.tags.$select(o).fetch();U(M)}catch{}})()},[o]);const P=s.length>=In;return e(Ye,{title:y,titleComponent:!!c&&e("h1",{class:"header-double-lines",children:[e("b",{children:v}),e("div",{children:c})]}),id:"hashtag",instance:c,emptyText:"No one has posted anything with this tag yet.",errorText:"Unable to load posts with this tag",fetchItems:T,checkForUpdates:$,useItemID:!0,view:r?"media":void 0,refresh:r,filterContext:"public",headerEnd:e(Fe,{portal:!0,setDownOverflow:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[!!O&&s.length===1&&e(A,{children:[e(ze,{subMenu:!0,confirm:O.following,confirmLabel:`Unfollow #${o}?`,disabled:L==="loading"||!p,onClick:()=>{F("loading"),O.following?h.v1.tags.$select(o).unfollow().then(()=>{U({...O,following:!1}),me(`Unfollowed #${o}`)}).catch(M=>{alert(M)}).finally(()=>{F("default")}):h.v1.tags.$select(o).follow().then(()=>{U({...O,following:!0}),me(`Followed #${o}`)}).catch(M=>{alert(M)}).finally(()=>{F("default")})},children:O.following?e(A,{children:[e(w,{icon:"check-circle"})," ",e("span",{children:"Following…"})]}):e(A,{children:[e(w,{icon:"plus"})," ",e("span",{children:"Follow"})]})}),e(Pe,{})]}),e(Wn,{className:"plain",children:"Filters"}),e(ie,{type:"checkbox",checked:!!r,onClick:()=>{r?u.delete("media"):u.set("media","1"),l(u)},children:[e(w,{icon:"check-circle"})," ",e("span",{class:"menu-grow",children:"Media only"})]}),e(Pe,{}),e(Fs,{className:"menu-field",disabled:P,children:({ref:M})=>e("form",{onSubmit:E=>{var N,j;E.preventDefault();const x=(j=(N=E.target[0].value)==null?void 0:N.trim)==null?void 0:j.call(N);x&&!s.some(se=>se.toLowerCase()===x.toLowerCase())&&(s.push(x),s.sort(),location.hash=c?`/${c}/t/${s.join("+")}`:`/t/${s.join("+")}${d}`)},children:[e(w,{icon:"hashtag"}),e("input",{ref:M,type:"text",placeholder:P?`Max ${In} tags`:"Add hashtag",required:!0,autocorrect:"off",autocapitalize:"off",spellcheck:!1,pattern:"[^#][^\\s#]+[^#]",disabled:P})]})}),e(Os,{takeOverflow:!0,children:s.map((M,E)=>e(ie,{disabled:s.length===1,onClick:x=>{s.splice(E,1),s.sort(),location.hash=c?`/${c}/t/${s.join("+")}${d}`:`/t/${s.join("+")}${d}`},children:[e(w,{icon:"x",alt:"Remove hashtag",class:"danger-icon"}),e("span",{children:[e("span",{class:"more-insignificant",children:"#"}),M]})]},M))}),e(Pe,{}),e(ie,{disabled:!g,onClick:()=>{if(k.shortcuts.length>=Ze){alert(`Max ${Ze} shortcuts reached. Unable to add shortcut.`);return}const M={type:"hashtag",hashtag:s.join(" "),instance:c,media:r?"on":void 0};k.shortcuts.some(x=>x.type===M.type&&x.hashtag.split(/[\s+]+/).sort().join(" ")===M.hashtag.split(/[\s+]+/).sort().join(" ")&&(x.instance?x.instance===M.instance:!0)&&(x.media?!!x.media==!!M.media:!0))?alert("This shortcut already exists"):(k.shortcuts.push(M),me("Hashtag shortcut added"))},children:[e(w,{icon:"shortcut"})," ",e("span",{children:"Add to Shorcuts"})]}),e(ie,{onClick:()=>{let M=prompt('Enter a new instance e.g. "mastodon.social"');if(!/\./.test(M)){M&&alert("Invalid instance");return}M&&(M=M.toLowerCase().trim(),location.hash=`/${M}/t/${s.join("+")}${d}`)},children:[e(w,{icon:"bus"})," ",e("span",{children:"Go to another instance…"})]}),b!==c&&e(ie,{onClick:()=>{location.hash=`/${b}/t/${s.join("+")}${d}`},children:[e(w,{icon:"bus"})," ",e("small",{class:"menu-double-lines",children:["Go to my instance (",e("b",{children:b}),")"]})]})]})},c+v)}const fo=20;function ls(t){var g;const n=ke(k),{masto:i,instance:o}=B(),a=(t==null?void 0:t.id)||((g=tt())==null?void 0:g.id),s=D(),u=D();async function l(v){(v||!u.current)&&(u.current=i.v1.timelines.list.$select(a).list({limit:fo}));const m=await u.current.next();let{value:y}=m;return y!=null&&y.length&&(v&&(s.current=y[0].id),y.forEach(S=>{Ae(S,o)})),{...m,value:y}}async function r(){try{const v=await i.v1.timelines.list.$select(a).list({limit:1,since_id:s.current});let{value:m}=v;return m=ct(m,"home"),!!(m!=null&&m.length)}catch{return!1}}const[d,h]=C({title:"List"});Re(d.title,"/l/:id"),z(()=>{(async()=>{try{const v=await i.v1.lists.$select(a).fetch();h(v)}catch{}})()},[a]);const[c,p]=C(!1),[f,b]=C(!1);return e(A,{children:[e(Ye,{title:d.title,id:"list",emptyText:"Nothing yet.",errorText:"Unable to load posts.",instance:o,fetchItems:l,checkForUpdates:r,useItemID:!0,boostsCarousel:n.settings.boostsCarousel,filterContext:"home",headerStart:e(ee,{to:"/l",class:"button plain",children:e(w,{icon:"list",size:"l"})}),headerEnd:e(Fe,{portal:!0,setDownOverflow:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(ie,{onClick:()=>p({list:d}),children:[e(w,{icon:"pencil",size:"l"}),e("span",{children:"Edit"})]}),e(ie,{onClick:()=>b(!0),children:[e(w,{icon:"group",size:"l"}),e("span",{children:"Manage members"})]})]})},a),c&&e($e,{class:"light",onClick:v=>{v.target===v.currentTarget&&p(!1)},children:e(Yt,{list:c==null?void 0:c.list,onClose:v=>{v.state==="success"&&v.list?h(v.list):v.state==="deleted"&&(location.hash="/l"),p(!1)}})}),f&&e($e,{class:"light",onClick:v=>{v.target===v.currentTarget&&b(!1)},children:e(mo,{listID:a,onClose:()=>b(!1)})})]})}const po=40;function mo({listID:t,onClose:n}){const{masto:i,instance:o}=B(),[a,s]=C([]),[u,l]=C("default"),[r,d]=C(!1),h=D();async function c(p){d(!1),l("loading"),(async()=>{try{(p||!h.current)&&(h.current=i.v1.lists.$select(t).accounts.list({limit:po}));const f=await h.current.next();let{done:b,value:g}=f;g!=null&&g.length?(s(p?g:a.concat(g)),d(!b)):d(!1),l("default")}catch{l("error")}})()}return z(()=>{c(!0)},[]),e("div",{class:"sheet",id:"list-manage-members-container",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Manage members"})}),e("main",{children:e("ul",{children:[a.map(p=>e("li",{children:[e(qe,{account:p,instance:o}),e(go,{account:p,listID:t})]},p.id)),r&&u==="default"&&e(lt,{as:"li",onChange:p=>p&&c(),children:e("button",{type:"button",class:"light block",onClick:c,children:"Show more…"})})]})})]})}function go({account:t,listID:n}){const{masto:i}=B(),[o,a]=C("default"),[s,u]=C(!1);return e(ze,{confirm:!s,confirmLabel:e("span",{children:["Remove @",t.username," from list?"]}),align:"end",menuItemClassName:"danger",onClick:()=>{s?(a("loading"),(async()=>{try{await i.v1.lists.$select(n).accounts.create({accountIds:[t.id]}),a("default"),u(!1)}catch{a("error")}})()):(a("loading"),(async()=>{try{await i.v1.lists.$select(n).accounts.remove({accountIds:[t.id]}),a("default"),u(!0)}catch{a("error")}})())},children:e("button",{type:"button",class:`light ${s?"":"danger"}`,disabled:o==="loading",children:s?"Add":"Remove…"})})}const Tn=20,bo=new URLSearchParams;function ds({columnMode:t,...n}){const{masto:i,instance:o}=B(),[a]=t?[bo]:He(),[s,u]=C(null),l=(n==null?void 0:n.type)||a.get("type")||s;Re(`Mentions${l==="private"?" (Private)":""}`,"/mentions");const r=D(),d=D();async function h(m){(m||!r.current)&&(r.current=i.v1.notifications.list({limit:Tn,types:["mention"]}));const y=await r.current.next();let{value:S}=y;return S!=null&&S.length&&(m&&(d.current=S[0].id),S.forEach(({status:I})=>{Ae(I,o)})),{...y,value:S==null?void 0:S.map(I=>I.status)}}const c=D(),p=D();async function f(m){(m||!c.current)&&(c.current=i.v1.conversations.list({limit:Tn}));const y=await c.current.next();let{value:S}=y;return S=S==null?void 0:S.filter(I=>I.lastStatus),S!=null&&S.length&&(m&&(p.current=S[0].lastStatus.id),S.forEach(({lastStatus:I})=>{Ae(I,o)})),{...y,value:S==null?void 0:S.map(I=>I.lastStatus)}}function b(...m){return l==="private"?f(...m):h(...m)}async function g(){if(l==="private")try{const m=await i.v1.conversations.list({limit:1,since_id:p.current}).next();let{value:y}=m;return y!=null&&y.length?(p.current=y[0].lastStatus.id,!0):!1}catch{return!1}else try{const m=await i.v1.notifications.list({limit:1,types:["mention"],since_id:d.current}).next();let{value:y}=m;return y!=null&&y.length?(d.current=y[0].id,!0):!1}catch{return!1}}const v=he(()=>e("div",{class:"filter-bar centered",children:[e(ee,{to:"/mentions",class:l?"":"is-active",onClick:m=>{t&&(m.preventDefault(),u(null))},children:"All"}),e(ee,{to:"/mentions?type=private",class:l==="private"?"is-active":"",onClick:m=>{t&&(m.preventDefault(),u("private"))},children:"Private"})]}),[l]);return e(Ye,{title:"Mentions",id:"mentions",emptyText:"No one mentioned you :(",errorText:"Unable to load mentions.",instance:o,fetchItems:b,checkForUpdates:g,useItemID:!0,timelineStart:v,refresh:l})}const yo={mention:["account","status"],status:["account","status"],reblog:["account","status"],follow:["account"],follow_request:["account"],favourite:["account","status"],poll:["status"],update:["status"]};function wo(t){return t.filter(n=>{const{type:i,id:o,createdAt:a}=n;if(!i)return!1;const s=yo[i];return s!=null&&s.length?s.every(u=>!!n[u]):!0})}function us(t){t=wo(t);const n={},i=[];for(let s=0,u=0;sy.id===h.id);m?(m._types.push(c),m._types.sort().reverse(),v.id+=`-${r}`):(h._types=[c],v._accounts.push(h),v.id+=`-${r}`)}else{h._types=[c];let m=n[g]={...l,type:b,_accounts:[h]};i[u++]=m}}const o={},a=[];for(let s=0,u=0;s{Ae(G.status,i,{skipThreading:!0})});const le=us(te);_?(k.notificationsLast=te[0],k.notifications=le,n.v1.markers.create({notifications:{lastReadId:te[0].id}}).catch(()=>{})):k.notifications.push(...le)}return k.notificationsShowNew=!1,k.notificationsLastFetchTime=Date.now(),W}async function O(){try{return await n.v1.followRequests.list({limit:80})}catch{return[]}}const U=()=>{s("loading"),(async()=>{try{const _=await O();I(_),s("default")}catch{s("error")}})()};async function P(){try{return await n.v1.announcements.list()}catch{return[]}}const M=_=>{x(!1),s("loading"),(async()=>{try{const W=F(_);_&&(P().then(le=>{le.sort((G,oe)=>{const Q=new Date(G.updatedAt||G.createdAt);return new Date(oe.updatedAt||oe.createdAt)-Q}),$(le)}).catch(()=>{}),O().then(le=>{I(le)}).catch(()=>{}));const{done:te}=await W;h(!te),s("default")}catch{s("error")}})()};z(()=>{M(!0)},[]),z(()=>{v&&M(!0)},[v]);const[E,x]=C(!1),N=Ve(({disableIdleCheck:_=!1}={})=>{var W;a!=="loading"&&o.settings.autoRefresh&&((W=f.current)==null?void 0:W.scrollTop)<16&&(_||window.__IDLE__)&&!Io()&&M(!0)},[o.notificationsShowNew,o.settings.autoRefresh,a]),j=D();at(_=>{let W;if(_){const te=Date.now()-j.current;!j.current||te>1e3*3?N({disableIdleCheck:!0}):j.current=Date.now(),W=zs(k,"notificationsShowNew",le=>{le&&N(),x(le)})}return()=>{W==null||W()}});const se=new Date,V=new Date(se-24*60*60*1e3);let ye=new Date;const ce=!o.notifications.some(_=>new Date(_.createdAt).toDateString()===se.toDateString()),X=D();return z(()=>{l&&(k.routeNotification={id:l,accessToken:atob(r)})},[l,r]),e("div",{id:"notifications-page",class:"deck-container",ref:f,tabIndex:"-1",children:e("div",{class:`timeline-deck deck ${c?"only-mentions":""}`,children:[e("header",{hidden:y,onClick:_=>{var W;_.target.closest("a, button")||(W=f.current)==null||W.scrollTo({top:0,behavior:"smooth"})},class:a==="loading"?"loading":"",children:[e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(mt,{}),e(ee,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l",alt:"Home"})})]}),e("h1",{children:"Notifications"}),e("div",{class:"header-side"})]}),E&&a!=="loading"&&e("button",{class:"updates-button shiny-pill",type:"button",onClick:()=>{var _;M(!0),(_=f.current)==null||_.scrollTo({top:0,behavior:"smooth"})},children:[e(w,{icon:"arrow-up"})," New notifications"]})]}),T.length>0&&e("div",{class:"shazam-container",children:e("div",{class:"shazam-container-inner",children:e("details",{class:"announcements",children:[e("summary",{children:[e("span",{children:[e(w,{icon:"announce",class:"announcement-icon",size:"l"})," ",e("b",{children:["Announcement",T.length>1?"s":""]})," ",e("small",{class:"insignificant",children:i})]}),T.length>1&&e("span",{class:"announcements-nav-buttons",children:T.map((_,W)=>e("button",{type:"button",class:"plain2 small",onClick:()=>{var te;(te=X.current)==null||te.children[W].scrollIntoView({behavior:"smooth",block:"nearest"})},children:W+1}))})]}),e("ul",{class:`announcements-list-${T.length>1?"multiple":"single"}`,ref:X,children:T.map(_=>e("li",{children:e(To,{announcement:_})}))})]})})}),S.length>0&&e("div",{class:"follow-requests",children:[e("h2",{class:"timeline-header",children:"Follow requests"}),S.length>5?e("details",{children:[e("summary",{children:[S.length," follow requests"]}),e("ul",{children:S.map(_=>e("li",{children:[e(qe,{account:_}),e(Ft,{accountID:_.id,onChange:()=>{}})]},_.id))})]}):e("ul",{children:S.map(_=>e("li",{children:[e(qe,{account:_}),e(Ft,{accountID:_.id,onChange:()=>{}})]},_.id))})]}),e("div",{id:"mentions-option",children:e("label",{children:[e("input",{type:"checkbox",checked:c,onChange:_=>{p(_.target.checked)}})," ","Only mentions"]})}),e("h2",{class:"timeline-header",children:"Today"}),ce&&!!o.notifications.length&&e("p",{class:"ui-state insignificant",children:a==="default"?"You're all caught up.":e(A,{children:"…"})}),o.notifications.length?e(A,{children:o.notifications.filter(_=>_.type!=="follow_request").map(_=>{if(c&&_.type!=="mention")return null;const W=new Date(_.createdAt),te=W.toDateString()!==ye.toDateString();te&&(ye=W);const le=W.toDateString()===V.toDateString()?"Yesterday":Ke(ye,{hideTime:!0});return e(A,{children:[te&&e("h2",{class:"timeline-header",children:le}),e(Kt,{instance:i,notification:_},_.id)]},_.id)})}):e(A,{children:[a==="loading"&&e(A,{children:e("ul",{class:"timeline flat",children:Array.from({length:5}).map((_,W)=>e("li",{class:"notification skeleton",children:[e("div",{class:"notification-type",children:e(w,{icon:"notification",size:"xl"})}),e("div",{class:"notification-content",children:e("p",{children:"███████████ ████"})})]}))})}),a==="error"&&e("p",{class:"ui-state",children:["Unable to load notifications",e("br",{}),e("br",{}),e("button",{type:"button",onClick:()=>M(!0),children:"Try again"})]})]}),d&&e(lt,{onChange:_=>{_&&M()},children:e("button",{type:"button",class:"plain block",disabled:a==="loading",onClick:()=>M(),style:{marginBlockEnd:"6em"},children:a==="loading"?e(Ie,{abrupt:!0}):e(A,{children:"Show more…"})})})]})})}function Io(){return!!document.querySelector(".deck-backdrop, #modal-container > *")}function To({announcement:t}){const{instance:n}=B(),{contact:i}=As(),o=i==null?void 0:i.account,{id:a,content:s,startsAt:u,endsAt:l,published:r,allDay:d,publishedAt:h,updatedAt:c,read:p,mentions:f,statuses:b,tags:g,emojis:v,reactions:m}=t,y=new Date(h),S=Ke(y),I=new Date(c),T=Ke(I);return e("div",{class:"announcement-block",children:[e(qe,{account:o}),e("div",{class:"announcement-content",onClick:Nn({mentions:f,instance:n}),dangerouslySetInnerHTML:{__html:Pt(s,{emojis:v})}}),e("p",{class:"insignificant",children:[e("time",{datetime:y.toISOString(),children:Ke(y)}),c&&T!==S&&e(A,{children:[" ","•"," ",e("span",{class:"ib",children:["Updated"," ",e("time",{datetime:I.toISOString(),children:Ke(I)})]})]})]}),e("div",{class:"announcement-reactions",hidden:!0,children:m.map($=>{const{name:L,count:F,me:O,staticUrl:U,url:P}=$;return e("button",{type:"button",class:`plain4 small ${O?"reacted":""}`,children:[P||U?e("img",{src:P||U,alt:L,width:"16",height:"16"}):e("span",{children:L})," ",e("span",{class:"count",children:Ue(F)})]})})})]})}const hs=Be(ko),Co=20;function Ot({local:t,columnMode:n,...i}){const o=ke(k),a=!!t,s=n?{}:tt(),{masto:u,instance:l}=B({instance:(i==null?void 0:i.instance)||s.instance}),{masto:r,instance:d}=B(),h=`${a?"Local":"Federated"} timeline (${l})`;Re(h,a?"/:instance?/p/l":"/:instance?/p");const c=D(),p=D();async function f(g){(g||!p.current)&&(p.current=u.v1.timelines.public.list({limit:Co,local:a}));const v=await p.current.next();let{value:m}=v;return m!=null&&m.length&&(g&&(c.current=m[0].id),m.forEach(y=>{Ae(y,l)})),{...v,value:m}}async function b(){try{const g=await u.v1.timelines.public.list({limit:1,local:a,since_id:c.current}).next();let{value:v}=g;return v=ct(v,"public"),!!(v!=null&&v.length)}catch{return!1}}return e(Ye,{title:h,titleComponent:e("h1",{class:"header-double-lines",children:[e("b",{children:a?"Local timeline":"Federated timeline"}),e("div",{children:l})]}),id:"public",instance:l,emptyText:"No one has posted anything yet.",errorText:"Unable to load posts",fetchItems:f,checkForUpdates:b,useItemID:!0,headerStart:e(A,{}),boostsCarousel:o.settings.boostsCarousel,filterContext:"public",headerEnd:e(Fe,{portal:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(ie,{href:a?`/#/${l}/p`:`/#/${l}/p/l`,children:a?e(A,{children:[e(w,{icon:"transfer"})," ",e("span",{children:"Switch to Federated"})]}):e(A,{children:[e(w,{icon:"transfer"})," ",e("span",{children:"Switch to Local"})]})}),e(Pe,{}),e(ie,{onClick:()=>{let g=prompt('Enter a new instance e.g. "mastodon.social"');if(!/\./.test(g)){g&&alert("Invalid instance");return}g&&(g=g.toLowerCase().trim(),location.hash=a?`/${g}/p/l`:`/${g}/p`)},children:[e(w,{icon:"bus"})," ",e("span",{children:"Go to another instance…"})]}),d!==l&&e(ie,{onClick:()=>{location.hash=a?`/${d}/p/l`:`/${d}/p`},children:[e(w,{icon:"bus"})," ",e("small",{class:"menu-double-lines",children:["Go to my instance (",e("b",{children:d}),")"]})]})]})},l+a)}const yt=5,Et=40,$o=new URLSearchParams;function fs({columnMode:t,...n}){const i=t?{}:tt(),{masto:o,instance:a,authenticated:s}=B({instance:i.instance}),[u,l]=C("default"),[r]=t?[$o]:He(),d=D(),h=(n==null?void 0:n.query)||r.get("q"),c=t?"statuses":(n==null?void 0:n.type)||r.get("type");Re(h?`Search: ${h}${c?` (${{statuses:"Posts",accounts:"Accounts",hashtags:"Hashtags"}[c]})`:""}`:"Search","/search");const[p,f]=C(!1),b=D(0);z(()=>{b.current=0},[h,c]);const g=D();Ge(()=>{var x,N;(N=(x=g.current)==null?void 0:x.scrollTo)==null||N.call(x,0,0)},[h,c]);const[v,m]=C([]),[y,S]=C([]),[I,T]=C([]);z(()=>{m([]),S([]),T([])},[h]);const $={statuses:m,accounts:S,hashtags:T},[L,F]=C({}),O=async x=>{if(!(x!=null&&x.length))return;const N=await Wt(x,L);N&&F({...L,...N})};function U(x){x&&(b.current=0),!(!x&&!s)&&(l("loading"),x&&!c&&(m(v.slice(0,yt)),S(y.slice(0,yt)),T(I.slice(0,yt))),(async()=>{var j,se;const N={q:h,resolve:s,limit:yt};c&&(N.limit=Et,N.type=c,s&&(N.offset=b.current));try{const V=await o.v2.search.fetch(N);if(c)if(x){$[c](V[c]);const ye=(j=V[c])==null?void 0:j.length;b.current=Et,f(!!ye)}else{$[c](ce=>[...ce,...V[c]]);const ye=(se=V[c])==null?void 0:se.length;b.current=b.current+Et,f(!!ye)}else m(V.statuses||[]),S(V.accounts||[]),T(V.hashtags||[]),b.current=0,f(!1);O(V.accounts),l("default")}catch{l("error")}})())}const{reachStart:P}=Zt({scrollableRef:g}),M=D();at(x=>{if(x&&P){const N=Date.now()-M.current;!M.current||N>1e3*3?U(!0):M.current=Date.now()}}),z(()=>{var x,N,j,se;(N=(x=d.current)==null?void 0:x.setValue)==null||N.call(x,h||""),h?U(!0):(se=(j=d.current)==null?void 0:j.focus)==null||se.call(j)},[h,c,a]),Me("/",x=>{var N,j;(j=(N=d.current)==null?void 0:N.focus)==null||j.call(N)},{preventDefault:!0});const[E]=qt();return e("div",{id:"search-page",class:"deck-container",ref:g,children:e("div",{class:"timeline-deck deck",children:[e("header",{class:u==="loading"?"loading":"",children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:e(mt,{})}),e(is,{ref:d}),e("div",{class:"header-side",children:e("button",{type:"button",class:"plain",onClick:()=>{U(!0)},disabled:u==="loading",children:e(w,{icon:"search",size:"l"})})})]})}),e("main",{children:[!!h&&!t&&e("div",{ref:E,class:`filter-bar ${u==="loading"?"loading":""}`,children:[!!c&&e(ee,{to:`/search${h?`?q=${encodeURIComponent(h)}`:""}`,children:"‹ All"}),[{label:"Accounts",type:"accounts",to:`/search?q=${encodeURIComponent(h)}&type=accounts`},{label:"Hashtags",type:"hashtags",to:`/search?q=${encodeURIComponent(h)}&type=hashtags`},{label:"Posts",type:"statuses",to:`/search?q=${encodeURIComponent(h)}&type=statuses`}].sort((x,N)=>x.type===c?-1:N.type===c?1:0).map(x=>e(ee,{to:x.to,children:x.label},x.type))]}),h?e(A,{children:[(!c||c==="accounts")&&e(A,{children:[c!=="accounts"&&e("h2",{class:"timeline-header",children:"Accounts"}),y.length>0?e(A,{children:[e("ul",{class:"timeline flat accounts-list",children:y.map(x=>e("li",{children:e(qe,{account:x,instance:a,showStats:!0,relationship:L[x.id]})},x.id))}),c!=="accounts"&&e("div",{class:"ui-state",children:e(ee,{class:"plain button",to:`/search?q=${h}&type=accounts`,children:["See more accounts ",e(w,{icon:"arrow-right"})]})})]}):!c&&(u==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):e("p",{class:"ui-state",children:"No accounts found."}))]}),(!c||c==="hashtags")&&e(A,{children:[c!=="hashtags"&&e("h2",{class:"timeline-header",children:"Hashtags"}),I.length>0?e(A,{children:[e("ul",{class:"link-list hashtag-list",children:I.map(x=>{var V;const{name:N,history:j}=x,se=(V=j==null?void 0:j.reduce)==null?void 0:V.call(j,(ye,ce)=>ye+ +ce.uses,0);return e("li",{children:e(ee,{to:a?`/${a}/t/${N}`:`/t/${N}`,children:[e(w,{icon:"hashtag"}),e("span",{children:N}),!!se&&e("span",{class:"count",children:Ue(se)})]})},`${N}-${se}`)})}),c!=="hashtags"&&e("div",{class:"ui-state",children:e(ee,{class:"plain button",to:`/search?q=${h}&type=hashtags`,children:["See more hashtags ",e(w,{icon:"arrow-right"})]})})]}):!c&&(u==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):e("p",{class:"ui-state",children:"No hashtags found."}))]}),(!c||c==="statuses")&&e(A,{children:[c!=="statuses"&&e("h2",{class:"timeline-header",children:"Posts"}),v.length>0?e(A,{children:[e("ul",{class:"timeline",children:v.map(x=>e("li",{children:e(ee,{class:"status-link",to:a?`/${a}/s/${x.id}`:`/s/${x.id}`,children:e(Le,{status:x})})},x.id))}),c!=="statuses"&&e("div",{class:"ui-state",children:e(ee,{class:"plain button",to:`/search?q=${h}&type=statuses`,children:["See more posts ",e(w,{icon:"arrow-right"})]})})]}):!c&&(u==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):e("p",{class:"ui-state",children:"No posts found."}))]}),!!c&&(u==="default"?p?e(lt,{onChange:x=>{x&&U()},children:e("button",{type:"button",class:"plain block",onClick:()=>U(),style:{marginBlockEnd:"6em"},children:"Show more…"})}):e("p",{class:"ui-state insignificant",children:"The end."}):u==="loading"&&e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}))]}):u==="loading"?e("p",{class:"ui-state",children:e(Ie,{abrupt:!0})}):e("p",{class:"ui-state",children:"Enter your search term or paste a URL above to get started."})]})]})})}const xo=20,Ao=et(t=>t.v1.trends.links.list().next(),{maxAge:10*60*1e3});function ps({columnMode:t,...n}){const i=ke(k),o=t?{}:tt(),{masto:a,instance:s}=B({instance:(n==null?void 0:n.instance)||o.instance}),{masto:u,instance:l}=B(),r=`Trending (${s})`;Re(r,"/:instance?/trending");const d=D(),[h,c]=C([]),[p,f]=C([]),b=D();async function g(y){var T;if(y||!b.current){b.current=a.v1.trends.statuses.list({limit:xo});try{const $=a.v1.trends.tags.list(),{value:L}=await $.next();L!=null&&L.length&&c(L)}catch{}try{const{value:$}=await Ao(a),L=(T=$==null?void 0:$.filter)==null?void 0:T.call($,F=>F.type==="link");L!=null&&L.length&&f(L)}catch{}}const S=await b.current.next();let{value:I}=S;return I!=null&&I.length&&(y&&(d.current=I[0].id),I.forEach($=>{Ae($,s)})),{...S,value:I}}async function v(){try{const y=await a.v1.trends.statuses.list({limit:1}).next();let{value:S}=y;return S=ct(S,"public"),S!=null&&S.length&&S[0].id!==d.current?(d.current=S[0].id,!0):!1}catch{return!1}}const m=he(()=>e(A,{children:[!!h.length&&e("div",{class:"filter-bar expandable",children:[e(w,{icon:"chart",class:"insignificant",size:"l"}),h.map((y,S)=>{const{name:I,history:T}=y,$=T.reduce((L,F)=>L+ +F.uses,0);return e(ee,{to:`/${s}/t/${I}`,children:[e("span",{children:[e("span",{class:"more-insignificant",children:"#"}),I]}),e("span",{class:"filter-count",children:Ue($)})]},I)})]}),!!p.length&&e("div",{class:"links-bar",children:[e("header",{children:e("h3",{children:"Trending News"})}),p.map(y=>{const{authorName:S,authorUrl:I,blurhash:T,description:$,height:L,image:F,imageDescription:O,language:U,providerName:P,providerUrl:M,publishedAt:E,title:x,url:N,width:j}=y,se=new URL(N).hostname.replace(/^www\./,"").replace(/\/$/,"");let V;if(T){const ye=qn(T),ce=es(ye);V=ts([.6,ce[1],ce[2]])}return e("a",{href:N,target:"_blank",rel:"noopener noreferrer",style:V?{"--accent-color":`rgb(${V.join(",")})`,"--accent-alpha-color":`rgba(${V.join(",")}, 0.4)`}:{},children:e("article",{children:[e("figure",{children:e("img",{src:F,alt:O,width:j,height:L,loading:"lazy"})}),e("div",{class:"article-body",children:[e("header",{children:[e("div",{class:"article-meta",children:[e("span",{class:"domain",children:se})," ",!!E&&e(A,{children:"· "}),!!E&&e(A,{children:e($t,{datetime:E,format:"micro"})})]}),!!x&&e("h1",{class:"title",lang:U,dir:"auto",children:x})]}),!!$&&e("p",{class:"description",lang:U,dir:"auto",children:$})]})]})},N)})]})]}),[h,p]);return e(Ye,{title:r,titleComponent:e("h1",{class:"header-double-lines",children:[e("b",{children:"Trending"}),e("div",{children:s})]}),id:"trending",instance:s,emptyText:"No trending posts.",errorText:"Unable to load posts",fetchItems:g,checkForUpdates:v,checkForUpdatesInterval:5*60*1e3,useItemID:!0,headerStart:e(A,{}),boostsCarousel:i.settings.boostsCarousel,filterContext:"public",timelineStart:m,headerEnd:e(Fe,{portal:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(ie,{onClick:()=>{let y=prompt('Enter a new instance e.g. "mastodon.social"');if(!/\./.test(y)){y&&alert("Invalid instance");return}y&&(y=y.toLowerCase().trim(),location.hash=`/${y}/trending`)},children:[e(w,{icon:"bus"})," ",e("span",{children:"Go to another instance…"})]}),l!==s&&e(ie,{onClick:()=>{location.hash=`/${l}/trending`},children:[e(w,{icon:"bus"})," ",e("small",{class:"menu-double-lines",children:["Go to my instance (",e("b",{children:l}),")"]})]})]})},s)}function Lo(){Re("Home","/");const t=ke(k),{shortcuts:n}=t,i=n.map(o=>{if(!o)return null;const{type:a,...s}=o,u={following:Xt,notifications:hs,list:ls,public:Ot,bookmarks:as,favourites:cs,hashtag:rs,mentions:ds,trending:ps,search:fs}[a];return!u||a==="search"&&!s.query?null:e(u,{...s,columnMode:!0},a+JSON.stringify(s))});return Me(["1","2","3","4","5","6","7","8","9"],(o,a)=>{try{const s=parseInt(a.keys[0],10)-1;document.querySelectorAll("#columns > *")[s].focus()}catch{}}),e("div",{id:"columns",onContextMenu:o=>{o.target.closest(".deck > header")&&!o.target.closest("a")&&!o.target.closest("button")&&(o.preventDefault(),k.showShortcutsSettings=!0)},children:i})}function Mo(){var n;const t=ke(k);return z(()=>{(async()=>{const i=await ht.drafts.keys();if(i.length){const o=Fn();i.filter(s=>s.startsWith(o)).length&&(k.showDrafts=!0)}})()},[]),e(A,{children:(t.settings.shortcutsViewMode==="multi-column"||!t.settings.shortcutsViewMode&&t.settings.shortcutsColumnsMode)&&((n=t.shortcuts)!=null&&n.length)?e(Lo,{}):e(Xt,{title:"Home",path:"/",id:"home",headerStart:!1,headerEnd:e(Ro,{})})})}function Ro(){const t=ke(k),n=D(),[i,o]=C(void 0);return e(A,{children:[e(ee,{ref:n,to:"/notifications",class:`button plain notifications-button ${t.notificationsShowNew?"has-badge":""} ${i||""}`,onClick:a=>{a.stopPropagation(),window.matchMedia("(min-width: calc(40em))").matches&&(a.preventDefault(),o(s=>s?void 0:"open"))},children:e(w,{icon:"notification",size:"l",alt:"Notifications"})}),e(Po,{state:i,anchorRef:n,onClose:()=>o(void 0)})]})}const _o=30,Eo=5;function Po({anchorRef:t,state:n,onClose:i}){const{masto:o,instance:a}=B(),s=ke(k),[u,l]=C("default"),r=o.v1.notifications.list({limit:_o});async function d(){const b=await r.next(),g=b.value;if(g!=null&&g.length){g.forEach(m=>{Ae(m.status,a,{skipThreading:!0})});const v=us(g);k.notificationsLast=g[0],k.notifications=v,o.v1.markers.create({notifications:{lastReadId:g[0].id}}).catch(()=>{})}return k.notificationsShowNew=!1,k.notificationsLastFetchTime=Date.now(),b}const[h,c]=C(!1);function p(){return o.v1.followRequests.list({limit:1})}function f(){l("loading"),(async()=>{try{await d();const b=await p();c(!!(b!=null&&b.length)),l("default")}catch{l("error")}})()}return z(()=>{n==="open"&&f()},[n]),e(jn,{menuClassName:"notifications-menu",state:n,anchorRef:t,onClose:i,portal:{target:document.body},overflow:"auto",viewScroll:"close",position:"anchor",align:"center",boundingBoxPadding:"8 8 8 8",children:[e("header",{children:e("h2",{children:"Notifications"})}),e("main",{children:s.notifications.length?e(A,{children:s.notifications.slice(0,Eo).map(b=>e(Kt,{instance:a,notification:b,disableContextMenu:!0},b.id))}):u==="loading"?e("div",{class:"ui-state",children:e(Ie,{abrupt:!0})}):u==="error"&&e("div",{class:"ui-state",children:[e("p",{children:"Unable to fetch notifications."}),e("p",{children:e("button",{type:"button",onClick:f,children:"Try again"})})]})}),e("footer",{children:[e(ee,{to:"/mentions",class:"button plain",children:[e(w,{icon:"at"})," ",e("span",{children:"Mentions"})]}),e(ee,{to:"/notifications",class:"button plain2",children:[h?e(A,{children:[e("span",{class:"tag collapsed",children:"New"})," ",e("span",{children:"Follow Requests"})]}):e("b",{children:"See all"})," ",e(w,{icon:"arrow-right"})]})]})]})}const No=Be(Mo),Do=[/^\/@[^@\/]+\/(?:statuses|posts)\/([^\/]+)/i,/\/notes\/([^\/]+)/i,/^\/(?:notice|objects)\/([a-z0-9-]+)/i,/\/@[^@\/]+@?[^\/]+?\/([^\/]+)/i];function ms(t){const{hostname:n,pathname:i}=new URL(t);for(const o of Do){const[,a]=i.match(o)||[];if(a)return{instance:n,id:a}}return null}function Uo(t){const{instance:n,id:i}=ms(t);return n&&i?`/${n}/s/${i}`:null}function Fo(){const n=rt().pathname.replace(/^\//,""),i=ms(n),o=i!=null&&i.instance?`/${i.instance}/s/${i.id}`:null,[a,s]=C("loading");return Ge(()=>{s("loading"),(async()=>{try{const{instance:u,id:l}=i,{masto:r}=B({instance:u});if(await r.v1.statuses.$select(l).fetch()){window.location.hash=o+"?view=full";return}}catch{}{const{masto:u,instance:l}=B(),r=await u.v2.search.fetch({q:n,type:"statuses",limit:1,resolve:!0});if(r.statuses.length){const d=r.statuses[0];window.location.hash=`/${l}/s/${d.id}?view=full`}else window.location.hash=o+"?view=full"}})()},[o]),e("div",{class:"ui-state",tabIndex:"-1",children:[a==="loading"?e(A,{children:[e(Ie,{abrupt:!0}),e("h2",{children:"Resolving…"}),e("p",{children:e("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:n})})]}):e(A,{children:[e("h2",{children:"Unable to resolve URL"}),e("p",{children:e("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:n})})]}),e("hr",{}),e("p",{children:e(ee,{to:"/",children:"Go home"})})]})}function Oo(){const{masto:t}=B();Re("Lists","/l");const[n,i]=C("default"),[o,a]=xt(d=>d+1,0),[s,u]=C([]);z(()=>{i("loading"),(async()=>{try{const d=await t.v1.lists.list();d.sort((h,c)=>h.title.localeCompare(c.title)),u(d),i("default")}catch{i("error")}})()},[o]);const[l,r]=C(!1);return e("div",{id:"lists-page",class:"deck-container",tabIndex:"-1",children:[e("div",{class:"timeline-deck deck",children:[e("header",{children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(mt,{}),e(ee,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l"})})]}),e("h1",{children:"Lists"}),e("div",{class:"header-side",children:e("button",{type:"button",class:"plain",onClick:()=>r(!0),children:e(w,{icon:"plus",size:"l",alt:"New list"})})})]})}),e("main",{children:s.length>0?e("ul",{class:"link-list",children:s.map(d=>e("li",{children:e(ee,{to:`/l/${d.id}`,children:e("span",{children:[e(w,{icon:"list"})," ",e("span",{children:d.title})]})})}))}):n==="loading"?e("p",{class:"ui-state",children:e(Ie,{})}):n==="error"?e("p",{class:"ui-state",children:"Unable to load lists."}):e("p",{class:"ui-state",children:"No lists yet."})})]}),l&&e($e,{class:"light",onClick:d=>{d.target===d.currentTarget&&r(!1)},children:e(Yt,{list:l==null?void 0:l.list,onClose:d=>{d.state==="success"&&a(),r(!1)}})})]})}const zo=""+new URL("instances-cddSOnAA.json",import.meta.url).href;var Bo={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_CLIENT_NAME:Ho,PHANPY_WEBSITE:qo}=Bo,Qt="read write follow push";async function Vo({instanceURL:t}){const n=new URLSearchParams({client_name:Ho,redirect_uris:location.origin+location.pathname,scopes:Qt,website:qo});return await(await fetch(`https://${t}/api/v1/apps`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString()})).json()}async function Go({instanceURL:t,client_id:n}){const i=new URLSearchParams({client_id:n,scope:Qt,redirect_uri:location.origin+location.pathname,response_type:"code"});return`https://${t}/oauth/authorize?${i.toString()}`}async function jo({instanceURL:t,client_id:n,client_secret:i,code:o}){const a=new URLSearchParams({client_id:n,client_secret:i,redirect_uri:location.origin+location.pathname,grant_type:"authorization_code",code:o,scope:Qt});return await(await fetch(`https://${t}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a.toString()})).json()}var Yo={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_DEFAULT_INSTANCE:Wo}=Yo;function Ko(){Re("Log in");const t=D(),n=ne.local.get("instanceURL"),[i,o]=C("default"),[a]=He(),s=a.get("instance"),u=a.get("submit"),[l,r]=C(s||(n==null?void 0:n.toLowerCase())||""),[d,h]=C([]);z(()=>{(async()=>{try{const y=await(await fetch(zo)).json();h(y)}catch{}})()},[]);const c=m=>{m&&(ne.local.set("instanceURL",m),(async()=>{o("loading");try{const{client_id:y,client_secret:S,vapid_key:I}=await Vo({instanceURL:m});y&&S?(ne.session.set("clientID",y),ne.session.set("clientSecret",S),ne.session.set("vapidKey",I),location.href=await Go({instanceURL:m,client_id:y})):alert("Failed to register application"),o("default")}catch{o("error")}})())},p=l?l.replace(/^https?:\/\//,"").replace(/\/+$/,"").replace(/^@?[^@]+@/,"").trim():null,f=/[^\s\r\n\t\/\\]+\.[^\s\r\n\t\/\\]+/.test(p)&&!/[\s\/\\@]/.test(p),b=p?d.filter(m=>m.includes(l)).sort((m,y)=>{const S=m.toLowerCase().startsWith(l.toLowerCase()),I=y.toLowerCase().startsWith(l.toLowerCase());return S&&!I?-1:!S&&I?1:0}).slice(0,10):[],g=f?p:b!=null&&b.length?b[0]:l?d.find(m=>m.includes(l)):null,v=m=>{m.preventDefault(),c(g)};return u&&z(()=>{c(s||g)},[]),e("main",{id:"login",style:{textAlign:"center"},children:e("form",{onSubmit:v,children:[e("h1",{children:[e("img",{src:Gt,alt:"",width:"80",height:"80"}),e("br",{}),"Log in"]}),e("label",{children:[e("p",{children:"Instance"}),e("input",{value:l,required:!0,type:"text",class:"large",id:"instanceURL",ref:t,disabled:i==="loading",autocorrect:"off",autocapitalize:"off",autocomplete:"off",spellcheck:!1,placeholder:"instance domain",onInput:m=>{r(m.target.value)}}),(b==null?void 0:b.length)>0?e("ul",{id:"instances-suggestions",children:b.map((m,y)=>e("li",{children:e("button",{type:"button",class:"plain5",onClick:()=>{c(m)},children:m})}))}):e("div",{id:"instances-eg",children:"e.g. “mastodon.social”"})]}),i==="error"&&e("p",{class:"error",children:"Failed to log in. Please try again or another instance."}),e("div",{children:[e("button",{disabled:i==="loading"||!l||!g,children:g?`Continue with ${g}`:"Continue"})," "]}),e(Ie,{hidden:i!=="loading"}),e("hr",{}),!Wo&&e("p",{children:e("a",{href:"https://joinmastodon.org/servers",target:"_blank",children:"Don't have an account? Create one!"})}),e("p",{children:e(ee,{to:"/",children:"Go home"})})]})})}const wt=40,Zo=10,Jo=5;let zt={},St={},kt={};function Bt(t){delete St[t],delete kt[t]}const dt={block:"nearest",inline:"center",behavior:"smooth"},Cn=".status-link:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *), .status-focus:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *)",$n=/\/s\//i;function Xo(t){const{id:n}=t,{masto:i,instance:o}=B({instance:t.instance}),a=ke(k),[s,u]=He(),l=s.get("media"),r=s.get("media-only"),d=parseInt(l||r,10);let h=d>0;const c=s.get("mediaStatusID"),p=Hn(c,o);c&&!p&&(h=!1);const f=h&&!!r,b=je(n,o),[g,v]=C(k.statuses[b]);z(()=>{k.statuses[b]&&v(k.statuses[b])},[b]);const m=he(()=>{const{prevLocation:I}=k,T=((I==null?void 0:I.pathname)||"")+((I==null?void 0:I.search)||""),$=pt("/:instance/s/:id",T)||pt("/s/:id",T);return!T||$?"/":T},[]);z(()=>{!g&&h&&(async()=>{try{const I=await i.v1.statuses.$select(n).fetch();Ae(I,o),v(I)}catch{alert("Unable to load post."),location.hash=m}})()},[h]);const y=c?p==null?void 0:p.mediaAttachments:g==null?void 0:g.mediaAttachments,S=Ve(()=>{!window.matchMedia("(min-width: calc(40em + 350px))").matches&&a.prevLocation?history.back():f?location.hash=m:(s.delete("media"),s.delete("mediaStatusID"),u(s))},[f,m,a.prevLocation]);return z(()=>{let I=setTimeout(()=>{const T=document.querySelector(".carousel");T&&T.focus()},100);return()=>clearTimeout(I)},[f]),e("div",{class:"deck-backdrop",children:[h?y!=null&&y.length?e(ns,{mediaAttachments:y,statusID:c||n,instance:o,lang:g==null?void 0:g.language,index:d-1,onClose:S}):e("div",{class:"media-modal-container loading",children:e(Ie,{abrupt:!0})}):e(ee,{to:m}),!f&&e(Qo,{id:n,instance:t.instance,closeLink:m})]})}function Qo({id:t,closeLink:n="/",instance:i}){var ge,de;const[o,a]=He(),s=o.get("media"),u=o.get("mediaStatusID"),l=parseInt(s,10)>0,r=D(!k.prevLocation&&(history.length===1||"navigation"in window&&((de=(ge=navigation==null?void 0:navigation.entries)==null?void 0:ge.call(navigation))==null?void 0:de.length)===1)),[d,h]=C(o.get("view")||r.current?"full":null),c=!!parseInt(o.get("translate")),{masto:p,instance:f}=B({instance:i}),{masto:b,instance:g,authenticated:v}=B(),m=f===g,y=ke(k),[S,I]=C([]),[T,$]=C("default"),L=D(),F=je(t,f),O=D(0),U=D();z(()=>{var R;(R=U.current)==null||R.focus()},[]),z(()=>{var H;const R=Kn(()=>{if(!U.current)return;const{scrollTop:Z}=U.current;T!=="loading"&&(kt[t]=Z)},50);return(H=U.current)==null||H.addEventListener("scroll",R,{passive:!0}),R(),()=>{var Z;R.cancel(),(Z=U.current)==null||Z.removeEventListener("scroll",R)}},[t,T!=="loading"]);const P=D(),M=({reloadHero:R}={})=>{$("loading");let H;const Z=St[t];if(Z){const re=Z.filter(be=>k.statuses[F]);I(re)}else I([{id:t}]);return(async()=>{var q,ve;const re=()=>rn(()=>p.v1.statuses.$select(t).fetch(),{retries:4}),be=rn(()=>p.v1.statuses.$select(t).context.fetch(),{retries:8}),xe=!!y.statuses[F];let Te=y.statuses[F];if(!(xe&&!R))try{Te=await re(),Ae(Te,f),await new Promise(ue=>{setTimeout(ue,100)})}catch{$("error");return}try{let ue=function(J){return J==null?void 0:J.map(Se=>({id:Se.id,account:Se.account,repliesCount:Se.repliesCount,content:Se.content,weight:ft(Se),replies:ue(Se.__replies)}))};const fe=await be,{ancestors:Ne,descendants:De}=fe;O.current=(De==null?void 0:De.length)||0;const Ee=new Set;Ne.forEach(J=>{Ae(J,f,{skipThreading:!0}),J.inReplyToId&&!Ne.find(Se=>Se.id===J.inReplyToId)&&Ee.add(J.inReplyToId)});const nt=Ne.every(J=>J.account.id===Te.account.id),Oe=[];De.forEach(J=>{if(Ae(J,f,{skipThreading:!0}),J.inReplyToId&&!De.find(Se=>Se.id===J.inReplyToId)&&J.inReplyToId!==Te.id&&Ee.add(J.inReplyToId),J.inReplyToAccountId===J.account.id)Oe.push(J);else if(J.inReplyToId===Te.id)Oe.push(J);else if(!J.inReplyToAccountId&&Oe.find(Se=>Se.id===J.inReplyToId)&&J.account.id===Te.account.id)Oe.push(J);else{const Se=De.find(bs=>bs.id===J.inReplyToId);Se&&(Se.__replies||(Se.__replies=[]),Se.__replies.push(J))}}),Ee.size;const We=[...Ne.map(J=>({id:J.id,ancestor:!0,isThread:nt,accountID:J.account.id,account:J.account,repliesCount:J.repliesCount,weight:ft(J)})),{id:t,accountID:Te.account.id,weight:ft(Te)},...Oe.map(J=>({id:J.id,account:J.account,accountID:J.account.id,descendant:!0,thread:J.account.id===Te.account.id,weight:ft(J),replies:ue(J.__replies)}))];$("default"),P.current={offsetTop:(q=L.current)==null?void 0:q.offsetTop,scrollTop:(ve=U.current)==null?void 0:ve.scrollTop};const Je=We.findIndex(J=>J.id===t);Je>=V&&ye(Je+1),I(We),St[t]=We,Ls(Te,f)}catch{$("error")}})(),()=>{clearTimeout(H)}};z(M,[t,p]),z(()=>{var H,Z;if(!S.length)return;const R=kt[t];if(R)U.current.scrollTop=R;else if(P.current){const re={offsetTop:(H=L.current)==null?void 0:H.offsetTop,scrollTop:(Z=U.current)==null?void 0:Z.scrollTop},be=re.offsetTop-P.current.offsetTop+re.scrollTop;U.current.scrollTop=be}else S.length===1&&(U.current.scrollTop=0);P.current=null},[S]),z(()=>{y.reloadStatusPage<=0||(async()=>{try{const{instanceURL:R}=ot(),H=`https://${R}/api/v1/statuses/${t}/context`;return await(await caches.open("api")).delete(H,{ignoreVary:!0}),M({reloadHero:!0})}catch{}})()},[y.reloadStatusPage]),z(()=>()=>{kt={},k.reloadStatusPage=0,St={},zt={},Ht.clear()},[]);const E=y.statuses[F]||y.statuses[t],x=he(()=>{if(!E)return"";const{account:R}=E,H=document.createElement("div");return H.innerHTML=R.displayName,H.innerText.trim()},[E]),N=he(()=>{if(!E)return"";let R=Bn(E);return R.length>64&&(R=R.slice(0,64)+"…"),R},[E]);Re(x&&N?`${x}: "${N}"`:"Status","/:instance?/s/:id");const j=he(()=>{if(!E)return;const{url:R}=E;if(R)return new URL(R).hostname},[E]),se=he(()=>{if(j)return j===f},[j,f]),[V,ye]=C(wt),ce=he(()=>S.length-V,[S.length,V]),X=S.some(R=>R.descendant),_=S.filter(R=>R.ancestor),[W,te]=C(!0),le=Yn(te,100),G=he(()=>{if(!L.current||W)return null;const{top:R}=L.current.getBoundingClientRect();return R>0?"down":"up"},[W]);Me("esc",()=>{location.hash=n},{enabled:!l,ignoreEventWhen:R=>!!document.querySelector("#modal-container > *")}),Me("backspace",()=>{location.hash=n}),Me("j",()=>{const R=document.activeElement.closest(".status-link, .status-focus"),H=R==null?void 0:R.getBoundingClientRect(),Z=Array.from(U.current.querySelectorAll(Cn));if(R&&H.top0){const re=Z.indexOf(R);let be=Z[re+1];be&&(be.focus(),be.scrollIntoView(dt))}else{const re=Z.find(be=>{const xe=be.getBoundingClientRect();return xe.top>=44&&xe.left>=0});re&&(re.focus(),re.scrollIntoView(dt))}}),Me("k",()=>{const R=document.activeElement.closest(".status-link, .status-focus"),H=R==null?void 0:R.getBoundingClientRect(),Z=Array.from(U.current.querySelectorAll(Cn));if(R&&H.top0){const re=Z.indexOf(R);let be=Z[re-1];be&&(be.focus(),be.scrollIntoView(dt))}else{const re=Z.find(be=>{const xe=be.getBoundingClientRect();return xe.top>=44&&xe.left>=0});re&&(re.focus(),re.scrollIntoView(dt))}}),Me("x",()=>{const R=document.activeElement.closest(".status-link, .status-focus");if(R){const H=R.nextElementSibling;H&&H.tagName.toLowerCase()==="details"&&(H.open=!H.open)}});const{nearReachStart:oe}=Zt({scrollableRef:U,distanceFromStartPx:16}),Q=D(l?"media+status":"status"),we=Ve((R,H,Z,re)=>{R.preventDefault(),R.stopPropagation(),a({media:H+1,mediaStatusID:re.id})},[t]),Y=Ve((R,H)=>{Bt(H.id)},[]);z(()=>{let R;return u&&l&&(R=setTimeout(()=>{var Z;const H=(Z=U.current)==null?void 0:Z.querySelector(`.status-link[href*="/${u}"]`);H&&H.scrollIntoView(dt)},400)),()=>{clearTimeout(R)}},[u,l]);const K=Ve(R=>{const{id:H,ancestor:Z,isThread:re,descendant:be,thread:xe,replies:Te,repliesCount:q,weight:ve}=R,ue=H===t;return e("li",{ref:ue?L:null,class:`${Z?"ancestor":""} ${be?"descendant":""} ${xe?"thread":""} ${ue?"hero":""}`,children:[ue?e(A,{children:[e(lt,{threshold:.1,onChange:le,class:"status-focus",tabIndex:0,children:e(Le,{statusID:H,instance:f,withinContext:!0,size:"l",enableTranslate:!0,forceTranslate:c})}),T!=="loading"&&!v?e("div",{class:"post-status-banner",children:[e("p",{children:"You're not logged in. Interactions (reply, boost, etc) are not possible."}),e(ee,{to:"/login",class:"button",children:"Log in"})]}):!m&&e("div",{class:"post-status-banner",children:[e("p",{children:["This post is from another instance (",e("b",{children:f}),"). Interactions (reply, boost, etc) are not possible."]}),e("button",{type:"button",disabled:T==="loading",onClick:()=>{$("loading"),(async()=>{try{const fe=await b.v2.search.fetch({q:E.url,type:"statuses",resolve:!0,limit:1});if(fe.statuses.length){const Ne=fe.statuses[0];location.hash=g?`/${g}/s/${Ne.id}`:`/s/${Ne.id}`}else throw new Error("No results")}catch(fe){$("default"),alert("Error: "+fe)}})()},children:[e(w,{icon:"transfer"})," Switch to my instance to enable interactions"]})]})]}):e(ee,{class:"status-link",to:f?`/${f}/s/${H}`:`/s/${H}`,onClick:()=>{Bt(H)},children:[e(Le,{statusID:H,instance:f,withinContext:!0,size:xe||Z?"m":"s",enableTranslate:!0,onMediaClick:we,onStatusLinkClick:Y}),Z&&q>1&&e("div",{class:"replies-link",children:[e(w,{icon:"comment2"})," ",e("span",{title:q,children:Ue(q)})]})," "]}),be&&(Te==null?void 0:Te.length)>0&&e(gs,{instance:f,replies:Te,hasParentThread:xe,level:1,accWeight:ve,openAll:O.current{k.reloadStatusPage++},children:"Try again"})]})]},H)},[t,f,T,v,m,c,we,Y,X]),ae=he(()=>{var R;if("navigation"in window&&(navigation!=null&&navigation.entries)){const H=navigation.entries()[navigation.currentEntry.index-1];if(H!=null&&H.url)return $n.test(H.url)}return $n.test((R=k.prevLocation)==null?void 0:R.pathname)},[F]),pe=he(()=>{if(!ce)return[];const R=[];function H(Z){R.push(Z.id),Z.replies&&Z.replies.forEach(H)}return S.slice(V).forEach(H),R.map(Z=>je(Z,f))},[ce,S,V,f]);return e("div",{tabIndex:"-1",ref:U,class:`status-deck deck contained ${S.length>1?"padded-bottom":""} ${Q.current==="status"&&!r.current?"slide-in":""} ${d?`deck-view-${d}`:""}`,onAnimationEnd:R=>{Q.current==="status"&&(Q.current=null)},children:[e("header",{class:`${W?"inview":""} ${T==="loading"?"loading":""}`,onDblClick:R=>{k.reloadStatusPage++},children:e("div",{class:"header-grid header-grid-2",children:[e("h1",{children:[ae&&e("button",{type:"button",class:"plain deck-back",onClick:()=>{history.back()},children:e(w,{icon:"chevron-left",size:"xl"})}),!W&&E&&T!=="loading"?e(A,{children:[e("span",{class:"hero-heading",children:[e(It,{account:E.account,instance:f,showAvatar:!0,short:!0})," ",e("span",{class:"insignificant",children:["•"," ",e($t,{datetime:E.createdAt,format:"micro"})]})]})," ",e("button",{type:"button",class:"ancestors-indicator light small",onClick:R=>{R.preventDefault(),R.stopPropagation(),L.current.scrollIntoView({behavior:"smooth",block:"start"})},title:"Go to main post",children:e(w,{icon:G==="down"?"arrow-down":"arrow-up"})})]}):e(A,{children:["Post"," ",e("button",{type:"button",class:"ancestors-indicator light small",onClick:R=>{R.preventDefault(),R.stopPropagation(),U.current.scrollTo({top:0,behavior:"smooth"})},hidden:!_.length||oe,title:`${_.length} posts above ‒ Go to top`,children:[e(w,{icon:"arrow-up"}),_.filter((R,H,Z)=>Z.findIndex(re=>re.accountID===R.accountID)===H).slice(0,3).map(R=>e(Qe,{url:R.account.avatar,alt:R.account.displayName},R.account.id)),_.length>3&&e(A,{children:[" ",e("span",{class:"insignificant",children:Ue(_.length)})]})]})]})]}),e("div",{class:"header-side",children:[e("button",{type:"button",class:"plain4 button-switch-view",style:{display:d==="full"?"":"none"},onClick:()=>{h(null),o.delete("media"),o.delete("media-only"),o.delete("view"),a(o)},title:"Switch to Side Peek view",children:e(w,{icon:"layout4",size:"l"})}),e(Fe,{align:"end",portal:{target:U.current},menuButton:e("button",{type:"button",class:"button plain4",children:e(w,{icon:"more",alt:"Actions",size:"xl"})}),children:[e(ie,{disabled:T==="loading",onClick:()=>{k.reloadStatusPage++},children:[e(w,{icon:"refresh"}),e("span",{children:"Refresh"})]}),e(ie,{className:"menu-switch-view",onClick:()=>{h(d==="full"?null:"full"),o.delete("media"),o.delete("media-only"),d==="full"?o.delete("view"):o.set("view","full"),a(o)},children:[e(w,{icon:{"":"layout5",full:"layout4"}[d||""]}),e("span",{children:["Switch to ",d==="full"?"Side Peek":"Full"," view"]})]}),e(ie,{onClick:()=>{Array.from(U.current.querySelectorAll(".spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)")).forEach(H=>{H.click()})},children:[e(w,{icon:"eye-open"})," ",e("span",{children:"Show all sensitive content"})]}),e(Pe,{}),e(Wn,{className:"plain",children:"Experimental"}),e(ie,{disabled:!j||se,onClick:()=>{const R=Uo(E.url);R?location.hash=R:alert("Unable to switch")},children:[e(w,{icon:"transfer"}),e("small",{class:"menu-double-lines",children:["Switch to post's instance",j?e(A,{children:[" ","(",e("b",{children:j}),")"]}):""]})]})]}),e(ee,{class:"button plain deck-close",to:n,children:e(w,{icon:"x",size:"xl"})})]})]})}),S.length&&E?e("ul",{class:`timeline flat contextual grow ${T==="loading"?"loading":""}`,children:[S.slice(0,V).map(K),ce>0&&e("li",{children:e("button",{type:"button",class:"plain block show-more",disabled:T==="loading",onClick:()=>ye(R=>R+wt),style:{marginBlockEnd:"6em"},"data-state-post-ids":pe.join(" "),children:[e("div",{class:"ib avatars-bunch",children:S.slice(V,V+5).map(R=>e(Qe,{url:R.account.avatarStatic},R.id))})," ",e("div",{class:"ib",children:["Show more…"," ",e("span",{class:"tag",children:ce>wt?`${wt}+`:ce})]})]})})]}):e(A,{children:[T==="loading"&&e("ul",{class:"timeline flat contextual grow loading",children:e("li",{children:e(Le,{skeleton:!0,size:"l"})})}),T==="error"&&e("p",{class:"ui-state",children:["Unable to load post",e("br",{}),e("br",{}),e("button",{type:"button",onClick:()=>{k.reloadStatusPage++},children:"Try again"})]})]})]})}function gs({replies:t,instance:n,hasParentThread:i,level:o,accWeight:a,openAll:s}){const[u,l]=He(),r=m=>m.reduce((y,S)=>{const{repliesCount:I,replies:T}=S,$=(T==null?void 0:T.length)||I;return y+$+r(T||[])},0),d=t.length+r(t),h=t.length===d,c=t.map(m=>m.account).filter((m,y,S)=>S.findIndex(I=>I.id===m.id)===y).slice(0,3),p=he(()=>t==null?void 0:t.reduce((m,y)=>m+(y==null?void 0:y.weight),a),[a,t==null?void 0:t.length]);let f=!1;(s||p<=Jo||!i&&d===1&&ft(t[0])<2)&&(f=!0);const b=zt[t[0].id],g=Ve((m,y,S,I)=>{m.preventDefault(),m.stopPropagation(),l({media:y+1,mediaStatusID:I.id})},[]),v=D();return Ge(()=>{var y;function m(S){S.target.dataset.scrollLeft=S.target.scrollLeft}return(y=v.current)==null||y.addEventListener("scroll",m,{passive:!0}),()=>{var S;(S=v.current)==null||S.removeEventListener("scroll",m)}},[]),e("details",{ref:v,class:"replies",open:b||f,onToggle:m=>{const{open:y}=m.target;zt[t[0].id]=y},style:{"--comments-level":o},"data-comments-level":o,"data-comments-level-overflow":o>4,children:[e("summary",{class:"replies-summary",hidden:f,children:[e("span",{class:"avatars",children:c.map(m=>e(Qe,{url:m.avatarStatic,title:`${m.displayName} @${m.username}`,squircle:m==null?void 0:m.bot},m.id))}),e("b",{children:[e("span",{title:t.length,children:Ue(t.length)})," ","repl",t.length===1?"y":"ies"]}),!h&&d>1&&e(A,{children:[" ","·"," ",e("span",{children:[e("span",{title:d,children:Ue(d)})," ","comment",d===1?"":"s"]})]})]}),e("ul",{children:t.map(m=>{var y,S;return e("li",{children:[e(ee,{class:"status-link",to:n?`/${n}/s/${m.id}`:`/s/${m.id}`,onClick:()=>{Bt(m.id)},children:[e(Le,{statusID:m.id,instance:n,withinContext:!0,size:"s",enableTranslate:!0,onMediaClick:g}),!((y=m.replies)!=null&&y.length)&&m.repliesCount>0&&e("div",{class:"replies-link",children:[e(w,{icon:"comment2"})," ",e("span",{title:m.repliesCount,children:Ue(m.repliesCount)})]})]}),((S=m.replies)==null?void 0:S.length)&&e(gs,{instance:n,replies:m.replies,level:o+1,accWeight:f?p:m.weight,openAll:s})]},m.id)})})]})}const ea=140,ta=35,na=70,sa=140,Ht=new Map;function ft(t){var f,b;const n=Ht.get(t.id);if(n)return n;const{spoilerText:i,content:o,mediaAttachments:a,poll:s,card:u}=t,l=Ms(i+o),r=a!=null&&a.length?ea:0,d=(((f=s==null?void 0:s.options)==null?void 0:f.length)||0)*ta,h=u&&(a!=null&&a.length||(b=s==null?void 0:s.options)!=null&&b.length)?0:na,p=(l+r+d+h)/sa;return Ht.set(t.id,p),p}const ia=Be(Xo);function oa(){const t=tt(),{id:n,instance:i}=t;return e(ia,{id:n,instance:i})}const aa=""+new URL("boosts-carousel-YjmjXTE6.jpg",import.meta.url).href,ca=""+new URL("grouped-notifications-xYMFVY91.jpg",import.meta.url).href,ra=""+new URL("multi-column-ETnJNDVb.jpg",import.meta.url).href,la=""+new URL("multi-hashtag-timeline-x-SDVR4g.jpg",import.meta.url).href,da=""+new URL("nested-comments-thread-Ib-fZGS3.jpg",import.meta.url).href,ua="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%20102%2028'%3e%3cpath%20fill='none'%20d='M0%200h101.5v27.5H0z'/%3e%3cg%20fill-rule='nonzero'%3e%3cpath%20fill='url(%23a)'%20d='M2.32%2021.85c1.4%200%202.21-.85%202.21-2.3v-4.64H8.5c4.45%200%207.54-2.9%207.54-7.24%200-4.35-2.98-7.24-7.32-7.24h-6.4C.93.43.11%201.28.11%202.73v16.82c0%201.45.82%202.3%202.21%202.3Zm2.21-10.4V3.94h3c2.54%200%204%201.34%204%203.75s-1.47%203.76-4%203.76h-3Z'/%3e%3cpath%20fill='url(%23b)'%20d='M20.52%2021.88c1.25%200%202.13-.76%202.13-2.23v-7.04c0-2.07%201.2-3.49%203.21-3.49%201.95%200%202.95%201.23%202.95%203.25v7.28c0%201.47.89%202.23%202.13%202.23%201.26%200%202.14-.76%202.14-2.23v-8.18c0-3.64-1.99-5.9-5.48-5.9-2.38%200-4.1%201.12-4.93%203.1h-.09V2.3c0-1.38-.78-2.2-2.1-2.2-1.31%200-2.1.82-2.1%202.2v17.34c0%201.47.9%202.23%202.14%202.23Z'/%3e%3cpath%20fill='url(%23c)'%20d='M40.45%2021.82c1.96%200%203.93-.98%204.8-2.65h.1v.8c.08%201.27.89%201.91%202.05%201.91%201.21%200%202.08-.73%202.08-2.15v-8.95c0-3.17-2.63-5.25-6.65-5.25-3.26%200-5.78%201.16-6.5%203.04-.15.32-.23.63-.23.96%200%20.97.75%201.64%201.79%201.64.69%200%201.23-.26%201.7-.79.95-1.23%201.74-1.65%203.04-1.65%201.62%200%202.64.85%202.64%202.31v1.04l-3.95.24c-3.93.23-6.13%201.88-6.13%204.74%200%202.83%202.27%204.76%205.26%204.76Zm1.4-3.09c-1.43%200-2.4-.73-2.4-1.9%200-1.12.91-1.83%202.51-1.95l3.31-.2v1.14c0%201.7-1.54%202.91-3.41%202.91Z'/%3e%3cpath%20fill='url(%23d)'%20d='M54.37%2021.88c1.26%200%202.14-.76%202.14-2.23v-7.09c0-2.03%201.21-3.44%203.13-3.44s2.89%201.17%202.89%203.22v7.31c0%201.47.88%202.23%202.14%202.23%201.24%200%202.13-.76%202.13-2.23v-8.2c0-3.68-1.96-5.87-5.45-5.87-2.41%200-4%201.07-4.83%203.01h-.09v-.87c0-1.35-.85-2.17-2.14-2.17-1.28%200-2.06.82-2.06%202.15v11.95c0%201.47.9%202.23%202.14%202.23Z'/%3e%3cpath%20fill='url(%23e)'%20d='M71.65%2027.17c1.26%200%202.14-.76%202.14-2.23v-6h.09a5.15%205.15%200%200%200%204.88%202.88c3.92%200%206.35-3.05%206.35-8.1%200-5.07-2.44-8.1-6.43-8.1a5.12%205.12%200%200%200-4.86%202.99h-.09v-.85c0-1.45-.88-2.21-2.1-2.21-1.24%200-2.11.76-2.11%202.2v17.2c0%201.46.89%202.22%202.13%202.22Zm5.6-8.8c-2.1%200-3.47-1.8-3.47-4.65%200-2.81%201.37-4.67%203.47-4.67%202.14%200%203.49%201.83%203.49%204.67%200%202.86-1.35%204.66-3.5%204.66Z'/%3e%3cpath%20fill='url(%23f)'%20d='M89.61%2027.39c3.44%200%205.26-1.5%206.73-5.55l4.81-13.1a4%204%200%200%200%20.24-1.26c0-1.13-.85-1.93-2.08-1.93-1.1%200-1.71.51-2.07%201.7l-3.4%2010.9h-.08L90.35%207.28c-.36-1.25-.94-1.73-2.07-1.73-1.26%200-2.21.83-2.21%201.99%200%20.35.09.82.25%201.26l5%2013.21-.21.56c-.52%201.1-1.32%201.42-2.07%201.42l-.75-.01c-.96%200-1.56.54-1.56%201.4%200%201.29%201%202%202.88%202Z'/%3e%3c/g%3e%3cdefs%3e%3cradialGradient%20id='a'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='b'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='c'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='d'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='e'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='f'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3c/defs%3e%3c/svg%3e";var ha={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_DEFAULT_INSTANCE:ut,PHANPY_WEBSITE:xn,PHANPY_PRIVACY_POLICY_URL:fa,PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL:An}=ha,Ln=xn?xn.replace(/https?:\/\//g,"").replace(/\/$/,""):null,Mn=`${"2023-12-31T10:21:54.910Z".slice(0,10).replace(/-/g,".")}.8aa0542`;function Rn(){return Re(null,["/","/welcome"]),e("main",{id:"welcome",children:[e("div",{class:"hero-container",children:[e("div",{class:"hero-content",children:[e("h1",{children:[e("img",{src:Gt,alt:"",width:"160",height:"160",style:{aspectRatio:"1/1",marginBlockEnd:-16}}),e("img",{src:ua,alt:"Phanpy",width:"200"})]}),e("p",{class:"desc",children:"A minimalistic opinionated Mastodon web client."}),e("p",{children:e(ee,{to:ut?`/login?instance=${ut}&submit=1`:"/login",class:"button",children:ut?"Log in":"Log in with Mastodon"})}),ut&&An&&e("p",{children:e("a",{href:An,class:"button plain5",children:"Sign up"})}),!ut&&e("p",{class:"insignificant",children:e("small",{children:["Connect your existing Mastodon/Fediverse account.",e("br",{}),"Your credentials are not stored on this server."]})})]}),(Ln||Mn)&&e("p",{class:"app-site-version",children:e("small",{children:[Ln," ",Mn]})}),e("p",{children:[e("a",{href:"https://github.com/cheeaun/phanpy",target:"_blank",children:"Built"})," ","by"," ",e("a",{href:"https://mastodon.social/@cheeaun",target:"_blank",onClick:t=>{t.preventDefault(),k.showAccount="cheeaun@mastodon.social"},children:"@cheeaun"}),"."," ",e("a",{href:fa,target:"_blank",children:"Privacy Policy"}),"."]})]}),e("div",{id:"why-container",children:e("div",{class:"sections",children:[e("section",{children:[e("img",{src:aa,alt:"Screenshot of Boosts Carousel",loading:"lazy"}),e("h4",{children:"Boosts Carousel"}),e("p",{children:"Visually separate original posts and re-shared posts (boosted posts)."})]}),e("section",{children:[e("img",{src:da,alt:"Screenshot of nested comments thread",loading:"lazy"}),e("h4",{children:"Nested comments thread"}),e("p",{children:"Effortlessly follow conversations. Semi-collapsible replies."})]}),e("section",{children:[e("img",{src:ca,alt:"Screenshot of grouped notifications",loading:"lazy"}),e("h4",{children:"Grouped notifications"}),e("p",{children:"Similar notifications are grouped and collapsed to reduce clutter."})]}),e("section",{children:[e("img",{src:ra,alt:"Screenshot of multi-column UI",loading:"lazy"}),e("h4",{children:"Single or multi-column"}),e("p",{children:"By default, single column for zen-mode seekers. Configurable multi-column for power users."})]}),e("section",{children:[e("img",{src:la,alt:"Screenshot of multi-hashtag timeline with a form to add more hashtags",loading:"lazy"}),e("h4",{children:"Multi-hashtag timeline"}),e("p",{children:"Up to 5 hashtags combined into a single timeline."})]})]})})]})}const pa=window.alert;window.__nativeAlert||(window.__nativeAlert=pa);window.alert=function(t){t instanceof Error&&(t!=null&&t.message)&&(t=t.message),typeof t!="string"&&(t=JSON.stringify(t));const n=Bs({text:t,className:"alert",gravity:"top",position:"center",duration:1e4,offset:{y:48},onClick:()=>{n.hideToast()}});n.showToast()};window.__STATES__=k;window.__STATES_STATS__=()=>{const t=["statuses","accounts","spoilers","unfurledLinks","statusQuotes"],n={};t.forEach(a=>{n[a]=Object.keys(k[a]).length});const{statuses:i}=k,o=[];for(const a in i)document.querySelector(`[data-state-post-id~="${a}"], [data-state-post-ids~="${a}"]`)||o.push(a)};setInterval(()=>{if(!window.__IDLE__)return;const{statuses:t,unfurledLinks:n,notifications:i}=k;let o=0;const{instance:a}=B();for(const s in t){if(!window.__IDLE__)break;try{const u=document.querySelector(`[data-state-post-id~="${s}"], [data-state-post-ids~="${s}"]`),l=i.some(r=>{var d;return s===je((d=r.status)==null?void 0:d.id,a)});if(!u&&!l){delete k.statuses[s],delete k.statusQuotes[s];for(const r in n){const d=n[r];if(je(d.id,d.instance)===s){delete k.unfurledLinks[r];break}}o++}}catch{}}},15*60*1e3);setTimeout(()=>{for(const t in gt)queueMicrotask(()=>{var n,i,o,a;Array.isArray(gt[t])?(i=(n=gt[t])[0])==null||i.call(n):(a=(o=gt)[t])==null||a.call(o)})},5e3);(()=>{window.__IDLE__=!0;const t=["mousemove","mousedown","resize","keydown","touchstart","pointerdown","pointermove","wheel"],n=()=>{window.__IDLE__=!0},o=Kn(n,3e3),a=()=>{window.__IDLE__=!1,o()};t.forEach(s=>{window.addEventListener(s,a,{passive:!0,capture:!0})}),window.addEventListener("blur",n,{passive:!0}),document.documentElement.addEventListener("mouseleave",s=>{!s.relatedTarget&&!s.toElement&&n()},{passive:!0})})();const ma=/iPad|iPhone|iPod/.test(navigator.userAgent);ma&&document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible"){const t=ne.local.get("theme");let n;if(t){if(n=document.querySelector('meta[name="theme-color"][data-theme-setting="manual"]'),n){const i=n.content,o=t==="light"?n.dataset.themeLightColorTemp:n.dataset.themeDarkColorTemp;n.content=o||"",setTimeout(()=>{n.content=i},10)}}else{const i=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";if(n=document.querySelector(`meta[name="theme-color"][media*="${i}"]`),n){const o=n.dataset.content,a=n.dataset.contentTemp;n.content=a||"",setTimeout(()=>{n.content=o},10)}}}});{const t=ne.local.get("theme");if(t){document.documentElement.classList.add(`is-${t}`),document.querySelector('meta[name="color-scheme"]').setAttribute("content",t||"dark light");const i=document.querySelector('meta[data-theme-setting="manual"]');i&&(i.name="theme-color",i.content=t==="light"?i.dataset.themeLightColor:i.dataset.themeDarkColor),document.querySelectorAll('meta[data-theme-setting="auto"]').forEach(a=>{a.name=""})}const n=ne.local.get("textSize");n&&document.documentElement.style.setProperty("--text-size",`${n}px`)}Vn(k,t=>{var n;for(const[i,o,a,s]of t){if(o.join(".")==="settings.shortcutsViewMode"){const u=document.getElementById("app");u&&(u.dataset.shortcutsViewMode=(n=k.shortcuts)!=null&&n.length?a:"")}o.join(".")==="settings.cloakMode"&&document.body.classList.toggle("cloak",a)}});function ga(){const[t,n]=C(!1),[i,o]=C("loading");z(()=>{const s=ne.local.get("instanceURL"),u=decodeURIComponent((window.location.search.match(/code=([^&]+)/)||[,""])[1]);if(u){window.history.replaceState({},document.title,window.location.pathname||"/");const l=ne.session.get("clientID"),r=ne.session.get("clientSecret"),d=ne.session.get("vapidKey");(async()=>{o("loading");const{access_token:h}=await jo({instanceURL:s,client_id:l,client_secret:r,code:u}),c=Rs({instance:s,accessToken:h});await Promise.allSettled([sn(c,s),_s(c,s,h,d)]),on(),an(c),n(!0),o("default")})()}else{window.__IGNORE_GET_ACCOUNT_ERROR__=!0;const l=ot();if(l){ne.session.set("currentAccount",l.info.id);const{client:r}=B({account:l}),{instance:d}=r;on(),an(r),o("loading"),(async()=>{try{await sn(r,d)}catch{}finally{n(!0),o("default")}})()}else o("default")}},[]);let a=rt();return k.currentLocation=a.pathname,z(Dt,[a,t]),/\/https?:/.test(a.pathname)?e(Fo,{}):e(A,{children:[e(ba,{isLoggedIn:t,loading:i==="loading"}),e(ya,{isLoggedIn:t}),i==="default"&&e(Vt,{children:e(Ce,{path:"/:instance?/s/:id",element:e(oa,{})})}),t&&e(Ys,{}),t&&e(Gi,{}),e(zi,{}),t&&e(Hi,{}),e(js,{isLoggedIn:t}),i!=="loading"&&e(qi,{onClose:Dt}),e(Ws,{})]})}function ba({isLoggedIn:t,loading:n}){const i=rt(),o=he(()=>{const{pathname:a}=i;return!/^\/(login|welcome)/.test(a)},[i]);return e(Vt,{location:o||i,children:[e(Ce,{path:"/",element:t?e(No,{}):n?e(Ie,{id:"loader-root"}):e(Rn,{})}),e(Ce,{path:"/login",element:e(Ko,{})}),e(Ce,{path:"/welcome",element:e(Rn,{})})]})}function _n(){return k.prevLocation||null}function ya({isLoggedIn:t}){const n=rt(),i=D(_n());return he(()=>pt("/:instance/s/:id",n.pathname)||pt("/s/:id",n.pathname),[n.pathname,pt])?i.current||(i.current=_n()):i.current=null,e(Vt,{location:i.current||n,children:[t&&e(A,{children:[e(Ce,{path:"/notifications",element:e(hs,{})}),e(Ce,{path:"/mentions",element:e(ds,{})}),e(Ce,{path:"/following",element:e(Xt,{})}),e(Ce,{path:"/b",element:e(as,{})}),e(Ce,{path:"/f",element:e(cs,{})}),e(Ce,{path:"/l",children:[e(Ce,{index:!0,element:e(Oo,{})}),e(Ce,{path:":id",element:e(ls,{})})]}),e(Ce,{path:"/ft",element:e(ro,{})})]}),e(Ce,{path:"/:instance?/t/:hashtag",element:e(rs,{})}),e(Ce,{path:"/:instance?/a/:id",element:e(io,{})}),e(Ce,{path:"/:instance?/p",children:[e(Ce,{index:!0,element:e(Ot,{})}),e(Ce,{path:"l",element:e(Ot,{local:!0})})]}),e(Ce,{path:"/:instance?/trending",element:e(ps,{})}),e(Ce,{path:"/:instance?/search",element:e(fs,{})})]})}"AbortSignal"in window&&(AbortSignal.timeout=AbortSignal.timeout||(t=>{const n=new AbortController;return setTimeout(()=>n.abort(),t),n.signal}));qs(e(Hs,{children:e(ga,{})}),document.getElementById("app"));setTimeout(()=>{try{Object.keys(localStorage).forEach(t=>{t.startsWith("iconify")&&localStorage.removeItem(t)}),Object.keys(sessionStorage).forEach(t=>{t.startsWith("iconify")&&sessionStorage.removeItem(t)}),localStorage.removeItem("settings:boostsCarousel")}catch{}},5e3);window.__CLOAK__=()=>{document.body.classList.toggle("cloak")}; +//# sourceMappingURL=main-O03IOhxZ.js.map diff --git a/assets/main-O03IOhxZ.js.map b/assets/main-O03IOhxZ.js.map new file mode 100644 index 0000000..97a6c13 --- /dev/null +++ b/assets/main-O03IOhxZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main-O03IOhxZ.js","sources":["../../src/utils/usePageVisibility.js","../../src/components/background-service.jsx","../../src/components/compose-button.jsx","../../src/components/keyboard-shortcuts-help.jsx","../../src/pages/accounts.jsx","../../src/assets/logo.svg","../../src/utils/push-notifications.js","../../src/pages/settings.jsx","../../src/utils/focus-deck.jsx","../../src/utils/useLocationChange.js","../../src/components/list-add-edit.jsx","../../src/components/account-info.jsx","../../src/components/account-sheet.jsx","../../src/components/drafts.jsx","../../src/utils/relationships.js","../../src/components/generic-accounts.jsx","../../src/components/media-alt-modal.jsx","../../src/utils/color-utils.js","../../src/components/media-modal.jsx","../../src/assets/floating-button.svg","../../src/assets/multi-column.svg","../../src/assets/tab-menu-bar.svg","../../src/utils/followed-tags.js","../../src/components/AsyncText.jsx","../../src/components/shortcuts-settings.jsx","../../src/components/modals.jsx","../../src/components/follow-request-buttons.jsx","../../src/components/notification.jsx","../../src/components/notification-service.jsx","../../src/components/search-form.jsx","../../src/components/search-command.jsx","../../src/components/shortcuts.jsx","../../src/utils/timeline-utils.jsx","../../src/utils/useScroll.js","../../src/utils/useScrollFn.js","../../src/components/media-post.jsx","../../src/components/nav-menu.jsx","../../src/components/timeline.jsx","../../src/pages/account-statuses.jsx","../../src/pages/bookmarks.jsx","../../src/pages/favourites.jsx","../../src/pages/followed-hashtags.jsx","../../src/pages/following.jsx","../../src/pages/hashtag.jsx","../../src/pages/list.jsx","../../src/pages/mentions.jsx","../../src/utils/group-notifications.jsx","../../src/pages/notifications.jsx","../../src/pages/public.jsx","../../src/pages/search.jsx","../../src/pages/trending.jsx","../../src/components/columns.jsx","../../src/pages/home.jsx","../../src/utils/get-instance-status-url.js","../../src/pages/http-route.jsx","../../src/pages/lists.jsx","../../src/data/instances.json?url","../../src/utils/auth.js","../../src/pages/login.jsx","../../src/pages/status.jsx","../../src/pages/status-route.jsx","../../src/assets/features/boosts-carousel.jpg","../../src/assets/features/grouped-notifications.jpg","../../src/assets/features/multi-column.jpg","../../src/assets/features/multi-hashtag-timeline.jpg","../../src/assets/features/nested-comments-thread.jpg","../../src/assets/logo-text.svg","../../src/pages/welcome.jsx","../../src/utils/toast-alert.js","../../src/app.jsx","../../src/main.jsx"],"sourcesContent":["import { useEffect, useRef } from 'preact/hooks';\n\nexport default function usePageVisibility(fn = () => {}, deps = []) {\n const savedCallback = useRef(fn);\n useEffect(() => {\n savedCallback.current = fn;\n }, [deps]);\n\n useEffect(() => {\n const handleVisibilityChange = () => {\n const hidden = document.hidden || document.visibilityState === 'hidden';\n console.log('👀 Page visibility changed', hidden ? 'hidden' : 'visible');\n savedCallback.current(!hidden);\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return () =>\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n}\n","import { memo } from 'preact/compat';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport { api } from '../utils/api';\nimport showToast from '../utils/show-toast';\nimport states, { saveStatus } from '../utils/states';\nimport useInterval from '../utils/useInterval';\nimport usePageVisibility from '../utils/usePageVisibility';\n\nconst STREAMING_TIMEOUT = 1000 * 3; // 3 seconds\nconst POLL_INTERVAL = 15_000; // 15 seconds\n\nexport default memo(function BackgroundService({ isLoggedIn }) {\n // Notifications service\n // - WebSocket to receive notifications when page is visible\n const [visible, setVisible] = useState(true);\n usePageVisibility(setVisible);\n const checkLatestNotification = async (masto, instance, skipCheckMarkers) => {\n if (states.notificationsLast) {\n const notificationsIterator = masto.v1.notifications.list({\n limit: 1,\n sinceId: states.notificationsLast.id,\n });\n const { value: notifications } = await notificationsIterator.next();\n if (notifications?.length) {\n if (skipCheckMarkers) {\n states.notificationsShowNew = true;\n } else {\n let lastReadId;\n try {\n const markers = await masto.v1.markers.fetch({\n timeline: 'notifications',\n });\n lastReadId = markers?.notifications?.lastReadId;\n } catch (e) {}\n if (lastReadId) {\n states.notificationsShowNew = notifications[0].id !== lastReadId;\n } else {\n states.notificationsShowNew = true;\n }\n }\n }\n }\n };\n\n useEffect(() => {\n let sub;\n let pollNotifications;\n if (isLoggedIn && visible) {\n const { masto, streaming, instance } = api();\n (async () => {\n // 1. Get the latest notification\n await checkLatestNotification(masto, instance);\n\n let hasStreaming = false;\n // 2. Start streaming\n if (streaming) {\n pollNotifications = setTimeout(() => {\n (async () => {\n try {\n hasStreaming = true;\n sub = streaming.user.notification.subscribe();\n console.log('🎏 Streaming notification', sub);\n for await (const entry of sub) {\n if (!sub) break;\n if (!visible) break;\n console.log('🔔🔔 Notification entry', entry);\n if (entry.event === 'notification') {\n console.log('🔔🔔 Notification', entry);\n saveStatus(entry.payload, instance, {\n skipThreading: true,\n });\n }\n states.notificationsShowNew = true;\n }\n console.log('💥 Streaming notification loop STOPPED');\n } catch (e) {\n hasStreaming = false;\n console.error(e);\n }\n\n if (!hasStreaming) {\n console.log('🎏 Streaming failed, fallback to polling');\n pollNotifications = setInterval(() => {\n checkLatestNotification(masto, instance, true);\n }, POLL_INTERVAL);\n }\n })();\n }, STREAMING_TIMEOUT);\n }\n })();\n }\n return () => {\n sub?.unsubscribe?.();\n sub = null;\n clearTimeout(pollNotifications);\n clearInterval(pollNotifications);\n };\n }, [visible, isLoggedIn]);\n\n // Check for updates service\n const lastCheckDate = useRef();\n const checkForUpdates = () => {\n lastCheckDate.current = Date.now();\n console.log('✨ Check app update');\n fetch('./version.json')\n .then((r) => r.json())\n .then((info) => {\n if (info) states.appVersion = info;\n })\n .catch((e) => {\n console.error(e);\n });\n };\n useInterval(checkForUpdates, visible && 1000 * 60 * 30); // 30 minutes\n usePageVisibility((visible) => {\n if (visible) {\n if (!lastCheckDate.current) {\n checkForUpdates();\n } else {\n const diff = Date.now() - lastCheckDate.current;\n if (diff > 1000 * 60 * 60) {\n // 1 hour\n checkForUpdates();\n }\n }\n }\n });\n\n // Global keyboard shortcuts \"service\"\n useHotkeys('shift+alt+k', () => {\n const currentCloakMode = states.settings.cloakMode;\n states.settings.cloakMode = !currentCloakMode;\n showToast({\n text: `Cloak mode ${currentCloakMode ? 'disabled' : 'enabled'}`,\n });\n });\n\n return null;\n});\n","import { useHotkeys } from 'react-hotkeys-hook';\n\nimport openCompose from '../utils/open-compose';\nimport states from '../utils/states';\n\nimport Icon from './icon';\n\nexport default function ComposeButton() {\n function handleButton(e) {\n if (e.shiftKey) {\n const newWin = openCompose();\n\n if (!newWin) {\n states.showCompose = true;\n }\n } else {\n states.showCompose = true;\n }\n }\n\n useHotkeys('c, shift+c', handleButton, {\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal;\n },\n });\n\n return (\n \n );\n}\n","import './keyboard-shortcuts-help.css';\n\nimport { memo } from 'preact/compat';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useSnapshot } from 'valtio';\n\nimport states from '../utils/states';\n\nimport Icon from './icon';\nimport Modal from './modal';\n\nexport default memo(function KeyboardShortcutsHelp() {\n const snapStates = useSnapshot(states);\n\n function onClose() {\n states.showKeyboardShortcutsHelp = false;\n }\n\n useHotkeys(\n '?, shift+?',\n (e) => {\n console.log('help');\n states.showKeyboardShortcutsHelp = true;\n },\n {\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal;\n },\n },\n );\n\n return (\n !!snapStates.showKeyboardShortcutsHelp && (\n \n
\n \n
\n

Keyboard shortcuts

\n
\n
\n \n {[\n {\n action: 'Keyboard shortcuts help',\n keys: ?,\n },\n {\n action: 'Next post',\n keys: j,\n },\n {\n action: 'Previous post',\n keys: k,\n },\n {\n action: 'Skip carousel to next post',\n keys: (\n <>\n Shift + j\n \n ),\n },\n {\n action: 'Skip carousel to previous post',\n keys: (\n <>\n Shift + k\n \n ),\n },\n {\n action: 'Open post details',\n keys: (\n <>\n Enter or o\n \n ),\n },\n {\n action: (\n <>\n Expand content warning or\n
\n toggle expanded/collapsed thread\n \n ),\n keys: x,\n },\n {\n action: 'Close post or dialogs',\n keys: (\n <>\n Esc or Backspace\n \n ),\n },\n {\n action: 'Focus column in multi-column mode',\n keys: (\n <>\n 1 to 9\n \n ),\n },\n {\n action: 'Compose new post',\n keys: c,\n },\n {\n action: 'Compose new post (new window)',\n className: 'insignificant',\n keys: (\n <>\n Shift + c\n \n ),\n },\n {\n action: 'Send post',\n keys: (\n <>\n Ctrl + Enter or +{' '}\n Enter\n \n ),\n },\n {\n action: 'Search',\n keys: /,\n },\n {\n action: 'Reply',\n keys: r,\n },\n {\n action: 'Reply (new window)',\n className: 'insignificant',\n keys: (\n <>\n Shift + r\n \n ),\n },\n {\n action: 'Like (favourite)',\n keys: (\n <>\n l or f\n \n ),\n },\n {\n action: 'Boost',\n keys: (\n <>\n Shift + b\n \n ),\n },\n {\n action: 'Bookmark',\n keys: d,\n },\n {\n action: 'Toggle Cloak mode',\n keys: (\n <>\n Shift + Alt + k\n \n ),\n },\n ].map(({ action, className, keys }) => (\n \n \n \n \n ))}\n
{action}{keys}
\n
\n
\n
\n )\n );\n});\n","import './accounts.css';\n\nimport { useAutoAnimate } from '@formkit/auto-animate/preact';\nimport { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useReducer } from 'preact/hooks';\n\nimport Avatar from '../components/avatar';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Menu2 from '../components/menu2';\nimport MenuConfirm from '../components/menu-confirm';\nimport NameText from '../components/name-text';\nimport { api } from '../utils/api';\nimport states from '../utils/states';\nimport store from '../utils/store';\n\nfunction Accounts({ onClose }) {\n const { masto } = api();\n // Accounts\n const accounts = store.local.getJSON('accounts');\n const currentAccount = store.session.get('currentAccount');\n const moreThanOneAccount = accounts.length > 1;\n\n const [_, reload] = useReducer((x) => x + 1, 0);\n const [accountsListParent] = useAutoAnimate();\n\n return (\n
\n {!!onClose && (\n \n )}\n
\n

Accounts

\n
\n
\n
\n
    \n {accounts.map((account, i) => {\n const isCurrent = account.info.id === currentAccount;\n const isDefault = i === 0; // first account is always default\n return (\n
  • \n
    \n {moreThanOneAccount && (\n \n \n \n )}\n {\n if (isCurrent) {\n try {\n const info = await masto.v1.accounts\n .$select(account.info.id)\n .fetch();\n console.log('fetched account info', info);\n account.info = info;\n store.local.setJSON('accounts', accounts);\n reload();\n } catch (e) {}\n }\n }}\n />\n {\n if (isCurrent) {\n states.showAccount = `${account.info.username}@${account.instanceURL}`;\n } else {\n store.session.set('currentAccount', account.info.id);\n location.reload();\n }\n }}\n />\n
    \n
    \n {isDefault && moreThanOneAccount && (\n <>\n Default{' '}\n \n )}\n \n \n \n }\n >\n {\n states.showAccount = `${account.info.username}@${account.instanceURL}`;\n }}\n >\n \n View profile…\n \n \n {moreThanOneAccount && (\n {\n // Move account to the top of the list\n accounts.splice(i, 1);\n accounts.unshift(account);\n store.local.setJSON('accounts', accounts);\n reload();\n }}\n >\n \n Set as default\n \n )}\n \n \n Log out @{account.info.acct}?\n \n }\n disabled={!isCurrent}\n menuItemClassName=\"danger\"\n onClick={() => {\n // const yes = confirm('Log out?');\n // if (!yes) return;\n accounts.splice(i, 1);\n store.local.setJSON('accounts', accounts);\n // location.reload();\n location.href = location.pathname || '/';\n }}\n >\n \n Log out…\n \n \n
    \n
  • \n );\n })}\n
\n

\n \n Add an existing account\n \n

\n {moreThanOneAccount && (\n

\n \n Note: Default account will always be used for first load.\n Switched accounts will persist during the session.\n \n

\n )}\n
\n
\n
\n );\n}\n\nexport default Accounts;\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2064%2064'%3e%3cpath%20fill='none'%20d='M0%200h63.994v63.994H0z'/%3e%3cpath%20fill='%23a4bff7'%20d='M37.774%2011.471c14.639%203.752%2019.034%2016.557%2015.889%2031.304-.696%203.261-2.563%206.661-6.356%208.693-3.204%201.717-8.07%202.537-15.338.55l-9.634-2.404C11.651%2046.992%208.378%2038.733%2010.027%2031.823c3.627-15.201%2015.543-23.48%2027.747-20.352Z'/%3e%3cpath%20fill='%23d8e7fe'%20d='M36.76%2015.429c12.289%203.15%2015.547%2014.114%2012.907%2026.493-.947%204.44-4.937%209.365-16.664%206.143l-9.684-2.417c-7.854-1.923-10.53-7.8-9.318-12.877%203.016-12.639%2012.611-19.943%2022.759-17.342Z'/%3e%3cpath%20fill='%236081e6'%20d='M27.471%2024.991c-1.457-.698-7.229%203.213-7.663%208.926-.182%202.39%204.55%203.237%205.071-.169.725-4.743%203.715-8.218%202.592-8.757Zm10.746%202.005c-2.083.327-.382%205.901-.595%2010.727-.123%202.8%204.388%203.464%204.703%202.011%201.098-5.073-2.066-13.058-4.108-12.738Z'/%3e%3c/svg%3e\"","// Utils for push notifications\nimport { api } from './api';\nimport { getCurrentAccount } from './store-utils';\n\n// Subscription is an object with the following structure:\n// {\n// data: {\n// alerts: {\n// admin: {\n// report: boolean,\n// signUp: boolean,\n// },\n// favourite: boolean,\n// follow: boolean,\n// mention: boolean,\n// poll: boolean,\n// reblog: boolean,\n// status: boolean,\n// update: boolean,\n// }\n// },\n// policy: \"all\" | \"followed\" | \"follower\" | \"none\",\n// subscription: {\n// endpoint: string,\n// keys: {\n// auth: string,\n// p256dh: string,\n// },\n// },\n// }\n\n// Back-end CRUD\n// =============\n\nfunction createBackendPushSubscription(subscription) {\n const { masto } = api();\n return masto.v1.push.subscription.create(subscription);\n}\n\nfunction fetchBackendPushSubscription() {\n const { masto } = api();\n return masto.v1.push.subscription.fetch();\n}\n\nfunction updateBackendPushSubscription(subscription) {\n const { masto } = api();\n return masto.v1.push.subscription.update(subscription);\n}\n\nfunction removeBackendPushSubscription() {\n const { masto } = api();\n return masto.v1.push.subscription.remove();\n}\n\n// Front-end\n// =========\n\nexport function isPushSupported() {\n return 'serviceWorker' in navigator && 'PushManager' in window;\n}\n\nexport function getRegistration() {\n // return navigator.serviceWorker.ready;\n return navigator.serviceWorker.getRegistration();\n}\n\nasync function getSubscription() {\n const registration = await getRegistration();\n const subscription = registration\n ? await registration.pushManager.getSubscription()\n : undefined;\n return { registration, subscription };\n}\n\nfunction urlBase64ToUint8Array(base64String) {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = `${base64String}${padding}`\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n}\n\n// Front-end <-> back-end\n// ======================\n\nexport async function initSubscription() {\n if (!isPushSupported()) return;\n const { subscription } = await getSubscription();\n let backendSubscription = null;\n try {\n backendSubscription = await fetchBackendPushSubscription();\n } catch (err) {\n if (/(not found|unknown)/i.test(err.message)) {\n // No subscription found\n } else {\n // Other error\n throw err;\n }\n }\n console.log('INIT subscription', {\n subscription,\n backendSubscription,\n });\n\n // Check if the subscription changed\n if (backendSubscription && subscription) {\n const sameEndpoint = backendSubscription.endpoint === subscription.endpoint;\n const { vapidKey } = getCurrentAccount();\n const sameKey = backendSubscription.serverKey === vapidKey;\n if (!sameEndpoint) {\n throw new Error('Backend subscription endpoint changed');\n }\n if (sameKey) {\n // Subscription didn't change\n } else {\n // Subscription changed\n console.error('🔔 Subscription changed', {\n sameEndpoint,\n serverKey: backendSubscription.serverKey,\n vapIdKey: vapidKey,\n endpoint1: backendSubscription.endpoint,\n endpoint2: subscription.endpoint,\n sameKey,\n key1: backendSubscription.serverKey,\n key2: vapidKey,\n });\n throw new Error('Backend subscription key and vapid key changed');\n // Only unsubscribe from backend, not from browser\n // await removeBackendPushSubscription();\n // // Now let's resubscribe\n // // NOTE: I have no idea if this works\n // return await updateSubscription({\n // data: backendSubscription.data,\n // policy: backendSubscription.policy,\n // });\n }\n }\n\n if (subscription && !backendSubscription) {\n // check if account's vapidKey is same as subscription's applicationServerKey\n const { vapidKey } = getCurrentAccount();\n const { applicationServerKey } = subscription.options;\n const vapidKeyStr = urlBase64ToUint8Array(vapidKey).toString();\n const applicationServerKeyStr = new Uint8Array(\n applicationServerKey,\n ).toString();\n const sameKey = vapidKeyStr === applicationServerKeyStr;\n if (sameKey) {\n // Subscription didn't change\n } else {\n // Subscription changed\n console.error('🔔 Subscription changed', {\n vapidKeyStr,\n applicationServerKeyStr,\n sameKey,\n });\n // Unsubscribe since backend doesn't have a subscription\n await subscription.unsubscribe();\n throw new Error('Subscription key and vapid key changed');\n }\n }\n\n // Check if backend subscription returns 404\n // if (subscription && !backendSubscription) {\n // // Re-subscribe to backend\n // backendSubscription = await createBackendPushSubscription({\n // subscription,\n // data: {},\n // policy: 'all',\n // });\n // }\n\n return { subscription, backendSubscription };\n}\n\nexport async function updateSubscription({ data, policy }) {\n console.log('🔔 Updating subscription', { data, policy });\n if (!isPushSupported()) return;\n let { registration, subscription } = await getSubscription();\n let backendSubscription = null;\n\n if (subscription) {\n try {\n backendSubscription = await updateBackendPushSubscription({\n data,\n policy,\n });\n // TODO: save subscription in user settings\n } catch (error) {\n // Backend doesn't have a subscription for this user\n // Create a new one\n backendSubscription = await createBackendPushSubscription({\n subscription,\n data,\n policy,\n });\n // TODO: save subscription in user settings\n }\n } else {\n // User is not subscribed\n const { vapidKey } = getCurrentAccount();\n if (!vapidKey) throw new Error('No server key found');\n subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidKey),\n });\n backendSubscription = await createBackendPushSubscription({\n subscription,\n data,\n policy,\n });\n // TODO: save subscription in user settings\n }\n\n return { subscription, backendSubscription };\n}\n\nexport async function removeSubscription() {\n if (!isPushSupported()) return;\n const { subscription } = await getSubscription();\n if (subscription) {\n await removeBackendPushSubscription();\n await subscription.unsubscribe();\n }\n}\n","import './settings.css';\n\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useSnapshot } from 'valtio';\n\nimport logo from '../assets/logo.svg';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport RelativeTime from '../components/relative-time';\nimport targetLanguages from '../data/lingva-target-languages';\nimport { api } from '../utils/api';\nimport getTranslateTargetLanguage from '../utils/get-translate-target-language';\nimport localeCode2Text from '../utils/localeCode2Text';\nimport {\n initSubscription,\n isPushSupported,\n removeSubscription,\n updateSubscription,\n} from '../utils/push-notifications';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport store from '../utils/store';\n\nconst DEFAULT_TEXT_SIZE = 16;\nconst TEXT_SIZES = [15, 16, 17, 18, 19, 20];\nconst {\n PHANPY_WEBSITE: WEBSITE,\n PHANPY_PRIVACY_POLICY_URL: PRIVACY_POLICY_URL,\n PHANPY_IMG_ALT_API_URL: IMG_ALT_API_URL,\n} = import.meta.env;\n\nfunction Settings({ onClose }) {\n const snapStates = useSnapshot(states);\n const currentTheme = store.local.get('theme') || 'auto';\n const themeFormRef = useRef();\n const targetLanguage =\n snapStates.settings.contentTranslationTargetLanguage || null;\n const systemTargetLanguage = getTranslateTargetLanguage();\n const systemTargetLanguageText = localeCode2Text(systemTargetLanguage);\n const currentTextSize = store.local.get('textSize') || DEFAULT_TEXT_SIZE;\n\n const [prefs, setPrefs] = useState(store.account.get('preferences') || {});\n const { masto, authenticated, instance } = api();\n // Get preferences every time Settings is opened\n // NOTE: Disabled for now because I don't expect this to change often. Also for some reason, the /api/v1/preferences endpoint is cached for a while and return old prefs if refresh immediately after changing them.\n // useEffect(() => {\n // const { masto } = api();\n // (async () => {\n // try {\n // const preferences = await masto.v1.preferences.fetch();\n // setPrefs(preferences);\n // store.account.set('preferences', preferences);\n // } catch (e) {\n // // Silently fail\n // console.error(e);\n // }\n // })();\n // }, []);\n\n return (\n
\n {!!onClose && (\n \n )}\n
\n

Settings

\n
\n
\n
\n
    \n
  • \n
    \n \n
    \n
    \n {\n console.log(e);\n e.preventDefault();\n const formData = new FormData(themeFormRef.current);\n const theme = formData.get('theme');\n const html = document.documentElement;\n\n if (theme === 'auto') {\n html.classList.remove('is-light', 'is-dark');\n\n // Disable manual theme \n const $manualMeta = document.querySelector(\n 'meta[data-theme-setting=\"manual\"]',\n );\n if ($manualMeta) {\n $manualMeta.name = '';\n }\n // Enable auto theme s\n const $autoMetas = document.querySelectorAll(\n 'meta[data-theme-setting=\"auto\"]',\n );\n $autoMetas.forEach((m) => {\n m.name = 'theme-color';\n });\n } else {\n html.classList.toggle('is-light', theme === 'light');\n html.classList.toggle('is-dark', theme === 'dark');\n\n // Enable manual theme \n const $manualMeta = document.querySelector(\n 'meta[data-theme-setting=\"manual\"]',\n );\n if ($manualMeta) {\n $manualMeta.name = 'theme-color';\n $manualMeta.content =\n theme === 'light'\n ? $manualMeta.dataset.themeLightColor\n : $manualMeta.dataset.themeDarkColor;\n }\n // Disable auto theme s\n const $autoMetas = document.querySelectorAll(\n 'meta[data-theme-setting=\"auto\"]',\n );\n $autoMetas.forEach((m) => {\n m.name = '';\n });\n }\n document\n .querySelector('meta[name=\"color-scheme\"]')\n .setAttribute(\n 'content',\n theme === 'auto' ? 'dark light' : theme,\n );\n\n if (theme === 'auto') {\n store.local.del('theme');\n } else {\n store.local.set('theme', theme);\n }\n }}\n >\n
    \n \n \n \n
    \n \n
    \n
  • \n
  • \n
    \n \n
    \n
    \n A{' '}\n {\n const value = parseInt(e.target.value, 10);\n const html = document.documentElement;\n // set CSS variable\n html.style.setProperty('--text-size', `${value}px`);\n // save to local storage\n if (value === DEFAULT_TEXT_SIZE) {\n store.local.del('textSize');\n } else {\n store.local.set('textSize', e.target.value);\n }\n }}\n />{' '}\n \n A\n \n \n {TEXT_SIZES.map((size) => (\n \n
    \n
  • \n
\n
\n {authenticated && (\n <>\n

Posting

\n
\n
    \n
  • \n
    \n \n
    \n
    \n {\n const { value } = e.target;\n (async () => {\n try {\n await masto.v1.accounts.updateCredentials({\n source: {\n privacy: value,\n },\n });\n setPrefs({\n ...prefs,\n 'posting:default:visibility': value,\n });\n store.account.set('preferences', {\n ...prefs,\n 'posting:default:visibility': value,\n });\n } catch (e) {\n alert('Failed to update posting privacy');\n console.error(e);\n }\n })();\n }}\n >\n \n \n \n \n
    \n
  • \n
\n
\n

\n {' '}\n \n Synced to your instance server's settings.{' '}\n \n Go to your instance ({instance}) for more settings.\n \n \n

\n \n )}\n

Experiments

\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n \n
    \n \n
    \n
    \n

    \n Hide \"Translate\" button for\n {snapStates.settings.contentTranslationHideLanguages.length >\n 0 && (\n <>\n {' '}\n (\n {\n snapStates.settings.contentTranslationHideLanguages\n .length\n }\n )\n \n )}\n :\n

    \n {targetLanguages.map((lang) => (\n \n ))}\n
    \n

    \n

    \n \n Note: This feature uses external translation services,\n powered by{' '}\n \n Lingva API\n {' '}\n &{' '}\n \n Lingva Translate\n \n .\n \n

    \n
    \n
    \n \n

    \n \n Automatically show translation for posts in timeline. Only\n works for short posts without content warning,\n media and poll.\n \n

    \n
    \n
\n \n {!!IMG_ALT_API_URL && (\n
  • \n \n
    \n Only for new images while composing new posts.\n
    \n
    \n \n Note: This feature uses external AI service, powered by{' '}\n \n img-alt-api\n \n . May not work well. Only for images and in English.\n \n
    \n
  • \n )}\n
  • \n \n
    \n \n Replace text as blocks, useful when taking screenshots, for\n privacy reasons.\n \n
    \n
  • \n {authenticated && (\n
  • \n {\n states.showDrafts = true;\n states.showSettings = false;\n }}\n >\n Unsent drafts\n \n
  • \n )}\n \n \n {authenticated && }\n

    About

    \n
    \n \n \n
    \n Phanpy{' '}\n {\n e.preventDefault();\n states.showAccount = 'phanpy@hachyderm.io';\n }}\n >\n @phanpy\n \n
    \n \n Built\n {' '}\n by{' '}\n {\n e.preventDefault();\n states.showAccount = 'cheeaun@mastodon.social';\n }}\n >\n @cheeaun\n \n
    \n \n

    \n \n Sponsor\n {' '}\n ·{' '}\n \n Donate\n {' '}\n ·{' '}\n \n Privacy Policy\n \n

    \n {__BUILD_TIME__ && (\n

    \n {WEBSITE && (\n <>\n Site:{' '}\n {WEBSITE.replace(/https?:\\/\\//g, '').replace(/\\/$/, '')}\n
    \n \n )}\n Version:{' '}\n {\n e.target.select();\n // Copy to clipboard\n try {\n navigator.clipboard.writeText(e.target.value);\n showToast('Version string copied');\n } catch (e) {\n console.warn(e);\n showToast('Unable to copy version string');\n }\n }}\n />{' '}\n {!__FAKE_COMMIT_HASH__ && (\n \n (\n \n \n \n )\n \n )}\n

    \n )}\n
    \n \n \n );\n}\n\nfunction PushNotificationsSection({ onClose }) {\n if (!isPushSupported()) return null;\n\n const { instance } = api();\n const [uiState, setUIState] = useState('default');\n const pushFormRef = useRef();\n const [allowNofitications, setAllowNotifications] = useState(false);\n const [needRelogin, setNeedRelogin] = useState(false);\n const previousPolicyRef = useRef();\n useEffect(() => {\n (async () => {\n setUIState('loading');\n try {\n const { subscription, backendSubscription } = await initSubscription();\n if (\n backendSubscription?.policy &&\n backendSubscription.policy !== 'none'\n ) {\n setAllowNotifications(true);\n const { alerts, policy } = backendSubscription;\n previousPolicyRef.current = policy;\n const { elements } = pushFormRef.current;\n const policyEl = elements.namedItem(policy);\n if (policyEl) policyEl.value = policy;\n // alerts is {}, iterate it\n Object.keys(alerts).forEach((alert) => {\n const el = elements.namedItem(alert);\n if (el?.type === 'checkbox') {\n el.checked = true;\n }\n });\n }\n setUIState('default');\n } catch (err) {\n console.warn(err);\n if (/outside.*authorized/i.test(err.message)) {\n setNeedRelogin(true);\n } else {\n alert(err?.message || err);\n }\n setUIState('error');\n }\n })();\n }, []);\n\n const isLoading = uiState === 'loading';\n\n return (\n {\n const values = Object.fromEntries(new FormData(pushFormRef.current));\n const allowNofitications = !!values['policy-allow'];\n const params = {\n policy: values.policy,\n data: {\n alerts: {\n mention: !!values.mention,\n favourite: !!values.favourite,\n reblog: !!values.reblog,\n follow: !!values.follow,\n follow_request: !!values.followRequest,\n poll: !!values.poll,\n update: !!values.update,\n status: !!values.status,\n },\n },\n };\n\n let alertsCount = 0;\n // Remove false values from data.alerts\n // API defaults to false anyway\n Object.keys(params.data.alerts).forEach((key) => {\n if (!params.data.alerts[key]) {\n delete params.data.alerts[key];\n } else {\n alertsCount++;\n }\n });\n const policyChanged = previousPolicyRef.current !== params.policy;\n\n console.log('PN Form', { values, allowNofitications, params });\n\n if (allowNofitications && alertsCount > 0) {\n if (policyChanged) {\n console.debug('Policy changed.');\n removeSubscription()\n .then(() => {\n updateSubscription(params);\n })\n .catch((err) => {\n console.warn(err);\n alert('Failed to update subscription. Please try again.');\n });\n } else {\n updateSubscription(params).catch((err) => {\n console.warn(err);\n alert('Failed to update subscription. Please try again.');\n });\n }\n } else {\n removeSubscription().catch((err) => {\n console.warn(err);\n alert('Failed to remove subscription. Please try again.');\n });\n }\n }}\n >\n

    Push Notifications (beta)

    \n
    \n
      \n
    • \n \n
    • \n
    \n
    \n

    \n \n NOTE: Push notifications only work for one account.\n \n

    \n \n );\n}\n\nexport default Settings;\n","const focusDeck = () => {\n let timer = setTimeout(() => {\n const columns = document.getElementById('columns');\n if (columns) {\n // Focus first column\n // columns.querySelector('.deck-container')?.focus?.();\n } else {\n const modals = document.querySelectorAll('#modal-container > *');\n if (modals?.length) {\n // Focus last modal\n const modal = modals[modals.length - 1]; // last one\n const modalFocusElement =\n modal.querySelector('[tabindex=\"-1\"]') || modal;\n if (modalFocusElement) {\n modalFocusElement.focus();\n return;\n }\n }\n const backDrop = document.querySelector('.deck-backdrop');\n if (backDrop) return;\n // Focus last deck\n const pages = document.querySelectorAll('.deck-container');\n const page = pages[pages.length - 1]; // last one\n if (page && page.tabIndex === -1) {\n console.log('FOCUS', page);\n page.focus();\n }\n }\n }, 100);\n return () => clearTimeout(timer);\n};\n\nexport default focusDeck;\n","import { useEffect, useRef } from 'preact/hooks';\nimport { useLocation } from 'react-router-dom';\n\n// Hook that runs a callback when the location changes\n// Won't run on the first render\n\nexport default function useLocationChange(fn) {\n if (!fn) return;\n const location = useLocation();\n const currentLocationRef = useRef(location.pathname);\n useEffect(() => {\n // console.log('location', {\n // current: currentLocationRef.current,\n // next: location.pathname,\n // });\n if (\n currentLocationRef.current &&\n location.pathname !== currentLocationRef.current\n ) {\n fn?.();\n }\n }, [location.pathname, fn]);\n}\n","import { useEffect, useRef, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport supports from '../utils/supports';\n\nimport Icon from './icon';\nimport MenuConfirm from './menu-confirm';\n\nfunction ListAddEdit({ list, onClose }) {\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const editMode = !!list;\n const nameFieldRef = useRef();\n const repliesPolicyFieldRef = useRef();\n const exclusiveFieldRef = useRef();\n useEffect(() => {\n if (editMode) {\n nameFieldRef.current.value = list.title;\n repliesPolicyFieldRef.current.value = list.repliesPolicy;\n if (exclusiveFieldRef.current) {\n exclusiveFieldRef.current.checked = list.exclusive;\n }\n }\n }, [editMode]);\n const supportsExclusive = supports('@mastodon/list-exclusive');\n\n return (\n
    \n {!!onClose && (\n \n )}{' '}\n
    \n

    {editMode ? 'Edit list' : 'New list'}

    \n
    \n
    \n {\n e.preventDefault(); // Get form values\n\n const formData = new FormData(e.target);\n const title = formData.get('title');\n const repliesPolicy = formData.get('replies_policy');\n const exclusive = formData.get('exclusive') === 'on';\n console.log({\n title,\n repliesPolicy,\n exclusive,\n });\n setUIState('loading');\n\n (async () => {\n try {\n let listResult;\n\n if (editMode) {\n listResult = await masto.v1.lists.$select(list.id).update({\n title,\n replies_policy: repliesPolicy,\n exclusive,\n });\n } else {\n listResult = await masto.v1.lists.create({\n title,\n replies_policy: repliesPolicy,\n exclusive,\n });\n }\n\n console.log(listResult);\n setUIState('default');\n onClose?.({\n state: 'success',\n list: listResult,\n });\n } catch (e) {\n console.error(e);\n setUIState('error');\n alert(\n editMode ? 'Unable to edit list.' : 'Unable to create list.',\n );\n }\n })();\n }}\n >\n
    \n \n
    \n
    \n \n \n \n \n \n
    \n {supportsExclusive && (\n
    \n \n
    \n )}\n
    \n \n {editMode && (\n {\n // const yes = confirm('Delete this list?');\n // if (!yes) return;\n setUIState('loading');\n\n (async () => {\n try {\n await masto.v1.lists.$select(list.id).remove();\n setUIState('default');\n onClose?.({\n state: 'deleted',\n });\n } catch (e) {\n console.error(e);\n setUIState('error');\n alert('Unable to delete list.');\n }\n })();\n }}\n >\n \n Delete…\n \n \n )}\n
    \n \n
    \n
    \n );\n}\n\nexport default ListAddEdit;\n","import './account-info.css';\n\nimport { Menu, MenuDivider, MenuItem, SubMenu } from '@szhsin/react-menu';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport enhanceContent from '../utils/enhance-content';\nimport getHTMLText from '../utils/getHTMLText';\nimport handleContentLinks from '../utils/handle-content-links';\nimport niceDateTime from '../utils/nice-date-time';\nimport pmem from '../utils/pmem';\nimport shortenNumber from '../utils/shorten-number';\nimport showToast from '../utils/show-toast';\nimport states, { hideAllModals } from '../utils/states';\nimport store from '../utils/store';\nimport { updateAccount } from '../utils/store-utils';\n\nimport AccountBlock from './account-block';\nimport Avatar from './avatar';\nimport EmojiText from './emoji-text';\nimport Icon from './icon';\nimport Link from './link';\nimport ListAddEdit from './list-add-edit';\nimport Loader from './loader';\nimport Menu2 from './menu2';\nimport MenuConfirm from './menu-confirm';\nimport Modal from './modal';\nimport TranslationBlock from './translation-block';\n\nconst MUTE_DURATIONS = [\n 60 * 5, // 5 minutes\n 60 * 30, // 30 minutes\n 60 * 60, // 1 hour\n 60 * 60 * 6, // 6 hours\n 60 * 60 * 24, // 1 day\n 60 * 60 * 24 * 3, // 3 days\n 60 * 60 * 24 * 7, // 1 week\n 0, // forever\n];\nconst MUTE_DURATIONS_LABELS = {\n 0: 'Forever',\n 300: '5 minutes',\n 1_800: '30 minutes',\n 3_600: '1 hour',\n 21_600: '6 hours',\n 86_400: '1 day',\n 259_200: '3 days',\n 604_800: '1 week',\n};\n\nconst LIMIT = 80;\n\nconst ACCOUNT_INFO_MAX_AGE = 1000 * 60 * 10; // 10 mins\n\nfunction fetchFamiliarFollowers(currentID, masto) {\n return masto.v1.accounts.familiarFollowers.fetch({\n id: [currentID],\n });\n}\nconst memFetchFamiliarFollowers = pmem(fetchFamiliarFollowers, {\n maxAge: ACCOUNT_INFO_MAX_AGE,\n});\n\nasync function fetchPostingStats(accountID, masto) {\n const fetchStatuses = masto.v1.accounts\n .$select(accountID)\n .statuses.list({\n limit: 20,\n })\n .next();\n\n const { value: statuses } = await fetchStatuses;\n console.log('fetched statuses', statuses);\n const stats = {\n total: statuses.length,\n originals: 0,\n replies: 0,\n boosts: 0,\n };\n // Categories statuses by type\n // - Original posts (not replies to others)\n // - Threads (self-replies + 1st original post)\n // - Boosts (reblogs)\n // - Replies (not-self replies)\n statuses.forEach((status) => {\n if (status.reblog) {\n stats.boosts++;\n } else if (\n !!status.inReplyToId &&\n status.inReplyToAccountId !== status.account.id // Not self-reply\n ) {\n stats.replies++;\n } else {\n stats.originals++;\n }\n });\n\n // Count days since last post\n if (statuses.length) {\n stats.daysSinceLastPost = Math.ceil(\n (Date.now() - new Date(statuses[statuses.length - 1].createdAt)) /\n 86400000,\n );\n }\n\n console.log('posting stats', stats);\n return stats;\n}\nconst memFetchPostingStats = pmem(fetchPostingStats, {\n maxAge: ACCOUNT_INFO_MAX_AGE,\n});\n\nfunction AccountInfo({\n account,\n fetchAccount = () => {},\n standalone,\n instance,\n authenticated,\n}) {\n const { masto } = api({\n instance,\n });\n const { masto: currentMasto, instance: currentInstance } = api();\n const [uiState, setUIState] = useState('default');\n const isString = typeof account === 'string';\n const [info, setInfo] = useState(isString ? null : account);\n\n const sameCurrentInstance = useMemo(\n () => instance === currentInstance,\n [instance, currentInstance],\n );\n\n useEffect(() => {\n if (!isString) {\n setInfo(account);\n return;\n }\n setUIState('loading');\n (async () => {\n try {\n const info = await fetchAccount();\n states.accounts[`${info.id}@${instance}`] = info;\n setInfo(info);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setInfo(null);\n setUIState('error');\n }\n })();\n }, [isString, account, fetchAccount]);\n\n const {\n acct,\n avatar,\n avatarStatic,\n bot,\n createdAt,\n displayName,\n emojis,\n fields,\n followersCount,\n followingCount,\n group,\n // header,\n // headerStatic,\n id,\n lastStatusAt,\n locked,\n note,\n statusesCount,\n url,\n username,\n memorial,\n moved,\n roles,\n } = info || {};\n let headerIsAvatar = false;\n let { header, headerStatic } = info || {};\n if (!header || /missing\\.png$/.test(header)) {\n if (avatar && !/missing\\.png$/.test(avatar)) {\n header = avatar;\n headerIsAvatar = true;\n if (avatarStatic && !/missing\\.png$/.test(avatarStatic)) {\n headerStatic = avatarStatic;\n }\n }\n }\n\n const isSelf = useMemo(\n () => id === store.session.get('currentAccount'),\n [id],\n );\n\n useEffect(() => {\n const infoHasEssentials = !!(\n info?.id &&\n info?.username &&\n info?.acct &&\n info?.avatar &&\n info?.avatarStatic &&\n info?.displayName &&\n info?.url\n );\n if (isSelf && instance && infoHasEssentials) {\n const accounts = store.local.getJSON('accounts');\n let updated = false;\n accounts.forEach((account) => {\n if (account.info.id === info.id && account.instanceURL === instance) {\n account.info = info;\n updated = true;\n }\n });\n if (updated) {\n console.log('Updated account info', info);\n store.local.setJSON('accounts', accounts);\n }\n }\n }, [isSelf, info, instance]);\n\n const accountInstance = useMemo(() => {\n if (!url) return null;\n const domain = new URL(url).hostname;\n return domain;\n }, [url]);\n\n const [headerCornerColors, setHeaderCornerColors] = useState([]);\n\n const followersIterator = useRef();\n const familiarFollowersCache = useRef([]);\n async function fetchFollowers(firstLoad) {\n if (firstLoad || !followersIterator.current) {\n followersIterator.current = masto.v1.accounts.$select(id).followers.list({\n limit: LIMIT,\n });\n }\n const results = await followersIterator.current.next();\n if (isSelf) return results;\n if (!sameCurrentInstance) return results;\n\n const { value } = results;\n let newValue = [];\n // On first load, fetch familiar followers, merge to top of results' `value`\n // Remove dups on every fetch\n if (firstLoad) {\n const familiarFollowers = await masto.v1.accounts.familiarFollowers.fetch(\n {\n id: [id],\n },\n );\n familiarFollowersCache.current = familiarFollowers[0].accounts;\n newValue = [\n ...familiarFollowersCache.current,\n ...value.filter(\n (account) =>\n !familiarFollowersCache.current.some(\n (familiar) => familiar.id === account.id,\n ),\n ),\n ];\n } else if (value?.length) {\n newValue = value.filter(\n (account) =>\n !familiarFollowersCache.current.some(\n (familiar) => familiar.id === account.id,\n ),\n );\n }\n\n return {\n ...results,\n value: newValue,\n };\n }\n\n const followingIterator = useRef();\n async function fetchFollowing(firstLoad) {\n if (firstLoad || !followingIterator.current) {\n followingIterator.current = masto.v1.accounts.$select(id).following.list({\n limit: LIMIT,\n });\n }\n const results = await followingIterator.current.next();\n return results;\n }\n\n const LinkOrDiv = standalone ? 'div' : Link;\n const accountLink = instance ? `/${instance}/a/${id}` : `/a/${id}`;\n\n const [familiarFollowers, setFamiliarFollowers] = useState([]);\n const [postingStats, setPostingStats] = useState();\n const [postingStatsUIState, setPostingStatsUIState] = useState('default');\n const hasPostingStats = !!postingStats?.total;\n\n const renderFamiliarFollowers = async (currentID) => {\n try {\n const followers = await memFetchFamiliarFollowers(\n currentID,\n currentMasto,\n );\n console.log('fetched familiar followers', followers);\n setFamiliarFollowers(\n followers[0].accounts.slice(0, FAMILIAR_FOLLOWERS_LIMIT),\n );\n } catch (e) {\n console.error(e);\n }\n };\n\n const renderPostingStats = async () => {\n if (!id) return;\n setPostingStatsUIState('loading');\n try {\n const stats = await memFetchPostingStats(id, masto);\n setPostingStats(stats);\n setPostingStatsUIState('default');\n } catch (e) {\n console.error(e);\n setPostingStatsUIState('error');\n }\n };\n\n const onRelationshipChange = useCallback(\n ({ relationship, currentID }) => {\n if (!relationship.following) {\n renderFamiliarFollowers(currentID);\n if (!standalone && statusesCount > 0) {\n // Only render posting stats if not standalone and has posts\n renderPostingStats();\n }\n }\n },\n [standalone, id, statusesCount],\n );\n\n return (\n \n {uiState === 'error' && (\n
    \n

    Unable to load account.

    \n

    \n \n Go to account page \n \n

    \n
    \n )}\n {uiState === 'loading' ? (\n <>\n
    \n \n
    \n
    \n
    \n

    ███████ ████ ████

    \n

    ████ ████████ ██████ █████████ ████ ██

    \n
    \n \n
    \n \n \n \n \n
    \n
    \n \n ) : (\n info && (\n <>\n {!!moved && (\n
    \n

    \n {displayName} has indicated that their new account is\n now:\n

    \n {\n e.stopPropagation();\n states.showAccount = moved;\n }}\n />\n
    \n )}\n {!!header && !/missing\\.png$/.test(header) && (\n {\n if (e.target.crossOrigin) {\n if (e.target.src !== headerStatic) {\n e.target.src = headerStatic;\n } else {\n e.target.removeAttribute('crossorigin');\n e.target.src = header;\n }\n } else if (e.target.src !== headerStatic) {\n e.target.src = headerStatic;\n } else {\n e.target.remove();\n }\n }}\n crossOrigin=\"anonymous\"\n onLoad={(e) => {\n e.target.classList.add('loaded');\n try {\n // Get color from four corners of image\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d', {\n willReadFrequently: true,\n });\n canvas.width = e.target.width;\n canvas.height = e.target.height;\n ctx.drawImage(e.target, 0, 0);\n // const colors = [\n // ctx.getImageData(0, 0, 1, 1).data,\n // ctx.getImageData(e.target.width - 1, 0, 1, 1).data,\n // ctx.getImageData(0, e.target.height - 1, 1, 1).data,\n // ctx.getImageData(\n // e.target.width - 1,\n // e.target.height - 1,\n // 1,\n // 1,\n // ).data,\n // ];\n // Get 10x10 pixels from corners, get average color from each\n const pixelDimension = 10;\n const colors = [\n ctx.getImageData(0, 0, pixelDimension, pixelDimension)\n .data,\n ctx.getImageData(\n e.target.width - pixelDimension,\n 0,\n pixelDimension,\n pixelDimension,\n ).data,\n ctx.getImageData(\n 0,\n e.target.height - pixelDimension,\n pixelDimension,\n pixelDimension,\n ).data,\n ctx.getImageData(\n e.target.width - pixelDimension,\n e.target.height - pixelDimension,\n pixelDimension,\n pixelDimension,\n ).data,\n ].map((data) => {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let i = 0; i < data.length; i += 4) {\n r += data[i];\n g += data[i + 1];\n b += data[i + 2];\n a += data[i + 3];\n }\n const dataLength = data.length / 4;\n return [\n r / dataLength,\n g / dataLength,\n b / dataLength,\n a / dataLength,\n ];\n });\n const rgbColors = colors.map((color) => {\n const [r, g, b, a] = lightenRGB(color);\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n });\n setHeaderCornerColors(rgbColors);\n console.log({ colors, rgbColors });\n } catch (e) {\n // Silently fail\n }\n }}\n />\n )}\n
    \n \n
    \n
    \n
    \n {!!memorial && In Memoriam}\n {!!bot && (\n \n Automated\n \n )}\n {!!group && (\n \n Group\n \n )}\n {roles?.map((role) => (\n \n {role.name}\n {!!accountInstance && (\n <>\n {' '}\n {accountInstance}\n \n )}\n \n ))}\n \n \n )}\n
    \n {\n // states.showAccount = false;\n setTimeout(() => {\n states.showGenericAccounts = {\n heading: 'Followers',\n fetchAccounts: fetchFollowers,\n instance,\n excludeRelationshipAttrs: isSelf\n ? ['followedBy']\n : [],\n };\n }, 0);\n }}\n >\n {!!familiarFollowers.length && (\n \n \n {familiarFollowers.map((follower) => (\n \n ))}\n \n \n )}\n \n {shortenNumber(followersCount)}\n {' '}\n Followers\n \n {\n // states.showAccount = false;\n setTimeout(() => {\n states.showGenericAccounts = {\n heading: 'Following',\n fetchAccounts: fetchFollowing,\n instance,\n excludeRelationshipAttrs: isSelf ? ['following'] : [],\n };\n }, 0);\n }}\n >\n \n {shortenNumber(followingCount)}\n {' '}\n Following\n
    \n \n {\n // hideAllModals();\n // }\n // }\n >\n \n {shortenNumber(statusesCount)}\n {' '}\n Posts\n \n {!!createdAt && (\n
    \n Joined{' '}\n \n
    \n )}\n
    \n
    \n {!!postingStats && (\n