@jant/core 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/commands/telegram/register-webhooks.js +93 -0
- package/dist/{app-C481ssbr.js → app-BIkkbVQk.js} +2252 -383
- package/dist/app-Bcr5_wZI.js +6 -0
- package/dist/client/.vite/manifest.json +3 -3
- package/dist/client/_assets/client-Bo7sKkAQ.js +274 -0
- package/dist/client/_assets/client-QHRvzZwk.css +2 -0
- package/dist/client/_assets/{client-auth-CfBiCAB7.js → client-auth-D1jDQgbH.js} +49 -49
- package/dist/{env-CgaH9Mut.js → env-C7e2Nlnt.js} +30 -1
- package/dist/{export-CR9Megtb.js → export-Bbn86HmS.js} +1 -1
- package/dist/{github-sync-DYZq9rQp.js → github-sync-CBQPRZ8H.js} +1 -1
- package/dist/{github-sync-8Vv06aCr.js → github-sync-dXsiZa_e.js} +2 -2
- package/dist/index.js +4 -4
- package/dist/node.js +61 -5
- package/package.json +2 -1
- package/src/__tests__/helpers/app.ts +15 -2
- package/src/app.tsx +3 -0
- package/src/client/components/jant-compose-editor.ts +72 -0
- package/src/client/thread-context.ts +146 -2
- package/src/client/tiptap/__tests__/link-toolbar.test.ts +1 -1
- package/src/client/tiptap/bubble-menu.ts +1 -16
- package/src/client/tiptap/extensions.ts +2 -6
- package/src/client/tiptap/link-toolbar.ts +0 -21
- package/src/client/tiptap/paste-media.ts +49 -33
- package/src/client/tiptap/toolbar-mode.ts +0 -43
- package/src/client/video-processor.ts +9 -0
- package/src/db/migrations/0022_old_gressill.sql +24 -0
- package/src/db/migrations/0023_broad_terror.sql +20 -0
- package/src/db/migrations/0024_red_the_twelve.sql +3 -0
- package/src/db/migrations/0025_exotic_wendell_rand.sql +1 -0
- package/src/db/migrations/meta/0022_snapshot.json +2267 -0
- package/src/db/migrations/meta/0023_snapshot.json +2396 -0
- package/src/db/migrations/meta/0024_snapshot.json +2417 -0
- package/src/db/migrations/meta/0025_snapshot.json +2424 -0
- package/src/db/migrations/meta/_journal.json +28 -0
- package/src/db/migrations/pg/0020_bizarre_smasher.sql +24 -0
- package/src/db/migrations/pg/0021_sharp_puppet_master.sql +20 -0
- package/src/db/migrations/pg/0022_blushing_blue_shield.sql +3 -0
- package/src/db/migrations/pg/0023_organic_zemo.sql +1 -0
- package/src/db/migrations/pg/meta/0020_snapshot.json +2904 -0
- package/src/db/migrations/pg/meta/0021_snapshot.json +3060 -0
- package/src/db/migrations/pg/meta/0022_snapshot.json +3078 -0
- package/src/db/migrations/pg/meta/0023_snapshot.json +3084 -0
- package/src/db/migrations/pg/meta/_journal.json +28 -0
- package/src/db/pg/schema.ts +82 -0
- package/src/db/schema.ts +90 -0
- package/src/i18n/coverage.generated.ts +2 -2
- package/src/i18n/locales/public/en.po +8 -0
- package/src/i18n/locales/public/zh-Hans.po +8 -0
- package/src/i18n/locales/public/zh-Hant.po +8 -0
- package/src/i18n/locales/settings/en.po +135 -0
- package/src/i18n/locales/settings/en.ts +1 -1
- package/src/i18n/locales/settings/zh-Hans.po +136 -1
- package/src/i18n/locales/settings/zh-Hans.ts +1 -1
- package/src/i18n/locales/settings/zh-Hant.po +136 -1
- package/src/i18n/locales/settings/zh-Hant.ts +1 -1
- package/src/lib/__tests__/image-dimensions.test.ts +314 -0
- package/src/lib/__tests__/mp4-track-flags.test.ts +117 -0
- package/src/lib/__tests__/telegram-entities.test.ts +180 -0
- package/src/lib/__tests__/telegram-pool-webhooks.test.ts +127 -0
- package/src/lib/env.ts +45 -0
- package/src/lib/ids.ts +3 -0
- package/src/lib/image-dimensions.ts +258 -0
- package/src/lib/mp4-track-flags.ts +71 -0
- package/src/lib/telegram-entities.ts +240 -0
- package/src/lib/telegram-pool-webhooks.ts +86 -0
- package/src/lib/telegram-settings-status.tsx +109 -0
- package/src/lib/telegram.ts +363 -0
- package/src/node/runtime.ts +6 -0
- package/src/routes/api/__tests__/telegram.test.ts +612 -0
- package/src/routes/api/telegram.ts +782 -0
- package/src/routes/api/upload-multipart.ts +34 -12
- package/src/routes/api/upload.ts +23 -2
- package/src/routes/dash/settings.tsx +131 -1
- package/src/routes/pages/__tests__/post-page-title.test.ts +70 -0
- package/src/routes/pages/page.tsx +3 -2
- package/src/runtime/cloudflare.ts +20 -9
- package/src/runtime/node.ts +20 -9
- package/src/runtime/site.ts +2 -1
- package/src/services/__tests__/telegram.test.ts +148 -0
- package/src/services/index.ts +9 -0
- package/src/services/telegram.ts +613 -0
- package/src/services/upload-session.ts +39 -12
- package/src/styles/tokens.css +1 -0
- package/src/styles/ui.css +134 -38
- package/src/types/app-context.ts +6 -0
- package/src/types/bindings.ts +3 -0
- package/src/types/config.ts +40 -0
- package/src/ui/dash/settings/SettingsRootContent.tsx +48 -17
- package/src/ui/dash/settings/TelegramContent.tsx +549 -0
- package/src/ui/feed/ThreadPreview.tsx +91 -38
- package/src/ui/feed/__tests__/thread-preview.test.ts +67 -5
- package/src/ui/pages/PostPage.tsx +78 -15
- package/dist/app-BgMwEN-M.js +0 -6
- package/dist/client/_assets/client-CJQYvkEx.js +0 -274
- package/dist/client/_assets/client-CQvi1Buw.css +0 -2
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"name": "url"
|
|
147
147
|
},
|
|
148
148
|
"src/client-auth.ts": {
|
|
149
|
-
"file": "_assets/client-auth-
|
|
149
|
+
"file": "_assets/client-auth-D1jDQgbH.js",
|
|
150
150
|
"name": "client-auth",
|
|
151
151
|
"src": "src/client-auth.ts",
|
|
152
152
|
"isEntry": true,
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
]
|
|
164
164
|
},
|
|
165
165
|
"src/client.ts": {
|
|
166
|
-
"file": "_assets/client-
|
|
166
|
+
"file": "_assets/client-Bo7sKkAQ.js",
|
|
167
167
|
"name": "client",
|
|
168
168
|
"src": "src/client.ts",
|
|
169
169
|
"isEntry": true,
|
|
@@ -858,7 +858,7 @@
|
|
|
858
858
|
]
|
|
859
859
|
},
|
|
860
860
|
"src/style.css": {
|
|
861
|
-
"file": "_assets/client-
|
|
861
|
+
"file": "_assets/client-QHRvzZwk.css",
|
|
862
862
|
"name": "style",
|
|
863
863
|
"names": [
|
|
864
864
|
"style.css"
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import{r as e}from"./chunks/url-pLre2DM_.js";var t=`🖕JS_DS🚀`,n=t.slice(0,5),r=t.slice(4),i=`datastar-fetch`,a=`datastar-signal-patch`,o=Object.hasOwn??Object.prototype.hasOwnProperty.call,s=e=>typeof e==`object`&&!!e&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null),c=e=>{for(let t in e)if(o(e,t))return!1;return!0},l=(e,t)=>{for(let n in e){let r=e[n];s(r)||Array.isArray(r)?l(r,t):e[n]=t(r)}},u=e=>{let t={};for(let[n,r]of e){let e=n.split(`.`),i=e.pop(),a=e.reduce((e,t)=>e[t]??={},t);a[i]=r}return t},d=[],f=[],p=0,m=0,h=0,ee,g,_=0,v=()=>{p++},y=()=>{--p||(re(),T())},b=e=>{ee=g,g=e},x=()=>{g=ee,ee=void 0},S=e=>ce.bind(0,{previousValue:e,t:e,e:1}),te=Symbol(`computed`),ne=e=>{let t=le.bind(0,{e:17,getter:e});return t[te]=1,t},C=e=>{let t={d:e,e:2};g&&de(t,g),b(t),v();try{t.d()}finally{y(),x()}return ue.bind(0,t)},re=()=>{for(;m<h;){let e=f[m];f[m++]=void 0,se(e,e.e&=-65)}m=0,h=0},w=e=>`getter`in e?ie(e):ae(e,e.t),ie=e=>{b(e),me(e);try{let t=e.t;return t!==(e.t=e.getter(t))}finally{x(),he(e)}},ae=(e,t)=>(e.e=1,e.previousValue!==(e.previousValue=t)),oe=e=>{let t=e.e;if(!(t&64)){e.e=t|64;let n=e.r;n?oe(n.o):f[h++]=e}},se=(e,t)=>{if(t&16||t&32&&ge(e.s,e)){b(e),me(e),v();try{e.d()}finally{y(),x(),he(e)}return}t&32&&(e.e=t&-33);let n=e.s;for(;n;){let e=n.c,t=e.e;t&64&&se(e,e.e=t&-65),n=n.i}},ce=(e,...t)=>{if(t.length){if(e.t!==(e.t=t[0])){e.e=17;let t=e.r;return t&&(pe(t),p||re()),!0}return!1}let n=e.t;if(e.e&16&&ae(e,n)){let t=e.r;t&&_e(t)}return g&&de(e,g),n},le=e=>{let t=e.e;if(t&16||t&32&&ge(e.s,e)){if(ie(e)){let t=e.r;t&&_e(t)}}else t&32&&(e.e=t&-33);return g&&de(e,g),e.t},ue=e=>{let t=e.s;for(;t;)t=fe(t,e);let n=e.r;n&&fe(n),e.e=0},de=(e,t)=>{let n=t.a;if(n&&n.c===e)return;let r=n?n.i:t.s;if(r&&r.c===e){r.m=_,t.a=r;return}let i=e.p;if(i&&i.m===_&&i.o===t)return;let a=t.a=e.p={m:_,c:e,o:t,l:n,i:r,u:i};r&&(r.l=a),n?n.i=a:t.s=a,i?i.n=a:e.r=a},fe=(e,t=e.o)=>{let n=e.c,r=e.l,i=e.i,a=e.n,o=e.u;if(i?i.l=r:t.a=r,r?r.i=i:t.s=i,a?a.u=o:n.p=o,o)o.n=a;else if(!(n.r=a))if(`getter`in n){let e=n.s;if(e){n.e=17;do e=fe(e,n);while(e)}}else `previousValue`in n||ue(n);return i},pe=e=>{let t=e.n,n;e:for(;;){let r=e.o,i=r.e;if(i&60?i&12?i&4?!(i&48)&&ve(e,r)?(r.e=i|40,i&=1):i=0:r.e=i&-9|32:i=0:r.e=i|32,i&2&&oe(r),i&1){let i=r.r;if(i){let r=(e=i).n;r&&(n={t,f:n},t=r);continue}}if(e=t){t=e.n;continue}for(;n;)if(e=n.t,n=n.f,e){t=e.n;continue e}break}},me=e=>{_++,e.a=void 0,e.e=e.e&-57|4},he=e=>{let t=e.a,n=t?t.i:e.s;for(;n;)n=fe(n,e);e.e&=-5},ge=(e,t)=>{let n,r=0,i=!1;e:for(;;){let a=e.c,o=a.e;if(t.e&16)i=!0;else if((o&17)==17){if(w(a)){let e=a.r;e.n&&_e(e),i=!0}}else if((o&33)==33){(e.n||e.u)&&(n={t:e,f:n}),e=a.s,t=a,++r;continue}if(!i){let t=e.i;if(t){e=t;continue}}for(;r--;){let r=t.r,a=r.n;if(a?(e=n.t,n=n.f):e=r,i){if(w(t)){a&&_e(r),t=e.o;continue}i=!1}else t.e&=-33;if(t=e.o,e.i){e=e.i;continue e}}return i}},_e=e=>{do{let t=e.o,n=t.e;(n&48)==32&&(t.e=n|16,n&2&&oe(t))}while(e=e.n)},ve=(e,t)=>{let n=t.a;for(;n;){if(n===e)return!0;n=n.l}return!1},ye=e=>{let t=we,n=e.split(`.`);for(let e of n){if(t==null||!o(t,e))return;t=t[e]}return t},be=(e,t=``)=>{let n=Array.isArray(e);if(n||s(e)){let r=n?[]:{};for(let n in e)r[n]=S(be(e[n],`${t+n}.`));let i=S(0);return new Proxy(r,{get(e,a){if(!(a===`toJSON`&&!o(r,a)))return n&&a in Array.prototype?(i(),r[a]):typeof a==`symbol`?r[a]:((!o(r,a)||r[a]()==null)&&(r[a]=S(``),T(t+a,``),i(i()+1)),r[a]())},set(e,a,c){let l=t+a;if(n&&a===`length`){let e=r[a]-c;if(r[a]=c,e>0){let e={};for(let t=c;t<r[a];t++)e[t]=null;T(t.slice(0,-1),e),i(i()+1)}}else if(o(r,a))if(c==null)delete r[a];else if(o(c,te))r[a]=c,T(l,``);else{let e=r[a](),t=`${l}.`;if(s(e)&&s(c)){for(let n in e)o(c,n)||(delete e[n],T(t+n,null));for(let t in c){let n=c[t];e[t]!==n&&(e[t]=n)}}else r[a](be(c,t))&&T(l,c)}else c!=null&&(o(c,te)?(r[a]=c,T(l,``)):(r[a]=S(be(c,`${l}.`)),T(l,c)),i(i()+1));return!0},deleteProperty(e,t){return delete r[t],i(i()+1),!0},ownKeys(){return i(),Reflect.ownKeys(r)},has(e,t){return i(),t in r}})}return e},T=(e,t)=>{if(e!==void 0&&t!==void 0&&d.push([e,t]),!p&&d.length){let e=u(d);d.length=0,document.dispatchEvent(new CustomEvent(a,{detail:e}))}},E=(e,{ifMissing:t}={})=>{v();for(let n in e)e[n]==null?t||delete we[n]:xe(e[n],n,we,``,t);y()},D=(e,t)=>E(u(e),t),xe=(e,t,n,r,i)=>{if(s(e)){o(n,t)&&(s(n[t])||Array.isArray(n[t]))||(n[t]={});for(let a in e)e[a]==null?i||delete n[t][a]:xe(e[a],a,n[t],`${r+t}.`,i)}else i&&o(n,t)||(n[t]=e)},Se=e=>typeof e==`string`?RegExp(e.replace(/^\/|\/$/g,``)):e,Ce=({include:e=/.*/,exclude:t=/(?!)/}={},n=we)=>{let r=Se(e),i=Se(t),a=[],o=[[n,``]];for(;o.length;){let[e,t]=o.pop();for(let n in e){let c=t+n;s(e[n])?o.push([e[n],`${c}.`]):r.test(c)&&!i.test(c)&&a.push([c,ye(c)])}}return u(a)},we=be({}),Te=e=>e instanceof HTMLElement||e instanceof SVGElement||e instanceof MathMLElement,Ee=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([a-z])([0-9]+)/gi,`$1-$2`).replace(/([0-9]+)([a-z])/gi,`$1-$2`).replace(/[\s_]+/g,`-`).toLowerCase(),De=e=>Ee(e).replace(/-/g,`_`),Oe=e=>{try{return JSON.parse(e)}catch{return Function(`return (${e})`)()}},ke={camel:e=>e.replace(/-[a-z]/g,e=>e[1].toUpperCase()),snake:e=>e.replace(/-/g,`_`),pascal:e=>e[0].toUpperCase()+ke.camel(e.slice(1))},O=(e,t,n=`camel`)=>{for(let r of t.get(`case`)||[n])e=ke[r]?.(e)||e;return e},Ae=e=>`data-${e}`,je=`https://data-star.dev/errors`,Me=(e,t,n={})=>{Object.assign(n,e);let r=Error();return r.message=`${t}
|
|
2
|
+
More info: ${je}/${De(t)}?${new URLSearchParams({metadata:JSON.stringify(n)}).toString()}
|
|
3
|
+
Context: ${JSON.stringify(n,null,2)}`,r},Ne=new Map,Pe=new Map,Fe=new Map,Ie=new Proxy({},{get:(e,t)=>Ne.get(t)?.apply,has:(e,t)=>Ne.has(t),ownKeys:()=>Reflect.ownKeys(Ne),set:()=>!1,deleteProperty:()=>!1}),Le=new Map,Re=[],ze=new Set,Be=new WeakSet,k=e=>{Re.push(e),Re.length===1&&setTimeout(()=>{for(let e of Re)ze.add(e.name),Pe.set(e.name,e);Re.length=0,Ye(),ze.clear()})},A=e=>{Ne.set(e.name,e)};document.addEventListener(i,e=>{let t=Fe.get(e.detail.type);t&&t.apply({error:Me.bind(0,{plugin:{type:`watcher`,name:t.name},element:{id:e.target.id,tag:e.target.tagName}})},e.detail.argsRaw)});var Ve=e=>{Fe.set(e.name,e)},He=e=>{for(let t of e){let e=Le.get(t);if(e&&Le.delete(t))for(let t of e.values())for(let e of t.values())e()}},Ue=Ae(`ignore`),We=`[${Ue}]`,Ge=e=>e.hasAttribute(`${Ue}__self`)||!!e.closest(We),Ke=(e,t)=>{for(let n of e)if(!Ge(n))for(let e in n.dataset)Xe(n,e.replace(/[A-Z]/g,`-$&`).toLowerCase(),n.dataset[e],t)},qe=new MutationObserver(e=>{for(let{target:t,type:n,attributeName:r,addedNodes:i,removedNodes:a}of e)if(n===`childList`){for(let e of a)Te(e)&&(He([e]),He(e.querySelectorAll(`*`)));for(let e of i)Te(e)&&(Ke([e]),Ke(e.querySelectorAll(`*`)))}else if(n===`attributes`&&r.startsWith(`data-`)&&Te(t)&&!Ge(t)){let e=r.slice(5),n=t.getAttribute(r);if(n===null){let n=Le.get(t);if(n){let t=n.get(e);if(t){for(let e of t.values())e();n.delete(e)}}}else Xe(t,e,n)}}),Je=e=>{let[t,...n]=e.split(`__`),[r,i]=t.split(/:(.+)/),a=new Map;for(let e of n){let[t,...n]=e.split(`.`);a.set(t,new Set(n))}return{pluginName:r,key:i,mods:a}},Ye=(e=document.documentElement,t=!0)=>{Te(e)&&Ke([e],!0),Ke(e.querySelectorAll(`*`),!0),t&&(qe.observe(e,{subtree:!0,childList:!0,attributes:!0}),Be.add(e))},Xe=(e,t,n,r)=>{{let i=t,{pluginName:a,key:o,mods:s}=Je(i),c=Pe.get(a);if((!r||ze.has(a))&&c){let t={el:e,rawKey:i,mods:s,error:Me.bind(0,{plugin:{type:`attribute`,name:c.name},element:{id:e.id,tag:e.tagName},expression:{rawKey:i,key:o,value:n}}),key:o,value:n,loadedPluginNames:{actions:new Set(Ne.keys()),attributes:new Set(Pe.keys())},rx:void 0},r=c.requirement&&(typeof c.requirement==`string`?c.requirement:c.requirement.key)||`allowed`,a=c.requirement&&(typeof c.requirement==`string`?c.requirement:c.requirement.value)||`allowed`,l=o!=null&&o!==``,u=n!=null&&n!==``;if(l){if(r===`denied`)throw t.error(`KeyNotAllowed`)}else if(r===`must`)throw t.error(`KeyRequired`);if(u){if(a===`denied`)throw t.error(`ValueNotAllowed`)}else if(a===`must`)throw t.error(`ValueRequired`);if(r===`exclusive`||a===`exclusive`){if(l&&u)throw t.error(`KeyAndValueProvided`);if(!l&&!u)throw t.error(`KeyOrValueRequired`)}let d=new Map;if(u){let r;t.rx=(...t)=>(r||=Ze(n,{returnsValue:c.returnsValue,argNames:c.argNames,cleanups:d}),r(e,...t))}let f=c.apply(t);f&&d.set(`attribute`,f);let p=Le.get(e);if(p){let e=p.get(i);if(e)for(let t of e.values())t()}else p=new Map,Le.set(e,p);p.set(i,d)}}},Ze=(e,{returnsValue:t=!1,argNames:i=[],cleanups:a=new Map}={})=>{let o=``;if(t){let t=e.trim().match(/(\/(\\\/|[^/])*\/|"(\\"|[^"])*"|'(\\'|[^'])*'|`(\\`|[^`])*`|\(\s*((function)\s*\(\s*\)|(\(\s*\))\s*=>)\s*(?:\{[\s\S]*?\}|[^;){]*)\s*\)\s*\(\s*\)|[^;])+/gm);if(t){let e=t.length-1,n=t[e].trim();n.startsWith(`return`)||(t[e]=`return (${n});`),o=t.join(`;
|
|
4
|
+
`)}}else o=e.trim();let s=new Map,c=RegExp(`(?:${n})(.*?)(?:${r})`,`gm`),l=0;for(let e of o.matchAll(c)){let t=e[1],i=`__escaped${l++}`;s.set(i,t),o=o.replace(n+t+r,i)}o=o.replace(/\$\['([a-zA-Z_$\d][\w$]*)'\]/g,`$$$1`).replace(/\$([a-zA-Z_\d]\w*(?:[.-]\w+)*)/g,(e,t)=>t.split(`.`).reduce((e,t)=>`${e}['${t}']`,`$`)),o=o.replaceAll(/@([A-Za-z_$][\w$]*)\(/g,`__action("$1",evt,`);for(let[e,t]of s)o=o.replace(e,t);try{let t=Function(`el`,`$`,`__action`,`evt`,...i,o);return(n,...r)=>{let i=(t,r,...i)=>{let s=Me.bind(0,{plugin:{type:`action`,name:t},element:{id:n.id,tag:n.tagName},expression:{fnContent:o,value:e}}),c=Ie[t];if(c)return c({el:n,evt:r,error:s,cleanups:a},...i);throw s(`UndefinedAction`)};try{return t(n,we,i,void 0,...r)}catch(t){throw console.error(t),Me({element:{id:n.id,tag:n.tagName},expression:{fnContent:o,value:e},error:t.message},`ExecuteExpression`)}}}catch(t){throw console.error(t),Me({expression:{fnContent:o,value:e},error:t.message},`GenerateExpression`)}};A({name:`peek`,apply(e,t){b();try{return t()}finally{x()}}}),A({name:`setAll`,apply(e,t,n){b();let r=Ce(n);l(r,()=>t),E(r),x()}}),A({name:`toggleAll`,apply(e,t){b();let n=Ce(t);l(n,e=>!e),E(n),x()}});var Qe=(e,t,n=!0)=>A({name:e,apply:async({el:r,evt:i,error:a,cleanups:o},s,{selector:c,headers:l,contentType:u=`json`,filterSignals:{include:d=/.*/,exclude:f=/(^|\.)_/}={},openWhenHidden:p=n,payload:m,requestCancellation:h=`auto`,retry:ee=`auto`,retryInterval:g=1e3,retryScaler:_=2,retryMaxWaitMs:v=3e4,retryMaxCount:y=10}={})=>{let S=h instanceof AbortController?h:new AbortController;h===`auto`&&(o.get(`@${e}`)?.(),o.set(`@${e}`,async()=>{S.abort(),await Promise.resolve()}));let te=null;try{if(!s?.length)throw a(`FetchNoUrlProvided`,{action:A});let e={Accept:`text/event-stream, text/html, application/json`,"Datastar-Request":!0};u===`json`&&(e[`Content-Type`]=`application/json`);let n=Object.assign({},e,l),o={method:t,headers:n,openWhenHidden:p,retry:ee,retryInterval:g,retryScaler:_,retryMaxWaitMs:v,retryMaxCount:y,signal:S.signal,onopen:async e=>{e.status>=400&&j(tt,r,{status:e.status.toString()})},onmessage:e=>{if(!e.event.startsWith(`datastar`))return;let t=e.event,n={};for(let t of e.data.split(`
|
|
5
|
+
`)){let e=t.indexOf(` `),r=t.slice(0,e),i=t.slice(e+1);(n[r]||=[]).push(i)}j(t,r,Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.join(`
|
|
6
|
+
`)])))},onerror:e=>{if(it(e))throw e(`FetchExpectedTextEventStream`,{url:s});e&&(console.error(e.message),j(nt,r,{message:e.message}))}},h=new URL(s,document.baseURI),ne=new URLSearchParams(h.search);if(u===`json`){b(),m=m===void 0?Ce({include:d,exclude:f}):m,x();let e=JSON.stringify(m);t===`GET`?ne.set(`datastar`,e):o.body=e}else if(u===`form`){let e=c?document.querySelector(c):r.closest(`form`);if(!e)throw a(`FetchFormNotFound`,{action:A,selector:c});if(!e.noValidate&&!e.checkValidity()){e.reportValidity();return}let s=new FormData(e),l=r;if(r===e&&i instanceof SubmitEvent)l=i.submitter;else{let t=e=>e.preventDefault();e.addEventListener(`submit`,t),te=()=>{e.removeEventListener(`submit`,t)}}if(l instanceof HTMLButtonElement){let e=l.getAttribute(`name`);e&&s.append(e,l.value)}let u=e.getAttribute(`enctype`)===`multipart/form-data`;u||(n[`Content-Type`]=`application/x-www-form-urlencoded`);let d=new URLSearchParams(s);if(t===`GET`)for(let[e,t]of d)ne.append(e,t);else u?o.body=s:o.body=d}else throw a(`FetchInvalidContentType`,{action:A,contentType:u});j($e,r,{}),h.search=ne.toString();try{await ut(h.toString(),r,o)}catch(e){if(!it(e))throw a(`FetchFailed`,{method:t,url:s,error:e.message})}}finally{j(et,r,{}),te?.(),o.delete(`@${e}`)}}});Qe(`get`,`GET`,!1),Qe(`patch`,`PATCH`),Qe(`post`,`POST`),Qe(`put`,`PUT`),Qe(`delete`,`DELETE`);var $e=`started`,et=`finished`,tt=`error`,nt=`retrying`,rt=`retries-failed`,j=(e,t,n)=>document.dispatchEvent(new CustomEvent(i,{detail:{type:e,el:t,argsRaw:n}})),it=e=>`${e}`.includes(`text/event-stream`),at=async(e,t)=>{let n=e.getReader(),r=await n.read();for(;!r.done;)t(r.value),r=await n.read()},ot=e=>{let t,n,r,i=!1;return a=>{t?t=ct(t,a):(t=a,n=0,r=-1);let o=t.length,s=0;for(;n<o;){i&&=(t[n]===10&&(s=++n),!1);let a=-1;for(;n<o&&a===-1;++n)switch(t[n]){case 58:r===-1&&(r=n-s);break;case 13:i=!0;case 10:a=n;break}if(a===-1)break;e(t.subarray(s,a),r),s=n,r=-1}s===o?t=void 0:s&&(t=t.subarray(s),n-=s)}},st=(e,t,n)=>{let r=lt(),i=new TextDecoder;return(a,o)=>{if(!a.length)n?.(r),r=lt();else if(o>0){let n=i.decode(a.subarray(0,o)),s=o+(a[o+1]===32?2:1),c=i.decode(a.subarray(s));switch(n){case`data`:r.data=r.data?`${r.data}
|
|
7
|
+
${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{let e=+c;Number.isNaN(e)||t(r.retry=e);break}}}}},ct=(e,t)=>{let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n},lt=()=>({data:``,event:``,id:``,retry:void 0}),ut=(e,t,{signal:n,headers:r,onopen:i,onmessage:a,onclose:o,onerror:s,openWhenHidden:c,fetch:l,retry:u=`auto`,retryInterval:d=1e3,retryScaler:f=2,retryMaxWaitMs:p=3e4,retryMaxCount:m=10,responseOverrides:h,...ee})=>new Promise((g,_)=>{let v={...r},y,b=()=>{y.abort(),document.hidden||w()};c||document.addEventListener(`visibilitychange`,b);let x,S=()=>{document.removeEventListener(`visibilitychange`,b),clearTimeout(x),y.abort()};n?.addEventListener(`abort`,()=>{S(),g()});let te=l||window.fetch,ne=i||(()=>{}),C=0,re=d,w=async()=>{y=new AbortController;let n=y.signal;try{let r=await te(e,{...ee,headers:v,signal:n});await ne(r);let i=async(e,n,r,i,...a)=>{let o={[r]:await n.text()};for(let e of a){let t=n.headers.get(`datastar-${Ee(e)}`);if(i){let n=i[e];n&&(t=typeof n==`string`?n:JSON.stringify(n))}t&&(o[e]=t)}j(e,t,o),S(),g()},s=r.status,c=s===204,l=s>=300&&s<400,f=s>=400&&s<600;if(s!==200){if(o?.(),u!==`never`&&!c&&!l&&(u===`always`||u===`error`&&f)){clearTimeout(x),x=setTimeout(w,d);return}S(),g();return}C=0,d=re;let p=r.headers.get(`Content-Type`);if(p?.includes(`text/html`))return await i(`datastar-patch-elements`,r,`elements`,h,`selector`,`mode`,`namespace`,`useViewTransition`);if(p?.includes(`application/json`))return await i(`datastar-patch-signals`,r,`signals`,h,`onlyIfMissing`);if(p?.includes(`text/javascript`)){let e=document.createElement(`script`),t=r.headers.get(`datastar-script-attributes`);if(t)for(let[n,r]of Object.entries(JSON.parse(t)))e.setAttribute(n,r);e.textContent=await r.text(),document.head.appendChild(e),S();return}if(await at(r.body,ot(st(e=>{e?v[`last-event-id`]=e:delete v[`last-event-id`]},e=>{re=d=e},a))),o?.(),u===`always`&&!l){clearTimeout(x),x=setTimeout(w,d);return}S(),g()}catch(r){if(!n.aborted)try{let n=s?.(r)||d;clearTimeout(x),x=setTimeout(w,n),d=Math.min(d*f,p),++C>=m?(j(rt,t,{}),S(),_(`Max retries reached.`)):console.error(`Datastar failed to reach ${e.toString()} retrying in ${n}ms.`)}catch(e){S(),_(e)}}};w()});k({name:`attr`,requirement:{value:`must`},returnsValue:!0,apply({el:e,key:t,rx:n}){let r=(t,n)=>{n===``||n===!0?e.setAttribute(t,``):n===!1||n==null?e.removeAttribute(t):typeof n==`string`?e.setAttribute(t,n):e.setAttribute(t,JSON.stringify(n))},i=t?()=>{a.disconnect(),r(t,n()),a.observe(e,{attributeFilter:[t]})}:()=>{a.disconnect();let t=n(),i=Object.keys(t);for(let e of i)r(e,t[e]);a.observe(e,{attributeFilter:i})},a=new MutationObserver(i),o=C(i);return()=>{a.disconnect(),o()}}});var dt=/^data:(?<mime>[^;]+);base64,(?<contents>.*)$/,ft=Symbol(`empty`),pt=Ae(`bind`);k({name:`bind`,requirement:`exclusive`,apply({el:e,key:t,mods:n,value:r,error:i}){let a=t==null?r:O(t,n),o=(e,t)=>t===`number`?+e.value:e.value,s=t=>{e.value=`${t}`};if(e instanceof HTMLInputElement)switch(e.type){case`range`:case`number`:o=(e,t)=>t===`string`?e.value:+e.value;break;case`checkbox`:o=(e,t)=>e.value===`on`?t===`string`?e.checked?e.value:``:e.checked:t===`boolean`?e.checked:e.checked?e.value:``,s=t=>{e.checked=typeof t==`string`?t===e.value:t};break;case`radio`:e.getAttribute(`name`)?.length||e.setAttribute(`name`,a),o=(e,t)=>e.checked?t===`number`?+e.value:e.value:ft,s=t=>{e.checked=t===(typeof t==`number`?+e.value:e.value)};break;case`file`:{let t=()=>{let t=[...e.files||[]],n=[];Promise.all(t.map(e=>new Promise(t=>{let r=new FileReader;r.onload=()=>{if(typeof r.result!=`string`)throw i(`InvalidFileResultType`,{resultType:typeof r.result});let t=r.result.match(dt);if(!t?.groups)throw i(`InvalidDataUri`,{result:r.result});n.push({name:e.name,contents:t.groups.contents,mime:t.groups.mime})},r.onloadend=()=>t(),r.readAsDataURL(e)}))).then(()=>{D([[a,n]])})};return e.addEventListener(`change`,t),e.addEventListener(`input`,t),()=>{e.removeEventListener(`change`,t),e.removeEventListener(`input`,t)}}}else if(e instanceof HTMLSelectElement){if(e.multiple){let t=new Map;o=e=>[...e.selectedOptions].map(e=>{let n=t.get(e.value);return n===`string`||n==null?e.value:+e.value}),s=n=>{for(let r of e.options)n.includes(r.value)?(t.set(r.value,`string`),r.selected=!0):n.includes(+r.value)?(t.set(r.value,`number`),r.selected=!0):r.selected=!1}}}else e instanceof HTMLTextAreaElement||(o=e=>`value`in e?e.value:e.getAttribute(`value`),s=t=>{`value`in e?e.value=t:e.setAttribute(`value`,t)});let c=ye(a),l=typeof c,u=a;if(Array.isArray(c)&&!(e instanceof HTMLSelectElement&&e.multiple)){let n=t||r,i=document.querySelectorAll(`[${pt}\\:${CSS.escape(n)}],[${pt}="${CSS.escape(n)}"]`),a=[],s=0;for(let t of i){if(a.push([`${u}.${s}`,o(t,`none`)]),e===t)break;s++}D(a,{ifMissing:!0}),u=`${u}.${s}`}else D([[u,o(e,l)]],{ifMissing:!0});let d=()=>{let t=ye(u);if(t!=null){let n=o(e,typeof t);n!==ft&&D([[u,n]])}};e.addEventListener(`input`,d),e.addEventListener(`change`,d);let f=C(()=>{s(ye(u))});return()=>{f(),e.removeEventListener(`input`,d),e.removeEventListener(`change`,d)}}}),k({name:`class`,requirement:{value:`must`},returnsValue:!0,apply({key:e,el:t,mods:n,rx:r}){e&&=O(e,n,`kebab`);let i,a=()=>{o.disconnect(),i=e?{[e]:r()}:r();for(let e in i){let n=e.split(/\s+/).filter(e=>e.length>0);if(i[e])for(let e of n)t.classList.contains(e)||t.classList.add(e);else for(let e of n)t.classList.contains(e)&&t.classList.remove(e)}o.observe(t,{attributeFilter:[`class`]})},o=new MutationObserver(a),s=C(a);return()=>{o.disconnect(),s();for(let e in i){let n=e.split(/\s+/).filter(e=>e.length>0);for(let e of n)t.classList.remove(e)}}}}),k({name:`computed`,requirement:{value:`must`},returnsValue:!0,apply({key:e,mods:t,rx:n,error:r}){if(e)D([[O(e,t),ne(n)]]);else{let e=Object.assign({},n());l(e,e=>{if(typeof e==`function`)return ne(e);throw r(`ComputedExpectedFunction`)}),E(e)}}}),k({name:`effect`,requirement:{key:`denied`,value:`must`},apply:({rx:e})=>C(e)}),k({name:`indicator`,requirement:`exclusive`,apply({el:e,key:t,mods:n,value:r}){let a=t==null?r:O(t,n);D([[a,!1]]);let o=t=>{let{type:n,el:r}=t.detail;if(r===e)switch(n){case $e:D([[a,!0]]);break;case et:D([[a,!1]]);break}};return document.addEventListener(i,o),()=>{D([[a,!1]]),document.removeEventListener(i,o)}}});var mt=e=>{if(!e||e.size<=0)return 0;for(let t of e){if(t.endsWith(`ms`))return+t.replace(`ms`,``);if(t.endsWith(`s`))return t.replace(`s`,``)*1e3;try{return Number.parseFloat(t)}catch{}}return 0},ht=(e,t,n=!1)=>e?e.has(t.toLowerCase()):n,gt=(e,t)=>(...n)=>{setTimeout(()=>{e(...n)},t)},_t=(e,t,n=!0,r=!1,i=!1)=>{let a=null,o=0;return(...s)=>{n&&!o?(e(...s),a=null):a=s,(!o||i)&&(o&&clearTimeout(o),o=setTimeout(()=>{r&&a!==null&&e(...a),a=null,o=0},t))}},vt=(e,t)=>{let n=t.get(`delay`);if(n){let t=mt(n);e=gt(e,t)}let r=t.get(`debounce`);if(r){let t=mt(r),n=ht(r,`leading`,!1),i=!ht(r,`notrailing`,!1);e=_t(e,t,n,i,!0)}let i=t.get(`throttle`);if(i){let t=mt(i),n=!ht(i,`noleading`,!1),r=ht(i,`trailing`,!1);e=_t(e,t,n,r)}return e},yt=!!document.startViewTransition,bt=(e,t)=>{if(t.has(`viewtransition`)&&yt){let t=e;e=(...e)=>document.startViewTransition(()=>t(...e))}return e};k({name:`init`,requirement:{key:`denied`,value:`must`},apply({rx:e,mods:t}){let n=()=>{v(),e(),y()};n=bt(n,t);let r=0,i=t.get(`delay`);i&&(r=mt(i),r>0&&(n=gt(n,r))),n()}}),k({name:`json-signals`,requirement:{key:`denied`},apply({el:e,value:t,mods:n}){let r=n.has(`terse`)?0:2,i={};t&&(i=Oe(t));let a=()=>{o.disconnect(),e.textContent=JSON.stringify(Ce(i),null,r),o.observe(e,{childList:!0,characterData:!0,subtree:!0})},o=new MutationObserver(a),s=C(a);return()=>{o.disconnect(),s()}}}),k({name:`on`,requirement:`must`,argNames:[`evt`],apply({el:e,key:t,mods:n,rx:r}){let o=e;n.has(`window`)&&(o=window);let s=e=>{e&&(n.has(`prevent`)&&e.preventDefault(),n.has(`stop`)&&e.stopPropagation()),v(),r(e),y()};s=bt(s,n),s=vt(s,n);let c={capture:n.has(`capture`),passive:n.has(`passive`),once:n.has(`once`)};if(n.has(`outside`)){o=document;let t=s;s=n=>{e.contains(n?.target)||t(n)}}let l=O(t,n,`kebab`);if((l===i||l===a)&&(o=document),e instanceof HTMLFormElement&&l===`submit`){let e=s;s=t=>{t?.preventDefault(),e(t)}}return o.addEventListener(l,s,c),()=>{o.removeEventListener(l,s)}}});var xt=(e,t,n)=>Math.max(t,Math.min(n,e)),St=new WeakSet;k({name:`on-intersect`,requirement:{key:`denied`,value:`must`},apply({el:e,mods:t,rx:n}){let r=()=>{v(),n(),y()};r=bt(r,t),r=vt(r,t);let i={threshold:0};t.has(`full`)?i.threshold=1:t.has(`half`)?i.threshold=.5:t.get(`threshold`)&&(i.threshold=xt(Number(t.get(`threshold`)),0,100)/100);let a=t.has(`exit`),o=new IntersectionObserver(t=>{for(let n of t)n.isIntersecting!==a&&(r(),o&&St.has(e)&&o.disconnect())},i);return o.observe(e),t.has(`once`)&&St.add(e),()=>{t.has(`once`)||St.delete(e),o&&=(o.disconnect(),null)}}}),k({name:`on-interval`,requirement:{key:`denied`,value:`must`},apply({mods:e,rx:t}){let n=()=>{v(),t(),y()};n=bt(n,e);let r=1e3,i=e.get(`duration`);i&&(r=mt(i),ht(i,`leading`,!1)&&n());let a=setInterval(n,r);return()=>{clearInterval(a)}}}),k({name:`on-signal-patch`,requirement:{value:`must`},argNames:[`patch`],returnsValue:!0,apply({el:e,key:t,mods:n,rx:r,error:i}){if(t&&t!==`filter`)throw i(`KeyNotAllowed`);let o=Ae(`${this.name}-filter`),s=e.getAttribute(o),l={};s&&(l=Oe(s));let u=!1,d=vt(e=>{if(u)return;let t=Ce(l,e.detail);if(!c(t)){u=!0,v();try{r(t)}finally{y(),u=!1}}},n);return document.addEventListener(a,d),()=>{document.removeEventListener(a,d)}}}),k({name:`ref`,requirement:`exclusive`,apply({el:e,key:t,mods:n,value:r}){D([[t==null?r:O(t,n),e]])}});var Ct=`none`,wt=`display`;k({name:`show`,requirement:{key:`denied`,value:`must`},returnsValue:!0,apply({el:e,rx:t}){let n=()=>{r.disconnect(),t()?e.style.display===Ct&&e.style.removeProperty(wt):e.style.setProperty(wt,Ct),r.observe(e,{attributeFilter:[`style`]})},r=new MutationObserver(n),i=C(n);return()=>{r.disconnect(),i()}}}),k({name:`signals`,returnsValue:!0,apply({key:e,mods:t,rx:n}){let r=t.has(`ifmissing`);e?(e=O(e,t),D([[e,n?.()]],{ifMissing:r})):E(Object.assign({},n?.()),{ifMissing:r})}}),k({name:`style`,requirement:{value:`must`},returnsValue:!0,apply({key:e,el:t,rx:n}){let{style:r}=t,i=new Map,a=(e,t)=>{let n=i.get(e);!t&&t!==0?n!==void 0&&(n?r.setProperty(e,n):r.removeProperty(e)):(n===void 0&&i.set(e,r.getPropertyValue(e)),r.setProperty(e,String(t)))},o=()=>{if(s.disconnect(),e)a(e,n());else{let e=n();for(let[t,n]of i)t in e||(n?r.setProperty(t,n):r.removeProperty(t));for(let t in e)a(Ee(t),e[t])}s.observe(t,{attributeFilter:[`style`]})},s=new MutationObserver(o),c=C(o);return()=>{s.disconnect(),c();for(let[e,t]of i)t?r.setProperty(e,t):r.removeProperty(e)}}}),k({name:`text`,requirement:{key:`denied`,value:`must`},returnsValue:!0,apply({el:e,rx:t}){let n=()=>{r.disconnect(),e.textContent=`${t()}`,r.observe(e,{childList:!0,characterData:!0,subtree:!0})},r=new MutationObserver(n),i=C(n);return()=>{r.disconnect(),i()}}});var Tt=(e,t)=>e.includes(t),Et=[`remove`,`outer`,`inner`,`replace`,`prepend`,`append`,`before`,`after`],Dt=[`html`,`svg`,`mathml`];Ve({name:`datastar-patch-elements`,apply(e,{selector:t=``,mode:n=`outer`,namespace:r=`html`,useViewTransition:i=``,elements:a=``}){if(!Tt(Et,n))throw e.error(`PatchElementsInvalidMode`,{mode:n});if(!t&&n!==`outer`&&n!==`replace`)throw e.error(`PatchElementsExpectedSelector`);if(!Tt(Dt,r))throw e.error(`PatchElementsInvalidNamespace`,{namespace:r});let o={selector:t,mode:n,namespace:r,useViewTransition:i.trim()===`true`,elements:a};yt&&i?document.startViewTransition(()=>Ot(e,o)):Ot(e,o)}});var Ot=({error:e},{selector:t,mode:n,namespace:r,elements:i})=>{let a=i.replace(/<svg(\s[^>]*>|>)([\s\S]*?)<\/svg>/gim,``),o=/<\/html>/.test(a),s=/<\/head>/.test(a),c=/<\/body>/.test(a),l=r===`svg`?`svg`:r===`mathml`?`math`:``,u=l?`<${l}>${i}</${l}>`:i,d=new DOMParser().parseFromString(o||s||c?i:`<body><template>${u}</template></body>`,`text/html`),f=document.createDocumentFragment();if(o)f.appendChild(d.documentElement);else if(s&&c)f.appendChild(d.head),f.appendChild(d.body);else if(s)f.appendChild(d.head);else if(c)f.appendChild(d.body);else if(l){let e=d.querySelector(`template`).content.querySelector(l);for(let t of e.childNodes)f.appendChild(t)}else f=d.querySelector(`template`).content;if(!t&&(n===`outer`||n===`replace`))for(let t of f.children){let r;if(t instanceof HTMLHtmlElement)r=document.documentElement;else if(t instanceof HTMLBodyElement)r=document.body;else if(t instanceof HTMLHeadElement)r=document.head;else if(r=document.getElementById(t.id),!r){console.warn(e(`PatchElementsNoTargetsFound`),{element:{id:t.id}});continue}Mt(n,t,[r])}else{let r=document.querySelectorAll(t);if(!r.length){console.warn(e(`PatchElementsNoTargetsFound`),{selector:t});return}Mt(n,f,r)}},kt=new WeakSet;for(let e of document.querySelectorAll(`script`))kt.add(e);var At=e=>{let t=e instanceof HTMLScriptElement?[e]:e.querySelectorAll(`script`);for(let e of t)if(!kt.has(e)){let t=document.createElement(`script`);for(let{name:n,value:r}of e.attributes)t.setAttribute(n,r);t.text=e.text,e.replaceWith(t),kt.add(t)}},jt=(e,t,n)=>{for(let r of e){let e=t.cloneNode(!0);At(e),r[n](e)}},Mt=(e,t,n)=>{switch(e){case`remove`:for(let e of n)e.remove();break;case`outer`:case`inner`:for(let r of n)zt(r,t.cloneNode(!0),e),At(r);break;case`replace`:jt(n,t,`replaceWith`);break;case`prepend`:case`append`:case`before`:case`after`:jt(n,t,e)}},M=new Map,Nt=new Set,Pt=new Map,Ft=new Set,It=document.createElement(`div`);It.hidden=!0;var Lt=Ae(`ignore-morph`),Rt=`[${Lt}]`,zt=(e,t,n=`outer`)=>{if(Te(e)&&Te(t)&&e.hasAttribute(Lt)&&t.hasAttribute(Lt)||e.parentElement?.closest(Rt))return;let r=document.createElement(`div`);r.append(t),document.body.insertAdjacentElement(`afterend`,It);let i=e.querySelectorAll(`[id]`);for(let{id:e,tagName:t}of i)Pt.has(e)?Ft.add(e):Pt.set(e,t);e instanceof Element&&e.id&&(Pt.has(e.id)?Ft.add(e.id):Pt.set(e.id,e.tagName)),Nt.clear();let a=r.querySelectorAll(`[id]`);for(let{id:e,tagName:t}of a)Nt.has(e)?Ft.add(e):Pt.get(e)===t&&Nt.add(e);for(let e of Ft)Nt.delete(e);Pt.clear(),Ft.clear(),M.clear();let o=n===`outer`?e.parentElement:e;qt(o,i),qt(r,a),Bt(o,r,n===`outer`?e:null,e.nextSibling),It.remove()},Bt=(e,t,n=null,r=null)=>{e instanceof HTMLTemplateElement&&t instanceof HTMLTemplateElement&&(e=e.content,t=t.content),n??=e.firstChild;for(let i of t.childNodes){if(n&&n!==r){let e=Vt(i,n,r);if(e){if(e!==n){let t=n;for(;t&&t!==e;){let e=t;t=t.nextSibling,Ut(e)}}Kt(e,i),n=e.nextSibling;continue}}if(i instanceof Element&&Nt.has(i.id)){let t=document.getElementById(i.id),r=t;for(;r=r.parentNode;){let e=M.get(r);e&&(e.delete(i.id),e.size||M.delete(r))}Wt(e,t,n),Kt(t,i),n=t.nextSibling;continue}if(M.has(i)){let t=i.namespaceURI,r=i.tagName,a=t&&t!==`http://www.w3.org/1999/xhtml`?document.createElementNS(t,r):document.createElement(r);e.insertBefore(a,n),Kt(a,i),n=a.nextSibling}else{let t=document.importNode(i,!0);e.insertBefore(t,n),n=t.nextSibling}}for(;n&&n!==r;){let e=n;n=n.nextSibling,Ut(e)}},Vt=(e,t,n)=>{let r=null,i=e.nextSibling,a=0,o=0,s=M.get(e)?.size||0,c=t;for(;c&&c!==n;){if(Ht(c,e)){let t=!1,n=M.get(c),i=M.get(e);if(i&&n){for(let e of n)if(i.has(e)){t=!0;break}}if(t)return c;if(!r&&!M.has(c)){if(!s)return c;r=c}}if(o+=M.get(c)?.size||0,o>s)break;r===null&&i&&Ht(c,i)&&(a++,i=i.nextSibling,a>=2&&(r=void 0)),c=c.nextSibling}return r||null},Ht=(e,t)=>e.nodeType===t.nodeType&&e.tagName===t.tagName&&(!e.id||e.id===t.id),Ut=e=>{M.has(e)?Wt(It,e,null):e.parentNode?.removeChild(e)},Wt=Ut.call.bind(It.moveBefore??It.insertBefore),Gt=Ae(`preserve-attr`),Kt=(e,t)=>{let n=t.nodeType;if(n===1){let n=e,r=t,i=n.hasAttribute(`data-scope-children`);if(n.hasAttribute(Lt)&&r.hasAttribute(Lt))return e;n instanceof HTMLInputElement&&r instanceof HTMLInputElement&&r.type!==`file`?r.getAttribute(`value`)!==n.getAttribute(`value`)&&(n.value=r.getAttribute(`value`)??``):n instanceof HTMLTextAreaElement&&r instanceof HTMLTextAreaElement&&(r.value!==n.value&&(n.value=r.value),n.firstChild&&n.firstChild.nodeValue!==r.value&&(n.firstChild.nodeValue=r.value));let a=(t.getAttribute(Gt)??``).split(` `);for(let{name:e,value:t}of r.attributes)n.getAttribute(e)!==t&&!a.includes(e)&&n.setAttribute(e,t);for(let e=n.attributes.length-1;e>=0;e--){let{name:t}=n.attributes[e];!r.hasAttribute(t)&&!a.includes(t)&&n.removeAttribute(t)}i&&!n.hasAttribute(`data-scope-children`)&&n.setAttribute(`data-scope-children`,``),n.isEqualNode(r)||Bt(n,r),i&&n.dispatchEvent(new CustomEvent(`datastar:scope-children`,{bubbles:!1}))}return(n===8||n===3)&&e.nodeValue!==t.nodeValue&&(e.nodeValue=t.nodeValue),e},qt=(e,t)=>{for(let n of t)if(Nt.has(n.id)){let t=n;for(;t&&t!==e;){let e=M.get(t);e||(e=new Set,M.set(t,e)),e.add(n.id),t=t.parentElement}}};Ve({name:`datastar-patch-signals`,apply({error:e},{signals:t,onlyIfMissing:n}){if(t){let e=n?.trim()===`true`;E(Oe(t),{ifMissing:e})}else throw e(`PatchSignalsExpectedSignals`)}});var Jt=`/_assets`;function Yt(e){let t=e.trim().replace(/\/+$/,``);return t?t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`/`)?t:`/${t}`:Jt}function Xt(e,t=Jt){let n=Yt(t),r=e.replace(/^\/+/,``);return r?`${n}/${r}`:n}function Zt(e,t=Jt){let n=Yt(t);return e===n||e.startsWith(`${n}/`)}function Qt(e,t){if(t.startsWith(`http://`)||t.startsWith(`https://`)){if(!Zt(e))return e;let n=e.slice(Jt.length).replace(/^\/+/,``),r=t.replace(/\/+$/,``);return n?`${r}/${n}`:r}return Zt(e,t)||!Zt(e)?e:Xt(e.slice(Jt.length).replace(/^\/+/,``),t)}function $t(){return document.documentElement.dataset.sitePathPrefix||``}function en(){return document.documentElement.dataset.assetBasePath||Jt}function tn(t){return Zt(t)?Qt(t,en()):e(t,$t())}function nn(e){if(typeof e==`string`){if(/^https?:\/\//.test(e)){let t=new URL(e);return t.origin===window.location.origin?(t.pathname=tn(t.pathname),t.toString()):e}return tn(e)}if(e instanceof URL){if(e.origin!==window.location.origin)return e;let t=new URL(e.toString());return t.pathname=tn(t.pathname),t}let t=new URL(e.url);return t.origin===window.location.origin?(t.pathname=tn(t.pathname),new Request(t.toString(),e)):e}function rn(){let e=globalThis.fetch;if(e.__jantPrefixed)return;let t=(t,n)=>e(nn(t),n);t.__jantPrefixed=!0,globalThis.fetch=t}var N=null,an=0,P=!1,on=null,sn=null,cn=0;function F(e){return!isFinite(e)||e<0?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function I(e){return e.querySelector(`audio.media-audio-el`)}function ln(e){return e.querySelector(`[data-audio-range]`)}function un(e){return e.querySelector(`[data-audio-waveform]`)}function dn(e,t){let n=`${(t*100).toFixed(1)}%`;e.style.background=`linear-gradient(to right, var(--site-text-primary) ${n}, transparent ${n})`}var L=new WeakMap,fn=new WeakSet;async function pn(e,t){let n=await(await fetch(e)).arrayBuffer(),r=new AudioContext;try{let e=(await r.decodeAudioData(n)).getChannelData(0),i=Math.max(1,Math.floor(e.length/t)),a=Array(t);for(let n=0;n<t;n++){let t=0,r=n*i,o=Math.min(r+i,e.length);for(let n=r;n<o;n++){let r=Math.abs(e[n]);r>t&&(t=r)}a[n]=t}let o=0;for(let e of a)e>o&&(o=e);if(o>0)for(let e=0;e<t;e++)a[e]/=o;return a}finally{await r.close()}}function mn(){let e=document.querySelectorAll(`[data-audio-peaks]`),t=[];for(let n of e){let e=n.dataset.audioPeaks;if(!e)continue;let r=n.closest(`.media-audio-card`);if(!(!r||L.has(r)))try{let n=JSON.parse(e);if(!Array.isArray(n))continue;L.set(r,n),r.classList.add(`has-waveform`),t.push(r)}catch{}}t.length>0&&requestAnimationFrame(()=>{for(let e of t)gn(e,0)})}async function hn(e){if(L.has(e)||fn.has(e))return;fn.add(e);let t=e.querySelector(`audio.media-audio-el source`),n=un(e);if(!t?.src||!n)return;let r=n.getBoundingClientRect().width,i=Math.max(20,Math.floor(r/3));try{let n=await pn(t.src,i);L.set(e,n),e.classList.add(`has-waveform`);let r=I(e),a=r?.duration??0;gn(e,r&&isFinite(a)&&a>0?r.currentTime/a:0)}catch{}}function gn(e,t){let n=L.get(e),r=un(e);if(!n||!r)return;let i=window.devicePixelRatio||1,a=r.getBoundingClientRect(),o=Math.round(a.width*i),s=Math.round(a.height*i);if(o===0||s===0)return;(r.width!==o||r.height!==s)&&(r.width=o,r.height=s);let c=r.getContext(`2d`);if(!c)return;c.clearRect(0,0,o,s);let l=n.length,u=o/l,d=Math.max(1,Math.round(u*.6)),f=Math.round(2*i),p=s*.85,m=getComputedStyle(r).getPropertyValue(`--site-text-primary`).trim()||`#000`;for(let e=0;e<l;e++){let r=Math.round(e*u+(u-d)/2),a=Math.max(f,Math.round(n[e]*p)),o=Math.round((s-a)/2);c.globalAlpha=(e+.5)/l<=t?.9:.2,c.fillStyle=m;let h=Math.min(d/2,i);c.beginPath(),c.roundRect(r,o,d,a,h),c.fill()}c.globalAlpha=1}function _n(e,t){let{currentTime:n,duration:r}=t,i=isFinite(r)&&r>0,a=i?n/r:0;if(!P){let t=ln(e);t&&i&&(t.value=String(Math.round(a*1e3)),dn(t,a)),L.has(e)&&gn(e,a);let o=e.querySelector(`[data-audio-time]`);o&&(o.textContent=i?`${F(n)} / ${F(r)}`:F(n))}}function vn(){if(!N)return;let e=I(N);!e||e.paused||(_n(N,e),an=requestAnimationFrame(vn))}function yn(){if(N){let e=I(N);e&&!e.paused&&e.pause(),N.classList.remove(`is-playing`),N=null}cancelAnimationFrame(an)}async function bn(e){let t=I(e);if(t)if(N&&N!==e&&yn(),t.paused){N=e,e.classList.add(`is-playing`);try{await t.play()}catch{e.classList.remove(`is-playing`),N=null;return}an=requestAnimationFrame(vn),hn(e)}else t.pause(),e.classList.remove(`is-playing`),cancelAnimationFrame(an),N=null}function xn(e){let t=e.closest(`.media-audio-card`);if(!t)return;let n=I(t);if(!n)return;let r=Number(e.value)/1e3,i=n.duration;isFinite(i)&&i>0&&(n.currentTime=r*i)}function Sn(e,t){let n=e.getBoundingClientRect();cn=Math.max(0,Math.min(1,(t.clientX-n.left)/n.width));let r=e.closest(`.media-audio-card`);if(!r)return;gn(r,cn);let i=I(r),a=r.querySelector(`[data-audio-time]`);if(i&&a){let e=i.duration;isFinite(e)&&e>0&&(a.textContent=`${F(cn*e)} / ${F(e)}`)}}async function Cn(e){let t=e.closest(`.media-audio-card`);if(!t)return;let n=I(t);if(n)if(n.paused){N&&N!==t&&yn(),N=t,t.classList.add(`is-playing`);try{await n.play()}catch{t.classList.remove(`is-playing`),N=null;return}let e=n.duration;isFinite(e)&&e>0&&(n.currentTime=cn*e),an=requestAnimationFrame(vn),hn(t)}else{let e=n.duration;isFinite(e)&&e>0&&(n.currentTime=cn*e)}}document.addEventListener(`pointerdown`,e=>{let t=e.target;t.matches(`[data-audio-range]`)?(P=!0,on=t):t.matches(`[data-audio-waveform]`)&&(P=!0,sn=t,Sn(t,e))},!0),document.addEventListener(`pointermove`,e=>{P&&sn&&Sn(sn,e)},!0),document.addEventListener(`pointerup`,()=>{P&&(on?(xn(on),on=null):sn&&=(Cn(sn),null)),P=!1},!0),document.addEventListener(`pointercancel`,()=>{on=null,sn=null,P=!1},!0),document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-audio-play]`);if(!t)return;e.preventDefault();let n=t.closest(`.media-audio-card`);n&&bn(n)}),document.addEventListener(`input`,e=>{let t=e.target;if(!t.matches(`[data-audio-range]`))return;let n=t.closest(`.media-audio-card`);if(!n)return;let r=I(n);if(!r)return;let i=Number(t.value)/1e3;dn(t,i);let a=r.duration,o=n.querySelector(`[data-audio-time]`);o&&isFinite(a)&&a>0&&(o.textContent=`${F(i*a)} / ${F(a)}`)},!0),document.addEventListener(`ended`,e=>{let t=e.target;if(!t.closest)return;let n=t.closest(`.media-audio-card`);if(!n)return;n.classList.remove(`is-playing`),cancelAnimationFrame(an),N=null;let r=ln(n);r&&(r.value=`0`,dn(r,0)),L.has(n)&&gn(n,0);let i=n.querySelector(`[data-audio-time]`);i&&(i.textContent=`0:00`)},!0),document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,mn):mn();var wn=`jant:media-lightbox-toggle`,Tn=`75% 0px`,En=.6,Dn=.25,On=160,R=new Set,kn=new WeakMap,An=new WeakSet,z=null,B=null,V=null,jn=!1,Mn=null,Nn=null,Pn=null;function Fn(e){return e.length===0?null:[...e].sort((e,t)=>t.visibleArea===e.visibleArea?e.centerDistance===t.centerDistance?t.intersectionRatio-e.intersectionRatio:e.centerDistance-t.centerDistance:t.visibleArea-e.visibleArea)[0]??null}function In(){return{x:(globalThis.innerWidth||document.documentElement.clientWidth||0)/2,y:(globalThis.innerHeight||document.documentElement.clientHeight||0)/2}}function Ln(e){return kn.get(e)}function Rn(e){return e.closest(`.media-video-wrap`)?.querySelector(`[data-feed-video-mute-toggle]`)??null}function zn(e){let t=Rn(e);if(!t)return;let n=V!==e||e.muted;t.dataset.muted=n?`true`:`false`,t.setAttribute(`aria-label`,n?`Play with sound`:`Mute video`)}function Bn(){for(let e of R)zn(e)}function Vn(e){if(An.has(e))return;let t=e.dataset.videoSrc;t&&(e.getAttribute(`src`)!==t&&(e.src=t),e.load(),An.add(e))}function H(e){e?.pause()}function Hn(e){Vn(e),e.muted=V!==e,e.playsInline=!0,e.loop=!0,zn(e),e.play().catch(()=>{})}function Un(){for(let e of R)e.isConnected||(Nn?.unobserve(e),Pn?.unobserve(e),R.delete(e),e===z&&(z=null),e===B&&(B=null),e===V&&(V=null))}function Wn(){if(Mn=null,Un(),document.hidden||jn){H(z);return}let e=[];for(let t of R){let n=Ln(t);n&&(n.intersectionRatio<En||e.push({video:t,...n}))}let t=null;if(B?.isConnected){let e=Ln(B);e&&e.intersectionRatio>Dn?t=B:(!e||e.intersectionRatio<=Dn)&&(B=null)}if(t||=Fn(e)?.video??null,!t){let e=z?Ln(z):void 0;if(z&&e&&e.intersectionRatio>Dn)return;H(z),z=null;return}t!==z&&(H(z),z=t),Hn(t);for(let e of R)e!==t&&(H(e),zn(e))}function Gn(){Mn!==null&&globalThis.clearTimeout(Mn),Mn=globalThis.setTimeout(Wn,On)}function Kn(e){let t=In();for(let n of e){let e=n.target,r=n.boundingClientRect,i=r.left+r.width/2,a=r.top+r.height/2,o=n.intersectionRect.width*n.intersectionRect.height,s=Math.hypot(i-t.x,a-t.y);kn.set(e,{intersectionRatio:n.intersectionRatio,visibleArea:o,centerDistance:s})}Gn()}function qn(e){for(let t of e)t.isIntersecting&&Vn(t.target)}function Jn(){Nn&&Pn||globalThis.IntersectionObserver!==void 0&&(Nn=new globalThis.IntersectionObserver(Kn,{threshold:[0,Dn,En,1]}),Pn=new globalThis.IntersectionObserver(qn,{rootMargin:Tn,threshold:0}))}function Yn(e){R.has(e)||(Jn(),!(!Nn||!Pn)&&(R.add(e),Nn.observe(e),Pn.observe(e),Rn(e)?.addEventListener(`click`,Xn),zn(e)))}function Xn(e){e.preventDefault(),e.stopPropagation();let t=e.currentTarget.closest(`.media-video-wrap`)?.querySelector(`[data-feed-short-video]`);t&&(B=t,V!==t||t.muted?(V&&V!==t&&(V.muted=!0),V=t,z!==t&&(H(z),z=t),Hn(t)):(V=null,t.muted=!0,zn(t)),Bn(),Gn())}function Zn(e=document){let t=e.querySelectorAll(`[data-feed-short-video]`);for(let e of t)Yn(e);Gn()}document.addEventListener(wn,e=>{jn=e.detail?.open===!0,jn&&H(z),Gn()}),document.addEventListener(`visibilitychange`,()=>{document.hidden&&H(z),Gn()}),document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,()=>Zn(),{once:!0}):queueMicrotask(()=>Zn());var Qn=4;function $n(e){let t=e.querySelector(`[data-post-media]`);if(!t)return;let{scrollLeft:n,scrollWidth:r,clientWidth:i}=t;e.classList.toggle(`can-scroll-start`,n>Qn),e.classList.toggle(`can-scroll-end`,n+i<r-Qn)}function er(e){let t=e.querySelector(`[data-post-media]`);t&&($n(e),t.addEventListener(`scroll`,()=>$n(e),{passive:!0}))}function tr(){document.querySelectorAll(`.media-gallery-scroll-wrap`).forEach(er)}var nr=new globalThis.MutationObserver(e=>{for(let t of e)for(let e of t.addedNodes)e instanceof HTMLElement&&(e.matches(`.media-gallery-scroll-wrap`)&&er(e),e.querySelectorAll(`.media-gallery-scroll-wrap`).forEach(er))});document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,()=>{tr(),nr.observe(document.body,{childList:!0,subtree:!0})}):(tr(),nr.observe(document.body,{childList:!0,subtree:!0}));var rr=new Set([`email`,`number`,`password`,`search`,`tel`,`text`,`url`]);function ir(e){return e instanceof HTMLInputElement?!e.disabled&&!e.readOnly&&rr.has(e.type.toLowerCase()):!1}function ar(e){return e.querySelector(`button[type="submit"]:not([disabled]), input[type="submit"]:not([disabled]), button:not([type]):not([disabled])`)}function or(e){return e.querySelector(`button[type="submit"], input[type="submit"], button:not([type])`)!==null}document.addEventListener(`keydown`,e=>{if(e.key!==`Enter`||e.defaultPrevented||e.isComposing||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||!ir(e.target))return;let t=e.target.form;if(!(t instanceof HTMLFormElement)||!t.hasAttribute(`data-on:submit__prevent`))return;let n=ar(t);if(!(!n&&or(t))){if(e.preventDefault(),n){t.requestSubmit(n);return}t.requestSubmit()}});var sr=globalThis,cr=sr.ShadowRoot&&(sr.ShadyCSS===void 0||sr.ShadyCSS.nativeShadow)&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,lr=Symbol(),ur=new WeakMap,dr=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==lr)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(cr&&e===void 0){let n=t!==void 0&&t.length===1;n&&(e=ur.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&ur.set(t,e))}return e}toString(){return this.cssText}},fr=e=>new dr(typeof e==`string`?e:e+``,void 0,lr),pr=(e,t)=>{if(cr)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let n of t){let t=document.createElement(`style`),r=sr.litNonce;r!==void 0&&t.setAttribute(`nonce`,r),t.textContent=n.cssText,e.appendChild(t)}},mr=cr?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t=``;for(let n of e.cssRules)t+=n.cssText;return fr(t)})(e):e,{is:hr,defineProperty:gr,getOwnPropertyDescriptor:_r,getOwnPropertyNames:vr,getOwnPropertySymbols:yr,getPrototypeOf:br}=Object,xr=globalThis,Sr=xr.trustedTypes,Cr=Sr?Sr.emptyScript:``,wr=xr.reactiveElementPolyfillSupport,Tr=(e,t)=>e,Er={toAttribute(e,t){switch(t){case Boolean:e=e?Cr:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},Dr=(e,t)=>!hr(e,t),Or={attribute:!0,type:String,converter:Er,reflect:!1,useDefault:!1,hasChanged:Dr};Symbol.metadata??=Symbol(`metadata`),xr.litPropertyMetadata??=new WeakMap;var kr=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=Or){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let n=Symbol(),r=this.getPropertyDescriptor(e,n,t);r!==void 0&&gr(this.prototype,e,r)}}static getPropertyDescriptor(e,t,n){let{get:r,set:i}=_r(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:r,set(t){let a=r?.call(this);i?.call(this,t),this.requestUpdate(e,a,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Or}static _$Ei(){if(this.hasOwnProperty(Tr(`elementProperties`)))return;let e=br(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(Tr(`finalized`)))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Tr(`properties`))){let e=this.properties,t=[...vr(e),...yr(e)];for(let n of t)this.createProperty(n,e[n])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(let[e,t]of this.elementProperties){let n=this._$Eu(e,t);n!==void 0&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let n=new Set(e.flat(1/0).reverse());for(let e of n)t.unshift(mr(e))}else e!==void 0&&t.push(mr(e));return t}static _$Eu(e,t){let n=t.attribute;return!1===n?void 0:typeof n==`string`?n:typeof e==`string`?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return pr(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$ET(e,t){let n=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,n);if(r!==void 0&&!0===n.reflect){let i=(n.converter?.toAttribute===void 0?Er:n.converter).toAttribute(t,n.type);this._$Em=e,i==null?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(e,t){let n=this.constructor,r=n._$Eh.get(e);if(r!==void 0&&this._$Em!==r){let e=n.getPropertyOptions(r),i=typeof e.converter==`function`?{fromAttribute:e.converter}:e.converter?.fromAttribute===void 0?Er:e.converter;this._$Em=r;let a=i.fromAttribute(t,e.type);this[r]=a??this._$Ej?.get(r)??a,this._$Em=null}}requestUpdate(e,t,n,r=!1,i){if(e!==void 0){let a=this.constructor;if(!1===r&&(i=this[e]),n??=a.getPropertyOptions(e),!((n.hasChanged??Dr)(i,t)||n.useDefault&&n.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(a._$Eu(e,n))))return;this.C(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:n,reflect:r,wrapped:i},a){n&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,a??t??this[e]),!0!==i||a!==void 0)||(this._$AL.has(e)||(this.hasUpdated||n||(t=void 0),this._$AL.set(e,t)),!0===r&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}let e=this.constructor.elementProperties;if(e.size>0)for(let[t,n]of e){let{wrapped:e}=n,r=this[t];!0!==e||this._$AL.has(t)||r===void 0||this.C(t,void 0,n,r)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}};kr.elementStyles=[],kr.shadowRootOptions={mode:`open`},kr[Tr(`elementProperties`)]=new Map,kr[Tr(`finalized`)]=new Map,wr?.({ReactiveElement:kr}),(xr.reactiveElementVersions??=[]).push(`2.1.2`);var Ar=globalThis,jr=e=>e,Mr=Ar.trustedTypes,Nr=Mr?Mr.createPolicy(`lit-html`,{createHTML:e=>e}):void 0,Pr=`$lit$`,U=`lit$${Math.random().toFixed(9).slice(2)}$`,Fr=`?`+U,Ir=`<${Fr}>`,W=document,Lr=()=>W.createComment(``),Rr=e=>e===null||typeof e!=`object`&&typeof e!=`function`,zr=Array.isArray,Br=e=>zr(e)||typeof e?.[Symbol.iterator]==`function`,Vr=`[
|
|
8
|
+
\f\r]`,Hr=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ur=/-->/g,Wr=/>/g,G=RegExp(`>|${Vr}(?:([^\\s"'>=/]+)(${Vr}*=${Vr}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,`g`),Gr=/'/g,Kr=/"/g,qr=/^(?:script|style|textarea|title)$/i,Jr=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),K=Jr(1),Yr=Jr(2),q=Symbol.for(`lit-noChange`),J=Symbol.for(`lit-nothing`),Xr=new WeakMap,Y=W.createTreeWalker(W,129);function Zr(e,t){if(!zr(e)||!e.hasOwnProperty(`raw`))throw Error(`invalid template strings array`);return Nr===void 0?t:Nr.createHTML(t)}var Qr=(e,t)=>{let n=e.length-1,r=[],i,a=t===2?`<svg>`:t===3?`<math>`:``,o=Hr;for(let t=0;t<n;t++){let n=e[t],s,c,l=-1,u=0;for(;u<n.length&&(o.lastIndex=u,c=o.exec(n),c!==null);)u=o.lastIndex,o===Hr?c[1]===`!--`?o=Ur:c[1]===void 0?c[2]===void 0?c[3]!==void 0&&(o=G):(qr.test(c[2])&&(i=RegExp(`</`+c[2],`g`)),o=G):o=Wr:o===G?c[0]===`>`?(o=i??Hr,l=-1):c[1]===void 0?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=c[3]===void 0?G:c[3]===`"`?Kr:Gr):o===Kr||o===Gr?o=G:o===Ur||o===Wr?o=Hr:(o=G,i=void 0);let d=o===G&&e[t+1].startsWith(`/>`)?` `:``;a+=o===Hr?n+Ir:l>=0?(r.push(s),n.slice(0,l)+Pr+n.slice(l)+U+d):n+U+(l===-2?t:d)}return[Zr(e,a+(e[n]||`<?>`)+(t===2?`</svg>`:t===3?`</math>`:``)),r]},$r=class e{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0,s=t.length-1,c=this.parts,[l,u]=Qr(t,n);if(this.el=e.createElement(l,r),Y.currentNode=this.el.content,n===2||n===3){let e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;(i=Y.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(let e of i.getAttributeNames())if(e.endsWith(Pr)){let t=u[o++],n=i.getAttribute(e).split(U),r=/([.?@])?(.*)/.exec(t);c.push({type:1,index:a,name:r[2],strings:n,ctor:r[1]===`.`?ri:r[1]===`?`?ii:r[1]===`@`?ai:ni}),i.removeAttribute(e)}else e.startsWith(U)&&(c.push({type:6,index:a}),i.removeAttribute(e));if(qr.test(i.tagName)){let e=i.textContent.split(U),t=e.length-1;if(t>0){i.textContent=Mr?Mr.emptyScript:``;for(let n=0;n<t;n++)i.append(e[n],Lr()),Y.nextNode(),c.push({type:2,index:++a});i.append(e[t],Lr())}}}else if(i.nodeType===8)if(i.data===Fr)c.push({type:2,index:a});else{let e=-1;for(;(e=i.data.indexOf(U,e+1))!==-1;)c.push({type:7,index:a}),e+=U.length-1}a++}}static createElement(e,t){let n=W.createElement(`template`);return n.innerHTML=e,n}};function X(e,t,n=e,r){if(t===q)return t;let i=r===void 0?n._$Cl:n._$Co?.[r],a=Rr(t)?void 0:t._$litDirective$;return i?.constructor!==a&&(i?._$AO?.(!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r===void 0?n._$Cl=i:(n._$Co??=[])[r]=i),i!==void 0&&(t=X(e,i._$AS(e,t.values),i,r)),t}var ei=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:n}=this._$AD,r=(e?.creationScope??W).importNode(t,!0);Y.currentNode=r;let i=Y.nextNode(),a=0,o=0,s=n[0];for(;s!==void 0;){if(a===s.index){let t;s.type===2?t=new ti(i,i.nextSibling,this,e):s.type===1?t=new s.ctor(i,s.name,s.strings,this,e):s.type===6&&(t=new oi(i,this,e)),this._$AV.push(t),s=n[++o]}a!==s?.index&&(i=Y.nextNode(),a++)}return Y.currentNode=W,r}p(e){let t=0;for(let n of this._$AV)n!==void 0&&(n.strings===void 0?n._$AI(e[t]):(n._$AI(e,n,t),t+=n.strings.length-2)),t++}},ti=class e{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,n,r){this.type=2,this._$AH=J,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=n,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=X(this,e,t),Rr(e)?e===J||e==null||e===``?(this._$AH!==J&&this._$AR(),this._$AH=J):e!==this._$AH&&e!==q&&this._(e):e._$litType$===void 0?e.nodeType===void 0?Br(e)?this.k(e):this._(e):this.T(e):this.$(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==J&&Rr(this._$AH)?this._$AA.nextSibling.data=e:this.T(W.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:n}=e,r=typeof n==`number`?this._$AC(e):(n.el===void 0&&(n.el=$r.createElement(Zr(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===r)this._$AH.p(t);else{let e=new ei(r,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Xr.get(e.strings);return t===void 0&&Xr.set(e.strings,t=new $r(e)),t}k(t){zr(this._$AH)||(this._$AH=[],this._$AR());let n=this._$AH,r,i=0;for(let a of t)i===n.length?n.push(r=new e(this.O(Lr()),this.O(Lr()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){let t=jr(e).nextSibling;jr(e).remove(),e=t}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},ni=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,n,r,i){this.type=1,this._$AH=J,this._$AN=void 0,this.element=e,this.name=t,this._$AM=r,this.options=i,n.length>2||n[0]!==``||n[1]!==``?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=J}_$AI(e,t=this,n,r){let i=this.strings,a=!1;if(i===void 0)e=X(this,e,t,0),a=!Rr(e)||e!==this._$AH&&e!==q,a&&(this._$AH=e);else{let r=e,o,s;for(e=i[0],o=0;o<i.length-1;o++)s=X(this,r[n+o],t,o),s===q&&(s=this._$AH[o]),a||=!Rr(s)||s!==this._$AH[o],s===J?e=J:e!==J&&(e+=(s??``)+i[o+1]),this._$AH[o]=s}a&&!r&&this.j(e)}j(e){e===J?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??``)}},ri=class extends ni{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===J?void 0:e}},ii=class extends ni{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==J)}},ai=class extends ni{constructor(e,t,n,r,i){super(e,t,n,r,i),this.type=5}_$AI(e,t=this){if((e=X(this,e,t,0)??J)===q)return;let n=this._$AH,r=e===J&&n!==J||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,i=e!==J&&(n===J||r);r&&this.element.removeEventListener(this.name,this,n),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH==`function`?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},oi=class{constructor(e,t,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){X(this,e)}},si={M:Pr,P:U,A:Fr,C:1,L:Qr,R:ei,D:Br,V:X,I:ti,H:ni,N:ii,U:ai,B:ri,F:oi},ci=Ar.litHtmlPolyfillSupport;ci?.($r,ti),(Ar.litHtmlVersions??=[]).push(`3.3.2`);var li=(e,t,n)=>{let r=n?.renderBefore??t,i=r._$litPart$;if(i===void 0){let e=n?.renderBefore??null;r._$litPart$=i=new ti(t.insertBefore(Lr(),e),e,void 0,n??{})}return i._$AI(e),i},ui=globalThis,Z=class extends kr{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=li(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return q}};Z._$litElement$=!0,Z.finalized=!0,ui.litElementHydrateSupport?.({LitElement:Z});var di=ui.litElementPolyfillSupport;di?.({LitElement:Z}),(ui.litElementVersions??=[]).push(`4.2.2`);function fi(e){if(!(!Number.isFinite(e)||!e||e<=0))return Math.ceil(e)}function pi(e){if(!e.mimeType?.startsWith(`video/`)||!Number.isFinite(e.durationSeconds)||!e.durationSeconds||e.durationSeconds<=0||e.durationSeconds>15)return!1;let t=e.size;return!(typeof t==`number`&&t>12582912)}var mi=640,hi=8,gi=72,_i=16,vi=704,yi=.9,bi=.85;function Q(e){if(!(!Number.isFinite(e)||!e||e<=0))return e}function xi(){return{width:globalThis.innerWidth||document.documentElement.clientWidth||0,height:globalThis.innerHeight||document.documentElement.clientHeight||0}}function Si(e,t){let n=e<=mi?hi:gi;return{width:Math.max(0,e-n*2),height:Math.max(0,t-_i*2)}}function Ci(e,t,n){let r=Q(e?.width),i=Q(e?.height);if(!r||!i)return null;let a=Si(t,n);if(a.width<=0||a.height<=0)return null;let o=Math.min(a.width/r,a.height/i);return{width:Math.max(1,Math.round(r*o)),height:Math.max(1,Math.round(i*o))}}function wi(e,t,n){if(!e||e.mimeType?.startsWith(`video/`)||!Q(e.width)||!Q(e.height)||t<=0||n<=0)return!1;let r=Q(e.width),i=Q(e.height);if(!r||!i)return!1;let a=t<=mi,o=Si(t,n),s=o.width,c=o.height;if(s<=0||c<=0)return!1;let l=r/i,u=Math.min(s,c*l);return l<yi&&u<(a?s:Math.min(s,vi))*bi}var Ti=class extends Z{static properties={_images:{state:!0},_currentIndex:{state:!0},_open:{state:!0},_viewportWidth:{state:!0},_viewportHeight:{state:!0},_videoCurrentTime:{state:!0},_videoDuration:{state:!0},_videoMuted:{state:!0}};createRenderRoot(){return this.innerHTML=``,this}constructor(){super();let e=xi();this._images=[],this._currentIndex=0,this._open=!1,this._viewportWidth=e.width,this._viewportHeight=e.height,this._videoCurrentTime=0,this._videoDuration=0,this._videoMuted=!1}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this.#e),window.addEventListener(`resize`,this.#c),this.#l()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(`click`,this.#e),window.removeEventListener(`resize`,this.#c)}open(e,t){this.#l(),this.#u(),this._images=e,this._currentIndex=Math.max(0,Math.min(t,e.length-1)),this.#p(this._images[this._currentIndex]),this._open=!0,document.dispatchEvent(new CustomEvent(wn,{detail:{open:!0}})),this.updateComplete.then(()=>{this.querySelector(`.media-lightbox`)?.showModal(),this.#d()})}close(){this.#u(),this.querySelector(`.media-lightbox`)?.close(),this._open=!1,document.dispatchEvent(new CustomEvent(wn,{detail:{open:!1}}))}#e=e=>{let t=e.target,n=t.closest(`[data-post-media] a[data-lightbox-index]`);if(n){let t=n.closest(`[data-lightbox-group]`);if(!t)return;e.preventDefault();let r=parseInt(n.dataset.lightboxIndex??`0`,10);try{let e=JSON.parse(t.dataset.lightboxGroup??`[]`);e.length>0&&this.open(e,r)}catch{}return}let r=t.closest(`[data-post-body] img`);if(r){e.preventDefault();let t=r.closest(`[data-post-body]`);if(!t)return;let n=Array.from(t.querySelectorAll(`img`)),i=n.map(e=>({url:e.src,alt:e.alt||``,width:Q(e.naturalWidth||Number(e.getAttribute(`width`))),height:Q(e.naturalHeight||Number(e.getAttribute(`height`)))})),a=n.indexOf(r);i.length>0&&this.open(i,Math.max(0,a))}};#t(){this._images.length<=1||(this.#u(),this._currentIndex=(this._currentIndex-1+this._images.length)%this._images.length)}#n(){this._images.length<=1||(this.#u(),this._currentIndex=(this._currentIndex+1)%this._images.length)}#r=e=>{let t=e,n=e.target;if(t.key===`Escape`){e.preventDefault(),this.close();return}if(n instanceof HTMLInputElement||n instanceof HTMLButtonElement||n instanceof HTMLVideoElement)return;if(!this._images[this._currentIndex]?.mimeType?.startsWith(`video/`)){t.key===`ArrowLeft`?(e.preventDefault(),this.#t()):t.key===`ArrowRight`&&(e.preventDefault(),this.#n());return}let r=this.querySelector(`.media-lightbox-video`);r&&this.#i(t,r)};#i(e,t){let n=Number.isFinite(t.duration)&&t.duration>0?t.duration:null,r=e=>{let r=n==null?Math.max(0,e):Math.max(0,Math.min(e,n));t.currentTime=r,this._videoCurrentTime=r},i=e.key,a=i.toLowerCase();if(i===` `||a===`k`)e.preventDefault(),t.paused?t.play().catch(()=>{}):t.pause();else if(i===`ArrowLeft`)e.preventDefault(),r(t.currentTime-5);else if(i===`ArrowRight`)e.preventDefault(),r(t.currentTime+5);else if(i===`Home`)e.preventDefault(),r(0);else if(i===`End`)n!=null&&(e.preventDefault(),r(n));else if(i.length===1&&i>=`0`&&i<=`9`)n!=null&&(e.preventDefault(),r(Number(i)/10*n));else if(i===`ArrowUp`)e.preventDefault(),t.volume=Math.min(1,t.volume+.05);else if(i===`ArrowDown`)e.preventDefault(),t.volume=Math.max(0,t.volume-.05);else if(a===`m`){e.preventDefault();let n=!t.muted;t.muted=n,this._videoMuted=n}else a===`f`&&(e.preventDefault(),this.#a(t))}#a(e){let t=document,n=e;if(document.fullscreenElement??t.webkitFullscreenElement){document.exitFullscreen?document.exitFullscreen().catch(()=>{}):t.webkitExitFullscreen?.();return}e.requestFullscreen?e.requestFullscreen().catch(()=>{}):n.webkitRequestFullscreen?n.webkitRequestFullscreen():n.webkitEnterFullscreen&&n.webkitEnterFullscreen()}#o=e=>{let t=e.target;(t===e.currentTarget||t.classList.contains(`media-lightbox-content`)||t.classList.contains(`media-lightbox-stage`))&&this.close()};#s=()=>{this.#u(),this._open&&document.dispatchEvent(new CustomEvent(wn,{detail:{open:!1}})),this._open=!1};#c=()=>{this.#l()};#l(){let e=xi();e.width===this._viewportWidth&&e.height===this._viewportHeight||(this._viewportWidth=e.width,this._viewportHeight=e.height)}#u(){this.querySelector(`.media-lightbox-video`)?.pause()}#d(){this.querySelector(`.media-lightbox-content`)?.focus()}#f=()=>{this.querySelector(`.media-lightbox-content`)?.focus({preventScroll:!0})};#p(e){this._videoCurrentTime=0,this._videoDuration=e?.durationSeconds&&e.durationSeconds>0?e.durationSeconds:0,this._videoMuted=!1}#m(){let e=this._images[this._currentIndex];if(!pi(e)){this.#p(e);return}let t=this.querySelector(`.media-lightbox-video`);t&&(t.currentTime=0,t.muted=this._videoMuted,t.play().catch(()=>{}))}#h=e=>{let t=e.currentTarget;Number.isFinite(t.duration)&&t.duration>0&&(this._videoDuration=t.duration),this._videoCurrentTime=t.currentTime,t.muted=this._videoMuted};#g=e=>{let t=e.currentTarget;this._videoCurrentTime=t.currentTime,Number.isFinite(t.duration)&&t.duration>0&&(this._videoDuration=t.duration)};#_=e=>{let t=e.currentTarget,n=this.querySelector(`.media-lightbox-video`),r=Number.parseFloat(t.value);!n||!Number.isFinite(r)||r<0||(n.currentTime=r,this._videoCurrentTime=r)};#v=()=>{this._videoMuted=!this._videoMuted;let e=this.querySelector(`.media-lightbox-video`);e&&(e.muted=this._videoMuted)};updated(e){if(super.updated(e),!this._open||!e.has(`_currentIndex`)&&!e.has(`_open`))return;let t=this.querySelector(`.media-lightbox-stage`);t&&(t.scrollTop=0,t.scrollLeft=0,this.#m(),this.#d())}render(){if(!this._open)return J;let e=this._images[this._currentIndex],t=this._images.length>1,n=e?.mimeType?.startsWith(`video/`),r=pi(e),i=wi(e,this._viewportWidth,this._viewportHeight),a=r?Ci(e,this._viewportWidth,this._viewportHeight):null,o=r&&!!a&&a.height>a.width,s=a?`width:${a.width}px;height:${a.height}px;`:J,c=this._videoDuration>0?this._videoDuration:e?.durationSeconds??1,l=Math.min(this._videoCurrentTime,c),u=c>0?l/c*100:0;return K`
|
|
9
|
+
<dialog
|
|
10
|
+
class=${`media-lightbox${r?` media-lightbox-short`:``}`}
|
|
11
|
+
@keydown=${this.#r}
|
|
12
|
+
@click=${this.#o}
|
|
13
|
+
@close=${this.#s}
|
|
14
|
+
>
|
|
15
|
+
<div class="media-lightbox-content" tabindex="-1">
|
|
16
|
+
<button
|
|
17
|
+
type="button"
|
|
18
|
+
class="media-lightbox-close"
|
|
19
|
+
@click=${()=>this.close()}
|
|
20
|
+
aria-label="Close"
|
|
21
|
+
>
|
|
22
|
+
<svg
|
|
23
|
+
width="20"
|
|
24
|
+
height="20"
|
|
25
|
+
viewBox="0 0 24 24"
|
|
26
|
+
fill="none"
|
|
27
|
+
stroke="currentColor"
|
|
28
|
+
stroke-width="2"
|
|
29
|
+
stroke-linecap="round"
|
|
30
|
+
stroke-linejoin="round"
|
|
31
|
+
>
|
|
32
|
+
<path d="M18 6 6 18" />
|
|
33
|
+
<path d="m6 6 12 12" />
|
|
34
|
+
</svg>
|
|
35
|
+
</button>
|
|
36
|
+
|
|
37
|
+
${t?K`<div class="media-lightbox-counter">
|
|
38
|
+
${this._currentIndex+1} / ${this._images.length}
|
|
39
|
+
</div>`:J}
|
|
40
|
+
<div
|
|
41
|
+
class=${`media-lightbox-stage${i?` media-lightbox-stage-scroll`:``}`}
|
|
42
|
+
>
|
|
43
|
+
${n?r?K`<div
|
|
44
|
+
class=${`media-lightbox-short-frame${o?` media-lightbox-short-frame-portrait`:` media-lightbox-short-frame-landscape`}`}
|
|
45
|
+
style=${s}
|
|
46
|
+
>
|
|
47
|
+
<video
|
|
48
|
+
class="media-lightbox-video media-lightbox-video-short"
|
|
49
|
+
src=${e?.url??``}
|
|
50
|
+
poster=${e?.posterUrl??``}
|
|
51
|
+
autoplay
|
|
52
|
+
playsinline
|
|
53
|
+
loop
|
|
54
|
+
?muted=${this._videoMuted}
|
|
55
|
+
@focus=${this.#f}
|
|
56
|
+
@loadedmetadata=${this.#h}
|
|
57
|
+
@timeupdate=${this.#g}
|
|
58
|
+
></video>
|
|
59
|
+
<div
|
|
60
|
+
class=${`media-lightbox-short-controls${o?` media-lightbox-short-controls-portrait`:``}`}
|
|
61
|
+
>
|
|
62
|
+
<input
|
|
63
|
+
class="media-lightbox-short-progress"
|
|
64
|
+
type="range"
|
|
65
|
+
min="0"
|
|
66
|
+
max=${c}
|
|
67
|
+
step="0.01"
|
|
68
|
+
.value=${String(l)}
|
|
69
|
+
style=${`--media-progress:${u}%`}
|
|
70
|
+
aria-label="Video progress"
|
|
71
|
+
@input=${this.#_}
|
|
72
|
+
/>
|
|
73
|
+
<button
|
|
74
|
+
type="button"
|
|
75
|
+
class="media-lightbox-short-mute"
|
|
76
|
+
@click=${this.#v}
|
|
77
|
+
aria-label=${this._videoMuted?`Unmute video`:`Mute video`}
|
|
78
|
+
>
|
|
79
|
+
<svg
|
|
80
|
+
width="16"
|
|
81
|
+
height="16"
|
|
82
|
+
viewBox="0 0 48 48"
|
|
83
|
+
fill="currentColor"
|
|
84
|
+
color="#fff"
|
|
85
|
+
aria-hidden="true"
|
|
86
|
+
>
|
|
87
|
+
${this._videoMuted?Yr`
|
|
88
|
+
<path d="M1.5 13.3c-.8 0-1.5.7-1.5 1.5v18.4c0 .8.7 1.5 1.5 1.5h8.7l12.9 12.9c.9.9 2.5.3 2.5-1v-9.8c0-.4-.2-.8-.4-1.1l-22-22c-.3-.3-.7-.4-1.1-.4h-.6zm46.8 31.4-5.5-5.5C44.9 36.6 48 31.4 48 24c0-11.4-7.2-17.4-7.2-17.4-.6-.6-1.6-.6-2.2 0L37.2 8c-.6.6-.6 1.6 0 2.2 0 0 5.7 5 5.7 13.8 0 5.4-2.1 9.3-3.8 11.6L35.5 32c1.1-1.7 2.3-4.4 2.3-8 0-6.8-4.1-10.3-4.1-10.3-.6-.6-1.6-.6-2.2 0l-1.4 1.4c-.6.6-.6 1.6 0 2.2 0 0 2.6 2 2.6 6.7 0 1.8-.4 3.2-.9 4.3L25.5 22V1.4c0-1.3-1.6-1.9-2.5-1L13.5 10 3.3-.3c-.6-.6-1.5-.6-2.1 0L-.2 1.1c-.6.6-.6 1.5 0 2.1L4 7.6l26.8 26.8 13.9 13.9c.6.6 1.5.6 2.1 0l1.4-1.4c.7-.6.7-1.6.1-2.2z" />
|
|
89
|
+
`:Yr`
|
|
90
|
+
<path d="M1.5 13.3c-.8 0-1.5.7-1.5 1.5v18.4c0 .8.7 1.5 1.5 1.5h8.7l12.9 12.9c.9.9 2.5.3 2.5-1V1.4c0-1.3-1.6-1.9-2.5-1L10.2 13.3H1.5z" />
|
|
91
|
+
<path d="M30.1 15.9c-.6-.6-.6-1.6 0-2.2l1.4-1.4c.6-.6 1.6-.6 2.2 0 0 0 4.1 3.5 4.1 11.7s-4.1 11.7-4.1 11.7c-.6.6-1.6.6-2.2 0l-1.4-1.4c-.6-.6-.6-1.6 0-2.2 0 0 2.6-2 2.6-8.1s-2.6-8.1-2.6-8.1z" />
|
|
92
|
+
<path d="M37.2 8c-.6-.6-.6-1.6 0-2.2l1.4-1.4c.6-.6 1.6-.6 2.2 0 0 0 5.7 5.1 5.7 19.6s-5.7 19.6-5.7 19.6c-.6.6-1.6.6-2.2 0L37.2 42c-.6-.6-.6-1.6 0-2.2 0 0 4.3-4.4 4.3-15.8S37.2 8 37.2 8z" />
|
|
93
|
+
`}
|
|
94
|
+
</svg>
|
|
95
|
+
</button>
|
|
96
|
+
</div>
|
|
97
|
+
</div>`:K`<video
|
|
98
|
+
class="media-lightbox-video"
|
|
99
|
+
src=${e?.url??``}
|
|
100
|
+
poster=${e?.posterUrl??``}
|
|
101
|
+
controls
|
|
102
|
+
autoplay
|
|
103
|
+
playsinline
|
|
104
|
+
@focus=${this.#f}
|
|
105
|
+
></video>`:K`<img
|
|
106
|
+
class=${`media-lightbox-img${i?` media-lightbox-img-scroll`:``}`}
|
|
107
|
+
src=${e?.url??``}
|
|
108
|
+
alt=${e?.alt??``}
|
|
109
|
+
/>`}
|
|
110
|
+
</div>
|
|
111
|
+
${t?K`
|
|
112
|
+
<button
|
|
113
|
+
type="button"
|
|
114
|
+
class="media-lightbox-nav media-lightbox-nav-prev"
|
|
115
|
+
@click=${()=>this.#t()}
|
|
116
|
+
aria-label="Previous"
|
|
117
|
+
>
|
|
118
|
+
<svg
|
|
119
|
+
width="24"
|
|
120
|
+
height="24"
|
|
121
|
+
viewBox="0 0 24 24"
|
|
122
|
+
fill="none"
|
|
123
|
+
stroke="currentColor"
|
|
124
|
+
stroke-width="2"
|
|
125
|
+
stroke-linecap="round"
|
|
126
|
+
stroke-linejoin="round"
|
|
127
|
+
>
|
|
128
|
+
<path d="m15 18-6-6 6-6" />
|
|
129
|
+
</svg>
|
|
130
|
+
</button>
|
|
131
|
+
<button
|
|
132
|
+
type="button"
|
|
133
|
+
class="media-lightbox-nav media-lightbox-nav-next"
|
|
134
|
+
@click=${()=>this.#n()}
|
|
135
|
+
aria-label="Next"
|
|
136
|
+
>
|
|
137
|
+
<svg
|
|
138
|
+
width="24"
|
|
139
|
+
height="24"
|
|
140
|
+
viewBox="0 0 24 24"
|
|
141
|
+
fill="none"
|
|
142
|
+
stroke="currentColor"
|
|
143
|
+
stroke-width="2"
|
|
144
|
+
stroke-linecap="round"
|
|
145
|
+
stroke-linejoin="round"
|
|
146
|
+
>
|
|
147
|
+
<path d="m9 18 6-6-6-6" />
|
|
148
|
+
</svg>
|
|
149
|
+
</button>
|
|
150
|
+
`:J}
|
|
151
|
+
</div>
|
|
152
|
+
</dialog>
|
|
153
|
+
`}};customElements.define(`jant-media-lightbox`,Ti);var Ei={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Di=e=>(...t)=>({_$litDirective$:e,values:t}),Oi=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}},ki=class extends Oi{constructor(e){if(super(e),this.it=J,e.type!==Ei.CHILD)throw Error(this.constructor.directiveName+`() can only be used in child bindings`)}render(e){if(e===J||e==null)return this._t=void 0,this.it=e;if(e===q)return e;if(typeof e!=`string`)throw Error(this.constructor.directiveName+`() called with a non-string value`);if(e===this.it)return this._t;this.it=e;let t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}};ki.directiveName=`unsafeHTML`,ki.resultType=1;var Ai=Di(ki),ji=`jant.pendingToast`;function Mi(e){typeof e.showPopover==`function`&&(e.matches(`:popover-open`)&&document.querySelector(`dialog[open]`)&&e.hidePopover(),e.matches(`:popover-open`)||e.showPopover())}function Ni(){return document.getElementById(`toast-container`)}function Pi(){try{return globalThis.sessionStorage!==void 0}catch{return!1}}function Fi(){if(!Pi())return null;let e=globalThis.sessionStorage.getItem(ji);if(!e)return null;try{let t=JSON.parse(e);return typeof t.message!=`string`||t.type!==`success`&&t.type!==`error`||t.action&&(typeof t.action.label!=`string`||typeof t.action.href!=`string`)?(globalThis.sessionStorage.removeItem(ji),null):{message:t.message,type:t.type,action:t.action}}catch{return globalThis.sessionStorage.removeItem(ji),null}}var Ii={success:`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="m9 11 3 3L22 4"/></svg>`,error:`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><circle cx="12" cy="12" r="10"/><path d="m15 9-6 6M9 9l6 6"/></svg>`},Li=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,Ri=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path d="M20 6 9 17l-5-5"/></svg>`;function zi(e,t,n,r){e.innerHTML=Ii[t];let i=document.createElement(`span`);if(i.textContent=n,e.appendChild(i),r){let t=document.createElement(`a`);t.href=r.href,t.className=`toast-action`,t.textContent=r.label,e.appendChild(t)}if(t===`error`&&navigator.clipboard){let t=document.createElement(`button`);t.className=`toast-copy`,t.setAttribute(`aria-label`,`Copy error message`),t.innerHTML=Li,t.addEventListener(`click`,()=>{navigator.clipboard.writeText(n).then(()=>{t.innerHTML=Ri,setTimeout(()=>{t.innerHTML=Li},1500)})}),e.appendChild(t)}}function $(e,t=`success`){if(!e)return;let n=Ni();if(!n)return;Mi(n);let r=document.createElement(`div`);r.className=`toast toast-${t}`,zi(r,t,e),n.appendChild(r),setTimeout(()=>{r.classList.add(`toast-out`),r.addEventListener(`animationend`,()=>r.remove())},3e3)}function Bi(e,t,n=`success`){if(!e)return;let r=Ni();if(!r)return;Mi(r);let i=document.createElement(`div`);i.className=`toast toast-${n}`,zi(i,n,e,t),r.appendChild(i),setTimeout(()=>{i.classList.add(`toast-out`),i.addEventListener(`animationend`,()=>i.remove())},3e3)}function Vi(e,t,n=`success`){let r=Ni();if(!r)return null;Mi(r);let i=document.createElement(`div`);return i.className=`toast toast-${n}`,i.id=`toast-${e}`,zi(i,n,t),r.appendChild(i),i}function Hi(e,t){let n=document.getElementById(`toast-${e}`);if(!n)return;let r=n.querySelector(`span`);r&&(r.textContent=t)}function Ui(e,t,n=`success`){let r=document.getElementById(`toast-${e}`);if(!r){$(t,n);return}r.className=`toast toast-${n}`,r.replaceChildren(),zi(r,n,t),setTimeout(()=>{r.classList.add(`toast-out`),r.addEventListener(`animationend`,()=>r.remove())},3e3)}function Wi(e,t=`success`,n){!e||!Pi()||globalThis.sessionStorage.setItem(ji,JSON.stringify({message:e,type:t,action:n}))}function Gi(){let e=Fi();return!e||!Ni()?!1:(globalThis.sessionStorage.removeItem(ji),e.action?Bi(e.message,e.action,e.type):$(e.message,e.type),!0)}function Ki(){let e=()=>{Gi()};if(document.readyState===`loading`){document.addEventListener(`DOMContentLoaded`,e,{once:!0});return}e()}Ki();var qi=class extends Z{static properties={_open:{state:!0},_html:{state:!0},_loading:{state:!0},_copied:{state:!0},_linkCopied:{state:!0}};#e=``;#t=``;#n=null;#r=null;#i=null;createRenderRoot(){return this.innerHTML=``,this}constructor(){super(),this._open=!1,this._html=``,this._loading=!1,this._copied=!1,this._linkCopied=!1}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this.#s),this.#a()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(`click`,this.#s)}async#a(){let e=document.querySelector(`.text-preview-dialog--ssr`),t=document.getElementById(`text-preview-autoopen`);if(!(!e&&!t))try{let n=JSON.parse(t?.textContent||`{}`);t?.remove();let r=e?.querySelector(`.text-preview-body`),i=r?.innerHTML||``,a=r?.innerText||``;this.#t=n.shareHref?`${globalThis.location.origin}${n.shareHref}`:``,this.#r=n.postHref||null,this.#i=n.postTitle||null,this._html=i,this.#e=a,this._open=!0,document.body.style.overflow=`hidden`,await this.updateComplete,this.requestUpdate(),this.querySelector(`.text-preview-dialog`)?.showModal(),this.querySelector(`.text-preview-content`)?.focus(),e?.remove(),n.mediaId&&this.#o(n.mediaId)}catch{e?.remove()}}async#o(e){try{let t=await fetch(`/api/media/${e}/content`);if(!t.ok||!(t.headers.get(`Content-Type`)||``).includes(`application/json`))return;let n=await t.json();n.markdown&&(this.#e=n.markdown,this.requestUpdate())}catch{}}#s=e=>{let t=e.target.closest(`[data-text-preview-id]`);if(!t)return;e.preventDefault();let n=t.dataset.textPreviewId;n&&this.#c(n,t.dataset.textPreviewHref??``,t)};async#c(e,t,n){this.#n=n,this.#t=t?`${globalThis.location.origin}${t}`:``,this._loading=!0,this._open=!0,document.body.style.overflow=`hidden`,await this.updateComplete,this.querySelector(`.text-preview-dialog`)?.showModal(),this.querySelector(`.text-preview-content`)?.focus();try{let t=await fetch(`/api/media/${e}/content`);if(!t.ok)throw Error(`Fetch failed`);if((t.headers.get(`Content-Type`)||``).includes(`application/json`)){let e=await t.json();this._html=e.html??``,this.#e=e.markdown??``}else{let e=await t.text();this._html=e;let n=document.createElement(`div`);n.innerHTML=e,this.#e=n.innerText.trim()}}catch{this._html=`<p>Failed to load content.</p>`,this.#e=``}finally{this._loading=!1}}#l(){if(this.querySelector(`.text-preview-dialog`)?.close(),document.body.style.overflow=``,this._open=!1,this._html=``,this.#e=``,this.#t=``,this._copied=!1,this._linkCopied=!1,this.#r){let e=this.#r;this.#r=null,globalThis.history.replaceState(null,``,e),this.#i&&=(document.title=this.#i,null)}let e=this.#n;this.#n=null,queueMicrotask(()=>{e?.isConnected&&e.focus()})}async#u(){if(this.#e)try{await globalThis.navigator.clipboard.writeText(this.#e),this._copied=!0,$(`Copied.`),setTimeout(()=>{this._copied=!1},2e3)}catch{$(`Could not copy.`,`error`)}}async#d(){if(this.#t)try{await globalThis.navigator.clipboard.writeText(this.#t),this._linkCopied=!0,$(`Link copied.`),setTimeout(()=>{this._linkCopied=!1},2e3)}catch{$(`Could not copy.`,`error`)}}#f=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),this.#l())};render(){return this._open?K`
|
|
154
|
+
<dialog
|
|
155
|
+
class="text-preview-dialog"
|
|
156
|
+
@cancel=${e=>{e.preventDefault(),this.#l()}}
|
|
157
|
+
@keydown=${this.#f}
|
|
158
|
+
@click=${e=>{e.target.tagName===`DIALOG`&&this.#l()}}
|
|
159
|
+
>
|
|
160
|
+
<div class="text-preview-content" tabindex="-1">
|
|
161
|
+
<div class="text-preview-toolbar">
|
|
162
|
+
<button
|
|
163
|
+
type="button"
|
|
164
|
+
class="text-preview-btn"
|
|
165
|
+
@click=${()=>this.#l()}
|
|
166
|
+
title="Close"
|
|
167
|
+
aria-label="Close"
|
|
168
|
+
>
|
|
169
|
+
<svg
|
|
170
|
+
width="16"
|
|
171
|
+
height="16"
|
|
172
|
+
viewBox="0 0 24 24"
|
|
173
|
+
fill="none"
|
|
174
|
+
stroke="currentColor"
|
|
175
|
+
stroke-width="2"
|
|
176
|
+
stroke-linecap="round"
|
|
177
|
+
stroke-linejoin="round"
|
|
178
|
+
>
|
|
179
|
+
<path d="M18 6 6 18M6 6l12 12" />
|
|
180
|
+
</svg>
|
|
181
|
+
</button>
|
|
182
|
+
<div class="text-preview-toolbar-actions">
|
|
183
|
+
${this.#t?K`<button
|
|
184
|
+
type="button"
|
|
185
|
+
class="text-preview-btn"
|
|
186
|
+
@click=${()=>this.#d()}
|
|
187
|
+
?disabled=${this._loading}
|
|
188
|
+
title="Copy link"
|
|
189
|
+
aria-label="Copy shareable link"
|
|
190
|
+
>
|
|
191
|
+
${this._linkCopied?K`<svg
|
|
192
|
+
width="16"
|
|
193
|
+
height="16"
|
|
194
|
+
viewBox="0 0 24 24"
|
|
195
|
+
fill="none"
|
|
196
|
+
stroke="currentColor"
|
|
197
|
+
stroke-width="2"
|
|
198
|
+
stroke-linecap="round"
|
|
199
|
+
stroke-linejoin="round"
|
|
200
|
+
>
|
|
201
|
+
<path d="M20 6 9 17l-5-5" />
|
|
202
|
+
</svg>`:K`<svg
|
|
203
|
+
width="16"
|
|
204
|
+
height="16"
|
|
205
|
+
viewBox="0 0 24 24"
|
|
206
|
+
fill="none"
|
|
207
|
+
stroke="currentColor"
|
|
208
|
+
stroke-width="2"
|
|
209
|
+
stroke-linecap="round"
|
|
210
|
+
stroke-linejoin="round"
|
|
211
|
+
>
|
|
212
|
+
<path
|
|
213
|
+
d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"
|
|
214
|
+
/>
|
|
215
|
+
<path
|
|
216
|
+
d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"
|
|
217
|
+
/>
|
|
218
|
+
</svg>`}
|
|
219
|
+
</button>`:J}
|
|
220
|
+
<button
|
|
221
|
+
type="button"
|
|
222
|
+
class="text-preview-btn"
|
|
223
|
+
@click=${()=>this.#u()}
|
|
224
|
+
?disabled=${this._loading||!this.#e}
|
|
225
|
+
title="Copy text"
|
|
226
|
+
aria-label="Copy text content"
|
|
227
|
+
>
|
|
228
|
+
${this._copied?K`<svg
|
|
229
|
+
width="16"
|
|
230
|
+
height="16"
|
|
231
|
+
viewBox="0 0 24 24"
|
|
232
|
+
fill="none"
|
|
233
|
+
stroke="currentColor"
|
|
234
|
+
stroke-width="2"
|
|
235
|
+
stroke-linecap="round"
|
|
236
|
+
stroke-linejoin="round"
|
|
237
|
+
>
|
|
238
|
+
<path d="M20 6 9 17l-5-5" />
|
|
239
|
+
</svg>`:K`<svg
|
|
240
|
+
width="16"
|
|
241
|
+
height="16"
|
|
242
|
+
viewBox="0 0 24 24"
|
|
243
|
+
fill="none"
|
|
244
|
+
stroke="currentColor"
|
|
245
|
+
stroke-width="2"
|
|
246
|
+
stroke-linecap="round"
|
|
247
|
+
stroke-linejoin="round"
|
|
248
|
+
>
|
|
249
|
+
<rect width="14" height="14" x="8" y="8" rx="2" />
|
|
250
|
+
<path
|
|
251
|
+
d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"
|
|
252
|
+
/>
|
|
253
|
+
</svg>`}
|
|
254
|
+
</button>
|
|
255
|
+
</div>
|
|
256
|
+
</div>
|
|
257
|
+
${this._loading?K`<div class="text-preview-loading">
|
|
258
|
+
<svg
|
|
259
|
+
class="animate-spin size-5"
|
|
260
|
+
viewBox="0 0 24 24"
|
|
261
|
+
fill="none"
|
|
262
|
+
stroke="currentColor"
|
|
263
|
+
stroke-width="2"
|
|
264
|
+
stroke-linecap="round"
|
|
265
|
+
stroke-linejoin="round"
|
|
266
|
+
>
|
|
267
|
+
<path d="M21 12a9 9 0 1 1-6.219-8.56" />
|
|
268
|
+
</svg>
|
|
269
|
+
</div>`:K`<div class="text-preview-body prose">
|
|
270
|
+
${Ai(this._html)}
|
|
271
|
+
</div>`}
|
|
272
|
+
</div>
|
|
273
|
+
</dialog>
|
|
274
|
+
`:J}};customElements.define(`jant-text-preview`,qi);var Ji=8;function Yi(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function Xi(e){return Yi(getComputedStyle(e).getPropertyValue(`--site-thread-context-max-height`).trim(),240)}function Zi(e){if(e.dataset.threadContextToggleBound===`1`)return;e.dataset.threadContextToggleBound=`1`;let t=e.previousElementSibling;if(!(t instanceof HTMLElement)||t.dataset.threadContext===void 0)return;let n=e.querySelector(`.thread-context-toggle-label`),r=e.dataset.labelMore??`Show more`,i=e.dataset.labelLess??`Show less`,a=!1,o=t=>{e.setAttribute(`aria-expanded`,t?`true`:`false`),n&&(n.textContent=t?i:r)},s=()=>Array.from(t.querySelectorAll(`img`)).every(e=>e.complete),c=()=>{if(a)return;let n=Xi(t),r=t.scrollHeight>n+Ji;t.dataset.collapsed===void 0&&(t.dataset.collapsed=``),r?(e.hidden=!1,o(!1)):s()&&(e.hidden=!0)};if(c(),t.querySelectorAll(`img`).forEach(e=>{e.complete||(e.addEventListener(`load`,c,{once:!0}),e.addEventListener(`error`,c,{once:!0}))}),`ResizeObserver`in globalThis){let e=0;new globalThis.ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(c)}).observe(t)}let l=()=>{let e=!1,n=r=>{e||r&&r.propertyName!==`max-height`||(e=!0,t.removeEventListener(`transitionend`,n),t.dataset.collapsed===void 0&&(t.style.maxHeight=``))};t.addEventListener(`transitionend`,n),window.setTimeout(n,600)};e.addEventListener(`click`,()=>{a=!0,t.dataset.collapsed===void 0?(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,requestAnimationFrame(()=>{t.dataset.collapsed=``,t.style.maxHeight=``}),o(!1)):(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,delete t.dataset.collapsed,o(!0)),l()})}function Qi(e=document){e.querySelectorAll(`[data-thread-context-toggle]`).forEach(Zi)}function $i(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function ea(){return globalThis.location.hash===`#continue`}function ta(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=ea();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=$i(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`DOMContentLoaded`,()=>{Qi(document),ta(document)}),document.querySelectorAll(`.archive-chip-dropdown`).forEach(e=>{let t=e.querySelector(`:scope > button`),n=e.querySelector(`:scope > [data-popover]`),r=n?n.querySelector(`[role="listbox"]`):null;if(!t||!n||!r)return;let i=Array.from(r.querySelectorAll(`[role="option"]`)),a=e.classList.contains(`archive-chip-media`),o=e.dataset.filterKey,s=new Set;a&&i.forEach(e=>{!e.dataset.navigate&&e.getAttribute(`aria-selected`)===`true`&&s.add(e.dataset.value)});let c=new Set(s),l=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),a&&(c=new Set(s))},u=(e=!0)=>{if(n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus(),a&&o&&(s.size!==c.size||[...s].some(e=>!c.has(e))))){let e=new URL(window.location.href),t=[...s];t.length>0?e.searchParams.set(o,t.join(`,`)):e.searchParams.delete(o),e.searchParams.delete(`hasMedia`),e.searchParams.delete(`page`),window.location.href=e.pathname+(e.search||``)}};t.addEventListener(`click`,e=>{e.target.closest(`.archive-chip-clear`)||(t.getAttribute(`aria-expanded`)===`true`?u():l())}),document.addEventListener(`click`,t=>{e.contains(t.target)||u(!1)}),document.addEventListener(`basecoat:popover`,t=>{t.detail.source!==e&&u(!1)}),r.addEventListener(`click`,e=>{let t=e.target.closest(`[role="option"]`);if(t){if(t.dataset.navigate){let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e);return}if(a){let e=t.dataset.value;s.has(e)?(s.delete(e),t.removeAttribute(`aria-selected`)):(s.add(e),t.setAttribute(`aria-selected`,`true`))}else{let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e)}}});let d=-1,f=e=>{d>-1&&i[d]&&i[d].classList.remove(`active`),d=e,d>-1&&i[d]&&(i[d].classList.add(`active`),i[d].scrollIntoView({block:`nearest`}))};r.addEventListener(`mousemove`,e=>{let t=e.target.closest(`[role="option"]`);if(t){let e=i.indexOf(t);e!==-1&&e!==d&&f(e)}}),r.addEventListener(`mouseleave`,()=>{f(-1)}),t.addEventListener(`keydown`,e=>{let t=n.getAttribute(`aria-hidden`)===`false`;if(e.key===`Escape`){t&&(e.preventDefault(),u());return}if(!t&&[`ArrowDown`,`ArrowUp`].includes(e.key)){e.preventDefault(),l();return}t&&(e.preventDefault(),e.key===`ArrowDown`?f(Math.min(d+1,i.length-1)):e.key===`ArrowUp`?f(Math.max(d-1,0)):e.key===`Enter`&&d>-1&&(i[d].click(),!a&&!i[d].dataset.navigate&&u()))})});function na(e){let t=e.querySelector(`.site-header-more-btn`),n=e.querySelector(`.site-header-more-popover`);if(!t||!n||t.dataset.moreInitialized===`true`)return;t.dataset.moreInitialized=`true`;function r(){n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:t.parentElement}}))}function i(e=!1){n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus()}t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?i():r()}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(t.parentElement?.contains(e.target)||i())}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&n.getAttribute(`aria-hidden`)===`false`&&i(!0)}),document.addEventListener(`basecoat:popover`,e=>{e.detail?.source!==t.parentElement&&i()})}var ra=`jant:nav-fresh-visits`;function ia(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function aa(e){try{let t=JSON.parse(localStorage.getItem(ra)||`{}`),n=location.pathname,r=e.querySelectorAll(`[data-fresh-at]`);for(let e of r){let r=new URL(e.href).pathname,i=parseInt(e.dataset.freshAt,10);if(r===n)t[r]=Math.floor(Date.now()/1e3);else{let n=t[r];if(!n||n<i){let t=e.querySelector(`svg`);e.insertBefore(ia(),t)}}}localStorage.setItem(ra,JSON.stringify(t))}catch{}}function oa(e=document){let t=e.querySelector(`.site-header-hamburger`),n=e.querySelector(`#site-nav-drawer`),r=e.querySelector(`.site-nav-drawer-backdrop`),i=n?.querySelector(`.site-nav-drawer-close`);if(aa(e),na(e),!t||!n||!r||t.dataset.drawerInitialized===`true`)return;t.dataset.drawerInitialized=`true`;function a(){n.setAttribute(`aria-hidden`,`false`),n.removeAttribute(`inert`),r.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.documentElement.classList.add(`drawer-open`);let e=n.querySelector(`.site-nav-drawer-close`)??n.querySelector(`a[href], button`);e&&e.focus()}function o(e=!0){n.setAttribute(`aria-hidden`,`true`),r.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),document.documentElement.classList.remove(`drawer-open`),n.addEventListener(`transitionend`,()=>{n.getAttribute(`aria-hidden`)===`true`&&n.setAttribute(`inert`,``)},{once:!0}),e&&t.focus()}t.addEventListener(`click`,()=>{t.getAttribute(`aria-expanded`)===`true`?o():a()}),i?.addEventListener(`click`,()=>o()),r.addEventListener(`click`,()=>o()),n.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`a[href]`)&&o(!1)}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),o())})}oa();function sa(e=document){e.querySelectorAll(`.collection-sort-menu`).forEach(e=>{if(e.dataset.collectionSortMenuInitialized===`true`)return;let t=e.querySelector(`:scope > .collection-sort-trigger`),n=e.querySelector(`:scope > [data-popover]`),r=n?.querySelector(`[data-collection-sort-options]`);if(!(t instanceof HTMLButtonElement)||!n||!r)return;let i=(e=!1)=>{n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus())},a=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`)};t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?i(!1):a()}),t.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),i(!0);return}if(e.key===`ArrowDown`){e.preventDefault(),t.getAttribute(`aria-expanded`)!==`true`&&a();let n=r.querySelector(`a[href]`);n instanceof HTMLElement&&n.focus()}}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),i(!0))}),document.addEventListener(`click`,t=>{t.target instanceof Node&&(e.contains(t.target)||i(!1))}),document.addEventListener(`basecoat:popover`,t=>{t.detail?.source!==e&&i(!1)}),e.dataset.collectionSortMenuInitialized=`true`})}sa(),rn(),document.documentElement.dataset.jantVersion=`0.6.0-f0eaa828eead8408`;export{tn as _,Hi as a,Di as c,fi as d,Z as f,si as g,K as h,$ as i,Oi as l,q as m,Ui as n,ki as o,J as p,Vi as r,Ai as s,Wi as t,Ei as u};
|