@jant/core 0.3.44 → 0.3.46

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.
Files changed (62) hide show
  1. package/bin/commands/import-site.js +40 -39
  2. package/dist/app-CM7sb3xO.js +5 -0
  3. package/dist/{app-CtJDxZBb.js → app-DB-P66E5.js} +147 -203
  4. package/dist/client/.vite/manifest.json +3 -3
  5. package/dist/client/_assets/client-DDs6NzB3.css +2 -0
  6. package/dist/client/_assets/{client-auth-CXILhW1b.js → client-auth-BLCUje4M.js} +193 -174
  7. package/dist/client/_assets/{client-D95FNDg5.js → client-dSfWfMe9.js} +7 -7
  8. package/dist/{github-sync-7y_nTXx1.js → github-sync-CQ1x271f.js} +3 -0
  9. package/dist/index.js +4 -87
  10. package/dist/node.js +3 -3
  11. package/package.json +1 -1
  12. package/src/__tests__/import-site-command.test.ts +18 -0
  13. package/src/client/components/jant-compose-dialog.ts +94 -15
  14. package/src/client/components/jant-compose-editor.ts +11 -6
  15. package/src/client/components/jant-post-menu.ts +23 -5
  16. package/src/client/compose-bridge.ts +2 -1
  17. package/src/client/random-uuid.ts +23 -0
  18. package/src/client/toast.ts +29 -2
  19. package/src/client/upload-session.ts +1 -1
  20. package/src/db/migrations/0020_free_zaladane.sql +1 -0
  21. package/src/db/migrations/meta/0020_snapshot.json +2129 -0
  22. package/src/db/migrations/meta/_journal.json +7 -0
  23. package/src/db/migrations/pg/0018_red_warlock.sql +1 -0
  24. package/src/db/migrations/pg/meta/0018_snapshot.json +2739 -0
  25. package/src/db/migrations/pg/meta/_journal.json +7 -0
  26. package/src/db/pg/schema.ts +0 -30
  27. package/src/db/schema.ts +0 -39
  28. package/src/i18n/locales/public/en.po +10 -5
  29. package/src/i18n/locales/public/en.ts +1 -1
  30. package/src/i18n/locales/public/zh-Hans.po +10 -5
  31. package/src/i18n/locales/public/zh-Hans.ts +1 -1
  32. package/src/i18n/locales/public/zh-Hant.po +10 -5
  33. package/src/i18n/locales/public/zh-Hant.ts +1 -1
  34. package/src/index.ts +0 -3
  35. package/src/lib/__tests__/resolve-config.test.ts +4 -4
  36. package/src/lib/__tests__/startup-config.test.ts +27 -2
  37. package/src/lib/constants.ts +1 -0
  38. package/src/lib/github-sync-trigger.ts +7 -51
  39. package/src/lib/startup-config.ts +53 -6
  40. package/src/routes/api/github-sync.tsx +36 -14
  41. package/src/routes/pages/home.tsx +2 -0
  42. package/src/routes/pages/latest.tsx +2 -0
  43. package/src/runtime/__tests__/readiness.test.ts +34 -0
  44. package/src/runtime/readiness.ts +8 -4
  45. package/src/services/__tests__/collection.test.ts +13 -11
  46. package/src/services/github-sync.ts +6 -0
  47. package/src/styles/components.css +14 -0
  48. package/src/styles/ui.css +97 -0
  49. package/src/types/bindings.ts +0 -2
  50. package/src/types/config.ts +1 -1
  51. package/src/types/props.ts +2 -0
  52. package/src/ui/__tests__/font-themes.test.ts +2 -2
  53. package/src/ui/dash/settings/SettingsRootContent.tsx +17 -17
  54. package/src/ui/font-themes.ts +17 -17
  55. package/src/ui/pages/HomePage.tsx +18 -5
  56. package/dist/app-BI9bnCkO.js +0 -5
  57. package/dist/client/_assets/client-BQH7AQ24.css +0 -2
  58. package/src/lib/github-sync-queue-handler.ts +0 -69
  59. package/src/lib/github-sync-worker.ts +0 -72
  60. package/src/lib/job-queue-cf.ts +0 -18
  61. package/src/lib/job-queue-db.ts +0 -149
  62. package/src/lib/job-queue.ts +0 -35
