@jant/core 0.6.15 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/commands/import-site.js +7 -0
- package/dist/app-C75Zc8dD.js +6 -0
- package/dist/{app-C-oi_t8W.js → app-C7_4oab9.js} +480 -196
- package/dist/client/.vite/manifest.json +8 -8
- package/dist/client/_assets/chunks/{url-pLre2DM_.js → url-CU9pEbk5.js} +1 -1
- package/dist/client/_assets/{client-DxY5BFe8.js → client-Bq0vre8Y.js} +3 -3
- package/dist/client/_assets/client-D3VZyG4L.css +2 -0
- package/dist/client/_assets/{client-auth-CakPESv9.js → client-auth-F2rb9WfF.js} +1015 -977
- package/dist/{env-OHRKGcMj.js → env-BPYViDJJ.js} +1 -1
- package/dist/{export-CsFx6F_M.js → export-Dl5KCiEs.js} +93 -7
- package/dist/{github-api-BgSiE71w.js → github-api-BNF35Lkx.js} +1 -1
- package/dist/{github-app-BbklkFmU.js → github-app-DdiD-bC4.js} +1 -1
- package/dist/{github-sync-ppWXN3jb.js → github-sync-Bqg62IvV.js} +3 -3
- package/dist/{github-sync-Cq1pzzOI.js → github-sync-HdK2EgvJ.js} +3 -3
- package/dist/index.js +5 -5
- package/dist/node.js +6 -6
- package/dist/{url-BMYO-Zlt.js → url-CbLAtlZe.js} +517 -12
- package/package.json +1 -1
- package/src/__tests__/mise-config.test.ts +22 -0
- package/src/client/__tests__/compose-bridge.test.ts +252 -2
- package/src/client/__tests__/compose-shortcuts.test.ts +20 -0
- package/src/client/__tests__/toast.test.ts +65 -1
- package/src/client/components/__tests__/compose-format-convert.test.ts +0 -19
- package/src/client/components/__tests__/jant-command-palette.test.ts +51 -0
- package/src/client/components/__tests__/jant-compose-dialog.test.ts +2015 -318
- package/src/client/components/__tests__/jant-compose-editor.test.ts +53 -62
- package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +35 -89
- package/src/client/components/compose-format-convert.ts +5 -1
- package/src/client/components/compose-types.ts +47 -3
- package/src/client/components/jant-command-palette.ts +12 -6
- package/src/client/components/jant-compose-dialog.ts +1464 -680
- package/src/client/components/jant-compose-editor.ts +225 -93
- package/src/client/components/jant-compose-fullscreen.ts +3 -5
- package/src/client/components/jant-post-menu.ts +91 -21
- package/src/client/compose-bridge.ts +143 -122
- package/src/client/compose-launch.ts +13 -0
- package/src/client/compose-shortcuts.ts +5 -1
- package/src/client/post-refresh.ts +135 -0
- package/src/client/tiptap/__tests__/link-input-rules.test.ts +121 -0
- package/src/client/tiptap/link-input-rules.ts +4 -4
- package/src/client/toast.ts +130 -38
- package/src/db/__tests__/backfill-thread-activity.test.ts +234 -0
- package/src/db/__tests__/thread-activity.test.ts +113 -0
- package/src/db/backfills/0005_split_thread_activity_from_quiet_replies.sql +68 -0
- package/src/db/migrations/0031_many_ego.sql +3 -0
- package/src/db/migrations/meta/0031_snapshot.json +2562 -0
- package/src/db/migrations/meta/_journal.json +7 -0
- package/src/db/migrations/pg/0029_rare_hairball.sql +3 -0
- package/src/db/migrations/pg/meta/0029_snapshot.json +3289 -0
- package/src/db/migrations/pg/meta/_journal.json +7 -0
- package/src/db/pg/schema.ts +18 -0
- package/src/db/schema.ts +20 -0
- package/src/db/thread-activity.ts +101 -0
- package/src/i18n/locales/public/en.po +89 -21
- package/src/i18n/locales/public/en.ts +1 -1
- package/src/i18n/locales/public/zh-Hans.po +88 -20
- package/src/i18n/locales/public/zh-Hans.ts +1 -1
- package/src/i18n/locales/public/zh-Hant.po +88 -20
- package/src/i18n/locales/public/zh-Hant.ts +1 -1
- package/src/lib/__tests__/feed.test.ts +168 -0
- package/src/lib/__tests__/markdown.test.ts +16 -0
- package/src/lib/__tests__/slug.test.ts +18 -0
- package/src/lib/__tests__/translit.test.ts +87 -0
- package/src/lib/__tests__/url.test.ts +53 -0
- package/src/lib/feed.ts +113 -11
- package/src/lib/hugo-markdown.ts +5 -0
- package/src/lib/link-preview.ts +25 -0
- package/src/lib/markdown-manager.ts +6 -1
- package/src/lib/post-display.ts +42 -9
- package/src/lib/timeline.ts +39 -9
- package/src/lib/tiptap-render.ts +4 -2
- package/src/lib/translit.ts +288 -0
- package/src/lib/url.ts +123 -12
- package/src/lib/view.ts +28 -0
- package/src/routes/api/__tests__/palette.test.ts +44 -0
- package/src/routes/api/posts.ts +13 -9
- package/src/routes/api/public/__tests__/posts.test.ts +38 -0
- package/src/routes/api/public/posts.ts +7 -0
- package/src/routes/compose.tsx +6 -2
- package/src/routes/feed/__tests__/sitemap.test.ts +68 -1
- package/src/routes/pages/__tests__/archive-params.test.ts +292 -0
- package/src/routes/pages/__tests__/featured.test.ts +6 -2
- package/src/routes/pages/__tests__/preview.test.ts +3 -1
- package/src/routes/pages/archive.tsx +65 -17
- package/src/routes/pages/page.tsx +5 -2
- package/src/services/__tests__/collection.test.ts +32 -1
- package/src/services/__tests__/post-timeline.test.ts +142 -11
- package/src/services/__tests__/post.test.ts +277 -0
- package/src/services/collection.ts +8 -10
- package/src/services/export-theme/assets/client-site.css +1 -1
- package/src/services/export.ts +3 -5
- package/src/services/path.ts +4 -1
- package/src/services/post.ts +297 -100
- package/src/services/search.ts +9 -0
- package/src/styles/components.css +0 -14
- package/src/styles/site-media.css +4 -4
- package/src/styles/tokens.css +62 -1
- package/src/styles/ui.css +1363 -1283
- package/src/types/entities.ts +5 -0
- package/src/types/props.ts +12 -0
- package/src/types/views.ts +6 -0
- package/src/ui/compose/ComposeDialog.tsx +17 -17
- package/src/ui/feed/LinkPreview.tsx +2 -7
- package/src/ui/feed/PostStatusBadges.tsx +42 -3
- package/src/ui/pages/ArchivePage.tsx +131 -24
- package/src/ui/pages/__tests__/ArchivePage.test.tsx +63 -0
- package/src/ui/shared/DraftPreviewBar.tsx +25 -9
- package/src/ui/shared/PostFooter.tsx +35 -12
- package/src/ui/shared/custom-icons.ts +5 -0
- package/src/ui/shared/post-article-attributes.ts +6 -0
- package/dist/app-BxCOR3Uc.js +0 -6
- package/dist/client/_assets/client-B_eGKN5p.css +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e}from"./chunks/url-CU9pEbk5.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({}),Ee=e=>e instanceof HTMLElement||e instanceof SVGElement||e instanceof MathMLElement,De=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(),Oe=e=>De(e).replace(/-/g,`_`),ke=e=>{try{return JSON.parse(e)}catch{return Function(`return (${e})`)()}},Ae={camel:e=>e.replace(/-[a-z]/g,e=>e[1].toUpperCase()),snake:e=>e.replace(/-/g,`_`),pascal:e=>e[0].toUpperCase()+Ae.camel(e.slice(1))},D=(e,t,n=`camel`)=>{for(let r of t.get(`case`)||[n])e=Ae[r]?.(e)||e;return e},je=e=>`data-${e}`,Me=`https://data-star.dev/errors`,Ne=(e,t,n={})=>{Object.assign(n,e);let r=Error();return r.message=`${t}
|
|
2
2
|
More info: ${Me}/${Oe(t)}?${new URLSearchParams({metadata:JSON.stringify(n)}).toString()}
|
|
3
3
|
Context: ${JSON.stringify(n,null,2)}`,r},Pe=new Map,Fe=new Map,Ie=new Map,Le=new Proxy({},{get:(e,t)=>Pe.get(t)?.apply,has:(e,t)=>Pe.has(t),ownKeys:()=>Reflect.ownKeys(Pe),set:()=>!1,deleteProperty:()=>!1}),Re=new Map,ze=[],Be=new Set,Ve=new WeakSet,O=e=>{ze.push(e),ze.length===1&&setTimeout(()=>{for(let e of ze)Be.add(e.name),Fe.set(e.name,e);ze.length=0,Xe(),Be.clear()})},k=e=>{Pe.set(e.name,e)};document.addEventListener(i,e=>{let t=Ie.get(e.detail.type);t&&t.apply({error:Ne.bind(0,{plugin:{type:`watcher`,name:t.name},element:{id:e.target.id,tag:e.target.tagName}})},e.detail.argsRaw)});var He=e=>{Ie.set(e.name,e)},Ue=e=>{for(let t of e){let e=Re.get(t);if(e&&Re.delete(t))for(let t of e.values())for(let e of t.values())e()}},We=je(`ignore`),Ge=`[${We}]`,Ke=e=>e.hasAttribute(`${We}__self`)||!!e.closest(Ge),qe=(e,t)=>{for(let n of e)if(!Ke(n))for(let e in n.dataset)Ze(n,e.replace(/[A-Z]/g,`-$&`).toLowerCase(),n.dataset[e],t)},Je=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)Ee(e)&&(Ue([e]),Ue(e.querySelectorAll(`*`)));for(let e of i)Ee(e)&&(qe([e]),qe(e.querySelectorAll(`*`)))}else if(n===`attributes`&&r.startsWith(`data-`)&&Ee(t)&&!Ke(t)){let e=r.slice(5),n=t.getAttribute(r);if(n===null){let n=Re.get(t);if(n){let t=n.get(e);if(t){for(let e of t.values())e();n.delete(e)}}}else Ze(t,e,n)}}),Ye=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}},Xe=(e=document.documentElement,t=!0)=>{Ee(e)&&qe([e],!0),qe(e.querySelectorAll(`*`),!0),t&&(Je.observe(e,{subtree:!0,childList:!0,attributes:!0}),Ve.add(e))},Ze=(e,t,n,r)=>{{let i=t,{pluginName:a,key:o,mods:s}=Ye(i),c=Fe.get(a);if((!r||Be.has(a))&&c){let t={el:e,rawKey:i,mods:s,error:Ne.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(Pe.keys()),attributes:new Set(Fe.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||=Qe(n,{returnsValue:c.returnsValue,argNames:c.argNames,cleanups:d}),r(e,...t))}let f=c.apply(t);f&&d.set(`attribute`,f);let p=Re.get(e);if(p){let e=p.get(i);if(e)for(let t of e.values())t()}else p=new Map,Re.set(e,p);p.set(i,d)}}},Qe=(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
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=Ne.bind(0,{plugin:{type:`action`,name:t},element:{id:n.id,tag:n.tagName},expression:{fnContent:o,value:e}}),c=Le[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),Ne({element:{id:n.id,tag:n.tagName},expression:{fnContent:o,value:e},error:t.message},`ExecuteExpression`)}}}catch(t){throw console.error(t),Ne({expression:{fnContent:o,value:e},error:t.message},`GenerateExpression`)}};k({name:`peek`,apply(e,t){b();try{return t()}finally{x()}}}),k({name:`setAll`,apply(e,t,n){b();let r=we(n);l(r,()=>t),xe(r),x()}}),k({name:`toggleAll`,apply(e,t){b();let n=we(t);l(n,e=>!e),xe(n),x()}});var $e=(e,t,n=!0)=>k({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:k});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&&A(nt,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(`
|
|
@@ -172,7 +172,7 @@ ${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{
|
|
|
172
172
|
`:q}
|
|
173
173
|
</div>
|
|
174
174
|
</dialog>
|
|
175
|
-
`}};customElements.define(`jant-media-lightbox`,Fi);var Ii={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Li=e=>(...t)=>({_$litDirective$:e,values:t}),Ri=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)}},zi=class extends Ri{constructor(e){if(super(e),this.it=q,e.type!==Ii.CHILD)throw Error(this.constructor.directiveName+`() can only be used in child bindings`)}render(e){if(e===q||e==null)return this._t=void 0,this.it=e;if(e===K)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:[]}}};zi.directiveName=`unsafeHTML`,zi.resultType=1;var Bi=Li(zi),Vi=`jant.pendingToast`;function Hi(e){typeof e.showPopover==`function`&&(e.matches(`:popover-open`)&&document.querySelector(`dialog[open]`)&&e.hidePopover(),e.matches(`:popover-open`)||e.showPopover())}function
|
|
175
|
+
`}};customElements.define(`jant-media-lightbox`,Fi);var Ii={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Li=e=>(...t)=>({_$litDirective$:e,values:t}),Ri=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)}},zi=class extends Ri{constructor(e){if(super(e),this.it=q,e.type!==Ii.CHILD)throw Error(this.constructor.directiveName+`() can only be used in child bindings`)}render(e){if(e===q||e==null)return this._t=void 0,this.it=e;if(e===K)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:[]}}};zi.directiveName=`unsafeHTML`,zi.resultType=1;var Bi=Li(zi),Vi=`jant.pendingToast`;function Hi(){let e=[...document.querySelectorAll(`dialog[open]`)];try{let t=e.filter(e=>e.matches(`:modal`));if(t.length>0)return t}catch{}return e}function Ui(e){let t=Hi().at(-1)??document.body;e.parentElement!==t&&t.appendChild(e)}function Wi(e){Ui(e),typeof e.showPopover==`function`&&(e.matches(`:popover-open`)&&document.querySelector(`dialog[open]`)&&e.hidePopover(),e.matches(`:popover-open`)||e.showPopover())}function Gi(){let e=document.getElementById(`toast-container`);if(e)return e;if(!document.body)return null;let t=document.createElement(`div`);return t.id=`toast-container`,t.className=`toast-container`,t.setAttribute(`popover`,`manual`),t.setAttribute(`aria-live`,`polite`),t.setAttribute(`aria-relevant`,`additions text`),document.body.appendChild(t),t}function Ki(){try{return globalThis.sessionStorage!==void 0}catch{return!1}}function qi(){if(!Ki())return null;let e=globalThis.sessionStorage.getItem(Vi);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(Vi),null):{message:t.message,type:t.type,action:t.action}}catch{return globalThis.sessionStorage.removeItem(Vi),null}}var Ji={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>`},Yi=3e3,Xi=5e3,Zi=1e3;function Qi(e,t,n,r){e.innerHTML=Ji[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 $i(e,t){let n=t,r=0,i=null,a=!1,o=!1,s=()=>{i!==null&&(clearTimeout(i),i=null,n=Math.max(n-(Date.now()-r),Zi))},c=()=>{i===null&&(r=Date.now(),i=setTimeout(()=>{e.classList.add(`toast-out`),e.addEventListener(`animationend`,()=>e.remove())},n))},l=()=>{a||o?s():c()};e.addEventListener(`pointerenter`,()=>{a=!0,l()}),e.addEventListener(`pointerleave`,()=>{a=!1,l()}),e.addEventListener(`focusin`,()=>{o=!0,l()}),e.addEventListener(`focusout`,()=>{o=!1,l()}),c()}function Q(e,t=`success`){if(!e)return;let n=Gi();if(!n)return;Wi(n);let r=document.createElement(`div`);r.className=`toast toast-${t}`,Qi(r,t,e),n.appendChild(r),$i(r,Yi)}function ea(e,t,n=`success`){if(!e)return;let r=Gi();if(!r)return;Wi(r);let i=document.createElement(`div`);i.className=`toast toast-${n}`,Qi(i,n,e,t),r.appendChild(i),$i(i,Xi)}function ta(e,t,n=`success`){let r=Gi();if(!r)return null;Wi(r);let i=document.createElement(`div`);return i.className=`toast toast-${n}`,i.id=`toast-${e}`,Qi(i,n,t),r.appendChild(i),i}function na(e,t){let n=document.getElementById(`toast-${e}`);if(!n)return;let r=n.querySelector(`span`);r&&(r.textContent=t)}function ra(e,t,n=`success`){let r=document.getElementById(`toast-${e}`);if(!r){Q(t,n);return}r.className=`toast toast-${n}`,r.replaceChildren(),Qi(r,n,t),$i(r,Yi)}function ia(e,t=`success`,n){!e||!Ki()||globalThis.sessionStorage.setItem(Vi,JSON.stringify({message:e,type:t,action:n}))}function aa(){let e=qi();return!e||!Gi()?!1:(globalThis.sessionStorage.removeItem(Vi),e.action?ea(e.message,e.action,e.type):Q(e.message,e.type),!0)}function oa(){document.addEventListener(`close`,e=>{let t=e.target;if(!(t instanceof HTMLDialogElement))return;let n=document.getElementById(`toast-container`);!n||!t.contains(n)||Wi(n)},!0)}function sa(){let e=()=>{aa()};if(document.readyState===`loading`){document.addEventListener(`DOMContentLoaded`,e,{once:!0});return}e()}oa(),sa();var ca=class extends X{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,Q(`Copied.`),setTimeout(()=>{this._copied=!1},2e3)}catch{Q(`Could not copy.`,`error`)}}async#d(){if(this.#t)try{await globalThis.navigator.clipboard.writeText(this.#t),this._linkCopied=!0,Q(`Link copied.`),setTimeout(()=>{this._linkCopied=!1},2e3)}catch{Q(`Could not copy.`,`error`)}}#f=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),this.#l())};render(){return this._open?G`
|
|
176
176
|
<dialog
|
|
177
177
|
class="text-preview-dialog"
|
|
178
178
|
@cancel=${e=>{e.preventDefault(),this.#l()}}
|
|
@@ -293,4 +293,4 @@ ${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{
|
|
|
293
293
|
</div>`}
|
|
294
294
|
</div>
|
|
295
295
|
</dialog>
|
|
296
|
-
`:q}};customElements.define(`jant-text-preview`,aa);var oa=8;function sa(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function ca(e){return sa(getComputedStyle(e).getPropertyValue(`--site-thread-context-max-height`).trim(),240)}function la(e){if(e.dataset.threadContextToggleBound===`1`)return;e.dataset.threadContextToggleBound=`1`;let t=e.previousElementSibling;if(!(t instanceof HTMLElement)||t.dataset.threadContext===void 0)return;let n=e.querySelector(`.thread-context-toggle-label`),r=e.dataset.labelMore??`Show more`,i=e.dataset.labelLess??`Show less`,a=!1,o=t=>{e.setAttribute(`aria-expanded`,t?`true`:`false`),n&&(n.textContent=t?i:r)},s=()=>Array.from(t.querySelectorAll(`img`)).every(e=>e.complete),c=()=>{if(a)return;let n=ca(t),r=t.scrollHeight>n+oa;t.dataset.collapsed===void 0&&(t.dataset.collapsed=``),r?(e.hidden=!1,o(!1)):s()&&(e.hidden=!0)};if(c(),t.querySelectorAll(`img`).forEach(e=>{e.complete||(e.addEventListener(`load`,c,{once:!0}),e.addEventListener(`error`,c,{once:!0}))}),`ResizeObserver`in globalThis){let e=0;new globalThis.ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(c)}).observe(t)}let l=()=>{let e=!1,n=r=>{e||r&&r.propertyName!==`max-height`||(e=!0,t.removeEventListener(`transitionend`,n),t.dataset.collapsed===void 0&&(t.style.maxHeight=``))};t.addEventListener(`transitionend`,n),window.setTimeout(n,600)};e.addEventListener(`click`,()=>{a=!0,t.dataset.collapsed===void 0?(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,requestAnimationFrame(()=>{t.dataset.collapsed=``,t.style.maxHeight=``}),o(!1)):(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,delete t.dataset.collapsed,o(!0)),l()})}function ua(e=document){e.querySelectorAll(`[data-thread-context-toggle]`).forEach(la)}function da(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function fa(){return globalThis.location.hash===`#continue`}function pa(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=fa();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=da(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`DOMContentLoaded`,()=>{ua(document),pa(document)});function ma(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function ha(e,t){t&&(e.textContent=t)}function ga(e){let t=e.target;if(!(t instanceof globalThis.Element))return;let n=t.closest(`a[data-note-expand]`);if(!n||ma(e))return;let r=n.closest(`article[data-post]`),i=r?.querySelector(`[data-post-body]`);if(!(!r||!i||!i.querySelector(`[data-note-break]`))){if(e.preventDefault(),i.hasAttribute(`data-note-clamp`)){i.removeAttribute(`data-note-clamp`),n.setAttribute(`aria-expanded`,`true`),ha(n,n.dataset.labelLess);return}i.setAttribute(`data-note-clamp`,``),n.setAttribute(`aria-expanded`,`false`),ha(n,n.dataset.labelMore),r.getBoundingClientRect().top<0&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`start`})}}document.addEventListener(`click`,ga),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()))})});var _a=new WeakMap,va=new WeakMap;function ya(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`;let r=new AbortController,i=r.signal;_a.set(t,r);function a(){n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:t.parentElement}}))}function o(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`?o():a()},{signal:i}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(t.parentElement?.contains(e.target)||o())},{signal:i}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&n.getAttribute(`aria-hidden`)===`false`&&o(!0)},{signal:i}),document.addEventListener(`basecoat:popover`,e=>{e.detail?.source!==t.parentElement&&o()},{signal:i})}var ba=`jant:nav-fresh-visits`;function xa(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function Sa(e){try{let t=JSON.parse(localStorage.getItem(ba)||`{}`),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(xa(),t)}}}localStorage.setItem(ba,JSON.stringify(t))}catch{}}function Ca(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(Sa(e),ya(e),!t||!n||!r||t.dataset.drawerInitialized===`true`)return;t.dataset.drawerInitialized=`true`;let a=new AbortController,o=a.signal;va.set(t,a);function s(){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 c(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,signal:o}),e&&t.focus()}t.addEventListener(`click`,()=>{t.getAttribute(`aria-expanded`)===`true`?c():s()},{signal:o}),i?.addEventListener(`click`,()=>c(),{signal:o}),r.addEventListener(`click`,()=>c(),{signal:o}),n.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`a[href]`)&&c(!1)},{signal:o}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),c())},{signal:o})}function wa(e=document){for(let t of e.querySelectorAll(`.site-header-more-btn`))_a.get(t)?.abort(),_a.delete(t),delete t.dataset.moreInitialized;for(let t of e.querySelectorAll(`.site-header-hamburger`))va.get(t)?.abort(),va.delete(t),delete t.dataset.drawerInitialized;document.documentElement.classList.remove(`drawer-open`)}Ca();function Ta(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`})}Ta();var Ea=[`[data-post-view] [data-page="post"] [data-post-body].post-detail-body`,`[data-timeline-item] article[data-post] > [data-post-body].prose`].join(`, `),Da=`[data-post-view], [data-timeline-item]`,Oa=`--jant-footnote-rail-enabled`,ka=12,Aa=160,ja=.5,Ma=.5,$=new Map,Na=!1;function Pa(e,t){return Number.isFinite(e)?e:t}function Fa(e,t){let n=Math.max(0,Pa(t,ka)),r=[],i=0;for(let[t,a]of e.entries()){let e=Math.max(0,Pa(a.anchorTop,0)),o=Math.max(0,Pa(a.blockSize,0)),s=t===0?e:Math.max(e,i+n);r.push(s),i=s+o}return{offsets:r,blockSize:i}}function Ia(e){if(!e.startsWith(`#`)||e.length===1)return null;try{return decodeURIComponent(e.slice(1))}catch{return e.slice(1)}}function La(e,t){return(e.getAttribute(`role`)??``).split(/\s+/).includes(t)}function Ra(e){let t=Array.from(e.children).filter(e=>e instanceof HTMLElement&&e.classList.contains(`footnote-endnotes`)&&La(e,`doc-endnotes`));if(t.length!==1)return null;let n=t[0];if(!n)return null;let r=Array.from(n.children).filter(e=>e instanceof globalThis.HTMLOListElement&&e.classList.contains(`footnote-list`));if(r.length!==1)return null;let i=r[0];if(!i)return null;let a=Array.from(i.children).filter(e=>e instanceof globalThis.HTMLLIElement&&e.classList.contains(`footnote`));if(a.length===0||a.length!==i.children.length)return null;let o=new Map;for(let e of a){if(!e.id||o.has(e.id)||document.getElementById(e.id)!==e)return null;o.set(e.id,e)}let s=new Map;for(let t of e.querySelectorAll(`a[role~="doc-noteref"][href^="#"]`)){let e=Ia(t.getAttribute(`href`)??``);e&&o.has(e)&&!s.has(e)&&s.set(e,t)}let c=[];for(let e of a){let t=s.get(e.id);if(!t)return null;c.push({reference:t,note:e})}return{section:n,list:i,pairs:c}}function za(e){return Pa((Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize)?.inlineSize??e.contentRect.width,0)}function Ba(e){return`${Math.round(e*1e3)/1e3}px`}function Va(e){e.body.classList.remove(`footnote-rail-measuring`,`footnote-rail-ready`),e.body.style.removeProperty(`min-block-size`),e.list.style.removeProperty(`--footnote-rail-block-size`);for(let{note:t}of e.pairs)t.style.removeProperty(`--footnote-rail-y`),t.style.removeProperty(`--footnote-rail-number`)}function Ha(e){let t=e.list.start;for(let{note:n}of e.pairs)n.hasAttribute(`value`)&&(t=n.value),n.style.setProperty(`--footnote-rail-number`,`"${t}"`),t+=1}function Ua(e){let t=Number.parseFloat(getComputedStyle(e).rowGap);return Number.isFinite(t)?t:ka}function Wa(e,t){return Math.max(0,t-e)<=Math.max(Aa,e*ja)+Ma}function Ga(e){if(e.correctedInitialHash)return;e.correctedInitialHash=!0;let t=Ia(globalThis.location.hash);if(!t)return;let n=e.pairs.find(({note:e})=>e.id===t)?.note;n&&requestAnimationFrame(()=>{e.body.classList.contains(`footnote-rail-ready`)&&n.scrollIntoView({behavior:`auto`,block:`nearest`})})}function Ka(e){return!Na&&getComputedStyle(e).getPropertyValue(Oa).trim()===`1`}function qa(e){if(!e.body.isConnected){Ya(e);return}if(!Ka(e.body)){Va(e);return}Va(e),e.body.classList.add(`footnote-rail-measuring`),Ha(e);let t=e.body.getBoundingClientRect(),n=Math.max(0,t.height),r=e.pairs.map(({reference:e,note:n})=>({anchorTop:e.getBoundingClientRect().top-t.top,blockSize:n.getBoundingClientRect().height}));if(r.some(({blockSize:e})=>e<=Ma)){Va(e);return}let i=Fa(r,Ua(e.list));if(!Wa(n,i.blockSize)){Va(e);return}for(let[t,{note:n}]of e.pairs.entries())n.style.setProperty(`--footnote-rail-y`,Ba(i.offsets[t]??0));e.list.style.setProperty(`--footnote-rail-block-size`,Ba(i.blockSize)),e.body.style.setProperty(`min-block-size`,Ba(Math.max(n,i.blockSize))),e.body.classList.remove(`footnote-rail-measuring`),e.body.classList.add(`footnote-rail-ready`),Ga(e)}function Ja(e){e.rafId===0&&(e.rafId=requestAnimationFrame(()=>{e.rafId=0,qa(e)}))}function Ya(e){e.rafId!==0&&cancelAnimationFrame(e.rafId),e.observer.disconnect(),e.abortController.abort(),Va(e),$.delete(e.body)}function Xa(e,t){return e.section===t.section&&e.list===t.list&&e.pairs.length===t.pairs.length&&e.pairs.every((e,n)=>e.note===t.pairs[n]?.note&&e.reference===t.pairs[n]?.reference)}function Za(e,t){if(!(`ResizeObserver`in globalThis))return null;let n=e.closest(Da);if(!n)return null;let r=new AbortController,i=new globalThis.ResizeObserver(t=>{let r=$.get(e);if(!r)return;let i=!1;for(let e of t)if(e.target===n){let t=za(e);(r.containerInlineSize===null||Math.abs(r.containerInlineSize-t)>Ma)&&(r.containerInlineSize=t,i=!0)}else i=!0;i&&Ja(r)}),a={body:e,container:n,...t,observer:i,abortController:r,rafId:0,containerInlineSize:null,correctedInitialHash:!1};i.observe(n);for(let n of e.children)n!==t.section&&i.observe(n);for(let t of e.querySelectorAll(`img`))t.complete||(t.addEventListener(`load`,()=>Ja(a),{once:!0,signal:r.signal}),t.addEventListener(`error`,()=>Ja(a),{once:!0,signal:r.signal}));return $.set(e,a),Ja(a),a}function Qa(e){let t=[];return e instanceof globalThis.Element&&e.matches(Ea)&&t.push(e),t.push(...e.querySelectorAll(Ea)),t}function $a(e=document){for(let e of $.values())e.body.isConnected||Ya(e);for(let t of Qa(e)){let e=Ra(t),n=$.get(t);if(!e){n&&Ya(n);continue}if(n&&Xa(n,e)){Ja(n);continue}n&&Ya(n),Za(t,e)}}function eo(){for(let e of $.values())Ja(e)}globalThis.addEventListener(`beforeprint`,()=>{Na=!0;for(let e of $.values())Va(e)}),globalThis.addEventListener(`afterprint`,()=>{Na=!1,eo()}),document.fonts&&(document.fonts.ready.then(eo),document.fonts.addEventListener(`loadingdone`,eo)),document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,()=>$a(document),{once:!0}):$a(document),an(),document.documentElement.dataset.jantVersion=`0.6.15-9fc2292fcaa08e09`;export{hn as C,ir as S,X as _,na as a,G as b,Q as c,zi as d,Bi as f,Si as g,Ii as h,ua as i,Qi as l,Ri as m,wa as n,ta as o,Li as p,Ca as r,$i as s,$a as t,ea as u,q as v,nn as w,_i as x,K as y};
|
|
296
|
+
`:q}};customElements.define(`jant-text-preview`,ca);var la=8;function ua(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function da(e){return ua(getComputedStyle(e).getPropertyValue(`--site-thread-context-max-height`).trim(),240)}function fa(e){if(e.dataset.threadContextToggleBound===`1`)return;e.dataset.threadContextToggleBound=`1`;let t=e.previousElementSibling;if(!(t instanceof HTMLElement)||t.dataset.threadContext===void 0)return;let n=e.querySelector(`.thread-context-toggle-label`),r=e.dataset.labelMore??`Show more`,i=e.dataset.labelLess??`Show less`,a=!1,o=t=>{e.setAttribute(`aria-expanded`,t?`true`:`false`),n&&(n.textContent=t?i:r)},s=()=>Array.from(t.querySelectorAll(`img`)).every(e=>e.complete),c=()=>{if(a)return;let n=da(t),r=t.scrollHeight>n+la;t.dataset.collapsed===void 0&&(t.dataset.collapsed=``),r?(e.hidden=!1,o(!1)):s()&&(e.hidden=!0)};if(c(),t.querySelectorAll(`img`).forEach(e=>{e.complete||(e.addEventListener(`load`,c,{once:!0}),e.addEventListener(`error`,c,{once:!0}))}),`ResizeObserver`in globalThis){let e=0;new globalThis.ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(c)}).observe(t)}let l=()=>{let e=!1,n=r=>{e||r&&r.propertyName!==`max-height`||(e=!0,t.removeEventListener(`transitionend`,n),t.dataset.collapsed===void 0&&(t.style.maxHeight=``))};t.addEventListener(`transitionend`,n),window.setTimeout(n,600)};e.addEventListener(`click`,()=>{a=!0,t.dataset.collapsed===void 0?(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,requestAnimationFrame(()=>{t.dataset.collapsed=``,t.style.maxHeight=``}),o(!1)):(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,delete t.dataset.collapsed,o(!0)),l()})}function pa(e=document){e.querySelectorAll(`[data-thread-context-toggle]`).forEach(fa)}function ma(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function ha(){return globalThis.location.hash===`#continue`}function ga(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=ha();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=ma(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`DOMContentLoaded`,()=>{pa(document),ga(document)});function _a(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function va(e,t){t&&(e.textContent=t)}function ya(e){let t=e.target;if(!(t instanceof globalThis.Element))return;let n=t.closest(`a[data-note-expand]`);if(!n||_a(e))return;let r=n.closest(`article[data-post]`),i=r?.querySelector(`[data-post-body]`);if(!(!r||!i||!i.querySelector(`[data-note-break]`))){if(e.preventDefault(),i.hasAttribute(`data-note-clamp`)){i.removeAttribute(`data-note-clamp`),n.setAttribute(`aria-expanded`,`true`),va(n,n.dataset.labelLess);return}i.setAttribute(`data-note-clamp`,``),n.setAttribute(`aria-expanded`,`false`),va(n,n.dataset.labelMore),r.getBoundingClientRect().top<0&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`start`})}}document.addEventListener(`click`,ya),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()))})});var ba=new WeakMap,xa=new WeakMap;function Sa(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`;let r=new AbortController,i=r.signal;ba.set(t,r);function a(){n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:t.parentElement}}))}function o(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`?o():a()},{signal:i}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(t.parentElement?.contains(e.target)||o())},{signal:i}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&n.getAttribute(`aria-hidden`)===`false`&&o(!0)},{signal:i}),document.addEventListener(`basecoat:popover`,e=>{e.detail?.source!==t.parentElement&&o()},{signal:i})}var Ca=`jant:nav-fresh-visits`;function wa(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function Ta(e){try{let t=JSON.parse(localStorage.getItem(Ca)||`{}`),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(wa(),t)}}}localStorage.setItem(Ca,JSON.stringify(t))}catch{}}function Ea(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(Ta(e),Sa(e),!t||!n||!r||t.dataset.drawerInitialized===`true`)return;t.dataset.drawerInitialized=`true`;let a=new AbortController,o=a.signal;xa.set(t,a);function s(){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 c(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,signal:o}),e&&t.focus()}t.addEventListener(`click`,()=>{t.getAttribute(`aria-expanded`)===`true`?c():s()},{signal:o}),i?.addEventListener(`click`,()=>c(),{signal:o}),r.addEventListener(`click`,()=>c(),{signal:o}),n.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`a[href]`)&&c(!1)},{signal:o}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),c())},{signal:o})}function Da(e=document){for(let t of e.querySelectorAll(`.site-header-more-btn`))ba.get(t)?.abort(),ba.delete(t),delete t.dataset.moreInitialized;for(let t of e.querySelectorAll(`.site-header-hamburger`))xa.get(t)?.abort(),xa.delete(t),delete t.dataset.drawerInitialized;document.documentElement.classList.remove(`drawer-open`)}Ea();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();var ka=[`[data-post-view] [data-page="post"] [data-post-body].post-detail-body`,`[data-timeline-item] article[data-post] > [data-post-body].prose`].join(`, `),Aa=`[data-post-view], [data-timeline-item]`,ja=`--jant-footnote-rail-enabled`,Ma=12,Na=160,Pa=.5,Fa=.5,$=new Map,Ia=!1;function La(e,t){return Number.isFinite(e)?e:t}function Ra(e,t){let n=Math.max(0,La(t,Ma)),r=[],i=0;for(let[t,a]of e.entries()){let e=Math.max(0,La(a.anchorTop,0)),o=Math.max(0,La(a.blockSize,0)),s=t===0?e:Math.max(e,i+n);r.push(s),i=s+o}return{offsets:r,blockSize:i}}function za(e){if(!e.startsWith(`#`)||e.length===1)return null;try{return decodeURIComponent(e.slice(1))}catch{return e.slice(1)}}function Ba(e,t){return(e.getAttribute(`role`)??``).split(/\s+/).includes(t)}function Va(e){let t=Array.from(e.children).filter(e=>e instanceof HTMLElement&&e.classList.contains(`footnote-endnotes`)&&Ba(e,`doc-endnotes`));if(t.length!==1)return null;let n=t[0];if(!n)return null;let r=Array.from(n.children).filter(e=>e instanceof globalThis.HTMLOListElement&&e.classList.contains(`footnote-list`));if(r.length!==1)return null;let i=r[0];if(!i)return null;let a=Array.from(i.children).filter(e=>e instanceof globalThis.HTMLLIElement&&e.classList.contains(`footnote`));if(a.length===0||a.length!==i.children.length)return null;let o=new Map;for(let e of a){if(!e.id||o.has(e.id)||document.getElementById(e.id)!==e)return null;o.set(e.id,e)}let s=new Map;for(let t of e.querySelectorAll(`a[role~="doc-noteref"][href^="#"]`)){let e=za(t.getAttribute(`href`)??``);e&&o.has(e)&&!s.has(e)&&s.set(e,t)}let c=[];for(let e of a){let t=s.get(e.id);if(!t)return null;c.push({reference:t,note:e})}return{section:n,list:i,pairs:c}}function Ha(e){return La((Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize)?.inlineSize??e.contentRect.width,0)}function Ua(e){return`${Math.round(e*1e3)/1e3}px`}function Wa(e){e.body.classList.remove(`footnote-rail-measuring`,`footnote-rail-ready`),e.body.style.removeProperty(`min-block-size`),e.list.style.removeProperty(`--footnote-rail-block-size`);for(let{note:t}of e.pairs)t.style.removeProperty(`--footnote-rail-y`),t.style.removeProperty(`--footnote-rail-number`)}function Ga(e){let t=e.list.start;for(let{note:n}of e.pairs)n.hasAttribute(`value`)&&(t=n.value),n.style.setProperty(`--footnote-rail-number`,`"${t}"`),t+=1}function Ka(e){let t=Number.parseFloat(getComputedStyle(e).rowGap);return Number.isFinite(t)?t:Ma}function qa(e,t){return Math.max(0,t-e)<=Math.max(Na,e*Pa)+Fa}function Ja(e){if(e.correctedInitialHash)return;e.correctedInitialHash=!0;let t=za(globalThis.location.hash);if(!t)return;let n=e.pairs.find(({note:e})=>e.id===t)?.note;n&&requestAnimationFrame(()=>{e.body.classList.contains(`footnote-rail-ready`)&&n.scrollIntoView({behavior:`auto`,block:`nearest`})})}function Ya(e){return!Ia&&getComputedStyle(e).getPropertyValue(ja).trim()===`1`}function Xa(e){if(!e.body.isConnected){Qa(e);return}if(!Ya(e.body)){Wa(e);return}Wa(e),e.body.classList.add(`footnote-rail-measuring`),Ga(e);let t=e.body.getBoundingClientRect(),n=Math.max(0,t.height),r=e.pairs.map(({reference:e,note:n})=>({anchorTop:e.getBoundingClientRect().top-t.top,blockSize:n.getBoundingClientRect().height}));if(r.some(({blockSize:e})=>e<=Fa)){Wa(e);return}let i=Ra(r,Ka(e.list));if(!qa(n,i.blockSize)){Wa(e);return}for(let[t,{note:n}]of e.pairs.entries())n.style.setProperty(`--footnote-rail-y`,Ua(i.offsets[t]??0));e.list.style.setProperty(`--footnote-rail-block-size`,Ua(i.blockSize)),e.body.style.setProperty(`min-block-size`,Ua(Math.max(n,i.blockSize))),e.body.classList.remove(`footnote-rail-measuring`),e.body.classList.add(`footnote-rail-ready`),Ja(e)}function Za(e){e.rafId===0&&(e.rafId=requestAnimationFrame(()=>{e.rafId=0,Xa(e)}))}function Qa(e){e.rafId!==0&&cancelAnimationFrame(e.rafId),e.observer.disconnect(),e.abortController.abort(),Wa(e),$.delete(e.body)}function $a(e,t){return e.section===t.section&&e.list===t.list&&e.pairs.length===t.pairs.length&&e.pairs.every((e,n)=>e.note===t.pairs[n]?.note&&e.reference===t.pairs[n]?.reference)}function eo(e,t){if(!(`ResizeObserver`in globalThis))return null;let n=e.closest(Aa);if(!n)return null;let r=new AbortController,i=new globalThis.ResizeObserver(t=>{let r=$.get(e);if(!r)return;let i=!1;for(let e of t)if(e.target===n){let t=Ha(e);(r.containerInlineSize===null||Math.abs(r.containerInlineSize-t)>Fa)&&(r.containerInlineSize=t,i=!0)}else i=!0;i&&Za(r)}),a={body:e,container:n,...t,observer:i,abortController:r,rafId:0,containerInlineSize:null,correctedInitialHash:!1};i.observe(n);for(let n of e.children)n!==t.section&&i.observe(n);for(let t of e.querySelectorAll(`img`))t.complete||(t.addEventListener(`load`,()=>Za(a),{once:!0,signal:r.signal}),t.addEventListener(`error`,()=>Za(a),{once:!0,signal:r.signal}));return $.set(e,a),Za(a),a}function to(e){let t=[];return e instanceof globalThis.Element&&e.matches(ka)&&t.push(e),t.push(...e.querySelectorAll(ka)),t}function no(e=document){for(let e of $.values())e.body.isConnected||Qa(e);for(let t of to(e)){let e=Va(t),n=$.get(t);if(!e){n&&Qa(n);continue}if(n&&$a(n,e)){Za(n);continue}n&&Qa(n),eo(t,e)}}function ro(){for(let e of $.values())Za(e)}globalThis.addEventListener(`beforeprint`,()=>{Ia=!0;for(let e of $.values())Wa(e)}),globalThis.addEventListener(`afterprint`,()=>{Ia=!1,ro()}),document.fonts&&(document.fonts.ready.then(ro),document.fonts.addEventListener(`loadingdone`,ro)),document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,()=>no(document),{once:!0}):no(document),an(),document.documentElement.dataset.jantVersion=`0.6.16-31fe43de750ab168`;export{hn as C,ir as S,X as _,ia as a,G as b,Q as c,zi as d,Bi as f,Si as g,Ii as h,pa as i,ea as l,Ri as m,Da as n,ra as o,Li as p,Ea as r,ta as s,no as t,na as u,q as v,nn as w,_i as x,K as y};
|