From 21772526cd1081b13a4dfa5eb7ec609c5534f598 Mon Sep 17 00:00:00 2001 From: Archos Date: Fri, 18 Jul 2025 19:23:55 +0200 Subject: [PATCH] =?UTF-8?q?nov=C3=A1=20verze=20phanpy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/ScheduledAtField-B7bYg_eV.css | 1 + assets/ScheduledAtField-DOwsX15z.js | 193 +++++++++++++++++++ assets/ScheduledAtField-DOwsX15z.js.map | 1 + assets/Temml-CCjoacWt.woff2 | Bin 0 -> 9404 bytes assets/compose-BPWMDt4Z.js | 2 + assets/compose-BPWMDt4Z.js.map | 1 + assets/compose-D1OSm94p.css | 1 + assets/compose-nGhUPJqD.js | 25 +++ assets/compose-nGhUPJqD.js.map | 1 + assets/icons/formula-line-DHbN6ztn.js | 2 + assets/icons/formula-line-DHbN6ztn.js.map | 1 + assets/locales/ar-SA-CheZPSDu.js | 2 + assets/locales/ar-SA-CheZPSDu.js.map | 1 + assets/locales/ca-ES-DoeBtyvX.js | 2 + assets/locales/ca-ES-DoeBtyvX.js.map | 1 + assets/locales/cs-CZ-BHdqA5u8.js | 2 + assets/locales/cs-CZ-BHdqA5u8.js.map | 1 + assets/locales/de-DE-owP35lRe.js | 2 + assets/locales/de-DE-owP35lRe.js.map | 1 + assets/locales/eo-UY-C-xdL6fp.js | 2 + assets/locales/eo-UY-C-xdL6fp.js.map | 1 + assets/locales/es-ES-CMRauzgp.js | 2 + assets/locales/es-ES-CMRauzgp.js.map | 1 + assets/locales/eu-ES-B7jzc9OH.js | 2 + assets/locales/eu-ES-B7jzc9OH.js.map | 1 + assets/locales/fa-IR-CCwuSK6E.js | 2 + assets/locales/fa-IR-CCwuSK6E.js.map | 1 + assets/locales/fi-FI-DkQL09No.js | 2 + assets/locales/fi-FI-DkQL09No.js.map | 1 + assets/locales/fr-FR-cOV7yquS.js | 2 + assets/locales/fr-FR-cOV7yquS.js.map | 1 + assets/locales/gl-ES-DL-JeuOa.js | 2 + assets/locales/gl-ES-DL-JeuOa.js.map | 1 + assets/locales/he-IL-CheZPSDu.js | 2 + assets/locales/he-IL-CheZPSDu.js.map | 1 + assets/locales/it-IT-CMlrP0by.js | 2 + assets/locales/it-IT-CMlrP0by.js.map | 1 + assets/locales/ja-JP-CheZPSDu.js | 2 + assets/locales/ja-JP-CheZPSDu.js.map | 1 + assets/locales/kab-DLF2ZDv_.js | 2 + assets/locales/kab-DLF2ZDv_.js.map | 1 + assets/locales/ko-KR-B2mAIp9M.js | 2 + assets/locales/ko-KR-B2mAIp9M.js.map | 1 + assets/locales/lt-LT-DgUG8GRO.js | 2 + assets/locales/lt-LT-DgUG8GRO.js.map | 1 + assets/locales/nb-NO-CheZPSDu.js | 2 + assets/locales/nb-NO-CheZPSDu.js.map | 1 + assets/locales/nl-NL-C9u6asgF.js | 2 + assets/locales/nl-NL-C9u6asgF.js.map | 1 + assets/locales/oc-FR-CheZPSDu.js | 2 + assets/locales/oc-FR-CheZPSDu.js.map | 1 + assets/locales/pl-PL-CBNhyCOu.js | 2 + assets/locales/pl-PL-CBNhyCOu.js.map | 1 + assets/locales/pseudo-LOCALE-lGFkfNZp.js | 2 + assets/locales/pseudo-LOCALE-lGFkfNZp.js.map | 1 + assets/locales/pt-BR-DGoVSN9n.js | 2 + assets/locales/pt-BR-DGoVSN9n.js.map | 1 + assets/locales/pt-PT-DxhNHUrJ.js | 2 + assets/locales/pt-PT-DxhNHUrJ.js.map | 1 + assets/locales/ru-RU-FGGnF09X.js | 2 + assets/locales/ru-RU-FGGnF09X.js.map | 1 + assets/locales/th-TH-CheZPSDu.js | 2 + assets/locales/th-TH-CheZPSDu.js.map | 1 + assets/locales/tok-CheZPSDu.js | 2 + assets/locales/tok-CheZPSDu.js.map | 1 + assets/locales/tr-TR-CheZPSDu.js | 2 + assets/locales/tr-TR-CheZPSDu.js.map | 1 + assets/locales/uk-UA-Z5JTho0X.js | 2 + assets/locales/uk-UA-Z5JTho0X.js.map | 1 + assets/locales/zh-CN-DnVgjKud.js | 2 + assets/locales/zh-CN-DnVgjKud.js.map | 1 + assets/locales/zh-TW-CheZPSDu.js | 2 + assets/locales/zh-TW-CheZPSDu.js.map | 1 + assets/main-BAPo4wfS.css | 1 + assets/main-CknXn6mi.js | 36 ++++ assets/main-CknXn6mi.js.map | 1 + assets/polyfill-force-76skxc6z.js | 9 + assets/polyfill-force-76skxc6z.js.map | 1 + assets/temml-BWesIjnj.js | 97 ++++++++++ assets/temml-BWesIjnj.js.map | 1 + assets/tinyld.light.node-D9KYf3Y3.js | 2 + assets/tinyld.light.node-D9KYf3Y3.js.map | 1 + assets/useTitle-BuJm5pdu.js | 45 +++++ assets/useTitle-BuJm5pdu.js.map | 1 + assets/useTitle-D2OENcwM.css | 7 + compose/index.html | 6 +- index.html | 12 +- sw.js | 2 +- sw.js.map | 2 +- version.json | 2 +- 90 files changed, 535 insertions(+), 12 deletions(-) create mode 100644 assets/ScheduledAtField-B7bYg_eV.css create mode 100644 assets/ScheduledAtField-DOwsX15z.js create mode 100644 assets/ScheduledAtField-DOwsX15z.js.map create mode 100644 assets/Temml-CCjoacWt.woff2 create mode 100644 assets/compose-BPWMDt4Z.js create mode 100644 assets/compose-BPWMDt4Z.js.map create mode 100644 assets/compose-D1OSm94p.css create mode 100644 assets/compose-nGhUPJqD.js create mode 100644 assets/compose-nGhUPJqD.js.map create mode 100644 assets/icons/formula-line-DHbN6ztn.js create mode 100644 assets/icons/formula-line-DHbN6ztn.js.map create mode 100644 assets/locales/ar-SA-CheZPSDu.js create mode 100644 assets/locales/ar-SA-CheZPSDu.js.map create mode 100644 assets/locales/ca-ES-DoeBtyvX.js create mode 100644 assets/locales/ca-ES-DoeBtyvX.js.map create mode 100644 assets/locales/cs-CZ-BHdqA5u8.js create mode 100644 assets/locales/cs-CZ-BHdqA5u8.js.map create mode 100644 assets/locales/de-DE-owP35lRe.js create mode 100644 assets/locales/de-DE-owP35lRe.js.map create mode 100644 assets/locales/eo-UY-C-xdL6fp.js create mode 100644 assets/locales/eo-UY-C-xdL6fp.js.map create mode 100644 assets/locales/es-ES-CMRauzgp.js create mode 100644 assets/locales/es-ES-CMRauzgp.js.map create mode 100644 assets/locales/eu-ES-B7jzc9OH.js create mode 100644 assets/locales/eu-ES-B7jzc9OH.js.map create mode 100644 assets/locales/fa-IR-CCwuSK6E.js create mode 100644 assets/locales/fa-IR-CCwuSK6E.js.map create mode 100644 assets/locales/fi-FI-DkQL09No.js create mode 100644 assets/locales/fi-FI-DkQL09No.js.map create mode 100644 assets/locales/fr-FR-cOV7yquS.js create mode 100644 assets/locales/fr-FR-cOV7yquS.js.map create mode 100644 assets/locales/gl-ES-DL-JeuOa.js create mode 100644 assets/locales/gl-ES-DL-JeuOa.js.map create mode 100644 assets/locales/he-IL-CheZPSDu.js create mode 100644 assets/locales/he-IL-CheZPSDu.js.map create mode 100644 assets/locales/it-IT-CMlrP0by.js create mode 100644 assets/locales/it-IT-CMlrP0by.js.map create mode 100644 assets/locales/ja-JP-CheZPSDu.js create mode 100644 assets/locales/ja-JP-CheZPSDu.js.map create mode 100644 assets/locales/kab-DLF2ZDv_.js create mode 100644 assets/locales/kab-DLF2ZDv_.js.map create mode 100644 assets/locales/ko-KR-B2mAIp9M.js create mode 100644 assets/locales/ko-KR-B2mAIp9M.js.map create mode 100644 assets/locales/lt-LT-DgUG8GRO.js create mode 100644 assets/locales/lt-LT-DgUG8GRO.js.map create mode 100644 assets/locales/nb-NO-CheZPSDu.js create mode 100644 assets/locales/nb-NO-CheZPSDu.js.map create mode 100644 assets/locales/nl-NL-C9u6asgF.js create mode 100644 assets/locales/nl-NL-C9u6asgF.js.map create mode 100644 assets/locales/oc-FR-CheZPSDu.js create mode 100644 assets/locales/oc-FR-CheZPSDu.js.map create mode 100644 assets/locales/pl-PL-CBNhyCOu.js create mode 100644 assets/locales/pl-PL-CBNhyCOu.js.map create mode 100644 assets/locales/pseudo-LOCALE-lGFkfNZp.js create mode 100644 assets/locales/pseudo-LOCALE-lGFkfNZp.js.map create mode 100644 assets/locales/pt-BR-DGoVSN9n.js create mode 100644 assets/locales/pt-BR-DGoVSN9n.js.map create mode 100644 assets/locales/pt-PT-DxhNHUrJ.js create mode 100644 assets/locales/pt-PT-DxhNHUrJ.js.map create mode 100644 assets/locales/ru-RU-FGGnF09X.js create mode 100644 assets/locales/ru-RU-FGGnF09X.js.map create mode 100644 assets/locales/th-TH-CheZPSDu.js create mode 100644 assets/locales/th-TH-CheZPSDu.js.map create mode 100644 assets/locales/tok-CheZPSDu.js create mode 100644 assets/locales/tok-CheZPSDu.js.map create mode 100644 assets/locales/tr-TR-CheZPSDu.js create mode 100644 assets/locales/tr-TR-CheZPSDu.js.map create mode 100644 assets/locales/uk-UA-Z5JTho0X.js create mode 100644 assets/locales/uk-UA-Z5JTho0X.js.map create mode 100644 assets/locales/zh-CN-DnVgjKud.js create mode 100644 assets/locales/zh-CN-DnVgjKud.js.map create mode 100644 assets/locales/zh-TW-CheZPSDu.js create mode 100644 assets/locales/zh-TW-CheZPSDu.js.map create mode 100644 assets/main-BAPo4wfS.css create mode 100644 assets/main-CknXn6mi.js create mode 100644 assets/main-CknXn6mi.js.map create mode 100644 assets/polyfill-force-76skxc6z.js create mode 100644 assets/polyfill-force-76skxc6z.js.map create mode 100644 assets/temml-BWesIjnj.js create mode 100644 assets/temml-BWesIjnj.js.map create mode 100644 assets/tinyld.light.node-D9KYf3Y3.js create mode 100644 assets/tinyld.light.node-D9KYf3Y3.js.map create mode 100644 assets/useTitle-BuJm5pdu.js create mode 100644 assets/useTitle-BuJm5pdu.js.map create mode 100644 assets/useTitle-D2OENcwM.css diff --git a/assets/ScheduledAtField-B7bYg_eV.css b/assets/ScheduledAtField-B7bYg_eV.css new file mode 100644 index 0000000..215ba02 --- /dev/null +++ b/assets/ScheduledAtField-B7bYg_eV.css @@ -0,0 +1 @@ +#modal-container>div{position:fixed;top:0;inset-inline-end:0;height:100%;width:100%;z-index:1000;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;background-color:var(--backdrop-color);-webkit-animation:appear .5s var(--timing-function) both;animation:appear .5s var(--timing-function) both;-webkit-transition:all .5s var(--timing-function);transition:all .5s var(--timing-function)}#modal-container>div.solid{background-color:var(--backdrop-solid-color)}#modal-container>div{--compose-button-dimension: 56px;--compose-button-dimension-half: calc(var(--compose-button-dimension) / 2);--compose-button-dimension-margin: 16px}#modal-container>div.min{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;-webkit-transform:scale(0);transform:scale(0);--end: max( var(--compose-button-dimension-margin), env(safe-area-inset-right) )}[dir=rtl] .min:is(#modal-container>div){--end: max( var(--compose-button-dimension-margin), env(safe-area-inset-left) )}#modal-container>div.min{--bottom: max( var(--compose-button-dimension-margin), env(safe-area-inset-bottom) );--origin-end: calc(100% - var(--compose-button-dimension-half) - var(--end))}[dir=rtl] .min:is(#modal-container>div){--origin-end: calc(var(--compose-button-dimension-half) + var(--end))}#modal-container>div.min{--origin-bottom: calc( 100% - var(--compose-button-dimension-half) - var(--bottom) );-webkit-transform-origin:var(--origin-end) var(--origin-bottom);transform-origin:var(--origin-end) var(--origin-bottom)}#modal-container>div .sheet{-webkit-transition:-webkit-transform .3s var(--timing-function);transition:-webkit-transform .3s var(--timing-function);transition:transform .3s var(--timing-function);transition:transform .3s var(--timing-function),-webkit-transform .3s var(--timing-function);-webkit-transform-origin:80% 80%;transform-origin:80% 80%}#modal-container>div:has(~div) .sheet{-webkit-transform:scale(.975);transform:scale(.975)}@media (max-width: calc(40em - 1px)){#app[data-shortcuts-view-mode=tab-menu-bar]~#modal-container>div.min{border:2px solid red;--bottom: calc( var(--compose-button-dimension-margin) + env(safe-area-inset-bottom) + 52px )}}.avatar{display:inline-block;line-height:0;aspect-ratio:1 / 1;border-radius:50%;overflow:hidden;background-color:var(--bg-faded-color);box-shadow:0 0 0 1px var(--bg-blur-color);flex-shrink:0;vertical-align:middle}.avatar.has-alpha{border-radius:0;background-color:transparent;box-shadow:none}.avatar.has-alpha img{background-color:transparent}.avatar.squircle:not(.has-alpha){border-radius:25%}.avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;background-color:var(--img-bg-color);contain:none}.avatar[data-loaded],.avatar[data-loaded] img{box-shadow:none;background-color:transparent}.name-text{color:inherit;-webkit-text-decoration:none;text-decoration:none;display:inline;unicode-bidi:isolate}.name-text b{font-weight:600;unicode-bidi:isolate}.name-text i{font-variant-numeric:slashed-zero;-webkit-font-feature-settings:"ss01","zero","zero";font-feature-settings:"ss01","zero","zero"}.name-text.show-acct{display:inline-block}a.name-text:hover b,a.name-text:focus b,a.name-text.short:hover i,a.name-text.short:focus i{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:var(--text-insignificant-color)}.name-text i{font-style:normal;opacity:.75}.name-text .avatar{vertical-align:middle;-webkit-transform:translateY(-.1em);transform:translateY(-.1em)}.account-block{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:8px;color:var(--text-color);-webkit-text-decoration:none;text-decoration:none}.account-block .account-block-acct{display:inline-block}.account-block:hover b{-webkit-text-decoration:underline;text-decoration:underline}.account-block.skeleton{color:var(--bg-faded-color)}.account-block .verified-field{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:baseline;align-items:baseline;gap:2px}.account-block .verified-field *{-webkit-box-orient:vertical;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;text-overflow:ellipsis;overflow:hidden;unicode-bidi:isolate;direction:ltr;direction:initial}.account-block .verified-field a{pointer-events:none;color:color-mix(in lch,var(--green-color) 20%,var(--text-insignificant-color) 80%)!important}.account-block .verified-field .icon{color:var(--green-color);-webkit-transform:translateY(1px);transform:translateY(1px)}.account-block .verified-field .invisible{display:none}.account-block .verified-field .ellipsis:after{content:"…"}.account-block .account-block-stats{line-height:1.25;margin-top:2px;font-size:.9em;color:var(--text-insignificant-color);display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.account-block .account-block-stats a{color:inherit;-webkit-text-decoration:none;text-decoration:none}.status-translation-block{margin:8px 0 0;padding:0;font-size:90%;border-radius:8px}.status-translation-block summary{list-style:none;display:inline-block}.status-translation-block summary::-webkit-details-marker{display:none}.status-translation-block summary button{border-radius:8px;border:1px solid var(--outline-color);padding:8px;background-color:var(--bg-color);font-size:12px;color:var(--text-insignificant-color)}.status-translation-block summary button:hover,.status-translation-block summary button:focus{color:var(--text-color);-webkit-filter:none!important;filter:none!important}.status-translation-block details:not([open]) .detected{display:none}.status-translation-block details[open] summary button{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0;margin-bottom:-1px;background-image:-webkit-linear-gradient(bottom var(--backward),var(--bg-color) 50%,var(--bg-faded-blur-color));background-image:linear-gradient(to top var(--backward),var(--bg-color) 50%,var(--bg-faded-blur-color));box-shadow:inset 0 0 0 1px var(--bg-color)}.status-translation-block .translated-block{border:1px solid var(--outline-color);line-height:1.3;border-radius:8px;border-start-start-radius:0;margin:0;padding:8px;background-color:var(--bg-color);background-image:-webkit-linear-gradient(top var(--forward),var(--bg-color),var(--bg-faded-blur-color));background-image:linear-gradient(to bottom var(--forward),var(--bg-color),var(--bg-faded-blur-color));white-space:pre-wrap;box-shadow:inset 0 0 0 1px var(--bg-color),0 1px 5px -2px var(--drop-shadow-color);text-shadow:0 1px var(--bg-color)}.status-translation-block .translated-block .translation-info{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:8px}.status-translation-block .translated-block .translation-info *{vertical-align:middle;flex-shrink:0}.status-translation-block .translated-source-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;margin:0;padding:4px 8px;border:0;border-radius:8px;background-color:var(--bg-faded-color);color:inherit;width:-webkit-min-content;width:-moz-min-content;width:min-content;min-width:2em;flex-shrink:1!important}.status-translation-block .translated-block output{display:block;margin-top:.75em;text-wrap:pretty}.status-translation-block .translated-block output.translated-pronunciation-content{opacity:.75;padding-top:.75em;border-top:var(--hairline-width) solid var(--outline-color);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;-webkit-mask-image:-webkit-linear-gradient(top,black 3em,transparent);mask-image:linear-gradient(to bottom,black 3em,transparent)}.status-translation-block .translated-block output.translated-pronunciation-content.expand{display:block;-webkit-line-clamp:unset;-webkit-box-orient:unset;overflow:visible;-webkit-mask-image:none;mask-image:none}.status-translation-block-mini{display:-webkit-box;display:flex;margin:8px 0 0;font-size:90%;gap:8px;--top-padding: 2px;--top-border: 1px}.status-translation-block-mini .icon{color:var(--text-insignificant-color);margin-top:calc(var(--top-padding) + var(--top-border) + 2px)}.status-translation-block-mini output{padding:var(--top-padding) 0 0;border-top:var(--top-border) dashed var(--outline-stronger-color);text-wrap:pretty}:root{--post-gradient-angle: 160deg;--post-gradient-chip-angle: -20deg}[dir=rtl]:root{--post-gradient-angle: -160deg;--post-gradient-chip-angle: 20deg}.status-reblog{background:-webkit-linear-gradient(290deg,var(--reblog-faded-color),transparent min(160px,50%));background:linear-gradient(160deg,var(--reblog-faded-color),transparent min(160px,50%));background:-webkit-linear-gradient(var(--post-gradient-angle),var(--reblog-faded-color),transparent min(160px,50%));background:linear-gradient(var(--post-gradient-angle),var(--reblog-faded-color),transparent min(160px,50%))}.status-group{background:-webkit-linear-gradient(290deg,var(--group-faded-color),transparent min(160px,50%));background:linear-gradient(160deg,var(--group-faded-color),transparent min(160px,50%));background:-webkit-linear-gradient(var(--post-gradient-angle),var(--group-faded-color),transparent min(160px,50%));background:linear-gradient(var(--post-gradient-angle),var(--group-faded-color),transparent min(160px,50%))}.status-followed-tags{background:-webkit-linear-gradient(290deg,var(--hashtag-faded-color),transparent min(160px,50%));background:linear-gradient(160deg,var(--hashtag-faded-color),transparent min(160px,50%));background:-webkit-linear-gradient(var(--post-gradient-angle),var(--hashtag-faded-color),transparent min(160px,50%));background:linear-gradient(var(--post-gradient-angle),var(--hashtag-faded-color),transparent min(160px,50%))}.timeline-item-container:not(.timeline-item-container-start) .status-followed-tags{background:-webkit-radial-gradient(0 1.2em,ellipse,var(--hashtag-faded-color),transparent max(160px,50%));background:radial-gradient(ellipse at 0 1.2em,var(--hashtag-faded-color),transparent max(160px,50%));background-size:100% 3em;background-repeat:no-repeat}.status-reply-to{background:-webkit-linear-gradient(290deg,var(--reply-to-faded-color),transparent min(160px,50%));background:linear-gradient(160deg,var(--reply-to-faded-color),transparent min(160px,50%));background:-webkit-linear-gradient(var(--post-gradient-angle),var(--reply-to-faded-color),transparent min(160px,50%));background:linear-gradient(var(--post-gradient-angle),var(--reply-to-faded-color),transparent min(160px,50%))}.status-reblog .status-reply-to,.status-group .status-reply-to,.status-followed-tags .status-reply-to{background:-webkit-linear-gradient(110deg,var(--reply-to-faded-color),transparent min(160px,50%));background:linear-gradient(-20deg,var(--reply-to-faded-color),transparent min(160px,50%));background:-webkit-linear-gradient(var(--post-gradient-chip-angle),var(--reply-to-faded-color),transparent min(160px,50%));background:linear-gradient(var(--post-gradient-chip-angle),var(--reply-to-faded-color),transparent min(160px,50%))}.visibility-direct{--yellow-stripes: repeating-linear-gradient( 135deg, var(--reply-to-faded-color), var(--reply-to-faded-color) 10px, var(--reply-to-faded-color) 10px, transparent 10px, transparent 20px );background-image:var(--yellow-stripes)}.status-pre-meta{padding:8px 16px 0;opacity:.75;font-size:smaller;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:-8px}.status-reblog .status-pre-meta .icon{color:var(--reblog-color);-webkit-margin-end:4px;margin-inline-end:4px;vertical-align:text-bottom}.status-group .status-pre-meta .icon{color:var(--group-color);-webkit-margin-end:4px;margin-inline-end:4px;vertical-align:text-bottom}.status-followed-tags .status-pre-meta{position:relative;z-index:1;display:-webkit-box;display:flex;flex-wrap:wrap;gap:4px;-webkit-box-align:center;align-items:center}.status-followed-tags .status-pre-meta .icon{color:var(--hashtag-color);-webkit-margin-end:4px;margin-inline-end:4px;vertical-align:text-bottom}.status-followed-tags .status-pre-meta a{color:var(--hashtag-text-color);font-weight:700;font-size:12px;text-decoration-color:var(--hashtag-faded-color);text-underline-offset:2px;text-decoration-thickness:2px;display:inline-block;padding:2px;vertical-align:top;text-transform:uppercase}.status-followed-tags .status-pre-meta a:hover{color:var(--text-color);text-decoration-color:var(--hashtag-color)}.status-followed-tags .status-followed-tag-item{color:var(--hashtag-text-color);padding:2px;font-weight:700;font-size:12px;text-transform:uppercase;-webkit-margin-end:.5em;margin-inline-end:.5em}.status{display:-webkit-box;display:flex;padding:16px;line-height:1.4;-webkit-box-align:start;align-items:flex-start;position:relative;font-size:var(--text-size)}.status.large{--fade-in-out-bg: linear-gradient( to bottom, transparent, var(--bg-color) 70px, var(--bg-color) calc(100% - 50px) , transparent );padding-bottom:8px;background-image:var(--fade-in-out-bg)}.status.large.visibility-direct{background-image:var(--fade-in-out-bg),var(--yellow-stripes)}.status-card-link{-webkit-text-decoration:none;text-decoration:none;color:var(--text-color)}.status-card-link:not(.truncated .status-card-link):not(.status-card-link .status-card-link):has(.truncated){display:block;position:relative}.status-card-link[data-read-more]:not(.truncated .status-card-link):not(.status-card-link .status-card-link):has(.truncated):after{content:attr(data-read-more);line-height:1;display:inline-block;position:absolute;--inset-offset: 16px;inset-block-end:16px;inset-block-end:var(--inset-offset);inset-inline-end:16px;inset-inline-end:var(--inset-offset);color:var(--text-color);background-color:var(--bg-faded-color);border:1px dashed var(--link-color);box-shadow:0 0 0 1px var(--bg-color),0 -5px 10px var(--bg-color),0 -5px 15px var(--bg-color),0 -5px 20px var(--bg-color);padding:.5em .75em;border-radius:10em;font-size:90%;white-space:nowrap;-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.status-card-link:not(.truncated .status-card-link):not(.status-card-link .status-card-link):has(.truncated):hover:after{color:var(--link-color);-webkit-transform:translate(2px,0);transform:translate(2px)}.status-card-link:not(.truncated .status-card-link):not(.status-card-link .status-card-link):has(.truncated):focus:after{color:var(--link-color);-webkit-transform:translate(2px,0);transform:translate(2px)}.status-card-link:hover .status-card,.status-card-link:focus .status-card{border-color:var(--outline-hover-color);box-shadow:inset 0 0 0 4px var(--bg-faded-blur-color)}.status-card-link:hover .status-card img,.status-card-link:focus .status-card img{-webkit-animation:position-object 5s ease-in-out 1s 5;animation:position-object 5s ease-in-out 1s 5;-webkit-animation-duration:5s;animation-duration:5s;-webkit-animation-duration:var(--anim-duration, 5s);animation-duration:var(--anim-duration, 5s)}.status-card-link:active .status-card{background-color:var(--bg-faded-color)}.status-card{font-size:calc(var(--text-size) * .9);margin:1em 0 0;border-radius:16px;padding:12px;border:1px solid var(--outline-color);background-color:var(--bg-color);box-shadow:inset 0 0 4px var(--outline-color)}.quote-post-native>.status-card{border-radius:8px}.status-card:has(.status-badge:not(:empty)){border-start-end-radius:8px}.status-card>*{pointer-events:none}.status-card:not(.status-carousel .status) .content{max-height:max(160px,33vh)!important;overflow:hidden}.status-card:not(.status-carousel .status) .poll{max-height:max(160px,33vh)!important;overflow:hidden}.status-card:not(.status-carousel .status) .media-container{max-height:max(160px,33vh)!important;overflow:hidden}.status.small:not(.status-carousel .status):not(.status.large .status) .status-card .content:not(.does-not-exist){max-height:80px!important}.status.small:not(.status-carousel .status):not(.status.large .status) .status-card .poll:not(.does-not-exist){max-height:80px!important}.status.small:not(.status-carousel .status):not(.status.large .status) .status-card .media-container:not(.media-gt2){max-height:80px!important}.status.large .status-card .content,.status.large .status-card .poll,.status.large .status-card .media-container{max-height:80vh!important}.status-card .content,.status-card .poll,.status-card .media-container{font-size:inherit!important}.status-card .content.truncated,.status-card .poll:not(.does-not-exist),.status-card .media-container.truncated{-webkit-mask-image:-webkit-linear-gradient(top,#000 80px,transparent);mask-image:linear-gradient(to bottom,#000 80px,transparent)}.status.small .status-card .content.truncated,.status.small .status-card .poll:not(.does-not-exist),.status.small .status-card .media-container.truncated{-webkit-mask-image:-webkit-linear-gradient(top,#000 40px,transparent);mask-image:linear-gradient(to bottom,#000 40px,transparent)}.status-card .card,.status-card .card-byline{display:none}.timeline-deck .status-card .content.truncated:after{content:none!important}.status-card-unfulfilled{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;gap:8px;font-size:calc(var(--text-size) * .9);margin:1em 0 0;border-radius:8px;padding:12px;border:1px solid var(--outline-color);background-color:var(--bg-color);box-shadow:inset 0 0 4px var(--outline-color)}.status-card-unfulfilled .icon{color:var(--text-insignificant-color)}.status-card-unfulfilled.status-card-ghost{color:var(--text-insignificant-color);border:var(--hairline-width) dashed var(--text-insignificant-color);box-shadow:none}@-webkit-keyframes skeleton-breathe{0%{opacity:1}40%{opacity:.4}to{opacity:1}}@keyframes skeleton-breathe{0%{opacity:1}40%{opacity:.4}to{opacity:1}}.status.skeleton{color:var(--outline-color);-webkit-animation:skeleton-breathe 6s linear infinite;animation:skeleton-breathe 6s linear infinite;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;contain:layout;text-rendering:optimizeSpeed}.status.skeleton>.avatar{background-color:var(--outline-color)}.status.filtered{padding-block:12px;display:-webkit-box;display:flex;gap:8px;-webkit-box-align:center;align-items:center}.status-carousel .status.filtered{padding:16px;-webkit-padding-start:24px;padding-inline-start:24px}.status.filtered .status-filtered-info{pointer-events:none;-webkit-box-flex:1;flex-grow:1;font-size:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-mask-image:-webkit-linear-gradient(var(--to-forward),black 90%,transparent);mask-image:linear-gradient(var(--to-forward),black 90%,transparent);position:relative}.status.filtered .avatar{opacity:.5;-webkit-transition:opacity .7s ease-in;transition:opacity .7s ease-in}.status.filtered:active .avatar{opacity:1}.status.filtered:hover .avatar,.status.filtered:focus .avatar{opacity:1}.status.filtered .status-filtered-info-1,.status.filtered .status-filtered-info-2{-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.status.filtered:hover .status-filtered-info-1,.status.filtered:hover .status-filtered-info-2{-webkit-transition-delay:1.5s;transition-delay:1.5s}.status.filtered .status-filtered-info-1{opacity:.5}.status.filtered:active .status-filtered-info-1{opacity:0}.status.filtered:hover .status-filtered-info-1,.status.filtered:focus .status-filtered-info-1{opacity:0}.status.filtered .status-filtered-info-2{opacity:0;-webkit-transform:translateX(8px);transform:translate(8px);position:absolute;inset-inline-start:0}.status.filtered:active .status-filtered-info-2{opacity:.75;-webkit-transform:translateX(0);transform:translate(0)}.status.filtered:hover .status-filtered-info-2,.status.filtered:focus .status-filtered-info-2{opacity:.75;-webkit-transform:translateX(0);transform:translate(0)}.status.compact-thread{display:-webkit-box;display:flex;gap:8px;padding-block:8px}.status.compact-thread .status-thread-badge{flex-shrink:0;min-width:50px;-webkit-box-pack:center;justify-content:center}.status.compact-thread .content-compact{overflow:hidden;display:-webkit-box;display:box;-webkit-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-size:90%}.status.compact-reply{--avatar-size: 20px;--line-start: 40px;--line-width: 3px;--line-end: calc(var(--line-start) + var(--line-width));display:-webkit-box;display:flex;gap:12px;--top-padding: 16px;padding-top:16px;padding-top:var(--top-padding);padding-bottom:0;margin-bottom:-8px;margin-bottom:calc(-1 * var(--top-padding) / 2);background-image:-webkit-linear-gradient(290deg,transparent 2.5%,var(--reply-to-faded-color) 10%,transparent);background-image:linear-gradient(160deg,transparent 2.5%,var(--reply-to-faded-color) 10%,transparent);background-image:-webkit-linear-gradient(var(--post-gradient-angle),transparent 2.5%,var(--reply-to-faded-color) 10%,transparent);background-image:linear-gradient(var(--post-gradient-angle),transparent 2.5%,var(--reply-to-faded-color) 10%,transparent);background-repeat:no-repeat;background-size:100% calc(100% - 8px);background-size:100% calc(100% - var(--top-padding) / 2)}.status.compact-reply.visibility-direct{background-image:var(--yellow-stripes)}.status-pre-meta+.status.compact-reply{background-image:none}.status.compact-reply>*{opacity:.65;-webkit-transition:opacity 1s ease-out;transition:opacity 1s ease-out}.status-link:hover .status.compact-reply>*{opacity:1}.status.compact-reply:before{content:"";position:absolute;top:calc(var(--top-padding) + var(--avatar-size));inset-inline-start:var(--line-start);width:var(--line-width);height:calc(100% - var(--top-padding) - var(--avatar-size) + (var(--top-padding) / 2));background-color:var(--comment-line-color);z-index:0;-webkit-mask-image:-webkit-linear-gradient(top,#000 8px,transparent);mask-image:linear-gradient(to bottom,#000 8px,transparent)}.status.compact-reply .avatar{-webkit-margin-start:calc((50px - var(--avatar-size)) / 2);margin-inline-start:calc((50px - var(--avatar-size)) / 2);justify-self:center;z-index:1}.status.compact-reply .content-compact{overflow:hidden;display:-webkit-box;display:box;-webkit-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-size:90%;line-height:var(--avatar-size)}.status.compact-reply .status-filtered-badge.badge-meta{margin-top:6px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;gap:.5em;color:var(--text-color);border-color:var(--text-color);background-color:var(--bg-blur-color);max-width:100%}.status.compact-reply .status-filtered-badge.badge-meta>span+span{position:static;width:auto}.status.compact-reply .status-filtered-badge.badge-meta>span+span:empty{display:none}.status .container{-webkit-box-flex:1;flex-grow:1;min-width:0}.status:not(.small)>.container{-webkit-padding-start:12px;padding-inline-start:12px}.status>.container>.meta{display:-webkit-box;display:flex;gap:4px;white-space:nowrap}.status.small>.container>.meta{margin-bottom:4px}.status>.container>.meta>*{min-width:0;overflow:hidden}.status>.container>.meta .meta-name{-webkit-mask-image:-webkit-linear-gradient(var(--to-backward),transparent,black 16px);mask-image:linear-gradient(var(--to-backward),transparent,black 16px);-webkit-box-flex:1;flex-grow:1}.status>.container>.meta .meta-name .name-text b{opacity:.75}.status.large>.container>.meta{min-height:50px}.status>.container>.meta .arrow{color:var(--reply-to-color);vertical-align:middle}.status>.container>.meta .time,.status>.container>.meta .edited{color:var(--text-insignificant-color);text-align:end;-webkit-text-decoration:none;text-decoration:none;flex-shrink:0;-webkit-margin-start:4px;margin-inline-start:4px;white-space:nowrap}.status>.container>.meta a.time{position:relative;overflow:visible;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:2px;font-size:90%}.status>.container>.meta a.time .more{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.status>.container>.meta a.time:hover .more,.status>.container>.meta a.time:focus .more{-webkit-transform:scale(1.2);transform:scale(1.2);color:var(--link-color)}.status>.container>.meta a.time:active,.status>.container>.meta a.time.is-open{-webkit-text-decoration:none;text-decoration:none;opacity:1}.status>.container>.meta a.time:after{content:"";position:absolute;inset:-16px -16px -8px}.status>.container>.meta .reply-to{opacity:.5;font-size:smaller}.status-reply-badge{display:-webkit-inline-box;display:inline-flex;margin:2px 0;-webkit-margin-start:4px;margin-inline-start:4px;gap:4px;-webkit-box-align:center;align-items:center;vertical-align:middle}.status-reply-badge .icon{color:var(--reply-to-color)}.status-thread-badge{vertical-align:middle;display:-webkit-inline-box;display:inline-flex;margin:2px 0;gap:4px;-webkit-box-align:center;align-items:center;color:var(--reply-to-text-color);background:var(--bg-color);border:1px solid var(--reply-to-color);border-radius:4px;padding:4px;font-size:10px;line-height:1;text-transform:uppercase;opacity:.75;background-image:-webkit-repeating-linear-gradient(160deg,transparent,transparent 3px,var(--reply-to-faded-color) 3px,var(--reply-to-faded-color) 4px);background-image:repeating-linear-gradient(-70deg,transparent,transparent 3px,var(--reply-to-faded-color) 3px,var(--reply-to-faded-color) 4px);font-weight:700}.status-direct-badge{vertical-align:middle;display:-webkit-inline-box;display:inline-flex;margin:2px 0;gap:4px;-webkit-box-align:center;align-items:center;color:var(--reply-to-text-color);background-color:var(--bg-color);border:1px solid var(--reply-to-text-color);border-radius:4px;padding:4px;font-size:10px;line-height:1;text-transform:uppercase;opacity:.75;font-weight:700;box-shadow:inset 0 0 0 1px var(--reply-to-color)}.status-filtered-badge{flex-shrink:0;color:var(--text-insignificant-color);border:var(--hairline-width) dashed var(--text-insignificant-color);border-radius:4px;padding:4px;font-size:10px;line-height:1;text-transform:uppercase;font-weight:700;vertical-align:middle;display:inline-block}.status-filtered-badge.horizontal{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}.status-filtered-badge:not(.horizontal).badge-meta{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;position:relative;top:-5.5px;min-width:50px;max-width:100px;text-align:center}.status-filtered-badge.clickable:hover{cursor:pointer;color:var(--text-color);border-color:var(--text-color);background:var(--bg-color)}.status-filtered-badge:not(.horizontal).badge-meta>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-filtered-badge:not(.horizontal).badge-meta>span+span{display:block;font-size:9px;font-weight:400;text-transform:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;position:absolute;width:100%;top:calc(100% + 2px);inset-inline-start:0;text-align:center}.status-filtered-badge.horizontal.badge-meta>span+span{font-weight:400;text-transform:none}.status.large>.container>.content-container{-webkit-margin-start:-66px;margin-inline-start:-66px;padding-top:10px;padding-bottom:10px}.status .content-container.has-spoiler .spoiler-button:not([hidden]),.status .content-container.has-spoiler .spoiler-media-button:not([hidden]){margin:4px 0;font-size:90%;border:1px dashed var(--button-bg-color);display:-webkit-box;display:flex;gap:4px;-webkit-box-align:center;align-items:center;text-align:start}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~:not(.content.truncated):not(.media-container):not(.media-first-container):not(.card):not(.media-figure-multiple):not(.spoiler-media-button),.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.card .meta-container{opacity:.2;text-decoration-thickness:1.5em;text-decoration-line:line-through;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~:not(.content.truncated):not(.media-container):not(.media-first-container):not(.card):not(.media-figure-multiple):not(.spoiler-media-button) ruby,.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.card .meta-container:not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(.does-not-exist) ruby{-webkit-filter:contrast(0);filter:contrast(0);background-color:#000}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~:not(.content.truncated):not(.media-container):not(.media-first-container):not(.card):not(.media-figure-multiple):not(.spoiler-media-button) *,.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.card .meta-container:not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(.does-not-exist) *{text-decoration-color:inherit;text-decoration-thickness:1.5em;text-decoration-line:line-through}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~:not(.media-container):not(.media-first-container):not(.card):not(.media-figure-multiple):not(.spoiler-media-button) img,.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.card .meta-container:not(.does-not-exist):not(.does-not-exist):not(.does-not-exist) img,.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~:not(.media-container):not(.media-first-container):not(.card):not(.media-figure-multiple):not(.spoiler-media-button) video,.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.card .meta-container:not(.does-not-exist):not(.does-not-exist):not(.does-not-exist) video{-webkit-filter:invert(.5);filter:invert(.5);background-color:#000}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.content.truncated{opacity:1}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.content.truncated>*{opacity:.2;text-decoration-thickness:1.5em;text-decoration-line:line-through;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.content.truncated>* *{text-decoration-color:inherit;text-decoration-thickness:1.5em;text-decoration-line:line-through}.status .content-container.has-spoiler:not(.show-spoiler) .spoiler-button~.card .card-image>img{display:none}.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-container figcaption,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-container figcaption,.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-figure-multiple figcaption,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-figure-multiple figcaption{opacity:.2;color:inherit;text-decoration-thickness:1.5em;text-decoration-line:line-through;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-container figcaption *,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-container figcaption *,.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-figure-multiple figcaption *,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-figure-multiple figcaption *{text-decoration-thickness:1.5em;text-decoration-line:line-through}.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-container figcaption img,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-container figcaption img,.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-figure-multiple figcaption img,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-figure-multiple figcaption img{opacity:0}.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-container .media,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-container .media,.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-first-container .media,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-first-container .media,.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-figure-multiple .media,.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-figure-multiple .media{background-image:-webkit-radial-gradient(50% 50%,circle,var(--average-color, var(--bg-faded-color)),var(--bg-color) 25em);background-image:radial-gradient(circle at 50% 50%,var(--average-color, var(--bg-faded-color)),var(--bg-color) 25em)}.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-container .media>:not(.media-play):not(.alt-badge),.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-container .media>:not(.media-play):not(.alt-badge),.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-first-container .media>:not(.media-play):not(.alt-badge),.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-first-container .media>:not(.media-play):not(.alt-badge),.status .content-container.has-spoiler:not(.show-media) .spoiler-button~.media-figure-multiple .media>:not(.media-play):not(.alt-badge),.status .content-container.has-spoiler:not(.show-media) .spoiler-media-button~.media-figure-multiple .media>:not(.media-play):not(.alt-badge){opacity:0;image-rendering:crisp-edges;image-rendering:pixelated;-webkit-animation:none!important;animation:none!important}.status .content-container.show-spoiler .spoiler-button.spoiling,.status .content-container.show-spoiler .spoiler-media-button.spoiling{border-style:dotted}.status .content-container .spoiler-divider{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:4px;color:var(--text-insignificant-color);text-transform:uppercase;font-size:.8em;margin-top:.25em;margin-bottom:1em;padding-block:.25em;border-bottom:1px dashed var(--divider-color)}.status .content-comment-hint{margin-top:.25em;font-size:90%;display:-webkit-box;display:flex;gap:4px;-webkit-box-align:center;align-items:center}.timeline-item-container :is(.status .content-comment-hint){display:none}.status.compact-thread .spoiler-badge{font-size:smaller;color:var(--button-bg-color);border:1px dashed var(--button-bg-color);padding:2px 4px;border-radius:16px;display:-webkit-inline-box;display:inline-flex;margin:4px;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;background:var(--bg-faded-color)}.timeline-deck .status .content{max-height:50vh;overflow:clip;position:relative}.timeline-deck .status .content:has(.status-card):not(:has(+.media-container)){max-height:80vh}.timeline-deck .status-reblog:not(.status-carousel .status-reblog) .status .content{max-height:40vh;max-height:40dvh}.timeline-deck .status:not(.truncated .status) .content.truncated{-webkit-mask-image:-webkit-linear-gradient(bottom,transparent,rgba(0,0,0,.5) 1em,black 1.5em);mask-image:linear-gradient(to top,transparent,rgba(0,0,0,.5) 1em,black 1.5em)}.timeline-deck .status:not(.truncated .status) .content.truncated[data-read-more]:after{content:attr(data-read-more);line-height:1;display:inline-block;position:absolute;inset-block-end:1.5em;left:45%;-webkit-transform:translateX(-50%);transform:translate(-50%);color:var(--text-color);background-color:var(--bg-faded-color);border:1px dashed var(--link-color);padding:.75em 1em;border-radius:10em;font-size:90%;white-space:nowrap;box-shadow:0 0 0 1px var(--bg-color),0 -5px 10px var(--bg-color),0 -5px 15px var(--bg-color),0 -5px 20px var(--bg-color);-webkit-transition:-webkit-transform .5s ease-in-out;transition:-webkit-transform .5s ease-in-out;transition:transform .5s ease-in-out;transition:transform .5s ease-in-out,-webkit-transform .5s ease-in-out}.timeline-deck .status .content.truncated:hover:after{color:var(--link-color);-webkit-transform:translateX(-50%) translateY(-2px) scale(1.01);transform:translate(-50%) translateY(-2px) scale(1.01)}.timeline-deck .status .content.truncated~.card{display:none}.status .content .inner-content>img[height]{height:auto;aspect-ratio:var(--original-aspect-ratio)}.status .content .inner-content a:not(.mention):not(.has-url-text){color:var(--link-text-color)}.status .content .inner-content a:not(.mention):not(.has-url-text):hover,.status .content .inner-content a:not(.mention):not(.has-url-text):focus{color:var(--text-color);text-decoration-color:var(--link-color)}.status .content .h-card,.status .content .mention{unicode-bidi:isolate}.status .spoiler-content>*,.status .content .inner-content>*{unicode-bidi:plaintext}.status .content p{margin-block:min(.75em,12px);white-space:pre-wrap;-moz-tab-size:2;-o-tab-size:2;tab-size:2;text-wrap:pretty}.status-card .content p{margin-block:min(.25em,4px)}.status .content p:first-child{-webkit-margin-before:0;margin-block-start:0}.status .content p:last-child{-webkit-margin-after:0;margin-block-end:0}.status .content blockquote{margin-block:min(.75em,12px);margin-inline:0;padding-block:0;padding-inline:12px 0;position:relative}.status .content blockquote:before{position:absolute;content:"";width:3px;background-color:var(--link-faded-color);inset-block:0;inset-inline-start:0;border-radius:9999px}.status .content .inner-content>ul,.status .content .inner-content>ol,.status .content .inner-content>div>ul,.status .content .inner-content>div>ol,.status .content .inner-content>blockquote>ul,.status .content .inner-content>blockquote>ol{margin-block:min(.75em,12px);margin-inline:0;-webkit-padding-start:1.5em;padding-inline-start:1.5em}.status .content .inner-content>ul li>ul,.status .content .inner-content>ul li>ol,.status .content .inner-content>ol li>ul,.status .content .inner-content>ol li>ol,.status .content .inner-content>div>ul li>ul,.status .content .inner-content>div>ul li>ol,.status .content .inner-content>div>ol li>ul,.status .content .inner-content>div>ol li>ol,.status .content .inner-content>blockquote>ul li>ul,.status .content .inner-content>blockquote>ul li>ol,.status .content .inner-content>blockquote>ol li>ul,.status .content .inner-content>blockquote>ol li>ol{-webkit-padding-start:1.5em;padding-inline-start:1.5em}.status .content .inner-content:has(~.quote-post-native) .quote-inline{display:none}.status .content ul{list-style-type:disc}.status .content strong,.status .content b{font-weight:600}.status .content .invisible{display:none}.status .content .ellipsis:after{content:"…"}.status.large .content:not(.content .content){font-size:150%;font-size:min(calc(100% + 50% / var(--content-text-weight)),150%)}.status.large .poll,.status.large .actions{font-size:125%;font-size:calc(100% + 25% / var(--content-text-weight))}.status .media-container{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;grid-gap:2px;gap:2px;min-height:var(--min-dimension);height:auto;max-height:max(160px,33vh)}.status .media-container.media-eq1{display:-webkit-box;display:flex;max-height:none!important}.status-carousel .status .media-container:not(.status-card .media-container){margin-inline:-16px;max-width:calc(100% + 32px)!important}.status-carousel .status .media-container:not(.status-card .media-container) figure:before{content:"";display:block;flex-basis:12px}.status-carousel .status .media-container:not(.status-card .media-container) figure figcaption{padding-inline:16px!important}.status-carousel .status .media-container:not(.status-card .media-container):not(.media-figure-multiple .media-container){margin-bottom:-16px}.status-carousel .status .media-container.media-eq1:not(.status-card .media-container):not(.media-figure-multiple .media-container):not(:has(figure)){text-align:center;background-color:var(--img-bg-color)}.status-carousel .status .media-container:not(.status-card .media-container) .media{--media-radius: 0;--media-radius-inner: 0;box-sizing:border-box}.status:not(.large):not(.status-carousel .status) .media-container.media-eq1:has([data-orientation=portrait]){width:85%;min-width:160px;max-height:200px}.status .media-container.media-gt2{max-height:max(200px,40vh)}.status.medium .content~* .media-container.media-eq2:not(.status-card .media-container){-webkit-margin-start:-25px;margin-inline-start:-25px;-webkit-margin-end:-4px;margin-inline-end:-4px}.status.medium .content~* .media-container.media-gt2:not(.status-card .media-container){-webkit-margin-start:-25px;margin-inline-start:-25px;-webkit-margin-end:-4px;margin-inline-end:-4px}.status.medium .content~.media-container.media-eq2:not(.status-card .media-container){-webkit-margin-start:-25px;margin-inline-start:-25px;-webkit-margin-end:-4px;margin-inline-end:-4px}.status.medium .content~.media-container.media-gt2:not(.status-card .media-container){-webkit-margin-start:-25px;margin-inline-start:-25px;-webkit-margin-end:-4px;margin-inline-end:-4px}.status.large .media-container:not(.does-not-exist),.status.large .media-container.media-gt2{height:auto;max-height:60vh}.status .media-container .media{box-sizing:content-box;--media-border-width: 1px;--media-radius: 16px;--media-radius-inner: 4px;border-radius:16px;border-radius:var(--media-radius);overflow:hidden;min-height:80px;border:1px solid var(--outline-color);border:var(--media-border-width) solid var(--outline-color);vertical-align:top}.status .media-container .media:not(.media-audio){background-color:var(--average-color, var(--bg-faded-color));background-clip:padding-box}.status .media-container .media[data-has-small-dimension] img{-o-object-fit:scale-down;object-fit:scale-down}.status .media-container:not(.media-eq1) .media{aspect-ratio:auto!important}.status .media-container.media-eq1{width:auto!important;max-width:100%;display:block}.status .media-container.media-eq1 figure{margin:0;padding:0;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.status .media-container.media-eq1 figure figcaption{align-self:flex-end;padding:4px;font-size:90%;color:var(--text-insignificant-color);line-height:1.2;cursor:pointer;white-space:pre-line;flex-basis:15em;-webkit-box-flex:1;flex-grow:1;text-wrap:pretty}.status .media-container.media-eq1:hover figure figcaption{color:var(--text-color)}.status .media-container.media-eq1 .media{display:inline-block;max-width:100%!important;min-width:var(--min-dimension);min-height:var(--min-dimension);width:min(var(--aspectWidth),var(--width),100%);max-height:min(var(--height),33vh)}.status .media-container.media-eq1 .media[data-has-natural-aspect-ratio]{--media-radius: 4px}.status .media-container.media-eq1 .media[data-orientation=portrait]{max-height:min(var(--height),45vh)}.status.large .media-container.media-eq1{max-height:min(var(--height),60vh)}.status.large .media-container.media-eq1 .media-gif.media-contain{border-radius:2px}.status.large .media-container:not(.status-card .media-container).media-eq1 .media{width:min(var(--width),100%);max-height:min(var(--height),80vh)}.status-carousel .status .media-container.media-eq1 .media{width:min(var(--width),100%);height:auto;max-height:60vh}.status.status-card .media-container.media-eq1 .media{max-height:160px;width:auto;max-width:min(var(--width),100%)}.status .media-container.media-eq2 .media:first-of-type{border-start-end-radius:var(--media-radius-inner);border-end-end-radius:var(--media-radius-inner)}.status .media-container.media-eq2 .media:last-of-type{border-start-start-radius:var(--media-radius-inner);border-end-start-radius:var(--media-radius-inner)}.status .media-container.media-eq3 .media:first-of-type{border-start-end-radius:var(--media-radius-inner);border-end-end-radius:var(--media-radius-inner)}.status .media-container.media-eq3 .media:nth-of-type(2){border-start-start-radius:var(--media-radius-inner);border-end-end-radius:var(--media-radius-inner);border-end-start-radius:var(--media-radius-inner)}.status .media-container.media-eq3 .media:last-of-type{border-start-start-radius:var(--media-radius-inner);border-start-end-radius:var(--media-radius-inner);border-end-start-radius:var(--media-radius-inner)}.status .media-container.media-eq4 .media:first-of-type{border-start-end-radius:var(--media-radius-inner);border-end-end-radius:var(--media-radius-inner);border-end-start-radius:var(--media-radius-inner)}.status .media-container.media-eq4 .media:nth-of-type(2){border-start-start-radius:var(--media-radius-inner);border-end-end-radius:var(--media-radius-inner);border-end-start-radius:var(--media-radius-inner)}.status .media-container.media-eq4 .media:nth-of-type(3){border-start-start-radius:var(--media-radius-inner);border-start-end-radius:var(--media-radius-inner);border-end-end-radius:var(--media-radius-inner)}.status .media-container.media-eq4 .media:last-of-type{border-start-start-radius:var(--media-radius-inner);border-start-end-radius:var(--media-radius-inner);border-end-start-radius:var(--media-radius-inner)}.status .media:only-child{grid-area:span 2 / span 2}.status:not(.large) .media:only-child{max-width:480px}.status.large .media-container:not(.media-eq1) .media:only-child{display:inline-block;min-width:160px;min-height:160px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.status .media:first-child:nth-last-child(3){grid-area:span 2}.status:not(.large) .media-container.media-gt4 .media:last-child{position:relative}.status:not(.large) .media-container.media-gt4 .media:last-child:after{content:"4+";position:absolute;inset:0;display:-webkit-box;display:flex;align-content:center;-webkit-box-pack:center;justify-content:center;place-content:center;-webkit-box-align:center;align-items:center;justify-items:center;place-items:center;background-color:var(--bg-faded-blur-color)}.status .media:hover,.status .media:focus{border-color:var(--outline-hover-color)}.status .media:active:not(:has(button:active)){-webkit-transform:scale(.99);transform:scale(.99)}.status .media img,.status .media video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;vertical-align:middle;dynamic-range-limit:standard}.status .media,.media-post .media{cursor:pointer}.status .media[data-has-alt],.media-post .media[data-has-alt]{position:relative}.status .media[data-has-alt] .alt-badge,.media-post .media[data-has-alt] .alt-badge{position:absolute;bottom:8px;inset-inline-start:8px}.status .media[data-has-alt] .alt-badge:before{content:"";position:absolute;inset:-12px}.media-post .media[data-has-alt] .alt-badge:before{content:"";position:absolute;inset:-12px}.status .media:not([data-has-small-dimension]) img:hover,.status .media:not([data-has-small-dimension]) img:focus,a:focus-visible .status .media:not([data-has-small-dimension]) img{-webkit-animation:position-object 5s ease-in-out 1s 5;animation:position-object 5s ease-in-out 1s 5;-webkit-animation-duration:5s;animation-duration:5s;-webkit-animation-duration:var(--anim-duration, 5s);animation-duration:var(--anim-duration, 5s)}body:has(#modal-container .carousel) .status .media img:hover{-webkit-animation:none;animation:none}.status .media .video-container,.status .media video{width:100%;height:100%;-o-object-fit:scale-down;object-fit:scale-down;border-radius:inherit}.status .media-video,.status .media-audio,.status .media-gif{position:relative;background-clip:padding-box}.status .media-video .media-play,.status .media-audio .media-play,.media-post .media-video .media-play,.media-post .media-audio .media-play{pointer-events:none;width:44px;height:44px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:var(--media-fg-color);background-color:var(--media-bg-color);box-shadow:inset 0 0 0 2px var(--media-outline-color);display:-webkit-box;display:flex;align-content:center;-webkit-box-pack:center;justify-content:center;place-content:center;-webkit-box-align:center;align-items:center;justify-items:center;place-items:center;border-radius:70px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}.status .media-video:hover:not(:active) .media-play{-webkit-transform:translate(-50%,-50%) scale(1.1);transform:translate(-50%,-50%) scale(1.1)}.status .media-audio:hover:not(:active) .media-play{-webkit-transform:translate(-50%,-50%) scale(1.1);transform:translate(-50%,-50%) scale(1.1)}.media-post .media-video:hover:not(:active) .media-play{-webkit-transform:translate(-50%,-50%) scale(1.1);transform:translate(-50%,-50%) scale(1.1)}.media-post .media-audio:hover:not(:active) .media-play{-webkit-transform:translate(-50%,-50%) scale(1.1);transform:translate(-50%,-50%) scale(1.1)}.status .media-video[data-formatted-duration]:after{font-size:12px;pointer-events:none;content:attr(data-formatted-duration);position:absolute;bottom:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:0 4px}.status .media-audio[data-formatted-duration]:after{font-size:12px;pointer-events:none;content:attr(data-formatted-duration);position:absolute;bottom:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:0 4px}.media-post .media-video[data-formatted-duration]:after{font-size:12px;pointer-events:none;content:attr(data-formatted-duration);position:absolute;bottom:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:0 4px}.media-post .media-audio[data-formatted-duration]:after{font-size:12px;pointer-events:none;content:attr(data-formatted-duration);position:absolute;bottom:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:0 4px}.status .media-audio[data-formatted-duration]:after{content:"♬ " attr(data-formatted-duration)}.media-post .media-audio[data-formatted-duration]:after{content:"♬ " attr(data-formatted-duration)}.status .media-gif[data-label]:not(:hover):after{font-size:12px;font-weight:700;pointer-events:none;content:attr(data-label);position:absolute;bottom:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:0 4px}.media-post .media-gif[data-label]:not(:hover):after{font-size:12px;font-weight:700;pointer-events:none;content:attr(data-label);position:absolute;bottom:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:0 4px}.media-gif{position:relative}.media-gif:before{content:"";position:absolute;top:auto!important;bottom:0;left:0;right:0;height:2px;background-color:var(--media-outline-color);-webkit-transform:translateX(-100%);transform:translate(-100%);-webkit-transform:translateX(calc(var(--progress, 0%) - 100%));transform:translate(calc(var(--progress, 0%) - 100%));border-radius:0!important;border:0!important;border-right:1px solid var(--media-fg-color)!important;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.media-gif:before{height:3px}.status .media-gif video{-o-object-fit:cover;object-fit:cover;pointer-events:none}.status .media-contain{min-width:160px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.status .media-contain video{-o-object-fit:scale-down!important;object-fit:scale-down!important}.status .media-eq1 .media-hover-animate{-webkit-transition:border-radius .15s ease-out;transition:border-radius .15s ease-out;-webkit-transition-delay:.15s;transition-delay:.15s}.status .media-eq1 .media-hover-animate:hover{-webkit-transition-delay:0;transition-delay:0;border-radius:2px}.status .media-audio,.media-post .media-audio{width:100%;height:100%;min-height:var(--min-dimension);background-image:-webkit-radial-gradient(center center,circle,transparent,var(--bg-faded-color)),-webkit-repeating-radial-gradient(center center,circle,transparent,var(--bg-faded-color) 16px);background-image:radial-gradient(circle at center center,transparent,var(--bg-faded-color)),repeating-radial-gradient(circle at center center,transparent,var(--bg-faded-color) 16px);background-blend-mode:multiply}.status.skeleton .media-first-container{min-height:320px;background-color:var(--outline-color)}.status .media-large-container{width:100%;max-width:100%;display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;flex-wrap:wrap}.status .media-large-container .media{width:auto!important;width:var(--width, auto)!important}.status .media-large-container figure{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.status .media-large-container figure figcaption{-webkit-box-flex:0!important;flex-grow:0!important;flex-basis:auto!important;align-self:flex-start!important}@-webkit-keyframes media-carousel-slide{0%{-webkit-transform:translateX(2.5px);transform:translate(2.5px);-webkit-transform:translateX(calc(var(--dots-count, 1) * 2.5px));transform:translate(calc(var(--dots-count, 1) * 2.5px))}to{-webkit-transform:translateX(-2.5px);transform:translate(-2.5px);-webkit-transform:translateX(calc(var(--dots-count, 1) * -2.5px));transform:translate(calc(var(--dots-count, 1) * -2.5px))}}@keyframes media-carousel-slide{0%{-webkit-transform:translateX(2.5px);transform:translate(2.5px);-webkit-transform:translateX(calc(var(--dots-count, 1) * 2.5px));transform:translate(calc(var(--dots-count, 1) * 2.5px))}to{-webkit-transform:translateX(-2.5px);transform:translate(-2.5px);-webkit-transform:translateX(calc(var(--dots-count, 1) * -2.5px));transform:translate(calc(var(--dots-count, 1) * -2.5px))}}.status-media-first{timeline-scope:--media-carousel}.status-media-first .meta-name{opacity:.65;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}.status-media-first .meta-name b+i{opacity:0;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}:hover>.status-media-first .meta-name,:focus>.status-media-first .meta-name{opacity:1}:hover>.status-media-first .meta-name b+i,:focus>.status-media-first .meta-name b+i{opacity:.5}.status-media-first .media-first-spoiler-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;opacity:.5}.status-media-first:hover .media-first-spoiler-content{opacity:1}.status-media-first .media-first-spoiler-button{display:-webkit-inline-box!important;display:inline-flex!important}.status-media-first .media-first-container{position:relative;margin-top:8px;margin-inline:-16px}@media (min-width: 40em){.status-media-first .media-first-container{margin-inline:0}}.status-media-first .media-first-container .media-carousel-controls{flex-shrink:0;position:absolute;inset:0;pointer-events:none;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.status-media-first .media-first-container .carousel-indexer{z-index:1;position:absolute;top:8px;inset-inline-end:8px;color:var(--media-fg-color);background-color:var(--media-bg-color);padding:2px 8px;border-radius:16px;font-size:.8em;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.6;-webkit-transition:opacity 1s ease-in-out .3s;transition:opacity 1s ease-in-out .3s;border:var(--hairline-width) solid var(--media-outline-color)}.status-media-first .media-first-container .media-carousel-button{display:-webkit-box;display:flex;flex-shrink:0;padding-inline:8px;margin-block:3em;pointer-events:auto;cursor:pointer;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}@media (pointer: coarse){.status-media-first .media-first-container .carousel-button{display:none}}.status-media-first .media-first-container .carousel-button+.carousel-button{inset-inline-start:auto;inset-inline-end:8px}@media (hover: hover) and (pointer: fine){.status-media-first .media-first-container .carousel-button{-webkit-filter:opacity(0);filter:opacity(0)}.status-media-first .media-first-container:hover .carousel-button{-webkit-filter:opacity(1);filter:opacity(1)}}.status-media-first .media-first-carousel{display:-webkit-box;display:flex;max-height:80vh;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-user-select:none;-moz-user-select:none;user-select:none;scrollbar-width:none;box-shadow:0 0 0 var(--hairline-width) var(--outline-color);scroll-timeline:--media-carousel x}@media (min-width: 40em){.status-media-first .media-first-carousel{box-shadow:none}}.status-media-first .media-first-carousel::-webkit-scrollbar{display:none}.status-media-first .media-first-carousel>.media-first-item{scroll-snap-align:center;scroll-snap-stop:always;flex-shrink:0;display:-webkit-box;display:flex;width:100%;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.status-media-first .media-first-carousel>.media-first-item:not(:only-child){background-color:var(--bg-blur-color)}.status-media-first .media-first-carousel>.media-first-item .media{width:100%;width:var(--width, 100%);max-width:100%;max-height:100%;min-height:var(--min-dimension)}.status-media-first .media-first-carousel>.media-first-item .media:has(img:not([data-loaded=true])){min-height:320px}.status-media-first .media-first-carousel>.media-first-item .media:active{-webkit-transform:none;transform:none;-webkit-filter:none;filter:none}.status-media-first .media-first-carousel>.media-first-item .media img,.status-media-first .media-first-carousel>.media-first-item .media video{-o-object-fit:scale-down;object-fit:scale-down;-webkit-animation:none;animation:none}.status-media-first .media-first-carousel>.media-first-item .media img:not([data-loaded=true]),.status-media-first .media-first-carousel>.media-first-item .media video:not([data-loaded=true]){background-color:var(--bg-color)}:hover>.status-media-first .carousel-indexer,:focus>.status-media-first .carousel-indexer{opacity:0}.status-media-first .media-carousel-dots{pointer-events:none;display:-webkit-box;display:flex;gap:5px;-webkit-box-pack:center;justify-content:center;margin-top:8px;padding:8px}@supports ((animation-timeline: scroll()) and (animation-range: 0% 100%)){.status-media-first .media-carousel-dots{-webkit-animation:media-carousel-slide 1s linear both;animation:media-carousel-slide 1s linear both;animation-timeline:--media-carousel}}.status-media-first .media-carousel-dots .carousel-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background-color:var(--text-color);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:.3;flex-shrink:0}.status-media-first .media-carousel-dots .carousel-dot.active{opacity:1;background-color:var(--text-color);-webkit-transform:scale(1.5);transform:scale(1.5)}.status-media-first .media-first-content{margin-top:8px;height:1.75em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;-webkit-mask-image:-webkit-linear-gradient(top,black 1.5em,transparent 1.75em);mask-image:linear-gradient(to bottom,black 1.5em,transparent 1.75em);opacity:.5;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}@media (min-width: 40em){.status-media-first .media-first-content{margin-inline:16px}}.status-media-first .media-first-content *{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important;pointer-events:none}.status-media-first .media-first-content a{-webkit-filter:grayscale(.5);filter:grayscale(.5)}:hover>.status-media-first .media-first-content,:focus>.status-media-first .media-first-content{opacity:1}.status:not(.large) .hashtag-stuffing{opacity:.75;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.status:not(.large) .hashtag-stuffing:focus-within{opacity:1}.status:not(.large) .hashtag-stuffing:hover,.status:not(.large) .hashtag-stuffing:focus{opacity:1}.status:not(.large) .hashtag-stuffing{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.status:not(.large) .hashtag-stuffing br{display:none}.status:not(.large) .hashtag-stuffing br+*{-webkit-margin-start:1ex;margin-inline-start:1ex}.status:not(.large) .hashtag-stuffing:first-child{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;white-space:normal}.media-figure-multiple{margin:0;padding:0}.media-figure-multiple figcaption{padding:4px;font-size:90%;color:var(--text-insignificant-color);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-figure-multiple figcaption>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-figure-multiple figcaption>:hover{color:var(--text-color);cursor:pointer}.media-figure-multiple figcaption>:only-child{white-space:pre-line;overflow:auto;text-overflow:initial;display:-webkit-box;display:flex;gap:4px}.media-figure-multiple figcaption sup{opacity:.75;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.media-figure-multiple:has(.media[data-has-alt]:nth-child(1):is(:hover,:focus)) figcaption>div[data-caption-index~="1"],.media-figure-multiple:has(.media[data-has-alt]:nth-child(2):is(:hover,:focus)) figcaption>div[data-caption-index~="2"],.media-figure-multiple:has(.media[data-has-alt]:nth-child(3):is(:hover,:focus)) figcaption>div[data-caption-index~="3"],.media-figure-multiple:has(.media[data-has-alt]:nth-child(4):is(:hover,:focus)) figcaption>div[data-caption-index~="4"]{color:var(--text-color)}.carousel-item{position:relative}.carousel-item button.media-alt{position:absolute;--bottom: 16px;bottom:16px;bottom:var(--bottom);bottom:calc(16px + env(safe-area-inset-bottom));bottom:calc(var(--bottom) + env(safe-area-inset-bottom));inset-inline-start:16px;inset-inline-start:calc(16px + env(safe-area-inset-left));text-align:start;border-radius:8px;color:var(--text-color);padding:4px 8px;background-color:var(--bg-faded-color);border:1px solid var(--outline-color);box-shadow:0 4px 16px var(--drop-shadow-color);max-width:min(var(--main-width),calc(100% - 32px));display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:8px;font-size:90%;z-index:1;text-shadow:0 var(--hairline-width) var(--bg-color);white-space:pre-line}.carousel-item button.media-alt:hover,.carousel-item button.media-alt:focus{mix-blend-mode:normal}.carousel-item button.media-alt .media-alt-desc{overflow:hidden;white-space:normal;display:-webkit-box;display:box;-webkit-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.4}.carousel-item button.media-alt[hidden]{opacity:0}@media (hover: hover){.carousel-item button.media-alt:not([hidden]){opacity:0;-webkit-transform:translateY(var(--bottom)) scale(.95);transform:translateY(var(--bottom)) scale(.95);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.carousel-item:hover button.media-alt:not([hidden]){opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}}.card{display:-webkit-box;display:flex;margin-top:8px;border-radius:8px;border:1px solid var(--outline-color);overflow:hidden;color:inherit;-webkit-box-align:stretch;align-items:stretch;background-color:var(--bg-color);max-width:480px}.status.large .card.large,.status-carousel .content-container[data-content-text-weight="1"] .card.large{border-radius:16px;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;max-height:none}.card .card-image{flex-shrink:0;width:35%;position:relative;-webkit-border-end:1px solid var(--outline-color);border-inline-end:1px solid var(--outline-color);background-color:var(--average-color, var(--bg-faded-color));background-clip:padding-box}.card .card-image img{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.status.large .card .card-image{aspect-ratio:1 / 1}.status.large .card.large .card-image,.status-carousel .content-container[data-content-text-weight="1"] .card.large .card-image{-webkit-box-flex:1;flex-grow:1;aspect-ratio:1.91 / 1;width:100%;max-height:40vh;-webkit-border-end:0;border-inline-end:0;-webkit-border-after:1px solid var(--outline-color);border-block-end:1px solid var(--outline-color)}.card:hover img,.card:focus img,a:focus-visible .card img{-webkit-animation:position-object 5s ease-in-out 1s 5;animation:position-object 5s ease-in-out 1s 5;-webkit-animation-duration:5s;animation-duration:5s;-webkit-animation-duration:var(--anim-duration, 5s);animation-duration:var(--anim-duration, 5s)}.card p{margin:0}.card .meta-container{padding:8px;min-width:0;-webkit-box-flex:1;flex-grow:1;align-self:center}.status.large .card.large .meta-container,.status-carousel .content-container[data-content-text-weight="1"] .card.large .meta-container{align-self:flex-start;-webkit-box-flex:0;flex-grow:0;max-width:100%}.card .title{line-height:1.25;font-weight:400;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;display:box;-webkit-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;text-wrap:balance}.card .meta{font-size:smaller;opacity:.75;margin:0;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;display:box;-webkit-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.card.no-image .title,.card.no-image .meta{-webkit-line-clamp:3;line-clamp:3}.card .meta.domain{opacity:1;color:var(--text-insignificant-color)}.card .meta.domain .domain{color:var(--link-color)}.card:visited .meta .domain{color:var(--link-visited-color)}.card .meta .domain *{vertical-align:middle}a.card{-webkit-text-decoration:none;text-decoration:none;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;touch-action:manipulation}a.card:hover,a.card:focus{border:1px solid var(--link-color);box-shadow:0 0 0 2px var(--link-faded-color)}a.card:hover:visited{border-color:var(--link-visited-color)}a.card:focus:visited{border-color:var(--link-visited-color)}.card.video{max-width:320px;max-height:320px;cursor:pointer}.card.video lite-youtube{pointer-events:none}.card.video iframe{width:100%;height:100%}.card.card-post{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}.card.card-post .title{font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card.card-post .meta{-webkit-line-clamp:5;line-clamp:5;opacity:1}.status.large .card.large.card-post,.status-carousel .content-container[data-content-text-weight="1"] .card.large.card-post{-webkit-box-orient:vertical;-webkit-box-direction:reverse;flex-direction:column-reverse}.card-byline-author{display:-webkit-inline-box;display:inline-flex;gap:4px;color:var(--text-insignificant-color);padding:2px 8px;-webkit-box-align:start;align-items:flex-start}.card-byline-author .icon{min-height:1em}.card-byline-author .avatar{width:16px!important;height:16px!important;opacity:.8;vertical-align:middle}.poll{display:inline-block;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;margin-top:8px;border-radius:16px;border:1px solid var(--outline-color);background-color:var(--bg-faded-color);background-image:-webkit-linear-gradient(top,var(--bg-color) 50%,var(--bg-faded-color));background-image:linear-gradient(to bottom,var(--bg-color) 50%,var(--bg-faded-color));overflow:hidden;box-shadow:inset 0 0 0 1px var(--bg-color);min-width:50%}.poll.loading{opacity:.5;pointer-events:none}.poll.read-only{pointer-events:none}.poll-options{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;gap:4px;padding:4px}.poll-option{padding:4px 8px;display:-webkit-box;display:flex;gap:16px;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;position:relative}.poll-option>*{z-index:1}.poll-option:after{content:"";position:absolute;inset:0;border-radius:4px;background-color:var(--link-faded-color);opacity:0;pointer-events:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;z-index:0}.poll-option:first-child:after{border-start-start-radius:12px;border-start-end-radius:12px}.poll-option:hover:after{opacity:1}.poll-option.poll-result:after{width:var(--percentage);opacity:1}.poll-label{width:100%;display:-webkit-box;display:flex;gap:8px;cursor:pointer;z-index:1}.poll-label input[type=radio],.poll-label input[type=checkbox]{flex-shrink:0;margin:0 3px;min-height:1.15em;accent-color:var(--link-color)}.poll-option-votes{flex-shrink:0;font-size:90%;opacity:.75;line-height:1}.poll-option-leading .poll-option-votes{font-weight:700;opacity:1}.poll-vote-button{margin:8px 0 0;-webkit-margin-start:12px;margin-inline-start:12px;-webkit-margin-end:8px;margin-inline-end:8px;min-width:160px}.poll-meta{color:var(--text-insignificant-color);margin:8px 16px;font-size:90%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.poll-meta>button:first-child{-webkit-margin-start:-8px;margin-inline-start:-8px}.poll-option-title{text-shadow:0 1px var(--bg-color);line-height:1.2}.poll-option-title .icon{vertical-align:middle}.status .extra-meta{padding-top:8px;color:var(--text-insignificant-color);font-size:90%}.status .extra-meta .icon{vertical-align:text-bottom}.status .extra-meta a{color:inherit;-webkit-text-decoration:none;text-decoration:none;vertical-align:baseline;text-decoration-thickness:1px;text-underline-offset:3px}.status .extra-meta a:hover,.status .extra-meta a:focus{-webkit-text-decoration:underline;text-decoration:underline}.status .extra-meta .edited:hover,.status .extra-meta .edited:focus{cursor:pointer;color:var(--text-color)}.status.large .extra-meta{padding-top:0;-webkit-margin-start:-66px;margin-inline-start:-66px}.status.large .emoji-reactions{cursor:default;-webkit-margin-start:-66px;margin-inline-start:-66px}.status .actions{display:-webkit-box;display:flex;gap:8px}.status.large .actions{padding-top:4px;padding-bottom:16px;-webkit-margin-start:-66px;margin-inline-start:-66px;color:var(--text-insignificant-color);border-top:var(--hairline-width) solid var(--outline-color);margin-top:8px}.status.large .actions.disabled{pointer-events:none;opacity:.5}.status .action.has-count{-webkit-box-flex:1;flex:1}.status .action>button{min-height:40px;min-width:40px;padding:0 8px;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.status .action>button.plain{color:inherit;border:1.5px solid transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.status .action>button.plain:not(:disabled):hover{color:var(--link-color);background-color:var(--button-plain-bg-hover-color)}.status .action>button.plain:not(:disabled):focus{color:var(--link-color);background-color:var(--button-plain-bg-hover-color)}.status .action>button.plain.reblog-button:not(:disabled):hover{color:var(--reblog-color)}.status .action>button.plain.reblog-button:not(:disabled):focus{color:var(--reblog-color)}.status .action>button.plain.reblog-button.checked{color:var(--reblog-color);border-color:var(--reblog-color)}@-webkit-keyframes reblogged{5%{-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}10%{-webkit-transform:translate(2px,2px);transform:translate(2px,2px)}15%{-webkit-transform:translate(0,0);transform:translate(0)}to{-webkit-transform:translate(30px,-30px);transform:translate(30px,-30px);opacity:0}}@keyframes reblogged{5%{-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}10%{-webkit-transform:translate(2px,2px);transform:translate(2px,2px)}15%{-webkit-transform:translate(0,0);transform:translate(0)}to{-webkit-transform:translate(30px,-30px);transform:translate(30px,-30px);opacity:0}}.status .action>button.plain.reblog-button.checked .icon{-webkit-animation:reblogged 1s ease-in-out;animation:reblogged 1s ease-in-out}.status .action>button.plain.favourite-button:hover,.status .action>button.plain.favourite-button:focus{color:var(--favourite-color)}.status .action>button.plain.favourite-button.checked{color:var(--favourite-color);border-color:var(--favourite-color)}@-webkit-keyframes hearted{15%{-webkit-transform:scale(1.25) translateY(-1px);transform:scale(1.25) translateY(-1px)}30%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.5) translateY(-2px);transform:scale(1.5) translateY(-2px)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes hearted{15%{-webkit-transform:scale(1.25) translateY(-1px);transform:scale(1.25) translateY(-1px)}30%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.5) translateY(-2px);transform:scale(1.5) translateY(-2px)}to{-webkit-transform:scale(1);transform:scale(1)}}.status .action>button.plain.favourite-button.checked .icon{-webkit-animation:hearted 1s ease-out;animation:hearted 1s ease-out}.status .action>button.plain.bookmark-button.checked{color:var(--link-color);border-color:var(--link-color)}@-webkit-keyframes bookmarked{25%{-webkit-transform:translateY(-10px) rotate(10deg);transform:translateY(-10px) rotate(10deg);opacity:.5}50%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}75%{-webkit-transform:translateY(-15px) rotate(-10deg);transform:translateY(-15px) rotate(-10deg);opacity:.5}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes bookmarked{25%{-webkit-transform:translateY(-10px) rotate(10deg);transform:translateY(-10px) rotate(10deg);opacity:.5}50%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}75%{-webkit-transform:translateY(-15px) rotate(-10deg);transform:translateY(-15px) rotate(-10deg);opacity:.5}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.status .action>button.plain.bookmark-button.checked .icon{-webkit-animation:bookmarked 1s ease-in-out;animation:bookmarked 1s ease-in-out}.status-menu .szh-menu__item .icon+span,.status-menu .szh-menu__submenu .icon+span{-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.status-menu .szh-menu__item.szh-menu__item--hover .icon+span,.status-menu .szh-menu__submenu.szh-menu__item--hover .icon+span{opacity:1}.status-menu .szh-menu__item.checked:not(.szh-menu__item--hover),.status-menu .szh-menu__submenu.checked:not(.szh-menu__item--hover){color:var(--checked-color)!important}.status-menu .szh-menu__item.checked .szh-menu__item:not(.szh-menu__item--hover),.status-menu .szh-menu__submenu.checked .szh-menu__item:not(.szh-menu__item--hover){color:inherit}.status-menu .szh-menu__item.checked .icon+span,.status-menu .szh-menu__submenu.checked .icon+span{opacity:1}.status-menu .szh-menu__item.checked,.status-menu .szh-menu__submenu.checked,.status-menu .szh-menu__item.checked .szh-menu__item,.status-menu .szh-menu__submenu.checked .szh-menu__item{box-shadow:inset 0 -2px 0 var(--checked-color),inset 0 -16px 8px -16px var(--checked-color)}.status-menu .szh-menu__item.checked:has(.szh-menu__item){box-shadow:none;box-shadow:initial}.status-menu .szh-menu__submenu.checked:has(.szh-menu__item){box-shadow:none;box-shadow:initial}.status-menu .menu-reblog.checked{--checked-color: var(--reblog-color)}.status-menu .menu-favourite.checked{--checked-color: var(--favourite-color)}.status-menu .menu-bookmark.checked{--checked-color: var(--link-color)}.status .content pre{border-radius:8px;padding:8px;margin:8px 0;overflow:auto;width:100%;border:1px solid var(--outline-color);background:-webkit-linear-gradient(top var(--forward),var(--bg-faded-color),transparent 160px);background:linear-gradient(to bottom var(--forward),var(--bg-faded-color),transparent 160px);white-space:pre-wrap;line-height:1.2}.status .content p code{color:var(--green-color)}.status-actions{display:-webkit-box;display:flex;position:absolute;top:-6px;inset-inline-end:8px;background-color:var(--bg-color);border-radius:8px;z-index:1;border:1px solid var(--outline-color);box-shadow:0 2px 6px -3px var(--drop-shadow-color);overflow:clip;opacity:0;pointer-events:none;-webkit-transform:translate3d(0,6px,0);transform:translate3d(0,6px,0);-webkit-transform-origin:var(--forward) center;transform-origin:var(--forward) center;-webkit-transition:all .15s ease-out .3s,border-color .3s ease-out;transition:all .15s ease-out .3s,border-color .3s ease-out}.timeline.contextual .replies[data-comments-level="4"] .status-actions{top:0}@media (hover: hover){.status-actions{-webkit-transition:border-color .3s ease-out;transition:border-color .3s ease-out}}.status-actions button.plain{color:var(--text-insignificant-color);-webkit-backdrop-filter:none;backdrop-filter:none;padding:10px;border-radius:8px;outline-offset:-5px;outline:1px solid transparent}.status-actions button.plain:hover,.status-actions button.plain:focus{color:var(--text-color);background-color:var(--bg-faded-color);-webkit-filter:none!important;filter:none!important;box-shadow:inset 0 0 0 2px var(--bg-color)}.status-actions button.plain.reblog-button.checked{color:var(--reblog-color);outline-color:var(--reblog-color)}.status-actions button.plain.favourite-button.checked{color:var(--favourite-color);outline-color:var(--favourite-color)}.status-actions button.plain.bookmark-button.checked{color:var(--link-color);outline-color:var(--link-color)}.status-actions:hover{border-color:var(--outline-hover-color)}.status:focus .status-actions,.status:focus-within .status-actions,.status-actions.open{opacity:1;pointer-events:auto;-webkit-transform:translateX(0);transform:translate(0)}@media (pointer: coarse){.status-actions{border-color:var(--outline-hover-color)}}@media (pointer: fine),(hover: hover){.status:hover .status-actions{opacity:1;pointer-events:auto;-webkit-transform:translateX(0);transform:translate(0)}}.status-actions.open button.more-button{color:var(--text-color);background-color:var(--outline-color);box-shadow:inset 0 0 0 2px var(--bg-color)}.status-actions.open button:not(.more-button){opacity:.3}.timeline.contextual .descendant .status{--bg-gradient-rotation: -140deg}[dir=rtl] :is(.timeline.contextual .descendant .status){--bg-gradient-rotation: 140deg}.timeline.contextual .descendant .status{--bg-gradient: linear-gradient( var(--bg-gradient-rotation), var(--bg-faded-color), transparent 75% )}.timeline.contextual .descendant .status:focus{background-image:var(--bg-gradient)}.timeline.contextual .descendant .status.visibility-direct:focus{background-image:var(--bg-gradient),var(--yellow-stripes)}@media (pointer: fine),(hover: hover){.timeline.contextual .descendant .status:hover{background-image:var(--bg-gradient)}.timeline.contextual .descendant .status.visibility-direct:hover{background-image:var(--bg-gradient),var(--yellow-stripes)}}.status-badge{position:absolute;top:4px;inset-inline-end:4px;line-height:0;pointer-events:none;opacity:.75}.status-badge .favourite{color:var(--favourite-color)}.status-badge .reblog{color:var(--reblog-color)}.status-badge .bookmark{color:var(--link-color)}.status-badge .pin{color:var(--link-text-color)}@-webkit-keyframes swoosh-from-right{0%{opacity:0;-webkit-transform:translateX(300%);transform:translate(300%)}to{opacity:1;-webkit-transform:translateX(0);transform:translate(0)}}@keyframes swoosh-from-right{0%{opacity:0;-webkit-transform:translateX(300%);transform:translate(300%)}to{opacity:1;-webkit-transform:translateX(0);transform:translate(0)}}@-webkit-keyframes swoosh-from-left{0%{opacity:0;-webkit-transform:translateX(-300%);transform:translate(-300%)}to{opacity:1;-webkit-transform:translateX(0);transform:translate(0)}}@keyframes swoosh-from-left{0%{opacity:0;-webkit-transform:translateX(-300%);transform:translate(-300%)}to{opacity:1;-webkit-transform:translateX(0);transform:translate(0)}}.status-badge>*{-webkit-animation:swoosh-from-right 1s cubic-bezier(.51,.28,.16,1.26) both;animation:swoosh-from-right 1s cubic-bezier(.51,.28,.16,1.26) both}[dir=rtl] :is(.status-badge>*){-webkit-animation-name:swoosh-from-left;animation-name:swoosh-from-left}.status-badge>*:nth-child(2){-webkit-animation-delay:.1s;animation-delay:.1s}.status-badge>*:nth-child(3){-webkit-animation-delay:.2s;animation-delay:.2s}.status-badge>*:nth-child(4){-webkit-animation-delay:.3s;animation-delay:.3s}.status-aside{padding:0 16px 16px;-webkit-padding-start:80px;padding-inline-start:80px;color:var(--text-insignificant-color)}.shortcode-emoji{width:auto;min-width:1.2em;max-width:100%;height:1.2em;vertical-align:text-bottom;-o-object-fit:contain;object-fit:contain}#edit-history{min-height:50vh;min-height:50dvh}#edit-history h2{margin:0;padding:0}#edit-history ol,#edit-history ol li{list-style:none;margin:0;padding:0}#edit-history .history-item .status{border:1px solid var(--outline-color);border-radius:8px;pointer-events:none}#edit-history .status .invisible{display:revert}#edit-history .status .hashtag-stuffing{white-space:normal;opacity:1}#edit-history .status a{color:var(--text-color)}#embed-post>main>section p{margin-block:.5em}#embed-post>main>section ul{margin:0;padding-inline:1em}#embed-post>main>section p+ul{margin-top:0;padding-top:0}#embed-post .embed-code{width:100%;resize:vertical;min-height:12em;max-height:40vh;font-family:var(--monospace-font);font-size:.8em;border-color:var(--link-color)}#embed-post .links-list li>a{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}#embed-post .embed-preview{display:block;max-height:40vh;overflow:auto;font-size:.9em;border:2px dashed var(--link-light-color);border-radius:8px;box-shadow:0 4px 8px -4px var(--drop-shadow-color),0 8px 32px -8px var(--drop-shadow-color);padding:16px}#embed-post .embed-preview button,#embed-post .embed-preview a,#embed-post .embed-preview video,#embed-post .embed-preview audio,#embed-post .embed-preview input,#embed-post .embed-preview select,#embed-post .embed-preview textarea,#embed-post .embed-preview iframe,#embed-post .embed-preview object,#embed-post .embed-preview embed{pointer-events:none}#embed-post .embed-preview blockquote{margin:0 0 1em;-webkit-border-start:4px solid var(--outline-color);border-inline-start:4px solid var(--outline-color);-webkit-padding-start:1em;padding-inline-start:1em}#embed-post .embed-preview blockquote>p:first-child{margin-top:0}#embed-post .embed-preview ul,#embed-post .embed-preview ol{margin-inline:0;padding-inline:1em}#embed-post .embed-preview figure{margin-inline:0}#embed-post .embed-preview figure img,#embed-post .embed-preview figure video,#embed-post .embed-preview figure audio{max-width:100%;height:auto}.status-deleted{opacity:.75}.status-deleted-tag{color:var(--text-insignificant-color);text-transform:uppercase;font-size:80%}.status-menu-open{background-color:var(--link-bg-hover-color)!important}#filtered-status-peek{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}#filtered-status-peek main>p:first-child{margin-top:0}#filtered-status-peek main .heading{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#filtered-status-peek .status-link{margin:8px 0 0;border-radius:16px;border:var(--hairline-width) solid var(--divider-color);position:relative;max-height:33vh;max-height:33dvh;overflow:hidden}#filtered-status-peek .status-link.truncated .status{-webkit-mask-image:-webkit-linear-gradient(top,#000 80px,transparent);mask-image:linear-gradient(to bottom,#000 80px,transparent)}#filtered-status-peek .status-link.truncated[data-read-more]:after{content:attr(data-read-more);line-height:1;display:inline-block;position:absolute;--inset-offset: 16px;inset-block-end:16px;inset-block-end:var(--inset-offset);inset-inline-end:16px;inset-inline-end:var(--inset-offset);color:var(--text-color);background-color:var(--bg-faded-color);border:1px dashed var(--link-color);box-shadow:0 0 0 1px var(--bg-color),0 -5px 10px var(--bg-color),0 -5px 15px var(--bg-color),0 -5px 20px var(--bg-color);padding:.5em .75em;border-radius:10em;font-size:90%;white-space:nowrap;-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}#filtered-status-peek .status-link.truncated:hover:after{color:var(--link-color);-webkit-transform:translate(2px,0);transform:translate(2px)}#filtered-status-peek .status-link.truncated:focus:after{color:var(--link-color);-webkit-transform:translate(2px,0);transform:translate(2px)}#filtered-status-peek .status-link .status{pointer-events:none;font-size:90%}#reactions-container main ul{list-style:none;margin:0;padding:8px 0;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-column-gap:1.5em;-moz-column-gap:1.5em;column-gap:1.5em;row-gap:16px}#reactions-container main ul li{display:-webkit-box;display:flex;-webkit-box-flex:1;flex-grow:1;flex-basis:16em;-webkit-box-align:center;align-items:center;margin:0;padding:0;gap:8px}#reactions-container main ul li .account-block-acct{font-size:80%;color:var(--text-insignificant-color);display:block}#reactions-container .reactions-block{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;align-self:center}#reactions-container .reactions-block .favourite-icon{color:var(--favourite-color)}#reactions-container .reactions-block .reblog-icon{color:var(--reblog-color)}.alt-badge{font-size:12px;font-weight:700;color:var(--media-fg-color);background-color:var(--media-bg-color);border:var(--hairline-width) solid var(--media-outline-color);border-radius:4px;padding:4px;opacity:.65}.alt-badge sup{vertical-align:super;font-weight:400;line-height:0;-webkit-padding-start:2px;padding-inline-start:2px}.alt-badge.clickable{opacity:.75;border-width:2px}.alt-badge.clickable:hover:not(:active){-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-transition-property:opacity,mix-blend-mode,-webkit-transform;transition-property:opacity,mix-blend-mode,-webkit-transform;transition-property:transform,opacity,mix-blend-mode;transition-property:transform,opacity,mix-blend-mode,-webkit-transform;-webkit-transform:scale(1.15);transform:scale(1.15);opacity:.9;mix-blend-mode:normal}.alt-badge.clickable:focus:not(:active){-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-transition-property:opacity,mix-blend-mode,-webkit-transform;transition-property:opacity,mix-blend-mode,-webkit-transform;transition-property:transform,opacity,mix-blend-mode;transition-property:transform,opacity,mix-blend-mode,-webkit-transform;-webkit-transform:scale(1.15);transform:scale(1.15);opacity:.9;mix-blend-mode:normal}@media not (prefers-reduced-motion: reduce){:root{--media-swoosh-duration: .1s}:root.slow-mo{--media-swoosh-duration: 3s}::view-transition-group(.media-swoosh){-webkit-animation-duration:var(--media-swoosh-duration);animation-duration:var(--media-swoosh-duration);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:var(--timing-function);animation-timing-function:var(--timing-function)}::view-transition-old(.media-swoosh),::view-transition-new(.media-swoosh){overflow:clip;-webkit-animation:none;animation:none;width:100%;height:100%}::view-transition-old(.media-swoosh-in){-o-object-fit:cover;object-fit:cover}::view-transition-new(.media-swoosh-in){-o-object-fit:contain;object-fit:contain}::view-transition-old(.media-swoosh-out){-o-object-fit:contain;object-fit:contain;-webkit-transform:scale(.99);transform:scale(.99)}::view-transition-new(.media-swoosh-out){-o-object-fit:cover;object-fit:cover}.status .media img,.status .media video{view-transition-class:media-swoosh media-swoosh-in}.carousel .carousel-item img,.carousel .carousel-item video{view-transition-class:media-swoosh media-swoosh-out}.carousel .carousel-item .media{-webkit-animation:delayBg calc(var(--media-swoosh-duration) + .1s) steps(1) forwards;animation:delayBg calc(var(--media-swoosh-duration) + .1s) steps(1) forwards}}@-webkit-keyframes delayBg{0%{background-image:none}to{background-image:var(--bg-image)}}@keyframes delayBg{0%{background-image:none}to{background-image:var(--bg-image)}}.status .media img,.status .media video,.carousel .carousel-item img,.carousel .carousel-item video{-webkit-transition-property:width,height;transition-property:width,height;-webkit-transition-timing-function:var(--timing-function);transition-timing-function:var(--timing-function);-webkit-transition-duration:.1s;transition-duration:.1s;transition-behavior:allow-discrete}.math-block{color:var(--text-insignificant-color);margin:8px 0;border-top:1px dashed var(--outline-color);padding-top:8px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:4px;font-size:90%}.status .inner-content math[display=block]{background-image:-webkit-linear-gradient(var(--divider-color) var(--hairline-width),transparent var(--hairline-width)),-webkit-linear-gradient(left,var(--divider-color) var(--hairline-width),transparent var(--hairline-width));background-image:linear-gradient(var(--divider-color) var(--hairline-width),transparent var(--hairline-width)),linear-gradient(to right,var(--divider-color) var(--hairline-width),transparent var(--hairline-width));background-size:var(--text-size) var(--text-size);overflow:auto;--padding: 8px;background-position:center 8px;background-position:center var(--padding)}.status .inner-content math[display=block]:has(>mrow){background-position-y:calc(var(--padding) + .5ex)}.status .inner-content math[display=block]{padding:var(--padding);-webkit-mask-image:-webkit-linear-gradient(bottom,transparent,black var(--padding)),-webkit-linear-gradient(top,transparent,black var(--padding)),-webkit-linear-gradient(right,transparent,black var(--padding)),-webkit-linear-gradient(left,transparent,black var(--padding));mask-image:linear-gradient(to top,transparent,black var(--padding)),linear-gradient(to bottom,transparent,black var(--padding)),linear-gradient(to left,transparent,black var(--padding)),linear-gradient(to right,transparent,black var(--padding));-webkit-mask-composite:source-in,xor;mask-composite:intersect;-webkit-animation:appear-smooth .3s ease-out;animation:appear-smooth .3s ease-out}.status .inner-content math[display=block] :nth-child(2n):not(:has(*)){-webkit-animation:appear 1s ease-out;animation:appear 1s ease-out}@font-face{font-family:Temml;src:url(./Temml-CCjoacWt.woff2) format("woff2");font-weight:400;font-style:normal}math{font-family:"Cambria Math",STIXTwoMath-Regular,NotoSansMath-Regular,math;font-style:normal;font-weight:400;line-height:normal;font-size-adjust:none;text-indent:0;text-transform:none;letter-spacing:normal;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"dtls" off;font-feature-settings:"dtls" off}math *{border-color:currentColor}math.tml-display{display:block;width:100%}*.mathcal{-webkit-font-feature-settings:"ss01";font-feature-settings:"ss01"}math .mathscr{font-family:Temml}mo.tml-prime{font-family:Temml}@supports (-moz-appearance: none){.tml-vec{-webkit-transform:scale(.75);transform:scale(.75)}}@supports (not (-moz-appearance: none)){mo.tml-prime{font-family:Temml}.tml-sml-pad{padding-left:.05em}.tml-med-pad{padding-left:.1em}.tml-lrg-pad{padding-left:.15em}}@supports (-webkit-backdrop-filter: blur(1px)){.wbk-acc{-webkit-transform:translate(0em,.431em);transform:translateY(.431em)}.wbk-sml{-webkit-transform:translate(.07em,0);transform:translate(.07em)}.wbk-sml-acc{-webkit-transform:translate(.07em,.431em);transform:translate(.07em,.431em)}.wbk-sml-vec{-webkit-transform:scale(.75) translate(.07em,0);transform:scale(.75) translate(.07em)}.wbk-med{-webkit-transform:translate(.14em,0);transform:translate(.14em)}.wbk-med-acc{-webkit-transform:translate(.14em,.431em);transform:translate(.14em,.431em)}.wbk-med-vec{-webkit-transform:scale(.75) translate(.14em,0);transform:scale(.75) translate(.14em)}.wbk-lrg{-webkit-transform:translate(.21em,0);transform:translate(.21em)}.wbk-lrg-acc{-webkit-transform:translate(.21em,.431em);transform:translate(.21em,.431em)}.wbk-lrg-vec{-webkit-transform:scale(.75) translate(.21em,0);transform:scale(.75) translate(.21em)}}menclose{-webkit-print-color-adjust:exact;print-color-adjust:exact}.tml-right{text-align:right}.tml-left{text-align:left}@supports (not (-webkit-backdrop-filter: blur(1px))) and (not (-moz-appearance: none)){.chr-sml{-webkit-transform:translate(.07em,0);transform:translate(.07em)}.chr-sml-vec{-webkit-transform:scale(.75) translate(.07em,0);transform:scale(.75) translate(.07em)}.chr-med{-webkit-transform:translate(.14em,0);transform:translate(.14em)}.chr-med-vec{-webkit-transform:scale(.75) translate(.14em,0);transform:scale(.75) translate(.14em)}.chr-lrg{-webkit-transform:translate(.21em,0);transform:translate(.21em)}.chr-lrg-vec{-webkit-transform:scale(.75) translate(.21em,0);transform:scale(.75) translate(.21em)}menclose{position:relative;padding:.5ex 0ex}.tml-overline{padding:.1em 0 0;border-top:.065em solid}.tml-underline{padding:0 0 .1em;border-bottom:.065em solid}.tml-cancel{display:inline-block;position:absolute;left:.5px;bottom:0;width:100%;height:100%;background-color:currentColor}.upstrike{-webkit-clip-path:polygon(.05em 100%,0em calc(100% - .05em),calc(100% - .05em) 0em,100% .05em);clip-path:polygon(.05em 100%,0em calc(100% - .05em),calc(100% - .05em) 0em,100% .05em)}.downstrike{-webkit-clip-path:polygon(0em .05em,.05em 0em,100% calc(100% - .05em),calc(100% - .05em) 100%);clip-path:polygon(0em .05em,.05em 0em,100% calc(100% - .05em),calc(100% - .05em) 100%)}.sout{-webkit-clip-path:polygon(0em calc(55% + .0333em),0em calc(55% - .0333em),100% calc(55% - .0333em),100% calc(55% + .0333em));clip-path:polygon(0em calc(55% + .0333em),0em calc(55% - .0333em),100% calc(55% - .0333em),100% calc(55% + .0333em))}.tml-xcancel{background:-webkit-linear-gradient(bottom right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) calc(50% - .06em),rgba(0,0,0,1) 50%,rgba(0,0,0,0) calc(50% + .06em),rgba(0,0,0,0) 100%),-webkit-linear-gradient(bottom left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) calc(50% - .06em),rgba(0,0,0,1) 50%,rgba(0,0,0,0) calc(50% + .06em),rgba(0,0,0,0) 100%);background:linear-gradient(to top left,#0000 0% calc(50% - .06em),#000 50%,#0000 calc(50% + .06em) 100%),linear-gradient(to top right,#0000 0% calc(50% - .06em),#000 50%,#0000 calc(50% + .06em) 100%)}.longdiv-top{border-top:.067em solid;padding:.1em .2em .2em .433em}.longdiv-arc{position:absolute;top:0;bottom:.1em;left:-.4em;width:.7em;border:.067em solid;-webkit-transform:translateY(-.067em);transform:translateY(-.067em);border-radius:70%;-webkit-clip-path:inset(0 0 0 .4em);clip-path:inset(0 0 0 .4em);box-sizing:border-box}.menclose{display:inline-block;text-align:left;position:relative}.phasor-bottom{border-bottom:.067em solid;padding:.2em .2em .1em .6em}.phasor-angle{display:inline-block;position:absolute;left:.5px;bottom:-.04em;height:100%;aspect-ratio:.5;background-color:currentColor;-webkit-clip-path:polygon(.05em 100%,0em calc(100% - .05em),calc(100% - .05em) 0em,100% .05em);clip-path:polygon(.05em 100%,0em calc(100% - .05em),calc(100% - .05em) 0em,100% .05em)}.tml-fbox{padding:3pt;border:1px solid}.circle-pad{padding:.267em}.textcircle{position:absolute;inset:0;border:.067em solid;border-radius:50%}.actuarial{padding:.03889em .03889em 0;border-width:.08em .08em 0em 0em;border-style:solid;margin-right:.03889em}.tml-crooked-2{-webkit-transform:scale(2,1.1);transform:scale(2,1.1)}.tml-crooked-3{-webkit-transform:scale(3,1.3);transform:scale(3,1.3)}.tml-crooked-4{-webkit-transform:scale(4,1.4);transform:scale(4,1.4)}.tml-right{text-align:-webkit-right}.tml-left{text-align:-webkit-left}}.special-fraction{font-family:STIX TWO,Times New Roman,Times,Tinos,serif}math{display:-webkit-inline-box;display:inline-flex;flex-wrap:wrap;-webkit-box-align:baseline;align-items:baseline}math>mrow{padding:.5ex 0ex}mtable.tml-jot mtd{padding-top:.7ex;padding-bottom:.7ex}mtable.tml-small mtd{padding-top:.35ex;padding-bottom:.35ex}@-moz-document url-prefix(){math{display:inline}math>mrow{padding:0}mtd,mtable.tml-small mtd{padding-top:0;padding-bottom:0}mtable.tml-jot mtd{padding-top:.2ex;padding-bottom:0ex}}.tml-eqn:before{counter-increment:tmlEqnNo;content:"(" counter(tmlEqnNo) ")"}body{counter-reset:tmlEqnNo} diff --git a/assets/ScheduledAtField-DOwsX15z.js b/assets/ScheduledAtField-DOwsX15z.js new file mode 100644 index 0000000..30285dd --- /dev/null +++ b/assets/ScheduledAtField-DOwsX15z.js @@ -0,0 +1,193 @@ +import{ao as ye,W as Pt,e as r,d as U,q as _t,A as N,_ as Oe,y as X,I as yr,ap as Ma,l as ot,S as ke,h as br,aq as Pa,ar as eo,as as Ra,at as Yi,V as Xi,k as B,M as Je,$ as kt,G as bn,z as It,s as W,a8 as k,au as Oa,x as $a,n as Na,av as Fa,u as te,a as no,g as wr,H as Ba,aw as za,ax as Va,T as P,ay as Qi,az as Ha,aA as Ji,p as lo,E as ts,aB as Ka,aC as $t,aD as ja,aE as Ua,aF as Bn,P as le,c as Cn,t as Wa,b as we,a0 as es,aG as Za,aH as qa,aI as Ga}from"./useTitle-BuJm5pdu.js";const ns=["shift","alt","meta","mod","ctrl","control"],Ya={esc:"escape",return:"enter",left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function Ae(t){return(Ya[t.trim()]||t.trim()).toLowerCase().replace(/key|digit|numpad/,"")}function os(t){return ns.includes(t)}function To(t,e=","){return t.toLowerCase().split(e)}function Ao(t,e="+",n=">",o=!1,i){let a=[],s=!1;t.includes(n)?(s=!0,a=t.toLocaleLowerCase().split(n).map(h=>Ae(h))):a=t.toLocaleLowerCase().split(e).map(h=>Ae(h));const c={alt:a.includes("alt"),ctrl:a.includes("ctrl")||a.includes("control"),shift:a.includes("shift"),meta:a.includes("meta"),mod:a.includes("mod"),useKey:o},l=a.filter(h=>!ns.includes(h));return{...c,keys:l,description:i,isSequence:s}}typeof document<"u"&&(document.addEventListener("keydown",t=>{t.code!==void 0&&rs([Ae(t.code)])}),document.addEventListener("keyup",t=>{t.code!==void 0&&is([Ae(t.code)])})),typeof window<"u"&&(window.addEventListener("blur",()=>{me.clear()}),window.addEventListener("contextmenu",()=>{setTimeout(()=>{me.clear()},0)}));const me=new Set;function Er(t){return Array.isArray(t)}function Xa(t,e=","){return(Er(t)?t:t.split(e)).every(n=>me.has(n.trim().toLowerCase()))}function rs(t){const e=Array.isArray(t)?t:[t];me.has("meta")&&me.forEach(n=>!os(n)&&me.delete(n.toLowerCase())),e.forEach(n=>me.add(n.toLowerCase()))}function is(t){const e=Array.isArray(t)?t:[t];t==="meta"?me.clear():e.forEach(n=>me.delete(n.toLowerCase()))}function Qa(t,e,n){(typeof n=="function"&&n(t,e)||n===!0)&&t.preventDefault()}function Ja(t,e,n){return typeof n=="function"?n(t,e):n===!0||n===void 0}function tc(t){return ss(t,["input","textarea","select"])}function ss(t,e=!1){const{target:n,composed:o}=t;let i;return ec(n)&&o?i=t.composedPath()[0]&&t.composedPath()[0].tagName:i=n&&n.tagName,Er(e)?!!(i&&e&&e.some(a=>a.toLowerCase()===i.toLowerCase())):!!(i&&e&&e)}function ec(t){return!!t.tagName&&!t.tagName.startsWith("-")&&t.tagName.includes("-")}function nc(t,e){return t.length===0&&e?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a '),!0):e?t.some(n=>e.includes(n))||t.includes("*"):!0}const oc=(t,e,n=!1)=>{const{alt:o,meta:i,mod:a,shift:s,ctrl:c,keys:l,useKey:h}=e,{code:d,key:u,ctrlKey:f,metaKey:m,shiftKey:p,altKey:g}=t,v=Ae(d);if(h&&l?.length===1&&l.includes(u))return!0;if(!(l!=null&&l.includes(v))&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(v))return!1;if(!n){if(o!==g&&v!=="alt"||s!==p&&v!=="shift")return!1;if(a){if(!m&&!f)return!1}else if(i!==m&&v!=="meta"&&v!=="os"||c!==f&&v!=="ctrl"&&v!=="control")return!1}return l&&l.length===1&&l.includes(v)?!0:l?Xa(l):!l},rc=ye(void 0),ic=()=>Pt(rc);function as(t,e){return t&&e&&typeof t=="object"&&typeof e=="object"?Object.keys(t).length===Object.keys(e).length&&Object.keys(t).reduce((n,o)=>n&&as(t[o],e[o]),!0):t===e}const sc=ye({hotkeys:[],activeScopes:[],toggleScope:()=>{},enableScope:()=>{},disableScope:()=>{}}),ac=()=>Pt(sc);function cc(t){const e=N(void 0);return as(e.current,t)||(e.current=t),e.current}const ti=t=>{t.stopPropagation(),t.preventDefault(),t.stopImmediatePropagation()},lc=typeof window<"u"?Oe:X;function je(t,e,n,o){const i=N(null),a=N(!1),s=n instanceof Array?o instanceof Array?void 0:o:n,c=Er(t)?t.join(s?.delimiter):t,l=n instanceof Array?n:o instanceof Array?o:void 0,h=_t(e,l??[]),d=N(h);l?d.current=h:d.current=e;const u=cc(s),{activeScopes:f}=ac(),m=ic();return lc(()=>{if(u?.enabled===!1||!nc(f,u?.scopes))return;let p=[],g;const v=(T,y=!1)=>{var b;if(!(tc(T)&&!ss(T,u?.enableOnFormTags))){if(i.current!==null){const I=i.current.getRootNode();if((I instanceof Document||I instanceof ShadowRoot)&&I.activeElement!==i.current&&!i.current.contains(I.activeElement)){ti(T);return}}(b=T.target)!=null&&b.isContentEditable&&!(u!=null&&u.enableOnContentEditable)||To(c,u?.delimiter).forEach(I=>{var L,x,C,O;if(I.includes(u?.splitKey??"+")&&I.includes(u?.sequenceSplitKey??">")){console.warn(`Hotkey ${I} contains both ${u?.splitKey??"+"} and ${u?.sequenceSplitKey??">"} which is not supported.`);return}const M=Ao(I,u?.splitKey,u?.sequenceSplitKey,u?.useKey,u?.description);if(M.isSequence){g=setTimeout(()=>{p=[]},u?.sequenceTimeoutMs??1e3);const R=M.useKey?T.key:Ae(T.code);if(os(R.toLowerCase()))return;p.push(R);const S=(L=M.keys)==null?void 0:L[p.length-1];if(R!==S){p=[],g&&clearTimeout(g);return}p.length===((x=M.keys)==null?void 0:x.length)&&(d.current(T,M),g&&clearTimeout(g),p=[])}else if(oc(T,M,u?.ignoreModifiers)||(C=M.keys)!=null&&C.includes("*")){if((O=u?.ignoreEventWhen)!=null&&O.call(u,T)||y&&a.current)return;if(Qa(T,M,u?.preventDefault),!Ja(T,M,u?.enabled)){ti(T);return}d.current(T,M),y||(a.current=!0)}})}},E=T=>{T.code!==void 0&&(rs(Ae(T.code)),(u?.keydown===void 0&&u?.keyup!==!0||u!=null&&u.keydown)&&v(T))},w=T=>{T.code!==void 0&&(is(Ae(T.code)),a.current=!1,u!=null&&u.keyup&&v(T,!0))},A=i.current||s?.document||document;return A.addEventListener("keyup",w,s?.eventListenerOptions),A.addEventListener("keydown",E,s?.eventListenerOptions),m&&To(c,u?.delimiter).forEach(T=>m.addHotkey(Ao(T,u?.splitKey,u?.sequenceSplitKey,u?.useKey,u?.description))),()=>{A.removeEventListener("keyup",w,s?.eventListenerOptions),A.removeEventListener("keydown",E,s?.eventListenerOptions),m&&To(c,u?.delimiter).forEach(T=>m.removeHotkey(Ao(T,u?.splitKey,u?.sequenceSplitKey,u?.useKey,u?.description))),p=[],g&&clearTimeout(g)}},[c,u,f]),i}var Xn={exports:{}};/*! + * Toastify js 1.12.0 + * https://github.com/apvarun/toastify-js + * @license MIT licensed + * + * Copyright (C) 2018 Varun A P + */var uc=Xn.exports,ei;function dc(){return ei||(ei=1,function(t){(function(e,n){t.exports?t.exports=n():e.Toastify=n()})(uc,function(e){var n=function(s){return new n.lib.init(s)},o="1.12.0";n.defaults={oldestFirst:!0,text:"Toastify is awesome!",node:void 0,duration:3e3,selector:void 0,callback:function(){},destination:void 0,newWindow:!1,close:!1,gravity:"toastify-top",positionLeft:!1,position:"",backgroundColor:"",avatar:"",className:"",stopOnFocus:!0,onClick:function(){},offset:{x:0,y:0},escapeMarkup:!0,ariaLive:"polite",style:{background:""}},n.lib=n.prototype={toastify:o,constructor:n,init:function(s){return s||(s={}),this.options={},this.toastElement=null,this.options.text=s.text||n.defaults.text,this.options.node=s.node||n.defaults.node,this.options.duration=s.duration===0?0:s.duration||n.defaults.duration,this.options.selector=s.selector||n.defaults.selector,this.options.callback=s.callback||n.defaults.callback,this.options.destination=s.destination||n.defaults.destination,this.options.newWindow=s.newWindow||n.defaults.newWindow,this.options.close=s.close||n.defaults.close,this.options.gravity=s.gravity==="bottom"?"toastify-bottom":n.defaults.gravity,this.options.positionLeft=s.positionLeft||n.defaults.positionLeft,this.options.position=s.position||n.defaults.position,this.options.backgroundColor=s.backgroundColor||n.defaults.backgroundColor,this.options.avatar=s.avatar||n.defaults.avatar,this.options.className=s.className||n.defaults.className,this.options.stopOnFocus=s.stopOnFocus===void 0?n.defaults.stopOnFocus:s.stopOnFocus,this.options.onClick=s.onClick||n.defaults.onClick,this.options.offset=s.offset||n.defaults.offset,this.options.escapeMarkup=s.escapeMarkup!==void 0?s.escapeMarkup:n.defaults.escapeMarkup,this.options.ariaLive=s.ariaLive||n.defaults.ariaLive,this.options.style=s.style||n.defaults.style,s.backgroundColor&&(this.options.style.background=s.backgroundColor),this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var s=document.createElement("div");s.className="toastify on "+this.options.className,this.options.position?s.className+=" toastify-"+this.options.position:this.options.positionLeft===!0?(s.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):s.className+=" toastify-right",s.className+=" "+this.options.gravity,this.options.backgroundColor&&console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.');for(var c in this.options.style)s.style[c]=this.options.style[c];if(this.options.ariaLive&&s.setAttribute("aria-live",this.options.ariaLive),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)s.appendChild(this.options.node);else if(this.options.escapeMarkup?s.innerText=this.options.text:s.innerHTML=this.options.text,this.options.avatar!==""){var l=document.createElement("img");l.src=this.options.avatar,l.className="toastify-avatar",this.options.position=="left"||this.options.positionLeft===!0?s.appendChild(l):s.insertAdjacentElement("afterbegin",l)}if(this.options.close===!0){var h=document.createElement("button");h.type="button",h.setAttribute("aria-label","Close"),h.className="toast-close",h.innerHTML="✖",h.addEventListener("click",(function(v){v.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}).bind(this));var d=window.innerWidth>0?window.innerWidth:screen.width;(this.options.position=="left"||this.options.positionLeft===!0)&&d>360?s.insertAdjacentElement("afterbegin",h):s.appendChild(h)}if(this.options.stopOnFocus&&this.options.duration>0){var u=this;s.addEventListener("mouseover",function(v){window.clearTimeout(s.timeOutValue)}),s.addEventListener("mouseleave",function(){s.timeOutValue=window.setTimeout(function(){u.removeElement(s)},u.options.duration)})}if(typeof this.options.destination<"u"&&s.addEventListener("click",(function(v){v.stopPropagation(),this.options.newWindow===!0?window.open(this.options.destination,"_blank"):window.location=this.options.destination}).bind(this)),typeof this.options.onClick=="function"&&typeof this.options.destination>"u"&&s.addEventListener("click",(function(v){v.stopPropagation(),this.options.onClick()}).bind(this)),typeof this.options.offset=="object"){var f=i("x",this.options),m=i("y",this.options),p=this.options.position=="left"?f:"-"+f,g=this.options.gravity=="toastify-top"?m:"-"+m;s.style.transform="translate("+p+","+g+")"}return s},showToast:function(){this.toastElement=this.buildToast();var s;if(typeof this.options.selector=="string"?s=document.getElementById(this.options.selector):this.options.selector instanceof HTMLElement||typeof ShadowRoot<"u"&&this.options.selector instanceof ShadowRoot?s=this.options.selector:s=document.body,!s)throw"Root element is not defined";var c=n.defaults.oldestFirst?s.firstChild:s.lastChild;return s.insertBefore(this.toastElement,c),n.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout((function(){this.removeElement(this.toastElement)}).bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(s){s.className=s.className.replace(" on",""),window.setTimeout((function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),s.parentNode&&s.parentNode.removeChild(s),this.options.callback.call(s),n.reposition()}).bind(this),400)}},n.reposition=function(){for(var s={top:15,bottom:15},c={top:15,bottom:15},l={top:15,bottom:15},h=document.getElementsByClassName("toastify"),d,u=0;u0?window.innerWidth:screen.width;p<=360?(h[u].style[d]=l[d]+"px",l[d]+=f+m):a(h[u],"toastify-left")===!0?(h[u].style[d]=s[d]+"px",s[d]+=f+m):(h[u].style[d]=c[d]+"px",c[d]+=f+m)}return this};function i(s,c){return c.offset[s]?isNaN(c.offset[s])?c.offset[s]:c.offset[s]+"px":"0px"}function a(s,c){return!s||typeof c!="string"?!1:!!(s.className&&s.className.trim().split(/\s+/gi).indexOf(c)>-1)}return n.lib.init.prototype=n.lib,n})}(Xn)),Xn.exports}var hc=dc();const fc=yr(hc);window._showToast=Et;function Et(t){typeof t=="string"&&(t={text:t});const{onClick:e,delay:n,...o}=t,i=fc({className:`${e||t.destination?"shiny-pill":""}`,gravity:"bottom",position:"center",...o,onClick:()=>{e?.(i)}});return n?setTimeout(()=>{i.showToast()},n):i.showToast(),i}function kv(t,e,n,o){const i=N(t);X(()=>{i.current=t},[t,n]),X(()=>{!o||e===null||e===!1||i.current()},[o]),X(()=>{if(e===null||e===!1)return;const s=setInterval(()=>i.current(),e);return()=>clearInterval(s)},[e])}const Tr=t=>!!t&&t[0]==="o",Qo=Ma,wn=(t,e)=>t===!0||!!(t&&t[e]),Gt=(t,e)=>typeof t=="function"?t(e):t,mc="_szhsinMenu",pc=t=>t[mc];const tn=(t,e)=>(e&&Object.keys(e).forEach(n=>{const o=t[n],i=e[n];typeof i=="function"&&o?t[n]=(...a)=>{i(...a),o(...a)}:t[n]=i}),t),gc=t=>{if(typeof t!="string")return{top:0,right:0,bottom:0,left:0};const e=t.trim().split(/\s+/,4).map(parseFloat),n=isNaN(e[0])?0:e[0],o=isNaN(e[1])?n:e[1];return{top:n,right:o,bottom:isNaN(e[2])?n:e[2],left:isNaN(e[3])?o:e[3]}},ko=t=>{for(;t;){if(t=t.parentNode,!t||t===document.body||!t.parentNode)return;const{overflow:e,overflowX:n,overflowY:o}=getComputedStyle(t);if(/auto|scroll|overlay|hidden/.test(e+o+n))return t}};function uo(t,e){return{"aria-disabled":t||void 0,tabIndex:e?0:-1}}function ni(t,e){for(let n=0;not(()=>{const i=e?`${t}__${e}`:t;let a=i;n&&Object.keys(n).forEach(c=>{const l=n[c];l&&(a+=` ${i}--${l===!0?c:`${c}-${l}`}`)});let s=typeof o=="function"?o(n):o;return typeof s=="string"&&(s=s.trim(),s&&(a+=` ${s}`)),a},[t,e,n,o]),vc="szh-menu-container",ue="szh-menu";const _c="arrow",Ar="item",yc="divider",bc="header",wc="group",Ec="submenu";const cs=ye(),kr=ye({}),oo=ye({}),Cr=ye({}),Tc=ye({}),ho=ye({}),Nt=Object.freeze({ENTER:"Enter",ESC:"Escape",SPACE:" ",HOME:"Home",END:"End",LEFT:"ArrowLeft",RIGHT:"ArrowRight",UP:"ArrowUp",DOWN:"ArrowDown"}),vt=Object.freeze({RESET:0,SET:1,UNSET:2,INCREASE:3,DECREASE:4,FIRST:5,LAST:6,SET_INDEX:7}),En=Object.freeze({CLICK:"click",CANCEL:"cancel",BLUR:"blur",SCROLL:"scroll"}),Ue=Object.freeze({FIRST:"first",LAST:"last"}),Ac=Object.freeze({entering:"opening",entered:"open",exiting:"closing",exited:"closed"}),oi="absolute",Sr="none",xr="menuitem",Jo={preventScroll:!0};const kc=({className:t,containerRef:e,containerProps:n,children:o,isOpen:i,theming:a,transition:s,onClose:c})=>{const l=wn(s,"item");return r("div",{...tn({onKeyDown:({key:u})=>{switch(u){case Nt.ESC:Gt(c,{key:u,reason:En.CANCEL});break}},onBlur:u=>{i&&!u.currentTarget.contains(u.relatedTarget)&&Gt(c,{reason:En.BLUR})}},n),className:de({block:vc,modifiers:ot(()=>({theme:a,itemTransition:l}),[a,l]),className:t}),style:{position:"absolute",...n?.style},ref:e,children:o})},Cc=()=>{let t,e=0;return{toggle:n=>{n?e++:e--,e=Math.max(e,0)},on:(n,o,i)=>{e?t||(t=setTimeout(()=>{t=0,o()},n)):i?.()},off:()=>{t&&(clearTimeout(t),t=0)}}},Sc=t=>{const[e,n]=U(),i=N({items:[],hoverIndex:-1,sorted:!1}).current,a=_t((c,l)=>{const{items:h}=i;if(!c)i.items=[];else if(l)h.push(c);else{const d=h.indexOf(c);d>-1&&(h.splice(d,1),c.contains(document.activeElement)&&(t.current.focus(Jo),n()))}i.hoverIndex=-1,i.sorted=!1},[i,t]),s=_t((c,l,h)=>{const{items:d,hoverIndex:u}=i,f=()=>{if(i.sorted)return;const g=t.current.querySelectorAll(".szh-menu__item");d.sort((v,E)=>ni(g,v)-ni(g,E)),i.sorted=!0};let m=-1,p;switch(c){case vt.RESET:break;case vt.SET:p=l;break;case vt.UNSET:p=g=>g===l?void 0:g;break;case vt.FIRST:f(),m=0,p=d[m];break;case vt.LAST:f(),m=d.length-1,p=d[m];break;case vt.SET_INDEX:f(),m=h,p=d[m];break;case vt.INCREASE:f(),m=u,m<0&&(m=d.indexOf(l)),m++,m>=d.length&&(m=0),p=d[m];break;case vt.DECREASE:f(),m=u,m<0&&(m=d.indexOf(l)),m--,m<0&&(m=d.length-1),p=d[m];break;default:}p||(m=-1),n(p),i.hoverIndex=m},[t,i]);return{hoverItem:e,dispatch:s,updateItems:a}},ri=(t,e)=>Math.round(t)===e?t:e,ls=t=>{const e=t.getBoundingClientRect();return e.width=ri(e.width,t.offsetWidth),e.height=ri(e.height,t.offsetHeight),e},xc=(t,e,n,o)=>{const i=ls(e),a=t.getBoundingClientRect(),s=n===window?{left:0,top:0,right:document.documentElement.clientWidth,bottom:window.innerHeight}:n.getBoundingClientRect(),c=gc(o),l=p=>p+a.left-s.left-c.left,h=p=>p+a.left+i.width-s.right+c.right,d=p=>p+a.top-s.top-c.top,u=p=>p+a.top+i.height-s.bottom+c.bottom;return{menuRect:i,containerRect:a,getLeftOverflow:l,getRightOverflow:h,getTopOverflow:d,getBottomOverflow:u,confineHorizontally:p=>{let g=l(p);if(g<0)p-=g;else{const v=h(p);v>0&&(p-=v,g=l(p),g<0&&(p-=g))}return p},confineVertically:p=>{let g=d(p);if(g<0)p-=g;else{const v=u(p);v>0&&(p-=v,g=d(p),g<0&&(p-=g))}return p}}},Ic=({arrowRef:t,menuY:e,anchorRect:n,containerRect:o,menuRect:i})=>{let a=n.top-o.top-e+n.height/2;const s=t.current.offsetHeight*1.25;return a=Math.max(s,a),a=Math.min(a,i.height-s),a},Lc=({anchorRect:t,containerRect:e,menuRect:n,placeLeftorRightY:o,placeLeftX:i,placeRightX:a,getLeftOverflow:s,getRightOverflow:c,confineHorizontally:l,confineVertically:h,arrowRef:d,arrow:u,direction:f,position:m})=>{let p=f,g=o;m!=="initial"&&(g=h(g),m==="anchor"&&(g=Math.min(g,t.bottom-e.top),g=Math.max(g,t.top-e.top-n.height)));let v,E,w;return p==="left"?(v=i,m!=="initial"&&(E=s(v),E<0&&(w=c(a),(w<=0||-E>w)&&(v=a,p="right")))):(v=a,m!=="initial"&&(w=c(v),w>0&&(E=s(i),(E>=0||-E{let a=n.left-o.left-e+n.width/2;const s=t.current.offsetWidth*1.25;return a=Math.max(s,a),a=Math.min(a,i.width-s),a},Mc=({anchorRect:t,containerRect:e,menuRect:n,placeToporBottomX:o,placeTopY:i,placeBottomY:a,getTopOverflow:s,getBottomOverflow:c,confineHorizontally:l,confineVertically:h,arrowRef:d,arrow:u,direction:f,position:m})=>{let p=f==="top"?"top":"bottom",g=o;m!=="initial"&&(g=l(g),m==="anchor"&&(g=Math.min(g,t.right-e.left),g=Math.max(g,t.left-e.left-n.width)));let v,E,w;return p==="top"?(v=i,m!=="initial"&&(E=s(v),E<0&&(w=c(a),(w<=0||-E>w)&&(v=a,p="bottom")))):(v=a,m!=="initial"&&(w=c(v),w>0&&(E=s(i),(E>=0||-E{const{menuRect:h,containerRect:d}=l,u=n==="left"||n==="right";let f=u?o:i,m=u?i:o;if(t){const y=c.current;u?f+=y.offsetWidth:m+=y.offsetHeight}const p=s.left-d.left-h.width-f,g=s.right-d.left+f,v=s.top-d.top-h.height-m,E=s.bottom-d.top+m;let w,A;e==="end"?(w=s.right-d.left-h.width,A=s.bottom-d.top-h.height):e==="center"?(w=s.left-d.left-(h.width-s.width)/2,A=s.top-d.top-(h.height-s.height)/2):(w=s.left-d.left,A=s.top-d.top),w+=f,A+=m;const T={...l,anchorRect:s,placeLeftX:p,placeRightX:g,placeLeftorRightY:A,placeTopY:v,placeBottomY:E,placeToporBottomX:w,arrowRef:c,arrow:t,direction:n,position:a};switch(n){case"left":case"right":return Lc(T);case"top":case"bottom":default:return Mc(T)}},We=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?Oe:X;function ii(t,e){typeof t=="function"?t(e):t.current=e}const en=(t,e)=>ot(()=>t?e?n=>{ii(t,n),ii(e,n)}:t:e,[t,e]),si=-9999,us=({ariaLabel:t,menuClassName:e,menuStyle:n,arrow:o,arrowProps:i={},anchorPoint:a,anchorRef:s,containerRef:c,containerProps:l,externalRef:h,parentScrollingRef:d,align:u="start",direction:f="bottom",position:m="auto",overflow:p="visible",setDownOverflow:g,repositionFlag:v,captureFocus:E=!0,state:w,endTransition:A,isDisabled:T,menuItemFocus:y,gap:b=0,shift:I=0,children:L,onClose:x,focusProps:C,...O})=>{const[M,R]=U({x:si,y:si}),[S,Z]=U({}),[H,ft]=U(),[G,rt]=U(f),[et]=U(Cc),[lt,Y]=br(V=>V+1,1),{transition:at,boundingBoxRef:Lt,boundingBoxPadding:Rt,rootMenuRef:K,rootAnchorRef:mt,scrollNodesRef:ut,reposition:Kt,viewScroll:pt,submenuCloseDelay:Ot}=Pt(ho),{submenuCtx:Tt,reposSubmenu:Ft=v}=Pt(oo),Dt=N(),Bt=N(),q=N(!1),{hoverItem:J,dispatch:Ct,updateItems:dt}=Sc(Dt),yt=Tr(w),zt=wn(at,"open"),he=wn(at,"close"),ct=ut.current,Vt=V=>{switch(V.key){case Nt.HOME:Ct(vt.FIRST);break;case Nt.END:Ct(vt.LAST);break;case Nt.UP:Ct(vt.DECREASE,J);break;case Nt.DOWN:Ct(vt.INCREASE,J);break;case Nt.SPACE:V.target&&V.target.className.indexOf(ue)!==-1&&V.preventDefault();return;default:return}V.preventDefault(),V.stopPropagation()},z=()=>{w==="closing"&&ft(),Gt(A)},Q=V=>{V.stopPropagation(),et.on(Ot,()=>{Ct(vt.RESET),Dt.current.focus(Jo)})},F=V=>{V.target===V.currentTarget&&et.off()},tt=_t(V=>{const bt=Dt.current,Mt=c.current;if(!bt||!Mt)return;const xt=s?s.current?.getBoundingClientRect():a?{left:a.x,right:a.x,top:a.y,bottom:a.y,width:0,height:0}:null;if(!xt)return;ct.menu||(ct.menu=(Lt?Lt.current:ko(K.current))||window);const gt=xc(Mt,bt,ct.menu,Rt);let{arrowX:Ht,arrowY:Se,x:Jt,y:xe,computedDirection:nn}=Pc({arrow:o,align:u,direction:f,gap:b,shift:I,position:m,anchorRect:xt,arrowRef:Bt,positionHelpers:gt});const{menuRect:Ne}=gt,on=Ne.height;if(!V&&p!=="visible"){const{getTopOverflow:xn,getBottomOverflow:In}=gt;let Wt,Fe;const Zt=In(xe);if(Zt>0)Wt=on-Zt,Fe=Zt;else{const oe=xn(xe);oe<0&&(Wt=on+oe,Fe=0-oe,Wt>=0&&(xe-=oe))}Wt>=0&&ft({height:Wt,overflowAmt:Fe})}o&&Z({x:Ht,y:Se}),R({x:Jt,y:xe}),rt(nn)},[o,u,Rt,f,b,I,m,p,a,s,c,Lt,K,ct]);We(()=>{yt&&(tt(),q.current&&Y()),q.current=yt},[yt,tt,Ft]),We(()=>{H&&!g&&(Dt.current.scrollTop=0)},[H,g]),We(()=>dt,[dt]),X(()=>{let{menu:V}=ct;if(!yt||!V)return;if(V=V.addEventListener?V:window,!ct.anchors){ct.anchors=[];let gt=ko(mt&&mt.current);for(;gt&>!==V;)ct.anchors.push(gt),gt=ko(gt)}let bt=pt;if(ct.anchors.length&&bt==="initial"&&(bt="auto"),bt==="initial")return;const Mt=()=>{bt==="auto"?Qo(()=>tt(!0)):Gt(x,{reason:En.SCROLL})},xt=ct.anchors.concat(pt!=="initial"?V:[]);return xt.forEach(gt=>gt.addEventListener("scroll",Mt)),()=>xt.forEach(gt=>gt.removeEventListener("scroll",Mt))},[mt,ct,yt,x,pt,tt]);const Qt=!!H&&H.overflowAmt>0;X(()=>{if(Qt||!yt||!d)return;const V=()=>Qo(tt),bt=d.current;return bt.addEventListener("scroll",V),()=>bt.removeEventListener("scroll",V)},[yt,Qt,d,tt]),X(()=>{if(!yt||typeof ResizeObserver!="function"||Kt==="initial")return;const V=[],bt=new ResizeObserver(gt=>gt.forEach(({target:Ht})=>{V.indexOf(Ht)<0?V.push(Ht):Pa(()=>{tt(),Y()})})),Mt={box:"border-box"};bt.observe(Dt.current,Mt);const xt=s?.current;return xt&&bt.observe(xt,Mt),()=>bt.disconnect()},[yt,Kt,s,tt]),X(()=>{if(!yt){Ct(vt.RESET),he||ft();return}const{position:V,alwaysUpdate:bt}=y||{},Mt=()=>{V===Ue.FIRST?Ct(vt.FIRST):V===Ue.LAST?Ct(vt.LAST):V>=-1&&Ct(vt.SET_INDEX,void 0,V)};if(bt)Mt();else if(E){const xt=setTimeout(()=>{const gt=Dt.current;gt&&!gt.contains(document.activeElement)&&(gt.focus(Jo),Mt())},zt?170:100);return()=>clearTimeout(xt)}},[yt,zt,he,E,y,Ct]);const ht=ot(()=>({isParentOpen:yt,submenuCtx:et,dispatch:Ct,updateItems:dt}),[yt,et,Ct,dt]);let jt,fe;H&&(g?fe=H.overflowAmt:jt=H.height);const ee=ot(()=>({reposSubmenu:lt,submenuCtx:et,overflow:p,overflowAmt:fe,parentMenuRef:Dt,parentDir:G}),[lt,et,p,fe,G]),ne=jt>=0?{maxHeight:jt,overflow:p}:void 0,At=ot(()=>({state:w,align:u,dir:G}),[w,u,G]),St=ot(()=>({dir:G}),[G]),Ut=de({block:ue,element:_c,modifiers:St,className:i.className}),Yt=r("ul",{role:"menu","aria-label":t,...uo(T),...tn({onPointerEnter:Tt?.off,onPointerMove:Q,onPointerLeave:F,onKeyDown:Vt,onAnimationEnd:z},O),ref:en(h,Dt),className:de({block:ue,modifiers:At,className:e}),style:{...n,...ne,margin:0,display:w==="closed"?"none":void 0,position:oi,left:M.x,top:M.y},children:[o&&r("li",{"aria-hidden":!0,...i,className:Ut,style:{display:"block",position:oi,left:S.x,top:S.y,...i.style},ref:Bt}),r(oo.Provider,{value:ee,children:r(kr.Provider,{value:ht,children:r(cs.Provider,{value:J,children:Gt(L,At)})})})]});return l?r(kc,{...l,isOpen:yt,children:Yt}):Yt},ds=ke(function({"aria-label":e,className:n,containerProps:o,initialMounted:i,unmountOnClose:a,transition:s,transitionTimeout:c,boundingBoxRef:l,boundingBoxPadding:h,reposition:d="auto",submenuOpenDelay:u=300,submenuCloseDelay:f=150,viewScroll:m="initial",portal:p,theming:g,onItemClick:v,...E},w){const A=N(null),T=N({}),{anchorRef:y,state:b,onClose:I}=E,L=ot(()=>({initialMounted:i,unmountOnClose:a,transition:s,transitionTimeout:c,boundingBoxRef:l,boundingBoxPadding:h,rootMenuRef:A,rootAnchorRef:y,scrollNodesRef:T,reposition:d,viewScroll:m,submenuOpenDelay:u,submenuCloseDelay:f}),[i,a,s,c,y,l,h,d,m,u,f]),x=ot(()=>({handleClick(O,M){O.stopPropagation||Gt(v,O);let R=O.keepOpen;R===void 0&&(R=M&&O.key===Nt.SPACE),R||Gt(I,{value:O.value,key:O.key,reason:En.CLICK})},handleClose(O){Gt(I,{key:O,reason:En.CLICK})}}),[v,I]);if(!b)return null;const C=r(ho.Provider,{value:L,children:r(Cr.Provider,{value:x,children:r(us,{...E,ariaLabel:e||"Menu",externalRef:w,containerRef:A,containerProps:{className:n,containerRef:A,containerProps:o,theming:g,transition:s,onClose:I}})})});return p===!0&&typeof document<"u"?eo(C,document.body):p?p.target?eo(C,p.target):p.stablePosition?null:C:C}),tr=0,er=1,ro=2,io=3,so=4,Rc=5,hs=6,Oc=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],fs=t=>({_s:t,status:Oc[t],isEnter:tso}),nr=t=>t?hs:Rc,$c=(t,e)=>{switch(t){case er:case tr:return ro;case so:case io:return nr(e)}},Nc=t=>typeof t=="object"?[t.enter,t.exit]:[t,t],Fc=(t,e)=>setTimeout(()=>{isNaN(document.body.offsetTop)||t(e+1)},0),ai=(t,e,n,o,i)=>{clearTimeout(o.current);const a=fs(t);e(a),n.current=a,i&&i({current:a})},Bc=({enter:t=!0,exit:e=!0,preEnter:n,preExit:o,timeout:i,initialEntered:a,mountOnEnter:s,unmountOnExit:c,onStateChange:l}={})=>{const[h,d]=U(()=>fs(a?ro:nr(s))),u=N(h),f=N(),[m,p]=Nc(i),g=_t(()=>{const E=$c(u.current._s,c);E&&ai(E,d,u,f,l)},[l,c]),v=_t(E=>{const w=T=>{switch(ai(T,d,u,f,l),T){case er:m>=0&&(f.current=setTimeout(g,m));break;case so:p>=0&&(f.current=setTimeout(g,p));break;case tr:case io:f.current=Fc(w,T);break}},A=u.current.isEnter;typeof E!="boolean"&&(E=!A),E?!A&&w(t?n?tr:er:ro):A&&w(e?o?io:so:nr(c))},[g,l,t,e,n,o,m,p,c]);return[h,v,g]};const zc=({initialOpen:t,initialMounted:e,unmountOnClose:n,transition:o,transitionTimeout:i=500,onMenuChange:a}={})=>{const s=wn(o,"open"),c=wn(o,"close"),[{status:l},h,d]=Bc({initialEntered:t,mountOnEnter:!e,unmountOnExit:n,timeout:i,enter:s,exit:c,onStateChange:_t(({current:{isEnter:u,isResolved:f}})=>{!a||u&&s&&f||!u&&c&&f||a({open:u})},[a,s,c])});return[{state:Ac[l],endTransition:d},h]},ms=t=>{const[e,n]=zc(t),[o,i]=U(),a=(s,c)=>{i({position:s,alwaysUpdate:c}),n(!0)};return[{menuItemFocus:o,...e},n,a]},Vc=(t,e)=>{const[n]=U({});return{onMouseDown:()=>{n.v=t&&t!=="closed"},onClick:o=>n.v?n.v=!1:e(!0,o)}},Hc=parseInt(Ra)<19,Kc=ke(function({"aria-label":e,captureFocus:n,initialOpen:o,menuButton:i,instanceRef:a,onMenuChange:s,...c},l){const[h,d,u]=ms({...c,onMenuChange:s}),{state:f}=h,m=Tr(f),p=N(null),g=Vc(f,(y,b)=>u(b.detail?void 0:Ue.FIRST)),v=_t(y=>{d(!1),y.key&&p.current.focus()},[d]),E=y=>{switch(y.key){case Nt.UP:u(Ue.LAST);break;case Nt.DOWN:u(Ue.FIRST);break;default:return}y.preventDefault()},w=Gt(i,{open:m});if(!w||!w.type)throw new Error("Menu requires a menuButton prop.");const A={...tn({onKeyDown:E,...g},w.props),ref:en(Hc?w.ref:w.props.ref,p)};pc(w.type)==="MenuButton"&&(A.isOpen=m);const T=Yi(w,A);return Xi(a,()=>({openMenu:u,closeMenu:()=>d(!1)})),r(B,{children:[T,r(ds,{...c,...h,"aria-label":e||(typeof w.props.children=="string"?w.props.children:"Menu"),anchorRef:p,ref:l,onClose:v})]})}),Ir=(t,e)=>{const n=Je(e),o=ke((i,a)=>{const s=N(null);return r(n,{...i,itemRef:s,externalRef:a,isHovering:Pt(cs)===s.current})});return o.displayName=`WithHovering(${t})`,o},ps=t=>{const[e,n]=U(!1);return X(()=>{!t&&n(!1)},[t]),[e,()=>!e&&n(!0),()=>n(!1)]},gs=(t,e,n)=>{We(()=>{if(t)return;const o=e.current;return n(o,!0),()=>{n(o)}},[t,e,n])},jc=Ir("SubMenu",function({"aria-label":e,className:n,disabled:o,direction:i,label:a,openTrigger:s,onMenuChange:c,isHovering:l,instanceRef:h,itemRef:d,captureFocus:u,repositionFlag:f,itemProps:m={},...p}){const g=Pt(ho),{rootMenuRef:v,submenuOpenDelay:E,submenuCloseDelay:w}=g,{parentMenuRef:A,parentDir:T,overflow:y}=Pt(oo),{isParentOpen:b,submenuCtx:I,dispatch:L,updateItems:x}=Pt(kr),C=y!=="visible",[O,M,R]=ms({...g,onMenuChange:c}),[S,Z,H]=ps(l),{state:ft}=O,G=!!o,rt=Tr(ft),et=N(null),[lt]=U({v:0}),Y=()=>{I.off(),lt.v&&(clearTimeout(lt.v),lt.v=0)},at=(...q)=>{Y(),Lt(),!G&&R(...q)},Lt=()=>!l&&!G&&L(vt.SET,d.current),Rt=q=>{Lt(),s||(lt.v=setTimeout(()=>Qo(at),Math.max(q,0)))},K=q=>{G||(q.stopPropagation(),Z(),!(lt.v||rt)&&I.on(w,()=>Rt(E-w),()=>Rt(E)))},mt=()=>{H(),Y(),rt||L(vt.UNSET,d.current)},ut=q=>{if(l)switch(q.key){case Nt.ENTER:q.preventDefault();case Nt.SPACE:case Nt.RIGHT:s!=="none"&&at(Ue.FIRST)}},Kt=q=>{let J=!1;switch(q.key){case Nt.LEFT:rt&&(d.current.focus(),M(!1),J=!0);break;case Nt.RIGHT:rt||(J=!0);break}J&&(q.preventDefault(),q.stopPropagation())};gs(G,d,x),X(()=>I.toggle(rt),[I,rt]),X(()=>()=>{clearTimeout(lt.v),I.toggle(!1)},[lt,I]),X(()=>{l&&b?d.current.focus():M(!1)},[l,b,M,d]),Xi(h,()=>({openMenu:(...q)=>{b&&at(...q)},closeMenu:()=>{rt&&(d.current.focus(),M(!1))}}));const pt=ot(()=>({open:rt,hover:S||l,disabled:G,submenu:!0}),[rt,l,G,S]),{ref:Ot,className:Tt,...Ft}=m,Dt=tn({onPointerEnter:I.off,onPointerMove:K,onPointerLeave:mt,onKeyDown:ut,onClick:()=>s!=="none"&&at()},Ft),Bt=()=>{const q=r(us,{...p,...O,ariaLabel:e||(typeof a=="string"?a:"Submenu"),anchorRef:d,containerRef:C?v:et,direction:i||(T==="right"||T==="left"?T:"right"),parentScrollingRef:C&&A,isDisabled:G}),J=v.current;return C&&J?eo(q,J):q};return r("li",{className:de({block:ue,element:Ec,className:n}),style:{position:"relative"},role:Sr,ref:et,onKeyDown:Kt,children:[r("div",{role:xr,"aria-haspopup":!0,"aria-expanded":rt,...uo(G,l),...Dt,ref:en(Ot,d),className:de({block:ue,element:Ar,modifiers:pt,className:Tt}),children:ot(()=>Gt(a,pt),[a,pt])}),ft&&Bt()]})}),vs=(t,e,n,o)=>{const[i,a,s]=ps(n),{submenuCloseDelay:c}=Pt(ho),{isParentOpen:l,submenuCtx:h,dispatch:d,updateItems:u}=Pt(kr),f=()=>{!n&&!o&&d(vt.SET,t.current)},m=()=>{!o&&d(vt.UNSET,t.current)},p=E=>{n&&!E.currentTarget.contains(E.relatedTarget)&&m()},g=E=>{o||(E.stopPropagation(),a(),h.on(c,f,f))},v=(E,w)=>{s(),h.off(),!w&&m()};return gs(o,t,u),X(()=>{n&&l&&e.current&&e.current.focus()},[e,n,l]),{mouseOver:i,setHover:f,onBlur:p,onPointerMove:g,onPointerLeave:v}},wt=Ir("MenuItem",function({className:e,value:n,href:o,type:i,checked:a,disabled:s,children:c,onClick:l,isHovering:h,itemRef:d,externalRef:u,...f}){const m=!!s,{mouseOver:p,setHover:g,...v}=vs(d,d,h,m),E=Pt(Cr),w=Pt(Tc),A=i==="radio",T=i==="checkbox",y=!!o&&!m&&!A&&!T,b=A?w.value===n:T?!!a:!1,I=M=>{if(m){M.stopPropagation(),M.preventDefault();return}const R={value:n,syntheticEvent:M};M.key!==void 0&&(R.key=M.key),T&&(R.checked=!b),A&&(R.name=w.name),Gt(l,R),A&&Gt(w.onRadioChange,R),E.handleClick(R,T||A)},L=M=>{if(h)switch(M.key){case Nt.ENTER:M.preventDefault();case Nt.SPACE:y?d.current.click():I(M)}},x=ot(()=>({type:i,disabled:m,hover:p||h,checked:b,anchor:y}),[i,m,p,h,b,y]),C=tn({...v,onPointerDown:g,onKeyDown:L,onClick:I},f),O={role:A?"menuitemradio":T?"menuitemcheckbox":xr,"aria-checked":A||T?b:void 0,...uo(m,h),...C,ref:en(u,d),className:de({block:ue,element:Ar,modifiers:x,className:e}),children:ot(()=>Gt(c,x),[c,x])};return y?r("li",{role:Sr,children:r("a",{href:o,...O})}):r("li",{...O})}),Uc=Ir("FocusableItem",function({className:e,disabled:n,children:o,isHovering:i,itemRef:a,externalRef:s,...c}){const l=!!n,h=N(null),{mouseOver:d,setHover:u,onPointerLeave:f,...m}=vs(a,h,i,l),{handleClose:p}=Pt(Cr),g=ot(()=>({disabled:l,hover:d||i,focusable:!0}),[l,i,d]),v=ot(()=>Gt(o,{...g,ref:h,closeMenu:p}),[o,g,p]),E=tn({...m,onPointerLeave:w=>f(w,!0),onFocus:u},c);return r("li",{role:xr,...uo(l),...E,ref:en(s,a),className:de({block:ue,element:Ar,modifiers:g,className:e}),children:v})}),ln=Je(ke(function({className:e,...n},o){return r("li",{role:"separator",...n,ref:o,className:de({block:ue,element:yc,className:e})})})),Cv=Je(ke(function({className:e,...n},o){return r("li",{role:Sr,...n,ref:o,className:de({block:ue,element:bc,className:e})})})),Sv=ke(function({className:e,style:n,takeOverflow:o,...i},a){const s=N(null),[c,l]=U(),{overflow:h,overflowAmt:d}=Pt(oo);return We(()=>{let u;o&&d>=0&&(u=ls(s.current).height-d,u<0&&(u=0)),l(u>=0?{maxHeight:u,overflow:h}:void 0)},[o,h,d]),We(()=>{c&&(s.current.scrollTop=0)},[c]),r("div",{...i,ref:en(a,s),className:de({block:ue,element:wc,className:e}),style:{...n,...c}})});var mn=(t=>(t.Mouse="mouse",t.Touch="touch",t.Pointer="pointer",t))(mn||{}),pn=(t=>(t.CancelledByMovement="cancelled-by-movement",t.CancelledByRelease="cancelled-by-release",t.CancelledOutsideElement="cancelled-outside-element",t))(pn||{});const Wc=["mousedown","mousemove","mouseup","mouseleave","mouseout"],Zc=["touchstart","touchmove","touchend","touchcancel"],qc=["pointerdown","pointermove","pointerup","pointerleave","pointerout"];function Gc(t){return typeof t=="object"&&t!==null&&"pageX"in t&&typeof t.pageX=="number"&&"pageY"in t&&typeof t.pageY=="number"}function Yc(t){var e;return Wc.includes((e=t?.nativeEvent)==null?void 0:e.type)}function _s(t){var e;return Zc.includes((e=t?.nativeEvent)==null?void 0:e.type)||"touches"in t}function Xc(t){const{nativeEvent:e}=t;return e?qc.includes(e?.type)||"pointerId"in e:!1}function Co(t){return Yc(t)||_s(t)||Xc(t)}function ci(t){var e;const n=_s(t)?(e=t?.touches)==null?void 0:e[0]:t;return Gc(n)?{x:n.pageX,y:n.pageY}:null}function Qc(t){return{target:t.target,currentTarget:t.currentTarget,nativeEvent:t,persist:()=>{}}}function ys(t,{threshold:e=400,captureEvent:n=!1,detect:o=mn.Pointer,cancelOnMovement:i=!1,cancelOutsideElement:a=!0,filterEvents:s,onStart:c,onMove:l,onFinish:h,onCancel:d}={}){const u=N(!1),f=N(!1),m=N(),p=N(),g=N(t),v=N(null),E=_t(y=>b=>{f.current||Co(b)&&(s!==void 0&&!s(b)||(n&&b.persist(),c?.(b,{context:y}),v.current=ci(b),f.current=!0,m.current=b.currentTarget,p.current=setTimeout(()=>{g.current&&(g.current(b,{context:y}),u.current=!0)},e)))},[n,s,c,e]),w=_t(y=>(b,I)=>{Co(b)&&f.current&&(v.current=null,n&&b.persist(),u.current?h?.(b,{context:y}):f.current&&d?.(b,{context:y,reason:I??pn.CancelledByRelease}),u.current=!1,f.current=!1,p.current!==void 0&&clearTimeout(p.current))},[n,h,d]),A=_t(y=>b=>{if(Co(b)&&(l?.(b,{context:y}),i!==!1&&v.current)){const I=ci(b);if(I){const L=i===!0?25:i,x={x:Math.abs(I.x-v.current.x),y:Math.abs(I.y-v.current.y)};(x.x>L||x.y>L)&&w(y)(b,pn.CancelledByMovement)}}},[w,i,l]),T=_t(y=>{if(t===null)return{};switch(o){case mn.Mouse:{const b={onMouseDown:E(y),onMouseMove:A(y),onMouseUp:w(y)};return a&&(b.onMouseLeave=I=>{w(y)(I,pn.CancelledOutsideElement)}),b}case mn.Touch:return{onTouchStart:E(y),onTouchMove:A(y),onTouchEnd:w(y)};case mn.Pointer:{const b={onPointerDown:E(y),onPointerMove:A(y),onPointerUp:w(y)};return a&&(b.onPointerLeave=I=>w(y)(I,pn.CancelledOutsideElement)),b}}},[t,w,a,o,A,E]);return X(()=>{function y(b){const I=Qc(b);w()(I)}return window.addEventListener("mouseup",y),window.addEventListener("touchend",y),window.addEventListener("pointerup",y),()=>{window.removeEventListener("mouseup",y),window.removeEventListener("touchend",y),window.removeEventListener("pointerup",y)}},[w]),X(()=>()=>{p.current!==void 0&&clearTimeout(p.current)},[]),X(()=>{g.current=t},[t]),T}const Jc=kt(()=>new Intl.DateTimeFormat().resolvedOptions().locale),tl=t=>{const{locale:e,dateYear:n,hideTime:o,formatOpts:i,forceOpts:a}=t||{},s=e.replace(/-[a-z]+$/i,""),c=bn([s],[Jc],e),l=new Date().getFullYear(),h=a||{year:n===l?void 0:"numeric",month:"short",day:"numeric",hour:o?void 0:"numeric",minute:o?void 0:"numeric",...i};try{return Intl.DateTimeFormat(c,h)}catch{}try{return Intl.DateTimeFormat(e,h)}catch{}return Intl.DateTimeFormat(void 0,h)},el=kt(tl);function Tn(t,e){return t instanceof Date||(t=new Date(t)),el({dateYear:t.getFullYear(),locale:It.locale,...e}).format(t)}function nl(t){const e=URL.parse("./compose/",window.location),{width:n,height:o}=window.screen,i=Math.max(0,(n-600)/2),a=Math.max(0,(o-450)/2),s=Math.min(n,600),c=Math.min(o,450),l=t?.uid||Math.random(),h=window.open(e,"compose"+l,`width=${s},height=${c},left=${i},top=${a}`);return h?h.__COMPOSE__=t:alert(It._({id:"4S86wI"})),h}const ol=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);function rl(){if(ol){const t=document.createElement("input");t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.opacity="0",document.body.appendChild(t),t.focus(),setTimeout(()=>{document.body.removeChild(t)},500)}}const il=document.documentElement,zn=getComputedStyle(il),sl=8;let bs=[0,0,0,0];function ws(){const t=zn.getPropertyValue("--sai-top"),e=zn.getPropertyValue("--sai-right"),n=zn.getPropertyValue("--sai-bottom"),o=zn.getPropertyValue("--sai-left");bs=[Math.max(0,parseInt(t,10)),Math.max(0,parseInt(e,10)),Math.max(0,parseInt(n,10)),Math.max(0,parseInt(o,10))]}requestAnimationFrame(ws);function Es(t=[]){return bs.map((n,o)=>(n||sl)+(t[o]||0)).join(" ")}CSS.supports("top: env(safe-area-inset-top)")&&window.addEventListener("resize",ws,{passive:!0});const li=5e3;function Vn(t){if(t||(t=!0),W.showCompose){W.composerState.minimized?Et({duration:li,text:It._({id:"/4fHR1"})}):Et({duration:li,text:It._({id:"vvl08N"})});return}rl(),W.showCompose=t}const ze=document.createElement("div");function al(t,e){if(!t)return"";const{preProcess:n}=e||{};return ze.innerHTML=t.replace(/<\/p>/g,`

+ +`).replace(/<\/li>/g,` +`),ze.querySelectorAll("br").forEach(o=>{o.replaceWith(` +`)}),n?.(ze),ze.querySelectorAll(".invisible").forEach(o=>{o.remove()}),ze.querySelectorAll(".ellipsis").forEach(o=>{o.append("...")}),ze.innerText.replace(/[\r\n]{3,}/g,` + +`).trim()}const fo=kt(al);function Ts(t){const{spoilerText:e,content:n,poll:o,mediaAttachments:i}=t;let a="";return e?.trim()?a+=e:a+=fo(n),a=a.trim(),o?.options?.length&&(a+=` + +📊: +${o.options.map(s=>`${o.multiple?"▪️":"•"} ${s.title}`).join(` +`)}`),i?.length&&(a+=" "+i.map(s=>({image:"🖼️",gifv:"🎞️",video:"📹",audio:"🎵",unknown:""})[s.type]||"").join("")),a}const As={x:()=>k(()=>import("./icons/close-line-Bfj902o4.js"),[],import.meta.url),heart:()=>k(()=>import("./icons/heart-line-vi3QqJTo.js"),[],import.meta.url),bookmark:()=>k(()=>import("./icons/bookmark-line-BMGZc_Mc.js"),[],import.meta.url),"check-circle":()=>k(()=>import("./icons/check-circle-line-CSlVj8QA.js"),[],import.meta.url),"x-circle":()=>k(()=>import("./icons/close-circle-line-DlCWcUwK.js"),[],import.meta.url),transfer:()=>k(()=>import("./icons/transfer-4-line-BHXBUumZ.js"),[],import.meta.url),rocket:()=>k(()=>import("./icons/rocket-line-B7gBxy4I.js"),[],import.meta.url),"arrow-left":{module:()=>k(()=>import("./icons/arrow-left-line-BGgZ0udH.js"),[],import.meta.url),rtl:!0},"arrow-right":{module:()=>k(()=>import("./icons/arrow-right-line-zKtS4vm5.js"),[],import.meta.url),rtl:!0},"arrow-up":()=>k(()=>import("./icons/arrow-up-line-Bow_AQZ6.js"),[],import.meta.url),"arrow-down":()=>k(()=>import("./icons/arrow-down-line-RSwsrALM.js"),[],import.meta.url),earth:()=>k(()=>import("./icons/earth-line-DW_CwNjP.js"),[],import.meta.url),lock:()=>k(()=>import("./icons/lock-line-BbTC1fux.js"),[],import.meta.url),unlock:()=>k(()=>import("./icons/unlock-line-CGrzBxul.js"),[],import.meta.url),"eye-close":()=>k(()=>import("./icons/eye-close-line-DQnawnJE.js"),[],import.meta.url),"eye-open":()=>k(()=>import("./icons/eye-2-line-Dvog5oyl.js"),[],import.meta.url),message:()=>k(()=>import("./icons/mail-line-Cadg2cpP.js"),[],import.meta.url),comment:{module:()=>k(()=>import("./icons/chat-3-line-C4e7R0Zy.js"),[],import.meta.url),rtl:!0},comment2:{module:()=>k(()=>import("./icons/comment-2-line-DfD-95ou.js"),[],import.meta.url),rtl:!0},home:()=>k(()=>import("./icons/home-3-line-BLD1YYP8.js"),[],import.meta.url),notification:()=>k(()=>import("./icons/notification-line-Cc2m6sh5.js"),[],import.meta.url),follow:()=>k(()=>import("./icons/user-follow-line-CsL-DB1N.js"),[],import.meta.url),"follow-add":()=>k(()=>import("./icons/user-add-line-DuegJyfy.js"),[],import.meta.url),poll:[()=>k(()=>import("./icons/chart-bar-line-W9BuvVdR.js"),[],import.meta.url),"90deg"],pencil:()=>k(()=>import("./icons/pencil-line-BwUdLENj.js"),[],import.meta.url),quill:()=>k(()=>import("./icons/quill-pen-line-oAx8SSeF.js"),[],import.meta.url),at:()=>k(()=>import("./icons/at-line-C4-OGRKX.js"),[],import.meta.url),attachment:()=>k(()=>import("./icons/attachment-line-C4ysC1zZ.js"),[],import.meta.url),upload:()=>k(()=>import("./icons/upload-3-line-BB2RA_2Z.js"),[],import.meta.url),gear:()=>k(()=>import("./icons/settings-3-line-BGrM7a5R.js"),[],import.meta.url),more:()=>k(()=>import("./icons/more-3-line-WfszpsFu.js"),[],import.meta.url),more2:()=>k(()=>import("./icons/more-1-fill-Cnnj9cLP.js"),[],import.meta.url),external:{module:()=>k(()=>import("./icons/external-link-line-BYXsdcMa.js"),[],import.meta.url),rtl:!0},popout:{module:()=>k(()=>import("./icons/external-link-line-BYXsdcMa.js"),[],import.meta.url),rtl:!0},popin:{module:()=>k(()=>import("./icons/external-link-line-BYXsdcMa.js"),[],import.meta.url),rotate:"180deg",rtl:!0},plus:()=>k(()=>import("./icons/add-circle-line-VUOz5dLS.js"),[],import.meta.url),"chevron-left":{module:()=>k(()=>import("./icons/left-line-8vYaPuok.js"),[],import.meta.url),rtl:!0},"chevron-right":{module:()=>k(()=>import("./icons/right-line-E80CeS1Q.js"),[],import.meta.url),rtl:!0},"chevron-down":()=>k(()=>import("./icons/down-line-PlS1iUy8.js"),[],import.meta.url),reply:{module:()=>k(()=>import("./icons/share-forward-line-DX1QbiUu.js"),[],import.meta.url),rotate:"180deg",flip:"horizontal",rtl:!0},thread:()=>k(()=>import("./icons/route-line-D10jSVCO.js"),[],import.meta.url),group:{module:()=>k(()=>import("./icons/group-line-Cw2Phg9p.js"),[],import.meta.url),rtl:!0},bot:()=>k(()=>import("./icons/android-2-line-C7qVwx2U.js"),[],import.meta.url),menu:()=>k(()=>import("./icons/rows-4-line-DIXu-DVG.js"),[],import.meta.url),list:{module:()=>k(()=>import("./icons/list-check-line-BaMf8v8i.js"),[],import.meta.url),rtl:!0},search:()=>k(()=>import("./icons/search-2-line-CoCbFBVR.js"),[],import.meta.url),hashtag:()=>k(()=>import("./icons/hashtag-line-Cml-0qv2.js"),[],import.meta.url),info:()=>k(()=>import("./icons/information-line-Dn255DD5.js"),[],import.meta.url),shortcut:()=>k(()=>import("./icons/lightning-line-cvW5NR-M.js"),[],import.meta.url),user:()=>k(()=>import("./icons/user-4-line-C89P3h09.js"),[],import.meta.url),following:()=>k(()=>import("./icons/walk-line-BZwRwcxJ.js"),[],import.meta.url),pin:()=>k(()=>import("./icons/pin-line-BqseDe3t.js"),[],import.meta.url),unpin:[()=>k(()=>import("./icons/pin-line-BqseDe3t.js"),[],import.meta.url),"180deg"],bus:()=>k(()=>import("./icons/bus-2-line-CfBaNBAi.js"),[],import.meta.url),link:()=>k(()=>import("./icons/link-2-line-SnIkQ_rZ.js"),[],import.meta.url),history:()=>k(()=>import("./icons/history-line-Bi2So-je.js"),[],import.meta.url),share:()=>k(()=>import("./icons/share-2-line-C2byQ30z.js"),[],import.meta.url),sparkles:()=>k(()=>import("./icons/sparkles-line-DWyRj8uB.js"),[],import.meta.url),sparkles2:()=>k(()=>import("./icons/sparkles-2-line-H731KO3v.js"),[],import.meta.url),exit:{module:()=>k(()=>import("./icons/exit-line-NjC63GxM.js"),[],import.meta.url),rtl:!0},translate:()=>k(()=>import("./icons/translate-line-cdOWN72F.js"),[],import.meta.url),play:()=>k(()=>import("./icons/play-fill-D1o3ePO2.js"),[],import.meta.url),trash:()=>k(()=>import("./icons/delete-2-line-C-lQIJNC.js"),[],import.meta.url),mute:{module:()=>k(()=>import("./icons/volume-mute-line-BluUkhVT.js"),[],import.meta.url),rtl:!0},unmute:{module:()=>k(()=>import("./icons/volume-line-dtC5ZFr8.js"),[],import.meta.url),rtl:!0},block:()=>k(()=>import("./icons/forbid-circle-line-f_JQE7a8.js"),[],import.meta.url),unblock:[()=>k(()=>import("./icons/forbid-circle-line-f_JQE7a8.js"),[],import.meta.url),"180deg"],flag:()=>k(()=>import("./icons/flag-1-line-sWzx_4o4.js"),[],import.meta.url),time:()=>k(()=>import("./icons/time-line-CHAmvUdg.js"),[],import.meta.url),refresh:()=>k(()=>import("./icons/refresh-2-line-B3CD5yz0.js"),[],import.meta.url),emoji2:()=>k(()=>import("./icons/emoji-2-line-DODV8bnC.js"),[],import.meta.url),filter:()=>k(()=>import("./icons/filter-2-line-DLBEPhKS.js"),[],import.meta.url),filters:()=>k(()=>import("./icons/filter-line-CuUlgBZU.js"),[],import.meta.url),chart:()=>k(()=>import("./icons/chart-line-line-noCpZUdN.js"),[],import.meta.url),react:()=>k(()=>import("./icons/react-line-C6TecPWI.js"),[],import.meta.url),layout4:{module:()=>k(()=>import("./icons/layout-4-line-BFFb1cPy.js"),[],import.meta.url),rtl:!0},layout5:()=>k(()=>import("./icons/layout-5-line-tauINoiF.js"),[],import.meta.url),announce:{module:()=>k(()=>import("./icons/announcement-line-BdsFnqjO.js"),[],import.meta.url),rtl:!0},alert:()=>k(()=>import("./icons/alert-line-CcwmWSBO.js"),[],import.meta.url),round:()=>k(()=>import("./icons/round-fill-CaZIeOWe.js"),[],import.meta.url),"arrow-up-circle":()=>k(()=>import("./icons/arrow-up-circle-line-SO68bPTf.js"),[],import.meta.url),"arrow-down-circle":()=>k(()=>import("./icons/arrow-down-circle-line-SfuiravZ.js"),[],import.meta.url),clipboard:{module:()=>k(()=>import("./icons/clipboard-line-CIOFpSsX.js"),[],import.meta.url),rtl:!0},"account-edit":()=>k(()=>import("./icons/user-edit-line-CC6Y-fJT.js"),[],import.meta.url),"account-warning":()=>k(()=>import("./icons/user-warning-line-BLfdr8Bj.js"),[],import.meta.url),"account-add":()=>k(()=>import("./icons/user-add-2-line-BbaxtCjf.js"),[],import.meta.url),keyboard:()=>k(()=>import("./icons/keyboard-line-BRd9ohM1.js"),[],import.meta.url),cloud:()=>k(()=>import("./icons/cloud-line-CCOdtB64.js"),[],import.meta.url),month:{module:()=>k(()=>import("./icons/calendar-month-line-DGpTEHfi.js"),[],import.meta.url),rtl:!0},media:()=>k(()=>import("./icons/photo-album-line-DkklX4P5.js"),[],import.meta.url),speak:()=>k(()=>import("./icons/radar-line-Dch2zZ5p.js"),[],import.meta.url),building:()=>k(()=>import("./icons/building-5-line-jPUf3HeC.js"),[],import.meta.url),history2:{module:()=>k(()=>import("./icons/history-2-line-C2uKqj-3.js"),[],import.meta.url),rtl:!0},document:()=>k(()=>import("./icons/document-line-ewA3UKpU.js"),[],import.meta.url),"arrows-right":{module:()=>k(()=>import("./icons/arrows-right-line-B7gMPCMB.js"),[],import.meta.url),rtl:!0},code:()=>k(()=>import("./icons/code-line-_8nrb8Yp.js"),[],import.meta.url),copy:()=>k(()=>import("./icons/copy-2-line-SBRewLs-.js"),[],import.meta.url),quote:{module:()=>k(()=>import("./icons/quote-left-line-D0CgS7V6.js"),[],import.meta.url),rtl:!0},settings:()=>k(()=>import("./icons/settings-6-line-3dTfr4F6.js"),[],import.meta.url),"heart-break":()=>k(()=>import("./icons/heart-crack-line-BlrTdexG.js"),[],import.meta.url),"user-x":()=>k(()=>import("./icons/user-x-line-Dahn1YZg.js"),[],import.meta.url),minimize:()=>k(()=>import("./icons/arrows-down-line-4JmRUmoO.js"),[],import.meta.url),celebrate:()=>k(()=>import("./icons/celebrate-line-CwClz8eZ.js"),[],import.meta.url),schedule:()=>k(()=>import("./icons/calendar-time-add-line-BwP_cVys.js"),[],import.meta.url),day:()=>k(()=>import("./icons/calendar-day-line-zQlj2fPr.js"),[],import.meta.url),camera:()=>k(()=>import("./icons/camera-line-DK82q_yA.js"),[],import.meta.url),endorsement:{module:()=>k(()=>import("./icons/user-star-line-jCNS7JD6.js"),[],import.meta.url),rtl:!0},formula:()=>k(()=>import("./icons/formula-line-DHbN6ztn.js"),[],import.meta.url)},cl={xs:8,s:12,m:16,l:20,xl:24,xxl:32},ui={},ll=Oa(function({width:t,height:e,body:n,rotate:o,flip:i}){return r("svg",{viewBox:`0 0 ${t} ${e}`,dangerouslySetInnerHTML:{__html:n},style:{transform:`${o?`rotate(${o})`:""} ${i?"scaleX(-1)":""}`}})},{isShallowEqual:!0,maxSize:Object.keys(As).length,matchesArg:(t,e)=>t.icon===e.icon&&t.body===e.body});function D({icon:t,size:e="m",alt:n,title:o,class:i="",style:a={}}){if(!t)return null;const s=cl[e];let c=As[t];if(!c)return null;let l,h,d=!1;Array.isArray(c)?[c,l,h]=c:typeof c=="object"&&({rotate:l,flip:h,rtl:d}=c,c=c.module);const[u,f]=U(ui[t]),m=N(t);return X(()=>{u&&m.current===t||((async()=>{const p=await c();f(p.default),ui[t]=p.default})(),m.current=t)},[t]),r("span",{class:`icon ${i} ${d?"rtl-flip":""}`,title:o||n,style:{width:`${s}px`,height:`${s}px`,...a},"data-icon":t,children:u&&r(ll,{icon:t,width:u.width,height:u.height,body:u.body,rotate:l,flip:h})})}const qe=ke((t,e)=>{let n;try{n=$a()}catch{}let o=(location.hash||"").replace(/^#/,"").trim();o===""&&(o="/");const{to:i,...a}=t;if(o&&o!=="/"&&o.includes("?")){const c=URL.parse(o,location.origin);if(c?.searchParams?.size){const l=Array.from(c.searchParams.entries()).map(([h,d])=>`${h}=${encodeURIComponent(d)}`).join("&");o=c.pathname+"?"+l}}const s=o===i||decodeURIComponent(o)===i;return r("a",{ref:e,href:`#${i}`,...a,class:`${t.class||""} ${s?"is-active":""}`,onClick:c=>{c.currentTarget?.parentNode?.closest("a")&&c.stopPropagation(),n&&(W.prevLocation=n),t.onClick?.(c)}})});function di(t){const{className:e,disabled:n,...o}=t;return r(Uc,{className:e,disabled:n,children:({ref:i,closeMenu:a})=>r(qe,{...o,ref:i,onClick:({detail:s})=>a(s===0?"Enter":void 0)})})}function hi(t){if(t instanceof Date)return!isNaN(t.getTime());{const e=new Date(t);return!isNaN(e.getTime())}}const ul=kt(()=>new Intl.DateTimeFormat().resolvedOptions().locale),fi=kt((t,e={})=>{const n=t.replace(/-[a-z]+$/i,""),o=bn([n],[ul()],t);try{return new Intl.DateTimeFormat(o,e)}catch{}try{return new Intl.DateTimeFormat(t,e)}catch{}return new Intl.DateTimeFormat(void 0,e)}),dl=kt(t=>new Intl.RelativeTimeFormat(t||void 0)),Ge=60,Ye=60*Ge,De=24*Ye,hl=t=>{const e=dl(It.locale),n=(t.getTime()-Date.now())/1e3,o=Math.abs(n);return o{const e=(Date.now()-t.getTime())/1e3;return el+1,0),i=ot(()=>new Date(t),[t]),[a,s,c]=ot(()=>{if(!hi(i))return[""+(typeof t=="string"?t:""),"",""];let l;if(e==="micro"){const h=new Date;(h.getTime()-i.getTime())/1e3/De<=1?l=fl(i):h.getFullYear()===i.getFullYear()?l=fi(It.locale,{year:void 0,month:"short",day:"numeric"}).format(i):l=fi(It.locale,{dateStyle:"short"}).format(i)}return l||(l=hl(i)),[l,i.toISOString(),i.toLocaleString()]},[i,e,n]);return X(()=>{if(!hi(i))return;let l,h;function d(){h=requestAnimationFrame(()=>{o(),u()})}function u(){const f=(Date.now()-i.getTime())/1e3;f{clearTimeout(l),cancelAnimationFrame(h)}},[]),r("time",{datetime:s,title:c,children:a})}function ml(t){const e=N();return r(jc,{...t,instanceRef:e,itemProps:{onPointerMove:n=>{n.pointerType==="touch"&&e.current?.openMenu?.()},onPointerLeave:n=>{n.pointerType==="touch"&&e.current?.openMenu?.()},...t.itemProps}})}function pl(t,e=[]){!t||typeof t!="function"||X(()=>{const n=new CloseWatcher;return n.addEventListener("close",t),()=>{n.destroy()}},e)}const gl=window.CloseWatcher?pl:()=>{},vl=document.getElementById("modal-container");function mi(){return getComputedStyle(document.documentElement).getPropertyValue("--backdrop-theme-color")}function or({children:t,onClose:e,onClick:n,class:o,minimized:i}){if(!t)return null;const a=N();X(()=>{let u=setTimeout(()=>{const f=a.current?.querySelector('[tabindex="-1"]');f&&f.focus()},100);return()=>clearTimeout(u)},[]);const s=window.CloseWatcher,c=je("esc",()=>{setTimeout(()=>{e?.()},0)},{enabled:!s&&!!e,keydown:!1,keyup:!0,useKey:!0,ignoreEventWhen:u=>u.metaKey||u.ctrlKey||u.altKey||u.shiftKey},[e]);gl(e,[e]),X(()=>{const u=document.querySelectorAll(".deck-container");if(i){const f=u[u.length-1];f&&f.tabIndex===-1&&f.focus()}else t?u.forEach(f=>{f.setAttribute("inert","")}):u.forEach(f=>{f.removeAttribute("inert")});return()=>{u.forEach(f=>{f.removeAttribute("inert")})}},[t,i]);const l=N(),h=N();Oe(()=>{if(t&&!i)if(Na.local.get("theme")){const f=mi();l.current=document.querySelector('meta[name="theme-color"][data-theme-setting="manual"]'),l.current&&(h.current=l.current.content,l.current.content=f)}else{const f=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",m=mi();l.current=document.querySelector(`meta[name="theme-color"][media*="${f}"]`),l.current&&(h.current=l.current.content,l.current.content=m)}else l.current&&h.current&&(l.current.content=h.current);return()=>{l.current&&h.current&&(l.current.content=h.current)}},[t,i]);const d=r("div",{ref:u=>{a.current=u,c.current=u?.querySelector?.('[tabindex="-1"]')||u},className:o,onClick:u=>{n?.(u),u.target===u.currentTarget&&e?.(u)},tabIndex:i?0:"-1",inert:i,onFocus:u=>{try{if(u.target===u.currentTarget){const f=a.current?.querySelector('[tabindex="-1"]'),m=!!f&&getComputedStyle(f)?.pointerEvents!=="none";f&&m&&f.focus()}}catch{}},children:t});return eo(d,vl)}const pi={s:16,m:20,l:24,xl:32,xxl:50,xxxl:64},un={},gn=window.OffscreenCanvas?new OffscreenCanvas(1,1):document.createElement("canvas"),Qn=gn.getContext("2d",{willReadFrequently:!0});Qn.imageSmoothingEnabled=!1;const _l=/missing\.png$/;function yl({url:t,staticUrl:e,size:n,alt:o="",squircle:i,...a}){n=pi[n]||n||pi.m;const s=N(),c=_l.test(t);return r("picture",{ref:s,class:`avatar ${i?"squircle":""} ${un[t]?"has-alpha":""}`,style:{width:n,height:n},title:o,...a,children:[!!e&&r("source",{srcset:e,media:"(prefers-reduced-motion: reduce)"}),!!t&&r("img",{src:t,width:n,height:n,alt:o,loading:"lazy",decoding:"async",fetchPriority:"low",crossOrigin:un[t]===void 0&&!c?"anonymous":void 0,onError:l=>{l.target.crossOrigin&&(l.target.crossOrigin=null,l.target.src=t)},onLoad:l=>{s.current&&(s.current.dataset.loaded=!0),un[t]===void 0&&(c||setTimeout(()=>{try{const{width:h,height:d}=l.target;gn.width!==h&&(gn.width=h),gn.height!==d&&(gn.height=d),Qn.drawImage(l.target,0,0);const u=Qn.getImageData(0,0,h,d),f=u.data.filter((m,p)=>p%4===3&&m<=128).length/(u.data.length/4)>.1;f&&s.current.classList.add("has-alpha"),un[t]=f,Qn.clearRect(0,0,h,d)}catch{un[t]=!1}},1))}})]})}const ve=kt(yl);let rr=!1;const bl=new MutationObserver(t=>{t.forEach(e=>{if(e.type==="attributes"){const{dir:n}=e.target;n==="rtl"?rr=!0:rr=!1}})});bl.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]});function ir(){return rr}function wl(){const[t,e]=U({width:null,height:null});return Oe(()=>{const n=()=>{e({width:window.innerWidth,height:window.innerHeight})};return n(),window.addEventListener("resize",n,{passive:!0}),()=>{window.removeEventListener("resize",n)}},[]),t}function ks(t){const{containerProps:e,instanceRef:n,align:o}=t,i=wl(),a=n?.current?n:N(),s=ir()?o==="end"?"start":o==="start"?"end":o:o;return r(Kc,{boundingBoxPadding:Es(),repositionFlag:`${i.width}x${i.height}`,unmountOnClose:!0,...t,align:s,instanceRef:a,containerProps:{onClick:c=>{c.target===c.currentTarget&&a.current?.closeMenu?.(),e?.onClick?.(c)},...e}})}function So({subMenu:t=!1,confirm:e=!0,confirmLabel:n,menuItemClassName:o,menuFooter:i,menuExtras:a,...s}){const{children:c,onClick:l,...h}=s;return e?r(t?ml:ks,{openTrigger:"clickOnly",direction:"bottom",overflow:"auto",gap:-8,shift:8,menuClassName:"menu-emphasized",...h,menuButton:t?void 0:c,label:t?c:void 0,children:[r(wt,{className:o,onClick:l,children:n}),a,i]}):t?r(wt,{...s}):l?Fa(c,{onClick:l}):c}function sr({staticUrl:t,alt:e,url:n}){return r("picture",{children:[t&&r("source",{srcset:t,media:"(prefers-reduced-motion: reduce)"}),r("img",{src:n,alt:e,class:"shortcode-emoji emoji",width:"16",height:"16",loading:"lazy",decoding:"async",fetchPriority:"low"},e||n)]})}const El=kt(t=>new RegExp(`:(${t.join("|")}):`,"g"));function Tl({text:t,emojis:e}){if(!t)return"";if(!e?.length||t.indexOf(":")===-1)return t;const n=El(e.map(i=>i.shortcode));return t.split(n).map((i,a)=>{const s=e.find(c=>c.shortcode===i);if(s){const{url:c,staticUrl:l}=s;return r(sr,{staticUrl:l,alt:i,url:c},i+"-"+a)}return i})}const Xe=kt(Tl),Al=kt(t=>{const e={sensitivity:"base"};try{return new Intl.Collator(t||void 0,e)}catch{return new Intl.Collator(void 0,e)}}),kl=/([^@]+)(@.+)/i,Cl=/(\:(\w|\+|\-)+\:)(?=|[\!\.\?]|$)/g,Sl=/\s+/g,xl=/[^a-z0-9@\.]/gi;function Il({account:t,instance:e,showAvatar:n,showAcct:o,short:i,external:a,onClick:s}){const{i18n:c}=te();if(!t)return null;const{acct:l,avatar:h,avatarStatic:d,id:u,url:f,displayName:m,emojis:p,bot:g,username:v}=t,[E,w,A]=l.match(kl)||[,l];e||(e=no().instance);const T=v.toLowerCase().trim(),y=(m||"").toLowerCase().trim(),b=y.replace(Cl,"").replace(Sl,""),I=b.replace(xl,""),L=!i&&(T===y||T===b||T===I||Al(c.locale).compare(T,b)===0)||I===l.toLowerCase();return r("a",{class:`name-text ${o?"show-acct":""} ${i?"short":""}`,href:f,target:a?"_blank":null,title:m?`${m} (${A?"":"@"}${l})`:`${A?"":"@"}${l}`,onClick:x=>{if(!a&&!x.shiftKey){if(x.preventDefault(),x.stopPropagation(),s)return s(x);if(x.metaKey||x.ctrlKey||x.shiftKey||x.which===2){const C=`#/${e}/a/${u}`;window.open(C,"_blank");return}W.showAccount={account:t,instance:e}}},children:[n&&r(B,{children:[r(ve,{url:d||h,squircle:g})," "]}),m&&!i?r(B,{children:[r("b",{dir:"auto",children:r(Xe,{text:m,emojis:p})}),!o&&!L&&r(B,{children:[" ",r("i",{class:"bidi-isolate",children:["@",v]})]})]}):i?r("i",{children:v}):r("b",{children:v}),o&&r(B,{children:[r("br",{}),r("i",{class:"bidi-isolate",children:[A?"":"@",w,!!A&&r("span",{class:"ib",children:A})]})]})]})}const Te=kt(Il),Ll="Аҧсшәа",Dl="Acèh",Ml="Lëbacoli",Pl="Afár",Rl="Afrikaans",Ol="Shqip",$l="Dhalur",Nl="አማርኛ",Fl="العربية",Bl="Հայերեն",zl="অসমীয়া",Vl="Авар мацӀ",Hl="अवधी",Kl="Aymar aru",jl="Azərbaycanca",Ul="Basa Bali",Wl="بلوچی",Zl="Bamanankan",ql="Baoulé",Gl="Башҡортса",Yl="Euskara",Xl="Batak Karo",Ql="Batak Simalungun",Jl="Batak Toba",tu="Беларуская",eu="Ichibemba",nu="বাংলা",ou="Betawi",ru="भोजपुरी",iu="Bikol",su="Bosanski",au="Brezhoneg",cu="Български",lu="Буряад",uu="粵語",du="Català",hu="Cebuano",fu="Chamoru",mu="Нохчийн мотт",pu="Chichewa",gu="Kapasen Chuuk",vu="Чӑвашла",_u="Corsu",yu="Qırımtatarca (Кирилл)",bu="Hrvatski",wu="Čeština",Eu="Dansk",Tu="ދިވެހި",Au="Thuɔŋjäŋ",ku="डोगरी",Cu="Dombe",Su="Nederlands",xu="Jula",Iu="རྫོང་ཁ",Lu="English",Du="Esperanto",Mu="Eesti",Pu="Eʋegbe",Ru="Føroyskt",Ou="Vosa Vakaviti",$u="Tagalog",Nu="Suomi",Fu="Fon",Bu="Français",zu="Frysk",Vu="Furlan",Hu="Fulfulde",Ku="Gã",ju="Galego",Uu="ქართული",Wu="Deutsch",Zu="Ελληνικά",qu="Avañe'ẽ",Gu="ગુજરાતી",Yu="Kreyòl ayisyen",Xu="Hakha Chin",Qu="Hausa",Ju="ʻŌlelo Hawaiʻi",td="עברית",ed="Hiligaynon",nd="हिन्दी",od="Hmoob",rd="Magyar",id="Hunsrik",sd="Iban",ad="Íslenska",cd="Igbo",ld="Iloko",ud="Bahasa Indonesia",dd="ᐃᓄᒃᑎᑐᑦ",hd="Gaeilge",fd="Italiano",md="Patwa",pd="日本語",gd="Basa Jawa",vd="Jinghpaw",_d="Kalaallisut",yd="ಕನ್ನಡ",bd="Kanuri",wd="Kapampangan",Ed="Қазақша",Td="Khasi",Ad="ភាសាខ្មែរ",kd="Rukiga",Cd="Kikongo",Sd="Kinyarwanda",xd="Kituba",Id="Kokborok",Ld="Коми кыв",Dd="कोंकणी",Md="한국어",Pd="Krio",Rd="Kurdî (Kurmancî)",Od="کوردی (سۆرانی)",$d="Кыргызча",Nd="ລາວ",Fd="Latgaļu",Bd="Latina",zd="Latviešu",Vd="Ligure",Hd="Limburgs",Kd="Lingála",jd="Lietuvių",Ud="Lombard",Wd="Luganda",Zd="Dholuo",qd="Lëtzebuergesch",Gd="Македонски",Yd="Madhurâ",Xd="मैथिली",Qd="Makassar",Jd="Malagasy",th="Bahasa Melayu",eh="മലയാളം",nh="Malti",oh="Mam",rh="Gaelg",ih="Te Reo Māori",sh="मराठी",ah="Kajin M̧ajeļ",ch="मारवाड़ी",lh="Kreol Morisien",uh="Олык марий",dh="Baso Minang",hh="Mizo ṭawng",fh="Монгол",mh="မြန်မာစာ",ph="Náhuatl",gh="isiNdebele",vh="नेपाली",_h="Norsk",yh="Thok Nath",bh="Occitan",wh="ଓଡ଼ିଆ",Eh="Afaan Oromoo",Th="Ирон æвзаг",Ah="Pangasinan",kh="Papiamentu",Ch="پښتو",Sh="فارسی",xh="Polski",Ih="Português (Brasil)",Lh="ਪੰਜਾਬੀ",Dh="Runa Simi",Mh="Qʼeqchiʼ",Ph="Romani čhib",Rh="Română",Oh="Ikirundi",$h="Русский",Nh="Davvisámegiella",Fh="Gagana Samoa",Bh="Sängö",zh="संस्कृतम्",Vh="ᱥᱟᱱᱛᱟᱲᱤ",Hh="Gàidhlig",Kh="Sepedi",jh="Српски",Uh="Sesotho",Wh="Kreol seselwa",Zh="လိၵ်ႈတႆး",qh="chiShona",Gh="Sicilianu",Yh="Ślōnskŏ",Xh="سنڌي",Qh="සිංහල",Jh="Slovenčina",tf="Slovenščina",ef="Soomaali",nf="Español",of="Basa Sunda",rf="Susu",sf="Kiswahili",af="siSwati",cf="Svenska",lf="Reo Tahiti",uf="Тоҷикӣ",df="ⵜⴰⵎⴰⵣⵉⵖⵜ",hf="தமிழ்",ff="Татарча",mf="తెలుగు",pf="Tetun",gf="ไทย",vf="བོད་ཡིག",_f="ትግርኛ",yf="Tiv",bf="Tok Pisin",wf="Lea fakatonga",Ef="Tshiluba",Tf="Xitsonga",Af="Setswana",kf="ತುಳು",Cf="chiTumbuka",Sf="Türkçe",xf="Türkmençe",If="Тыва дыл",Lf="Akankasa",Df="Удмурт кыл",Mf="Українська",Pf="اردو",Rf="ئۇيغۇرچە",Of="Oʻzbekcha",$f="Tshivenḓa",Nf="Vèneto",Ff="Tiếng Việt",Bf="Winaray",zf="Cymraeg",Vf="Wolof",Hf="isiXhosa",Kf="Саха тыла",jf="ייִדיש",Uf="Yorùbá",Wf="Màaya T'àan",Zf="Didxazá",qf="isiZulu",Gf={ab:Ll,ace:Dl,ach:Ml,aa:Pl,af:Rl,sq:Ol,alz:$l,am:Nl,ar:Fl,hy:Bl,as:zl,av:Vl,awa:Hl,ay:Kl,az:jl,ban:Ul,bal:Wl,bm:Zl,bci:ql,ba:Gl,eu:Yl,btx:Xl,bts:Ql,bbc:Jl,be:tu,bem:eu,bn:nu,bew:ou,bho:ru,bik:iu,bs:su,br:au,bg:cu,bua:lu,yue:uu,ca:du,ceb:hu,ch:fu,ce:mu,ny:pu,"zh-CN":"简体中文","zh-TW":"繁體中文",chk:gu,cv:vu,co:_u,crh:yu,"crh-Latn":"Qırımtatarca (Latin)",hr:bu,cs:wu,da:Eu,"fa-AF":"درى",dv:Tu,din:Au,doi:ku,dov:Cu,nl:Su,dyu:xu,dz:Iu,en:Lu,eo:Du,et:Mu,ee:Pu,fo:Ru,fj:Ou,tl:$u,fi:Nu,fon:Fu,fr:Bu,"fr-CA":"Français (Canada)",fy:zu,fur:Vu,ff:Hu,gaa:Ku,gl:ju,ka:Uu,de:Wu,el:Zu,gn:qu,gu:Gu,ht:Yu,cnh:Xu,ha:Qu,haw:Ju,iw:td,hil:ed,hi:nd,hmn:od,hu:rd,hrx:id,iba:sd,is:ad,ig:cd,ilo:ld,id:ud,"iu-Latn":"Inuktitut (Latin)",iu:dd,ga:hd,it:fd,jam:md,ja:pd,jw:gd,kac:vd,kl:_d,kn:yd,kr:bd,pam:wd,kk:Ed,kha:Td,km:Ad,cgg:kd,kg:Cd,rw:Sd,ktu:xd,trp:Id,kv:Ld,gom:Dd,ko:Md,kri:Pd,ku:Rd,ckb:Od,ky:$d,lo:Nd,ltg:Fd,la:Bd,lv:zd,lij:Vd,li:Hd,ln:Kd,lt:jd,lmo:Ud,lg:Wd,luo:Zd,lb:qd,mk:Gd,mad:Yd,mai:Xd,mak:Qd,mg:Jd,ms:th,"ms-Arab":"بهاس ملايو",ml:eh,mt:nh,mam:oh,gv:rh,mi:ih,mr:sh,mh:ah,mwr:ch,mfe:lh,chm:uh,"mni-Mtei":"ꯃꯤꯇꯩꯂꯣꯟ",min:dh,lus:hh,mn:fh,my:mh,nhe:ph,"ndc-ZW":"Ndau",nr:gh,new:"नेपाल भाषा",ne:vh,"bm-Nkoo":"ߒߞߏ",no:_h,nus:yh,oc:bh,or:wh,om:Eh,os:Th,pag:Ah,pap:kh,ps:Ch,fa:Sh,pl:xh,pt:Ih,"pt-PT":"Português (Portugal)",pa:Lh,"pa-Arab":"پنجابی",qu:Dh,kek:Mh,rom:Ph,ro:Rh,rn:Oh,ru:$h,se:Nh,sm:Fh,sg:Bh,sa:zh,"sat-Latn":"Santali (Latin)",sat:Vh,gd:Hh,nso:Kh,sr:jh,st:Uh,crs:Wh,shn:Zh,sn:qh,scn:Gh,szl:Yh,sd:Xh,si:Qh,sk:Jh,sl:tf,so:ef,es:nf,su:of,sus:rf,sw:sf,ss:af,sv:cf,ty:lf,tg:uf,"ber-Latn":"Tamazight (Latin)",ber:df,ta:hf,tt:ff,te:mf,tet:pf,th:gf,bo:vf,ti:_f,tiv:yf,tpi:bf,to:wf,lua:Ef,ts:Tf,tn:Af,tcy:kf,tum:Cf,tr:Sf,tk:xf,tyv:If,ak:Lf,udm:Df,uk:Mf,ur:Pf,ug:Rf,uz:Of,ve:$f,vec:Nf,vi:Ff,war:Bf,cy:zf,wo:Vf,xh:Hf,sah:Kf,yi:jf,yo:Uf,yua:Wf,zap:Zf,zu:qf},Hn={"zh-YUE":"YUE",zh_HANT:"zh-Hant"},xo=kt(t=>new Intl.DisplayNames(t||void 0,{type:"language"}));function Yf(t){let e,n;typeof t=="object"&&({code:t,locale:e,fallback:n}=t);try{const o=xo(e||It.locale).of(t);if(o!==t)return o;if(!n){const i=xo(t).of(t);if(i!==t)return i;const a=Gf?.[e];if(a!==t)return a}return n||""}catch{if(Hn[t])try{const i=xo(Hn[e]||e||It.locale).of(Hn[t]);return i!==Hn[t]?i:n||""}catch{}return n||""}}const dn=kt(Yf),Xf={auto:"Detect language",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoulé",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jw:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali","bm-Nkoo":"NKo",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Qʼeqchiʼ",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"},Qf={ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoulé",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jw:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali","bm-Nkoo":"NKo",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Qʼeqchiʼ",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"},Jf={},Cs={sl:Xf,tl:Qf,al:Jf},tm=Object.entries(Cs.tl).map(([t,{name:e}])=>({code:t,name:e})),em=kt(()=>[new Intl.DateTimeFormat().resolvedOptions().locale,...navigator.languages]),nm=()=>bn(em(),tm.map(t=>t.code.replace("_","-")),"en");function Ss(t=!1){if(t){const{contentTranslationTargetLanguage:e}=W.settings;if(e)return e}return nm()}const gi=["byte","kilobyte","megabyte","gigabyte","terabyte","petabyte"];function xv(t){const e=Math.min(Math.floor(Math.log2(t)/10),gi.length-1),n=t/1024**e;return It.number(n,{style:"unit",unit:gi[e],unitDisplay:"narrow",maximumFractionDigits:0})}const Ze=2147483647,se=36,Lr=1,An=26,om=38,rm=700,xs=72,Is=128,Ls="-",im=/^xn--/,sm=/[^\0-\x7F]/,am=/[\x2E\u3002\uFF0E\uFF61]/g,cm={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Io=se-Lr,ae=Math.floor,Lo=String.fromCharCode;function Ee(t){throw new RangeError(cm[t])}function lm(t,e){const n=[];let o=t.length;for(;o--;)n[o]=e(t[o]);return n}function Ds(t,e){const n=t.split("@");let o="";n.length>1&&(o=n[0]+"@",t=n[1]),t=t.replace(am,".");const i=t.split("."),a=lm(i,e).join(".");return o+a}function Ms(t){const e=[];let n=0;const o=t.length;for(;n=55296&&i<=56319&&nString.fromCodePoint(...t),dm=function(t){return t>=48&&t<58?26+(t-48):t>=65&&t<91?t-65:t>=97&&t<123?t-97:se},vi=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)},Ps=function(t,e,n){let o=0;for(t=n?ae(t/rm):t>>1,t+=ae(t/e);t>Io*An>>1;o+=se)t=ae(t/Io);return ae(o+(Io+1)*t/(t+om))},Rs=function(t){const e=[],n=t.length;let o=0,i=Is,a=xs,s=t.lastIndexOf(Ls);s<0&&(s=0);for(let c=0;c=128&&Ee("not-basic"),e.push(t.charCodeAt(c));for(let c=s>0?s+1:0;c=n&&Ee("invalid-input");const f=dm(t.charCodeAt(c++));f>=se&&Ee("invalid-input"),f>ae((Ze-o)/d)&&Ee("overflow"),o+=f*d;const m=u<=a?Lr:u>=a+An?An:u-a;if(fae(Ze/p)&&Ee("overflow"),d*=p}const h=e.length+1;a=Ps(o-l,h,l==0),ae(o/h)>Ze-i&&Ee("overflow"),i+=ae(o/h),o%=h,e.splice(o++,0,i)}return String.fromCodePoint(...e)},Os=function(t){const e=[];t=Ms(t);const n=t.length;let o=Is,i=0,a=xs;for(const l of t)l<128&&e.push(Lo(l));const s=e.length;let c=s;for(s&&e.push(Ls);c=o&&dae((Ze-i)/h)&&Ee("overflow"),i+=(l-o)*h,o=l;for(const d of t)if(dZe&&Ee("overflow"),d===o){let u=i;for(let f=se;;f+=se){const m=f<=a?Lr:f>=a+An?An:f-a;if(u{const{shortcode:o,staticUrl:i,url:a}=n;t=t.replace(new RegExp(`:${o}:`,"g"),`:${o}:`)}),t):""}const Ve=document.createElement("div"),mm=["u-url","mention","hashtag"],pm=/[&<>]/g;function Do(t){return t.replace(pm,e=>({"&":"&","<":"<",">":">"})[e])}const gm=/{}}=e;let a=t;const s=xm(a,o),c=gm.test(a),l=a.includes("```");if(c){const d=s.querySelectorAll('a:not([target="_blank"])');for(const f of d)f.setAttribute("target","_blank");const u=s.querySelectorAll("a[class]");for(const f of u)for(const m of f.classList)mm.includes(m)||f.classList.remove(m)}if(c){const d=s.querySelectorAll("a[href]");for(const u of d)vm.test(u.textContent.trim())&&(u.classList.add("has-url-text"),Pm(u))}if(c){const d=s.querySelectorAll("a[href]"),u=[];for(const f of d){const m=f.innerText.trim(),p=f.querySelector("*");if(_m.test(m)){const[g,v,E]=m.split("@");p||(!u.some(([w])=>w===v)||u.some(([w,A])=>w===v&&A===E)?(f.innerHTML=`@${v}`,u.push([v,E])):f.innerHTML=`@${v}@${E}`),f.classList.add("mention")}ym.test(m)&&(p||(f.innerHTML=`#${m.slice(1)}`),f.classList.add("mention","hashtag"))}}let h;if(a.includes(":")&&n?.length){h=Po(s);for(const d of h){let u=Do(d.nodeValue);u=ar(u,n),Ve.innerHTML=u,d.replaceWith(...Ve.childNodes)}}if(l){const d=[...s.querySelectorAll("p")].filter(u=>bm.test(u.innerText.trim()));for(const u of d){const f=document.createElement("pre");for(const m of u.querySelectorAll("br"))m.replaceWith(` +`);f.innerHTML=`${u.innerHTML.trim()}`,u.replaceWith(f)}}if(l){const u=[...s.querySelectorAll("p")].filter(f=>wm.test(f.innerText));for(const f of u){const m=[f];let p=!1,g=f;for(;g.nextElementSibling;){const v=g.nextElementSibling;if(v&&v.tagName==="P")if(Em.test(v.innerText)){m.push(v),p=!0;break}else m.push(v);else break;g=v}if(p){const v=document.createElement("pre");for(const w of m)for(const A of w.querySelectorAll("br"))A.replaceWith(` +`);const E=m.map(w=>w.innerHTML).join(` + +`);v.innerHTML=`${E}`,f.replaceWith(v);for(const w of m)w.remove()}}}if(a.includes("`")){h=Po(s);for(const d of h){let u=Do(d.nodeValue);Tm.test(u)&&(u=u.replaceAll(Sm,"$1")),Ve.innerHTML=u,d.replaceWith(...Ve.childNodes)}}if(Am.test(a)){h=Po(s,{rejectFilter:["A"]});for(const d of h){let u=Do(d.nodeValue);km.test(u)&&(u=u.replaceAll(Cm,'$1')),Ve.innerHTML=u,d.replaceWith(...Ve.childNodes)}}if(a.includes("#")){let d=null;const u=[...s.querySelectorAll("p")].filter((f,m)=>{let p=0;for(let g=0;g3||p>1&&d&&m===d+1)return d=m,!0});if(u?.length)for(const f of u)f.classList.add("hashtag-stuffing"),f.title=f.innerText}if(a.includes("i(s)),o?s:s.innerHTML}const Ns=kt(Im),Lm=["STYLE","IMG","VIDEO","AUDIO","AREA","MAP","TRACK","EMBED","IFRAME","OBJECT","PICTURE","PORTAL","SOURCE","SVG","MATH","CANVAS","NOSCRIPT","SCRIPT","INPUT","OPTION","TEXTAREA","SLOT","TEMPLATE"],Dm=Object.fromEntries(Lm.map(t=>[t,!0])),Mm=/^(https?:\/\/(www\.)?|xmpp:)/,Mo=30;function Pm(t){if(!(!t||t.querySelector?.("*")))try{const e=t.innerText.trim(),n=(e.match(Mm)||[])[0]||"";if(!n)return;const o=e.slice(n.length,n.length+Mo),i=e.slice(n.length+Mo),a=e.slice(n.length).length>Mo;t.innerHTML=`${o}`}catch{}}function Po(t,e={}){const n=[],o=Object.assign({},Dm,e.rejectFilter?.reduce((s,c)=>(s[c]=!0,s),{})),i=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(s){return o[s.parentNode.nodeName]?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}},!1);let a;for(;a=i.nextNode();)n.push(a);return n}function Rm(t){const{mentions:e=[],instance:n,previewMode:o,statusURL:i}=t||{};return a=>{let{target:s}=a;if(s=s.closest("a"),!s||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||a.which===2)return;const c=s.previousSibling?.textContent,l=c?.endsWith("@"),h=s.innerText.startsWith("@");if((s.classList.contains("u-url")||s.classList.contains("mention"))&&h||l&&!h){const d=(s.querySelector("span")||s).innerText.trim(),u=d.replace(/^@/,""),f=s.getAttribute("href"),m=e.find(p=>p.url===f)||e.find(p=>p.acct===u||p.username===u);if(m)a.preventDefault(),a.stopPropagation(),W.showAccount={account:m.acct,instance:n};else if(!/^http/i.test(d)){a.preventDefault(),a.stopPropagation();const p=s.getAttribute("href");W.showAccount={account:p,instance:n}}}else if(!o){const d=c?.endsWith("#");if(s.classList.contains("hashtag")||d){a.preventDefault(),a.stopPropagation();const u=s.innerText.replace(/^#/,"").trim(),f=n?`#/${n}/t/${u}`:`#/t/${u}`;location.hash=f}else W.unfurledLinks[s.href]?.url&&i!==s.href&&(a.preventDefault(),a.stopPropagation(),W.prevLocation={pathname:location.hash.replace(/^#/,"")},location.hash=`#${W.unfurledLinks[s.href].url}`)}}}function Iv(t,e){return()=>It.number(t,{style:"unit",unit:e,unitDisplay:"long"})}async function Lv(t,e={}){if(!t?.length)return;const{masto:n}=no(),o=wr(),i=t.reduce((a,s)=>(!a.includes(s.id)&&!e[s.id]&&s.id!==o&&a.push(s.id),a),[]);if(!i.length)return null;try{return(await n.v1.accounts.relationships.fetch({id:i})).reduce((c,l)=>(c[l.id]=l,c),{})}catch{return null}}function pe(t){try{return It.number(t,{notation:"compact",roundingMode:"floor"})}catch{return t}}const Om={"@mastodon/edit-media-attributes":">=4.1","@mastodon/list-exclusive":">=4.2","@gotosocial/list-exclusive":">=0.17","@mastodon/filtered-notifications":"~4.3 || >=4.3","@mastodon/fetch-multiple-statuses":"~4.3 || >=4.3","@mastodon/trending-link-posts":"~4.3 || >=4.3","@mastodon/annual-report":"~4.4 || >=4.4","@mastodon/endorsements":"~4.4 || >=4.4"},Ro=/pixelfed/i,ie=/^(?!.*pixelfed).*$/i,$m=/pleroma/i,Nm=/akkoma/i;const _i={"@mastodon/lists":ie,"@mastodon/filters":ie,"@mastodon/mentions":ie,"@mastodon/trending-hashtags":ie,"@mastodon/trending-links":ie,"@mastodon/post-bookmark":ie,"@mastodon/post-edit":ie,"@mastodon/profile-edit":ie,"@mastodon/profile-private-note":ie,"@mastodon/pinned-posts":ie,"@pixelfed/trending":Ro,"@pixelfed/home-include-reblogs":Ro,"@pixelfed/global-feed":Ro,"@pleroma/local-visibility-post":$m,"@akkoma/local-visibility-post":Nm},Kn={};function jn(t){try{let{version:e,domain:n}=Ba(),o=za()?.software?.name||"mastodon";o==="hometown"&&(o="mastodon");const i=`${n}-${t}`;if(Kn[i])return Kn[i];if(_i[t])return Kn[i]=_i[t].test(e);const a=Om[t];if(!a)return!1;const c=t.match(/^@([a-z]+)\//)[1]===o.toLowerCase();return Kn[i]=c&&Va(e,a,{includePrerelease:!0,loose:!0})}catch{return!1}}function Dv({skeleton:t,account:e,avatarSize:n="xl",useAvatarStatic:o=!1,instance:i,external:a,internal:s,onClick:c,showActivity:l=!1,showStats:h=!1,accountInstance:d,hideDisplayName:u=!1,relationship:f={},excludeRelationshipAttrs:m=[]}){const{_:p}=te();if(t)return r("div",{class:"account-block skeleton",children:[r(ve,{size:n}),r("span",{children:[r("b",{children:"████████"}),r("br",{}),r("span",{class:"account-block-acct",children:"██████"})]})]});if(!e)return null;const{id:g,acct:v,avatar:E,avatarStatic:w,displayName:A,username:T,emojis:y,url:b,statusesCount:I,lastStatusAt:L,bot:x,fields:C,note:O,group:M,followersCount:R,createdAt:S,locked:Z}=e;let[H,ft,G]=v.match(/([^@]+)(@.+)/i)||[,v];d&&(G=`@${d}`);const rt=C?.find(Y=>!!Y.verifiedAt&&!!Y.value),et={};for(const Y in f)m.includes(Y)||(et[Y]=f[Y]);const lt=et.following||et.followedBy||et.requested;return r("a",{class:"account-block",href:b,target:a?"_blank":null,title:G?v:`@${v}`,onClick:Y=>{if(!a){if(Y.preventDefault(),c)return c(Y);s?location.hash=`/${i}/a/${g}`:W.showAccount={account:e,instance:i}}},children:[r("div",{class:"avatar-container",children:r(ve,{url:o?w:E||w,staticUrl:o?void 0:w,size:n,squircle:x})}),r("span",{class:"account-block-content",children:[!u&&r(B,{children:A?r("b",{children:r(Xe,{text:A,emojis:y})}):r("b",{children:T})})," ",r("span",{class:"account-block-acct bidi-isolate",children:[G?"":"@",ft,r("wbr",{}),G,Z&&r(B,{children:[" ",r(D,{icon:"lock",size:"s",alt:p({id:"G2fuEb"})})]})]}),l&&r("div",{class:"account-block-stats",children:[r(P,{id:"ajzDof",values:{0:pe(I)}}),!!L&&r(B,{children:[" ","·"," ",r(P,{id:"f8bJ3C",values:{0:Tn(L,{hideTime:!0})}})]})]}),h&&r("div",{class:"account-block-stats",children:[x&&r(B,{children:r("span",{class:"tag collapsed",children:[r(D,{icon:"bot"})," ",r(P,{id:"9Vdq+j"})]})}),!!M&&r(B,{children:r("span",{class:"tag collapsed",children:[r(D,{icon:"group"})," ",r(P,{id:"L8fEEm"})]})}),lt&&r("div",{class:"shazam-container-horizontal",children:r("div",{class:"shazam-container-inner",children:et.following&&et.followedBy?r("span",{class:"tag minimal",children:r(P,{id:"7oRLbi"})}):et.requested?r("span",{class:"tag minimal",children:r(P,{id:"Yx0Ud8"})}):et.following?r("span",{class:"tag minimal",children:r(P,{id:"y6sq5j"})}):et.followedBy?r("span",{class:"tag minimal",children:r(P,{id:"p3UO/y"})}):null})},f.id),!!R&&r("span",{class:"ib",children:r(P,{id:"Mn1E9C",values:{followersCount:R}})}),!!rt&&r("span",{class:"verified-field",children:[r(D,{icon:"check-circle",size:"s",alt:p({id:"QDEWii"})})," ",r("span",{dangerouslySetInnerHTML:{__html:Ns(rt.value,{emojis:y})}})]}),!x&&!M&&!lt&&!R&&!rt&&!!S&&r("span",{class:"created-at",children:r(P,{id:"PCcEFZ",values:{0:Tn(S,{hideTime:!0})},components:{0:r("time",{datetime:S})}})})]})]})]})}var Oo={},$o,yi;function Fm(){if(yi)return $o;yi=1;function t(e,n){typeof n=="boolean"&&(n={forever:n}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=n||{},this._maxRetryTime=n&&n.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}return $o=t,t.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},t.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},t.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var n=new Date().getTime();if(e&&n-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var o=this._timeouts.shift();if(o===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),o=this._cachedTimeouts.slice(-1);else return!1;var i=this;return this._timer=setTimeout(function(){i._attempts++,i._operationTimeoutCb&&(i._timeout=setTimeout(function(){i._operationTimeoutCb(i._attempts)},i._operationTimeout),i._options.unref&&i._timeout.unref()),i._fn(i._attempts)},o),this._options.unref&&this._timer.unref(),!0},t.prototype.attempt=function(e,n){this._fn=e,n&&(n.timeout&&(this._operationTimeout=n.timeout),n.cb&&(this._operationTimeoutCb=n.cb));var o=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){o._operationTimeoutCb()},o._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},t.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},t.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},t.prototype.start=t.prototype.try,t.prototype.errors=function(){return this._errors},t.prototype.attempts=function(){return this._attempts},t.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},n=null,o=0,i=0;i=o&&(n=a,o=c)}return n},$o}var bi;function Bm(){return bi||(bi=1,function(t){var e=Fm();t.operation=function(n){var o=t.timeouts(n);return new e(o,{forever:n&&(n.forever||n.retries===1/0),unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},t.timeouts=function(n){if(n instanceof Array)return[].concat(n);var o={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var i in n)o[i]=n[i];if(o.minTimeout>o.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var a=[],s=0;sKm.call(t)==="[object Error]",Um=new Set(["Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed"]);function Wm(t){return t&&jm(t)&&t.name==="TypeError"&&typeof t.message=="string"?t.message==="Load failed"?t.stack===void 0:Um.has(t.message):!1}class Zm extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}}const Ei=(t,e,n)=>{const o=n.retries-(e-1);return t.attemptNumber=e,t.retriesLeft=o,t};async function qm(t,e){return new Promise((n,o)=>{e={...e},e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.retries??=10;const i=Hm.operation(e),a=()=>{i.stop(),o(e.signal?.reason)};e.signal&&!e.signal.aborted&&e.signal.addEventListener("abort",a,{once:!0});const s=()=>{e.signal?.removeEventListener("abort",a),i.stop()};i.attempt(async c=>{try{const l=await t(c);s(),n(l)}catch(l){try{if(!(l instanceof Error))throw new TypeError(`Non-error was thrown: "${l}". You should only throw errors.`);if(l instanceof Zm)throw l.originalError;if(l instanceof TypeError&&!Wm(l))throw l;if(Ei(l,c,e),await e.shouldRetry(l)||(i.stop(),o(l)),await e.onFailedAttempt(l),!i.retry(l))throw i.mainError()}catch(h){Ei(h,c,e),s(),o(h)}}})})}const Fs="LanguageDetector"in self,Gm=Fs&&"Translator"in self;let Re;Fs&&(async()=>{try{const t=await LanguageDetector.availability();if(t==="unavailable")return;t==="available"?Re=await LanguageDetector.create():(Re=await LanguageDetector.create({monitor(e){e.addEventListener("downloadprogress",n=>{})}}),await Re.ready)}catch{}})();const Ym=async(t,e,n)=>{let o;const i=e;if(e==="auto"){if(!Re?.detect)return{error:"No language detector"};try{e=(await Re.detect(t))[0].detectedLanguage,o=e}catch(s){return{error:s}}}const a=`💬 BROWSER TRANSLATE ${t}`;console.groupCollapsed(a);try{const s=await Translator.availability({sourceLanguage:e,targetLanguage:n});if(s==="unavailable")return console.groupEnd(a),{error:`Unsupported language pair: ${e} -> ${n}`};let c;s==="available"?c=await Translator.create({sourceLanguage:e,targetLanguage:n}):(c=await Translator.create({sourceLanguage:e,targetLanguage:n,monitor(h){h.addEventListener("downloadprogress",d=>{})}}),await c.ready);const l=await c.translate(t);return console.groupEnd(a),{content:l,detectedSourceLanguage:o,provider:"browser"}}catch(s){return console.groupEnd(a),{error:s}}};var Xm=Object.defineProperty,Qm=(t,e,n)=>e in t?Xm(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Un=(t,e,n)=>Qm(t,typeof e!="symbol"?e+"":e,n),cr=new Map,Wn=new WeakMap,Ti=0,Jm=void 0;function tp(t){return t?(Wn.has(t)||(Ti+=1,Wn.set(t,Ti.toString())),Wn.get(t)):"0"}function ep(t){return Object.keys(t).sort().filter(e=>t[e]!==void 0).map(e=>`${e}_${e==="root"?tp(t.root):t[e]}`).toString()}function np(t){const e=ep(t);let n=cr.get(e);if(!n){const o=new Map;let i;const a=new IntersectionObserver(s=>{s.forEach(c=>{var l;const h=c.isIntersecting&&i.some(d=>c.intersectionRatio>=d);t.trackVisibility&&typeof c.isVisible>"u"&&(c.isVisible=h),(l=o.get(c.target))==null||l.forEach(d=>{d(h,c)})})},t);i=a.thresholds||(Array.isArray(t.threshold)?t.threshold:[t.threshold||0]),n={id:e,observer:a,elements:o},cr.set(e,n)}return n}function Bs(t,e,n={},o=Jm){if(typeof window.IntersectionObserver>"u"&&o!==void 0){const l=t.getBoundingClientRect();return e(o,{isIntersecting:o,target:t,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:a,elements:s}=np(n),c=s.get(t)||[];return s.has(t)||s.set(t,c),c.push(e),a.observe(t),function(){c.splice(c.indexOf(e),1),c.length===0&&(s.delete(t),a.unobserve(t)),s.size===0&&(a.disconnect(),cr.delete(i))}}function op(t){return typeof t.children!="function"}var Mv=class extends Qi{constructor(t){super(t),Un(this,"node",null),Un(this,"_unobserveCb",null),Un(this,"handleNode",e=>{this.node&&(this.unobserve(),!e&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=e||null,this.observeNode()}),Un(this,"handleChange",(e,n)=>{e&&this.props.triggerOnce&&this.unobserve(),op(this.props)||this.setState({inView:e,entry:n}),this.props.onChange&&this.props.onChange(e,n)}),this.state={inView:!!t.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(t){(t.rootMargin!==this.props.rootMargin||t.root!==this.props.root||t.threshold!==this.props.threshold||t.skip!==this.props.skip||t.trackVisibility!==this.props.trackVisibility||t.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:t,root:e,rootMargin:n,trackVisibility:o,delay:i,fallbackInView:a}=this.props;this._unobserveCb=Bs(this.node,this.handleChange,{threshold:t,root:e,rootMargin:n,trackVisibility:o,delay:i},a)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:t}=this.props;if(typeof t=="function"){const{inView:m,entry:p}=this.state;return t({inView:m,entry:p,ref:this.handleNode})}const{as:e,triggerOnce:n,threshold:o,root:i,rootMargin:a,onChange:s,skip:c,trackVisibility:l,delay:h,initialInView:d,fallbackInView:u,...f}=this.props;return Ha(e||"div",{ref:this.handleNode,...f},t)}};function rp({threshold:t,delay:e,trackVisibility:n,rootMargin:o,root:i,triggerOnce:a,skip:s,initialInView:c,fallbackInView:l,onChange:h}={}){var d;const[u,f]=U(null),m=N(h),[p,g]=U({inView:!!c,entry:void 0});m.current=h,X(()=>{if(s||!u)return;let A;return A=Bs(u,(T,y)=>{g({inView:T,entry:y}),m.current&&m.current(T,y),y.isIntersecting&&a&&A&&(A(),A=void 0)},{root:i,rootMargin:o,threshold:t,trackVisibility:n,delay:e},l),()=>{A&&A()}},[Array.isArray(t)?t.toString():t,u,i,o,a,s,n,l,e]);const v=(d=p.entry)==null?void 0:d.target,E=N(void 0);!u&&v&&!a&&!s&&E.current!==v&&(E.current=v,g({inView:!!c,entry:void 0}));const w=[f,p.inView,p.entry];return w.ref=w[0],w.inView=w[1],w.entry=w[2],w}const Ai=48,Fo={};function zs({id:t,children:e}){const n=N(),o=!!Fo[t],[i,a]=U(!1),[s,c]=U(o||!1),{ref:l}=rp({root:null,rootMargin:`-${Ai}px 0px 0px 0px`,trackVisibility:!0,delay:1e3,onChange:h=>{h&&(a(!0),t&&(Fo[t]=!0))},triggerOnce:!0,skip:s||i});return X(()=>{if(!n.current)return;const h=n.current.getBoundingClientRect();h.bottom>Ai&&(h.top({code:t,name:e})),{PHANPY_TRANSLANG_INSTANCES:ki}=ip,lr=ki?ki.split(/\s+/):[],Vs=Ji({limit:1,interval:2e3}),Hs=1e3*60*60;let Bo=0;function ap(t,e,n){return qm(()=>{let i=lr[Bo];const a=t.length>2e3;let s;return a?s=fetch(`https://${i}/api/v1/translate`,{method:"POST",priority:"low",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/json"},body:JSON.stringify({sl:e,tl:n,text:t})}):s=fetch(`https://${i}/api/v1/translate?sl=${encodeURIComponent(e)}&tl=${encodeURIComponent(n)}&text=${encodeURIComponent(t)}`,{priority:"low",referrerPolicy:"no-referrer"}),s.then(c=>{if(!c.ok)throw new Error(c.statusText);return c.json()}).then(c=>({provider:"translang",content:c.translated_text,detectedSourceLanguage:c.detected_language,pronunciation:c.pronunciation}))},{retries:3,onFailedAttempt:i=>{Bo=(Bo+1)%lr.length}})}const Ks=lo(ap,{maxAge:Hs}),cp=lo(Vs(Ks),{maxAge:Hs}),lp=Vs(Ym);function up({forceTranslate:t,sourceLanguage:e,onTranslate:n,text:o="",mini:i,autoDetected:a}){const{_:s}=te(),c=Ss(!0),[l,h]=U("default"),[d,u]=U(null),[f,m]=U(null),[p,g]=U(null),v=N(),E=e?dn(e):null,w=dn(c),A=N("auto");n||(n=async(...y)=>{if(Gm){const b=await lp(...y);if(b&&!b.error)return b}return i?await cp(...y):await Ks(...y)});const T=async()=>{h("loading");try{const{content:y,detectedSourceLanguage:b,provider:I,error:L,...x}=await n(o,A.current,c);if(y){if(b){const C=dn(b);g(C)}if(I==="translang"){const C=x?.pronunciation;C&&u(C)}m(y),h("default"),!i&&y.trim()!==o.trim()&&(v.current.open=!0,v.current.scrollIntoView({behavior:"smooth",block:"nearest"}))}else h("error")}catch{h("error")}};return X(()=>{t&&T()},[t]),i?f&&f.trim()!==o.trim()&&p!==w?r(zs,{children:r("div",{class:"status-translation-block-mini",children:[r(D,{icon:"translate",alt:s({id:"zVJKbG",values:{sourceLangText:E}})}),r("output",{lang:c,dir:"auto",title:d||"",children:f})]})}):null:r("div",{class:"status-translation-block",onClick:y=>{y.preventDefault()},children:r("details",{ref:v,children:[r("summary",{children:r("button",{type:"button",onClick:async y=>{y.preventDefault(),y.stopPropagation(),v.current.open=!v.current.open,l!=="loading"&&(f||T())},children:[r(D,{icon:"translate"})," ",r("span",{children:s(l==="loading"?{id:"Zxkt/v"}:e&&E&&!p?a?{id:"R20Yf9",values:{sourceLangText:E}}:{id:"h8zDAI",values:{sourceLangText:E}}:{id:"pi8x/S"})})]})}),r("div",{class:"translated-block",children:[r("div",{class:"translation-info insignificant",children:[r("select",{class:"translated-source-select",disabled:l==="loading",onChange:y=>{A.current=y.target.value,T()},children:sp.map(y=>{const b=dn({code:y.code,fallback:y.name}),I=dn({code:y.code,locale:y.code}),L=I&&b!==I;return r("option",{value:y.code,children:y.code==="auto"?s({id:"Bze3gr",values:{0:p??"…"}}):L?`${I} - ${b}`:b})})})," ",r("span",{children:["→ ",w]}),r(ts,{abrupt:!0,hidden:l!=="loading"})]}),l==="error"?r("p",{class:"ui-state",children:r(P,{id:"m5LihO"})}):!!f&&r(B,{children:[r("output",{class:"translated-content",lang:c,dir:"auto",children:f}),!!d&&r("output",{class:"translated-pronunciation-content",tabIndex:-1,onClick:y=>{y.target.classList.toggle("expand")},children:d})]})]})]})})}const dp=lr?.length?up:()=>null;function be(t){return new Promise((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)})}function js(t,e){let n;const o=()=>{if(n)return n;const i=indexedDB.open(t);return i.onupgradeneeded=()=>i.result.createObjectStore(e),n=be(i),n.then(a=>{a.onclose=()=>n=void 0},()=>{}),n};return(i,a)=>o().then(s=>a(s.transaction(e,i).objectStore(e)))}let zo;function $e(){return zo||(zo=js("keyval-store","keyval")),zo}function hp(t,e=$e()){return e("readonly",n=>be(n.get(t)))}function fp(t,e,n=$e()){return n("readwrite",o=>(o.put(e,t),be(o.transaction)))}function mp(t,e=$e()){return e("readonly",n=>Promise.all(t.map(o=>be(n.get(o)))))}function pp(t,e=$e()){return e("readwrite",n=>(n.delete(t),be(n.transaction)))}function gp(t,e=$e()){return e("readwrite",n=>(t.forEach(o=>n.delete(o)),be(n.transaction)))}function vp(t=$e()){return t("readwrite",e=>(e.clear(),be(e.transaction)))}function _p(t,e){return t.openCursor().onsuccess=function(){this.result&&(e(this.result),this.result.continue())},be(t.transaction)}function yp(t=$e()){return t("readonly",e=>{if(e.getAllKeys)return be(e.getAllKeys());const n=[];return _p(e,o=>n.push(o.key)).then(()=>n)})}function Ci(t,e){const n=js(t,e);return{set:(o,i)=>fp(o,i,n),get:o=>hp(o,n),getMany:o=>mp(o,n),del:o=>pp(o,n),delMany:o=>gp(o,n),clear:()=>vp(n),keys:()=>yp(n)}}const Pv={drafts:Ci("drafts-db","drafts-store"),catchup:Ci("catchup-db","catchup-store")};class qt extends HTMLElement{constructor(){super(),this.isIframeLoaded=!1,this.setupDom()}static get observedAttributes(){return["videoid","playlistid","videoplay","videotitle"]}connectedCallback(){this.addEventListener("pointerover",()=>qt.warmConnections(this),{once:!0}),this.addEventListener("click",()=>this.addIframe())}get videoId(){return encodeURIComponent(this.getAttribute("videoid")||"")}set videoId(e){this.setAttribute("videoid",e)}get playlistId(){return encodeURIComponent(this.getAttribute("playlistid")||"")}set playlistId(e){this.setAttribute("playlistid",e)}get videoTitle(){return this.getAttribute("videotitle")||"Video"}set videoTitle(e){this.setAttribute("videotitle",e)}get videoPlay(){return this.getAttribute("videoplay")||"Play"}set videoPlay(e){this.setAttribute("videoplay",e)}get videoStartAt(){return this.getAttribute("videoStartAt")||"0"}get autoLoad(){return this.hasAttribute("autoload")}get autoPause(){return this.hasAttribute("autopause")}get noCookie(){return this.hasAttribute("nocookie")}get posterQuality(){return this.getAttribute("posterquality")||"hqdefault"}get posterLoading(){return this.getAttribute("posterloading")||"lazy"}get params(){return`start=${this.videoStartAt}&${this.getAttribute("params")}`}set params(e){this.setAttribute("params",e)}set posterQuality(e){this.setAttribute("posterquality",e)}get disableNoscript(){return this.hasAttribute("disablenoscript")}setupDom(){const e=this.attachShadow({mode:"open"});let n="";window.liteYouTubeNonce&&(n=`nonce="${window.liteYouTubeNonce}"`),e.innerHTML=` + +
+ + + + + + + + +
+ `,this.domRefFrame=e.querySelector("#frame"),this.domRefImg={fallback:e.querySelector("#fallbackPlaceholder"),webp:e.querySelector("#webpPlaceholder"),jpeg:e.querySelector("#jpegPlaceholder")},this.domRefPlayButton=e.querySelector("#playButton")}setupComponent(){this.shadowRoot.querySelector("slot[name=image]").assignedNodes().length===0&&this.initImagePlaceholder(),this.domRefPlayButton.setAttribute("aria-label",`${this.videoPlay}: ${this.videoTitle}`),this.setAttribute("title",`${this.videoPlay}: ${this.videoTitle}`),(this.autoLoad||this.isYouTubeShort()||this.autoPause)&&this.initIntersectionObserver(),this.disableNoscript||this.injectSearchNoScript()}attributeChangedCallback(e,n,o){n!==o&&(this.setupComponent(),this.domRefFrame.classList.contains("activated")&&(this.domRefFrame.classList.remove("activated"),this.shadowRoot.querySelector("iframe").remove(),this.isIframeLoaded=!1))}injectSearchNoScript(){const e=document.createElement("noscript");this.prepend(e),e.innerHTML=this.generateIframe()}generateIframe(e=!1){let n=e?0:1,o=this.autoPause?"&enablejsapi=1":"";const i=this.noCookie?"-nocookie":"";let a;return this.playlistId?a=`?listType=playlist&list=${this.playlistId}&`:a=`${this.videoId}?`,this.isYouTubeShort()&&(this.params=`loop=1&mute=1&modestbranding=1&playsinline=1&rel=0&enablejsapi=1&playlist=${this.videoId}`,n=1),` +`}addIframe(e=!1){if(!this.isIframeLoaded){const n=this.generateIframe(e);this.domRefFrame.insertAdjacentHTML("beforeend",n),this.domRefFrame.classList.add("activated"),this.isIframeLoaded=!0,this.attemptShortAutoPlay(),this.dispatchEvent(new CustomEvent("liteYoutubeIframeLoaded",{detail:{videoId:this.videoId},bubbles:!0,cancelable:!0}))}}initImagePlaceholder(){this.testPosterImage(),this.domRefImg.fallback.setAttribute("aria-label",`${this.videoPlay}: ${this.videoTitle}`),this.domRefImg?.fallback?.setAttribute("alt",`${this.videoPlay}: ${this.videoTitle}`)}async testPosterImage(){setTimeout(()=>{const e=`https://i.ytimg.com/vi_webp/${this.videoId}/${this.posterQuality}.webp`,n=new Image;n.fetchPriority="low",n.referrerPolicy="origin",n.src=e,n.onload=async o=>{const i=o.target;i?.naturalHeight==90&&i?.naturalWidth==120&&(this.posterQuality="hqdefault");const s=`https://i.ytimg.com/vi_webp/${this.videoId}/${this.posterQuality}.webp`;this.domRefImg.webp.srcset=s;const c=`https://i.ytimg.com/vi/${this.videoId}/${this.posterQuality}.jpg`;this.domRefImg.fallback.loading=this.posterLoading,this.domRefImg.jpeg.srcset=c,this.domRefImg.fallback.src=c,this.domRefImg.fallback.loading=this.posterLoading}},100)}initIntersectionObserver(){const e={root:null,rootMargin:"0px",threshold:0};new IntersectionObserver((o,i)=>{o.forEach(a=>{a.isIntersecting&&!this.isIframeLoaded&&(qt.warmConnections(this),this.addIframe(!0),i.unobserve(this))})},e).observe(this),this.autoPause&&new IntersectionObserver((i,a)=>{i.forEach(s=>{s.intersectionRatio!==1&&this.shadowRoot.querySelector("iframe")?.contentWindow?.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")})},{threshold:1}).observe(this)}attemptShortAutoPlay(){this.isYouTubeShort()&&setTimeout(()=>{this.shadowRoot.querySelector("iframe")?.contentWindow?.postMessage('{"event":"command","func":"playVideo","args":""}',"*")},2e3)}isYouTubeShort(){return this.getAttribute("short")===""&&window.matchMedia("(max-width: 40em)").matches}static addPrefetch(e,n){const o=document.createElement("link");o.rel=e,o.href=n,o.crossOrigin="true",document.head.append(o)}static warmConnections(e){qt.isPreconnected||window.liteYouTubeIsPreconnected||(qt.addPrefetch("preconnect","https://i.ytimg.com/"),qt.addPrefetch("preconnect","https://s.ytimg.com"),e.noCookie?qt.addPrefetch("preconnect","https://www.youtube-nocookie.com"):(qt.addPrefetch("preconnect","https://www.youtube.com"),qt.addPrefetch("preconnect","https://www.google.com"),qt.addPrefetch("preconnect","https://googleads.g.doubleclick.net"),qt.addPrefetch("preconnect","https://static.doubleclick.net")),qt.isPreconnected=!0,window.liteYouTubeIsPreconnected=!0)}}qt.isPreconnected=!1;customElements.define("lite-youtube",qt);const Us=new Uint8Array(128);for(let t=0;t<83;t++)Us["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~".charCodeAt(t)]=t;const Jn=(t,e,n)=>{let o=0;for(;et>10.31475?Ws(t/qs+.052132,2.4):t/Zs,Vo=t=>~~(t>1227e-8?qs*Ws(t,.416666)-13.025:t*Zs+1),vn=t=>(t<0?-1:1)*t*t,Si=t=>{for(t+=kn/2;t>kn;)t-=bp;const e=1.27323954*t-.405284735*vn(t);return .225*(vn(e)-e)+e};function Dr(t){const e=Jn(t,2,6);return[e>>16,e>>8&255,e&255]}function Ep(t,e,n,o){const i=Jn(t,0,1),a=i%9+1,s=~~(i/9)+1,c=a*s;let l=0,h=0,d=0,u=0,f=0,m=0,p=0,g=0,v=0,E=0,w=0,A=0;const T=(Jn(t,1,2)+1)/13446*(o|1),y=new Float64Array(c*3),b=Dr(t);for(l=0;l<3;l++)y[l]=wp(b[l]);for(l=1;l{const o=n.char||" ",i=n.count||2;let a=0;const s=[];return e.reverse().reduce((c,l)=>{s.length&&a&&s[a]&&s[a]===l.substring(1,s[a].length+1)&&(s.splice(a,1),a--);const d=[`${o.repeat(a?a*i:0)}${l}`,...c];return l.substring(0,2)==="n.trim().replace(/(^(\s|\t)+|(( |\t)+)$)/gm,"");return Ko={mergeAttributesWithElements:n=>{const o=t(n).split(` +`),i=[];let a="";for(let s=0;s")){i.push(`${a}${c.slice(0,-2)} />`),a="";continue}if(c.endsWith(">")){i.push(`${a}${c.startsWith(">")||c.startsWith("<")?"":" "}${c}`),a="";continue}a+=a.length?` ${c}`:c}return i},removeEmptyLines:t},Ko}var jo,Li;function kp(){if(Li)return jo;Li=1;const t=Tp(),{mergeAttributesWithElements:e}=Ap();return jo=(o,i={})=>{const a=e(o);return t(a,i)},jo}var Cp=kp();const Sp=yr(Cp);function xp({poll:t,lang:e,readOnly:n,refresh:o=()=>{},votePoll:i=()=>{}}){const{_:a}=te(),[s,c]=U("default"),{expired:l,expiresAt:h,id:d,multiple:u,options:f,ownVotes:m,voted:p,votersCount:g,votesCount:v=0,emojis:E}=t,w=!!h&&new Date(h),A=u&&g||v;let T=0;A<=1e3?T=0:A<=1e4?T=1:A<=1e5&&(T=2);const[y,b]=U(!1),I=f.every(L=>L.votesCount!==null);return r("div",{lang:e,dir:"auto",class:`poll ${n?"read-only":""} ${s==="loading"?"loading":""}`,children:[y&&I||p||l?r(B,{children:[r("div",{class:"poll-options",children:f.map((L,x)=>{const{title:C,votesCount:O}=L,M=A?O/A:0,R=M?M.toLocaleString(It.locale||void 0,{style:"percent",maximumFractionDigits:T}):"0%",S=O>0&&O===Math.max(...f.map(Z=>Z.votesCount));return r("div",{class:`poll-option poll-result ${S?"poll-option-leading":""}`,style:{"--percentage":`${M*100}%`},children:[r("div",{class:"poll-option-title",children:[r("span",{children:r(Xe,{text:C,emojis:E})}),p&&m.includes(x)&&r(B,{children:[" ",r(D,{icon:"check-circle",alt:a({id:"IeO7us"})})]})]}),r("div",{class:"poll-option-votes",title:It._({id:"+syLpm",values:{optionVotesCount:O}}),children:R})]},`${x}-${C}-${O}`)})}),!l&&!p&&r("button",{class:"poll-vote-button plain2",disabled:s==="loading",onClick:L=>{L.preventDefault(),b(!1)},children:[r(D,{icon:"arrow-left",size:"s"})," ",r(P,{id:"L96xSt"})]})]}):r("form",{onSubmit:async L=>{L.preventDefault();const x=L.target,C=new FormData(x),O=[];C.forEach((M,R)=>{R==="poll"&&O.push(M)}),O.length&&(c("loading"),await i(O),c("default"))},children:[r("div",{class:"poll-options",children:f.map((L,x)=>{const{title:C}=L;return r("div",{class:"poll-option",children:r("label",{class:"poll-label",children:[r("input",{type:u?"checkbox":"radio",name:"poll",value:x,disabled:s==="loading",readOnly:n}),r("span",{class:"poll-option-title",children:r(Xe,{text:C,emojis:E})})]})})})}),!n&&r("button",{class:"poll-vote-button",type:"submit",disabled:s==="loading",children:r(P,{id:"lQXQKs"})})]}),r("p",{class:"poll-meta",children:[!l&&!n&&r("button",{type:"button",class:"plain small",disabled:s==="loading",onClick:L=>{L.preventDefault(),c("loading"),(async()=>(await o(),c("default")))()},title:a({id:"lCF0wC"}),children:r(D,{icon:"refresh",alt:a({id:"lCF0wC"})})}),!p&&!l&&!n&&I&&r("button",{type:"button",class:"plain small",disabled:s==="loading",onClick:L=>{L.preventDefault(),b(!y)},title:a(y?{id:"L96xSt"}:{id:"zCjei3"}),children:[r(D,{icon:y?"eye-open":"eye-close",alt:a(y?{id:"L96xSt"}:{id:"zCjei3"})})," "]}),!l&&!n&&" ",r(P,{id:"k7v0Rh",values:{0:pe(v),1:pe(v),votesCount:v},components:{0:r("span",{title:v}),1:r("span",{title:v})}}),!!g&&g!==v&&r(B,{children:[" ","•"," ",r(P,{id:"jf1i1L",values:{0:pe(g),1:pe(g),votersCount:g},components:{0:r("span",{title:g}),1:r("span",{title:g})}})]})," ","•"," ",l?w?r(P,{id:"5LwCCI",components:{0:r(ge,{datetime:w})}}):a({id:"237hSL"}):w?r(P,{id:"ooHDPY",components:{0:r(ge,{datetime:w})}}):a({id:"O2tNG0"})]})]})}const Mr=ye();function Ip(t,e){if(!t?.length)return!1;const n=t.filter(s=>{const{filter:c}=s,l=c.context.includes(e);return l?c.expiresAt?new Date(c.expiresAt)>new Date:l:!1});if(!n.length)return!1;if(n.some(s=>s.filter.filterAction==="hide"))return{action:"hide"};if(n.every(s=>s.filter.filterAction==="blur")){const s=n.map(c=>c.filter.title);return{action:"blur",titles:s,titlesStr:s.join(" • ")}}if(n.some(s=>!!s.filter.filterAction)){const s=n.map(c=>c.filter.title);return{action:"warn",titles:s,titlesStr:s.join(" • ")}}return!1}const mo=kt(Ip);function Lp(t,e,n){const{filtered:o}=t;if(!o?.length||n&&t.account?.id===n)return!0;const a=mo(o,e);return a?a.action!=="hide":!0}function Rv(t,e){if(!t?.length)return[];if(!e)return t;const n=wr();return t.filter(o=>Lp(o,e,n))}function Di(t){try{return $s.toUnicode(URL.parse(t).hostname.replace(/^www\./,"").replace(/\/$/,""))}catch{return""}}const Uo=document.createElement("div");function Wo(t){return t?(Uo.innerHTML=t,Uo.querySelectorAll(".invisible").forEach(e=>{e.remove()}),Uo.innerText.length):0}const ur="speechSynthesis"in window;function Dp(t,e){if(ur)try{speechSynthesis.speaking&&speechSynthesis.cancel();const n=new SpeechSynthesisUtterance(t);e&&(n.lang=e),speechSynthesis.speak(n)}catch(n){alert(n)}}function Mp(t,e,n,o){var i=this,a=N(null),s=N(0),c=N(0),l=N(null),h=N([]),d=N(),u=N(),f=N(t),m=N(!0);f.current=t;var p=typeof window<"u",g=!e&&e!==0&&p;if(typeof t!="function")throw new TypeError("Expected a function");e=+e||0;var v=!!(n=n||{}).leading,E=!("trailing"in n)||!!n.trailing,w="maxWait"in n,A="debounceOnServer"in n&&!!n.debounceOnServer,T=w?Math.max(+n.maxWait||0,e):null;X(function(){return m.current=!0,function(){m.current=!1}},[]);var y=ot(function(){var b=function(R){var S=h.current,Z=d.current;return h.current=d.current=null,s.current=R,c.current=c.current||R,u.current=f.current.apply(Z,S)},I=function(R,S){g&&cancelAnimationFrame(l.current),l.current=g?requestAnimationFrame(R):setTimeout(R,S)},L=function(R){if(!m.current)return!1;var S=R-a.current;return!a.current||S>=e||S<0||w&&R-s.current>=T},x=function(R){return l.current=null,E&&h.current?b(R):(h.current=d.current=null,u.current)},C=function R(){var S=Date.now();if(v&&c.current===s.current&&O(),L(S))return x(S);if(m.current){var Z=e-(S-a.current),H=w?Math.min(Z,T-(S-s.current)):Z;I(R,H)}},O=function(){o&&o({})},M=function(){if(p||A){var R=Date.now(),S=L(R);if(h.current=[].slice.call(arguments),d.current=i,a.current=R,S){if(!l.current&&m.current)return s.current=a.current,I(C,e),v?b(a.current):u.current;if(w)return I(C,e),b(a.current)}return l.current||I(C,e),u.current}};return M.cancel=function(){l.current&&(g?cancelAnimationFrame(l.current):clearTimeout(l.current)),s.current=0,h.current=a.current=d.current=l.current=null},M.isPending=function(){return!!l.current},M.flush=function(){return l.current?x(Date.now()):u.current},M},[v,w,e,T,E,g,p,A,o]);return y}function Pp(t,e,n){var o=n===void 0?{}:n,i=o.leading,a=o.trailing;return Mp(t,e,{maxWait:e,leading:i===void 0||i,trailing:a===void 0||a})}function Rp(t,e){var n=N(null),o=N(null);o.current=e;var i=N(null);X(function(){a()});var a=_t(function(){var s=i.current,c=o.current,l=s||(c?c instanceof Element?c:c.current:null);n.current&&n.current.element===l&&n.current.subscriber===t||(n.current&&n.current.cleanup&&n.current.cleanup(),n.current={element:l,subscriber:t,cleanup:l?t(l):void 0})},[t]);return X(function(){return function(){n.current&&n.current.cleanup&&(n.current.cleanup(),n.current=null)}},[]),_t(function(s){i.current=s,a()},[a])}function Mi(t,e,n){return t[e]?t[e][0]?t[e][0][n]:t[e][n]:e==="contentBoxSize"?t.contentRect[n==="inlineSize"?"width":"height"]:void 0}function Op(t){t===void 0&&(t={});var e=t.onResize,n=N(void 0);n.current=e;var o=t.round||Math.round,i=N(),a=U({width:void 0,height:void 0}),s=a[0],c=a[1],l=N(!1);X(function(){return l.current=!1,function(){l.current=!0}},[]);var h=N({width:void 0,height:void 0}),d=Rp(_t(function(u){return(!i.current||i.current.box!==t.box||i.current.round!==o)&&(i.current={box:t.box,round:o,instance:new ResizeObserver(function(f){var m=f[0],p=t.box==="border-box"?"borderBoxSize":t.box==="device-pixel-content-box"?"devicePixelContentBoxSize":"contentBoxSize",g=Mi(m,p,"inlineSize"),v=Mi(m,p,"blockSize"),E=g?o(g):void 0,w=v?o(v):void 0;if(h.current.width!==E||h.current.height!==w){var A={width:E,height:w};h.current.width=E,h.current.height=w,n.current?n.current(A):l.current||c(A)}})}),i.current.instance.observe(u,{box:t.box}),function(){i.current&&i.current.instance.unobserve(u)}},[t.box,o]),t.ref);return ot(function(){return{ref:d,width:s.width,height:s.height}},[d,s.width,s.height])}function to({className:t="truncated"}={}){const e=N(),n=Pp(({height:o})=>{if(e.current){const{scrollHeight:i}=e.current;let a=i>o;if(a){const{height:s,maxHeight:c}=getComputedStyle(e.current),l=parseInt(c||s,10);a=i>l}e.current.classList.toggle(t,a)}},300);return Op({ref:e,box:"border-box",onResize:n}),e}const _n={public:"earth",unlisted:"group",private:"lock",direct:"message",local:"building"};var Gs="kvfysmfp",Ys="ufhsfnkm",$p=".".concat(Gs,"{overflow:hidden;touch-action:none}.").concat(Ys,"{transform-origin: 0 0}"),Np=typeof window>"u",Fp=function(){return!Np&&("ontouchstart"in window||navigator.maxTouchPoints>0)};var Bp=function(t){var e=t.x,n=t.y,o=t.scale;return"scale3d(".concat(o,",").concat(o,", 1) translate3d(").concat(e,"px, ").concat(n,"px, 0)")};var zp=Math.min,Vp=Math.max;function Pi(t){var e=t.containerDimension,n=t.childDimension,o=t.padding,i=t.centerContained,a=n-e;return a+2*o<=0&&i?[a/2,a/2]:[zp(a+o,0)-o,Vp(0,a+o)]}var Ri=function(t,e){return e?"".concat(t," ").concat(e):t},Zn=Math.abs,Hp=Math.min,Kp=Math.sqrt,Xs=typeof window>"u",jp=Xs?!1:/(Mac)/i.test(navigator.platform),He=function(t){return t==="drag"},hn=function(t){return t==="zoom"},Up=function(t){return jp&&t.ctrlKey},fn=function(t){t.stopPropagation(),t.preventDefault()},Oi=function(t,e){var n=t.x-e.x,o=t.y-e.y;return Kp(n*n+o*o)},Wp=function(t,e){var n=Oi(t[0],t[1]),o=Oi(e[0],e[1]);return o/n},Zp=function(t,e){return t>e-.01&&te?e:n},Xp=function(t){return!(t.ctrlKey||t.metaKey)},Qp=function(t){if(t){var e=t.offsetWidth,n=t.offsetHeight;if(e&&n)return{width:e,height:n};var o=getComputedStyle(t),i=parseFloat(o.width),a=parseFloat(o.height);if(a&&i)return{width:i,height:a}}return{width:0,height:0}},Jp=function(t,e){return{x:e.x-t.x,y:e.y-t.y}},tg=function(t,e){return t.x===e.x&&t.y===e.y},Le=function(){},Gn={x:0,y:0},Ni=function(t){Ka(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n._prevDragMovePoint=null,n._containerObserver=null,n._fingers=0,n._firstMove=!0,n._initialOffset=$t({},Gn),n._interaction=null,n._isDoubleTap=!1,n._isOffsetsSet=!1,n._lastDragPosition=null,n._lastScale=1,n._lastTouchStart=0,n._lastZoomCenter=null,n._listenMouseMove=!1,n._nthZoom=0,n._offset=$t({},Gn),n._startOffset=$t({},Gn),n._startTouches=null,n._updatePlaned=!1,n._wheelTimeOut=null,n._zoomFactor=1,n._initialZoomFactor=1,n._draggingPoint=$t({},Gn),n._ignoreNextClick=!1,n._containerRef=ja(),n._handleClick=function(o){n._ignoreNextClick&&(n._ignoreNextClick=!1,o.stopPropagation())},n._onResize=function(){var o;!((o=n._containerRef)===null||o===void 0)&&o.current&&(n._updateInitialZoomFactor(),n._setupOffsets(),n._update())},n._handlerOnTouchEnd=n._handlerIfEnable(function(o){n._fingers=o.touches.length,n.props.shouldCancelHandledTouchEndEvents&&(hn(n._interaction)||He(n._interaction)&&(n._startOffset.x!==n._offset.x||n._startOffset.y!==n._offset.y))&&fn(o),He(n._interaction)&&!n._enoughToDrag()&&n._handleClick(o),n._updateInteraction(o)}),n._handlerOnTouchStart=n._handlerIfEnable(function(o){n._firstMove=!0,n._fingers=o.touches.length,n._detectDoubleTap(o)}),n._handlerOnTouchMove=n._handlerIfEnable(function(o){n._isDoubleTap||(n._collectInertia(o),n._firstMove?(n._updateInteraction(o),n._interaction&&fn(o),n._startOffset=$t({},n._offset),n._startTouches=qn(o.touches)):(hn(n._interaction)?n._startTouches&&n._startTouches.length===2&&o.touches.length===2&&n._handleZoom(o,Wp(n._startTouches,qn(o.touches))):He(n._interaction)&&n._handleDrag(o),n._interaction&&(fn(o),n._update())),n._firstMove=!1)}),n._handlerWheel=function(o){if(!n.props.shouldInterceptWheel(o)){fn(o);var i=o.pageX,a=o.pageY,s=o.deltaY,c=o.deltaMode,l=1;(Up(o)||c===1)&&(l=15);var h={touches:[{pageX:i,pageY:a}]},d=n._getOffsetByFirstTouch(h),u=s*l;n._stopAnimation(),n._scaleTo(n._zoomFactor-u/n.props.wheelScaleFactor,d),n._update(),clearTimeout(n._wheelTimeOut),n._wheelTimeOut=setTimeout(function(){return n._sanitize()},100)}},n._handlers=n.props.isTouch()?[["touchstart",n._handlerOnTouchStart],["touchend",n._handlerOnTouchEnd],["touchmove",n._handlerOnTouchMove]]:[["mousemove",n.simulate(n._handlerOnTouchMove),n.props._document],["mouseup",n.simulate(n._handlerOnTouchEnd),n.props._document],["mousedown",n.simulate(n._handlerOnTouchStart)],["click",n._handleClick],["wheel",n._handlerWheel]],n}return e.prototype._handleDragStart=function(n){this._ignoreNextClick=!0,this.props.onDragStart(),this._stopAnimation(),this._resetInertia(),this._lastDragPosition=null,this._hasInteraction=!0,this._draggingPoint=this._offset,this._handleDrag(n)},e.prototype._handleDrag=function(n){var o=this._getOffsetByFirstTouch(n);this._enoughToDrag()?this._drag(o,this._lastDragPosition):this._virtualDrag(o,this._lastDragPosition),this._offset=this._sanitizeOffset(this._offset),this._lastDragPosition=o},e.prototype._resetInertia=function(){this._velocity=null,this._prevDragMovePoint=null},e.prototype._realizeInertia=function(){var n=this,o=this.props,i=o.inertiaFriction,a=o.inertia;if(!(!a||!this._velocity)){var s=this._velocity,c=s.x,l=s.y;if(c||l){this._stopAnimation(),this._resetInertia();var h=function(){if(c*=i,l*=i,!c&&!l)return n._stopAnimation();var d=$t({},n._offset);if(n._addOffset({x:c,y:l}),n._offset=n._sanitizeOffset(n._offset),tg(d,n._offset))return n._stopAnimation();n._update({isAnimation:!0})};this._animate(h,{duration:9999})}}},e.prototype._collectInertia=function(n){var o=n.touches;if(this.props.inertia){var i=qn(o)[0],a=this._prevDragMovePoint;a&&(this._velocity=Jp(i,a)),this._prevDragMovePoint=i}},e.prototype._handleDragEnd=function(){this.props.onDragEnd(),this._end(),this._realizeInertia()},e.prototype._handleZoomStart=function(){this.props.onZoomStart(),this._stopAnimation(),this._lastScale=1,this._nthZoom=0,this._lastZoomCenter=null,this._hasInteraction=!0},e.prototype._handleZoom=function(n,o){var i=Yp(this._getOffsetTouches(n)),a=o/this._lastScale;this._lastScale=o,this._nthZoom+=1,this._nthZoom>3&&(this._scale(a,i),this._drag(i,this._lastZoomCenter),this.props.enforceBoundsDuringZoom&&(this._offset=this._sanitizeOffset(this._offset))),this._lastZoomCenter=i},e.prototype._handleZoomEnd=function(){this.props.onZoomEnd(),this._end()},e.prototype._handleDoubleTap=function(n){var o=this;if(!(this._hasInteraction||this.props.tapZoomFactor===0)){var i=this.props.doubleTapZoomOutOnMaxScale&&this._zoomFactor===this.props.maxZoom||this.props.doubleTapToggleZoom&&this._zoomFactor>1;this.props.onDoubleTap(),this._ignoreNextClick=!0;var a=this._zoomFactor+this.props.tapZoomFactor,s=this._zoomFactor,c=function(h){o._scaleTo(s+h*(a-s),l)},l=this._getOffsetByFirstTouch(n);this._isDoubleTap=!0,s>a&&(l=this._getCurrentZoomCenter()),i?this._zoomOutAnimation():this._animate(c)}},e.prototype._computeInitialOffset=function(){var n=this._getContainerRect(),o=this._getChildSize(),i=o.width,a=o.height,s=-Zn(i*this._getInitialZoomFactor()-n.width)/2,c=-Zn(a*this._getInitialZoomFactor()-n.height)/2;this._initialOffset={x:s,y:c}},e.prototype._resetOffset=function(){this._offset=$t({},this._initialOffset)},e.prototype._setupOffsets=function(){this.props.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this._computeInitialOffset(),this._resetOffset())},e.prototype._sanitizeOffset=function(n){var o=this._getContainerRect(),i=this._getChildSize(),a=i.width,s=i.height,c=a*this._getInitialZoomFactor()*this._zoomFactor,l=s*this._getInitialZoomFactor()*this._zoomFactor,h=Pi({containerDimension:o.width,childDimension:c,padding:this.props.horizontalPadding,centerContained:this.props.centerContained}),d=h[0],u=h[1],f=Pi({containerDimension:o.height,childDimension:l,padding:this.props.verticalPadding,centerContained:this.props.centerContained}),m=f[0],p=f[1];return{x:Zo(d,u,n.x),y:Zo(m,p,n.y)}},e.prototype.alignCenter=function(n){var o=this,i=$t({duration:250,animated:!0},n),a=i.x,s=i.y,c=i.scale,l=i.animated,h=i.duration,d=a*this._initialZoomFactor,u=s*this._initialZoomFactor,f=this._zoomFactor,m=$t({},this._offset),p=this._getContainerRect(),g={x:p.width/2,y:p.height/2};if(this._zoomFactor=1,this._offset={x:-(g.x-d),y:-(g.y-u)},this._scaleTo(c,g),this._stopAnimation(),!l)return this._update();var v=this._zoomFactor-f,E={x:this._offset.x-m.x,y:this._offset.y-m.y};this._zoomFactor=f,this._offset=$t({},m);var w=function(A){var T=m.x+E.x*A,y=m.y+E.y*A;o._zoomFactor=f+v*A,o._offset=o._sanitizeOffset({x:T,y}),o._update()};this._animate(w,{callback:function(){return o._sanitize()},duration:h})},e.prototype.scaleTo=function(n){var o=this,i=$t({duration:250,animated:!0},n),a=i.x,s=i.y,c=i.scale,l=i.animated,h=i.duration,d=this._zoomFactor,u=$t({},this._offset);if(this._zoomFactor=1,this._offset={x:0,y:0},this._scaleTo(c,{x:a,y:s}),this._stopAnimation(),!l)return this._update();var f=this._zoomFactor-d,m={x:this._offset.x-u.x,y:this._offset.y-u.y};this._zoomFactor=d,this._offset=$t({},u);var p=function(g){var v=u.x+m.x*g,E=u.y+m.y*g;o._zoomFactor=d+f*g,o._offset={x:v,y:E},o._update()};this._animate(p,{callback:function(){return o._sanitize()},duration:h})},e.prototype._scaleTo=function(n,o){this._scale(n/this._zoomFactor,o),this._offset=this._sanitizeOffset(this._offset)},e.prototype._scale=function(n,o){n=this._scaleZoomFactor(n),this._addOffset({x:(n-1)*(o.x+this._offset.x),y:(n-1)*(o.y+this._offset.y)}),this.props.onZoomUpdate()},e.prototype._scaleZoomFactor=function(n){var o=this._zoomFactor;return this._zoomFactor*=n,this._zoomFactor=Zo(this.props.minZoom,this.props.maxZoom,this._zoomFactor),this._zoomFactor/o},e.prototype._canDrag=function(){return this.props.draggableUnZoomed||!Zp(this._zoomFactor,1)},e.prototype._drag=function(n,o){if(o){var i=-(n.y-o.y),a=-(n.x-o.x);this.props.lockDragAxis?Zn(a)>Zn(i)?this._addOffset({x:a,y:0}):this._addOffset({y:i,x:0}):this._addOffset({x:a,y:i}),this.props.onDragUpdate()}},e.prototype._virtualDrag=function(n,o){if(o){var i=-(n.y-o.y),a=-(n.x-o.x);this._draggingPoint={x:a+this._draggingPoint.x,y:i+this._draggingPoint.y}}},e.prototype._addOffset=function(n){var o=this._offset,i=o.x,a=o.y;this._offset={x:i+n.x,y:a+n.y}},e.prototype._sanitize=function(){this._zoomFactor=h?(n(1),i._stopAnimation(),l(),i._update()):(f=c(f),n(f),i._update({isAnimation:!0}),requestAnimationFrame(d))}};this._inAnimation=!0,requestAnimationFrame(d)},e.prototype._stopAnimation=function(){this._inAnimation=!1},e.prototype._end=function(){this._hasInteraction=!1,this._sanitize(),this._update()},e.prototype._getContainerRect=function(){var n=this._containerRef.current;return n.getBoundingClientRect()},e.prototype._getChildSize=function(){var n=this._containerRef.current;return Qp(n?.firstElementChild)},e.prototype._updateInitialZoomFactor=function(){var n=this._getContainerRect(),o=this._getChildSize(),i=n.width/o.width,a=n.height/o.height;this._initialZoomFactor=Hp(i,a)},e.prototype._bindEvents=function(){var n=this,o=this._containerRef.current;window.ResizeObserver?(this._containerObserver=new ResizeObserver(this._onResize),this._containerObserver.observe(o)):window.addEventListener("resize",this._onResize),this._handlers.forEach(function(i){var a=i[0],s=i[1],c=i[2];(c||o).addEventListener(a,s,!0)}),Array.from(o.querySelectorAll("img")).forEach(function(i){return i.addEventListener("load",n._onResize)})},e.prototype._unSubscribe=function(){var n=this,o=this._containerRef.current;this._containerObserver&&(this._containerObserver.disconnect(),this._containerObserver=null),window.removeEventListener("resize",this._onResize),this._handlers.forEach(function(i){var a=i[0],s=i[1],c=i[2];(c||o).removeEventListener(a,s,!0)}),Array.from(o.querySelectorAll("img")).forEach(function(i){return i.removeEventListener("load",n._onResize)})},e.prototype._update=function(n){var o=this;if(!this._updatePlaned){var i=function(){var a=o._getInitialZoomFactor()*o._zoomFactor,s=-o._offset.x/a,c=-o._offset.y/a;o.props.onUpdate({scale:a,x:s,y:c})};if(n?.isAnimation)return i();this._updatePlaned=!0,requestAnimationFrame(function(){o._updatePlaned=!1,i()})}},e.prototype._handlerIfEnable=function(n){var o=this;return function(){for(var i=[],a=0;ao?n-o:o-n},e.prototype._enoughToDrag=function(){return this._distanceBetweenNumbers(this._startOffset.x,this._draggingPoint.x)>5||this._distanceBetweenNumbers(this._startOffset.y,this._draggingPoint.y)>5},e.prototype._updateInteraction=function(n){var o=this._fingers;if(o===2)return this._setInteraction("zoom",n);if(o===1&&this._canDrag())return this._setInteraction("drag",n);this._setInteraction(null,n)},e.prototype._detectDoubleTap=function(n){var o=new Date().getTime();this._fingers>1&&(this._lastTouchStart=0),o-this._lastTouchStart<300?(fn(n),this._handleDoubleTap(n),hn(this._interaction)?this._handleZoomEnd():He(this._interaction)&&this._handleDragEnd()):this._isDoubleTap=!1,this._fingers===1&&(this._lastTouchStart=o)},e.prototype.simulate=function(n){var o=this;return function(i){var a=i.pageX,s=i.pageY,c=i.type,l=c==="mouseup",h=c==="mousedown";h&&(i.preventDefault(),o._listenMouseMove=!0),o._listenMouseMove&&(i.touches=l?[]:[{pageX:a,pageY:s}],n(i)),l&&(o._listenMouseMove=!1)}},e.prototype.componentDidMount=function(){this._bindEvents(),this._update()},e.prototype.componentWillUnmount=function(){this._stopAnimation(),this._unSubscribe()},e.prototype.render=function(){var n=this.props,o=n.children,i=n.containerProps,a=Ua.only(o),s=i||{};return Bn.createElement(Bn.Fragment,null,Bn.createElement("style",null,$p),Bn.createElement("div",$t({},s,{ref:this._containerRef,className:Ri(Gs,s.className)}),Yi(a,{className:Ri(Ys,a.props.className)})))},e.defaultProps={animationDuration:250,draggableUnZoomed:!0,enforceBoundsDuringZoom:!1,centerContained:!1,enabled:!0,inertia:!0,inertiaFriction:.96,horizontalPadding:0,isTouch:Fp,lockDragAxis:!1,maxZoom:5,minZoom:.5,onDoubleTap:Le,onDragEnd:Le,onDragStart:Le,onDragUpdate:Le,onZoomEnd:Le,onZoomStart:Le,onZoomUpdate:Le,setOffsetsOnce:!1,shouldInterceptWheel:Xp,shouldCancelHandledTouchEndEvents:!1,tapZoomFactor:1,verticalPadding:0,wheelScaleFactor:1500,zoomOutFactor:1.3,doubleTapZoomOutOnMaxScale:!1,doubleTapToggleZoom:!1,_document:Xs?null:window.document},e}(Qi);if(0)var Ov,$v,Nv,Fv,Bv,zv,Vv;function qo(t){if(!t)return;let e=Math.floor(t/3600),n=Math.floor(t%3600/60),o=Math.round(t%60);return e===0?`${n}:${o.toString().padStart(2,"0")}`:`${e}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}const eg=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),ng="ALT",Go=t=>{const{_:e}=te(),{alt:n,lang:o,index:i,...a}=t;return!n||!n.trim()?null:r("button",{type:"button",class:"alt-badge clickable",...a,onClick:s=>{s.stopPropagation(),s.preventDefault(),W.showMediaAlt={alt:n,lang:o}},title:e({id:"5gfDMm"}),children:[ng,!!i&&r("sup",{children:i})]})},og=140,rg=280,Qs=kt(t=>t?.length?t.length>og||/[\n\r].*[\n\r]/.test(t.trim()):!1);function ig({class:t="",media:e,to:n,lang:o,showOriginal:i,autoAnimate:a,showCaption:s,allowLongerCaption:c,altIndex:l,checkAspectRatio:h=!0,onClick:d}){let{id:u,blurhash:f,description:m,meta:p,previewRemoteUrl:g,previewUrl:v,remoteUrl:E,url:w,type:A}=e;/no\-preview\./i.test(v)&&(v=null);const T=sg(u||f||w),{original:y={},small:b,focus:I}=p||{},L=i?y?.width:b?.width||y?.width,x=i?y?.height:b?.height||y?.height,C=i?w:v||w,O=i?E:g||E,M=b?.width&&b?.height,S=L&&x?L>x?"landscape":"portrait":null,Z=f?Dr(f):null,H=N();let ft;if(I){const z=(I.x+1)/2*100,Q=(1-I.y)/2*100;ft=`${z.toFixed(0)}% ${Q.toFixed(0)}%`}const G=N(),rt=_t(({x:z,y:Q,scale:F})=>{const{current:tt}=G;if(tt){const Qt=Bp({x:z,y:Q,scale:F});F===1?tt.style.removeProperty("transform"):tt.style.setProperty("transform",Qt),tt.closest(".media-zoom").style.touchAction=F<=1.01?"pan-x":""}},[]),[et,lt]=U(!1),Y={enabled:et,draggableUnZoomed:!1,inertiaFriction:.9,tapZoomFactor:2,doubleTapToggleZoom:!0,containerProps:{className:"media-zoom",style:{overflow:"visible"}},onUpdate:rt},[at,Lt]=U(!1),Rt=ot(()=>n&&!at?z=>r(qe,{to:n,...z}):"div",[n,at]),K=O?Fi(O):null,mt=A==="unknown"&&K&&/\.(mp4|m4r|m4v|mov|webm)$/i.test(K.pathname),ut=A==="unknown"&&K&&/\.(mp3|ogg|wav|m4a|m4p|m4b)$/i.test(K.pathname),Kt=A==="image"||A==="unknown"&&v&&!mt&&!ut,pt=v&&/\.(mp4|m4r|m4v|mov|webm)$/i.test(Fi(v).pathname),Ot=N(),[Tt,Ft]=U(!1);Oe(()=>{if(!Kt||!i||!Ot.current)return;const{offsetWidth:z,offsetHeight:Q}=Ot.current,F=L{const{children:Q,...F}=z;return r("figure",{...F,children:[Q,r("figcaption",{class:"media-caption",lang:o,dir:"auto",onClick:tt=>{tt.preventDefault(),tt.stopPropagation(),W.showMediaAlt={alt:m,lang:o}},children:m})]})}:B,[zt,he]=U(void 0),ct=()=>window.matchMedia("(min-width: calc(40em + 350px))").matches?"large":"small",Vt=_t(z=>{const Q=z.target.closest(".status-deck");if(i||ct()==="large"&&Q||!document.startViewTransition){d?.(z);return}const F=z.target.closest("[data-view-transition-name]")||z.target.querySelector("[data-view-transition-name]");if(F)if(d)d(z);else if(z.preventDefault(),F.dataset.viewTransitioned){F.style.viewTransitionName=T;try{document.startViewTransition(()=>{F.style.viewTransitionName="",location.hash=`#${n}`})}catch{F.style.viewTransitionName="",location.hash=`#${n}`}}else location.hash=`#${n}`;else d?.(z)},[T,i,d]);if(Kt)return Y.containerProps.style.display="inherit",Oe(()=>{eg&&i&&(async()=>{try{await fetch(C,{mode:"no-cors"}),G.current.src=C}catch{}})()},[C]),r(yt,{children:[r(Rt,{ref:Ot,class:`media media-image ${t}`,onClick:Vt,"data-orientation":S,"data-has-alt":!dt||void 0,"data-has-natural-aspect-ratio":zt||void 0,style:i?{backgroundImage:`url(${v})`,"--bg-image":`url(${v})`,backgroundSize:Tt?`${L}px ${x}px`:void 0,...q}:J,children:i?r(Ni,{...Y,children:r("img",{ref:G,src:C,alt:m,width:L,height:x,"data-orientation":S,loading:"eager",decoding:"sync",style:{"view-transition-name":T},onLoad:z=>{const Q=z.target,F=Q.closest(".media-image");F&&(F.style.backgroundImage=`url(${Q.src})`,F.style.removeProperty("--bg-image")),Q.closest(".media-zoom").style.display="",lt(!0)},onError:z=>{const{src:Q}=z.target;Q===C&&O&&C!==O&&(z.target.src=O)}})}):r(B,{children:[r("img",{src:C,alt:dt?"":m,width:L,height:x,"data-orientation":S,loading:"lazy","data-view-transition-name":T,style:{objectPosition:ft||"center","--anim-duration":`${Math.min(Math.max(Math.max(L,x)/100,5),120)}s`},onLoad:z=>{z.target.dataset.loaded=!0;const Q=z.target.closest(".media");if(!M&&Q){const{naturalWidth:F,naturalHeight:tt}=z.target;Q.dataset.orientation=F>tt?"landscape":"portrait",Q.style.setProperty("--width",`${F}px`),Q.style.setProperty("--height",`${tt}px`),Q.style.aspectRatio=`${F}/${tt}`}if(h&&Q){const{clientWidth:F,clientHeight:tt,naturalWidth:Qt,naturalHeight:ht}=z.target;if(F&&tt&&Qt&&ht)if(Qt<88||ht<88)Q.dataset.hasSmallDimension=!0;else{const fe=ht*F/Qt;Math.abs(fe-tt)<5&&he(!0)}}},onError:z=>{const{src:Q}=z.target;Q===C&&C!==O?z.target.src=O:Lt(!0)}}),!dt&&r(Go,{alt:m,lang:o,index:l})]})}),at&&r("div",{children:r("a",{href:E,class:"button plain6 small",target:"_blank",children:[r(D,{icon:"external"})," ",r("span",{children:r(P,{id:"9npOH9"})})]})})]});if(A==="gifv"||A==="video"||mt){const z=y.duration>0,Q=y.duration<31,F=A==="gifv"&&Q,tt=y.duration<61,Qt=qo(y.duration),ht=!i&&!a&&F,jt=!i&&a&&F,fe=y.duration>5,ee=` + + `,ne=` + + `;return r(yt,{children:r(Rt,{ref:Ot,class:`media ${t} media-${F?"gif":"video"} ${jt?"media-contain":""} ${ht?"media-hover-animate":""}`,"data-orientation":S,"data-formatted-duration":i?void 0:Qt,"data-label":F&&!i&&!jt?"GIF":void 0,"data-has-alt":!dt||void 0,style:!i&&J,onClick:At=>{if(ht)try{H.current.pause()}catch{}Vt(At)},onMouseEnter:()=>{if(ht)try{H.current.play()}catch{}},onMouseLeave:()=>{if(ht)try{H.current.pause()}catch{}},onFocus:()=>{if(ht)try{H.current.play()}catch{}},onBlur:()=>{if(ht)try{H.current.pause()}catch{}},children:[i||jt?F&&i?r(Ni,{...Y,enabled:!0,children:r("div",{ref:G,dangerouslySetInnerHTML:{__html:ee}})}):F?r("div",{class:"video-container",dangerouslySetInnerHTML:{__html:ee}}):r("div",{class:"video-container",dangerouslySetInnerHTML:{__html:ne}}):F?r("video",{ref:H,src:w,poster:v,width:L,height:x,"data-orientation":S,"data-view-transition-name":T,preload:"auto",playsinline:!0,loop:!0,muted:!0,onTimeUpdate:fe?At=>{const{target:St}=At,Ut=St?.closest(".media-gif");if(Ut){const Yt=St.currentTime/St.duration*100;Ut.style.setProperty("--progress",`${Yt}%`)}}:void 0}):r(B,{children:[v&&!pt?r("img",{src:v,alt:dt?"":m,width:L,height:x,"data-orientation":S,loading:"lazy",decoding:"async","data-view-transition-name":T,onLoad:At=>{if(!M){const St=At.target.closest(".media");if(St){const{naturalHeight:Ut,naturalWidth:Yt}=At.target;St.dataset.orientation=Yt>Ut?"landscape":"portrait",St.style.setProperty("--width",`${Yt}px`),St.style.setProperty("--height",`${Ut}px`),St.style.aspectRatio=`${Yt}/${Ut}`}}}}):r("video",{src:w+"#t=0.1",width:L,height:x,"data-orientation":S,"data-view-transition-name":T,preload:"metadata",muted:!0,disablePictureInPicture:!0,onLoadedMetadata:At=>{if(!z){const{duration:St}=At.target;if(St){const Ut=qo(St),Yt=At.target.closest(".media-video");Yt&&(Yt.dataset.formattedDuration=Ut)}}}}),r("div",{class:"media-play",children:r(D,{icon:"play",size:"xl",alt:"▶"})})]}),!i&&!dt&&r(Go,{alt:m,lang:o,index:l})]})})}else if(A==="audio"||ut){const z=qo(y.duration);return r(yt,{children:r(Rt,{class:`media media-audio ${t}`,"data-formatted-duration":i?void 0:z,"data-has-alt":!dt||void 0,onClick:d,style:!i&&J,children:[i?r("audio",{src:E||w,preload:"none",controls:!0,autoPlay:!0}):v?r("img",{src:v,alt:dt?"":m,width:L,height:x,"data-orientation":S,loading:"lazy",onError:Q=>{try{Q.target?.remove?.()}catch{}}}):null,!i&&r(B,{children:[r("div",{class:"media-play",children:r(D,{icon:"play",size:"xl",alt:"▶"})}),!dt&&r(Go,{alt:m,lang:o,index:l})]})]})})}}function Fi(t){return URL.parse(t,location.origin)}function sg(t){let e=t.replace(/[^a-zA-Z0-9_-]/g,"-");return e.match(/^[0-9-]/)&&(e="vt-"+e),e}const dr=Je(ig,(t,e)=>{const n=t.media||{},o=e.media||{};return n?.id===o?.id&&n.url===o.url&&t.to===e.to&&t.class===e.class}),ag=280,cg=140,lg=Ji({limit:1,interval:1e3});function ug(t,e){return e.v1.accounts.$select(t).fetch()}const dg=lo(lg(ug)),Pe={public:{id:"7d1a0d"},local:{id:"d5zxa4"},unlisted:{id:"WDcQq9"},private:{id:"o34OrG"},direct:{id:"IV4QaU"}},hg=window.ontouchstart!==void 0&&/iPad|iPhone|iPod/.test(navigator.userAgent),fg=kt(t=>new Intl.RelativeTimeFormat(t||void 0)),Bi=80;function mg(t){return t?.options?.length?`📊: +${t.options.map(e=>`- ${e.title}${e.votesCount>=0?` (${e.votesCount})`:""}`).join(` +`)}`:""}function Yo(t,e){const{maskCustomEmojis:n,maskURLs:o}=e||{},{spoilerText:i,poll:a,emojis:s}=t;let{content:c}=t;if(n&&s?.length){const l=new RegExp(`:(${s.map(h=>h.shortcode).join("|")}):`,"g");c=c.replace(l,"⬚")}return(i?`${i} + +`:"")+fo(c,{preProcess:o&&(l=>{for(const h of l.querySelectorAll("a")){const d=h.innerText.trim();/^https?:\/\//i.test(d)&&h.replaceWith("«🔗»")}})})+mg(a)}function Js(t=[],e=document){for(const n of t)try{return e.querySelectorAll(n)}catch{}return[]}function pg(t,e){if(!t)return!1;if(e?.length){const o=new RegExp(`:(${e.map(i=>i.shortcode).join("|")}):`,"g");t=t.replace(o,"")}return t=t.trim(),t?!!fo(t,{preProcess:o=>{for(const i of Js([".mention, pre, code, a:has(.invisible)",".mention, pre, code"],o))i.remove()}}):!1}function gg(t,e){if(e?.length){const n=new RegExp(`:(${e.map(o=>o.shortcode).join("|")}):`,"g");t=t.replace(n,"")}return fo(t,{preProcess:n=>{for(const o of Js([".mention, .hashtag, pre, code, a:has(.invisible)",".mention, .hashtag, pre, code"],n))o.remove();for(const o of n.querySelectorAll("a")){const i=o.innerText.trim();(i.startsWith("https://")||i.startsWith("http://"))&&o.remove()}}})}const vg=/^http/i,_g=["\\\\\\[[\\s\\S]*?\\\\\\]","\\\\\\([\\s\\S]*?\\\\\\)"],zi=new RegExp(_g.join("|"),"g");function yg(t){const e=["\\\\\\[","\\\\\\("],n=new RegExp(`(${e.join("|")})`),o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),i=[];let a;for(;a=o.nextNode();)i.push(a);for(const s of i){const c=s.textContent,l=c.match(n);if(!l)continue;const d=l[0]==="\\["?"\\]":"\\)",u=[s];let f=s,m=!1,p=c;if(c.includes(d))m=!0;else for(;f.nextSibling&&!m;){const g=f.nextSibling;if(g.nodeType===Node.TEXT_NODE)u.push(g),p+=g.textContent,g.textContent.includes(d)&&(m=!0);else if(g.nodeType===Node.ELEMENT_NODE&&g.tagName==="BR")u.push(g),p+=` +`;else break;f=g}if(m&&u.length>1){s.textContent=p;for(let g=1;g{if(zi.lastIndex=0,!zi.test(t))return null;const{_:i}=te(),[a,s]=U(!1),c=_t(async l=>{if(l.preventDefault(),l.stopPropagation(),a)s(!1),n();else try{const h=window.temml||(window.temml=(await k(async()=>{const{default:m}=await import("./temml-BWesIjnj.js");return{default:m}},[],import.meta.url))?.default);yg(e.current);const d=e.current.innerHTML;h.renderMathInElement(e.current,{fences:"(",annotate:!0,throwOnError:!0,errorCallback:m=>{}});const u=e.current.querySelector("math.tml-display"),f=e.current.innerHTML!==d;u&&f?s(!0):(Et(i({id:"HBIZeo"})),s(!1),n())}catch{}},[a]);return r("div",{class:"math-block",children:[r(D,{icon:"formula",size:"s"})," ",r("span",{children:i({id:"/nf2x7"})})," ",r("button",{type:"button",class:"light small",onClick:c,children:i(a?{id:"AJqQb+"}:{id:"dP6iYK"})})]})},Vi=({post:t,instance:e,previewMode:n})=>{const{content:o,emojis:i,language:a,mentions:s,url:c}=t,l=N();return Oe(()=>{if(!l.current)return;const h=Ns(o,{emojis:i,returnDOM:!0});for(const d of h.querySelectorAll('a.u-url[target="_blank"]'))vg.test(d.innerText.trim())||d.removeAttribute("target");l.current.replaceChildren(h.cloneNode(!0))},[o,i?.length]),r("div",{ref:l,lang:a,dir:"auto",class:"inner-content",onClick:Rm({mentions:s,instance:e,previewMode:n,statusURL:c})})},wg={s:"small",m:"medium",l:"large"},Eg=lo(async t=>{if(t=t?.trim(),t?.length>500)return null;if(Re){const i=await Re.detect(t);console.groupCollapsed("💬 DETECTLANG BROWSER",i.slice(0,3).map(s=>s.detectedLanguage)),console.groupEnd();const a=i[0];if(a?.detectedLanguage&&a?.confidence>.5)return a.detectedLanguage}const{detectAll:e}=await k(async()=>{const{detectAll:i}=await import("./tinyld.light.node-D9KYf3Y3.js");return{detectAll:i}},[],import.meta.url),n=e(t);console.groupCollapsed("💬 DETECTLANG TINYLD",n.slice(0,3).map(i=>i.lang)),console.groupEnd();const o=n[0];return o?.lang&&o?.accuracy>.5?o.lang:null}),yn={id:"8fZueG"},hr={},Hi=(t,e=[])=>{if(!t)return!1;const n=Ss(!0),o=t!==n&&!bn([t],[n])&&!e.find(i=>t===i||bn([t],[i]));return o&&(hr[t+e]=!0),o},Pr=kt(()=>wr(),{maxAge:60*1e3});function Qe({statusID:t,status:e,instance:n,size:o="m",contentTextWeight:i,readOnly:a,enableCommentHint:s,withinContext:c,skeleton:l,enableTranslate:h,forceTranslate:d,previewMode:u,allowFilters:f,onMediaClick:m,quoted:p,onStatusLinkClick:g=()=>{},showFollowedTags:v,allowContextMenu:E,showActionsBar:w,showReplyParent:A,mediaFirst:T}){const{_:y,_:b,i18n:I}=te(),L=fg(I.locale);if(l)return r("div",{class:`status skeleton ${T?"status-media-first small":""}`,children:[!T&&r(ve,{size:"xxl"}),r("div",{class:"container",children:[r("div",{class:"meta",children:[(o==="s"||T)&&r(ve,{size:"m"})," ███ ████████"]}),r("div",{class:"content-container",children:[T&&r("div",{class:"media-first-container"}),r("div",{class:`content ${T?"media-first-content":""}`,children:r("p",{children:"████ ████████"})})]})]})]});const{masto:x,instance:C,authenticated:O}=no({instance:n}),{instance:M}=no(),R=C===M;let S=le(t||e?.id,C);const Z=Cn(W);if(e||(e=Z.statuses[S]||Z.statuses[t],S=le(e?.id,C)),!e)return null;const{account:{acct:H,avatar:ft,avatarStatic:G,id:rt,url:et,displayName:lt,username:Y,emojis:at,bot:Lt,group:Rt}={},id:K,repliesCount:mt,reblogged:ut,reblogsCount:Kt,favourited:pt,favouritesCount:Ot,bookmarked:Tt,poll:Ft,muted:Dt,sensitive:Bt,spoilerText:q,visibility:J,language:Ct,editedAt:dt,filtered:yt,card:zt,createdAt:he,inReplyToId:ct,inReplyToAccountId:Vt,content:z,mentions:Q,mediaAttachments:F=[],reblog:tt,uri:Qt,url:ht,emojis:jt,tags:fe,pinned:ee,_deleted:ne,_pinned:At,emojiReactions:St}=e,[Ut,Yt]=U(null);X(()=>{if(!z||Ct||Ut)return;let _;return _=setTimeout(async()=>{let $=await Eg(gg(z,jt));Yt($)},1e3),()=>clearTimeout(_)},[z,Ct]);const V=Ct||Ut,bt=!!F?.length;T&&bt&&(o="s");const Mt=Pr(),xt=ot(()=>Mt&&Mt===rt,[rt,Mt]),gt=Pt(Mr),Ht=!xt&&(!a&&!u||f)&&mo(yt,gt);if(Ht?.action==="hide")return null;const Se=_=>{_.shiftKey};if((f||o!=="l")&&Ht&&Ht.action!=="blur")return r(Dg,{status:e,filterInfo:Ht,instance:C,containerProps:{onMouseEnter:Se},showFollowedTags:!0,quoted:p});const Jt=new Date(he),xe=new Date(dt);let nn=Q?.find(_=>_.id===Vt);!nn&&Vt===K&&(nn={url:et,username:Y,displayName:lt});const[Ne,on]=U(nn);if(!c&&!Ne&&Vt){const _=W.accounts[Vt];_?on(_):dg(Vt,x).then($=>{on($),W.accounts[$.id]=$}).catch($=>{})}const xn=Vt===Mt||Q?.find(_=>_.id===Mt),In=Wa(),Wt=!!In["reading:expand:spoilers"],Fe=In["reading:expand:media"]?.toLowerCase()||"default",Zt=u||Wt||!!Z.spoilers[K],oe=u||Fe==="show_all"&&Ht?.action!=="blur"||!!Z.spoilersMedia[K];if(tt)return Rt?r("div",{"data-state-post-id":S,class:"status-group",onMouseEnter:Se,children:[r("div",{class:"status-pre-meta",children:[r(D,{icon:"group",size:"l",alt:b({id:"L8fEEm"})})," ",r(Te,{account:e.account,instance:C,showAvatar:!0})]}),r(Qe,{status:t?null:tt,statusID:t?tt.id:null,instance:C,size:o,contentTextWeight:i,readOnly:a,mediaFirst:T})]}):r("div",{"data-state-post-id":S,class:"status-reblog",onMouseEnter:Se,children:[r("div",{class:"status-pre-meta",children:[r(D,{icon:"rocket",size:"l"})," ",r(P,{id:"DlhB4J",components:{0:r(Te,{account:e.account,instance:C,showAvatar:!0}),1:r("span",{})}})]}),r(Qe,{status:t?null:tt,statusID:t?tt.id:null,instance:C,size:o,contentTextWeight:i,readOnly:a,enableCommentHint:!0,mediaFirst:T})]});const da=_t(({children:_})=>r("div",{"data-state-post-id":S,class:"status-followed-tags",onMouseEnter:Se,children:[r("div",{class:"status-pre-meta",children:[r(D,{icon:"hashtag",size:"l"})," ",Z.statusFollowedTags[S].slice(0,3).map($=>r(qe,{to:C?`/${C}/t/${$}`:`/t/${$}`,class:"status-followed-tag-item",children:$},$))]}),_]}),[S,C,Z.statusFollowedTags[S]]),ha=v&&Z.statusFollowedTags[S]?.length?da:B,it=o==="l",[po,fa]=U(d),{contentTranslation:go,contentTranslationAutoInline:Or}=Z.settings;go||(h=!1);const $r=ot(()=>{if(!go||!Or||a||c&&!it||u||q||Bt||Ft||zt)return!1;const _=Wo(z);return _>0&&_<=cg},[go,Or,a,c,it,u,q,Bt,Ft,zt,F,z]),[vo,Ln]=U(!1),[ma,_o]=U(!1),Nr=to(),yo=to(),pa=to(),Be=N(null),[ga,va]=br(_=>_+1,0),Dn=b({id:"7jyUKe"}),Fr=_t(()=>Math.max(Math.round(((q?.length||0)+Wo(z))/140)||1,1),[q,z]),Br=he&&Tn(Jt),zr=dt&&Tn(xe);let rn=O&&J!=="direct"&&J!=="private";J==="private"&&xt&&(rn=!0);const Mn=_=>{if(!R||!O)return alert(Dn);(_?.shiftKey||_?.syntheticEvent?.shiftKey)&&nl({replyToStatus:e})||Vn({replyToStatus:e})},_a=ot(()=>F.some(_=>!_.description?.trim?.()),[F]),Vr=ot(()=>Math.floor((new Date-Jt)/(1e3*60*60*24*30)),[Jt]),bo=async()=>{if(!R||!O)return alert(Dn),!1;try{if(W.statuses[S]={...e,reblogged:!ut,reblogsCount:Kt+(ut?-1:1)},ut){const _=await x.v1.statuses.$select(K).unreblog();we(_,C)}else{const _=await x.v1.statuses.$select(K).reblog();we(_,C)}return!0}catch{return W.statuses[S]=e,!1}},Hr=async()=>{if(!R||!O)return alert(Dn),!1;try{if(W.statuses[S]={...e,favourited:!pt,favouritesCount:Ot+(pt?-1:1)},pt){const _=await x.v1.statuses.$select(K).unfavourite();we(_,C)}else{const _=await x.v1.statuses.$select(K).favourite();we(_,C)}return!0}catch{return W.statuses[S]=e,!1}},wo=async()=>{try{const _=await Hr();!it&&_&&Et(b(pt?{id:"sZvpIt",values:{0:Y||H}}:{id:"yUngDO",values:{0:Y||H}}))}catch{}},Kr=async()=>{if(jn("@mastodon/post-bookmark")){if(!R||!O)return alert(Dn),!1;try{if(W.statuses[S]={...e,bookmarked:!Tt},Tt){const _=await x.v1.statuses.$select(K).unbookmark();we(_,C)}else{const _=await x.v1.statuses.$select(K).bookmark();we(_,C)}return!0}catch{return W.statuses[S]=e,!1}}},jr=async()=>{try{const _=await Kr();!it&&_&&Et(b(Tt?{id:"lWQguj",values:{0:Y||H}}:{id:"Fb2K8h",values:{0:Y||H}}))}catch{}},sn=Z.settings.contentTranslationHideLanguages||[],[Ie,Ur]=U(()=>hr[V+sn]||Hi(V,sn));X(()=>{if(!V||Ie)return;if(!Ie&&hr[V+sn]){Ur(!0);return}let _=setTimeout(()=>{const $=Hi(V,sn);$&&Ur($)},1);return()=>clearTimeout(_)},[V,Ie,sn]);const Wr=N(),Zr=N();async function ya(_){_&&(Wr.current=x.v1.statuses.$select(t).rebloggedBy.list({limit:Bi}).values(),Zr.current=x.v1.statuses.$select(t).favouritedBy.list({limit:Bi}).values());const[{value:$},{value:nt}]=await Promise.allSettled([Wr.current.next(),Zr.current.next()]);if($.value?.length||nt.value?.length){const st=[];return $.value?.length&&st.push(...$.value.map(re=>(re._types=["reblog"],re))),nt.value?.length&&st.push(...nt.value.map(re=>(re._types=["favourite"],re))),{value:st,done:$.done&&nt.done}}return{value:[],done:!0}}const ba=N(),qr=["public","unlisted"].includes(J),wa=["public","unlisted","private"].includes(J),Gr=_a&&!ut?r("div",{class:"footer",children:[r(D,{icon:"alert"}),r(P,{id:"MB+wJL"})]}):Vr>=3&&r("div",{class:"footer",children:[r(D,{icon:"info"}),r("span",{children:r(P,{id:"dBme/4",values:{0:L.format(-Vr,"month")},components:{0:r("strong",{})}})})]}),Yr=r(B,{children:[!it&&R&&r(B,{children:r("div",{class:"menu-control-group-horizontal status-menu",children:[r(wt,{onClick:Mn,children:[r(D,{icon:"comment"}),r("span",{children:mt>0?pe(mt):b({id:"ImOQa9"})})]}),r(So,{subMenu:!0,confirmLabel:r(B,{children:[r(D,{icon:"rocket"}),r("span",{children:b(ut?{id:"QzzGsY"}:{id:"kulphB"})})]}),className:`menu-reblog ${ut?"checked":""}`,menuExtras:r(wt,{onClick:()=>{Vn({draftStatus:{status:` +${ht}`}})},children:[r(D,{icon:"quote"}),r("span",{children:r(P,{id:"ZhhOwV"})})]}),menuFooter:Gr,disabled:!rn,onClick:async()=>{try{const _=await bo();!it&&_&&Et(b(ut?{id:"bpDheH",values:{0:Y||H}}:{id:"dbNZdP",values:{0:Y||H}}))}catch{}},children:[r(D,{icon:"rocket"}),r("span",{children:Kt>0?pe(Kt):b(ut?{id:"QzzGsY"}:{id:"PiVIlD"})})]}),r(wt,{onClick:wo,className:`menu-favourite ${pt?"checked":""}`,children:[r(D,{icon:"heart"}),r("span",{children:Ot>0?pe(Ot):b(pt?{id:"OcUmcH"}:{id:"W9FRBT"})})]}),jn("@mastodon/post-bookmark")&&r(wt,{onClick:jr,className:`menu-bookmark ${Tt?"checked":""}`,children:[r(D,{icon:"bookmark"}),r("span",{children:b(Tt?{id:"q8EQYI"}:{id:"PZlHt8"})})]})]})}),!it&&R&&(it||w)&&r(ln,{}),(it||w)&&r(B,{children:r(wt,{onClick:()=>{W.showGenericAccounts={heading:b({id:"+XOeb+"}),fetchAccounts:ya,instance:C,showReactions:!0,postID:S}},children:[r(D,{icon:"react"}),r("span",{children:r(P,{id:"+XOeb+"})})]})}),(it||!T&&(h||!V||Ie))&&r(ln,{}),!T&&(h||!V||Ie)&&r("div",{class:ur?"menu-horizontal":"",children:[h?r(wt,{disabled:po,onClick:()=>fa(!0),children:[r(D,{icon:"translate"}),r("span",{children:r(P,{id:"pi8x/S"})})]}):r(di,{to:`${C?`/${C}`:""}/s/${K}?translate=1`,children:[r(D,{icon:"translate"}),r("span",{children:r(P,{id:"pi8x/S"})})]}),ur&&r(wt,{onClick:()=>{try{const _=Yo(e);_&&Dp(_,V)}catch{}},children:[r(D,{icon:"speak"}),r("span",{children:r(P,{id:"yIBLq8"})})]})]}),it&&r(wt,{onClick:()=>{try{const _=Yo(e);navigator.clipboard.writeText(_),Et(b({id:"iSRQvy"}))}catch{Et(b({id:"N1MyiN"}))}},children:[r(D,{icon:"clipboard"}),r("span",{children:r(P,{id:"iQgJaz"})})]}),(!it&&R||h||!V||Ie)&&r(ln,{}),!it&&r(B,{children:r(di,{to:C?`/${C}/s/${K}`:`/s/${K}`,onClick:_=>{g(_,e)},children:[r(D,{icon:"arrows-right"}),r("small",{children:[r(P,{id:"8MkSAW",values:{0:Y||H},components:{0:r("span",{class:"bidi-isolate"})}}),r("br",{}),r("span",{class:"more-insignificant",children:[y(Pe[J])," • ",Br]})]})]})}),!!dt&&r(B,{children:r(wt,{onClick:()=>{Ln(K)},children:[r(D,{icon:"history"}),r("small",{children:[r(P,{id:"QL+7Jw"}),r("br",{}),r("span",{class:"more-insignificant",children:r(P,{id:"DuJJm9",values:{editedDateText:zr}})})]})]})}),r(wt,{href:ht,target:"_blank",children:[r(D,{icon:"external"}),r("small",{class:"menu-double-lines",style:{maxWidth:"16em"},children:Ig(ht)})]}),r("div",{class:"menu-horizontal",children:[r(wt,{onClick:()=>{try{navigator.clipboard.writeText(ht),Et(b({id:"edWbV6"}))}catch{Et(b({id:"W1ewR0"}))}},children:[r(D,{icon:"link"}),r("span",{children:r(P,{id:"he3ygx"})})]}),qr&&navigator?.share&&navigator?.canShare?.({url:ht})&&r(wt,{onClick:()=>{try{navigator.share({url:ht})}catch{alert(b({id:"TtG3Uh"}))}},children:[r(D,{icon:"share"}),r("span",{children:r(P,{id:"LFKLqp"})})]})]}),qr&&it&&r(wt,{onClick:()=>{_o(!0)},children:[r(D,{icon:"code"}),r("span",{children:r(P,{id:"jdVwsS"})})]}),(xt||xn)&&r(ln,{}),(xt||xn)&&r(wt,{onClick:async()=>{try{const _=await x.v1.statuses.$select(K)[Dt?"unmute":"mute"]();we(_,C),Et(b(Dt?{id:"Pm+5jw"}:{id:"ywB7JM"}))}catch{Et(b(Dt?{id:"c6jxNY"}:{id:"8SN9kN"}))}},children:Dt?r(B,{children:[r(D,{icon:"unmute"}),r("span",{children:r(P,{id:"i51zUR"})})]}):r(B,{children:[r(D,{icon:"mute"}),r("span",{children:r(P,{id:"OiUYO5"})})]})}),xt&&wa&&r(wt,{onClick:async()=>{try{const _=await x.v1.statuses.$select(K)[ee?"unpin":"pin"]();we(_,C),Et(b(ee?{id:"Yx809+"}:{id:"S6P6E+"}))}catch{Et(b(ee?{id:"A6cs15"}:{id:"vgUfWO"}))}},children:ee?r(B,{children:[r(D,{icon:"unpin"}),r("span",{children:r(P,{id:"XQMQZw"})})]}):r(B,{children:[r(D,{icon:"pin"}),r("span",{children:r(P,{id:"lfHLsx"})})]})}),xt&&r("div",{class:"menu-horizontal",children:[jn("@mastodon/post-edit")&&r(wt,{onClick:()=>{Vn({editStatus:e})},children:[r(D,{icon:"pencil"}),r("span",{children:r(P,{id:"ePK91l"})})]}),it&&r(So,{subMenu:!0,confirmLabel:r(B,{children:[r(D,{icon:"trash"}),r("span",{children:r(P,{id:"FbPNuJ"})})]}),itemProps:{className:"danger"},menuItemClassName:"danger",onClick:()=>{(async()=>{try{await x.v1.statuses.$select(K).remove();const _=es(K,C);_._deleted=!0,Et(b({id:"KiyvHV"}))}catch{Et(b({id:"Yb6p2q"}))}})()},children:[r(D,{icon:"trash"}),r("span",{children:r(P,{id:"Jb6/SB"})})]})]}),!xt&&it&&r(B,{children:[r(ln,{}),r(wt,{className:"danger",onClick:()=>{W.showReportModal={account:e.account,post:e}},children:[r(D,{icon:"flag"}),r("span",{children:r(P,{id:"7PQAMY"})})]})]})]}),Xr=N(),[Pn,an]=U(!1),[Qr,Rn]=U({}),On=E||!it&&!u&&!ne&&!p,Ea=ys(hg&&On?_=>{if(_.pointerType==="mouse")return;const{clientX:$,clientY:nt}=_.touches?.[0]||_,st=_.target.closest("a");st&&Be.current.contains(st)&&!st.getAttribute("href").startsWith("#")||(_.preventDefault(),Rn({anchorPoint:{x:$,y:nt},direction:"right"}),an(!0))}:null,{threshold:600,captureEvent:!0,detect:"touch",cancelOnMovement:2}),$n=!a&&!u&&!p,Ta=je("r, shift+r",Mn,{enabled:$n,useKey:!0,ignoreEventWhen:_=>_.metaKey||_.ctrlKey||_.altKey}),Aa=je("f, l",wo,{enabled:$n,ignoreEventWhen:_=>_.metaKey||_.ctrlKey||_.altKey||_.shiftKey,useKey:!0}),ka=je("d",jr,{enabled:$n,useKey:!0,ignoreEventWhen:_=>_.metaKey||_.ctrlKey||_.altKey||_.shiftKey}),Ca=je("shift+b",_=>{_.shiftKey&&(async()=>{try{const $=await bo();!it&&$&&Et(b(ut?{id:"bpDheH",values:{0:Y||H}}:{id:"dbNZdP",values:{0:Y||H}}))}catch{}})()},{enabled:$n&&rn,useKey:!0,ignoreEventWhen:_=>_.metaKey||_.ctrlKey||_.altKey}),Sa=je("x",_=>{const $=document.activeElement.closest(".status-link, .status-focus");if($){const nt=$.querySelector(".spoiler-button:not(.spoiling)");if(nt)_.stopPropagation(),nt.click();else{const st=$.querySelector(".spoiler-media-button:not(.spoiling)");st&&(_.stopPropagation(),st.click())}}},{useKey:!0,ignoreEventWhen:_=>_.metaKey||_.ctrlKey||_.altKey||_.shiftKey}),Nn=F.slice(0,it?void 0:4),Fn=F.length>1&&Nn.some(_=>!!_.description&&!Qs(_.description)),xa=ot(()=>{if(!Fn)return null;const _=[];return Nn.forEach(($,nt)=>{if(!$.description)return;const st=_.findIndex(re=>re.media.description===$.description);st===-1?_.push({media:$,indices:[nt]}):_[st].indices.push(nt)}),_.map(({media:$,indices:nt})=>r("div",{"data-caption-index":nt.map(st=>st+1).join(" "),onClick:st=>{st.preventDefault(),st.stopPropagation(),W.showMediaAlt={alt:$.description,lang:V}},title:$.description,children:[r("sup",{children:nt.map(st=>st+1).join(" ")})," ",$.description]},$.id))},[Fn,Nn,V]),cn=ot(()=>!!ct&&Vt===e.account?.id||!!Z.statusThreadNumber[S],[ct,Vt,e.account?.id,Z.statusThreadNumber[S]]),Ia=ot(()=>s&&!cn&&!c&&!ct&&J==="public"&&mt>0,[s,cn,c,ct,mt,J]),Jr=ot(()=>{if(zt||Ft||Bt||q||F?.length||cn||c||ct||mt<=0||!/[???︖❓❔⁇⁈⁉¿‽؟]/.test(z))return!1;const nt=Wo(z);if(nt>0&&nt<=ag)return!0},[zt,Ft,Bt,q,F,tt,cn,c,ct,mt,z]);return r(ha,{children:[A&&!!(ct&&Vt)&&r(Lg,{sKey:S}),r("article",{"data-state-post-id":S,ref:_=>{Be.current=_;const $=_?.closest?.(".timeline-item, .timeline-item-alt, .status-link, .status-focus")||_;Ta.current=$,Aa.current=$,ka.current=$,Ca.current=$,Sa.current=$},tabindex:"-1",class:`status ${!c&&ct&&Ne?"status-reply-to":""} visibility-${J} ${At?"status-pinned":""} ${wg[o]} ${ne?"status-deleted":""} ${p?"status-card":""} ${Pn?"status-menu-open":""} ${T&&bt?"status-media-first":""}`,onMouseEnter:Se,onContextMenu:_=>{if(!On||_.metaKey)return;const $=_.target.closest("a");if($&&Be.current.contains($)&&!$.getAttribute("href").startsWith("#"))return;const nt=window.getSelection?.();if(nt.toString().length>0){const{anchorNode:st}=nt;if(Be.current?.contains(st))return}_.preventDefault(),Rn({anchorPoint:{x:_.clientX,y:_.clientY},direction:"right"}),an(!0)},...On?Ea():{},children:[On&&r(ds,{ref:Xr,state:Pn?"open":void 0,...Qr,onClose:_=>{an(!1),_?.reason==="click"&&Be.current?.closest("[tabindex]")?.focus?.()},portal:{target:document.body},containerProps:{style:{zIndex:1001},onClick:()=>{Xr.current?.closeMenu?.()}},overflow:"auto",boundingBoxPadding:Es(),unmountOnClose:!0,children:Yr}),w&&o!=="l"&&!u&&!a&&!ne&&!p&&r("div",{class:`status-actions ${Pn==="actions-bar"?"open":""}`,ref:ba,children:[r(Ke,{size:"s",title:b({id:"ImOQa9"}),alt:b({id:"ImOQa9"}),class:"reply-button",icon:"comment",iconSize:"m",onClick:Mn}),r(Ke,{size:"s",checked:pt,title:[b({id:"W9FRBT"}),b({id:"OcUmcH"})],alt:[b({id:"W9FRBT"}),b({id:"8ab1sR"})],class:"favourite-button",icon:"heart",iconSize:"m",count:Ot,onClick:wo}),r("button",{type:"button",title:b({id:"2FYpfJ"}),class:"plain more-button",onClick:_=>{_.preventDefault(),_.stopPropagation(),Rn({anchorRef:{current:_.currentTarget},align:"start",direction:"left",gap:0,shift:-8}),an("actions-bar")},children:r(D,{icon:"more2",size:"m",alt:b({id:"2FYpfJ"})})})]}),o!=="l"&&r("div",{class:"status-badge",children:[ut&&r(D,{class:"reblog",icon:"rocket",size:"s",alt:b({id:"b7T5Zj"})}),pt&&r(D,{class:"favourite",icon:"heart",size:"s",alt:b({id:"8ab1sR"})}),Tt&&r(D,{class:"bookmark",icon:"bookmark",size:"s",alt:b({id:"1C/9Sa"})}),At&&r(D,{class:"pin",icon:"pin",size:"s",alt:b({id:"kNiQp6"})})]}),o!=="s"&&r("a",{href:et,tabindex:"-1",title:`@${H}`,onClick:_=>{_.preventDefault(),_.stopPropagation(),W.showAccount={account:e.account,instance:C}},children:r(ve,{url:G||ft,size:"xxl",squircle:Lt})}),r("div",{class:"container",children:[!!(e.account||he)&&r("div",{class:"meta",children:[r("span",{class:"meta-name",children:r(Te,{account:e.account,instance:C,showAvatar:o==="s",showAcct:it})})," ",o!=="l"&&(ne?r("span",{class:"status-deleted-tag",children:r(P,{id:"vGjmyl"})}):ht&&!u&&!a&&!p?r(qe,{to:C?`/${C}/s/${K}`:`/s/${K}`,onClick:_=>{_.metaKey||_.ctrlKey||_.shiftKey||_.altKey||_.which===2||(_.preventDefault(),_.stopPropagation(),g?.(_,e),Rn({anchorRef:{current:_.currentTarget},align:"end",direction:"bottom",gap:4}),an(!0))},class:`time ${Pn&&Qr?.anchorRef?"is-open":""}`,children:[Ia&&!Jr?r(D,{icon:"comment2",size:"s",alt:It._({id:"RXmXDR",values:{repliesCount:mt}})}):J!=="public"&&J!=="direct"&&r(D,{icon:_n[J],alt:y(Pe[J]),size:"s"})," ",r(ge,{datetime:Jt,format:"micro"}),!u&&!a&&r(D,{icon:"more2",class:"more",alt:b({id:"2FYpfJ"})})]}):r("span",{class:"time",children:[J!=="public"&&J!=="direct"&&r(B,{children:[r(D,{icon:_n[J],alt:y(Pe[J]),size:"s"})," "]}),r(ge,{datetime:Jt,format:"micro"})]}))]}),J==="direct"&&r(B,{children:[r("div",{class:"status-direct-badge",children:r(P,{id:"IV4QaU"})})," "]}),!c&&r(B,{children:cn?r("div",{class:"status-thread-badge",children:[r(D,{icon:"thread",size:"s"}),r(P,{id:"lQ8zCz",values:{0:Z.statusThreadNumber[S]?` ${Z.statusThreadNumber[S]}/X`:""}})]}):!!ct&&!!Ne&&(!!q||!Q.find(_=>_.id===Vt))&&r("div",{class:"status-reply-badge",children:[r(D,{icon:"reply"})," ",r(Te,{account:Ne,instance:C,short:!0})]})}),r("div",{class:`content-container ${q||Bt||Ht?.action==="blur"?"has-spoiler":""} ${Zt?"show-spoiler":""} ${oe?"show-media":""}`,"data-content-text-weight":i?Fr():null,style:(it||i)&&{"--content-text-weight":Fr()},children:T&&bt?r(B,{children:[(!!q||!!Bt)&&!Wt&&r(B,{children:[!!q&&r("span",{class:"spoiler-content media-first-spoiler-content",lang:V,dir:"auto",ref:Nr,"data-read-more":y(yn),children:[r(Xe,{text:q,emojis:jt})," "]}),r("button",{class:`light spoiler-button media-first-spoiler-button ${Zt?"spoiling":""}`,type:"button",onClick:_=>{_.preventDefault(),_.stopPropagation(),Zt?(delete W.spoilers[K],Wt||delete W.spoilersMedia[K]):(W.spoilers[K]=!0,Wt||(W.spoilersMedia[K]=!0))},children:[r(D,{icon:Zt?"eye-open":"eye-close"})," ",b(Zt?{id:"6lGV3K"}:{id:"lqBX03"})]})]}),r(Ag,{mediaAttachments:F,language:V,postID:K,instance:C}),!!z&&r("div",{class:"media-first-content content",ref:yo,children:r(Vi,{post:e,instance:C,previewMode:u})})]}):r(B,{children:[!!q&&r(B,{children:[r("div",{class:"content spoiler-content",lang:V,dir:"auto",ref:Nr,"data-read-more":y(yn),children:r("p",{children:r(Xe,{text:q,emojis:jt})})}),Wt||u?r("div",{class:"spoiler-divider",children:[r(D,{icon:"eye-open"})," ",r(P,{id:"gnKo7f"})]}):r("button",{class:`light spoiler-button ${Zt?"spoiling":""}`,type:"button",onClick:_=>{_.preventDefault(),_.stopPropagation(),Zt?(delete W.spoilers[K],Wt||delete W.spoilersMedia[K]):(W.spoilers[K]=!0,Wt||(W.spoilersMedia[K]=!0))},children:[r(D,{icon:Zt?"eye-open":"eye-close"})," ",b(Zt?{id:"6lGV3K"}:{id:"lqBX03"})]})]}),!!z&&r("div",{class:"content",ref:yo,"data-read-more":y(yn),inert:q&&!Zt?!0:void 0,children:[r(Vi,{post:e,instance:C,previewMode:u},ga),r(Rg,{id:K,instance:C,level:p})]}),!!z&&r(bg,{content:z,contentRef:yo,onRevert:va}),!!Ft&&r(xp,{lang:V,poll:Ft,readOnly:a||!R||!O,onUpdate:_=>{W.statuses[S].poll=_},refresh:()=>x.v1.polls.$select(Ft.id).fetch().then(_=>{W.statuses[S].poll=_}).catch(_=>{}),votePoll:_=>x.v1.polls.$select(Ft.id).votes.create({choices:_}).then($=>{W.statuses[S].poll=$}).catch($=>{})}),((h||$r)&&pg(z,jt)&&Ie||po)&&r(dp,{forceTranslate:po||$r,mini:!it&&!c,sourceLanguage:V,autoDetected:Ut,text:Yo(e,{maskCustomEmojis:!0,maskURLs:!0})}),!u&&(Bt||Ht?.action==="blur")&&!!F.length&&(Fe!=="show_all"||Ht?.action==="blur")&&r("button",{class:`plain spoiler-media-button ${oe?"spoiling":""}`,type:"button",hidden:!Wt&&!!q,onClick:_=>{_.preventDefault(),_.stopPropagation(),oe?delete W.spoilersMedia[K]:W.spoilersMedia[K]=!0},children:[r(D,{icon:oe?"eye-open":"eye-close"})," ",r("span",{children:[Ht?.action==="blur"&&r("small",{children:[r(P,{id:"suKjh3",values:{0:Ht?.titlesStr}}),r("br",{})]}),b(oe?{id:"6lGV3K"}:{id:"9ZCilh"})]})]}),!!F.length&&(F.length>1&&(it||c&&o==="m")?r("div",{class:"media-large-container",children:F.map((_,$)=>r("div",{class:"media-container media-eq1",children:r(dr,{media:_,autoAnimate:!0,showCaption:!0,allowLongerCaption:!z||it,lang:V,to:`/${C}/s/${K}?${c?"media":"media-only"}=${$+1}`,onClick:m?nt=>m(nt,$,_,e):void 0})},_.id))}):r(Tg,{lang:V,enabled:Fn,captionChildren:xa,children:r("div",{ref:pa,class:`media-container media-eq${F.length} ${F.length>2?"media-gt2":""} ${F.length>4?"media-gt4":""}`,children:Nn.map((_,$)=>r(dr,{media:_,autoAnimate:it,showCaption:F.length===1,allowLongerCaption:!z&&F.length===1,lang:V,altIndex:Fn&&!!_.description&&$+1,to:`/${C}/s/${K}?${c?"media":"media-only"}=${$+1}`,onClick:m?nt=>{m(nt,$,_,e)}:void 0,checkAspectRatio:F.length===1},_.id))})})),!!zt&&/^https/i.test(zt?.url)&&!Bt&&!q&&!Ft&&!F.length&&!Z.statusQuotes[S]&&r(Cg,{card:zt,selfReferential:zt?.url===e.url||zt?.url===e.uri,selfAuthor:zt?.authors?.some(_=>_.account?.url===et),instance:M})]})}),!it&&Jr&&r("div",{class:"content-comment-hint insignificant",children:[r(D,{icon:"comment2",alt:b({id:"N8UzTV"})})," ",mt]}),it&&r(B,{children:[r("div",{class:"extra-meta",children:ne?r("span",{class:"status-deleted-tag",children:r(P,{id:"vGjmyl"})}):r(B,{children:[r("span",{children:y(Pe[J])})," •"," ",r("a",{href:ht,target:"_blank",rel:"noopener",children:[new Date().getTime()-Jt.getTime()<864e5&&r(B,{children:[r(ge,{datetime:Jt,format:"micro"})," ","‒"," "]}),!!he&&r("time",{class:"created",datetime:Jt.toISOString(),title:Jt.toLocaleString(),children:Br})]}),dt&&r(B,{children:[" ","• ",r(D,{icon:"pencil",alt:b({id:"MRZxAn"})})," ",r("time",{tabIndex:"0",class:"edited",datetime:xe.toISOString(),onClick:()=>{Ln(K)},children:zr})]})]})}),!!St?.length&&r("div",{class:"emoji-reactions",children:St.map(_=>{const{name:$,count:nt,me:st,url:re,staticUrl:La}=_;if(re)return r("span",{class:`emoji-reaction tag ${st?"":"insignificant"}`,children:[r(sr,{alt:$,url:re,staticUrl:La})," ",nt]});if(/^:.+?:$/.test($)){const Eo=jt.find(Da=>Da.shortcode===$.replace(/^:/,"").replace(/:$/,""));if(Eo)return r("span",{class:`emoji-reaction tag ${st?"":"insignificant"}`,children:[r(sr,{alt:$,url:Eo.url,staticUrl:Eo.staticUrl})," ",nt]})}return r("span",{class:`emoji-reaction tag ${st?"":"insignificant"}`,children:[$," ",nt]})})}),r("div",{class:`actions ${ne?"disabled":""}`,children:[r("div",{class:"action has-count",children:r(Ke,{title:b({id:"ImOQa9"}),alt:b({id:"VbyRUy"}),class:"reply-button",icon:"comment",count:mt,onClick:Mn})}),r("div",{class:"action has-count",children:r(So,{disabled:!rn,onClick:bo,confirmLabel:r(B,{children:[r(D,{icon:"rocket"}),r("span",{children:b(ut?{id:"QzzGsY"}:{id:"kulphB"})})]}),menuExtras:r(wt,{onClick:()=>{Vn({draftStatus:{status:` +${ht}`}})},children:[r(D,{icon:"quote"}),r("span",{children:r(P,{id:"ZhhOwV"})})]}),menuFooter:Gr,children:r(Ke,{checked:ut,title:[b({id:"kulphB"}),b({id:"QzzGsY"})],alt:[b({id:"kulphB"}),b({id:"b7T5Zj"})],class:"reblog-button",icon:"rocket",count:Kt,disabled:!rn})})}),r("div",{class:"action has-count",children:r(Ke,{checked:pt,title:[b({id:"W9FRBT"}),b({id:"OcUmcH"})],alt:[b({id:"W9FRBT"}),b({id:"8ab1sR"})],class:"favourite-button",icon:"heart",count:Ot,onClick:Hr})}),jn("@mastodon/post-bookmark")&&r("div",{class:"action",children:r(Ke,{checked:Tt,title:[b({id:"PZlHt8"}),b({id:"q8EQYI"})],alt:[b({id:"PZlHt8"}),b({id:"1C/9Sa"})],class:"bookmark-button",icon:"bookmark",onClick:Kr})}),r(ks,{portal:{target:document.querySelector(".status-deck")||document.body},align:"end",gap:4,overflow:"auto",viewScroll:"close",menuButton:r("div",{class:"action",children:r("button",{type:"button",title:b({id:"2FYpfJ"}),class:"plain more-button",children:r(D,{icon:"more",size:"l",alt:b({id:"2FYpfJ"})})})}),children:[Yr," "]})]})]})]}),!!vo&&r(or,{onClick:_=>{_.target===_.currentTarget&&Ln(!1)},children:r(Sg,{statusID:vo,instance:C,fetchStatusHistory:()=>x.v1.statuses.$select(vo).history.list(),onClose:()=>{Ln(!1),Be.current?.focus()}})}),!!ma&&r(or,{onClick:_=>{_.target===_.currentTarget&&_o(!1)},children:r(xg,{post:e,instance:C,onClose:()=>{_o(!1)}})})]})]})}function Tg(t){const{enabled:e,children:n,lang:o,captionChildren:i}=t;return!e||!i?n:r("figure",{class:"media-figure-multiple",children:[n,r("figcaption",{lang:o,dir:"auto",children:i})]})}function Ag(t){const{mediaAttachments:e,language:n,postID:o,instance:i}=t,a=e.length>1,s=N(),[c,l]=U(0);return X(()=>{let h=()=>{const{clientWidth:d,scrollLeft:u}=s.current,f=Math.round(Math.abs(u)/d);l(f)};return s.current&&s.current.addEventListener("scroll",h,{passive:!0}),()=>{s.current&&s.current.removeEventListener("scroll",h)}},[]),r(B,{children:[r("div",{class:"media-first-container",children:[r("div",{class:"media-first-carousel",ref:s,children:e.map((h,d)=>r("div",{class:"media-first-item",children:r(dr,{media:h,lang:n,to:`/${i}/s/${o}?media=${d+1}`})},h.id))}),a&&r("div",{class:"media-carousel-controls",children:[r("div",{class:"carousel-indexer",children:[c+1,"/",e.length]}),r("label",{class:"media-carousel-button",children:r("button",{type:"button",class:"carousel-button",hidden:c===0,onClick:h=>{h.preventDefault(),h.stopPropagation(),s.current.focus(),s.current.scrollTo({left:s.current.clientWidth*(c-1)*(ir()?-1:1),behavior:"smooth"})},children:r(D,{icon:"arrow-left"})})}),r("label",{class:"media-carousel-button",children:r("button",{type:"button",class:"carousel-button",hidden:c===e.length-1,onClick:h=>{h.preventDefault(),h.stopPropagation(),s.current.focus(),s.current.scrollTo({left:s.current.clientWidth*(c+1)*(ir()?-1:1),behavior:"smooth"})},children:r(D,{icon:"arrow-right"})})})]})]}),a&&r("div",{class:"media-carousel-dots",style:{"--dots-count":e.length},children:e.map((h,d)=>r("span",{class:`carousel-dot ${d===c?"active":""}`},h.id))})]})}function Ki(t){return["x.com","twitter.com","threads.net","bsky.app","bsky.brid.gy","fed.brid.gy"].includes(t)}function kg({authors:t,hidden:e,children:n}){if(e||!t?.[0]?.account?.id)return n;const o=t[0].account;return r("div",{class:"card-byline",children:[n,r("div",{class:"card-byline-author",children:[r(D,{icon:"link",size:"s"})," ",r("small",{children:r(P,{id:"4LHHK6",components:{0:r(Te,{account:o,showAvatar:!0})}})})]})]})}function Cg({card:t,selfReferential:e,selfAuthor:n,instance:o}){const i=Cn(W),{blurhash:a,title:s,description:c,html:l,providerName:h,providerUrl:d,authorName:u,authorUrl:f,width:m,height:p,image:g,imageDescription:v,url:E,type:w,embedUrl:A,language:T,publishedAt:y,authors:b}=t,I=s||h||u,x=m/p>=1.2?"large":"",[C,O]=U(null);if(X(()=>{I&&g&&!e&&Za(E)&&qa(o,E).then(H=>{if(!H)return;const{id:ft,url:G}=H;O("#"+G)})},[I,g,e]),i.unfurledLinks[E])return null;const M=/`;\n }\n addIframe(isIntersectionObserver = false) {\n if (!this.isIframeLoaded) {\n const iframeHTML = this.generateIframe(isIntersectionObserver);\n this.domRefFrame.insertAdjacentHTML('beforeend', iframeHTML);\n this.domRefFrame.classList.add('activated');\n this.isIframeLoaded = true;\n this.attemptShortAutoPlay();\n this.dispatchEvent(new CustomEvent('liteYoutubeIframeLoaded', {\n detail: {\n videoId: this.videoId,\n },\n bubbles: true,\n cancelable: true,\n }));\n }\n }\n initImagePlaceholder() {\n this.testPosterImage();\n this.domRefImg.fallback.setAttribute('aria-label', `${this.videoPlay}: ${this.videoTitle}`);\n this.domRefImg?.fallback?.setAttribute('alt', `${this.videoPlay}: ${this.videoTitle}`);\n }\n async testPosterImage() {\n setTimeout(() => {\n const webpUrl = `https://i.ytimg.com/vi_webp/${this.videoId}/${this.posterQuality}.webp`;\n const img = new Image();\n img.fetchPriority = 'low';\n img.referrerPolicy = 'origin';\n img.src = webpUrl;\n img.onload = async (e) => {\n const target = e.target;\n const noPoster = target?.naturalHeight == 90 && target?.naturalWidth == 120;\n if (noPoster) {\n this.posterQuality = 'hqdefault';\n }\n const posterUrlWebp = `https://i.ytimg.com/vi_webp/${this.videoId}/${this.posterQuality}.webp`;\n this.domRefImg.webp.srcset = posterUrlWebp;\n const posterUrlJpeg = `https://i.ytimg.com/vi/${this.videoId}/${this.posterQuality}.jpg`;\n this.domRefImg.fallback.loading = this.posterLoading;\n this.domRefImg.jpeg.srcset = posterUrlJpeg;\n this.domRefImg.fallback.src = posterUrlJpeg;\n this.domRefImg.fallback.loading = this.posterLoading;\n };\n }, 100);\n }\n initIntersectionObserver() {\n const options = {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.isIntersecting && !this.isIframeLoaded) {\n LiteYTEmbed.warmConnections(this);\n this.addIframe(true);\n observer.unobserve(this);\n }\n });\n }, options);\n observer.observe(this);\n if (this.autoPause) {\n const windowPause = new IntersectionObserver((e, o) => {\n e.forEach(entry => {\n if (entry.intersectionRatio !== 1) {\n this.shadowRoot\n .querySelector('iframe')\n ?.contentWindow?.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n }\n });\n }, { threshold: 1 });\n windowPause.observe(this);\n }\n }\n attemptShortAutoPlay() {\n if (this.isYouTubeShort()) {\n setTimeout(() => {\n this.shadowRoot\n .querySelector('iframe')\n ?.contentWindow?.postMessage('{\"event\":\"command\",\"func\":\"' + 'playVideo' + '\",\"args\":\"\"}', '*');\n }, 2000);\n }\n }\n isYouTubeShort() {\n return (this.getAttribute('short') === '' &&\n window.matchMedia('(max-width: 40em)').matches);\n }\n static addPrefetch(kind, url) {\n const linkElem = document.createElement('link');\n linkElem.rel = kind;\n linkElem.href = url;\n linkElem.crossOrigin = 'true';\n document.head.append(linkElem);\n }\n static warmConnections(context) {\n if (LiteYTEmbed.isPreconnected || window.liteYouTubeIsPreconnected)\n return;\n LiteYTEmbed.addPrefetch('preconnect', 'https://i.ytimg.com/');\n LiteYTEmbed.addPrefetch('preconnect', 'https://s.ytimg.com');\n if (!context.noCookie) {\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube.com');\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');\n LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');\n LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');\n }\n else {\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');\n }\n LiteYTEmbed.isPreconnected = true;\n window.liteYouTubeIsPreconnected = true;\n }\n}\nLiteYTEmbed.isPreconnected = false;\ncustomElements.define('lite-youtube', LiteYTEmbed);\n//# sourceMappingURL=lite-youtube.js.map","const digitLookup = new Uint8Array(128);\nfor (let i = 0; i < 83; i++) {\n digitLookup[\n '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~'.charCodeAt(\n i,\n )\n ] = i;\n}\nconst decode83 = (str, start, end) => {\n let value = 0;\n while (start < end) {\n value *= 83;\n value += digitLookup[str.charCodeAt(start++)];\n }\n return value;\n};\n\nconst pow = Math.pow;\nconst PI = Math.PI;\nconst PI2 = PI * 2;\n\nconst d = 3294.6;\nconst e = 269.025;\nconst sRGBToLinear = (value) =>\n value > 10.31475 ? pow(value / e + 0.052132, 2.4) : value / d;\n\nconst linearTosRGB = (v) =>\n ~~(v > 0.00001227 ? e * pow(v, 0.416666) - 13.025 : v * d + 1);\n\nconst signSqr = (x) => (x < 0 ? -1 : 1) * x * x;\n\n/**\n * Fast approximate cosine implementation\n * Based on FTrig https://github.com/netcell/FTrig\n */\nconst fastCos = (x) => {\n x += PI / 2;\n while (x > PI) {\n x -= PI2;\n }\n const cos = 1.27323954 * x - 0.405284735 * signSqr(x);\n return 0.225 * (signSqr(cos) - cos) + cos;\n};\n\n/**\n * Extracts average color from BlurHash image\n * @param {string} blurHash BlurHash image string\n * @returns {[number, number, number]}\n */\nexport function getBlurHashAverageColor(blurHash) {\n const val = decode83(blurHash, 2, 6);\n return [val >> 16, (val >> 8) & 255, val & 255];\n}\n\n/**\n * Decodes BlurHash image\n * @param {string} blurHash BlurHash image string\n * @param {number} width Output image width\n * @param {number} height Output image height\n * @param {?number} punch\n * @returns {Uint8ClampedArray}\n */\nexport function decodeBlurHash(blurHash, width, height, punch) {\n const sizeFlag = decode83(blurHash, 0, 1);\n const numX = (sizeFlag % 9) + 1;\n const numY = ~~(sizeFlag / 9) + 1;\n const size = numX * numY;\n\n let i = 0,\n j = 0,\n x = 0,\n y = 0,\n r = 0,\n g = 0,\n b = 0,\n basis = 0,\n basisY = 0,\n colorIndex = 0,\n pixelIndex = 0,\n value = 0;\n\n const maximumValue = ((decode83(blurHash, 1, 2) + 1) / 13446) * (punch | 1);\n\n const colors = new Float64Array(size * 3);\n\n const averageColor = getBlurHashAverageColor(blurHash);\n for (i = 0; i < 3; i++) {\n colors[i] = sRGBToLinear(averageColor[i]);\n }\n\n for (i = 1; i < size; i++) {\n value = decode83(blurHash, 4 + i * 2, 6 + i * 2);\n colors[i * 3] = signSqr(~~(value / 361) - 9) * maximumValue;\n colors[i * 3 + 1] = signSqr((~~(value / 19) % 19) - 9) * maximumValue;\n colors[i * 3 + 2] = signSqr((value % 19) - 9) * maximumValue;\n }\n\n const cosinesY = new Float64Array(numY * height);\n const cosinesX = new Float64Array(numX * width);\n for (j = 0; j < numY; j++) {\n for (y = 0; y < height; y++) {\n cosinesY[j * height + y] = fastCos((PI * y * j) / height);\n }\n }\n for (i = 0; i < numX; i++) {\n for (x = 0; x < width; x++) {\n cosinesX[i * width + x] = fastCos((PI * x * i) / width);\n }\n }\n\n const bytesPerRow = width * 4;\n const pixels = new Uint8ClampedArray(bytesPerRow * height);\n\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n r = g = b = 0;\n for (j = 0; j < numY; j++) {\n basisY = cosinesY[j * height + y];\n for (i = 0; i < numX; i++) {\n basis = cosinesX[i * width + x] * basisY;\n colorIndex = (i + j * numX) * 3;\n r += colors[colorIndex] * basis;\n g += colors[colorIndex + 1] * basis;\n b += colors[colorIndex + 2] * basis;\n }\n }\n\n pixelIndex = 4 * x + y * bytesPerRow;\n pixels[pixelIndex] = linearTosRGB(r);\n pixels[pixelIndex + 1] = linearTosRGB(g);\n pixels[pixelIndex + 2] = linearTosRGB(b);\n pixels[pixelIndex + 3] = 255; // alpha\n }\n }\n return pixels;\n}\n","/**\n * @param {string[]} splittedHtml\n * @param {{ char?: string; count?: number}} options\n * @returns {string}\n */\nconst addIndentation = (splittedHtml, options = {}) => {\n const char = options.char || ' '\n const count = options.count || 2\n\n let level = 0\n const opened = []\n\n return splittedHtml.reverse().reduce((indented, elTag) => {\n if (opened.length\n && level\n && opened[level]\n /* if current element tag is the same as previously opened one */\n && opened[level] === elTag.substring(1, opened[level].length + 1)\n ) {\n opened.splice(level, 1)\n level--\n }\n\n const indentation = char.repeat(level ? level * count : 0)\n\n const newIndented = [\n `${indentation}${elTag}`,\n ...indented,\n ]\n\n // if current element tag is closing tag\n // add it to opened elements\n if (elTag.substring(0, 2) === ' (\n // Replace\n // - 1 or more spaces or tabs at the start of line\n // - 1 or more spaces or tabs at the end of line\n // - empty lines\n // with empty string\n nonFormattedString.trim().replace(/(^(\\s|\\t)+|(( |\\t)+)$)/gm, '')\n)\n\n/**\n * @param {string} markup\n * @returns {string[]} Array of strings splitted on new lines without empty lines\n */\nconst mergeAttributesWithElements = (markup) => {\n const splittedMarkup = removeEmptyLines(markup).split('\\n')\n\n const mergedLines = []\n let currentElement = ''\n for (let i = 0; i < splittedMarkup.length; i += 1) {\n const line = splittedMarkup[i]\n\n // If line is closing element/tag separate closing tag from rest of the line with space\n if (line.endsWith('/>')) {\n mergedLines.push(`${currentElement}${line.slice(0, -2)} />`)\n currentElement = ''\n // eslint-disable-next-line no-continue\n continue\n }\n\n if (line.endsWith('>')) {\n mergedLines.push(`${currentElement}${\n line.startsWith('>') || line.startsWith('<') ? '' : ' '\n }${line}`)\n currentElement = ''\n // eslint-disable-next-line no-continue\n continue\n }\n\n currentElement += currentElement.length ? ` ${line}` : line\n }\n\n return mergedLines\n}\n\nmodule.exports = {\n mergeAttributesWithElements,\n removeEmptyLines,\n}\n","const addIndentation = require('./utils/addIndentation')\nconst { mergeAttributesWithElements } = require('./utils/toLines')\n\n/**\n * @param {string} markup\n * @param {{ char?: string; count?: number }} options\n * @returns {string}\n */\nconst prettify = (markup, options = {}) => {\n const splitted = mergeAttributesWithElements(markup)\n\n return addIndentation(splitted, options)\n}\n\nmodule.exports = prettify\n","import { i18n } from '@lingui/core';\nimport { plural } from '@lingui/core/macro';\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport { useState } from 'preact/hooks';\n\nimport shortenNumber from '../utils/shorten-number';\n\nimport EmojiText from './emoji-text';\nimport Icon from './icon';\nimport RelativeTime from './relative-time';\n\nexport default function Poll({\n poll,\n lang,\n readOnly,\n refresh = () => {},\n votePoll = () => {},\n}) {\n const { t } = useLingui();\n const [uiState, setUIState] = useState('default');\n const {\n expired,\n expiresAt,\n id,\n multiple,\n options,\n ownVotes,\n voted,\n votersCount,\n votesCount = 0,\n emojis,\n } = poll;\n const expiresAtDate = !!expiresAt && new Date(expiresAt); // Update poll at point of expiry\n // NOTE: Disable this because setTimeout runs immediately if delay is too large\n // https://stackoverflow.com/a/56718027/20838\n // useEffect(() => {\n // let timeout;\n // if (!expired && expiresAtDate) {\n // const ms = expiresAtDate.getTime() - Date.now() + 1; // +1 to give it a little buffer\n // if (ms > 0) {\n // timeout = setTimeout(() => {\n // setUIState('loading');\n // (async () => {\n // // await refresh();\n // setUIState('default');\n // })();\n // }, ms);\n // }\n // }\n // return () => {\n // clearTimeout(timeout);\n // };\n // }, [expired, expiresAtDate]);\n\n const pollVotesCount = multiple ? votersCount || votesCount : votesCount;\n let roundPrecision = 0;\n\n if (pollVotesCount <= 1000) {\n roundPrecision = 0;\n } else if (pollVotesCount <= 10000) {\n roundPrecision = 1;\n } else if (pollVotesCount <= 100000) {\n roundPrecision = 2;\n }\n\n const [showResults, setShowResults] = useState(false);\n const optionsHaveVoteCounts = options.every((o) => o.votesCount !== null);\n\n return (\n \n {(showResults && optionsHaveVoteCounts) || voted || expired ? (\n <>\n
\n {options.map((option, i) => {\n const { title, votesCount: optionVotesCount } = option;\n const ratio = pollVotesCount\n ? optionVotesCount / pollVotesCount\n : 0;\n const percentage = ratio\n ? ratio.toLocaleString(i18n.locale || undefined, {\n style: 'percent',\n maximumFractionDigits: roundPrecision,\n })\n : '0%';\n\n const isLeading =\n optionVotesCount > 0 &&\n optionVotesCount ===\n Math.max(...options.map((o) => o.votesCount));\n return (\n \n
\n \n \n \n {voted && ownVotes.includes(i) && (\n <>\n {' '}\n \n \n )}\n
\n \n {percentage}\n
\n \n );\n })}\n \n {!expired && !voted && (\n {\n e.preventDefault();\n setShowResults(false);\n }}\n >\n Hide results\n \n )}\n \n ) : (\n {\n e.preventDefault();\n const form = e.target;\n const formData = new FormData(form);\n const choices = [];\n formData.forEach((value, key) => {\n if (key === 'poll') {\n choices.push(value);\n }\n });\n if (!choices.length) return;\n setUIState('loading');\n await votePoll(choices);\n setUIState('default');\n }}\n >\n
\n {options.map((option, i) => {\n const { title } = option;\n return (\n
\n \n
\n );\n })}\n
\n {!readOnly && (\n \n Vote\n \n )}\n \n )}\n

\n {!expired && !readOnly && (\n {\n e.preventDefault();\n setUIState('loading');\n\n (async () => {\n await refresh();\n setUIState('default');\n })();\n }}\n title={t`Refresh`}\n >\n \n \n )}\n {!voted && !expired && !readOnly && optionsHaveVoteCounts && (\n {\n e.preventDefault();\n setShowResults(!showResults);\n }}\n title={showResults ? t`Hide results` : t`Show results`}\n >\n {' '}\n \n )}\n {!expired && !readOnly && ' '}\n \n {shortenNumber(votesCount)} vote\n \n }\n other={\n \n {shortenNumber(votesCount)} votes\n \n }\n />\n {!!votersCount && votersCount !== votesCount && (\n <>\n {' '}\n •{' '}\n \n {shortenNumber(votersCount)}{' '}\n voter\n \n }\n other={\n \n {shortenNumber(votersCount)}{' '}\n voters\n \n }\n />\n \n )}{' '}\n •{' '}\n {expired ? (\n !!expiresAtDate ? (\n \n Ended \n \n ) : (\n t`Ended`\n )\n ) : !!expiresAtDate ? (\n \n Ending \n \n ) : (\n t`Ending`\n )}\n

\n \n );\n}\n","import { createContext } from 'preact';\n\nconst FilterContext = createContext();\nexport default FilterContext;\n","import mem from './mem';\nimport { getCurrentAccountID } from './store-utils';\n\nfunction _isFiltered(filtered, filterContext) {\n if (!filtered?.length) return false;\n const appliedFilters = filtered.filter((f) => {\n const { filter } = f;\n const hasContext = filter.context.includes(filterContext);\n if (!hasContext) return false;\n if (!filter.expiresAt) return hasContext;\n return new Date(filter.expiresAt) > new Date();\n });\n if (!appliedFilters.length) return false;\n const isHidden = appliedFilters.some((f) => f.filter.filterAction === 'hide');\n if (isHidden)\n return {\n action: 'hide',\n };\n const isBlur = appliedFilters.every((f) => f.filter.filterAction === 'blur');\n if (isBlur) {\n const filterTitles = appliedFilters.map((f) => f.filter.title);\n return {\n action: 'blur',\n titles: filterTitles,\n titlesStr: filterTitles.join(' • '),\n };\n }\n // const isWarn = appliedFilters.some((f) => f.filter.filterAction === 'warn');\n const isWarn = appliedFilters.some((f) => !!f.filter.filterAction);\n // Re: spec; unknown values for filter_action should be treated as warn.\n if (isWarn) {\n const filterTitles = appliedFilters.map((f) => f.filter.title);\n return {\n action: 'warn',\n titles: filterTitles,\n titlesStr: filterTitles.join(' • '),\n };\n }\n return false;\n}\nexport const isFiltered = mem(_isFiltered);\n\nexport function filteredItem(item, filterContext, currentAccountID) {\n const { filtered } = item;\n if (!filtered?.length) return true;\n const isSelf = currentAccountID && item.account?.id === currentAccountID;\n if (isSelf) return true;\n const filterState = isFiltered(filtered, filterContext);\n if (!filterState) return true;\n if (filterState.action === 'hide') return false;\n // item._filtered = filterState;\n return true;\n}\nexport function filteredItems(items, filterContext) {\n if (!items?.length) return [];\n if (!filterContext) return items;\n const currentAccountID = getCurrentAccountID();\n return items.filter((item) =>\n filteredItem(item, filterContext, currentAccountID),\n );\n}\n","import punycode from 'punycode/';\n\nexport default function getDomain(url) {\n try {\n return punycode.toUnicode(\n URL.parse(url)\n .hostname.replace(/^www\\./, '')\n .replace(/\\/$/, ''),\n );\n } catch (e) {\n return ''; // just give up\n }\n}\n","const div = document.createElement('div');\nexport default function htmlContentLength(html) {\n if (!html) return 0;\n div.innerHTML = html;\n // .invisible spans for links\n // e.g. https://mastodon.social\n div.querySelectorAll('.invisible').forEach((el) => {\n el.remove();\n });\n return div.innerText.length;\n}\n","export const supportsTTS = 'speechSynthesis' in window;\n\nexport function speak(text, lang) {\n if (!supportsTTS) return;\n try {\n if (speechSynthesis.speaking) {\n speechSynthesis.cancel();\n }\n const utterance = new SpeechSynthesisUtterance(text);\n if (lang) utterance.lang = lang;\n speechSynthesis.speak(utterance);\n } catch (e) {\n alert(e);\n }\n}\n","import{useRef as r,useEffect as n,useMemo as t,useState as e,useCallback as u}from\"react\";function c(e,u,c,i){var a=this,o=r(null),f=r(0),l=r(0),v=r(null),m=r([]),d=r(),g=r(),p=r(e),w=r(!0);p.current=e;var s=\"undefined\"!=typeof window,x=!u&&0!==u&&s;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");u=+u||0;var h=!!(c=c||{}).leading,y=!(\"trailing\"in c)||!!c.trailing,F=\"maxWait\"in c,A=\"debounceOnServer\"in c&&!!c.debounceOnServer,D=F?Math.max(+c.maxWait||0,u):null;n(function(){return w.current=!0,function(){w.current=!1}},[]);var T=t(function(){var r=function(r){var n=m.current,t=d.current;return m.current=d.current=null,f.current=r,l.current=l.current||r,g.current=p.current.apply(t,n)},n=function(r,n){x&&cancelAnimationFrame(v.current),v.current=x?requestAnimationFrame(r):setTimeout(r,n)},t=function(r){if(!w.current)return!1;var n=r-o.current;return!o.current||n>=u||n<0||F&&r-f.current>=D},e=function(n){return v.current=null,y&&m.current?r(n):(m.current=d.current=null,g.current)},c=function r(){var c=Date.now();if(h&&l.current===f.current&&T(),t(c))return e(c);if(w.current){var i=u-(c-o.current),a=F?Math.min(i,D-(c-f.current)):i;n(r,a)}},T=function(){i&&i({})},W=function(){if(s||A){var e=Date.now(),i=t(e);if(m.current=[].slice.call(arguments),d.current=a,o.current=e,i){if(!v.current&&w.current)return f.current=o.current,n(c,u),h?r(o.current):g.current;if(F)return n(c,u),r(o.current)}return v.current||n(c,u),g.current}};return W.cancel=function(){v.current&&(x?cancelAnimationFrame(v.current):clearTimeout(v.current)),f.current=0,m.current=o.current=d.current=v.current=null},W.isPending=function(){return!!v.current},W.flush=function(){return v.current?e(Date.now()):g.current},W},[h,F,u,D,y,x,s,A,i]);return T}function i(r,n){return r===n}function a(n,t,a){var o=a&&a.equalityFn||i,f=r(n),l=e({})[1],v=c(u(function(r){f.current=r,l({})},[l]),t,a,l),m=r(n);return o(m.current,n)||(v(n),m.current=n),[f.current,v]}function o(r,n,t){var e=void 0===t?{}:t,u=e.leading,i=e.trailing;return c(r,n,{maxWait:n,leading:void 0===u||u,trailing:void 0===i||i})}export{a as useDebounce,c as useDebouncedCallback,o as useThrottledCallback};\n//# sourceMappingURL=index.module.js.map\n","import { useRef, useEffect, useCallback, useState, useMemo } from 'react';\n\n// This could've been more streamlined with internal state instead of abusing\n// refs to such extent, but then composing hooks and components could not opt out of unnecessary renders.\nfunction useResolvedElement(subscriber, refOrElement) {\n var lastReportRef = useRef(null);\n var refOrElementRef = useRef(null);\n refOrElementRef.current = refOrElement;\n var cbElementRef = useRef(null); // Calling re-evaluation after each render without using a dep array,\n // as the ref object's current value could've changed since the last render.\n\n useEffect(function () {\n evaluateSubscription();\n });\n var evaluateSubscription = useCallback(function () {\n var cbElement = cbElementRef.current;\n var refOrElement = refOrElementRef.current; // Ugly ternary. But smaller than an if-else block.\n\n var element = cbElement ? cbElement : refOrElement ? refOrElement instanceof Element ? refOrElement : refOrElement.current : null;\n\n if (lastReportRef.current && lastReportRef.current.element === element && lastReportRef.current.subscriber === subscriber) {\n return;\n }\n\n if (lastReportRef.current && lastReportRef.current.cleanup) {\n lastReportRef.current.cleanup();\n }\n\n lastReportRef.current = {\n element: element,\n subscriber: subscriber,\n // Only calling the subscriber, if there's an actual element to report.\n // Setting cleanup to undefined unless a subscriber returns one, as an existing cleanup function would've been just called.\n cleanup: element ? subscriber(element) : undefined\n };\n }, [subscriber]); // making sure we call the cleanup function on unmount\n\n useEffect(function () {\n return function () {\n if (lastReportRef.current && lastReportRef.current.cleanup) {\n lastReportRef.current.cleanup();\n lastReportRef.current = null;\n }\n };\n }, []);\n return useCallback(function (element) {\n cbElementRef.current = element;\n evaluateSubscription();\n }, [evaluateSubscription]);\n}\n\n// We're only using the first element of the size sequences, until future versions of the spec solidify on how\n// exactly it'll be used for fragments in multi-column scenarios:\n// From the spec:\n// > The box size properties are exposed as FrozenArray in order to support elements that have multiple fragments,\n// > which occur in multi-column scenarios. However the current definitions of content rect and border box do not\n// > mention how those boxes are affected by multi-column layout. In this spec, there will only be a single\n// > ResizeObserverSize returned in the FrozenArray, which will correspond to the dimensions of the first column.\n// > A future version of this spec will extend the returned FrozenArray to contain the per-fragment size information.\n// (https://drafts.csswg.org/resize-observer/#resize-observer-entry-interface)\n//\n// Also, testing these new box options revealed that in both Chrome and FF everything is returned in the callback,\n// regardless of the \"box\" option.\n// The spec states the following on this:\n// > This does not have any impact on which box dimensions are returned to the defined callback when the event\n// > is fired, it solely defines which box the author wishes to observe layout changes on.\n// (https://drafts.csswg.org/resize-observer/#resize-observer-interface)\n// I'm not exactly clear on what this means, especially when you consider a later section stating the following:\n// > This section is non-normative. An author may desire to observe more than one CSS box.\n// > In this case, author will need to use multiple ResizeObservers.\n// (https://drafts.csswg.org/resize-observer/#resize-observer-interface)\n// Which is clearly not how current browser implementations behave, and seems to contradict the previous quote.\n// For this reason I decided to only return the requested size,\n// even though it seems we have access to results for all box types.\n// This also means that we get to keep the current api, being able to return a simple { width, height } pair,\n// regardless of box option.\nfunction extractSize(entry, boxProp, sizeType) {\n if (!entry[boxProp]) {\n if (boxProp === \"contentBoxSize\") {\n // The dimensions in `contentBoxSize` and `contentRect` are equivalent according to the spec.\n // See the 6th step in the description for the RO algorithm:\n // https://drafts.csswg.org/resize-observer/#create-and-populate-resizeobserverentry-h\n // > Set this.contentRect to logical this.contentBoxSize given target and observedBox of \"content-box\".\n // In real browser implementations of course these objects differ, but the width/height values should be equivalent.\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n\n return undefined;\n } // A couple bytes smaller than calling Array.isArray() and just as effective here.\n\n\n return entry[boxProp][0] ? entry[boxProp][0][sizeType] : // TS complains about this, because the RO entry type follows the spec and does not reflect Firefox's current\n // behaviour of returning objects instead of arrays for `borderBoxSize` and `contentBoxSize`.\n // @ts-ignore\n entry[boxProp][sizeType];\n}\n\nfunction useResizeObserver(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // Saving the callback as a ref. With this, I don't need to put onResize in the\n // effect dep array, and just passing in an anonymous function without memoising\n // will not reinstantiate the hook's ResizeObserver.\n var onResize = opts.onResize;\n var onResizeRef = useRef(undefined);\n onResizeRef.current = onResize;\n var round = opts.round || Math.round; // Using a single instance throughout the hook's lifetime\n\n var resizeObserverRef = useRef();\n\n var _useState = useState({\n width: undefined,\n height: undefined\n }),\n size = _useState[0],\n setSize = _useState[1]; // In certain edge cases the RO might want to report a size change just after\n // the component unmounted.\n\n\n var didUnmount = useRef(false);\n useEffect(function () {\n didUnmount.current = false;\n return function () {\n didUnmount.current = true;\n };\n }, []); // Using a ref to track the previous width / height to avoid unnecessary renders.\n\n var previous = useRef({\n width: undefined,\n height: undefined\n }); // This block is kinda like a useEffect, only it's called whenever a new\n // element could be resolved based on the ref option. It also has a cleanup\n // function.\n\n var refCallback = useResolvedElement(useCallback(function (element) {\n // We only use a single Resize Observer instance, and we're instantiating it on demand, only once there's something to observe.\n // This instance is also recreated when the `box` option changes, so that a new observation is fired if there was a previously observed element with a different box option.\n if (!resizeObserverRef.current || resizeObserverRef.current.box !== opts.box || resizeObserverRef.current.round !== round) {\n resizeObserverRef.current = {\n box: opts.box,\n round: round,\n instance: new ResizeObserver(function (entries) {\n var entry = entries[0];\n var boxProp = opts.box === \"border-box\" ? \"borderBoxSize\" : opts.box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\";\n var reportedWidth = extractSize(entry, boxProp, \"inlineSize\");\n var reportedHeight = extractSize(entry, boxProp, \"blockSize\");\n var newWidth = reportedWidth ? round(reportedWidth) : undefined;\n var newHeight = reportedHeight ? round(reportedHeight) : undefined;\n\n if (previous.current.width !== newWidth || previous.current.height !== newHeight) {\n var newSize = {\n width: newWidth,\n height: newHeight\n };\n previous.current.width = newWidth;\n previous.current.height = newHeight;\n\n if (onResizeRef.current) {\n onResizeRef.current(newSize);\n } else {\n if (!didUnmount.current) {\n setSize(newSize);\n }\n }\n }\n })\n };\n }\n\n resizeObserverRef.current.instance.observe(element, {\n box: opts.box\n });\n return function () {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.instance.unobserve(element);\n }\n };\n }, [opts.box, round]), opts.ref);\n return useMemo(function () {\n return {\n ref: refCallback,\n width: size.width,\n height: size.height\n };\n }, [refCallback, size.width, size.height]);\n}\n\nexport { useResizeObserver as default };\n","import { useRef } from 'preact/hooks';\nimport { useThrottledCallback } from 'use-debounce';\nimport useResizeObserver from 'use-resize-observer';\n\nexport default function useTruncated({ className = 'truncated' } = {}) {\n const ref = useRef();\n const onResize = useThrottledCallback(({ height }) => {\n if (ref.current) {\n const { scrollHeight } = ref.current;\n let truncated = scrollHeight > height;\n if (truncated) {\n const { height: _height, maxHeight } = getComputedStyle(ref.current);\n const computedHeight = parseInt(maxHeight || _height, 10);\n truncated = scrollHeight > computedHeight;\n }\n ref.current.classList.toggle(className, truncated);\n }\n }, 300);\n useResizeObserver({\n ref,\n box: 'border-box',\n onResize,\n });\n return ref;\n}\n","export default {\n public: 'earth',\n unlisted: 'group',\n private: 'lock',\n direct: 'message',\n local: 'building',\n};\n","export var styleRoot = 'kvfysmfp';\nexport var styleChild = 'ufhsfnkm';\nexport var styles = \".\".concat(styleRoot, \"{overflow:hidden;touch-action:none}.\").concat(styleChild, \"{transform-origin: 0 0}\");\n","var isSsr = typeof window === 'undefined';\nexport var isTouch = function () {\n return !isSsr && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n};\nexport var make2dTransformValue = function (_a) {\n var x = _a.x, y = _a.y, scale = _a.scale;\n return \"scale(\".concat(scale, \") translate(\").concat(x, \"px, \").concat(y, \"px)\");\n};\nexport var make3dTransformValue = function (_a) {\n var x = _a.x, y = _a.y, scale = _a.scale;\n return \"scale3d(\".concat(scale, \",\").concat(scale, \", 1) translate3d(\").concat(x, \"px, \").concat(y, \"px, 0)\");\n};\nexport var hasTranslate3DSupport = function () {\n var css = !isSsr && window.CSS;\n return css && css.supports && css.supports('transform', 'translate3d(0,0,0)');\n};\n","var min = Math.min, max = Math.max;\nexport function getOffsetBounds(_a) {\n var containerDimension = _a.containerDimension, childDimension = _a.childDimension, padding = _a.padding, centerContained = _a.centerContained;\n var diff = childDimension - containerDimension;\n if (diff + 2 * padding <= 0 && centerContained) {\n return [diff / 2, diff / 2];\n }\n else {\n return [min(diff + padding, 0) - padding, max(0, diff + padding)];\n }\n}\n","import { __assign, __extends } from \"tslib\";\nimport React, { Component, createRef, Children, cloneElement } from 'react';\nimport { styleRoot, styleChild, styles } from './styles.css';\nimport { isTouch } from '../utils';\nimport { getOffsetBounds } from './getOffsetBounds';\nvar classnames = function (base, other) {\n return other ? \"\".concat(base, \" \").concat(other) : base;\n};\nvar abs = Math.abs, min = Math.min, sqrt = Math.sqrt;\nvar isSsr = typeof window === 'undefined';\nvar isMac = isSsr ? false : /(Mac)/i.test(navigator.platform);\nvar isDragInteraction = function (i) { return i === 'drag'; };\nvar isZoomInteraction = function (i) { return i === 'zoom'; };\nvar isZoomGesture = function (wheelEvent) { return isMac && wheelEvent.ctrlKey; };\nvar cancelEvent = function (event) {\n event.stopPropagation();\n event.preventDefault();\n};\nvar getDistance = function (a, b) {\n var x = a.x - b.x;\n var y = a.y - b.y;\n return sqrt(x * x + y * y);\n};\nvar calculateScale = function (startTouches, endTouches) {\n var startDistance = getDistance(startTouches[0], startTouches[1]);\n var endDistance = getDistance(endTouches[0], endTouches[1]);\n return endDistance / startDistance;\n};\nvar isCloseTo = function (value, expected) {\n return value > expected - 0.01 && value < expected + 0.01;\n};\nvar swing = function (p) { return -Math.cos(p * Math.PI) / 2 + 0.5; };\nvar getPointByPageCoordinates = function (touch) { return ({\n x: touch.pageX,\n y: touch.pageY,\n}); };\nvar getPageCoordinatesByTouches = function (touches) {\n return Array.from(touches).map(getPointByPageCoordinates);\n};\nvar sum = function (a, b) { return a + b; };\nvar getVectorAvg = function (vectors) { return ({\n x: vectors.map(function (_a) {\n var x = _a.x;\n return x;\n }).reduce(sum, 0) / vectors.length,\n y: vectors.map(function (_a) {\n var y = _a.y;\n return y;\n }).reduce(sum, 0) / vectors.length,\n}); };\nvar clamp = function (min, max, value) {\n return value < min ? min : value > max ? max : value;\n};\nvar shouldInterceptWheel = function (event) {\n return !(event.ctrlKey || event.metaKey);\n};\nvar getElementSize = function (element) {\n if (element) {\n var offsetWidth = element.offsetWidth, offsetHeight = element.offsetHeight;\n // Any DOMElement\n if (offsetWidth && offsetHeight) {\n return { width: offsetWidth, height: offsetHeight };\n }\n // Svg support\n var style = getComputedStyle(element);\n var width = parseFloat(style.width);\n var height = parseFloat(style.height);\n if (height && width) {\n return { width: width, height: height };\n }\n }\n return { width: 0, height: 0 };\n};\nvar calculateVelocity = function (startPoint, endPoint) { return ({\n x: endPoint.x - startPoint.x,\n y: endPoint.y - startPoint.y,\n}); };\nvar comparePoints = function (p1, p2) { return p1.x === p2.x && p1.y === p2.y; };\nvar noup = function () { };\nvar zeroPoint = { x: 0, y: 0 };\nvar PinchZoom = /** @class */ (function (_super) {\n __extends(PinchZoom, _super);\n function PinchZoom() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._prevDragMovePoint = null;\n _this._containerObserver = null;\n _this._fingers = 0;\n _this._firstMove = true;\n _this._initialOffset = __assign({}, zeroPoint);\n _this._interaction = null;\n _this._isDoubleTap = false;\n _this._isOffsetsSet = false;\n _this._lastDragPosition = null;\n _this._lastScale = 1;\n _this._lastTouchStart = 0;\n _this._lastZoomCenter = null;\n _this._listenMouseMove = false;\n _this._nthZoom = 0;\n _this._offset = __assign({}, zeroPoint);\n _this._startOffset = __assign({}, zeroPoint);\n _this._startTouches = null;\n _this._updatePlaned = false;\n _this._wheelTimeOut = null;\n _this._zoomFactor = 1;\n _this._initialZoomFactor = 1;\n _this._draggingPoint = __assign({}, zeroPoint);\n // It help reduce behavior difference between touch and mouse events\n _this._ignoreNextClick = false;\n // @ts-ignore\n _this._containerRef = createRef();\n _this._handleClick = function (clickEvent) {\n if (_this._ignoreNextClick) {\n _this._ignoreNextClick = false;\n clickEvent.stopPropagation();\n }\n };\n _this._onResize = function () {\n var _a;\n if ((_a = _this._containerRef) === null || _a === void 0 ? void 0 : _a.current) {\n _this._updateInitialZoomFactor();\n _this._setupOffsets();\n _this._update();\n }\n };\n _this._handlerOnTouchEnd = _this._handlerIfEnable(function (touchEndEvent) {\n _this._fingers = touchEndEvent.touches.length;\n if (_this.props.shouldCancelHandledTouchEndEvents &&\n (isZoomInteraction(_this._interaction) ||\n (isDragInteraction(_this._interaction) &&\n (_this._startOffset.x !== _this._offset.x ||\n _this._startOffset.y !== _this._offset.y)))) {\n cancelEvent(touchEndEvent);\n }\n if (isDragInteraction(_this._interaction) && !_this._enoughToDrag()) {\n _this._handleClick(touchEndEvent);\n }\n _this._updateInteraction(touchEndEvent);\n });\n _this._handlerOnTouchStart = _this._handlerIfEnable(function (touchStartEvent) {\n _this._firstMove = true;\n _this._fingers = touchStartEvent.touches.length;\n _this._detectDoubleTap(touchStartEvent);\n });\n _this._handlerOnTouchMove = _this._handlerIfEnable(function (touchMoveEvent) {\n if (_this._isDoubleTap) {\n return;\n }\n _this._collectInertia(touchMoveEvent);\n if (_this._firstMove) {\n _this._updateInteraction(touchMoveEvent);\n if (_this._interaction) {\n cancelEvent(touchMoveEvent);\n }\n _this._startOffset = __assign({}, _this._offset);\n _this._startTouches = getPageCoordinatesByTouches(touchMoveEvent.touches);\n }\n else {\n if (isZoomInteraction(_this._interaction)) {\n if (_this._startTouches &&\n _this._startTouches.length === 2 &&\n touchMoveEvent.touches.length === 2) {\n _this._handleZoom(touchMoveEvent, calculateScale(_this._startTouches, getPageCoordinatesByTouches(touchMoveEvent.touches)));\n }\n }\n else if (isDragInteraction(_this._interaction)) {\n _this._handleDrag(touchMoveEvent);\n }\n if (_this._interaction) {\n cancelEvent(touchMoveEvent);\n _this._update();\n }\n }\n _this._firstMove = false;\n });\n _this._handlerWheel = function (wheelEvent) {\n if (_this.props.shouldInterceptWheel(wheelEvent)) {\n return;\n }\n cancelEvent(wheelEvent);\n var pageX = wheelEvent.pageX, pageY = wheelEvent.pageY, deltaY = wheelEvent.deltaY, deltaMode = wheelEvent.deltaMode;\n var scaleDelta = 1;\n if (isZoomGesture(wheelEvent) || deltaMode === 1) {\n scaleDelta = 15;\n }\n var likeTouchEvent = {\n touches: [\n // @ts-ignore\n { pageX: pageX, pageY: pageY },\n ],\n };\n var center = _this._getOffsetByFirstTouch(likeTouchEvent);\n var dScale = deltaY * scaleDelta;\n _this._stopAnimation();\n _this._scaleTo(_this._zoomFactor - dScale / _this.props.wheelScaleFactor, center);\n _this._update();\n clearTimeout(\n // @ts-ignore\n _this._wheelTimeOut);\n _this._wheelTimeOut = setTimeout(function () { return _this._sanitize(); }, 100);\n };\n // @ts-ignore\n _this._handlers = _this.props.isTouch()\n ? [\n ['touchstart', _this._handlerOnTouchStart],\n ['touchend', _this._handlerOnTouchEnd],\n ['touchmove', _this._handlerOnTouchMove],\n ]\n : [\n [\n 'mousemove',\n _this.simulate(_this._handlerOnTouchMove),\n _this.props._document,\n ],\n [\n 'mouseup',\n _this.simulate(_this._handlerOnTouchEnd),\n _this.props._document,\n ],\n ['mousedown', _this.simulate(_this._handlerOnTouchStart)],\n ['click', _this._handleClick],\n ['wheel', _this._handlerWheel],\n ];\n return _this;\n }\n PinchZoom.prototype._handleDragStart = function (event) {\n this._ignoreNextClick = true;\n this.props.onDragStart();\n this._stopAnimation();\n this._resetInertia();\n this._lastDragPosition = null;\n this._hasInteraction = true;\n this._draggingPoint = this._offset;\n this._handleDrag(event);\n };\n PinchZoom.prototype._handleDrag = function (event) {\n var touch = this._getOffsetByFirstTouch(event);\n if (this._enoughToDrag()) {\n this._drag(touch, this._lastDragPosition);\n }\n else {\n this._virtualDrag(touch, this._lastDragPosition);\n }\n this._offset = this._sanitizeOffset(this._offset);\n this._lastDragPosition = touch;\n };\n PinchZoom.prototype._resetInertia = function () {\n this._velocity = null;\n this._prevDragMovePoint = null;\n };\n PinchZoom.prototype._realizeInertia = function () {\n var _this = this;\n var _a = this.props, inertiaFriction = _a.inertiaFriction, inertia = _a.inertia;\n if (!inertia || !this._velocity) {\n return;\n }\n var _b = this._velocity, x = _b.x, y = _b.y;\n if (x || y) {\n this._stopAnimation();\n this._resetInertia();\n var renderFrame = function () {\n x *= inertiaFriction;\n y *= inertiaFriction;\n if (!x && !y) {\n return _this._stopAnimation();\n }\n var prevOffset = __assign({}, _this._offset);\n _this._addOffset({ x: x, y: y });\n _this._offset = _this._sanitizeOffset(_this._offset);\n if (comparePoints(prevOffset, _this._offset)) {\n return _this._stopAnimation();\n }\n _this._update({ isAnimation: true });\n };\n this._animate(renderFrame, { duration: 9999 });\n }\n };\n PinchZoom.prototype._collectInertia = function (_a) {\n var touches = _a.touches;\n if (!this.props.inertia) {\n return;\n }\n var currentCoordinates = getPageCoordinatesByTouches(touches)[0];\n var prevPoint = this._prevDragMovePoint;\n if (prevPoint) {\n this._velocity = calculateVelocity(currentCoordinates, prevPoint);\n }\n this._prevDragMovePoint = currentCoordinates;\n };\n PinchZoom.prototype._handleDragEnd = function () {\n this.props.onDragEnd();\n this._end();\n this._realizeInertia();\n };\n PinchZoom.prototype._handleZoomStart = function () {\n this.props.onZoomStart();\n this._stopAnimation();\n this._lastScale = 1;\n this._nthZoom = 0;\n this._lastZoomCenter = null;\n this._hasInteraction = true;\n };\n PinchZoom.prototype._handleZoom = function (event, newScale) {\n var touchCenter = getVectorAvg(this._getOffsetTouches(event));\n var scale = newScale / this._lastScale;\n this._lastScale = newScale;\n // The first touch events are thrown away since they are not precise\n this._nthZoom += 1;\n if (this._nthZoom > 3) {\n this._scale(scale, touchCenter);\n this._drag(touchCenter, this._lastZoomCenter);\n if (this.props.enforceBoundsDuringZoom) {\n this._offset = this._sanitizeOffset(this._offset);\n }\n }\n this._lastZoomCenter = touchCenter;\n };\n PinchZoom.prototype._handleZoomEnd = function () {\n this.props.onZoomEnd();\n this._end();\n };\n PinchZoom.prototype._handleDoubleTap = function (event) {\n var _this = this;\n if (this._hasInteraction || this.props.tapZoomFactor === 0) {\n return;\n }\n var needZoomOut = (this.props.doubleTapZoomOutOnMaxScale &&\n this._zoomFactor === this.props.maxZoom) ||\n (this.props.doubleTapToggleZoom && this._zoomFactor > 1);\n this.props.onDoubleTap();\n this._ignoreNextClick = true;\n var zoomFactor = this._zoomFactor + this.props.tapZoomFactor;\n var startZoomFactor = this._zoomFactor;\n var updateProgress = function (progress) {\n _this._scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n };\n var center = this._getOffsetByFirstTouch(event);\n this._isDoubleTap = true;\n if (startZoomFactor > zoomFactor) {\n center = this._getCurrentZoomCenter();\n }\n needZoomOut ? this._zoomOutAnimation() : this._animate(updateProgress);\n };\n PinchZoom.prototype._computeInitialOffset = function () {\n var rect = this._getContainerRect();\n var _a = this._getChildSize(), width = _a.width, height = _a.height;\n var x = -abs(width * this._getInitialZoomFactor() - rect.width) / 2;\n var y = -abs(height * this._getInitialZoomFactor() - rect.height) / 2;\n this._initialOffset = { x: x, y: y };\n };\n PinchZoom.prototype._resetOffset = function () {\n this._offset = __assign({}, this._initialOffset);\n };\n PinchZoom.prototype._setupOffsets = function () {\n if (this.props.setOffsetsOnce && this._isOffsetsSet) {\n return;\n }\n this._isOffsetsSet = true;\n this._computeInitialOffset();\n this._resetOffset();\n };\n PinchZoom.prototype._sanitizeOffset = function (offset) {\n var rect = this._getContainerRect();\n var _a = this._getChildSize(), width = _a.width, height = _a.height;\n var elWidth = width * this._getInitialZoomFactor() * this._zoomFactor;\n var elHeight = height * this._getInitialZoomFactor() * this._zoomFactor;\n var _b = getOffsetBounds({\n containerDimension: rect.width,\n childDimension: elWidth,\n padding: this.props.horizontalPadding,\n centerContained: this.props.centerContained,\n }), minOffsetX = _b[0], maxOffsetX = _b[1];\n var _c = getOffsetBounds({\n containerDimension: rect.height,\n childDimension: elHeight,\n padding: this.props.verticalPadding,\n centerContained: this.props.centerContained,\n }), minOffsetY = _c[0], maxOffsetY = _c[1];\n return {\n x: clamp(minOffsetX, maxOffsetX, offset.x),\n y: clamp(minOffsetY, maxOffsetY, offset.y),\n };\n };\n PinchZoom.prototype.alignCenter = function (options) {\n var _this = this;\n var _a = __assign({ duration: 250, animated: true }, options), __x = _a.x, __y = _a.y, scale = _a.scale, animated = _a.animated, duration = _a.duration;\n // Bug-Fix: https://github.com/retyui/react-quick-pinch-zoom/issues/58\n var x = __x * this._initialZoomFactor;\n var y = __y * this._initialZoomFactor;\n var startZoomFactor = this._zoomFactor;\n var startOffset = __assign({}, this._offset);\n var rect = this._getContainerRect();\n var containerCenter = { x: rect.width / 2, y: rect.height / 2 };\n this._zoomFactor = 1;\n this._offset = { x: -(containerCenter.x - x), y: -(containerCenter.y - y) };\n this._scaleTo(scale, containerCenter);\n this._stopAnimation();\n if (!animated) {\n return this._update();\n }\n var diffZoomFactor = this._zoomFactor - startZoomFactor;\n var diffOffset = {\n x: this._offset.x - startOffset.x,\n y: this._offset.y - startOffset.y,\n };\n this._zoomFactor = startZoomFactor;\n this._offset = __assign({}, startOffset);\n var updateFrame = function (progress) {\n var x = startOffset.x + diffOffset.x * progress;\n var y = startOffset.y + diffOffset.y * progress;\n _this._zoomFactor = startZoomFactor + diffZoomFactor * progress;\n _this._offset = _this._sanitizeOffset({ x: x, y: y });\n _this._update();\n };\n this._animate(updateFrame, {\n callback: function () { return _this._sanitize(); },\n duration: duration,\n });\n };\n PinchZoom.prototype.scaleTo = function (options) {\n var _this = this;\n var _a = __assign({ duration: 250, animated: true }, options), x = _a.x, y = _a.y, scale = _a.scale, animated = _a.animated, duration = _a.duration;\n var startZoomFactor = this._zoomFactor;\n var startOffset = __assign({}, this._offset);\n this._zoomFactor = 1;\n this._offset = { x: 0, y: 0 };\n this._scaleTo(scale, { x: x, y: y });\n this._stopAnimation();\n if (!animated) {\n return this._update();\n }\n var diffZoomFactor = this._zoomFactor - startZoomFactor;\n var diffOffset = {\n x: this._offset.x - startOffset.x,\n y: this._offset.y - startOffset.y,\n };\n this._zoomFactor = startZoomFactor;\n this._offset = __assign({}, startOffset);\n var updateFrame = function (progress) {\n var x = startOffset.x + diffOffset.x * progress;\n var y = startOffset.y + diffOffset.y * progress;\n _this._zoomFactor = startZoomFactor + diffZoomFactor * progress;\n _this._offset = { x: x, y: y };\n _this._update();\n };\n this._animate(updateFrame, { callback: function () { return _this._sanitize(); }, duration: duration });\n };\n PinchZoom.prototype._scaleTo = function (zoomFactor, center) {\n this._scale(zoomFactor / this._zoomFactor, center);\n this._offset = this._sanitizeOffset(this._offset);\n };\n PinchZoom.prototype._scale = function (scale, center) {\n scale = this._scaleZoomFactor(scale);\n this._addOffset({\n x: (scale - 1) * (center.x + this._offset.x),\n y: (scale - 1) * (center.y + this._offset.y),\n });\n this.props.onZoomUpdate();\n };\n PinchZoom.prototype._scaleZoomFactor = function (scale) {\n var originalZoomFactor = this._zoomFactor;\n this._zoomFactor *= scale;\n this._zoomFactor = clamp(this.props.minZoom, this.props.maxZoom, this._zoomFactor);\n return this._zoomFactor / originalZoomFactor;\n };\n PinchZoom.prototype._canDrag = function () {\n return this.props.draggableUnZoomed || !isCloseTo(this._zoomFactor, 1);\n };\n PinchZoom.prototype._drag = function (center, lastCenter) {\n if (lastCenter) {\n var y = -(center.y - lastCenter.y);\n var x = -(center.x - lastCenter.x);\n if (!this.props.lockDragAxis) {\n this._addOffset({\n x: x,\n y: y,\n });\n }\n else {\n // lock scroll to position that was changed the most\n if (abs(x) > abs(y)) {\n this._addOffset({\n x: x,\n y: 0,\n });\n }\n else {\n this._addOffset({\n y: y,\n x: 0,\n });\n }\n }\n this.props.onDragUpdate();\n }\n };\n PinchZoom.prototype._virtualDrag = function (center, lastCenter) {\n if (lastCenter) {\n var y = -(center.y - lastCenter.y);\n var x = -(center.x - lastCenter.x);\n this._draggingPoint = {\n x: x + this._draggingPoint.x,\n y: y + this._draggingPoint.y,\n };\n }\n };\n PinchZoom.prototype._addOffset = function (offset) {\n var _a = this._offset, x = _a.x, y = _a.y;\n this._offset = {\n x: x + offset.x,\n y: y + offset.y,\n };\n };\n PinchZoom.prototype._sanitize = function () {\n if (this._zoomFactor < this.props.zoomOutFactor) {\n this._resetInertia();\n this._zoomOutAnimation();\n }\n else if (this._isInsaneOffset()) {\n this._sanitizeOffsetAnimation();\n }\n };\n PinchZoom.prototype._isInsaneOffset = function () {\n var offset = this._offset;\n var sanitizedOffset = this._sanitizeOffset(offset);\n return sanitizedOffset.x !== offset.x || sanitizedOffset.y !== offset.y;\n };\n PinchZoom.prototype._sanitizeOffsetAnimation = function () {\n var _this = this;\n var targetOffset = this._sanitizeOffset(this._offset);\n var startOffset = __assign({}, this._offset);\n var updateProgress = function (progress) {\n var x = startOffset.x + progress * (targetOffset.x - startOffset.x);\n var y = startOffset.y + progress * (targetOffset.y - startOffset.y);\n _this._offset = { x: x, y: y };\n _this._update();\n };\n this._animate(updateProgress);\n };\n PinchZoom.prototype._zoomOutAnimation = function () {\n var _this = this;\n if (this._zoomFactor === 1) {\n return;\n }\n var startZoomFactor = this._zoomFactor;\n var zoomFactor = 1;\n var center = this._getCurrentZoomCenter();\n var updateProgress = function (progress) {\n var scaleFactor = startZoomFactor + progress * (zoomFactor - startZoomFactor);\n _this._scaleTo(scaleFactor, center);\n };\n this._animate(updateProgress);\n };\n PinchZoom.prototype._getInitialZoomFactor = function () {\n return this._initialZoomFactor;\n };\n PinchZoom.prototype._getCurrentZoomCenter = function () {\n var _a = this._offset, x = _a.x, y = _a.y;\n var offsetLeft = x - this._initialOffset.x;\n var offsetTop = y - this._initialOffset.y;\n return {\n x: -1 * x - offsetLeft / (1 / this._zoomFactor - 1),\n y: -1 * y - offsetTop / (1 / this._zoomFactor - 1),\n };\n };\n PinchZoom.prototype._getOffsetByFirstTouch = function (event) {\n return this._getOffsetTouches(event)[0];\n };\n PinchZoom.prototype._getOffsetTouches = function (event) {\n var _document = this.props._document;\n var _html = _document.documentElement;\n var _body = _document.body;\n var _a = this._getContainerRect(), top = _a.top, left = _a.left;\n var scrollTop = _html.scrollTop || _body.scrollTop;\n var scrollLeft = _html.scrollLeft || _body.scrollLeft;\n var posTop = top + scrollTop;\n var posLeft = left + scrollLeft;\n return getPageCoordinatesByTouches(event.touches).map(function (_a) {\n var x = _a.x, y = _a.y;\n return ({\n x: x - posLeft,\n y: y - posTop,\n });\n });\n };\n PinchZoom.prototype._animate = function (frameFn, options) {\n var _this = this;\n var startTime = new Date().getTime();\n var _a = __assign({ timeFn: swing, callback: function () { }, duration: this.props.animationDuration }, options), timeFn = _a.timeFn, callback = _a.callback, duration = _a.duration;\n var renderFrame = function () {\n if (!_this._inAnimation) {\n return;\n }\n var frameTime = new Date().getTime() - startTime;\n var progress = frameTime / duration;\n if (frameTime >= duration) {\n frameFn(1);\n _this._stopAnimation();\n callback();\n _this._update();\n }\n else {\n progress = timeFn(progress);\n frameFn(progress);\n _this._update({ isAnimation: true });\n requestAnimationFrame(renderFrame);\n }\n };\n this._inAnimation = true;\n requestAnimationFrame(renderFrame);\n };\n PinchZoom.prototype._stopAnimation = function () {\n this._inAnimation = false;\n };\n PinchZoom.prototype._end = function () {\n this._hasInteraction = false;\n this._sanitize();\n this._update();\n };\n PinchZoom.prototype._getContainerRect = function () {\n var div = this._containerRef.current;\n return div.getBoundingClientRect();\n };\n PinchZoom.prototype._getChildSize = function () {\n var div = this._containerRef.current;\n return getElementSize(div === null || div === void 0 ? void 0 : div.firstElementChild);\n };\n PinchZoom.prototype._updateInitialZoomFactor = function () {\n var rect = this._getContainerRect();\n var size = this._getChildSize();\n var xZoomFactor = rect.width / size.width;\n var yZoomFactor = rect.height / size.height;\n this._initialZoomFactor = min(xZoomFactor, yZoomFactor);\n };\n PinchZoom.prototype._bindEvents = function () {\n var _this = this;\n var div = this._containerRef.current;\n if (window.ResizeObserver) {\n this._containerObserver = new ResizeObserver(this._onResize);\n this._containerObserver.observe(div);\n }\n else {\n window.addEventListener('resize', this._onResize);\n }\n this._handlers.forEach(function (_a) {\n var eventName = _a[0], fn = _a[1], target = _a[2];\n (target || div).addEventListener(eventName, fn, true);\n });\n Array.from(div.querySelectorAll('img')).forEach(function (img) {\n return img.addEventListener('load', _this._onResize);\n });\n };\n PinchZoom.prototype._unSubscribe = function () {\n var _this = this;\n var div = this._containerRef.current;\n if (this._containerObserver) {\n this._containerObserver.disconnect();\n this._containerObserver = null;\n }\n window.removeEventListener('resize', this._onResize);\n this._handlers.forEach(function (_a) {\n var eventName = _a[0], fn = _a[1], target = _a[2];\n (target || div).removeEventListener(eventName, fn, true);\n });\n Array.from(div.querySelectorAll('img')).forEach(function (img) {\n return img.removeEventListener('load', _this._onResize);\n });\n };\n PinchZoom.prototype._update = function (options) {\n var _this = this;\n if (this._updatePlaned) {\n return;\n }\n var updateFrame = function () {\n var scale = _this._getInitialZoomFactor() * _this._zoomFactor;\n var x = -_this._offset.x / scale;\n var y = -_this._offset.y / scale;\n _this.props.onUpdate({ scale: scale, x: x, y: y });\n };\n if (options === null || options === void 0 ? void 0 : options.isAnimation) {\n return updateFrame();\n }\n this._updatePlaned = true;\n requestAnimationFrame(function () {\n _this._updatePlaned = false;\n updateFrame();\n });\n };\n PinchZoom.prototype._handlerIfEnable = function (fn) {\n var _this = this;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.props.enabled) {\n fn.apply(void 0, args);\n }\n };\n };\n PinchZoom.prototype._setInteraction = function (newInteraction, event) {\n var interaction = this._interaction;\n if (interaction !== newInteraction) {\n if (interaction && !newInteraction) {\n if (isZoomInteraction(interaction)) {\n this._handleZoomEnd();\n }\n else if (isDragInteraction(interaction)) {\n this._handleDragEnd();\n }\n }\n if (isZoomInteraction(newInteraction)) {\n this._handleZoomStart();\n }\n else if (isDragInteraction(newInteraction)) {\n this._handleDragStart(event);\n }\n }\n this._interaction = newInteraction;\n };\n PinchZoom.prototype._distanceBetweenNumbers = function (a, b) {\n return a > b ? a - b : b - a;\n };\n PinchZoom.prototype._enoughToDrag = function () {\n if (this._distanceBetweenNumbers(this._startOffset.x, this._draggingPoint.x) >\n 5 ||\n this._distanceBetweenNumbers(this._startOffset.y, this._draggingPoint.y) >\n 5)\n return true;\n return false;\n };\n PinchZoom.prototype._updateInteraction = function (event) {\n var fingers = this._fingers;\n if (fingers === 2) {\n return this._setInteraction('zoom', event);\n }\n if (fingers === 1 && this._canDrag()) {\n return this._setInteraction('drag', event);\n }\n this._setInteraction(null, event);\n };\n PinchZoom.prototype._detectDoubleTap = function (event) {\n var time = new Date().getTime();\n if (this._fingers > 1) {\n this._lastTouchStart = 0;\n }\n if (time - this._lastTouchStart < 300) {\n cancelEvent(event);\n this._handleDoubleTap(event);\n if (isZoomInteraction(this._interaction)) {\n this._handleZoomEnd();\n }\n else if (isDragInteraction(this._interaction)) {\n this._handleDragEnd();\n }\n }\n else {\n this._isDoubleTap = false;\n }\n if (this._fingers === 1) {\n this._lastTouchStart = time;\n }\n };\n PinchZoom.prototype.simulate = function (fn) {\n var _this = this;\n return function (mouseEvent) {\n var pageX = mouseEvent.pageX, pageY = mouseEvent.pageY, type = mouseEvent.type;\n var isEnd = type === 'mouseup';\n var isStart = type === 'mousedown';\n if (isStart) {\n mouseEvent.preventDefault();\n _this._listenMouseMove = true;\n }\n if (_this._listenMouseMove) {\n // @ts-ignore\n mouseEvent.touches = isEnd ? [] : [{ pageX: pageX, pageY: pageY }];\n fn(\n // @ts-ignore\n mouseEvent);\n }\n if (isEnd) {\n _this._listenMouseMove = false;\n }\n };\n };\n PinchZoom.prototype.componentDidMount = function () {\n this._bindEvents();\n this._update();\n };\n PinchZoom.prototype.componentWillUnmount = function () {\n this._stopAnimation();\n this._unSubscribe();\n };\n PinchZoom.prototype.render = function () {\n var _a = this.props, children = _a.children, containerProps = _a.containerProps;\n var child = Children.only(children);\n var props = containerProps || {};\n return (React.createElement(React.Fragment, null,\n React.createElement(\"style\", null, styles),\n React.createElement(\"div\", __assign({}, props, { ref: this._containerRef, className: classnames(styleRoot, props.className) }), cloneElement(child, {\n className: classnames(styleChild, child.props.className),\n }))));\n };\n PinchZoom.defaultProps = {\n animationDuration: 250,\n draggableUnZoomed: true,\n enforceBoundsDuringZoom: false,\n centerContained: false,\n enabled: true,\n inertia: true,\n inertiaFriction: 0.96,\n horizontalPadding: 0,\n isTouch: isTouch,\n lockDragAxis: false,\n maxZoom: 5,\n minZoom: 0.5,\n onDoubleTap: noup,\n onDragEnd: noup,\n onDragStart: noup,\n onDragUpdate: noup,\n onZoomEnd: noup,\n onZoomStart: noup,\n onZoomUpdate: noup,\n setOffsetsOnce: false,\n shouldInterceptWheel: shouldInterceptWheel,\n shouldCancelHandledTouchEndEvents: false,\n tapZoomFactor: 1,\n verticalPadding: 0,\n wheelScaleFactor: 1500,\n zoomOutFactor: 1.3,\n doubleTapZoomOutOnMaxScale: false,\n doubleTapToggleZoom: false,\n // @ts-expect-error\n _document: isSsr ? null : window.document,\n };\n return PinchZoom;\n}(Component));\nif (process.env.NODE_ENV !== 'production') {\n var _a = require('prop-types'), any = _a.any, element = _a.element, object = _a.object, number = _a.number, func = _a.func, bool = _a.bool;\n // @ts-ignore\n PinchZoom.propTypes = {\n children: element,\n containerProps: object,\n wheelScaleFactor: number,\n animationDuration: number,\n draggableUnZoomed: bool,\n enforceBoundsDuringZoom: bool,\n centerContained: bool,\n enabled: bool,\n horizontalPadding: number,\n lockDragAxis: bool,\n onUpdate: func.isRequired,\n maxZoom: number,\n minZoom: number,\n onDoubleTap: func,\n onDragEnd: func,\n onDragStart: func,\n onDragUpdate: func,\n onZoomEnd: func,\n onZoomStart: func,\n onZoomUpdate: func,\n setOffsetsOnce: bool,\n tapZoomFactor: number,\n verticalPadding: number,\n zoomOutFactor: number,\n doubleTapZoomOutOnMaxScale: bool,\n doubleTapToggleZoom: bool,\n isTouch: func,\n _document: any,\n };\n}\nexport default PinchZoom;\n","export default function formatDuration(time) {\n if (!time) return;\n let hours = Math.floor(time / 3600);\n let minutes = Math.floor((time % 3600) / 60);\n let seconds = Math.round(time % 60);\n\n if (hours === 0) {\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n } else {\n return `${hours}:${minutes.toString().padStart(2, '0')}:${seconds\n .toString()\n .padStart(2, '0')}`;\n }\n}\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { getBlurHashAverageColor } from 'fast-blurhash';\nimport { Fragment } from 'preact';\nimport { memo } from 'preact/compat';\nimport {\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport QuickPinchZoom, { make3dTransformValue } from 'react-quick-pinch-zoom';\n\nimport formatDuration from '../utils/format-duration';\nimport mem from '../utils/mem';\nimport states from '../utils/states';\n\nimport Icon from './icon';\nimport Link from './link';\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // https://stackoverflow.com/a/23522755\n\n/*\nMedia type\n===\nunknown = unsupported or unrecognized file type\nimage = Static image\ngifv = Looping, soundless animation\nvideo = Video clip\naudio = Audio track\n*/\n\nconst dataAltLabel = 'ALT';\nconst AltBadge = (props) => {\n const { t } = useLingui();\n const { alt, lang, index, ...rest } = props;\n if (!alt || !alt.trim()) return null;\n return (\n {\n e.stopPropagation();\n e.preventDefault();\n states.showMediaAlt = {\n alt,\n lang,\n };\n }}\n title={t`Media description`}\n >\n {dataAltLabel}\n {!!index && {index}}\n \n );\n};\n\nconst MEDIA_CAPTION_LIMIT = 140;\nconst MEDIA_CAPTION_LIMIT_LONGER = 280;\nexport const isMediaCaptionLong = mem((caption) =>\n caption?.length\n ? caption.length > MEDIA_CAPTION_LIMIT ||\n /[\\n\\r].*[\\n\\r]/.test(caption.trim())\n : false,\n);\n\nfunction Media({\n class: className = '',\n media,\n to,\n lang,\n showOriginal,\n autoAnimate,\n showCaption,\n allowLongerCaption,\n altIndex,\n checkAspectRatio = true,\n onClick,\n}) {\n let {\n id,\n blurhash,\n description,\n meta,\n previewRemoteUrl,\n previewUrl,\n remoteUrl,\n url,\n type,\n } = media;\n if (/no\\-preview\\./i.test(previewUrl)) {\n previewUrl = null;\n }\n const mediaVTN = getSafeViewTransitionName(id || blurhash || url);\n const { original = {}, small, focus } = meta || {};\n\n const width = showOriginal\n ? original?.width\n : small?.width || original?.width;\n const height = showOriginal\n ? original?.height\n : small?.height || original?.height;\n const mediaURL = showOriginal ? url : previewUrl || url;\n const remoteMediaURL = showOriginal\n ? remoteUrl\n : previewRemoteUrl || remoteUrl;\n const hasPreviewDimensions = small?.width && small?.height;\n const hasDimensions = width && height;\n const orientation = hasDimensions\n ? width > height\n ? 'landscape'\n : 'portrait'\n : null;\n\n const rgbAverageColor = blurhash ? getBlurHashAverageColor(blurhash) : null;\n\n const videoRef = useRef();\n\n let focalPosition;\n if (focus) {\n // Convert focal point to CSS background position\n // Formula from jquery-focuspoint\n // x = -1, y = 1 => 0% 0%\n // x = 0, y = 0 => 50% 50%\n // x = 1, y = -1 => 100% 100%\n const x = ((focus.x + 1) / 2) * 100;\n const y = ((1 - focus.y) / 2) * 100;\n focalPosition = `${x.toFixed(0)}% ${y.toFixed(0)}%`;\n }\n\n const mediaRef = useRef();\n const onUpdate = useCallback(({ x, y, scale }) => {\n const { current: media } = mediaRef;\n\n if (media) {\n const value = make3dTransformValue({ x, y, scale });\n\n if (scale === 1) {\n media.style.removeProperty('transform');\n } else {\n media.style.setProperty('transform', value);\n }\n\n media.closest('.media-zoom').style.touchAction =\n scale <= 1.01 ? 'pan-x' : '';\n }\n }, []);\n\n const [pinchZoomEnabled, setPinchZoomEnabled] = useState(false);\n const quickPinchZoomProps = {\n enabled: pinchZoomEnabled,\n draggableUnZoomed: false,\n inertiaFriction: 0.9,\n tapZoomFactor: 2,\n doubleTapToggleZoom: true,\n containerProps: {\n className: 'media-zoom',\n style: {\n overflow: 'visible',\n // width: 'inherit',\n // height: 'inherit',\n // justifyContent: 'inherit',\n // alignItems: 'inherit',\n // display: 'inherit',\n },\n },\n onUpdate,\n };\n\n const [mediaLoadError, setMediaLoadError] = useState(false);\n\n const Parent = useMemo(\n () =>\n to && !mediaLoadError ? (props) => : 'div',\n [to, mediaLoadError],\n );\n\n const remoteMediaURLObj = remoteMediaURL ? getURLObj(remoteMediaURL) : null;\n const isVideoMaybe =\n type === 'unknown' &&\n remoteMediaURLObj &&\n /\\.(mp4|m4r|m4v|mov|webm)$/i.test(remoteMediaURLObj.pathname);\n const isAudioMaybe =\n type === 'unknown' &&\n remoteMediaURLObj &&\n /\\.(mp3|ogg|wav|m4a|m4p|m4b)$/i.test(remoteMediaURLObj.pathname);\n const isImage =\n type === 'image' ||\n (type === 'unknown' && previewUrl && !isVideoMaybe && !isAudioMaybe);\n const isPreviewVideoMaybe =\n previewUrl &&\n /\\.(mp4|m4r|m4v|mov|webm)$/i.test(getURLObj(previewUrl).pathname);\n\n const parentRef = useRef();\n const [imageSmallerThanParent, setImageSmallerThanParent] = useState(false);\n useLayoutEffect(() => {\n if (!isImage) return;\n if (!showOriginal) return;\n if (!parentRef.current) return;\n const { offsetWidth, offsetHeight } = parentRef.current;\n const smaller = width < offsetWidth && height < offsetHeight;\n if (smaller) setImageSmallerThanParent(smaller);\n }, [width, height]);\n\n const maxAspectHeight =\n window.innerHeight * (orientation === 'portrait' ? 0.45 : 0.33);\n const maxHeight = orientation === 'portrait' ? 0 : 160;\n const averageColorStyle = {\n '--average-color': rgbAverageColor && `rgb(${rgbAverageColor.join(',')})`,\n };\n const mediaStyles =\n width && height\n ? {\n '--width': `${width}px`,\n '--height': `${height}px`,\n // Calculate '--aspectWidth' based on aspect ratio calculated from '--width' and '--height', max height has to be 160px\n '--aspectWidth': `${\n (width / height) * Math.max(maxHeight, maxAspectHeight)\n }px`,\n aspectRatio: `${width} / ${height}`,\n ...averageColorStyle,\n }\n : {\n ...averageColorStyle,\n };\n\n const longDesc = isMediaCaptionLong(description);\n let showInlineDesc =\n !!showCaption && !showOriginal && !!description && !longDesc;\n if (\n allowLongerCaption &&\n !showInlineDesc &&\n description?.length <= MEDIA_CAPTION_LIMIT_LONGER\n ) {\n showInlineDesc = true;\n }\n const Figure = !showInlineDesc\n ? Fragment\n : (props) => {\n const { children, ...restProps } = props;\n return (\n
\n {children}\n {\n e.preventDefault();\n e.stopPropagation();\n states.showMediaAlt = {\n alt: description,\n lang,\n };\n }}\n >\n {description}\n \n
\n );\n };\n\n const [hasNaturalAspectRatio, setHasNaturalAspectRatio] = useState(undefined);\n\n const postViewState = () =>\n window.matchMedia('(min-width: calc(40em + 350px))').matches\n ? 'large'\n : 'small';\n const interceptOnClick = useCallback(\n (e) => {\n const isOnPostPage = e.target.closest('.status-deck');\n if (\n showOriginal ||\n (postViewState() === 'large' && isOnPostPage) ||\n !document.startViewTransition\n ) {\n onClick?.(e);\n return;\n }\n const el =\n e.target.closest('[data-view-transition-name]') ||\n e.target.querySelector('[data-view-transition-name]');\n if (el) {\n // BUG: both link and onClick is triggered at the same time\n // Temporarily disable view transition if has onClick\n // Detecting preventDefault for an onClick has to happen before view transition but it's only possible after click, and this mean the link is already clicked even before we know it's default prevented.\n if (onClick) {\n onClick(e);\n } else {\n e.preventDefault();\n if (el.dataset.viewTransitioned) {\n el.style.viewTransitionName = mediaVTN;\n try {\n document.startViewTransition(() => {\n el.style.viewTransitionName = '';\n location.hash = `#${to}`;\n });\n } catch (e) {\n console.error(e);\n el.style.viewTransitionName = '';\n location.hash = `#${to}`;\n }\n } else {\n location.hash = `#${to}`;\n }\n }\n } else {\n onClick?.(e);\n }\n },\n [mediaVTN, showOriginal, onClick],\n );\n\n if (isImage) {\n // Note: type: unknown might not have width/height\n quickPinchZoomProps.containerProps.style.display = 'inherit';\n\n useLayoutEffect(() => {\n if (!isSafari) return;\n if (!showOriginal) return;\n (async () => {\n try {\n await fetch(mediaURL, { mode: 'no-cors' });\n mediaRef.current.src = mediaURL;\n } catch (e) {\n // Ignore\n }\n })();\n }, [mediaURL]);\n\n return (\n
\n \n {showOriginal ? (\n \n {\n const el = e.target;\n const mediaImage = el.closest('.media-image');\n if (mediaImage) {\n mediaImage.style.backgroundImage = `url(${el.src})`;\n mediaImage.style.removeProperty('--bg-image');\n }\n el.closest('.media-zoom').style.display = '';\n setPinchZoomEnabled(true);\n }}\n onError={(e) => {\n const { src } = e.target;\n if (\n src === mediaURL &&\n remoteMediaURL &&\n mediaURL !== remoteMediaURL\n ) {\n e.target.src = remoteMediaURL;\n }\n }}\n />\n \n ) : (\n <>\n {\n // e.target.closest('.media-image').style.backgroundImage = '';\n e.target.dataset.loaded = true;\n const $media = e.target.closest('.media');\n if (!hasPreviewDimensions && $media) {\n const { naturalWidth, naturalHeight } = e.target;\n $media.dataset.orientation =\n naturalWidth > naturalHeight ? 'landscape' : 'portrait';\n $media.style.setProperty('--width', `${naturalWidth}px`);\n $media.style.setProperty('--height', `${naturalHeight}px`);\n $media.style.aspectRatio = `${naturalWidth}/${naturalHeight}`;\n }\n\n // Check natural aspect ratio vs display aspect ratio\n if (checkAspectRatio && $media) {\n const {\n clientWidth,\n clientHeight,\n naturalWidth,\n naturalHeight,\n } = e.target;\n if (\n clientWidth &&\n clientHeight &&\n naturalWidth &&\n naturalHeight\n ) {\n const minDimension = 88;\n if (\n naturalWidth < minDimension ||\n naturalHeight < minDimension\n ) {\n $media.dataset.hasSmallDimension = true;\n } else {\n const displayNaturalHeight =\n (naturalHeight * clientWidth) / naturalWidth;\n const almostSimilarHeight =\n Math.abs(displayNaturalHeight - clientHeight) < 5;\n\n if (almostSimilarHeight) {\n setHasNaturalAspectRatio(true);\n }\n }\n }\n }\n }}\n onError={(e) => {\n const { src } = e.target;\n if (src === mediaURL && mediaURL !== remoteMediaURL) {\n e.target.src = remoteMediaURL;\n } else {\n setMediaLoadError(true);\n }\n }}\n />\n {!showInlineDesc && (\n \n )}\n \n )}\n \n {mediaLoadError && (\n \n )}\n
\n );\n } else if (type === 'gifv' || type === 'video' || isVideoMaybe) {\n const hasDuration = original.duration > 0;\n const shortDuration = original.duration < 31;\n const isGIF = type === 'gifv' && shortDuration;\n // If GIF is too long, treat it as a video\n const loopable = original.duration < 61;\n const formattedDuration = formatDuration(original.duration);\n const hoverAnimate = !showOriginal && !autoAnimate && isGIF;\n const autoGIFAnimate = !showOriginal && autoAnimate && isGIF;\n const showProgress = original.duration > 5;\n\n // This string is only for autoplay + muted to work on Mobile Safari\n const gifHTML = `\n \n `;\n\n const videoHTML = `\n \n `;\n\n return (\n
\n {\n if (hoverAnimate) {\n try {\n videoRef.current.pause();\n } catch (e) {}\n }\n interceptOnClick(e);\n }}\n onMouseEnter={() => {\n if (hoverAnimate) {\n try {\n videoRef.current.play();\n } catch (e) {}\n }\n }}\n onMouseLeave={() => {\n if (hoverAnimate) {\n try {\n videoRef.current.pause();\n } catch (e) {}\n }\n }}\n onFocus={() => {\n if (hoverAnimate) {\n try {\n videoRef.current.play();\n } catch (e) {}\n }\n }}\n onBlur={() => {\n if (hoverAnimate) {\n try {\n videoRef.current.pause();\n } catch (e) {}\n }\n }}\n >\n {showOriginal || autoGIFAnimate ? (\n isGIF && showOriginal ? (\n \n \n \n ) : isGIF ? (\n \n ) : (\n \n )\n ) : isGIF ? (\n {\n const { target } = e;\n const container = target?.closest('.media-gif');\n if (container) {\n const percentage =\n (target.currentTime / target.duration) * 100;\n container.style.setProperty(\n '--progress',\n `${percentage}%`,\n );\n }\n }\n : undefined\n }\n />\n ) : (\n <>\n {previewUrl && !isPreviewVideoMaybe ? (\n {\n if (!hasPreviewDimensions) {\n const $media = e.target.closest('.media');\n if ($media) {\n const { naturalHeight, naturalWidth } = e.target;\n $media.dataset.orientation =\n naturalWidth > naturalHeight\n ? 'landscape'\n : 'portrait';\n $media.style.setProperty(\n '--width',\n `${naturalWidth}px`,\n );\n $media.style.setProperty(\n '--height',\n `${naturalHeight}px`,\n );\n $media.style.aspectRatio = `${naturalWidth}/${naturalHeight}`;\n }\n }\n }}\n />\n ) : (\n {\n if (!hasDuration) {\n const { duration } = e.target;\n if (duration) {\n const formattedDuration = formatDuration(duration);\n const container = e.target.closest('.media-video');\n if (container) {\n container.dataset.formattedDuration =\n formattedDuration;\n }\n }\n }\n }}\n />\n )}\n
\n \n
\n \n )}\n {!showOriginal && !showInlineDesc && (\n \n )}\n \n
\n );\n } else if (type === 'audio' || isAudioMaybe) {\n const formattedDuration = formatDuration(original.duration);\n return (\n
\n \n {showOriginal ? (\n
\n );\n }\n}\n\nfunction getURLObj(url) {\n // Fake base URL if url doesn't have https:// prefix\n return URL.parse(url, location.origin);\n}\n\nexport function getSafeViewTransitionName(inputString) {\n // Replace any character that is not a letter, number, hyphen, or underscore with a hyphen.\n let safeName = inputString.replace(/[^a-zA-Z0-9_-]/g, '-');\n\n // Ensure it starts with a letter, underscore, or two hyphens (to prevent starting with a number or single hyphen).\n // This covers edge cases where the original string might start with an invalid character after replacement.\n if (safeName.match(/^[0-9-]/)) {\n safeName = 'vt-' + safeName;\n }\n\n return safeName;\n}\n\nexport default memo(Media, (oldProps, newProps) => {\n const oldMedia = oldProps.media || {};\n const newMedia = newProps.media || {};\n\n return (\n oldMedia?.id === newMedia?.id &&\n oldMedia.url === newMedia.url &&\n oldProps.to === newProps.to &&\n oldProps.class === newProps.class\n );\n});\n","import './status.css';\nimport 'temml/dist/Temml-Local.css';\n\nimport '@justinribeiro/lite-youtube';\n\nimport { msg, plural } from '@lingui/core/macro';\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport {\n ControlledMenu,\n Menu,\n MenuDivider,\n MenuHeader,\n MenuItem,\n} from '@szhsin/react-menu';\nimport { decodeBlurHash, getBlurHashAverageColor } from 'fast-blurhash';\nimport { shallowEqual } from 'fast-equals';\nimport prettify from 'html-prettify';\nimport pThrottle from 'p-throttle';\nimport { Fragment } from 'preact';\nimport { forwardRef, memo } from 'preact/compat';\nimport {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'preact/hooks';\nimport punycode from 'punycode/';\nimport { useHotkeys } from 'react-hotkeys-hook';\n// import { detectAll } from 'tinyld/light';\nimport { useLongPress } from 'use-long-press';\nimport { useSnapshot } from 'valtio';\n\nimport CustomEmoji from '../components/custom-emoji';\nimport EmojiText from '../components/emoji-text';\nimport LazyShazam from '../components/lazy-shazam';\nimport Loader from '../components/loader';\nimport MenuConfirm from '../components/menu-confirm';\nimport Menu2 from '../components/menu2';\nimport Modal from '../components/modal';\nimport NameText from '../components/name-text';\nimport Poll from '../components/poll';\nimport { api, getPreferences } from '../utils/api';\nimport { langDetector } from '../utils/browser-translator';\nimport emojifyText from '../utils/emojify-text';\nimport enhanceContent from '../utils/enhance-content';\nimport FilterContext from '../utils/filter-context';\nimport { isFiltered } from '../utils/filters';\nimport getDomain from '../utils/get-domain';\nimport getTranslateTargetLanguage from '../utils/get-translate-target-language';\nimport getHTMLText from '../utils/getHTMLText';\nimport handleContentLinks from '../utils/handle-content-links';\nimport htmlContentLength from '../utils/html-content-length';\nimport isRTL from '../utils/is-rtl';\nimport isMastodonLinkMaybe from '../utils/isMastodonLinkMaybe';\nimport localeMatch from '../utils/locale-match';\nimport mem from '../utils/mem';\nimport niceDateTime from '../utils/nice-date-time';\nimport openCompose from '../utils/open-compose';\nimport pmem from '../utils/pmem';\nimport safeBoundingBoxPadding from '../utils/safe-bounding-box-padding';\nimport shortenNumber from '../utils/shorten-number';\nimport showCompose from '../utils/show-compose';\nimport showToast from '../utils/show-toast';\nimport { speak, supportsTTS } from '../utils/speech';\nimport states, { getStatus, saveStatus, statusKey } from '../utils/states';\nimport statusPeek from '../utils/status-peek';\nimport store from '../utils/store';\nimport { getCurrentAccountID } from '../utils/store-utils';\nimport supports from '../utils/supports';\nimport unfurlMastodonLink from '../utils/unfurl-link';\nimport useTruncated from '../utils/useTruncated';\nimport visibilityIconsMap from '../utils/visibility-icons-map';\n\nimport Avatar from './avatar';\nimport Icon from './icon';\nimport Link from './link';\nimport Media, { isMediaCaptionLong } from './media';\nimport MenuLink from './menu-link';\nimport RelativeTime from './relative-time';\nimport TranslationBlock from './translation-block';\n\nconst SHOW_COMMENT_COUNT_LIMIT = 280;\nconst INLINE_TRANSLATE_LIMIT = 140;\n\nconst throttle = pThrottle({\n limit: 1,\n interval: 1000,\n});\nfunction fetchAccount(id, masto) {\n return masto.v1.accounts.$select(id).fetch();\n}\nconst memFetchAccount = pmem(throttle(fetchAccount));\n\nconst visibilityText = {\n public: msg`Public`,\n local: msg`Local`,\n unlisted: msg`Unlisted`,\n private: msg`Followers only`,\n direct: msg`Private mention`,\n};\n\nconst isIOS =\n window.ontouchstart !== undefined &&\n /iPad|iPhone|iPod/.test(navigator.userAgent);\n\nconst RTF = mem((locale) => new Intl.RelativeTimeFormat(locale || undefined));\n\nconst REACTIONS_LIMIT = 80;\n\nfunction getPollText(poll) {\n if (!poll?.options?.length) return '';\n return `📊:\\n${poll.options\n .map(\n (option) =>\n `- ${option.title}${\n option.votesCount >= 0 ? ` (${option.votesCount})` : ''\n }`,\n )\n .join('\\n')}`;\n}\nfunction getPostText(status, opts) {\n const { maskCustomEmojis, maskURLs } = opts || {};\n const { spoilerText, poll, emojis } = status;\n let { content } = status;\n if (maskCustomEmojis && emojis?.length) {\n const emojisRegex = new RegExp(\n `:(${emojis.map((e) => e.shortcode).join('|')}):`,\n 'g',\n );\n content = content.replace(emojisRegex, '⬚');\n }\n return (\n (spoilerText ? `${spoilerText}\\n\\n` : '') +\n getHTMLText(content, {\n preProcess:\n maskURLs &&\n ((dom) => {\n // Remove links that contains text that starts with https?://\n for (const a of dom.querySelectorAll('a')) {\n const text = a.innerText.trim();\n if (/^https?:\\/\\//i.test(text)) {\n a.replaceWith('«🔗»');\n }\n }\n }),\n }) +\n getPollText(poll)\n );\n}\n\nfunction forgivingQSA(selectors = [], dom = document) {\n // Run QSA for list of selectors\n // If a selector return invalid selector error, try the next one\n for (const selector of selectors) {\n try {\n return dom.querySelectorAll(selector);\n } catch (e) {}\n }\n return [];\n}\n\nfunction isTranslateble(content, emojis) {\n if (!content) return false;\n // Remove custom emojis\n if (emojis?.length) {\n const emojisRegex = new RegExp(\n `:(${emojis.map((e) => e.shortcode).join('|')}):`,\n 'g',\n );\n content = content.replace(emojisRegex, '');\n }\n content = content.trim();\n if (!content) return false;\n const text = getHTMLText(content, {\n preProcess: (dom) => {\n // Remove .mention, pre, code, a:has(.invisible)\n for (const a of forgivingQSA(\n ['.mention, pre, code, a:has(.invisible)', '.mention, pre, code'],\n dom,\n )) {\n a.remove();\n }\n },\n });\n return !!text;\n}\n\nfunction getHTMLTextForDetectLang(content, emojis) {\n if (emojis?.length) {\n const emojisRegex = new RegExp(\n `:(${emojis.map((e) => e.shortcode).join('|')}):`,\n 'g',\n );\n content = content.replace(emojisRegex, '');\n }\n\n return getHTMLText(content, {\n preProcess: (dom) => {\n // Remove anything that can skew the language detection\n\n // Remove .mention, .hashtag, pre, code, a:has(.invisible)\n for (const a of forgivingQSA(\n [\n '.mention, .hashtag, pre, code, a:has(.invisible)',\n '.mention, .hashtag, pre, code',\n ],\n dom,\n )) {\n a.remove();\n }\n\n // Remove links that contains text that starts with https?://\n for (const a of dom.querySelectorAll('a')) {\n const text = a.innerText.trim();\n if (text.startsWith('https://') || text.startsWith('http://')) {\n a.remove();\n }\n }\n },\n });\n}\n\nconst HTTP_REGEX = /^http/i;\n\n// Follow https://mathstodon.xyz/about\n// > You can use LaTeX in toots here! Use \\( and \\) for inline, and \\[ and \\] for display mode.\nconst DELIMITERS_PATTERNS = [\n // '\\\\$\\\\$[\\\\s\\\\S]*?\\\\$\\\\$', // $$...$$\n '\\\\\\\\\\\\[[\\\\s\\\\S]*?\\\\\\\\\\\\]', // \\[...\\]\n '\\\\\\\\\\\\([\\\\s\\\\S]*?\\\\\\\\\\\\)', // \\(...\\)\n // '\\\\\\\\begin\\\\{(?:equation\\\\*?|align\\\\*?|alignat\\\\*?|gather\\\\*?|CD)\\\\}[\\\\s\\\\S]*?\\\\\\\\end\\\\{(?:equation\\\\*?|align\\\\*?|alignat\\\\*?|gather\\\\*?|CD)\\\\}', // AMS environments\n // '\\\\\\\\(?:ref|eqref)\\\\{[^}]*\\\\}', // \\ref{...}, \\eqref{...}\n];\nconst DELIMITERS_REGEX = new RegExp(DELIMITERS_PATTERNS.join('|'), 'g');\n\nfunction cleanDOMForTemml(dom) {\n // Define start and end delimiter patterns\n const START_DELIMITERS = ['\\\\\\\\\\\\[', '\\\\\\\\\\\\(']; // \\[ and \\(\n const startRegex = new RegExp(`(${START_DELIMITERS.join('|')})`);\n\n // Walk through all text nodes\n const walker = document.createTreeWalker(dom, NodeFilter.SHOW_TEXT);\n const textNodes = [];\n let node;\n while ((node = walker.nextNode())) {\n textNodes.push(node);\n }\n\n for (const textNode of textNodes) {\n const text = textNode.textContent;\n const startMatch = text.match(startRegex);\n\n if (!startMatch) continue; // No start delimiter in this text node\n\n // Find the matching end delimiter\n const startDelimiter = startMatch[0];\n const endDelimiter = startDelimiter === '\\\\[' ? '\\\\]' : '\\\\)';\n\n // Collect nodes from start delimiter until end delimiter\n const nodesToCombine = [textNode];\n let currentNode = textNode;\n let foundEnd = false;\n let combinedText = text;\n\n // Check if end delimiter is in the same text node\n if (text.includes(endDelimiter)) {\n foundEnd = true;\n } else {\n // Look through sibling nodes\n while (currentNode.nextSibling && !foundEnd) {\n const nextSibling = currentNode.nextSibling;\n\n if (nextSibling.nodeType === Node.TEXT_NODE) {\n nodesToCombine.push(nextSibling);\n combinedText += nextSibling.textContent;\n if (nextSibling.textContent.includes(endDelimiter)) {\n foundEnd = true;\n }\n } else if (\n nextSibling.nodeType === Node.ELEMENT_NODE &&\n nextSibling.tagName === 'BR'\n ) {\n nodesToCombine.push(nextSibling);\n combinedText += '\\n';\n } else {\n // Found a non-BR element, stop and don't process\n break;\n }\n\n currentNode = nextSibling;\n }\n }\n\n // Only process if we found the end delimiter and have nodes to combine\n if (foundEnd && nodesToCombine.length > 1) {\n // Replace the first text node with combined text\n textNode.textContent = combinedText;\n\n // Remove the other nodes\n for (let i = 1; i < nodesToCombine.length; i++) {\n nodesToCombine[i].remove();\n }\n }\n }\n}\n\nconst MathBlock = ({ content, contentRef, onRevert }) => {\n DELIMITERS_REGEX.lastIndex = 0; // Reset index to prevent g trap\n const hasLatexContent = DELIMITERS_REGEX.test(content);\n\n if (!hasLatexContent) return null;\n\n const { t } = useLingui();\n const [mathRendered, setMathRendered] = useState(false);\n const toggleMathRendering = useCallback(\n async (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (mathRendered) {\n // Revert to original content by refreshing PostContent\n setMathRendered(false);\n onRevert();\n } else {\n // Render math\n try {\n // This needs global because the codebase inside temml is calling a function from global.temml 🤦‍♂️\n const temml =\n window.temml || (window.temml = (await import('temml'))?.default);\n\n cleanDOMForTemml(contentRef.current);\n const originalContentRefHTML = contentRef.current.innerHTML;\n temml.renderMathInElement(contentRef.current, {\n fences: '(', // This should sync with DELIMITERS_REGEX\n annotate: true,\n throwOnError: true,\n errorCallback: (err) => {\n console.warn('Failed to render LaTeX:', err);\n },\n });\n\n const hasMath = contentRef.current.querySelector('math.tml-display');\n const htmlChanged =\n contentRef.current.innerHTML !== originalContentRefHTML;\n if (hasMath && htmlChanged) {\n setMathRendered(true);\n } else {\n showToast(t`Unable to format math`);\n setMathRendered(false);\n onRevert(); // Revert because DOM modified by cleanDOMForTemml\n }\n } catch (e) {\n console.error('Failed to LaTeX:', e);\n }\n }\n },\n [mathRendered],\n );\n\n return (\n
\n {t`Math expressions found.`}{' '}\n \n
\n );\n};\n\nconst PostContent =\n /*memo(*/\n ({ post, instance, previewMode }) => {\n const { content, emojis, language, mentions, url } = post;\n\n const divRef = useRef();\n useLayoutEffect(() => {\n if (!divRef.current) return;\n const dom = enhanceContent(content, {\n emojis,\n returnDOM: true,\n });\n // Remove target=\"_blank\" from links\n for (const a of dom.querySelectorAll('a.u-url[target=\"_blank\"]')) {\n if (!HTTP_REGEX.test(a.innerText.trim())) {\n a.removeAttribute('target');\n }\n }\n divRef.current.replaceChildren(dom.cloneNode(true));\n }, [content, emojis?.length]);\n\n return (\n {\n // // Remove target=\"_blank\" from links\n // dom.querySelectorAll('a.u-url[target=\"_blank\"]').forEach((a) => {\n // if (!/http/i.test(a.innerText.trim())) {\n // a.removeAttribute('target');\n // }\n // });\n // },\n // }),\n // }}\n />\n );\n }; /*,\n (oldProps, newProps) => {\n const { post: oldPost } = oldProps;\n const { post: newPost } = newProps;\n return oldPost.content === newPost.content;\n },\n);*/\n\nconst SIZE_CLASS = {\n s: 'small',\n m: 'medium',\n l: 'large',\n};\n\nconst detectLang = pmem(async (text) => {\n text = text?.trim();\n\n // Ref: https://github.com/komodojp/tinyld/blob/develop/docs/benchmark.md\n // 500 should be enough for now, also the default max chars for Mastodon\n if (text?.length > 500) {\n return null;\n }\n\n if (langDetector) {\n const langs = await langDetector.detect(text);\n console.groupCollapsed(\n '💬 DETECTLANG BROWSER',\n langs.slice(0, 3).map((l) => l.detectedLanguage),\n );\n console.log(text, langs.slice(0, 3));\n console.groupEnd();\n const lang = langs[0];\n if (lang?.detectedLanguage && lang?.confidence > 0.5) {\n return lang.detectedLanguage;\n }\n }\n\n const { detectAll } = await import('tinyld/light');\n const langs = detectAll(text);\n console.groupCollapsed(\n '💬 DETECTLANG TINYLD',\n langs.slice(0, 3).map((l) => l.lang),\n );\n console.log(text, langs.slice(0, 3));\n console.groupEnd();\n const lang = langs[0];\n if (lang?.lang && lang?.accuracy > 0.5) {\n // If > 50% accurate, use it\n // It can be accurate if < 50% but better be safe\n // Though > 50% also can be inaccurate 🤷‍♂️\n return lang.lang;\n }\n return null;\n});\n\nconst readMoreText = msg`Read more →`;\n\n// All this work just to make sure this only lazy-run once\n// Because first run is slow due to intl-localematcher\nconst DIFFERENT_LANG_CHECK = {};\nconst checkDifferentLanguage = (\n language,\n contentTranslationHideLanguages = [],\n) => {\n if (!language) return false;\n const targetLanguage = getTranslateTargetLanguage(true);\n const different =\n language !== targetLanguage &&\n !localeMatch([language], [targetLanguage]) &&\n !contentTranslationHideLanguages.find(\n (l) => language === l || localeMatch([language], [l]),\n );\n if (different)\n DIFFERENT_LANG_CHECK[language + contentTranslationHideLanguages] = true;\n return different;\n};\n\nconst getCurrentAccID = mem(\n () => {\n return getCurrentAccountID();\n },\n {\n maxAge: 60 * 1000, // 1 minute\n },\n);\n\nfunction Status({\n statusID,\n status,\n instance: propInstance,\n size = 'm',\n contentTextWeight,\n readOnly,\n enableCommentHint,\n withinContext,\n skeleton,\n enableTranslate,\n forceTranslate: _forceTranslate,\n previewMode,\n allowFilters,\n onMediaClick,\n quoted,\n onStatusLinkClick = () => {},\n showFollowedTags,\n allowContextMenu,\n showActionsBar,\n showReplyParent,\n mediaFirst,\n}) {\n const { _, t, i18n } = useLingui();\n const rtf = RTF(i18n.locale);\n\n if (skeleton) {\n return (\n \n {!mediaFirst && }\n
\n
\n {(size === 's' || mediaFirst) && } ███ ████████\n
\n
\n {mediaFirst &&
}\n
\n

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

\n
\n
\n
\n
\n );\n }\n const { masto, instance, authenticated } = api({ instance: propInstance });\n const { instance: currentInstance } = api();\n const sameInstance = instance === currentInstance;\n\n let sKey = statusKey(statusID || status?.id, instance);\n const snapStates = useSnapshot(states);\n if (!status) {\n status = snapStates.statuses[sKey] || snapStates.statuses[statusID];\n sKey = statusKey(status?.id, instance);\n }\n if (!status) {\n return null;\n }\n\n const {\n account: {\n acct,\n avatar,\n avatarStatic,\n id: accountId,\n url: accountURL,\n displayName,\n username,\n emojis: accountEmojis,\n bot,\n group,\n } = {},\n id,\n repliesCount,\n reblogged,\n reblogsCount,\n favourited,\n favouritesCount,\n bookmarked,\n poll,\n muted,\n sensitive,\n spoilerText,\n visibility, // public, unlisted, private, direct\n language: _language,\n editedAt,\n filtered,\n card,\n createdAt,\n inReplyToId,\n inReplyToAccountId,\n content,\n mentions,\n mediaAttachments = [],\n reblog,\n uri,\n url,\n emojis,\n tags,\n pinned,\n // Non-API props\n _deleted,\n _pinned,\n // _filtered,\n // Non-Mastodon\n emojiReactions,\n } = status;\n\n const [languageAutoDetected, setLanguageAutoDetected] = useState(null);\n useEffect(() => {\n if (!content) return;\n if (_language) return;\n if (languageAutoDetected) return;\n let timer;\n timer = setTimeout(async () => {\n let detected = await detectLang(\n getHTMLTextForDetectLang(content, emojis),\n );\n setLanguageAutoDetected(detected);\n }, 1000);\n return () => clearTimeout(timer);\n }, [content, _language]);\n const language = _language || languageAutoDetected;\n\n // if (!mediaAttachments?.length) mediaFirst = false;\n const hasMediaAttachments = !!mediaAttachments?.length;\n if (mediaFirst && hasMediaAttachments) size = 's';\n\n const currentAccount = getCurrentAccID();\n const isSelf = useMemo(() => {\n return currentAccount && currentAccount === accountId;\n }, [accountId, currentAccount]);\n\n const filterContext = useContext(FilterContext);\n const filterInfo =\n !isSelf &&\n ((!readOnly && !previewMode) || allowFilters) &&\n isFiltered(filtered, filterContext);\n\n if (filterInfo?.action === 'hide') {\n return null;\n }\n\n console.debug('RENDER Status', id, status?.account?.displayName, quoted);\n\n const debugHover = (e) => {\n if (e.shiftKey) {\n console.log({\n ...status,\n });\n }\n };\n\n if (\n (allowFilters || size !== 'l') &&\n filterInfo &&\n filterInfo.action !== 'blur'\n ) {\n return (\n \n );\n }\n\n const createdAtDate = new Date(createdAt);\n const editedAtDate = new Date(editedAt);\n\n let inReplyToAccountRef = mentions?.find(\n (mention) => mention.id === inReplyToAccountId,\n );\n if (!inReplyToAccountRef && inReplyToAccountId === id) {\n inReplyToAccountRef = { url: accountURL, username, displayName };\n }\n const [inReplyToAccount, setInReplyToAccount] = useState(inReplyToAccountRef);\n if (!withinContext && !inReplyToAccount && inReplyToAccountId) {\n const account = states.accounts[inReplyToAccountId];\n if (account) {\n setInReplyToAccount(account);\n } else {\n memFetchAccount(inReplyToAccountId, masto)\n .then((account) => {\n setInReplyToAccount(account);\n states.accounts[account.id] = account;\n })\n .catch((e) => {});\n }\n }\n const mentionSelf =\n inReplyToAccountId === currentAccount ||\n mentions?.find((mention) => mention.id === currentAccount);\n\n const prefs = getPreferences();\n const readingExpandSpoilers = !!prefs['reading:expand:spoilers'];\n\n // default | show_all | hide_all\n // Ignore hide_all because it means hide *ALL* media including non-sensitive ones\n const readingExpandMedia =\n prefs['reading:expand:media']?.toLowerCase() || 'default';\n\n // FOR TESTING:\n // const readingExpandSpoilers = true;\n // const readingExpandMedia = 'show_all';\n const showSpoiler =\n previewMode || readingExpandSpoilers || !!snapStates.spoilers[id];\n const showSpoilerMedia =\n previewMode ||\n (readingExpandMedia === 'show_all' && filterInfo?.action !== 'blur') ||\n !!snapStates.spoilersMedia[id];\n\n if (reblog) {\n // If has statusID, means useItemID (cached in states)\n\n if (group) {\n return (\n \n
\n {' '}\n \n
\n \n \n );\n }\n\n return (\n \n
\n {' '}\n \n {' '}\n boosted\n \n
\n \n \n );\n }\n\n // Check followedTags\n const FollowedTagsParent = useCallback(\n ({ children }) => (\n \n
\n {' '}\n {snapStates.statusFollowedTags[sKey].slice(0, 3).map((tag) => (\n \n {tag}\n \n ))}\n
\n {children}\n \n ),\n [sKey, instance, snapStates.statusFollowedTags[sKey]],\n );\n const StatusParent =\n showFollowedTags && !!snapStates.statusFollowedTags[sKey]?.length\n ? FollowedTagsParent\n : Fragment;\n\n const isSizeLarge = size === 'l';\n\n const [forceTranslate, setForceTranslate] = useState(_forceTranslate);\n // const targetLanguage = getTranslateTargetLanguage(true);\n // const contentTranslationHideLanguages =\n // snapStates.settings.contentTranslationHideLanguages || [];\n const { contentTranslation, contentTranslationAutoInline } =\n snapStates.settings;\n if (!contentTranslation) enableTranslate = false;\n const inlineTranslate = useMemo(() => {\n if (\n !contentTranslation ||\n !contentTranslationAutoInline ||\n readOnly ||\n (withinContext && !isSizeLarge) ||\n previewMode ||\n spoilerText ||\n sensitive ||\n poll ||\n card /*||\n mediaAttachments?.length*/\n ) {\n return false;\n }\n const contentLength = htmlContentLength(content);\n return contentLength > 0 && contentLength <= INLINE_TRANSLATE_LIMIT;\n }, [\n contentTranslation,\n contentTranslationAutoInline,\n readOnly,\n withinContext,\n isSizeLarge,\n previewMode,\n spoilerText,\n sensitive,\n poll,\n card,\n mediaAttachments,\n content,\n ]);\n\n const [showEdited, setShowEdited] = useState(false);\n const [showEmbed, setShowEmbed] = useState(false);\n\n const spoilerContentRef = useTruncated();\n const contentRef = useTruncated();\n const mediaContainerRef = useTruncated();\n\n const statusRef = useRef(null);\n const [reloadPostContentCount, reloadPostContent] = useReducer(\n (c) => c + 1,\n 0,\n );\n\n const unauthInteractionErrorMessage = t`Sorry, your current logged-in instance can't interact with this post from another instance.`;\n\n const textWeight = useCallback(\n () =>\n Math.max(\n Math.round(\n ((spoilerText?.length || 0) + htmlContentLength(content)) / 140,\n ) || 1,\n 1,\n ),\n [spoilerText, content],\n );\n\n const createdDateText = createdAt && niceDateTime(createdAtDate);\n const editedDateText = editedAt && niceDateTime(editedAtDate);\n\n // Can boost if:\n // - authenticated AND\n // - visibility != direct OR\n // - visibility = private AND isSelf\n let canBoost =\n authenticated && visibility !== 'direct' && visibility !== 'private';\n if (visibility === 'private' && isSelf) {\n canBoost = true;\n }\n\n const replyStatus = (e) => {\n if (!sameInstance || !authenticated) {\n return alert(unauthInteractionErrorMessage);\n }\n // syntheticEvent comes from MenuItem\n if (e?.shiftKey || e?.syntheticEvent?.shiftKey) {\n const newWin = openCompose({\n replyToStatus: status,\n });\n if (newWin) return;\n }\n showCompose({\n replyToStatus: status,\n });\n };\n\n // Check if media has no descriptions\n const mediaNoDesc = useMemo(() => {\n return mediaAttachments.some(\n (attachment) => !attachment.description?.trim?.(),\n );\n }, [mediaAttachments]);\n\n const statusMonthsAgo = useMemo(() => {\n return Math.floor(\n (new Date() - createdAtDate) / (1000 * 60 * 60 * 24 * 30),\n );\n }, [createdAtDate]);\n\n // const boostStatus = async () => {\n // if (!sameInstance || !authenticated) {\n // alert(unauthInteractionErrorMessage);\n // return false;\n // }\n // try {\n // if (!reblogged) {\n // let confirmText = 'Boost this post?';\n // if (mediaNoDesc) {\n // confirmText += '\\n\\n⚠️ Some media have no descriptions.';\n // }\n // const yes = confirm(confirmText);\n // if (!yes) {\n // return false;\n // }\n // }\n // // Optimistic\n // states.statuses[sKey] = {\n // ...status,\n // reblogged: !reblogged,\n // reblogsCount: reblogsCount + (reblogged ? -1 : 1),\n // };\n // if (reblogged) {\n // const newStatus = await masto.v1.statuses.$select(id).unreblog();\n // saveStatus(newStatus, instance);\n // return true;\n // } else {\n // const newStatus = await masto.v1.statuses.$select(id).reblog();\n // saveStatus(newStatus, instance);\n // return true;\n // }\n // } catch (e) {\n // console.error(e);\n // // Revert optimistism\n // states.statuses[sKey] = status;\n // return false;\n // }\n // };\n const confirmBoostStatus = async () => {\n if (!sameInstance || !authenticated) {\n alert(unauthInteractionErrorMessage);\n return false;\n }\n try {\n // Optimistic\n states.statuses[sKey] = {\n ...status,\n reblogged: !reblogged,\n reblogsCount: reblogsCount + (reblogged ? -1 : 1),\n };\n if (reblogged) {\n const newStatus = await masto.v1.statuses.$select(id).unreblog();\n saveStatus(newStatus, instance);\n } else {\n const newStatus = await masto.v1.statuses.$select(id).reblog();\n saveStatus(newStatus, instance);\n }\n return true;\n } catch (e) {\n console.error(e);\n // Revert optimistism\n states.statuses[sKey] = status;\n return false;\n }\n };\n\n const favouriteStatus = async () => {\n if (!sameInstance || !authenticated) {\n alert(unauthInteractionErrorMessage);\n return false;\n }\n try {\n // Optimistic\n states.statuses[sKey] = {\n ...status,\n favourited: !favourited,\n favouritesCount: favouritesCount + (favourited ? -1 : 1),\n };\n if (favourited) {\n const newStatus = await masto.v1.statuses.$select(id).unfavourite();\n saveStatus(newStatus, instance);\n } else {\n const newStatus = await masto.v1.statuses.$select(id).favourite();\n saveStatus(newStatus, instance);\n }\n return true;\n } catch (e) {\n console.error(e);\n // Revert optimistism\n states.statuses[sKey] = status;\n return false;\n }\n };\n const favouriteStatusNotify = async () => {\n try {\n const done = await favouriteStatus();\n if (!isSizeLarge && done) {\n showToast(\n favourited\n ? t`Unliked @${username || acct}'s post`\n : t`Liked @${username || acct}'s post`,\n );\n }\n } catch (e) {}\n };\n\n const bookmarkStatus = async () => {\n if (!supports('@mastodon/post-bookmark')) return;\n if (!sameInstance || !authenticated) {\n alert(unauthInteractionErrorMessage);\n return false;\n }\n try {\n // Optimistic\n states.statuses[sKey] = {\n ...status,\n bookmarked: !bookmarked,\n };\n if (bookmarked) {\n const newStatus = await masto.v1.statuses.$select(id).unbookmark();\n saveStatus(newStatus, instance);\n } else {\n const newStatus = await masto.v1.statuses.$select(id).bookmark();\n saveStatus(newStatus, instance);\n }\n return true;\n } catch (e) {\n console.error(e);\n // Revert optimistism\n states.statuses[sKey] = status;\n return false;\n }\n };\n const bookmarkStatusNotify = async () => {\n try {\n const done = await bookmarkStatus();\n if (!isSizeLarge && done) {\n showToast(\n bookmarked\n ? t`Unbookmarked @${username || acct}'s post`\n : t`Bookmarked @${username || acct}'s post`,\n );\n }\n } catch (e) {}\n };\n\n // const differentLanguage =\n // !!language &&\n // language !== targetLanguage &&\n // !localeMatch([language], [targetLanguage]) &&\n // !contentTranslationHideLanguages.find(\n // (l) => language === l || localeMatch([language], [l]),\n // );\n const contentTranslationHideLanguages =\n snapStates.settings.contentTranslationHideLanguages || [];\n const [differentLanguage, setDifferentLanguage] = useState(\n () =>\n DIFFERENT_LANG_CHECK[language + contentTranslationHideLanguages] ||\n checkDifferentLanguage(language, contentTranslationHideLanguages),\n );\n useEffect(() => {\n if (!language || differentLanguage) {\n return;\n }\n if (\n !differentLanguage &&\n DIFFERENT_LANG_CHECK[language + contentTranslationHideLanguages]\n ) {\n setDifferentLanguage(true);\n return;\n }\n let timeout = setTimeout(() => {\n const different = checkDifferentLanguage(\n language,\n contentTranslationHideLanguages,\n );\n if (different) setDifferentLanguage(different);\n }, 1);\n return () => clearTimeout(timeout);\n }, [language, differentLanguage, contentTranslationHideLanguages]);\n\n const reblogIterator = useRef();\n const favouriteIterator = useRef();\n async function fetchBoostedLikedByAccounts(firstLoad) {\n if (firstLoad) {\n reblogIterator.current = masto.v1.statuses\n .$select(statusID)\n .rebloggedBy.list({\n limit: REACTIONS_LIMIT,\n })\n .values();\n favouriteIterator.current = masto.v1.statuses\n .$select(statusID)\n .favouritedBy.list({\n limit: REACTIONS_LIMIT,\n })\n .values();\n }\n const [{ value: reblogResults }, { value: favouriteResults }] =\n await Promise.allSettled([\n reblogIterator.current.next(),\n favouriteIterator.current.next(),\n ]);\n if (reblogResults.value?.length || favouriteResults.value?.length) {\n const accounts = [];\n if (reblogResults.value?.length) {\n accounts.push(\n ...reblogResults.value.map((a) => {\n a._types = ['reblog'];\n return a;\n }),\n );\n }\n if (favouriteResults.value?.length) {\n accounts.push(\n ...favouriteResults.value.map((a) => {\n a._types = ['favourite'];\n return a;\n }),\n );\n }\n return {\n value: accounts,\n done: reblogResults.done && favouriteResults.done,\n };\n }\n return {\n value: [],\n done: true,\n };\n }\n\n const actionsRef = useRef();\n const isPublic = ['public', 'unlisted'].includes(visibility);\n const isPinnable = ['public', 'unlisted', 'private'].includes(visibility);\n const menuFooter =\n mediaNoDesc && !reblogged ? (\n
\n \n Some media have no descriptions.\n
\n ) : (\n statusMonthsAgo >= 3 && (\n
\n \n \n \n Old post ({rtf.format(-statusMonthsAgo, 'month')}\n )\n \n \n
\n )\n );\n const StatusMenuItems = (\n <>\n {!isSizeLarge && sameInstance && (\n <>\n
\n \n \n \n {repliesCount > 0 ? shortenNumber(repliesCount) : t`Reply`}\n \n \n \n \n {reblogged ? t`Unboost` : t`Boost`}\n \n }\n className={`menu-reblog ${reblogged ? 'checked' : ''}`}\n menuExtras={\n {\n showCompose({\n draftStatus: {\n status: `\\n${url}`,\n },\n });\n }}\n >\n \n \n Quote\n \n \n }\n menuFooter={menuFooter}\n disabled={!canBoost}\n onClick={async () => {\n try {\n const done = await confirmBoostStatus();\n if (!isSizeLarge && done) {\n showToast(\n reblogged\n ? t`Unboosted @${username || acct}'s post`\n : t`Boosted @${username || acct}'s post`,\n );\n }\n } catch (e) {}\n }}\n >\n \n \n {reblogsCount > 0\n ? shortenNumber(reblogsCount)\n : reblogged\n ? t`Unboost`\n : t`Boost…`}\n \n \n \n \n \n {favouritesCount > 0\n ? shortenNumber(favouritesCount)\n : favourited\n ? t`Unlike`\n : t`Like`}\n \n \n {supports('@mastodon/post-bookmark') && (\n \n \n {bookmarked ? t`Unbookmark` : t`Bookmark`}\n \n )}\n
\n \n )}\n {!isSizeLarge && sameInstance && (isSizeLarge || showActionsBar) && (\n \n )}\n {(isSizeLarge || showActionsBar) && (\n <>\n {\n states.showGenericAccounts = {\n heading: t`Boosted/Liked by…`,\n fetchAccounts: fetchBoostedLikedByAccounts,\n instance,\n showReactions: true,\n postID: sKey,\n };\n }}\n >\n \n \n Boosted/Liked by…\n \n \n \n )}\n {(isSizeLarge ||\n (!mediaFirst &&\n (enableTranslate || !language || differentLanguage))) && (\n \n )}\n {!mediaFirst && (enableTranslate || !language || differentLanguage) && (\n
\n {enableTranslate ? (\n setForceTranslate(true)}\n >\n \n \n Translate\n \n \n ) : (\n \n \n \n Translate\n \n \n )}\n {supportsTTS && (\n {\n try {\n const postText = getPostText(status);\n if (postText) {\n speak(postText, language);\n }\n } catch (error) {\n console.error('Failed to speak text:', error);\n }\n }}\n >\n \n \n Speak\n \n \n )}\n
\n )}\n {isSizeLarge && (\n {\n try {\n const postText = getPostText(status);\n navigator.clipboard.writeText(postText);\n showToast(t`Post text copied`);\n } catch (e) {\n console.error(e);\n showToast(t`Unable to copy post text`);\n }\n }}\n >\n \n \n Copy post text\n \n \n )}\n {((!isSizeLarge && sameInstance) ||\n enableTranslate ||\n !language ||\n differentLanguage) && }\n {!isSizeLarge && (\n <>\n {\n onStatusLinkClick(e, status);\n }}\n >\n \n \n \n View post by{' '}\n @{username || acct}\n \n
\n \n {_(visibilityText[visibility])} • {createdDateText}\n \n
\n \n \n )}\n {!!editedAt && (\n <>\n {\n setShowEdited(id);\n }}\n >\n \n \n Show Edit History\n
\n \n Edited: {editedDateText}\n \n
\n \n \n )}\n \n \n \n {nicePostURL(url)}\n \n \n
\n {\n // Copy url to clipboard\n try {\n navigator.clipboard.writeText(url);\n showToast(t`Link copied`);\n } catch (e) {\n console.error(e);\n showToast(t`Unable to copy link`);\n }\n }}\n >\n \n \n Copy\n \n \n {isPublic &&\n navigator?.share &&\n navigator?.canShare?.({\n url,\n }) && (\n {\n try {\n navigator.share({\n url,\n });\n } catch (e) {\n console.error(e);\n alert(t`Sharing doesn't seem to work.`);\n }\n }}\n >\n \n \n Share…\n \n \n )}\n
\n {isPublic && isSizeLarge && (\n {\n setShowEmbed(true);\n }}\n >\n \n \n Embed post\n \n \n )}\n {(isSelf || mentionSelf) && }\n {(isSelf || mentionSelf) && (\n {\n try {\n const newStatus = await masto.v1.statuses\n .$select(id)\n [muted ? 'unmute' : 'mute']();\n saveStatus(newStatus, instance);\n showToast(\n muted ? t`Conversation unmuted` : t`Conversation muted`,\n );\n } catch (e) {\n console.error(e);\n showToast(\n muted\n ? t`Unable to unmute conversation`\n : t`Unable to mute conversation`,\n );\n }\n }}\n >\n {muted ? (\n <>\n \n \n Unmute conversation\n \n \n ) : (\n <>\n \n \n Mute conversation\n \n \n )}\n \n )}\n {isSelf && isPinnable && (\n {\n try {\n const newStatus = await masto.v1.statuses\n .$select(id)\n [pinned ? 'unpin' : 'pin']();\n saveStatus(newStatus, instance);\n showToast(\n pinned\n ? t`Post unpinned from profile`\n : t`Post pinned to profile`,\n );\n } catch (e) {\n console.error(e);\n showToast(\n pinned ? t`Unable to unpin post` : t`Unable to pin post`,\n );\n }\n }}\n >\n {pinned ? (\n <>\n \n \n Unpin from profile\n \n \n ) : (\n <>\n \n \n Pin to profile\n \n \n )}\n \n )}\n {isSelf && (\n
\n {supports('@mastodon/post-edit') && (\n {\n showCompose({\n editStatus: status,\n });\n }}\n >\n \n \n Edit\n \n \n )}\n {isSizeLarge && (\n \n \n \n Delete this post?\n \n \n }\n itemProps={{\n className: 'danger',\n }}\n menuItemClassName=\"danger\"\n onClick={() => {\n // const yes = confirm('Delete this post?');\n // if (yes) {\n (async () => {\n try {\n await masto.v1.statuses.$select(id).remove();\n const cachedStatus = getStatus(id, instance);\n cachedStatus._deleted = true;\n showToast(t`Post deleted`);\n } catch (e) {\n console.error(e);\n showToast(t`Unable to delete post`);\n }\n })();\n // }\n }}\n >\n \n \n Delete…\n \n \n )}\n
\n )}\n {!isSelf && isSizeLarge && (\n <>\n \n {\n states.showReportModal = {\n account: status.account,\n post: status,\n };\n }}\n >\n \n \n Report post…\n \n \n \n )}\n \n );\n\n const contextMenuRef = useRef();\n const [isContextMenuOpen, setIsContextMenuOpen] = useState(false);\n const [contextMenuProps, setContextMenuProps] = useState({});\n\n const showContextMenu =\n allowContextMenu || (!isSizeLarge && !previewMode && !_deleted && !quoted);\n\n // Only iOS/iPadOS browsers don't support contextmenu\n // Some comments report iPadOS might support contextmenu if a mouse is connected\n const bindLongPressContext = useLongPress(\n isIOS && showContextMenu\n ? (e) => {\n if (e.pointerType === 'mouse') return;\n // There's 'pen' too, but not sure if contextmenu event would trigger from a pen\n\n const { clientX, clientY } = e.touches?.[0] || e;\n // link detection copied from onContextMenu because here it works\n const link = e.target.closest('a');\n if (\n link &&\n statusRef.current.contains(link) &&\n !link.getAttribute('href').startsWith('#')\n )\n return;\n e.preventDefault();\n setContextMenuProps({\n anchorPoint: {\n x: clientX,\n y: clientY,\n },\n direction: 'right',\n });\n setIsContextMenuOpen(true);\n }\n : null,\n {\n threshold: 600,\n captureEvent: true,\n detect: 'touch',\n cancelOnMovement: 2, // true allows movement of up to 25 pixels\n },\n );\n\n const hotkeysEnabled = !readOnly && !previewMode && !quoted;\n const rRef = useHotkeys('r, shift+r', replyStatus, {\n enabled: hotkeysEnabled,\n useKey: true,\n ignoreEventWhen: (e) => e.metaKey || e.ctrlKey || e.altKey,\n });\n const fRef = useHotkeys('f, l', favouriteStatusNotify, {\n enabled: hotkeysEnabled,\n ignoreEventWhen: (e) => e.metaKey || e.ctrlKey || e.altKey || e.shiftKey,\n useKey: true,\n });\n const dRef = useHotkeys('d', bookmarkStatusNotify, {\n enabled: hotkeysEnabled,\n useKey: true,\n ignoreEventWhen: (e) => e.metaKey || e.ctrlKey || e.altKey || e.shiftKey,\n });\n const bRef = useHotkeys(\n 'shift+b',\n (e) => {\n // Need shiftKey check due to useKey: true\n if (!e.shiftKey) return;\n\n (async () => {\n try {\n const done = await confirmBoostStatus();\n if (!isSizeLarge && done) {\n showToast(\n reblogged\n ? t`Unboosted @${username || acct}'s post`\n : t`Boosted @${username || acct}'s post`,\n );\n }\n } catch (e) {}\n })();\n },\n {\n enabled: hotkeysEnabled && canBoost,\n useKey: true,\n ignoreEventWhen: (e) => e.metaKey || e.ctrlKey || e.altKey,\n },\n );\n const xRef = useHotkeys(\n 'x',\n (e) => {\n const activeStatus = document.activeElement.closest(\n '.status-link, .status-focus',\n );\n if (activeStatus) {\n const spoilerButton = activeStatus.querySelector(\n '.spoiler-button:not(.spoiling)',\n );\n if (spoilerButton) {\n e.stopPropagation();\n spoilerButton.click();\n } else {\n const spoilerMediaButton = activeStatus.querySelector(\n '.spoiler-media-button:not(.spoiling)',\n );\n if (spoilerMediaButton) {\n e.stopPropagation();\n spoilerMediaButton.click();\n }\n }\n }\n },\n {\n useKey: true,\n ignoreEventWhen: (e) => e.metaKey || e.ctrlKey || e.altKey || e.shiftKey,\n },\n );\n\n const displayedMediaAttachments = mediaAttachments.slice(\n 0,\n isSizeLarge ? undefined : 4,\n );\n const showMultipleMediaCaptions =\n mediaAttachments.length > 1 &&\n displayedMediaAttachments.some(\n (media) => !!media.description && !isMediaCaptionLong(media.description),\n );\n const captionChildren = useMemo(() => {\n if (!showMultipleMediaCaptions) return null;\n const attachments = [];\n displayedMediaAttachments.forEach((media, i) => {\n if (!media.description) return;\n const index = attachments.findIndex(\n (attachment) => attachment.media.description === media.description,\n );\n if (index === -1) {\n attachments.push({\n media,\n indices: [i],\n });\n } else {\n attachments[index].indices.push(i);\n }\n });\n return attachments.map(({ media, indices }) => (\n i + 1).join(' ')}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n states.showMediaAlt = {\n alt: media.description,\n lang: language,\n };\n }}\n title={media.description}\n >\n {indices.map((i) => i + 1).join(' ')} {media.description}\n \n ));\n\n // return displayedMediaAttachments.map(\n // (media, i) =>\n // !!media.description && (\n // {\n // e.preventDefault();\n // e.stopPropagation();\n // states.showMediaAlt = {\n // alt: media.description,\n // lang: language,\n // };\n // }}\n // title={media.description}\n // >\n // {i + 1} {media.description}\n // \n // ),\n // );\n }, [showMultipleMediaCaptions, displayedMediaAttachments, language]);\n\n const isThread = useMemo(() => {\n return (\n (!!inReplyToId && inReplyToAccountId === status.account?.id) ||\n !!snapStates.statusThreadNumber[sKey]\n );\n }, [\n inReplyToId,\n inReplyToAccountId,\n status.account?.id,\n snapStates.statusThreadNumber[sKey],\n ]);\n\n const showCommentHint = useMemo(() => {\n return (\n enableCommentHint &&\n !isThread &&\n !withinContext &&\n !inReplyToId &&\n visibility === 'public' &&\n repliesCount > 0\n );\n }, [\n enableCommentHint,\n isThread,\n withinContext,\n inReplyToId,\n repliesCount,\n visibility,\n ]);\n const showCommentCount = useMemo(() => {\n if (\n card ||\n poll ||\n sensitive ||\n spoilerText ||\n mediaAttachments?.length ||\n isThread ||\n withinContext ||\n inReplyToId ||\n repliesCount <= 0\n ) {\n return false;\n }\n const questionRegex = /[???︖❓❔⁇⁈⁉¿‽؟]/;\n const containsQuestion = questionRegex.test(content);\n if (!containsQuestion) return false;\n const contentLength = htmlContentLength(content);\n if (contentLength > 0 && contentLength <= SHOW_COMMENT_COUNT_LIMIT) {\n return true;\n }\n }, [\n card,\n poll,\n sensitive,\n spoilerText,\n mediaAttachments,\n reblog,\n isThread,\n withinContext,\n inReplyToId,\n repliesCount,\n content,\n ]);\n\n return (\n \n {showReplyParent && !!(inReplyToId && inReplyToAccountId) && (\n \n )}\n {\n statusRef.current = node;\n // Use parent node if it's in focus\n // Use case: \n // When navigating (j/k), the is focused instead of \n // Hotkey binding doesn't bubble up thus this hack\n const nodeRef =\n node?.closest?.(\n '.timeline-item, .timeline-item-alt, .status-link, .status-focus',\n ) || node;\n rRef.current = nodeRef;\n fRef.current = nodeRef;\n dRef.current = nodeRef;\n bRef.current = nodeRef;\n xRef.current = nodeRef;\n }}\n tabindex=\"-1\"\n class={`status ${\n !withinContext && inReplyToId && inReplyToAccount\n ? 'status-reply-to'\n : ''\n } visibility-${visibility} ${_pinned ? 'status-pinned' : ''} ${\n SIZE_CLASS[size]\n } ${_deleted ? 'status-deleted' : ''} ${quoted ? 'status-card' : ''} ${\n isContextMenuOpen ? 'status-menu-open' : ''\n } ${mediaFirst && hasMediaAttachments ? 'status-media-first' : ''}`}\n onMouseEnter={debugHover}\n onContextMenu={(e) => {\n if (!showContextMenu) return;\n if (e.metaKey) return;\n // console.log('context menu', e);\n const link = e.target.closest('a');\n if (\n link &&\n statusRef.current.contains(link) &&\n !link.getAttribute('href').startsWith('#')\n )\n return;\n\n // If there's selected text, don't show custom context menu\n const selection = window.getSelection?.();\n if (selection.toString().length > 0) {\n const { anchorNode } = selection;\n if (statusRef.current?.contains(anchorNode)) {\n return;\n }\n }\n e.preventDefault();\n setContextMenuProps({\n anchorPoint: {\n x: e.clientX,\n y: e.clientY,\n },\n direction: 'right',\n });\n setIsContextMenuOpen(true);\n }}\n {...(showContextMenu ? bindLongPressContext() : {})}\n >\n {showContextMenu && (\n {\n setIsContextMenuOpen(false);\n // statusRef.current?.focus?.();\n if (e?.reason === 'click') {\n statusRef.current?.closest('[tabindex]')?.focus?.();\n }\n }}\n portal={{\n target: document.body,\n }}\n containerProps={{\n style: {\n // Higher than the backdrop\n zIndex: 1001,\n },\n onClick: () => {\n contextMenuRef.current?.closeMenu?.();\n },\n }}\n overflow=\"auto\"\n boundingBoxPadding={safeBoundingBoxPadding()}\n unmountOnClose\n >\n {StatusMenuItems}\n \n )}\n {showActionsBar &&\n size !== 'l' &&\n !previewMode &&\n !readOnly &&\n !_deleted &&\n !quoted && (\n \n \n \n {\n e.preventDefault();\n e.stopPropagation();\n setContextMenuProps({\n anchorRef: {\n current: e.currentTarget,\n },\n align: 'start',\n direction: 'left',\n gap: 0,\n shift: -8,\n });\n setIsContextMenuOpen('actions-bar');\n }}\n >\n \n \n \n )}\n {size !== 'l' && (\n
\n {reblogged && (\n \n )}\n {favourited && (\n \n )}\n {bookmarked && (\n \n )}\n {_pinned && (\n \n )}\n
\n )}\n {size !== 's' && (\n {\n e.preventDefault();\n e.stopPropagation();\n states.showAccount = {\n account: status.account,\n instance,\n };\n }}\n >\n \n
\n )}\n
\n {!!(status.account || createdAt) && (\n
\n \n \n \n {/* {inReplyToAccount && !withinContext && size !== 's' && (\n <>\n {' '}\n \n {' '}\n \n \n \n )} */}\n {/* */}{' '}\n {size !== 'l' &&\n (_deleted ? (\n \n Deleted\n \n ) : url && !previewMode && !readOnly && !quoted ? (\n {\n if (\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey ||\n e.altKey ||\n e.which === 2\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n onStatusLinkClick?.(e, status);\n setContextMenuProps({\n anchorRef: {\n current: e.currentTarget,\n },\n align: 'end',\n direction: 'bottom',\n gap: 4,\n });\n setIsContextMenuOpen(true);\n }}\n class={`time ${\n isContextMenuOpen && contextMenuProps?.anchorRef\n ? 'is-open'\n : ''\n }`}\n >\n {showCommentHint && !showCommentCount ? (\n \n ) : (\n visibility !== 'public' &&\n visibility !== 'direct' && (\n \n )\n )}{' '}\n \n {!previewMode && !readOnly && (\n \n )}\n \n ) : (\n // {\n // if (e.target === e.currentTarget)\n // menuInstanceRef.current?.closeMenu?.();\n // },\n // }}\n // align=\"end\"\n // gap={4}\n // overflow=\"auto\"\n // viewScroll=\"close\"\n // boundingBoxPadding=\"8 8 8 8\"\n // unmountOnClose\n // menuButton={({ open }) => (\n // {\n // e.preventDefault();\n // e.stopPropagation();\n // onStatusLinkClick?.(e, status);\n // }}\n // class={`time ${open ? 'is-open' : ''}`}\n // >\n // {' '}\n // \n // \n // )}\n // >\n // {StatusMenuItems}\n // \n \n {visibility !== 'public' && visibility !== 'direct' && (\n <>\n {' '}\n \n )}\n \n \n ))}\n
\n )}\n {visibility === 'direct' && (\n <>\n
\n Private mention\n
{' '}\n \n )}\n {!withinContext && (\n <>\n {isThread ? (\n
\n \n \n Thread\n {snapStates.statusThreadNumber[sKey]\n ? ` ${snapStates.statusThreadNumber[sKey]}/X`\n : ''}\n \n
\n ) : (\n !!inReplyToId &&\n !!inReplyToAccount &&\n (!!spoilerText ||\n !mentions.find((mention) => {\n return mention.id === inReplyToAccountId;\n })) && (\n
\n {' '}\n \n
\n )\n )}\n \n )}\n \n {mediaFirst && hasMediaAttachments ? (\n <>\n {(!!spoilerText || !!sensitive) && !readingExpandSpoilers && (\n <>\n {!!spoilerText && (\n \n {' '}\n \n )}\n {\n e.preventDefault();\n e.stopPropagation();\n if (showSpoiler) {\n delete states.spoilers[id];\n if (!readingExpandSpoilers) {\n delete states.spoilersMedia[id];\n }\n } else {\n states.spoilers[id] = true;\n if (!readingExpandSpoilers) {\n states.spoilersMedia[id] = true;\n }\n }\n }}\n >\n {' '}\n {showSpoiler ? t`Show less` : t`Show content`}\n \n \n )}\n \n {!!content && (\n
\n \n
\n )}\n \n ) : (\n <>\n {!!spoilerText && (\n <>\n \n

\n \n

\n
\n {readingExpandSpoilers || previewMode ? (\n
\n Content warning\n
\n ) : (\n {\n e.preventDefault();\n e.stopPropagation();\n if (showSpoiler) {\n delete states.spoilers[id];\n if (!readingExpandSpoilers) {\n delete states.spoilersMedia[id];\n }\n } else {\n states.spoilers[id] = true;\n if (!readingExpandSpoilers) {\n states.spoilersMedia[id] = true;\n }\n }\n }}\n >\n {' '}\n {showSpoiler ? t`Show less` : t`Show content`}\n \n )}\n \n )}\n {!!content && (\n \n \n \n \n )}\n {!!content && (\n \n )}\n {!!poll && (\n {\n states.statuses[sKey].poll = newPoll;\n }}\n refresh={() => {\n return masto.v1.polls\n .$select(poll.id)\n .fetch()\n .then((pollResponse) => {\n states.statuses[sKey].poll = pollResponse;\n })\n .catch((e) => {}); // Silently fail\n }}\n votePoll={(choices) => {\n return masto.v1.polls\n .$select(poll.id)\n .votes.create({\n choices,\n })\n .then((pollResponse) => {\n states.statuses[sKey].poll = pollResponse;\n })\n .catch((e) => {}); // Silently fail\n }}\n />\n )}\n {(((enableTranslate || inlineTranslate) &&\n isTranslateble(content, emojis) &&\n differentLanguage) ||\n forceTranslate) && (\n \n )}\n {!previewMode &&\n (sensitive || filterInfo?.action === 'blur') &&\n !!mediaAttachments.length &&\n (readingExpandMedia !== 'show_all' ||\n filterInfo?.action === 'blur') && (\n
\n );\n}\n\nfunction MultipleMediaFigure(props) {\n const { enabled, children, lang, captionChildren } = props;\n if (!enabled || !captionChildren) return children;\n return (\n
\n {children}\n
\n {captionChildren}\n
\n
\n );\n}\n\nfunction MediaFirstContainer(props) {\n const { mediaAttachments, language, postID, instance } = props;\n const moreThanOne = mediaAttachments.length > 1;\n\n const carouselRef = useRef();\n const [currentIndex, setCurrentIndex] = useState(0);\n\n useEffect(() => {\n let handleScroll = () => {\n const { clientWidth, scrollLeft } = carouselRef.current;\n const index = Math.round(Math.abs(scrollLeft) / clientWidth);\n setCurrentIndex(index);\n };\n if (carouselRef.current) {\n carouselRef.current.addEventListener('scroll', handleScroll, {\n passive: true,\n });\n }\n return () => {\n if (carouselRef.current) {\n carouselRef.current.removeEventListener('scroll', handleScroll);\n }\n };\n }, []);\n\n return (\n <>\n
\n
\n {mediaAttachments.map((media, i) => (\n
\n \n
\n ))}\n
\n {moreThanOne && (\n \n )}\n
\n {moreThanOne && (\n \n {mediaAttachments.map((media, i) => (\n \n ))}\n \n )}\n \n );\n}\n\n// \"Post\": Quote post + card link preview combo\n// Assume all links from these domains are \"posts\"\n// Mastodon links are \"posts\" too but they are converted to real quote posts and there's too many domains to check\n// This is just \"Progressive Enhancement\"\nfunction isCardPost(domain) {\n return [\n 'x.com',\n 'twitter.com',\n 'threads.net',\n 'bsky.app',\n 'bsky.brid.gy',\n 'fed.brid.gy',\n ].includes(domain);\n}\n\nfunction Byline({ authors, hidden, children }) {\n if (hidden) return children;\n if (!authors?.[0]?.account?.id) return children;\n const author = authors[0].account;\n\n return (\n \n );\n}\n\nfunction Card({ card, selfReferential, selfAuthor, instance }) {\n const snapStates = useSnapshot(states);\n const {\n blurhash,\n title,\n description,\n html,\n providerName,\n providerUrl,\n authorName,\n authorUrl,\n width,\n height,\n image,\n imageDescription,\n url,\n type,\n embedUrl,\n language,\n publishedAt,\n authors,\n } = card;\n\n /* type\n link = Link OEmbed\n photo = Photo OEmbed\n video = Video OEmbed\n rich = iframe OEmbed. Not currently accepted, so won’t show up in practice.\n */\n\n const hasText = title || providerName || authorName;\n const isLandscape = width / height >= 1.2;\n const size = isLandscape ? 'large' : '';\n\n const [cardStatusURL, setCardStatusURL] = useState(null);\n // const [cardStatusID, setCardStatusID] = useState(null);\n useEffect(() => {\n if (hasText && image && !selfReferential && isMastodonLinkMaybe(url)) {\n unfurlMastodonLink(instance, url).then((result) => {\n if (!result) return;\n const { id, url } = result;\n setCardStatusURL('#' + url);\n\n // NOTE: This is for quote post\n // (async () => {\n // const { masto } = api({ instance });\n // const status = await masto.v1.statuses.$select(id).fetch();\n // saveStatus(status, instance);\n // setCardStatusID(id);\n // })();\n });\n }\n }, [hasText, image, selfReferential]);\n\n // if (cardStatusID) {\n // return (\n // \n // );\n // }\n\n if (snapStates.unfurledLinks[url]) return null;\n\n const hasIframeHTML = /