@@ -1,10 +1,10 @@
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}
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=Te,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}))}},xe=(e,{ifMissing:t}={})=>{v();for(let n in e)e[n]==null?t||delete Te[n]:Se(e[n],n,Te,``,t);y()},E=(e,t)=>xe(u(e),t),Se=(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]:Se(e[a],a,n[t],`${r+t}.`,i)}else i&&o(n,t)||(n[t]=e)},Ce=e=>typeof e==`string`?RegExp(e.replace(/^\/|\/$/g,``)):e,we=({include:e=/.*/,exclude:t=/(?!)/}={},n=Te)=>{let r=Ce(e),i=Ce(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)},Te=be({}),D=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
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(`
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)D(e)&&(He([e]),He(e.querySelectorAll(`*`)));for(let e of i)D(e)&&(Ke([e]),Ke(e.querySelectorAll(`*`)))}else if(n===`attributes`&&r.startsWith(`data-`)&&D(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)=>{D(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,Te,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=we(n);l(r,()=>t),xe(r),x()}}),A({name:`toggleAll`,apply(e,t){b();let n=we(t);l(n,e=>!e),xe(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
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=`[
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?we({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(()=>{E([[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++}E(a,{ifMissing:!0}),u=`${u}.${s}`}else E([[u,o(e,l)]],{ifMissing:!0});let d=()=>{let t=ye(u);if(t!=null){let n=o(e,typeof t);n!==ft&&E([[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)E([[O(e,t),ne(n)]]);else{let e=Object.assign({},n());l(e,e=>{if(typeof e==`function`)return ne(e);throw r(`ComputedExpectedFunction`)}),xe(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);E([[a,!1]]);let o=t=>{let{type:n,el:r}=t.detail;if(r===e)switch(n){case $e:E([[a,!0]]);break;case et:E([[a,!1]]);break}};return document.addEventListener(i,o),()=>{E([[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(we(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=we(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}){E([[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),E([[e,n?.()]],{ifMissing:r})):xe(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(D(e)&&D(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`;xe(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
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.#o),this.#s()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(`click`,this.#e),window.removeEventListener(`resize`,this.#o)}open(e,t){this.#s(),this.#c(),this._images=e,this._currentIndex=Math.max(0,Math.min(t,e.length-1)),this.#l(this._images[this._currentIndex]),this._open=!0,document.dispatchEvent(new CustomEvent(wn,{detail:{open:!0}})),this.updateComplete.then(()=>{this.querySelector(`.media-lightbox`)?.showModal(),this.querySelector(`.media-lightbox-content`)?.focus()})}close(){this.#c(),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.#c(),this._currentIndex=(this._currentIndex-1+this._images.length)%this._images.length)}#n(){this._images.length<=1||(this.#c(),this._currentIndex=(this._currentIndex+1)%this._images.length)}#r=e=>{let t=e,n=e.target;if(t.key===`Escape`)e.preventDefault(),this.close();else if(n?.classList.contains(`media-lightbox-short-progress`)&&(t.key===`ArrowLeft`||t.key===`ArrowRight`))return;else t.key===`ArrowLeft`?(e.preventDefault(),this.#t()):t.key===`ArrowRight`&&(e.preventDefault(),this.#n())};#i=e=>{let t=e.target;(t===e.currentTarget||t.classList.contains(`media-lightbox-content`)||t.classList.contains(`media-lightbox-stage`))&&this.close()};#a=()=>{this.#c(),this._open&&document.dispatchEvent(new CustomEvent(wn,{detail:{open:!1}})),this._open=!1};#o=()=>{this.#s()};#s(){let e=xi();e.width===this._viewportWidth&&e.height===this._viewportHeight||(this._viewportWidth=e.width,this._viewportHeight=e.height)}#c(){this.querySelector(`.media-lightbox-video`)?.pause()}#l(e){this._videoCurrentTime=0,this._videoDuration=e?.durationSeconds&&e.durationSeconds>0?e.durationSeconds:0,this._videoMuted=!1}#u(){let e=this._images[this._currentIndex];if(!pi(e)){this.#l(e);return}let t=this.querySelector(`.media-lightbox-video`);t&&(t.currentTime=0,t.muted=this._videoMuted,t.play().catch(()=>{}))}#d=e=>{let t=e.currentTarget;Number.isFinite(t.duration)&&t.duration>0&&(this._videoDuration=t.duration),this._videoCurrentTime=t.currentTime,t.muted=this._videoMuted};#f=e=>{let t=e.currentTarget;this._videoCurrentTime=t.currentTime,Number.isFinite(t.duration)&&t.duration>0&&(this._videoDuration=t.duration)};#p=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)};#m=()=>{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.#u())}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
9
  <dialog
10
10
  class=${`media-lightbox${r?` media-lightbox-short`:``}`}
@@ -148,7 +148,7 @@ ${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{
148
148
  `:J}
149
149
  </div>
150
150
  </dialog>
151
- `}};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){!e.matches(`:popover-open`)&&typeof e.showPopover==`function`&&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>`};function Li(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)}}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}`,Li(r,t,e),n.appendChild(r),setTimeout(()=>{r.classList.add(`toast-out`),r.addEventListener(`animationend`,()=>r.remove())},3e3)}function Ri(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}`,Li(i,n,e,t),r.appendChild(i),setTimeout(()=>{i.classList.add(`toast-out`),i.addEventListener(`animationend`,()=>i.remove())},3e3)}function zi(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}`,Li(i,n,t),r.appendChild(i),i}function Bi(e,t,n=`success`){let r=document.getElementById(`toast-${e}`);if(!r){$(t,n);return}r.className=`toast toast-${n}`,r.replaceChildren(),Li(r,n,t),setTimeout(()=>{r.classList.add(`toast-out`),r.addEventListener(`animationend`,()=>r.remove())},3e3)}function Vi(e,t=`success`,n){!e||!Pi()||globalThis.sessionStorage.setItem(ji,JSON.stringify({message:e,type:t,action:n}))}function Hi(){let e=Fi();return!e||!Ni()?!1:(globalThis.sessionStorage.removeItem(ji),e.action?Ri(e.message,e.action,e.type):$(e.message,e.type),!0)}function Ui(){let e=()=>{Hi()};if(document.readyState===`loading`){document.addEventListener(`DOMContentLoaded`,e,{once:!0});return}e()}Ui();var Wi=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`
151
+ `}};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,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 Ui(e,t=`success`,n){!e||!Pi()||globalThis.sessionStorage.setItem(ji,JSON.stringify({message:e,type:t,action:n}))}function Wi(){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 Gi(){let e=()=>{Wi()};if(document.readyState===`loading`){document.addEventListener(`DOMContentLoaded`,e,{once:!0});return}e()}Gi();var Ki=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`
152
152
  <dialog
153
153
  class="text-preview-dialog"
154
154
  @cancel=${e=>{e.preventDefault(),this.#l()}}
@@ -269,4 +269,4 @@ ${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{
269
269
  </div>`}
270
270
  </div>
271
271
  </dialog>
272
- `:J}};customElements.define(`jant-text-preview`,Wi);function Gi(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function Ki(e){let t=e.classList.contains(`expanded`);t&&e.classList.remove(`expanded`);let n=getComputedStyle(e).maxHeight,r=Gi(n,188);return t&&e.classList.add(`expanded`),r}function qi(e){return Array.from(e.querySelectorAll(`img`)).filter(e=>!e.complete)}function Ji(e,t){let n=qi(e);if(n.length===0){requestAnimationFrame(()=>{requestAnimationFrame(t)});return}let r=n.length,i=()=>{--r,r===0&&t()};n.forEach(e=>{e.addEventListener(`load`,i,{once:!0}),e.addEventListener(`error`,i,{once:!0})})}function Yi(e,t,n){let r=Ki(e),i=e.classList.contains(`expanded`),a=e.scrollHeight>r+1,o=t.dataset.labelMore??`Show more`,s=t.dataset.labelLess??`Show less`;if(!a){n?e.classList.remove(`thread-context-collapsed`,`thread-context-faded`,`expanded`):(e.classList.add(`thread-context-collapsed`),e.classList.remove(`thread-context-faded`,`expanded`)),t.classList.add(`hidden`),t.textContent=o,t.setAttribute(`aria-expanded`,`false`);return}e.classList.add(`thread-context-collapsed`),e.classList.add(`thread-context-faded`),t.classList.remove(`hidden`),t.textContent=i?s:o,t.setAttribute(`aria-expanded`,i?`true`:`false`)}function Xi(e){let t=e.querySelector(`[data-thread-context]`),n=e.querySelector(`[data-thread-context-toggle]`);if(!t||!n)return;let r=!1;Yi(t,n,r),Ji(t,()=>{r=!0,Yi(t,n,r)}),`ResizeObserver`in globalThis&&new globalThis.ResizeObserver(()=>{Yi(t,n,r)}).observe(t)}function Zi(e=document){e.querySelectorAll(`.thread-group`).forEach(e=>{e instanceof HTMLElement&&Xi(e)})}function Qi(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function $i(){return globalThis.location.hash===`#continue`}function ea(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=$i();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=Qi(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-thread-context-toggle]`);if(!t)return;let n=t.closest(`.thread-group`)?.querySelector(`[data-thread-context]`);n&&(n.classList.toggle(`expanded`),Yi(n,t,!0))}),document.addEventListener(`DOMContentLoaded`,()=>{Zi(document),ea(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 ta(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 na=`jant:nav-fresh-visits`;function ra(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function ia(e){try{let t=JSON.parse(localStorage.getItem(na)||`{}`),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(ra(),t)}}}localStorage.setItem(na,JSON.stringify(t))}catch{}}function aa(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(ia(e),ta(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())})}aa();function oa(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`})}oa(),rn();export{tn as _,$ as a,Di as c,fi as d,Z as f,si as g,K as h,zi as i,Oi as l,q as m,Vi as n,ki as o,J as p,Bi as r,Ai as s,Zi as t,Ei as u};
272
+ `:J}};customElements.define(`jant-text-preview`,Ki);function qi(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function Ji(e){let t=e.classList.contains(`expanded`);t&&e.classList.remove(`expanded`);let n=getComputedStyle(e).maxHeight,r=qi(n,188);return t&&e.classList.add(`expanded`),r}function Yi(e){return Array.from(e.querySelectorAll(`img`)).filter(e=>!e.complete)}function Xi(e,t){let n=Yi(e);if(n.length===0){requestAnimationFrame(()=>{requestAnimationFrame(t)});return}let r=n.length,i=()=>{--r,r===0&&t()};n.forEach(e=>{e.addEventListener(`load`,i,{once:!0}),e.addEventListener(`error`,i,{once:!0})})}function Zi(e,t,n){let r=Ji(e),i=e.classList.contains(`expanded`),a=e.scrollHeight>r+1,o=t.dataset.labelMore??`Show more`,s=t.dataset.labelLess??`Show less`;if(!a){n?e.classList.remove(`thread-context-collapsed`,`thread-context-faded`,`expanded`):(e.classList.add(`thread-context-collapsed`),e.classList.remove(`thread-context-faded`,`expanded`)),t.classList.add(`hidden`),t.textContent=o,t.setAttribute(`aria-expanded`,`false`);return}e.classList.add(`thread-context-collapsed`),e.classList.add(`thread-context-faded`),t.classList.remove(`hidden`),t.textContent=i?s:o,t.setAttribute(`aria-expanded`,i?`true`:`false`)}function Qi(e){let t=e.querySelector(`[data-thread-context]`),n=e.querySelector(`[data-thread-context-toggle]`);if(!t||!n)return;let r=!1;Zi(t,n,r),Xi(t,()=>{r=!0,Zi(t,n,r)}),`ResizeObserver`in globalThis&&new globalThis.ResizeObserver(()=>{Zi(t,n,r)}).observe(t)}function $i(e=document){e.querySelectorAll(`.thread-group`).forEach(e=>{e instanceof HTMLElement&&Qi(e)})}function ea(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function ta(){return globalThis.location.hash===`#continue`}function na(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=ta();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=ea(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-thread-context-toggle]`);if(!t)return;let n=t.closest(`.thread-group`)?.querySelector(`[data-thread-context]`);n&&(n.classList.toggle(`expanded`),Zi(n,t,!0))}),document.addEventListener(`DOMContentLoaded`,()=>{$i(document),na(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 ra(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 ia=`jant:nav-fresh-visits`;function aa(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function oa(e){try{let t=JSON.parse(localStorage.getItem(ia)||`{}`),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(aa(),t)}}}localStorage.setItem(ia,JSON.stringify(t))}catch{}}function sa(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(oa(e),ra(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())})}sa();function ca(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`})}ca(),rn();export{tn as _,$ as a,Di as c,fi as d,Z as f,si as g,K as h,Vi as i,Oi as l,q as m,Ui as n,ki as o,J as p,Hi as r,Ai as s,$i as t,Ei as u};
@@ -4649,7 +4649,10 @@ function createGitHubSyncService(services, siteId, siteConfig, deps = {}) {
4649
4649
  if (tiptapBody !== null) updateData.body = tiptapBody;
4650
4650
  if (frontMatter.title !== void 0) updateData.title = frontMatter.title;
4651
4651
  if (frontMatter.link_url !== void 0) updateData.url = frontMatter.link_url;
4652
+ if (frontMatter.source_name !== void 0) updateData.sourceName = frontMatter.source_name;
4653
+ if (frontMatter.source_url !== void 0) updateData.sourceUrl = frontMatter.source_url;
4652
4654
  if (frontMatter.quote_text !== void 0) updateData.quoteText = frontMatter.quote_text;
4655
+ if (frontMatter.rating !== void 0) updateData.rating = frontMatter.rating;
4653
4656
  if (Object.keys(updateData).length > 0) await services.posts.update(existingPost.id, updateData);
4654
4657
  }
4655
4658
  },
package/dist/index.js CHANGED
@@ -1,88 +1,5 @@
1
1
  import { _ as url_exports } from "./url-umUptr5z.js";
2
- import { A as NAV_ITEM_TYPES, C as toPostView, D as MAX_MEDIA_ATTACHMENTS, E as FORMATS, M as STATUSES, N as TEXT_ATTACHMENT_CONTENT_FORMATS, O as MAX_PINNED_POSTS, S as toNavItemViews, T as toSearchResultView, _ as createMediaContext, b as toMediaView, f as defaultFeedRenderer, j as SORT_ORDERS, k as MEDIA_KINDS, n as createRequestRuntime, t as createApp, v as toArchiveGroups, w as toPostViews, x as toNavItemView, y as toArchiveGroupsWithMedia } from "./app-CtJDxZBb.js";
3
- import { E as time_exports, n as createGitHubSyncService, s as markdown_exports } from "./github-sync-7y_nTXx1.js";
4
- import { u as getGitHubAppConfig } from "./env-CgaH9Mut.js";
5
- //#region src/lib/github-sync-worker.ts
6
- /**
7
- * GitHub Sync Worker
8
- *
9
- * Processes queued sync jobs. Push jobs always run a full sync.
10
- * After completing, re-checks the pending flag to catch changes
11
- * that arrived during execution.
12
- */
13
- /**
14
- * Process a single GitHub Sync job.
15
- */ async function processGitHubSyncJob(payload, services, siteId, siteConfig, storage, githubApp) {
16
- const syncService = createGitHubSyncService({
17
- posts: services.posts,
18
- paths: services.paths,
19
- collections: services.collections,
20
- media: services.media,
21
- settings: services.settings
22
- }, siteId, siteConfig, {
23
- storage,
24
- githubApp
25
- });
26
- if (payload.kind === "github-sync-push") {
27
- await services.settings.set("GITHUB_SYNC_PENDING", "");
28
- await syncService.pushFullSync();
29
- if (await services.settings.get("GITHUB_SYNC_PENDING") === "true") {
30
- await services.settings.set("GITHUB_SYNC_PENDING", "");
31
- await syncService.pushFullSync();
32
- }
33
- return;
34
- }
35
- if (payload.kind === "github-sync-pull") {
36
- const webhookPayload = payload.data;
37
- await syncService.handleWebhookPush(webhookPayload);
38
- return;
39
- }
40
- }
41
- //#endregion
42
- //#region src/lib/github-sync-queue-handler.ts
43
- /**
44
- * Cloudflare Queue batch handler for GitHub Sync jobs.
45
- *
46
- * This module bridges the CF Queue consumer interface with the
47
- * generic sync worker. It creates a runtime per-batch to access
48
- * services and configuration.
49
- */
50
- /**
51
- * Handle a batch of messages from a Cloudflare Queue.
52
- *
53
- * Each message is expected to be a `JobPayload` object.
54
- */ async function handleQueueBatch(batch, env) {
55
- const siteOrigin = typeof env.SITE_ORIGIN === "string" && env.SITE_ORIGIN ? env.SITE_ORIGIN : "http://localhost";
56
- const runtime = await createRequestRuntime(env, siteOrigin);
57
- for (const message of batch.messages) {
58
- const payload = message.body;
59
- try {
60
- await processGitHubSyncJob(payload, runtime.services, payload.siteId, {
61
- siteName: "",
62
- siteUrl: siteOrigin,
63
- siteDescription: "",
64
- siteLanguage: "",
65
- showJantBrandingOnHome: false,
66
- homeDefaultView: "",
67
- mainRssFeed: "",
68
- siteFooter: "",
69
- showHeaderAvatar: false,
70
- siteAvatarUrl: "",
71
- themeId: "",
72
- defaultThemeId: "",
73
- fontThemeId: "",
74
- themeMode: "",
75
- noindex: false,
76
- navItems: [],
77
- pageSize: 50,
78
- archivePageSize: 50,
79
- rssFeedLimit: 50
80
- }, runtime.storage, getGitHubAppConfig(env));
81
- message.ack();
82
- } catch {
83
- message.retry();
84
- }
85
- }
86
- }
87
- //#endregion
88
- export { FORMATS, MAX_MEDIA_ATTACHMENTS, MAX_PINNED_POSTS, MEDIA_KINDS, NAV_ITEM_TYPES, SORT_ORDERS, STATUSES, TEXT_ATTACHMENT_CONTENT_FORMATS, createApp, createMediaContext, defaultFeedRenderer, handleQueueBatch as handleGitHubSyncQueueBatch, markdown_exports as markdown, time_exports as time, toArchiveGroups, toArchiveGroupsWithMedia, toMediaView, toNavItemView, toNavItemViews, toPostView, toPostViews, toSearchResultView, url_exports as url };
2
+ import { A as SORT_ORDERS, C as toPostViews, D as MAX_PINNED_POSTS, E as MAX_MEDIA_ATTACHMENTS, M as TEXT_ATTACHMENT_CONTENT_FORMATS, O as MEDIA_KINDS, S as toPostView, T as FORMATS, _ as toArchiveGroups, b as toNavItemView, d as defaultFeedRenderer, g as createMediaContext, j as STATUSES, k as NAV_ITEM_TYPES, t as createApp, v as toArchiveGroupsWithMedia, w as toSearchResultView, x as toNavItemViews, y as toMediaView } from "./app-DB-P66E5.js";
3
+ import { E as time_exports, s as markdown_exports } from "./github-sync-CQ1x271f.js";
4
+ import "./env-CgaH9Mut.js";
5
+ export { FORMATS, MAX_MEDIA_ATTACHMENTS, MAX_PINNED_POSTS, MEDIA_KINDS, NAV_ITEM_TYPES, SORT_ORDERS, STATUSES, TEXT_ATTACHMENT_CONTENT_FORMATS, createApp, createMediaContext, defaultFeedRenderer, markdown_exports as markdown, time_exports as time, toArchiveGroups, toArchiveGroupsWithMedia, toMediaView, toNavItemView, toNavItemViews, toPostView, toPostViews, toSearchResultView, url_exports as url };
package/dist/node.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./url-umUptr5z.js";
2
- import { F as BUILTIN_COLOR_THEMES, I as getPublicAssetBasePath, L as isAssetPath, P as buildThemeStyle, a as createSiteService, c as resolveConfig, d as getFontThemeCssVariables, g as schema_exports, h as createNodeDatabase, i as createNodeRequestRuntime, l as BUILTIN_FONT_THEMES, m as sqliteSchemaBundle, o as resolveDatabaseDialect, p as pgSchemaBundle, r as createNodeCliRuntime, s as getHostBasedStartupConfigurationIssues, t as createApp, u as getCjkSerifCssVariables } from "./app-CtJDxZBb.js";
3
- import { i as createExportService } from "./github-sync-7y_nTXx1.js";
2
+ import { F as getPublicAssetBasePath, I as isAssetPath, N as buildThemeStyle, P as BUILTIN_COLOR_THEMES, a as resolveDatabaseDialect, c as BUILTIN_FONT_THEMES, f as pgSchemaBundle, h as schema_exports, i as createSiteService, l as getCjkSerifCssVariables, m as createNodeDatabase, n as createNodeCliRuntime, o as getHostBasedStartupConfigurationIssues, p as sqliteSchemaBundle, r as createNodeRequestRuntime, s as resolveConfig, t as createApp, u as getFontThemeCssVariables } from "./app-DB-P66E5.js";
3
+ import { i as createExportService } from "./github-sync-CQ1x271f.js";
4
4
  import { b as getSiteResolutionMode, i as getConfiguredSingleSitePathPrefix, l as getEnvString, r as getConfiguredSingleSiteOrigin, x as shouldTrustProxy, y as getPort } from "./env-CgaH9Mut.js";
5
5
  import { drizzle } from "drizzle-orm/better-sqlite3";
6
6
  import { serve } from "@hono/node-server";
@@ -473,7 +473,7 @@ async function createNodeRequestHandler(options) {
473
473
  async function start(env = process.env, app) {
474
474
  const handler = await createNodeRequestHandler({
475
475
  env,
476
- app: async () => app ?? (await import("./app-BI9bnCkO.js")).createApp()
476
+ app: async () => app ?? (await import("./app-CM7sb3xO.js")).createApp()
477
477
  });
478
478
  const hostname = resolveHost(env);
479
479
  const port = resolvePort(env);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jant/core",
3
- "version": "0.3.44",
3
+ "version": "0.3.46",
4
4
  "description": "A modern, open-source microblogging platform built on Cloudflare Workers",
5
5
  "type": "module",
6
6
  "exports": {
@@ -23,6 +23,7 @@ const {
23
23
  getRootAliasPathsForImport,
24
24
  uploadMediaList,
25
25
  normalizeTextAttachmentSpec,
26
+ isAbsoluteImportUrl,
26
27
  } = __test__;
27
28
 
28
29
  async function writeFileTree(
@@ -226,6 +227,23 @@ describe("Hugo import CLI helpers", () => {
226
227
  );
227
228
  });
228
229
 
230
+ it("isAbsoluteImportUrl distinguishes absolute URLs from relative paths for --skip-remote-media", () => {
231
+ // Relative paths — always treated as the source site's own files.
232
+ expect(isAbsoluteImportUrl("/media/foo.png")).toBe(false);
233
+ expect(isAbsoluteImportUrl("./foo.png")).toBe(false);
234
+ expect(isAbsoluteImportUrl("../foo.png")).toBe(false);
235
+ expect(isAbsoluteImportUrl("foo.png")).toBe(false);
236
+ // Absolute / scheme'd / protocol-relative URLs — treated as remote.
237
+ expect(isAbsoluteImportUrl("https://example.com/foo.png")).toBe(true);
238
+ expect(isAbsoluteImportUrl("http://example.com/foo.png")).toBe(true);
239
+ expect(isAbsoluteImportUrl("HTTPS://Example.com/Foo.png")).toBe(true);
240
+ expect(isAbsoluteImportUrl("//cdn.example.com/foo.png")).toBe(true);
241
+ expect(isAbsoluteImportUrl("data:image/png;base64,AAA")).toBe(true);
242
+ // Non-strings.
243
+ expect(isAbsoluteImportUrl(undefined)).toBe(false);
244
+ expect(isAbsoluteImportUrl(null)).toBe(false);
245
+ });
246
+
229
247
  it("normalizeTextAttachmentSpec handles a kind:text entry from front matter media[]", async () => {
230
248
  await mkdir(join(tempDir, "static", "media", "files"), { recursive: true });
231
249
  await writeFile(