datalog-theme 0.10.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +127 -0
  3. data/CITATION.cff +2 -2
  4. data/README.md +4 -2
  5. data/_data/i18n/en.yml +55 -3
  6. data/_data/i18n/es.yml +55 -3
  7. data/_data/i18n/pt.yml +55 -3
  8. data/_includes/analytics/dashboard.html +24 -9
  9. data/_includes/components/academic-dashboard.html +168 -133
  10. data/_includes/components/author-bio.html +7 -5
  11. data/_includes/components/author-list.html +6 -5
  12. data/_includes/components/citation-tools.html +2 -1
  13. data/_includes/components/content-provenance.html +19 -1
  14. data/_includes/components/correction-report.html +15 -8
  15. data/_includes/components/hero.html +22 -15
  16. data/_includes/components/package-index.html +121 -0
  17. data/_includes/components/package-install.html +27 -50
  18. data/_includes/components/post-list.html +14 -0
  19. data/_includes/components/responsive-image.html +15 -21
  20. data/_includes/footer.html +1 -1
  21. data/_includes/head.html +70 -11
  22. data/_includes/layouts/default/article.html +76 -46
  23. data/_includes/meta/dataset-json.html +171 -0
  24. data/_includes/meta/math-config.html +15 -1
  25. data/_includes/meta/package-json.html +69 -0
  26. data/_includes/meta/person-json.html +36 -13
  27. data/_includes/meta/publisher.html +15 -0
  28. data/_includes/meta/schema.html +108 -23
  29. data/_includes/meta/scholarly.html +10 -5
  30. data/_includes/post/related-posts.html +17 -43
  31. data/_includes/scripts.html +2 -2
  32. data/_includes/search/index-data.json +10 -1
  33. data/_includes/search/page.html +11 -6
  34. data/_layouts/archive.html +67 -0
  35. data/_layouts/dataset.html +2 -1
  36. data/_layouts/default.html +13 -11
  37. data/_layouts/docs.html +53 -0
  38. data/_layouts/home.html +30 -1
  39. data/_layouts/notebook.html +5 -1
  40. data/_layouts/package.html +38 -21
  41. data/_layouts/portfolio.html +1 -0
  42. data/_layouts/post.html +21 -62
  43. data/_layouts/project.html +2 -1
  44. data/_layouts/research.html +14 -2
  45. data/_plugins/analytics_dashboard.rb +4 -1
  46. data/_plugins/archive.rb +114 -0
  47. data/_plugins/authors.rb +50 -1
  48. data/_plugins/citation_exports.rb +12 -1
  49. data/_plugins/config_validator.rb +77 -2
  50. data/_plugins/correction_fallback.rb +110 -0
  51. data/_plugins/image_optimizer.rb +129 -22
  52. data/_plugins/math_preprocessor.rb +7 -48
  53. data/_plugins/notebook_converter.rb +44 -5
  54. data/_plugins/packages.rb +84 -0
  55. data/_plugins/page_dates.rb +37 -0
  56. data/_plugins/references.rb +16 -2
  57. data/_plugins/related_posts.rb +149 -0
  58. data/_plugins/search_sections.rb +110 -0
  59. data/_plugins/site_identity.rb +42 -0
  60. data/_plugins/social_cards.rb +17 -0
  61. data/_sass/_academic-dashboard.scss +18 -30
  62. data/_sass/_base.scss +2 -0
  63. data/_sass/_components.scss +21 -23
  64. data/_sass/_docs.scss +143 -0
  65. data/_sass/_features.scss +6 -0
  66. data/_sass/_layout.scss +65 -6
  67. data/_sass/_mathematical.scss +61 -19
  68. data/_sass/_notebooks.scss +1 -32
  69. data/_sass/_package-docs.scss +6 -9
  70. data/_sass/_post-components.scss +23 -23
  71. data/_sass/_print.scss +1 -1
  72. data/_sass/_search-page.scss +75 -0
  73. data/_sass/_search.scss +17 -26
  74. data/_sass/_syntax-highlighting.scss +23 -1
  75. data/_sass/_theme.scss +1 -0
  76. data/_sass/_utilities.scss +87 -40
  77. data/_sass/_variables.scss +31 -29
  78. data/assets/css/main.scss +2 -1
  79. data/assets/js/dist/academic.js +1 -1
  80. data/assets/js/dist/analytics-dashboard.js +1 -1
  81. data/assets/js/dist/chunks/chunk-TNVD6UAM.js +1 -0
  82. data/assets/js/dist/comments.js +1 -1
  83. data/assets/js/dist/contact.js +1 -1
  84. data/assets/js/dist/core.js +1 -1
  85. data/assets/js/dist/corrections.js +5 -1
  86. data/assets/js/dist/loader.js +1 -1
  87. data/assets/js/dist/math.js +2 -1
  88. data/assets/js/dist/moderation.js +1 -1
  89. data/assets/js/dist/reactions.js +1 -1
  90. data/assets/js/dist/search.js +1 -1
  91. data/assets/js/dist/sources.json +20 -16
  92. data/assets/js/dist/subscriptions.js +1 -1
  93. data/assets/js/loader.js +6 -2
  94. data/lib/datalog/audit/checks.rb +269 -0
  95. data/lib/datalog/audit/known_keys.rb +61 -0
  96. data/lib/datalog/audit/site_reader.rb +118 -0
  97. data/lib/datalog/audit/source_file.rb +85 -0
  98. data/lib/datalog/audit.rb +145 -0
  99. data/lib/datalog/citations/bibtex.rb +200 -0
  100. data/lib/datalog/citations/entry.rb +333 -0
  101. data/lib/datalog/citations/markup.rb +79 -0
  102. data/lib/datalog/cli.rb +164 -89
  103. data/lib/datalog/critical_css.rb +126 -21
  104. data/lib/datalog/latex_speech/words.json +88 -0
  105. data/lib/datalog/latex_speech.rb +355 -0
  106. data/lib/datalog/packages/command.rb +51 -0
  107. data/lib/datalog/packages/refresh.rb +187 -0
  108. data/lib/datalog/packages.rb +177 -0
  109. data/lib/datalog/plugin_system.rb +5 -0
  110. data/lib/datalog/plugins/citations.rb +325 -109
  111. data/lib/datalog/site_config.rb +26 -0
  112. data/lib/datalog/social_cards/font.rb +286 -0
  113. data/lib/datalog/social_cards/fonts/IBMPlexSans-Regular.ttf +0 -0
  114. data/lib/datalog/social_cards/fonts/IBMPlexSerif-SemiBold.ttf +0 -0
  115. data/lib/datalog/social_cards/fonts/OFL.txt +92 -0
  116. data/lib/datalog/social_cards/geometry.rb +51 -0
  117. data/lib/datalog/social_cards/outline.rb +54 -0
  118. data/lib/datalog/social_cards/plain_text.rb +258 -0
  119. data/lib/datalog/social_cards/template.rb +322 -0
  120. data/lib/datalog/social_cards/template.svg +17 -0
  121. data/lib/datalog/social_cards/typesetter.rb +178 -0
  122. data/lib/datalog/social_cards.rb +369 -0
  123. data/lib/datalog/theme/updater.rb +307 -0
  124. data/lib/datalog/theme/version.rb +1 -1
  125. metadata +44 -7
  126. data/_includes/components/enhanced-code-block.html +0 -212
  127. data/_includes/components/performance-monitor.html +0 -170
  128. data/_includes/components/viz-table-fallback.html +0 -19
  129. data/_plugins/datalog_bibliography.rb +0 -21
  130. data/assets/js/dist/chunks/chunk-WIRUK3OZ.js +0 -1
@@ -1,2 +1,2 @@
1
- import{a as P,c as x,d as V,e as W}from"./chunks/chunk-WIRUK3OZ.js";import{a as L,b as J,c as K}from"./chunks/chunk-VZ5WKQVA.js";import{a as F,b as I}from"./chunks/chunk-PATLC23F.js";var R="comments",ee=3,Y=/^https?:\/\//i,te=new Set(["disabled","unsupported","version"]);function ne(e,t){let n=e.querySelector(t);if(!n)return{};try{return JSON.parse(n.textContent)||{}}catch(a){return{}}}function re(e,t){return Object.keys(t).reduce((n,a)=>n.split(`{{${a}}}`).join(t[a]),e)}function ae(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return String(e||"");try{return n.toLocaleString(t||void 0,{dateStyle:"medium",timeStyle:"short"})}catch(a){return n.toISOString()}}function se(e,t=!0){let n=Array.isArray(e)?e.filter(i=>i&&typeof i=="object"):[],a=new Map;n.forEach(i=>a.set(String(i.id),{comment:i,replies:[]}));let f=[];a.forEach(i=>{let s=i.comment.parent_id,p=t&&s!==null&&s!==void 0?a.get(String(s)):null;p&&p!==i?p.replies.push(i):f.push(i)});let m=(i,s)=>(Date.parse(i.comment.created_at)||0)-(Date.parse(s.comment.created_at)||0),g=i=>(i.sort(m),i.forEach(s=>g(s.replies)),i);return g(f)}function z(e,t,n={}){let{labels:a={},lang:f,replies:m=!1,onReply:g}=n,i=t.status==="pending",s=e.createElement("li");s.className=i?"comment comment--pending":"comment",t.id!==null&&t.id!==void 0&&(s.id=`comment-${t.id}`);let p=e.createElement("article");p.className="comment__card";let _=e.createElement("header");_.className="comment__meta";let h=t.author&&typeof t.author=="object"?t.author:{},y=String(h.name||"").trim()||a.anonymous||"Anonymous",o;if(Y.test(String(h.url||""))?(o=e.createElement("a"),o.href=h.url,o.rel="nofollow noopener ugc"):o=e.createElement("span"),o.className="comment__author",o.textContent=y,_.appendChild(o),t.created_at){let c=e.createElement("time");c.className="comment__time",c.dateTime=String(t.created_at),c.textContent=ae(t.created_at,f),_.appendChild(c)}if(i){let c=e.createElement("span");c.className="comment__pending",c.textContent=a.pending||"Awaiting moderation",_.appendChild(c)}p.appendChild(_);let C=e.createElement("div");if(C.className="comment__body",String(t.body||"").split(/\n{2,}/).forEach(c=>{let b=e.createElement("p");c.split(`
1
+ import{a as P,d as x,e as V,f as W}from"./chunks/chunk-TNVD6UAM.js";import{a as L,b as J,c as K}from"./chunks/chunk-VZ5WKQVA.js";import{a as F,b as I}from"./chunks/chunk-PATLC23F.js";var R="comments",ee=3,Y=/^https?:\/\//i,te=new Set(["disabled","unsupported","version"]);function ne(e,t){let n=e.querySelector(t);if(!n)return{};try{return JSON.parse(n.textContent)||{}}catch(a){return{}}}function re(e,t){return Object.keys(t).reduce((n,a)=>n.split(`{{${a}}}`).join(t[a]),e)}function ae(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return String(e||"");try{return n.toLocaleString(t||void 0,{dateStyle:"medium",timeStyle:"short"})}catch(a){return n.toISOString()}}function se(e,t=!0){let n=Array.isArray(e)?e.filter(i=>i&&typeof i=="object"):[],a=new Map;n.forEach(i=>a.set(String(i.id),{comment:i,replies:[]}));let f=[];a.forEach(i=>{let s=i.comment.parent_id,p=t&&s!==null&&s!==void 0?a.get(String(s)):null;p&&p!==i?p.replies.push(i):f.push(i)});let m=(i,s)=>(Date.parse(i.comment.created_at)||0)-(Date.parse(s.comment.created_at)||0),g=i=>(i.sort(m),i.forEach(s=>g(s.replies)),i);return g(f)}function z(e,t,n={}){let{labels:a={},lang:f,replies:m=!1,onReply:g}=n,i=t.status==="pending",s=e.createElement("li");s.className=i?"comment comment--pending":"comment",t.id!==null&&t.id!==void 0&&(s.id=`comment-${t.id}`);let p=e.createElement("article");p.className="comment__card";let _=e.createElement("header");_.className="comment__meta";let h=t.author&&typeof t.author=="object"?t.author:{},y=String(h.name||"").trim()||a.anonymous||"Anonymous",o;if(Y.test(String(h.url||""))?(o=e.createElement("a"),o.href=h.url,o.rel="nofollow noopener ugc"):o=e.createElement("span"),o.className="comment__author",o.textContent=y,_.appendChild(o),t.created_at){let c=e.createElement("time");c.className="comment__time",c.dateTime=String(t.created_at),c.textContent=ae(t.created_at,f),_.appendChild(c)}if(i){let c=e.createElement("span");c.className="comment__pending",c.textContent=a.pending||"Awaiting moderation",_.appendChild(c)}p.appendChild(_);let C=e.createElement("div");if(C.className="comment__body",String(t.body||"").split(/\n{2,}/).forEach(c=>{let b=e.createElement("p");c.split(`
2
2
  `).forEach((N,E)=>{E>0&&b.appendChild(e.createElement("br")),b.appendChild(e.createTextNode(N))}),C.appendChild(b)}),p.appendChild(C),m&&g&&!i&&t.id!==null&&t.id!==void 0){let c=e.createElement("button");c.type="button",c.className="comment__reply post-tool",c.textContent=a.reply||"Reply",c.addEventListener("click",()=>g(t)),p.appendChild(c)}return s.appendChild(p),s}function G(e,t){let n=t.querySelector(":scope > .comments-thread__replies");return n||(n=e.createElement("ol"),n.className="comments-thread__replies",t.appendChild(n)),n}function H(e,t,n,a){n.forEach(f=>{let m=z(e,f.comment,a);f.replies.length>0&&H(e,G(e,m),f.replies,a),t.appendChild(m)})}function ie(e,t){let n={name:e.name||""};return e.email&&(n.email=e.email),e.url&&(n.url=e.url),{path:t,parent_id:e.parent_id||null,author:n,body:e.body||""}}function oe(e,t,n={}){let a={};return e.author.name||(a.name=n.name_required||"Say who you are."),e.author.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.author.email)&&(a.email=n.email_invalid||"That does not look like an email address."),e.author.url&&!Y.test(e.author.url)&&(a.url=n.url_invalid||"A website address starts with http:// or https://."),e.body.trim().length<ee&&(a.body=n.body_short||"Say a little more."),t.website&&(a.website="spam"),Object.keys(a).length>0?a:null}function le(e,t={}){let n=e.ownerDocument,a=t.window||n.defaultView,f=e.dataset.commentsEndpoint||"",m=t.client||(f?J(I(F({},a&&a.DatalogDynamicServices||{}),{base_url:f})):K()),g=e.dataset.commentsPath||"/",i=e.dataset.commentsReplies!=="false",s=ne(e,"[data-comments-labels]"),p=s.errors||{},_=n.documentElement.lang||void 0,h=e.querySelector("[data-comments-status]"),y=e.querySelector("[data-comments-list]"),o=e.querySelector("form"),C=P(o),c=o?o.elements.namedItem("parent_id"):null,b=e.querySelector("[data-comments-replying]"),N=e.querySelector("[data-comments-replying-to]"),E=null,D=!1,j=!1,O=new Map,v=(r,d="",u={})=>{if(e.dataset.state=r,!!h&&(h.textContent=d,h.hidden=d==="",h.setAttribute("role",u.alert?"alert":"status"),u.retry)){let l=n.createElement("button");l.type="button",l.className="post-tool",l.setAttribute("data-comments-retry",""),l.textContent=s.retry||"Try again",l.addEventListener("click",()=>A.load()),h.appendChild(n.createTextNode(" ")),h.appendChild(l)}},k=()=>(E||(E=m.feature(R).catch(r=>{throw E=null,r})),E),$=r=>{if(!c)return;if(c.value=String(r.id),N){let u=r.author&&r.author.name?r.author.name:s.anonymous||"Anonymous";N.textContent=re(s.replying_to||"Replying to {{name}}",{name:u})}b&&(b.hidden=!1);let d=o.elements.namedItem("body");d&&typeof d.focus=="function"&&d.focus()},T=()=>{c&&(c.value=""),b&&(b.hidden=!0)},M={labels:s,lang:_,replies:i,onReply:$},Z=(r,d)=>{let u=r.id?n.getElementById(r.id):null;if(u&&y.contains(u)){let S=u.querySelector(":scope > .comments-thread__replies");S&&r.appendChild(S),u.replaceWith(r);return}let l=i&&d!==null&&d!==void 0?y.querySelector(`#comment-${CSS.escape(String(d))}`):null;(l?G(n,l):y).appendChild(r),y.hidden=!1,e.dataset.state==="empty"&&v("loaded")},A={root:e,form:o,reply:$,cancelReply:T,async load(){if(D)return null;D=!0,v("loading",s.loading||"");try{await k();let r=await m.get(`${m.pathFor(R)}?path=${encodeURIComponent(g)}`),d=r&&r.data&&Array.isArray(r.data.comments)?[...r.data.comments]:[];d.forEach(l=>{(l==null?void 0:l.id)!=null&&O.delete(String(l.id))}),d.push(...O.values()),y.textContent="";let u=se(d,i);return H(n,y,u,M),y.hidden=u.length===0,v(u.length>0?"loaded":"empty",u.length>0?"":s.empty||""),j=!0,d}catch(r){return r&&te.has(r.kind)?(v("disabled",L(r,p)),o&&(o.hidden=!0)):v("error",L(r,p),{alert:!0,retry:!0}),null}finally{D=!1}},async submit(){let r=V(o),d=ie(r,g),u=oe(d,r,s);if(u)return u.website?(x(o,"success",s.posted_pending||""),null):(x(o,"invalid",p.invalid||"",u),null);x(o,"pending",s.sending||"");try{await k();let l=await m.post(m.pathFor(R),d,{idempotencyKey:C.key(d)}),S=l&&l.data&&typeof l.data=="object"?l.data:{},w=S.comment&&typeof S.comment=="object"?S.comment:null,B=S.status==="pending"||w!==null&&w.status==="pending";if(w){let q=B?I(F({},w),{status:"pending"}):w;q.id!=null&&O.set(String(q.id),q),Z(z(n,q,M),w.parent_id)}return C.clear(),o.reset(),T(),x(o,"success",B?s.posted_pending||"":s.posted||""),l}catch(l){return W(o,l,p),null}}};o&&(o.addEventListener("submit",r=>{r.preventDefault(),A.submit()}),e.querySelectorAll("[data-comments-cancel-reply]").forEach(r=>{r.addEventListener("click",T)}));let U=()=>{j||A.load()};if(t.immediate||!a||typeof a.IntersectionObserver!="function")U();else{let r=new a.IntersectionObserver(d=>{d.some(u=>u.isIntersecting)&&(r.disconnect(),U())},{rootMargin:"400px 0px"});r.observe(e)}return A}function Q(e=document){return Array.from(e.querySelectorAll("[data-comments-thread]")).map(t=>le(t))}function X(){Q(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",X,{once:!0}):X();
@@ -1 +1 @@
1
- import{a as g,b as v,c as a,d as S,e as j}from"./chunks/chunk-WIRUK3OZ.js";import{c as h}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var w="contact",x=20;function C(t,r){let n=t.querySelector(r);if(!n)return{};try{return JSON.parse(n.textContent)||{}}catch(e){return{}}}function _(t,r){let n={category:t.category||"other",name:t.name||"",email:t.email||"",subject:t.subject||"",message:t.message||"",source_url:r};return t.affiliation&&(n.affiliation=t.affiliation),n}function k(t,r,n={}){let e={};return t.name||(e.name=n.name_required||"Say who you are."),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.email)||(e.email=n.email_invalid||"That does not look like an email address."),t.subject||(e.subject=n.subject_required||"Give the message a subject."),t.message.length<x&&(e.message=(n.message_short||"Say a little more: at least {{min}} characters.").split("{{min}}").join(String(x))),r.website&&(e.website="spam"),Object.keys(e).length>0?e:null}function M(t,r={}){let n=r.client||h(),e=t.querySelector("form"),o=C(t,"[data-contact-labels]"),q=C(t,"[data-contact-prompts]"),s=o.errors||{},A=t.dataset.sourceUrl||"",c=e.elements.namedItem("category"),i=t.querySelector("[data-contact-hint]"),L=i?i.textContent:"",b=g(e),m=()=>{i&&(i.textContent=c&&q[c.value]||L)};if(c&&(c.addEventListener("change",m),m()),!n.enabled)return a(e,"disabled",s.disabled||""),{form:e,available:!1,submit:async()=>null};let p=v(n,w,e,s);e.addEventListener("focusin",()=>p().catch(()=>{}),{once:!0});let y={form:e,available:!0,async submit(){let u=S(e),d=_(u,A),f=k(d,u,o);if(f)return f.website?(a(e,"success",o.success||""),null):(a(e,"invalid",s.invalid||"",f),null);a(e,"pending",o.pending||"");try{await p()}catch(l){return null}try{let l=await n.post(n.pathFor(w),d,{idempotencyKey:b.key(d)});return b.clear(),e.reset(),m(),a(e,"success",o.success||""),l}catch(l){return j(e,l,s),null}}};return e.addEventListener("submit",u=>{u.preventDefault(),y.submit()}),y}function E(t=document){return Array.from(t.querySelectorAll("[data-contact-form]")).map(r=>M(r))}function F(){E(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",F,{once:!0}):F();
1
+ import{a as g,b as v,c as S,d as a,e as w,f as j}from"./chunks/chunk-TNVD6UAM.js";import{c as h}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var x="contact",C=20;function F(t,r){let n=t.querySelector(r);if(!n)return{};try{return JSON.parse(n.textContent)||{}}catch(e){return{}}}function L(t,r){let n={category:t.category||"other",name:t.name||"",email:t.email||"",subject:t.subject||"",message:t.message||"",source_url:r};return t.affiliation&&(n.affiliation=t.affiliation),n}function M(t,r,n={}){let e={};return t.name||(e.name=n.name_required||"Say who you are."),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.email)||(e.email=n.email_invalid||"That does not look like an email address."),t.subject||(e.subject=n.subject_required||"Give the message a subject."),t.message.length<C&&(e.message=(n.message_short||"Say a little more: at least {{min}} characters.").split("{{min}}").join(String(C))),r.website&&(e.website="spam"),Object.keys(e).length>0?e:null}function I(t,r={}){let n=r.client||h(),e=t.querySelector("form"),o=F(t,"[data-contact-labels]"),A=F(t,"[data-contact-prompts]"),s=o.errors||{},_=t.dataset.sourceUrl||"",c=e.elements.namedItem("category"),i=t.querySelector("[data-contact-hint]"),k=i?i.textContent:"",b=g(e),m=()=>{i&&(i.textContent=c&&A[c.value]||k)};if(c&&(c.addEventListener("change",m),m()),!n.enabled)return a(e,"disabled",s.disabled||""),{form:e,available:!1,submit:async()=>null};let p=v(n,x,e,s);S(e,()=>p().catch(()=>{}));let y={form:e,available:!0,async submit(){let u=w(e),d=L(u,_),f=M(d,u,o);if(f)return f.website?(a(e,"success",o.success||""),null):(a(e,"invalid",s.invalid||"",f),null);a(e,"pending",o.pending||"");try{await p()}catch(l){return null}try{let l=await n.post(n.pathFor(x),d,{idempotencyKey:b.key(d)});return b.clear(),e.reset(),m(),a(e,"success",o.success||""),l}catch(l){return j(e,l,s),null}}};return e.addEventListener("submit",u=>{u.preventDefault(),y.submit()}),y}function E(t=document){return Array.from(t.querySelectorAll("[data-contact-form]")).map(r=>I(r))}function q(){E(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",q,{once:!0}):q();
@@ -1 +1 @@
1
- import{a as T}from"./chunks/chunk-PATLC23F.js";var j="[data-copy-citation], [data-copy-bibliography], [data-copy-target]";var v=!1;function J(t){let e=t.getAttribute("data-target"),n=e?document.getElementById(e):null;return n?"value"in n?n.value:n.textContent||"":""}function X(t){let e=document.createElement("textarea");e.value=t,e.setAttribute("aria-hidden","true"),e.setAttribute("readonly","readonly"),e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let n=!1;try{n=document.execCommand("copy")}catch(r){n=!1}return e.remove(),n}async function Q(t){if(navigator.clipboard&&navigator.clipboard.writeText)try{return await navigator.clipboard.writeText(t),!0}catch(e){}return X(t)}async function Z(t){let e=J(t);if(!e)return;t.dataset.originalText===void 0&&(t.dataset.originalText=t.textContent);let n=await Q(e);t.dataset.copied=n?"true":"error",t.textContent=n?t.dataset.copiedLabel||"Copied!":t.dataset.errorLabel||"Error",n&&setTimeout(()=>{t.dataset.copied="false",t.textContent=t.dataset.originalText},2e3)}function w(){v||(v=!0,document.addEventListener("click",t=>{let e=t.target instanceof Element?t.target.closest(j):null;e&&Z(e)}))}var x="datalog-color-mode",f="dark-mode";function k(){try{return localStorage.getItem(x)}catch(t){return null}}function W(t){try{localStorage.setItem(x,t)}catch(e){}}function tt(t){let e=k();return e==="dark"?!0:e==="light"?!1:t.matches}function I(){let t=document.querySelector("[data-toggle-dark-mode]"),e=document.body,n=window.matchMedia("(prefers-color-scheme: dark)");tt(n)&&e.classList.add(f);let r=()=>{let a=e.classList.contains(f)?"dark":"light";e.dataset.theme=a,document.documentElement.dataset.theme=a},o=()=>{r(),t&&t.setAttribute("aria-pressed",e.classList.contains(f))};o(),t&&t.addEventListener("click",()=>{let a=e.classList.toggle(f);t.setAttribute("aria-pressed",String(a)),W(a?"dark":"light"),r()}),n.addEventListener("change",a=>{k()||(a.matches?e.classList.add(f):e.classList.remove(f),o())})}var et="datalog-github-";var _=Symbol("recently-failed");function E(t,e){return`${et}${t}-${e}`}function nt(t,e,n){try{let r=localStorage.getItem(E(t,e));if(!r)return null;let o=JSON.parse(r);if(!o||typeof o!="object")return null;let a=o.failed?6e5:n;return Date.now()-o.timestamp>a?(localStorage.removeItem(E(t,e)),null):o.failed?_:o.data}catch(r){return null}}function C(t,e,n){try{localStorage.setItem(E(t,e),JSON.stringify(T({timestamp:Date.now()},n)))}catch(r){}}async function rt(t,e,n,r){let o=nt(t,e,r);if(o===_)return null;if(o)return o;try{let a=await fetch(`${n}/${t}/${e}`);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let s=await a.json();return C(t,e,{data:s}),s}catch(a){return C(t,e,{failed:!0}),null}}function ot(t,e){t.querySelectorAll("[data-github-stat]").forEach(r=>{let o=r.getAttribute("data-github-stat");if(!o)return;let a=e[o];typeof a=="number"?r.textContent=a.toLocaleString():typeof a=="string"&&a.length>0&&(r.textContent=a)})}function at(t){t.dataset.githubState="error";let e=t.getAttribute("data-github-unavailable");e&&t.querySelectorAll("[data-github-stat]").forEach(n=>{n.textContent=e})}function N(){let t=document.querySelectorAll("[data-github-owner][data-github-repo]");if(!t.length)return Promise.resolve();let n=(window.DatalogIntegrations||{}).github||{};if(n.enabled===!1)return Promise.resolve();let r=n.api_base||"https://api.github.com/repos",o=Number(n.cache_ttl||43200)*1e3,a=Array.from(t).map(s=>{let u=s.getAttribute("data-github-owner"),d=s.getAttribute("data-github-repo");return!u||!d?Promise.resolve():(s.dataset.githubState="loading",rt(u,d,r,o).then(i=>{if(!i){at(s);return}ot(s,i),s.dataset.githubState="ready"}))});return Promise.all(a)}var it={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function h(t,e,n,r=!1){t.forEach(o=>{let a=o===n;o.setAttribute("aria-selected",a?"true":"false"),o.tabIndex=a?0:-1,o.classList.toggle("package-install__tab-btn--active",a)}),e.forEach(o=>{o.hidden=o.dataset.tabContent!==n.dataset.tab}),r&&n.focus()}function st(t){let e=Array.from(t.querySelectorAll("[data-tab]")),n=Array.from(t.querySelectorAll("[data-tab-content]"));if(e.length===0)return null;let r=e.find(o=>o.getAttribute("aria-selected")==="true")||e[0];return h(e,n,r),e.forEach(o=>{o.addEventListener("click",()=>h(e,n,o)),o.addEventListener("keydown",a=>{if(a.key==="Home"||a.key==="End"){a.preventDefault(),h(e,n,a.key==="Home"?e[0]:e[e.length-1],!0);return}let s=it[a.key];if(!s)return;a.preventDefault();let u=(e.indexOf(o)+s+e.length)%e.length;h(e,n,e[u],!0)})}),{container:t,tabs:e,panels:n}}function D(t=document){return Array.from(t.querySelectorAll("[data-install-tabs]")).map(e=>st(e)).filter(Boolean)}var ct="[data-language-filter], [data-navigate-on-change]";function lt(t){if(typeof t!="string")return null;let e=Array.from(t).filter(r=>{let o=r.codePointAt(0);return o>31&&o!==127}).join("").trim();if(!e)return null;let n=/^[a-z][a-z0-9+.-]*:/i.exec(e);return n&&!/^https?:$/i.test(n[0])?null:e}function R(){let t=document.querySelectorAll(ct);t.length!==0&&t.forEach(e=>{e.addEventListener("change",n=>{let r=lt(n.target&&n.target.value);r&&(window.location.href=r)})})}var ut="(min-width: 48rem)",P="#site-nav",q=".nav-toggle",A="nav-open";function G(t){return t.replace(/index\.html$/,"").replace(/\/$/,"")}function dt(t){let e=t.getAttribute("href");if(!e)return null;try{let n=new URL(e,window.location.origin);if(!n.hash)return null;let r=new URL(window.location.href);return G(n.pathname)!==G(r.pathname)?null:n.hash.replace("#","")}catch(n){return null}}function ft(t){if(!t)return!1;let e=document.getElementById(t);return e?(e.scrollIntoView({block:"start"}),!0):!1}function H(){let t=document.querySelector(P);if(!t)return;let e=document.querySelector(q),n=document.body,r=window.matchMedia(ut),o=i=>{if(i){t.dataset.open="true",n.classList.remove(A),e&&(e.setAttribute("aria-expanded","false"),e.classList.remove("is-active"));return}let l=t.dataset.open==="true";l||(t.dataset.open="false"),e&&(e.setAttribute("aria-expanded",String(l)),e.classList.toggle("is-active",l))},a=({focusToggle:i=!1}={})=>{r.matches||(t.dataset.open="false",n.classList.remove(A),e&&(e.setAttribute("aria-expanded","false"),e.classList.remove("is-active"),i&&e.focus()))},s=()=>{r.matches||(t.dataset.open="true",n.classList.add(A),e&&(e.setAttribute("aria-expanded","true"),e.classList.add("is-active")))},u=()=>{r.matches||(t.dataset.open==="true"?a():s())};r.matches||(t.dataset.open="false"),o(r.matches),r.addEventListener("change",i=>{i.matches?o(!0):(a(),t.dataset.open="false",o(!1))}),t.querySelectorAll(".nav-link").forEach(i=>{let l=dt(i);i.addEventListener("click",p=>{r.matches||a(),l&&ft(l)&&p.preventDefault()})}),e&&e.addEventListener("click",()=>{u()}),document.addEventListener("keydown",i=>{i.key==="Escape"&&t.dataset.open==="true"&&a({focusToggle:!0})}),document.addEventListener("click",i=>{if(r.matches||t.dataset.open!=="true")return;let l=i.target;!l||typeof l.closest!="function"||l.closest(P)||e&&l.closest(q)||a()})}function pt(t,e){let n=window.pageYOffset||document.documentElement.scrollTop,r=document.documentElement.scrollHeight-window.innerHeight,o=r>0?Math.min(n/r*100,100):0;t.tagName==="PROGRESS"?t.setAttribute("value",String(o)):t.style.setProperty("--progress",`${o}%`),e&&(e.textContent=Math.round(o))}function K(){let t=document.querySelector("[data-scroll-progress]");if(!t)return;let e=document.querySelector("[data-scroll-progress-value]"),n=()=>pt(t,e);n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n)}function B(t){if(!t)return;let e=t.querySelector("input[type='search']"),n=t.getAttribute("action");e?(e.focus(),e.select()):n&&(window.location.href=n)}function mt(t){if(!t)return!1;if(t.isContentEditable)return!0;let e=t.tagName;return e==="INPUT"||e==="TEXTAREA"||e==="SELECT"}function M(){let t=document.querySelector(".site-search");t&&document.addEventListener("keydown",e=>{mt(document.activeElement)||(e.key==="/"&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),B(t)),(e.key==="k"||e.key==="K")&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),B(t)))})}function gt(t){if(!t)return;t.getAttribute("tabindex")===null&&(t.setAttribute("tabindex","-1"),t.dataset.skipLinkTempTabindex="true"),t.addEventListener("blur",()=>{t.dataset.skipLinkTempTabindex&&(t.removeAttribute("tabindex"),delete t.dataset.skipLinkTempTabindex)},{once:!0}),t.focus()}function F(){let t=document.querySelectorAll(".skip-link[href^='#']");t.length&&t.forEach(e=>{e.addEventListener("click",n=>{let o=(e.getAttribute("href")||"").slice(1);if(!o)return;let a=document.getElementById(o);a&&(n.preventDefault(),gt(a))})})}var ht="is-active",yt=".post-content h2[id], .post-content h3[id], .post-content h4[id]";function Et(t,e=100){let n=null;return t.forEach(r=>{r.getBoundingClientRect().top<=e&&(n=r)}),n}function At(t,e,n){let r=n-e;return r<=0?0:Math.min(100,Math.max(0,Math.floor(t/r*100)))}function bt(t,e={}){let n=t.ownerDocument,r=e.window||n.defaultView,o=Array.from(t.querySelectorAll(".enhanced-toc__content a")),a=t.querySelector("[data-toc-toggle]"),s=t.querySelector(".enhanced-toc__content"),u=t.querySelector("[data-toc-progress]"),d=t.querySelector("[data-progress-percent]"),i=Array.from(n.querySelectorAll(yt)),l=t.parentElement||t,p=null;a&&s&&a.addEventListener("click",()=>{let c=a.getAttribute("aria-expanded")==="true";a.setAttribute("aria-expanded",c?"false":"true"),s.hidden=c,t.classList.toggle("is-collapsed",c)});let Y=()=>{if(i.length===0)return 100;let c=parseFloat(r.getComputedStyle(i[0]).scrollMarginTop);return(Number.isFinite(c)?c:100)+8},z=()=>{let c=Et(i,Y()),L=c?`#${c.id}`:null;o.forEach(g=>{let S=L!==null&&g.getAttribute("href")===L;g.classList.toggle(ht,S),S?g.setAttribute("aria-current","location"):g.removeAttribute("aria-current")})},U=()=>{let c=At(r.scrollY,r.innerHeight,n.documentElement.scrollHeight);c!==p&&(p=c,u&&(u.style.width=`${c}%`),d&&(d.textContent=String(c)))},V=()=>{let c=l.getBoundingClientRect().top+r.scrollY;t.classList.toggle("is-sticky",r.scrollY>c-20)},y=()=>{z(),U(),V()},m=null,b=()=>{m!==null&&r.cancelAnimationFrame(m),m=r.requestAnimationFrame(()=>{m=null,y()})};return i.length>0&&(r.addEventListener("scroll",b,{passive:!0}),r.addEventListener("resize",b,{passive:!0}),y()),{toc:t,update:y,headings:i,links:o}}function O(t=document){return Array.from(t.querySelectorAll("[data-toc-enhanced]")).map(e=>bt(e))}var Lt=[F,H,I,R,K,M,N,w,O,D];function $(t=Lt){t.forEach(e=>{try{e()}catch(n){}})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>$()):$();export{$ as initializeCore};
1
+ import{a as v}from"./chunks/chunk-PATLC23F.js";var X="[data-copy-citation], [data-copy-bibliography], [data-copy-target]";var I=!1;function Q(t){let e=t.getAttribute("data-target"),n=e?document.getElementById(e):null;return n?"value"in n?n.value:n.textContent||"":""}function Z(t){let e=document.createElement("textarea");e.value=t,e.setAttribute("aria-hidden","true"),e.setAttribute("readonly","readonly"),e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let n=!1;try{n=document.execCommand("copy")}catch(r){n=!1}return e.remove(),n}async function W(t){if(navigator.clipboard&&navigator.clipboard.writeText)try{return await navigator.clipboard.writeText(t),!0}catch(e){}return Z(t)}async function tt(t){let e=Q(t);if(!e)return;t.dataset.originalText===void 0&&(t.dataset.originalText=t.textContent);let n=await W(e);t.dataset.copied=n?"true":"error",t.textContent=n?t.dataset.copiedLabel||"Copied!":t.dataset.errorLabel||"Error",n&&setTimeout(()=>{t.dataset.copied="false",t.textContent=t.dataset.originalText},2e3)}function _(){I||(I=!0,document.addEventListener("click",t=>{let e=t.target instanceof Element?t.target.closest(X):null;e&&tt(e)}))}function N(t=document){t.querySelectorAll(".post-content pre > code, .docs-content pre > code").forEach(n=>{var g,h,y;let r=n.parentElement;if(!r||(g=r.parentElement)!=null&&g.classList.contains("code-block-wrapper"))return;let o=t.createElement("div");o.className="code-block-wrapper",r.parentNode.insertBefore(o,r),o.appendChild(r);let a=t.createElement("div");a.className="code-block-meta";let c=n.matches('[class*="language-"]')?n:n.closest(".highlighter-rouge"),d=c&&c.getAttribute("class"),l=n.querySelector(".rouge-code")||n,s=d&&d.match(/language-([a-z0-9+#]+)/i);if(s){let m=t.createElement("span");m.className="code-language",m.textContent=s[1].toUpperCase(),a.appendChild(m)}let i=t.createElement("button");i.type="button",i.className="code-copy",i.setAttribute("aria-label","Copy code to clipboard"),i.textContent="Copy";let f=(y=(h=t.defaultView)==null?void 0:h.navigator)==null?void 0:y.clipboard;f&&f.writeText?i.addEventListener("click",()=>{f.writeText(l.textContent).then(()=>{i.textContent="Copied!",i.classList.add("is-copied"),setTimeout(()=>{i.textContent="Copy",i.classList.remove("is-copied")},2e3)}).catch(()=>{i.textContent="Error"})}):(i.disabled=!0,i.title="Clipboard copying is not supported in this browser"),a.appendChild(i),o.insertBefore(a,r)})}var D="datalog-color-mode",p="dark-mode",et="(prefers-color-scheme: dark)",nt="picture > source[data-dark-source]";function S(t,e=document){let n=et;t==="dark"?n="all":t==="light"&&(n="not all"),e.querySelectorAll(nt).forEach(r=>{r.getAttribute("media")!==n&&r.setAttribute("media",n)})}function R(){try{return localStorage.getItem(D)}catch(t){return null}}function rt(t){try{localStorage.setItem(D,t)}catch(e){}}function ot(t,e){let n=R();return n==="dark"?!0:n==="light"?!1:e==="dark"||e==="system"&&t.matches}function P(){let t=document.querySelector("[data-toggle-dark-mode]"),e=document.body,n=window.matchMedia("(prefers-color-scheme: dark)"),r=e.dataset.defaultTheme,o=["dark","light","system"].includes(r)?r:"dark",a=ot(n,o);e.classList.toggle(p,a),S(a?"dark":"light");let c=()=>{let l=e.classList.contains(p)?"dark":"light";e.dataset.theme=l,document.documentElement.dataset.theme=l},d=()=>{c(),t&&t.setAttribute("aria-pressed",e.classList.contains(p))};d(),t&&t.addEventListener("click",()=>{let l=e.classList.toggle(p);t.setAttribute("aria-pressed",String(l)),rt(l?"dark":"light"),c(),S(l?"dark":"light")}),n.addEventListener("change",l=>{R()||o!=="system"||(l.matches?e.classList.add(p):e.classList.remove(p),S(l.matches?"dark":"light"),d())})}var at="datalog-github-";var G=Symbol("recently-failed");function C(t,e){return`${at}${t}-${e}`}function it(t,e,n){try{let r=localStorage.getItem(C(t,e));if(!r)return null;let o=JSON.parse(r);if(!o||typeof o!="object")return null;let a=o.failed?6e5:n;return Date.now()-o.timestamp>a?(localStorage.removeItem(C(t,e)),null):o.failed?G:o.data}catch(r){return null}}function q(t,e,n){try{localStorage.setItem(C(t,e),JSON.stringify(v({timestamp:Date.now()},n)))}catch(r){}}async function st(t,e,n,r){let o=it(t,e,r);if(o===G)return null;if(o)return o;try{let a=await fetch(`${n}/${t}/${e}`);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let c=await a.json();return q(t,e,{data:c}),c}catch(a){return q(t,e,{failed:!0}),null}}function ct(t,e){t.querySelectorAll("[data-github-stat]").forEach(r=>{let o=r.getAttribute("data-github-stat");if(!o)return;let a=e[o];typeof a=="number"?r.textContent=a.toLocaleString():typeof a=="string"&&a.length>0&&(r.textContent=a)})}function lt(t){t.dataset.githubState="error";let e=t.getAttribute("data-github-unavailable");e&&t.querySelectorAll("[data-github-stat]").forEach(n=>{n.textContent=e})}function H(){let t=document.querySelectorAll("[data-github-owner][data-github-repo]");if(!t.length)return Promise.resolve();let n=(window.DatalogIntegrations||{}).github||{};if(n.enabled===!1)return Promise.resolve();let r=n.api_base||"https://api.github.com/repos",o=Number(n.cache_ttl||43200)*1e3,a=Array.from(t).map(c=>{let d=c.getAttribute("data-github-owner"),l=c.getAttribute("data-github-repo");return!d||!l?Promise.resolve():(c.dataset.githubState="loading",st(d,l,r,o).then(s=>{if(!s){lt(c);return}ct(c,s),c.dataset.githubState="ready"}))});return Promise.all(a)}var ut={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function A(t,e,n,r=!1){t.forEach(o=>{let a=o===n;o.setAttribute("aria-selected",a?"true":"false"),o.tabIndex=a?0:-1,o.classList.toggle("package-install__tab-btn--active",a)}),e.forEach(o=>{o.hidden=o.dataset.tabContent!==n.dataset.tab}),r&&n.focus()}function dt(t){let e=Array.from(t.querySelectorAll("[data-tab]")),n=Array.from(t.querySelectorAll("[data-tab-content]"));if(e.length===0)return null;let r=e.find(o=>o.getAttribute("aria-selected")==="true")||e[0];return A(e,n,r),e.forEach(o=>{o.addEventListener("click",()=>A(e,n,o)),o.addEventListener("keydown",a=>{if(a.key==="Home"||a.key==="End"){a.preventDefault(),A(e,n,a.key==="Home"?e[0]:e[e.length-1],!0);return}let c=ut[a.key];if(!c)return;a.preventDefault();let d=(e.indexOf(o)+c+e.length)%e.length;A(e,n,e[d],!0)})}),{container:t,tabs:e,panels:n}}function K(t=document){return Array.from(t.querySelectorAll("[data-install-tabs]")).map(e=>dt(e)).filter(Boolean)}var ft="[data-language-filter], [data-navigate-on-change]";function pt(t){if(typeof t!="string")return null;let e=Array.from(t).filter(r=>{let o=r.codePointAt(0);return o>31&&o!==127}).join("").trim();if(!e)return null;let n=/^[a-z][a-z0-9+.-]*:/i.exec(e);return n&&!/^https?:$/i.test(n[0])?null:e}function B(){let t=document.querySelectorAll(ft);t.length!==0&&t.forEach(e=>{e.addEventListener("change",n=>{let r=pt(n.target&&n.target.value);r&&(window.location.href=r)})})}var mt="(min-width: 48rem)",M="#site-nav",F=".nav-toggle",w="nav-open";function O(t){return t.replace(/index\.html$/,"").replace(/\/$/,"")}function gt(t){let e=t.getAttribute("href");if(!e)return null;try{let n=new URL(e,window.location.origin);if(!n.hash)return null;let r=new URL(window.location.href);return O(n.pathname)!==O(r.pathname)?null:n.hash.replace("#","")}catch(n){return null}}function ht(t){if(!t)return!1;let e=document.getElementById(t);return e?(e.scrollIntoView({block:"start"}),!0):!1}function $(){let t=document.querySelector(M);if(!t)return;let e=document.querySelector(F),n=document.body,r=window.matchMedia(mt),o=s=>{if(s){t.dataset.open="true",n.classList.remove(w),e&&(e.setAttribute("aria-expanded","false"),e.classList.remove("is-active"));return}let i=t.dataset.open==="true";i||(t.dataset.open="false"),e&&(e.setAttribute("aria-expanded",String(i)),e.classList.toggle("is-active",i))},a=({focusToggle:s=!1}={})=>{r.matches||(t.dataset.open="false",n.classList.remove(w),e&&(e.setAttribute("aria-expanded","false"),e.classList.remove("is-active"),s&&e.focus()))},c=()=>{r.matches||(t.dataset.open="true",n.classList.add(w),e&&(e.setAttribute("aria-expanded","true"),e.classList.add("is-active")))},d=()=>{r.matches||(t.dataset.open==="true"?a():c())};r.matches||(t.dataset.open="false"),o(r.matches),r.addEventListener("change",s=>{s.matches?o(!0):(a(),t.dataset.open="false",o(!1))}),t.querySelectorAll(".nav-link").forEach(s=>{let i=gt(s);s.addEventListener("click",f=>{r.matches||a(),i&&ht(i)&&f.preventDefault()})}),e&&e.addEventListener("click",()=>{d()}),document.addEventListener("keydown",s=>{s.key==="Escape"&&t.dataset.open==="true"&&a({focusToggle:!0})}),document.addEventListener("click",s=>{if(r.matches||t.dataset.open!=="true")return;let i=s.target;!i||typeof i.closest!="function"||i.closest(M)||e&&i.closest(F)||a()})}function yt(t,e){let n=window.pageYOffset||document.documentElement.scrollTop,r=document.documentElement.scrollHeight-window.innerHeight,o=r>0?Math.min(n/r*100,100):0;t.tagName==="PROGRESS"?t.setAttribute("value",String(o)):t.style.setProperty("--progress",`${o}%`),e&&(e.textContent=Math.round(o))}function U(){let t=document.querySelector("[data-scroll-progress]");if(!t)return;let e=document.querySelector("[data-scroll-progress-value]"),n=()=>yt(t,e);n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n)}function z(t){if(!t)return;let e=t.querySelector("input[type='search']"),n=t.getAttribute("action");e?(e.focus(),e.select()):n&&(window.location.href=n)}function bt(t){if(!t)return!1;if(t.isContentEditable)return!0;let e=t.tagName;return e==="INPUT"||e==="TEXTAREA"||e==="SELECT"}function Y(){let t=document.querySelector(".site-search");t&&document.addEventListener("keydown",e=>{bt(document.activeElement)||(e.key==="/"&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),z(t)),(e.key==="k"||e.key==="K")&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),z(t)))})}function Et(t){if(!t)return;t.getAttribute("tabindex")===null&&(t.setAttribute("tabindex","-1"),t.dataset.skipLinkTempTabindex="true"),t.addEventListener("blur",()=>{t.dataset.skipLinkTempTabindex&&(t.removeAttribute("tabindex"),delete t.dataset.skipLinkTempTabindex)},{once:!0}),t.focus()}function V(){let t=document.querySelectorAll(".skip-link[href^='#']");t.length&&t.forEach(e=>{e.addEventListener("click",n=>{let o=(e.getAttribute("href")||"").slice(1);if(!o)return;let a=document.getElementById(o);a&&(n.preventDefault(),Et(a))})})}var At="is-active",Lt=".post-content h2[id], .post-content h3[id], .post-content h4[id], .docs-content h2[id], .docs-content h3[id], .docs-content h4[id]";function St(t,e=100){let n=null;return t.forEach(r=>{r.getBoundingClientRect().top<=e&&(n=r)}),n}function Ct(t,e,n){let r=n-e;return r<=0?0:Math.min(100,Math.max(0,Math.floor(t/r*100)))}function wt(t,e={}){let n=t.ownerDocument,r=e.window||n.defaultView,o=Array.from(t.querySelectorAll(".enhanced-toc__content a")),a=t.querySelector("[data-toc-toggle]"),c=t.querySelector(".enhanced-toc__content"),d=t.querySelector("[data-toc-progress]"),l=t.querySelector("[data-progress-percent]"),s=Array.from(n.querySelectorAll(Lt)),i=t.parentElement||t,f=null;a&&c&&a.addEventListener("click",()=>{let u=a.getAttribute("aria-expanded")==="true";a.setAttribute("aria-expanded",u?"false":"true"),c.hidden=u,t.classList.toggle("is-collapsed",u)});let g=()=>{if(s.length===0)return 100;let u=parseFloat(r.getComputedStyle(s[0]).scrollMarginTop);return(Number.isFinite(u)?u:100)+8},h=()=>{let u=St(s,g()),k=u?`#${u.id}`:null;o.forEach(E=>{let T=k!==null&&E.getAttribute("href")===k;E.classList.toggle(At,T),T?E.setAttribute("aria-current","location"):E.removeAttribute("aria-current")})},y=()=>{let u=Ct(r.scrollY,r.innerHeight,n.documentElement.scrollHeight);u!==f&&(f=u,d&&(d.style.width=`${u}%`),l&&(l.textContent=String(u)))},m=()=>{let u=i.getBoundingClientRect().top+r.scrollY;t.classList.toggle("is-sticky",r.scrollY>u-20)},L=()=>{h(),y(),m()},b=null,x=()=>{b!==null&&r.cancelAnimationFrame(b),b=r.requestAnimationFrame(()=>{b=null,L()})};return s.length>0&&(r.addEventListener("scroll",x,{passive:!0}),r.addEventListener("resize",x,{passive:!0}),L()),{toc:t,update:L,headings:s,links:o}}function j(t=document){return Array.from(t.querySelectorAll("[data-toc-enhanced]")).map(e=>wt(e))}var xt=[V,$,P,B,U,Y,H,_,N,j,K];function J(t=xt){t.forEach(e=>{try{e()}catch(n){}})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>J()):J();export{J as initializeCore};
@@ -1 +1,5 @@
1
- import{a as C,b as w,c as s,d as E,e as A}from"./chunks/chunk-WIRUK3OZ.js";import{c as q}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var _="corrections",L=20,k=500;function D(e){let t=e.querySelector("[data-correction-labels]");if(!t)return{};try{return JSON.parse(t.textContent)||{}}catch(n){return{}}}function O(e,t){!e||!t||t.querySelectorAll("h2[id], h3[id]").forEach(n=>{let o=e.ownerDocument.createElement("option");o.value=n.id,o.textContent=n.textContent.trim(),e.appendChild(o)})}function F(e,t){let n=e.getSelection&&e.getSelection();if(!n||n.isCollapsed||n.rangeCount===0||!t)return"";let o=n.getRangeAt(0);return t.contains(o.commonAncestorContainer)?n.toString().trim().slice(0,k):""}function T(e,t){let n={category:e.category||"other",message:e.message||"",article:{url:t.url,title:t.title}};return e.section&&(n.section=e.section),e.contact_email&&(n.contact_email=e.contact_email),e.quote&&(n.quote=e.quote),n}function I(e,t,n={}){let o={};return e.message.length<L&&(o.message=(n.message_short||"Say a little more: at least {{min}} characters.").split("{{min}}").join(String(L))),e.contact_email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.contact_email)&&(o.contact_email=n.email_invalid||"That does not look like an email address."),t.website&&(o.website="spam"),Object.keys(o).length>0?o:null}function M(e,t={}){var x;let n=e.ownerDocument,o=t.window||n.defaultView,u=t.client||q(),y=t.content===void 0?n.querySelector(".post-content"):t.content,r=e.querySelector("form"),l=D(e),m=l.errors||{},R={url:e.dataset.articleUrl||"",title:e.dataset.articleTitle||""},d=r.elements.namedItem("quote"),a=e.querySelector("[data-correction-quote]"),b=C(r);if(O(r.elements.namedItem("section"),y),!u.enabled)return s(r,"disabled",m.disabled||""),{form:r,available:!1,submit:async()=>null};let h=w(u,_,r,m),f=e.tagName==="DETAILS"?e:e.querySelector("details");if(f){let i="";(x=f.querySelector("summary"))==null||x.addEventListener("pointerdown",()=>{i=F(o,y)}),f.addEventListener("toggle",()=>{if(!f.open)return;let c=F(o,y)||i;i="",d&&c&&(d.value=c,a&&(a.textContent=c,a.hidden=!1)),h().catch(()=>{})})}let v={form:r,available:!0,async submit(){let i=E(r),c=T(i,R),g=I(c,i,l);if(g)return g.website?(s(r,"success",l.success||""),null):(s(r,"invalid",m.invalid||"",g),null);s(r,"pending",l.pending||"");try{await h()}catch(p){return null}try{let p=await u.post(u.pathFor(_),c,{idempotencyKey:b.key(c)});return b.clear(),r.reset(),d&&(d.value=""),a&&(a.textContent="",a.hidden=!0),s(r,"success",l.success||""),p}catch(p){return A(r,p,m),null}}};return r.addEventListener("submit",i=>{i.preventDefault(),v.submit()}),v}function S(e=document){return Array.from(e.querySelectorAll("[data-correction-report]")).map(t=>M(t))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>S()):S();export{S as initCorrectionReports};
1
+ import{a as v,b as A,d as p,e as E,f as L}from"./chunks/chunk-TNVD6UAM.js";import{c as C}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var _="corrections",F=20,D=500;function M(e){let t=e.querySelector("[data-correction-labels]");if(!t)return{};try{return JSON.parse(t.textContent)||{}}catch(n){return{}}}function O(e,t){!e||!t||t.querySelectorAll("h2[id], h3[id]").forEach(n=>{let r=e.ownerDocument.createElement("option");r.value=n.id,r.textContent=n.textContent.trim(),e.appendChild(r)})}function y(e,t){let n=e.getSelection&&e.getSelection();if(!n||n.isCollapsed||n.rangeCount===0||!t)return"";let r=n.getRangeAt(0);return t.contains(r.commonAncestorContainer)?n.toString().trim().slice(0,D):""}function U(e,t){let n={category:e.category||"other",message:e.message||"",article:{url:t.url,title:t.title}};return e.section&&(n.section=e.section),e.contact_email&&(n.contact_email=e.contact_email),e.quote&&(n.quote=e.quote),n}function j(e,t,n={}){let r={};return e.message.length<F&&(r.message=(n.message_short||"Say a little more: at least {{min}} characters.").split("{{min}}").join(String(F))),e.contact_email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.contact_email)&&(r.contact_email=n.email_invalid||"That does not look like an email address."),t.website&&(r.website="spam"),Object.keys(r).length>0?r:null}function I(e,t={}){var q;let n=e.ownerDocument,r=t.window||n.defaultView,c=t.client||C(),l=t.content===void 0?n.querySelector(".post-content"):t.content,o=e.querySelector("form"),a=M(e),d=a.errors||{},u={url:e.dataset.articleUrl||"",title:e.dataset.articleTitle||""},f=o.elements.namedItem("quote"),i=e.querySelector("[data-correction-quote]"),w=v(o);if(O(o.elements.namedItem("section"),l),!c.enabled)return p(o,"disabled",d.disabled||""),{form:o,available:!1,submit:async()=>null};let g=A(c,_,o,d),h=e.tagName==="DETAILS"?e:e.querySelector("details");if(h){let s="";(q=h.querySelector("summary"))==null||q.addEventListener("pointerdown",()=>{s=y(r,l)}),h.addEventListener("toggle",()=>{if(!h.open)return;let m=y(r,l)||s;s="",f&&m&&(f.value=m,i&&(i.textContent=m,i.hidden=!1)),g().catch(()=>{})}),h.open&&g().catch(()=>{})}let x={form:o,available:!0,async submit(){let s=E(o),m=U(s,u),S=j(m,s,a);if(S)return S.website?(p(o,"success",a.success||""),null):(p(o,"invalid",d.invalid||"",S),null);p(o,"pending",a.pending||"");try{await g()}catch(b){return null}try{let b=await c.post(c.pathFor(_),m,{idempotencyKey:w.key(m)});return w.clear(),o.reset(),f&&(f.value=""),i&&(i.textContent="",i.hidden=!0),p(o,"success",a.success||""),b}catch(b){return L(o,b,d),null}}};return o.addEventListener("submit",s=>{s.preventDefault(),x.submit()}),x}function R(e=document){return Array.from(e.querySelectorAll("[data-correction-report]")).map(t=>I(t))}var $=1900;function N(e){if(!e)return"";let t="";return e.querySelectorAll("h2, h3").forEach(n=>{n.getBoundingClientRect().top<=0&&(t=n.textContent.trim())}),t}function P(e,{window:t,content:n,quote:r=""}){let c=new URL(e.href,t.location.href),l=e.dataset.correctionBodyParam,o=c.searchParams.get(l);if(!o)return e.href;let a=N(n),d=a?`
2
+
3
+ ${e.dataset.correctionSectionLabel}: ${a}`:"",u=Array.from(r||y(t,n)).slice(0,500).join(""),f=e.dataset.correctionQuoteLabel,i=()=>(c.searchParams.set(l,`${o}${d}${u?`
4
+
5
+ ${f}: ${u}`:""}`),c.href);for(;u&&i().length>$;)u=Array.from(u).slice(0,-20).join("");return i().length>$&&c.searchParams.set(l,o),e.href=c.href,e.href}function T(e=document){return Array.from(e.querySelectorAll("[data-correction-fallback]")).map(t=>{let n=e.defaultView,r=e.querySelector(".post-content"),c="";return t.addEventListener("pointerdown",()=>{c=y(n,r)}),t.addEventListener("click",()=>{P(t,{window:n,content:r,quote:c}),c=""}),t})}function Q(){R(),T()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Q):Q();export{T as initCorrectionFallbacks,R as initCorrectionReports};
@@ -1 +1 @@
1
- import"./chunks/chunk-PATLC23F.js";function f(){let e=document.getElementById("datalog-js-manifest");if(!e||!e.textContent)return{};try{return JSON.parse(e.textContent)}catch(n){return{}}}function m(e){return`feature${e.replace(/(^|-)([a-z])/g,(n,r,c)=>c.toUpperCase())}`}function o(e,n){let r=document.body;if(!r)return;let c=`${m(e)}State`;r.dataset[c]=n}async function u(e){return import(e)}var b=[{name:"search",test:()=>document.querySelector("[data-search-app]")},{name:"visualizations",test:()=>document.querySelector("[data-viz-type]")},{name:"math",test:()=>{var e;return((e=document.body)==null?void 0:e.dataset.featureMath)==="true"}},{name:"academic",test:()=>document.querySelector("[data-citation-metric], [data-citation-table], [data-citation-chart]")},{name:"notebook",test:()=>{var e;return((e=document.body)==null?void 0:e.dataset.featureNotebook)==="true"||document.querySelector(".notebook-output")}},{name:"reading-state",test:()=>document.querySelector("[data-reading-state], [data-reading-list]")},{name:"corrections",test:()=>document.querySelector("[data-correction-report]")},{name:"contact",test:()=>document.querySelector("[data-contact-form]")},{name:"comments",test:()=>document.querySelector("[data-comments-thread]")},{name:"reactions",test:()=>document.querySelector("[data-reactions]")},{name:"webmentions",test:()=>document.querySelector("[data-webmentions]")},{name:"subscriptions",test:()=>document.querySelector("[data-subscribe], [data-subscription-manage]")},{name:"moderation",test:()=>document.querySelector("[data-moderation-inbox]")}];async function i(e){let n=e||f(),{core:r,features:c={}}=n;if(!r)return;try{o("core","loading"),await u(r),o("core","ready")}catch(t){o("core","error");return}let d=document.body;if(!d)return;let l=b.filter(t=>{let s=m(t.name),a=d.dataset[s];return a==="true"||a==="auto"?a==="auto"&&typeof t.test=="function"?!!t.test():!0:!1}).map(async({name:t,test:s})=>{let a=c[t];if(a){o(t,"loading");try{if(typeof s=="function"&&!s()){o(t,"skipped");return}await u(a),o(t,"ready")}catch(y){o(t,"error")}}});await Promise.all(l)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>i()):i();export{i as bootstrapFeatures};
1
+ import"./chunks/chunk-PATLC23F.js";function y(){let e=document.getElementById("datalog-js-manifest");if(!e||!e.textContent)return{};try{return JSON.parse(e.textContent)}catch(n){return{}}}function m(e){return`feature${e.replace(/(^|-)([a-z])/g,(n,r,c)=>c.toUpperCase())}`}function a(e,n){let r=document.body;if(!r)return;let c=`${m(e)}State`;r.dataset[c]=n}async function u(e){return import(e)}var b=[{name:"search",test:()=>document.querySelector("[data-search-app]")},{name:"visualizations",test:()=>document.querySelector("[data-viz-type]")},{name:"math",test:()=>{var e;return((e=document.body)==null?void 0:e.dataset.featureMath)==="true"}},{name:"academic",test:()=>document.querySelector("[data-citation-metric], [data-citation-table], [data-citation-chart], [data-submission-filter], [data-calendar-filter]")},{name:"notebook",test:()=>{var e;return((e=document.body)==null?void 0:e.dataset.featureNotebook)==="true"||document.querySelector(".notebook-output")}},{name:"reading-state",test:()=>document.querySelector("[data-reading-state], [data-reading-list]")},{name:"corrections",test:()=>document.querySelector("[data-correction-report], [data-correction-fallback]")},{name:"contact",test:()=>document.querySelector("[data-contact-form]")},{name:"comments",test:()=>document.querySelector("[data-comments-thread]")},{name:"reactions",test:()=>document.querySelector("[data-reactions]")},{name:"webmentions",test:()=>document.querySelector("[data-webmentions]")},{name:"subscriptions",test:()=>document.querySelector("[data-subscribe], [data-subscription-manage]")},{name:"moderation",test:()=>document.querySelector("[data-moderation-inbox]")}];async function i(e){let n=e||y(),{core:r,features:c={}}=n;if(!r)return;try{a("core","loading"),await u(r),a("core","ready")}catch(t){a("core","error");return}let d=document.body;if(!d)return;let l=b.filter(t=>{let s=m(t.name),o=d.dataset[s];return o==="true"||o==="auto"?o==="auto"&&typeof t.test=="function"?!!t.test():!0:!1}).map(async({name:t,test:s})=>{let o=c[t];if(o){a(t,"loading");try{if(typeof s=="function"&&!s()){a(t,"skipped");return}await u(o),a(t,"ready")}catch(f){a(t,"error")}}});await Promise.all(l)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>i()):i();export{i as bootstrapFeatures};
@@ -1 +1,2 @@
1
- (function(){let d={init(e){this.MathJax=e,this.displayCounter=0,this.anchorCounter=0,this.equationMap=new Map,this.editor=null,this.editorOpen=!1,this.messageTimeout=null,this.initialized=!0,this.pendingTypeset=[],this.setupEditor(),e.startup.promise.then(()=>{if(this.decorateExisting(e.startup.document.math),this.updateEquationReferences(),this.pendingTypeset.length>0){let t=[...this.pendingTypeset];this.pendingTypeset=[],t.forEach(a=>{this.renderLatex(a.target,a.latex,a.options||{})})}}).catch(t=>{}),document.addEventListener("click",t=>this.handleClick(t)),document.addEventListener("keydown",t=>this.handleKeydown(t))},onPageReady(){this.updateEquationReferences()},decorateExisting(e){let t=e?Array.from(e):[];t.length!==0&&(this.displayCounter=0,this.anchorCounter=0,this.equationMap.clear(),t.forEach(a=>{try{this.decorateMathItem(a)}catch(i){}}))},decorateMathItem(e){if(!e||!e.typesetRoot)return;let t=e.typesetRoot,a=e.math||"",i=t.closest("[data-math-alt]")||t,n=this.resolveAltText(i,a);t.dataset.mathLatex=a,t.querySelector("a[href]")||(t.setAttribute("tabindex","0"),t.setAttribute("role","math"),this.syncAltAttributes(i,t,n)),e.display?this.decorateDisplay(t,a):this.decorateInline(t,a),this.exposeReferenceLinks(t)},exposeAllReferenceLinks(e){(e&&typeof e.querySelectorAll=="function"?e:document).querySelectorAll("mjx-container").forEach(a=>this.exposeReferenceLinks(a))},exposeReferenceLinks(e){if(!e||typeof e.querySelectorAll!="function")return;let t=Array.from(e.querySelectorAll("mjx-assistive-mml [href]")),a=e;e.querySelectorAll('[aria-hidden="true"] a[href]').forEach(i=>{i.setAttribute("tabindex","-1");let n=i.getAttribute("href")||"";if(!n.startsWith("#")||i.dataset.mathReferenceExposed==="true")return;i.dataset.mathReferenceExposed="true";let r=t.find(l=>l.getAttribute("href")===n),s=(r&&r.textContent||i.textContent||"").replace(/\s+/g," ").trim(),o=document.createElement("a");o.className="math-reference-link",o.href=n,o.textContent=s?`Equation ${s}`:"Equation",a.insertAdjacentElement("afterend",o),a=o})},decorateInline(e,t){e&&(e.classList.contains("math-expression__inline")||e.classList.add("math-expression__inline"),e.dataset.mathLatexClean=this.cleanLatex(t))},decorateDisplay(e,t){if(!e)return;let i=e.parentElement&&e.parentElement.classList.contains("math-expression")?e.parentElement:null;i||(i=document.createElement("figure"),i.className="math-expression math-expression--display",e.parentNode.insertBefore(i,e),i.appendChild(e)),i.removeAttribute("role"),i.removeAttribute("aria-label"),i.removeAttribute("tabindex");let n=this.extractEquationInfo(t);this.anchorCounter+=1;let r=`eq:auto-${this.anchorCounter}`,s=this.mathJaxNumbersEquations(),o=s?this.mathJaxNumber(e):this.ownNumber(n),l=this.buildAnchorId(n.label,r);if(i.dataset.mathLatex=t,i.dataset.mathLatexClean=this.cleanLatex(t),e.dataset.mathAlt&&!i.dataset.mathAlt&&(i.dataset.mathAlt=e.dataset.mathAlt),o?i.dataset.equationNumber=o:i.removeAttribute("data-equation-number"),i.dataset.equationLabel=n.label||"",l){i.id=l;let c=o||n.label||l;if((o||n.label)&&(this.setEquationReference(l,c),n.label&&n.label!==l&&this.setEquationReference(n.label,c,l),n.label&&n.label.startsWith("eq:"))){let h=n.label.replace(/^eq:/,"");this.setEquationReference(h,c,l)}}s||this.attachNumberBadge(i,o),this.attachToolbar(i)},mathJaxNumbersEquations(){let e=this.MathJax&&this.MathJax.config?this.MathJax.config.tex:null,t=e?e.tags:null;return!!t&&t!=="none"},mathJaxNumber(e){let t=e.querySelector("mjx-assistive-mml mlabeledtr > mtd:first-child");return t?(t.textContent||"").replace(/\s+/g," ").trim():""},ownNumber(e){let t=e.tag||"";return e.skipNumber||(this.displayCounter+=1,t||(t=String(this.displayCounter))),t?`(${t})`:""},extractEquationInfo(e){let t=(e||"").trim(),a=t.match(/\\tag\*?\{([^}]*)\}/),i=t.match(/\\label\{([^}]*)\}/),n=/\\notag|\\nonumber/.test(t);return{tag:a?a[1].trim():"",label:i?i[1].trim():"",skipNumber:n}},buildAnchorId(e,t){return e?e.startsWith("eq:")?e:`eq:${e}`:t||""},setEquationReference(e,t,a){if(!e)return;let i=a||e,n=t||e;this.equationMap.set(e,{anchor:i,label:e,number:n}),e.startsWith("eq:")||this.equationMap.set(`eq:${e}`,{anchor:i,label:e,number:n})},attachNumberBadge(e,t){let a=e.querySelector(".math-expression__number"),i=e.querySelector(".math-expression__sr");if(!t){a&&a.remove(),i&&i.remove();return}a||(a=document.createElement("span"),a.className="math-expression__number",a.setAttribute("aria-hidden","true"),e.appendChild(a)),a.textContent=t,i||(i=document.createElement("span"),i.className="visually-hidden math-expression__sr",e.appendChild(i)),i.textContent=`Equation ${t.replace(/[()]/g,"")}`},attachToolbar(e){let t=e.querySelector(".math-expression__toolbar");if(!t){t=document.createElement("div"),t.className="math-expression__toolbar";let a=document.createElement("button");a.type="button",a.className="math-expression__button",a.setAttribute("data-math-copy","true"),a.setAttribute("aria-label","Copy LaTeX code");let i=document.createElement("span");i.setAttribute("aria-hidden","true"),i.textContent="\u29C9";let n=document.createElement("span");n.className="visually-hidden",n.textContent="Copy equation",a.appendChild(i),a.appendChild(n);let r=document.createElement("button");r.type="button",r.className="math-expression__button",r.setAttribute("data-math-edit","true"),r.setAttribute("aria-label","Open equation editor");let s=document.createElement("span");s.setAttribute("aria-hidden","true"),s.textContent="\u270E";let o=document.createElement("span");o.className="visually-hidden",o.textContent="Edit equation",r.appendChild(s),r.appendChild(o);let l=document.createElement("span");l.className="math-expression__message",l.setAttribute("aria-live","polite"),l.hidden=!0,t.appendChild(a),t.appendChild(r),t.appendChild(l),e.appendChild(t)}},handleClick(e){let t=e.target.closest("[data-math-copy]");if(t){e.preventDefault();let s=t.closest(".math-expression"),o=s?s.dataset.mathLatexClean||s.dataset.mathLatex:null;this.copyLatex(o,s);return}let a=e.target.closest("[data-math-edit]");if(a){e.preventDefault();let s=a.closest(".math-expression"),o=s&&s.dataset.mathLatex||"";this.openEditor(o);return}if(e.target.closest("[data-math-editor-close]")){e.preventDefault(),this.closeEditor();return}if(e.target.closest("[data-math-editor-copy]")){e.preventDefault(),this.editor&&this.editor.textarea&&this.copyLatex(this.editor.textarea.value,null,this.editor.status);return}let r=e.target.closest("[data-symbol-insert]");if(r){e.preventDefault();let s=r.getAttribute("data-symbol-insert");this.insertSymbol(s||"")}},handleKeydown(e){let t=document.activeElement,a=t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable);if((e.ctrlKey||e.metaKey)&&e.altKey&&(e.key==="e"||e.key==="E")){e.preventDefault();let i=a&&t&&t.value||"";this.openEditor(i);return}e.key==="Escape"&&this.editorOpen&&(e.preventDefault(),this.closeEditor())},copyLatex(e,t,a){if(!e)return;let i=r=>{if(a)a.hidden=!1,a.textContent=r,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{a.hidden=!0,a.textContent=""},2e3);else if(t){let s=t.querySelector(".math-expression__message");s&&(s.hidden=!1,s.textContent=r,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{s.hidden=!0,s.textContent=""},2e3))}},n=()=>{let r=document.createElement("textarea");r.value=e,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),i("Copied equation")}catch(s){i("Unable to copy")}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>i("Copied equation")).catch(()=>n()):n()},setupEditor(){if(this.editor)return;let e=document.createElement("div");e.id="math-tooling-panel",e.hidden=!0;let t=document.createElement("div");t.className="math-tooling",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-labelledby","math-tooling-title");let a=document.createElement("h2");a.id="math-tooling-title",a.className="math-tooling__title",a.textContent="Equation editor";let i=document.createElement("p");i.id="math-tooling-description",i.className="math-tooling__description",i.textContent="Craft LaTeX expressions with live preview, quick statistical symbols, and chemistry support.";let n=document.createElement("textarea");n.className="math-tooling__input",n.setAttribute("data-math-editor-input","true"),n.setAttribute("spellcheck","false"),n.setAttribute("aria-label","LaTeX source"),n.setAttribute("aria-describedby",i.id),n.rows=10;let r=document.createElement("div");r.className="math-tooling__actions";let s=document.createElement("div");s.className="math-tooling__preview",s.setAttribute("data-math-editor-preview","true"),s.setAttribute("aria-live","polite");let o=document.createElement("span");o.className="math-tooling__status",o.hidden=!0;let l=document.createElement("div");l.className="math-tooling__library";let c=document.createElement("h3");c.className="math-tooling__library-title",c.textContent="Quick insert";let h=document.createElement("div");h.className="math-tooling__symbols",[{label:"Mean \u03BC",value:"\\mu"},{label:"Variance \u03C3\xB2",value:"\\sigma^2"},{label:"Std. dev \u03C3",value:"\\sigma"},{label:"Probability",value:"\\mathbb{P}(A)"},{label:"Expectation",value:"\\mathbb{E}[X]"},{label:"Covariance",value:"\\mathrm{Cov}(X, Y)"},{label:"Vector",value:"\\mathbf{x}"},{label:"Norm",value:"\\lVert x \\rVert_2"},{label:"Inner product",value:"\\langle x, y \\rangle"},{label:"Derivative",value:"\\frac{\\mathrm{d}}{\\mathrm{d}t}"},{label:"Integral",value:"\\int_0^1 f(x) \\, \\mathrm{d}x"},{label:"Bayes",value:"\\mathbb{P}(A \\mid B)"},{label:"Chemical H\u2082O",value:"\\ce{H2O}"},{label:"Chemical CO\u2082",value:"\\ce{CO2}"}].forEach(g=>{let p=document.createElement("button");p.type="button",p.className="math-tooling__symbol",p.setAttribute("data-symbol-insert",g.value),p.textContent=g.label,h.appendChild(p)});let u=document.createElement("button");u.type="button",u.className="math-tooling__close",u.setAttribute("data-math-editor-close","true");let b=document.createElement("span");b.setAttribute("aria-hidden","true"),b.textContent="\u2715";let f=document.createElement("span");f.className="visually-hidden",f.textContent="Close equation editor",u.appendChild(b),u.appendChild(f);let m=document.createElement("button");m.type="button",m.className="math-tooling__copy",m.setAttribute("data-math-editor-copy","true"),m.textContent="Copy LaTeX",r.appendChild(m),r.appendChild(u),r.appendChild(o),l.appendChild(c),l.appendChild(h),t.appendChild(a),t.appendChild(i),t.appendChild(n),t.appendChild(s),t.appendChild(r),t.appendChild(l),e.appendChild(t),document.body.appendChild(e),n.addEventListener("input",()=>this.updateEditorPreview()),this.editor={overlay:e,dialog:t,textarea:n,preview:s,status:o}},openEditor(e){if(!this.editor)return;let t=(e||"").trim();this.editor.overlay.hidden=!1,document.body.classList.add("math-tooling-open"),this.editor.textarea.value=t,this.editor.textarea.focus(),this.editor.textarea.setSelectionRange(t.length,t.length),this.editorOpen=!0,this.updateEditorPreview()},closeEditor(){this.editor&&(this.editor.overlay.hidden=!0,document.body.classList.remove("math-tooling-open"),this.editorOpen=!1)},updateEditorPreview(){if(!this.editor||!this.MathJax)return;let e=this.editor.textarea.value.trim();if(!e){this.editor.preview.replaceChildren();let t=document.createElement("p");t.className="math-tooling__placeholder",t.textContent="Preview will appear here.",this.editor.preview.appendChild(t);return}this.renderLatex(this.editor.preview,e,{display:!0,enhance:!1})},insertSymbol(e){if(!this.editor||!this.editor.textarea)return;let t=this.editor.textarea,a=t.selectionStart||0,i=t.selectionEnd||0,n=t.value,r=`${n.slice(0,a)}${e}${n.slice(i)}`;t.value=r;let s=a+e.length;t.focus(),t.setSelectionRange(s,s),this.updateEditorPreview()},updateEquationReferences(){if(!this.equationMap||this.equationMap.size===0)return;document.querySelectorAll("[data-equation-ref]").forEach(a=>{let i=a.getAttribute("data-equation-ref");if(!i)return;let n=this.lookupEquation(i.replace(/^#/,""));if(!n)return;a.setAttribute("href",`#${n.anchor}`);let r=a.textContent.trim();(!r||r===i||r===n.anchor||r===`(${i})`)&&(a.textContent=n.number||n.anchor),a.classList.add("math-reference"),a.setAttribute("aria-label",`Jump to equation ${n.number||n.anchor}`)}),document.querySelectorAll('a[href^="#eq:"]').forEach(a=>{let i=a.getAttribute("href");if(!i)return;let n=i.replace(/^#/,""),r=this.lookupEquation(n);if(!r)return;a.setAttribute("href",`#${r.anchor}`);let s=a.textContent.trim();(!s||s===i||s===n)&&(a.textContent=r.number||r.anchor),a.dataset.equationRef=r.anchor,a.classList.add("math-reference")})},lookupEquation(e){if(!e)return null;if(this.equationMap.has(e))return this.equationMap.get(e);let t=e.startsWith("eq:")?e:`eq:${e}`;return this.equationMap.get(t)||null},renderLatex(e,t,a={}){if(!e)return Promise.resolve();let i=a.display!==!1;if(!this.MathJax)return e.textContent=t,this.pendingTypeset||(this.pendingTypeset=[]),this.pendingTypeset.push({target:e,latex:t,options:a}),Promise.resolve();let n=i?`\\[${t}\\]`:`\\(${t}\\)`;return e.innerHTML=n,this.MathJax.typesetPromise([e]).catch(r=>{})},cleanLatex(e){return(e||"").replace(/%\s*alt:.*$/gm,"").replace(/\\label\{[^}]*\}/g,"").replace(/\\tag\*?\{[^}]*\}/g,"").trim()},resolveAltText(e,t){let a=e||null,i=this.findDatasetAlt(a);if(i)return i;let n=this.extractAltComment(t);if(n)return n;let s=(a&&a.getAttribute?a.getAttribute("data-math-source"):null)||t;return this.generateAltFromLatex(s)},findDatasetAlt(e){let t=e;for(;t;){if(t.dataset&&t.dataset.mathAlt){let a=t.dataset.mathAlt.trim();if(a)return a}t=t.parentElement}return""},extractAltComment(e){if(!e)return"";let t=String(e).split(/\r?\n/);for(let a=0;a<t.length;a+=1){let i=t[a];if(!i)continue;let n=i.match(/%\s*alt:\s*(.+)$/i);if(n)return n[1].trim()}return""},generateAltFromLatex(e){if(!e)return"";let t=String(e).replace(/%.*$/gm,"");return t=t.replace(/\\frac\s*\{([^{}]+)\}\s*\{([^{}]+)\}/g,(a,i,n)=>{let r=this.sanitizeSegment(i),s=this.sanitizeSegment(n);return`${r} over ${s}`.trim()}),t=t.replace(/\\int(?:_\{([^}]*)\}|_([^\s^{}]+))?(?:\^\{([^}]*)\}|\^([^\s_{}]+))?/g,(a,i,n,r,s)=>{let o=this.sanitizeSegment(i||n),l=this.sanitizeSegment(r||s),c="integral";return o&&(c+=` from ${o}`),l&&(c+=` to ${l}`),c}),t=t.replace(/\\sum(?:_\{([^}]*)\}|_([^\s^{}]+))?(?:\^\{([^}]*)\}|\^([^\s_{}]+))?/g,(a,i,n,r,s)=>{let o=this.sanitizeSegment(i||n),l=this.sanitizeSegment(r||s),c="summation";return o&&(c+=` from ${o}`),l&&(c+=` to ${l}`),c}),t=t.replace(/\\sqrt\s*\{([^{}]+)\}/g,(a,i)=>`square root of ${this.sanitizeSegment(i)}`),t=t.replace(/\\mathrm\s*\{([^{}]+)\}/g,(a,i)=>this.sanitizeSegment(i)),t=t.replace(/\\operatorname\*?\s*\{([^{}]+)\}/g,(a,i)=>this.sanitizeSegment(i)),t=t.replace(/\\[a-zA-Z]+/g," "),t=t.replace(/[{}]/g," "),t=t.replace(/\s+/g," ").trim(),t||"Mathematical expression"},sanitizeSegment(e){return e?String(e).replace(/\\[a-zA-Z]+/g," ").replace(/[{}]/g," ").replace(/\s+/g," ").trim():""},syncAltAttributes(e,t,a){a&&(e&&e.setAttribute&&(e.setAttribute("aria-label",a),e.dataset&&(e.dataset.mathAlt=a)),t&&t.setAttribute&&(t.setAttribute("aria-label",a),t.dataset&&(t.dataset.mathAlt=a)))}};typeof globalThis!="undefined"&&(globalThis.__DATALOG_MATH_INTERNALS__=d),typeof document!="undefined"&&(document.addEventListener("datalog:math-ready",()=>d.exposeAllReferenceLinks(document)),d.exposeAllReferenceLinks(document)),window.DatalogMath={init(e){d.init(e)},onPageReady(){d.initialized&&d.onPageReady()},renderLatex(e,t,a){return d.renderLatex(e,t,a)}}})();
1
+ import{a as v,b as C}from"./chunks/chunk-PATLC23F.js";var p={about:"How a LaTeX expression reads as a label for a screen reader (#417). The build (lib/datalog/latex_speech.rb) and the browser (assets/js/math/latex-speech.js) both read this file, so the two say the same; tests/fixtures/latex-speech.json holds the cases both test suites check.",greek:["alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigma","tau","upsilon","phi","chi","psi","omega"],words:{varepsilon:"epsilon",vartheta:"theta",varphi:"phi",varrho:"rho",varsigma:"sigma",varpi:"pi",varkappa:"kappa",leq:"less than or equal to",le:"less than or equal to",leqslant:"less than or equal to",geq:"greater than or equal to",ge:"greater than or equal to",geqslant:"greater than or equal to",neq:"not equal to",ne:"not equal to",approx:"approximately equal to",equiv:"equivalent to",sim:"similar to",simeq:"similar or equal to",cong:"congruent to",propto:"proportional to",ll:"much less than",gg:"much greater than",in:"in",notin:"not in",ni:"contains",subset:"subset of",subseteq:"subset of or equal to",supset:"superset of",supseteq:"superset of or equal to",mid:"given",parallel:"parallel to",perp:"perpendicular to",to:"to",rightarrow:"to",longrightarrow:"to",mapsto:"maps to",leftarrow:"left arrow",gets:"gets",Rightarrow:"implies",implies:"implies",Longrightarrow:"implies",Leftarrow:"is implied by",impliedby:"is implied by",Leftrightarrow:"if and only if",iff:"if and only if",leftrightarrow:"left right arrow",uparrow:"up arrow",downarrow:"down arrow",times:"times",cdot:"dot",div:"divided by",pm:"plus or minus",mp:"minus or plus",ast:"star",star:"star",circ:"circle",bullet:"bullet",oplus:"direct sum",otimes:"tensor product",cup:"union",cap:"intersection",setminus:"minus",wedge:"and",land:"and",vee:"or",lor:"or",neg:"not",lnot:"not",forall:"for all",exists:"there exists",nexists:"there does not exist",infty:"infinity",partial:"partial",nabla:"nabla",emptyset:"empty set",varnothing:"empty set",prime:"prime",angle:"angle",triangle:"triangle",square:"square",Box:"square",blacksquare:"end of proof",qed:"end of proof",hbar:"h bar",ell:"ell",aleph:"aleph",dagger:"dagger",ldots:"dots",cdots:"dots",dots:"dots",vdots:"dots",ddots:"dots",langle:"left angle bracket",rangle:"right angle bracket",lvert:"|",rvert:"|",vert:"|",lVert:"double bar",rVert:"double bar",Vert:"double bar","|":"double bar",lfloor:"floor of",rfloor:"",lceil:"ceiling of",rceil:"","{":"{","}":"}","%":"percent",$:"$","&":"and","#":"#",_:"_",colon:":",newline:";",",":"",";":"",":":"","!":""," ":"",quad:"",qquad:"",enspace:"",thinspace:"",medspace:"",thickspace:"",negthinspace:"",negmedspace:"",negthickspace:"",displaystyle:"",textstyle:"",scriptstyle:"",scriptscriptstyle:"",limits:"",nolimits:"",nonumber:"",notag:"",allowbreak:"",hline:"",toprule:"",midrule:"",bottomrule:""},big_operators:{sum:"summation",prod:"product",coprod:"coproduct",bigcup:"union",bigcap:"intersection",bigoplus:"direct sum",bigotimes:"tensor product",int:"integral",iint:"double integral",iiint:"triple integral",oint:"contour integral",max:"max",min:"min",sup:"sup",inf:"inf",argmax:"argmax",argmin:"argmin"},limits:{lim:"limit",limsup:"limit superior",liminf:"limit inferior"},text:["text","textrm","textit","textbf","textsf","texttt","textnormal","emph","mbox","hbox","mathrm","mathit","mathsf","mathtt","mathnormal","operatorname","boxed"],text_mode:["text","textrm","textit","textbf","textsf","texttt","textnormal","emph","mbox","hbox"],styles:{mathbb:"double-struck",mathcal:"script",mathscr:"script",mathfrak:"fraktur",mathbf:"bold",boldsymbol:"bold",bm:"bold",pmb:"bold",vec:"vector",overrightarrow:"vector",cancel:"cancelled",bcancel:"cancelled",xcancel:"cancelled",sout:"cancelled"},accents:{hat:"hat",widehat:"hat",bar:"bar",overline:"bar",tilde:"tilde",widetilde:"tilde",dot:"dot",ddot:"double dot",underline:"underline",check:"check",breve:"breve",acute:"acute",grave:"grave"},silent_with_argument:["label","tag","hspace","vspace","phantom","hphantom","vphantom","color","eqref","ref"],sizes:["left","right","middle","big","Big","bigg","Bigg","bigl","bigr","Bigl","Bigr","biggl","biggr","Biggl","Biggr"],matrices:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","smallmatrix"],with_columns:["array","tabular","alignat","alignedat"],superscripts:{"2":"squared","3":"cubed",T:"transpose","-1":"inverse",prime:"prime"},primes:["","prime","double prime","triple prime"],roots:{"2":"square root","3":"cube root"}};var I=l=>l[0].toUpperCase()+l.slice(1),w=new Map([...p.greek.map(l=>[l,l]),...p.greek.map(l=>[I(l),`capital ${l}`]),...Object.entries(p.words)]),_=new Map(Object.entries(p.big_operators)),L=new Map(Object.entries(p.limits)),O=new Set(p.text),j=new Set(p.text_mode),T=new Map(Object.entries(p.styles)),S=new Map(Object.entries(p.accents)),P=new Set(p.silent_with_argument),D=new Set(p.sizes),$=new Set(p.matrices),W=new Set(p.with_columns),N=new Map(Object.entries(p.superscripts)),z=new Map(Object.entries(p.roots)),X=64,M=l=>l>="a"&&l<="z"||l>="A"&&l<="Z";function J(l){let e=String(l||""),t=[],a=[t],r=0;for(;r<e.length;){let i=e[r],s=a[a.length-1];if(i==="\\"){let n=r+1;for(;n<e.length&&M(e[n]);)n+=1;n===r+1&&n<e.length&&(n+=1),n>r+1&&s.push({type:"command",name:e.slice(r+1,n)}),r=n}else if(i==="{"){let n={type:"group",tokens:[]};s.push(n),a.push(n.tokens),r+=1}else if(i==="}")a.length>1&&a.pop(),r+=1;else if(i==="%"){let n=e.indexOf(`
2
+ `,r);r=n===-1?e.length:n}else i.trim()===""?((s.length===0||s[s.length-1].type!=="space")&&s.push({type:"space"}),r+=1):(s.push({type:"char",value:i}),r+=1)}return t}var U=l=>l.map(e=>e.type==="char"?e.value:"").join("").trim(),x=(l,e)=>!!l&&l.type==="char"&&l.value===e,E=(l,e)=>!!l&&l.type==="command"&&l.name===e;function A(l,e){if(e.depth>X)return"";let t=C(v({},e),{depth:e.depth+1}),a="",r=0,i=u=>{u&&(a+=` ${u} `)},s=()=>{for(;l[r]&&l[r].type==="space";)r+=1},n=()=>{s();let u=l[r];return u?(r+=1,u.type==="group"?u.tokens:[u]):[]},d=(u,o=t)=>A(u,o).trim(),h=()=>{if(s(),!x(l[r],"["))return null;let u=[];for(r+=1;r<l.length&&!x(l[r],"]");)u.push(l[r]),r+=1;return r+=1,u},f=()=>{x(l[r],"*")&&(r+=1)},g=u=>{let o={};for(;;){s();let c=l[r];if(E(c,"limits")||E(c,"nolimits"))r+=1;else if(x(c,"_")&&o.lower===void 0)r+=1,o.lower=d(n(),u);else if(x(c,"^")&&o.upper===void 0)r+=1,o.upper=d(n());else return o}},q=u=>{let o=u.length===1?u[0]:null;if(E(o,"circ"))return"degrees";if(E(o,"top"))return"transpose";let c=d(u);return N.has(c)?N.get(c):`to the power ${c}`};for(;r<l.length;){let u=l[r];if(r+=1,u.type==="space")a+=" ";else if(u.type==="group")a+=A(u.tokens,t);else if(u.type==="char"){let o=u.value;if(e.text)a+=o;else if(o==="^")i(q(n()));else if(o==="_")i(`sub ${d(n())}`);else if(o==="'"){let c=1;for(;x(l[r],"'");)c+=1,r+=1;i(p.primes[c]||Array(c).fill("prime").join(" "))}else if(o==="&"){let c=e.environments[e.environments.length-1];a+=$.has(c)||c==="cases"?", ":" "}else o==="~"?a+=" ":a+=o}else{let{name:o}=u;if(o==="frac"||o==="dfrac"||o==="tfrac"||o==="cfrac"){let c=d(n());i(`${c} over ${d(n())}`)}else if(o==="binom"||o==="dbinom"||o==="tbinom"){let c=d(n());i(`${c} choose ${d(n())}`)}else if(o==="sqrt"){let c=h(),m=c?d(c):"2";i(`${z.get(m)||`${m}th root`} of ${d(n())}`)}else if(_.has(o)){let{lower:c,upper:m}=g(t),b=_.get(o);c&&m?b+=` from ${c} to ${m}`:c?b+=` over ${c}`:m&&(b+=` to ${m}`),i(b)}else if(L.has(o)){let{lower:c,upper:m}=g(C(v({},t),{approaches:!0}));i([L.get(o),c&&`as ${c}`,m&&`to the power ${m}`].filter(Boolean).join(" "))}else if(o==="to"&&e.approaches)i("approaches");else if(o==="begin"||o==="end"){let c=U(n()),m=c.endsWith("*")?c.slice(0,-1):c;o==="begin"?(e.environments.push(m),W.has(m)&&n()):e.environments.pop();let b=m==="cases"?"cases":$.has(m)&&"matrix";b&&i(o==="begin"?b:`end ${b}`)}else if(o==="\\")h(),i(";");else if(o==="pmod")i(`mod ${d(n())}`);else if(o==="textcolor")n(),i(d(n(),C(v({},t),{text:!0})));else if(o==="overset"||o==="stackrel"||o==="underset"){let c=d(n());i(`${d(n())} with ${c} ${o==="underset"?"below":"above"}`)}else if(o==="overbrace"||o==="underbrace"){let c=d(n()),m=o==="overbrace"?"^":"_";s(),x(l[r],m)?(r+=1,i(`${c} with ${d(n())} ${m==="^"?"above":"below"}`)):i(c)}else O.has(o)?(f(),i(d(n(),C(v({},t),{text:j.has(o)})))):T.has(o)?i(`${T.get(o)} ${d(n())}`):S.has(o)?i(`${d(n())} ${S.get(o)}`):D.has(o)?x(l[r],".")&&(r+=1):P.has(o)?(f(),n()):w.has(o)?i(w.get(o)):M(o[0])&&i(o)}}return a}var R=l=>l===" "||l===";"||l===",";function k(l){let e=A(J(l),{depth:0,environments:[]}).replace(/\s+/g," ").replace(/ ([,;:.!?)\]}])/g,"$1").replace(/([([{]) /g,"$1").replace(/;(?=;)/g,""),t=0,a=e.length;for(;t<a&&R(e[t]);)t+=1;for(;a>t&&R(e[a-1]);)a-=1;return e.slice(t,a)}(function(){let l={init(e,t={}){this.MathJax=e,this.numbering=t.numbering||null,this.displayCounter=0,this.anchorCounter=0,this.equationMap=new Map,this.editor=null,this.editorOpen=!1,this.messageTimeout=null,this.initialized=!0,this.pendingTypeset=[],this.setupEditor(),e.startup.promise.then(()=>{if(this.decorateExisting(e.startup.document.math),this.updateEquationReferences(),this.pendingTypeset.length>0){let a=[...this.pendingTypeset];this.pendingTypeset=[],a.forEach(r=>{this.renderLatex(r.target,r.latex,r.options||{})})}}).catch(a=>{}),document.addEventListener("click",a=>this.handleClick(a)),document.addEventListener("keydown",a=>this.handleKeydown(a)),document.addEventListener("focusin",a=>this.trackFocus(a))},start(e){return this.initialized||!e||!e.startup||!e.startup.document?!1:(this.init(e,e.config&&e.config.datalog||{}),!0)},restoreContainer(e){let t=e?e.datalogContainer:null,a=e?e.typesetRoot:null;if(!t||!a||a===t.root)return;t.root=a,this.rememberContainer(a,t),a.dataset.mathLatex=t.latex,t.interactive&&!a.querySelector("a[href]")&&(a.setAttribute("tabindex","0"),a.setAttribute("role","math"),t.altText&&(a.setAttribute("aria-label",t.altText),a.dataset.mathAlt=t.altText)),e.display||this.decorateInline(a,t.latex),this.exposeReferenceLinks(a);let r=document.activeElement;this.focusedRecord===t&&(!r||r===document.body||!r.isConnected)&&a.focus()},restoreAll(e){Array.from(e&&e.math||[]).forEach(t=>this.restoreContainer(t))},rememberContainer(e,t){this.recordByContainer||(this.recordByContainer=new WeakMap),this.recordByContainer.set(e,t)},trackFocus(e){let t=e&&e.target,a=t&&typeof t.closest=="function"?t.closest("mjx-container"):null;this.focusedRecord=a&&this.recordByContainer&&this.recordByContainer.get(a)||null},onPageReady(){this.updateEquationReferences()},decorateExisting(e){let t=e?Array.from(e):[];t.length!==0&&(this.displayCounter=0,this.anchorCounter=0,this.equationMap.clear(),t.forEach(a=>{try{this.decorateMathItem(a)}catch(r){}}))},decorateMathItem(e){if(!e||!e.typesetRoot)return;let t=e.typesetRoot,a=e.math||"",r=t.closest("[data-math-alt]")||t,i=this.resolveAltText(r,a);t.dataset.mathLatex=a;let s=!t.querySelector("a[href]");s&&(t.setAttribute("tabindex","0"),t.setAttribute("role","math"),this.syncAltAttributes(r,t,i)),e.datalogContainer={root:t,latex:a,altText:i,interactive:s},this.rememberContainer(t,e.datalogContainer),e.display?this.decorateDisplay(t,a):this.decorateInline(t,a),this.exposeReferenceLinks(t)},exposeAllReferenceLinks(e){(e&&typeof e.querySelectorAll=="function"?e:document).querySelectorAll("mjx-container").forEach(a=>this.exposeReferenceLinks(a))},exposeReferenceLinks(e){if(!e||typeof e.querySelectorAll!="function")return;let t=Array.from(e.querySelectorAll("mjx-assistive-mml [href]")),a=e;e.querySelectorAll('[aria-hidden="true"] a[href]').forEach(r=>{r.setAttribute("tabindex","-1");let i=r.getAttribute("href")||"";if(!i.startsWith("#")||r.dataset.mathReferenceExposed==="true")return;r.dataset.mathReferenceExposed="true";let s=a.nextElementSibling;if(s&&s.classList.contains("math-reference-link")&&s.getAttribute("href")===i){a=s;return}let n=t.find(f=>f.getAttribute("href")===i),d=(n&&n.textContent||r.textContent||"").replace(/\s+/g," ").trim(),h=document.createElement("a");h.className="math-reference-link",h.href=i,h.textContent=d?`Equation ${d}`:"Equation",a.insertAdjacentElement("afterend",h),a=h})},decorateInline(e,t){e&&(e.classList.contains("math-expression__inline")||e.classList.add("math-expression__inline"),e.dataset.mathLatexClean=this.cleanLatex(t))},decorateDisplay(e,t){if(!e)return;let r=e.parentElement&&e.parentElement.classList.contains("math-expression")?e.parentElement:null;r||(r=document.createElement("figure"),r.className="math-expression math-expression--display",e.parentNode.insertBefore(r,e),r.appendChild(e)),r.removeAttribute("role"),r.removeAttribute("aria-label"),r.removeAttribute("tabindex");let i=this.extractEquationInfo(t);this.anchorCounter+=1;let s=`eq:auto-${this.anchorCounter}`,n=this.mathJaxNumbersEquations(),d=n?this.mathJaxNumber(e):this.ownNumber(i),h=this.buildAnchorId(i.label,s);if(r.dataset.mathLatex=t,r.dataset.mathLatexClean=this.cleanLatex(t),e.dataset.mathAlt&&!r.dataset.mathAlt&&(r.dataset.mathAlt=e.dataset.mathAlt),d?r.dataset.equationNumber=d:r.removeAttribute("data-equation-number"),r.dataset.equationLabel=i.label||"",h){r.id=h;let f=d||i.label||h;if((d||i.label)&&(this.setEquationReference(h,f),i.label&&i.label!==h&&this.setEquationReference(i.label,f,h),i.label&&i.label.startsWith("eq:"))){let g=i.label.replace(/^eq:/,"");this.setEquationReference(g,f,h)}}n||this.attachNumberBadge(r,d),this.attachToolbar(r)},mathJaxNumbersEquations(){if(this.numbering)return!0;let e=this.MathJax&&this.MathJax.config?this.MathJax.config.tex:null,t=e?e.tags:null;return!!t&&t!=="none"},mathJaxNumber(e){let t=e.querySelector("mjx-assistive-mml mlabeledtr > mtd:first-child");return t?(t.textContent||"").replace(/\s+/g," ").trim():""},ownNumber(e){let t=e.tag||"";return e.skipNumber||(this.displayCounter+=1,t||(t=String(this.displayCounter))),t?`(${t})`:""},extractEquationInfo(e){let t=(e||"").trim(),a=t.match(/\\tag\*?\{([^}]*)\}/),r=t.match(/\\label\{([^}]*)\}/),i=/\\notag|\\nonumber/.test(t);return{tag:a?a[1].trim():"",label:r?r[1].trim():"",skipNumber:i}},buildAnchorId(e,t){return e?e.startsWith("eq:")?e:`eq:${e}`:t||""},setEquationReference(e,t,a){if(!e)return;let r=a||e,i=t||e;this.equationMap.set(e,{anchor:r,label:e,number:i}),e.startsWith("eq:")||this.equationMap.set(`eq:${e}`,{anchor:r,label:e,number:i})},attachNumberBadge(e,t){let a=e.querySelector(".math-expression__number"),r=e.querySelector(".math-expression__sr");if(!t){a&&a.remove(),r&&r.remove();return}a||(a=document.createElement("span"),a.className="math-expression__number",a.setAttribute("aria-hidden","true"),e.appendChild(a)),a.textContent=t,r||(r=document.createElement("span"),r.className="visually-hidden math-expression__sr",e.appendChild(r)),r.textContent=`Equation ${t.replace(/[()]/g,"")}`},attachToolbar(e){let t=e.querySelector(".math-expression__toolbar");if(!t){t=document.createElement("div"),t.className="math-expression__toolbar";let a=document.createElement("button");a.type="button",a.className="math-expression__button",a.setAttribute("data-math-copy","true"),a.setAttribute("aria-label","Copy LaTeX code");let r=document.createElement("span");r.setAttribute("aria-hidden","true"),r.textContent="\u29C9";let i=document.createElement("span");i.className="visually-hidden",i.textContent="Copy equation",a.appendChild(r),a.appendChild(i);let s=document.createElement("button");s.type="button",s.className="math-expression__button",s.setAttribute("data-math-edit","true"),s.setAttribute("aria-label","Open equation editor");let n=document.createElement("span");n.setAttribute("aria-hidden","true"),n.textContent="\u270E";let d=document.createElement("span");d.className="visually-hidden",d.textContent="Edit equation",s.appendChild(n),s.appendChild(d);let h=document.createElement("span");h.className="math-expression__message",h.setAttribute("aria-live","polite"),h.hidden=!0,t.appendChild(a),t.appendChild(s),t.appendChild(h),e.appendChild(t)}},handleClick(e){let t=e.target.closest("[data-math-copy]");if(t){e.preventDefault();let n=t.closest(".math-expression"),d=n?n.dataset.mathLatexClean||n.dataset.mathLatex:null;this.copyLatex(d,n);return}let a=e.target.closest("[data-math-edit]");if(a){e.preventDefault();let n=a.closest(".math-expression"),d=n&&n.dataset.mathLatex||"";this.openEditor(d);return}if(e.target.closest("[data-math-editor-close]")){e.preventDefault(),this.closeEditor();return}if(e.target.closest("[data-math-editor-copy]")){e.preventDefault(),this.editor&&this.editor.textarea&&this.copyLatex(this.editor.textarea.value,null,this.editor.status);return}let s=e.target.closest("[data-symbol-insert]");if(s){e.preventDefault();let n=s.getAttribute("data-symbol-insert");this.insertSymbol(n||"")}},handleKeydown(e){let t=document.activeElement,a=t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable);if((e.ctrlKey||e.metaKey)&&e.altKey&&(e.key==="e"||e.key==="E")){e.preventDefault();let r=a&&t&&t.value||"";this.openEditor(r);return}e.key==="Escape"&&this.editorOpen&&(e.preventDefault(),this.closeEditor())},copyLatex(e,t,a){if(!e)return;let r=s=>{if(a)a.hidden=!1,a.textContent=s,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{a.hidden=!0,a.textContent=""},2e3);else if(t){let n=t.querySelector(".math-expression__message");n&&(n.hidden=!1,n.textContent=s,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{n.hidden=!0,n.textContent=""},2e3))}},i=()=>{let s=document.createElement("textarea");s.value=e,s.setAttribute("aria-hidden","true"),s.style.position="fixed",s.style.opacity="0",document.body.appendChild(s),s.select();try{document.execCommand("copy"),r("Copied equation")}catch(n){r("Unable to copy")}document.body.removeChild(s)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>r("Copied equation")).catch(()=>i()):i()},setupEditor(){if(this.editor)return;let e=document.createElement("div");e.id="math-tooling-panel",e.hidden=!0;let t=document.createElement("div");t.className="math-tooling",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-labelledby","math-tooling-title");let a=document.createElement("h2");a.id="math-tooling-title",a.className="math-tooling__title",a.textContent="Equation editor";let r=document.createElement("p");r.id="math-tooling-description",r.className="math-tooling__description",r.textContent="Craft LaTeX expressions with live preview, quick statistical symbols, and chemistry support.";let i=document.createElement("textarea");i.className="math-tooling__input",i.setAttribute("data-math-editor-input","true"),i.setAttribute("spellcheck","false"),i.setAttribute("aria-label","LaTeX source"),i.setAttribute("aria-describedby",r.id),i.rows=10;let s=document.createElement("div");s.className="math-tooling__actions";let n=document.createElement("div");n.className="math-tooling__preview",n.setAttribute("data-math-editor-preview","true"),n.setAttribute("aria-live","polite");let d=document.createElement("span");d.className="math-tooling__status",d.hidden=!0;let h=document.createElement("div");h.className="math-tooling__library";let f=document.createElement("h3");f.className="math-tooling__library-title",f.textContent="Quick insert";let g=document.createElement("div");g.className="math-tooling__symbols",[{label:"Mean \u03BC",value:"\\mu"},{label:"Variance \u03C3\xB2",value:"\\sigma^2"},{label:"Std. dev \u03C3",value:"\\sigma"},{label:"Probability",value:"\\mathbb{P}(A)"},{label:"Expectation",value:"\\mathbb{E}[X]"},{label:"Covariance",value:"\\mathrm{Cov}(X, Y)"},{label:"Vector",value:"\\mathbf{x}"},{label:"Norm",value:"\\lVert x \\rVert_2"},{label:"Inner product",value:"\\langle x, y \\rangle"},{label:"Derivative",value:"\\frac{\\mathrm{d}}{\\mathrm{d}t}"},{label:"Integral",value:"\\int_0^1 f(x) \\, \\mathrm{d}x"},{label:"Bayes",value:"\\mathbb{P}(A \\mid B)"},{label:"Chemical H\u2082O",value:"\\ce{H2O}"},{label:"Chemical CO\u2082",value:"\\ce{CO2}"}].forEach(b=>{let y=document.createElement("button");y.type="button",y.className="math-tooling__symbol",y.setAttribute("data-symbol-insert",b.value),y.textContent=b.label,g.appendChild(y)});let u=document.createElement("button");u.type="button",u.className="math-tooling__close",u.setAttribute("data-math-editor-close","true");let o=document.createElement("span");o.setAttribute("aria-hidden","true"),o.textContent="\u2715";let c=document.createElement("span");c.className="visually-hidden",c.textContent="Close equation editor",u.appendChild(o),u.appendChild(c);let m=document.createElement("button");m.type="button",m.className="math-tooling__copy",m.setAttribute("data-math-editor-copy","true"),m.textContent="Copy LaTeX",s.appendChild(m),s.appendChild(u),s.appendChild(d),h.appendChild(f),h.appendChild(g),t.appendChild(a),t.appendChild(r),t.appendChild(i),t.appendChild(n),t.appendChild(s),t.appendChild(h),e.appendChild(t),document.body.appendChild(e),i.addEventListener("input",()=>this.updateEditorPreview()),this.editor={overlay:e,dialog:t,textarea:i,preview:n,status:d}},openEditor(e){if(!this.editor)return;let t=(e||"").trim();this.editor.overlay.hidden=!1,document.body.classList.add("math-tooling-open"),this.editor.textarea.value=t,this.editor.textarea.focus(),this.editor.textarea.setSelectionRange(t.length,t.length),this.editorOpen=!0,this.updateEditorPreview()},closeEditor(){this.editor&&(this.editor.overlay.hidden=!0,document.body.classList.remove("math-tooling-open"),this.editorOpen=!1)},updateEditorPreview(){if(!this.editor||!this.MathJax)return;let e=this.editor.textarea.value.trim();if(!e){this.editor.preview.replaceChildren();let t=document.createElement("p");t.className="math-tooling__placeholder",t.textContent="Preview will appear here.",this.editor.preview.appendChild(t);return}this.renderLatex(this.editor.preview,e,{display:!0,name:!0})},insertSymbol(e){if(!this.editor||!this.editor.textarea)return;let t=this.editor.textarea,a=t.selectionStart||0,r=t.selectionEnd||0,i=t.value,s=`${i.slice(0,a)}${e}${i.slice(r)}`;t.value=s;let n=a+e.length;t.focus(),t.setSelectionRange(n,n),this.updateEditorPreview()},updateEquationReferences(){if(!this.equationMap||this.equationMap.size===0)return;document.querySelectorAll("[data-equation-ref]").forEach(a=>{let r=a.getAttribute("data-equation-ref");if(!r)return;let i=this.lookupEquation(r.replace(/^#/,""));if(!i)return;a.setAttribute("href",`#${i.anchor}`);let s=a.textContent.trim();(!s||s===r||s===i.anchor||s===`(${r})`)&&(a.textContent=i.number||i.anchor),a.classList.add("math-reference"),a.setAttribute("aria-label",`Jump to equation ${i.number||i.anchor}`)}),document.querySelectorAll('a[href^="#eq:"]').forEach(a=>{let r=a.getAttribute("href");if(!r)return;let i=r.replace(/^#/,""),s=this.lookupEquation(i);if(!s)return;a.setAttribute("href",`#${s.anchor}`);let n=a.textContent.trim();(!n||n===r||n===i)&&(a.textContent=s.number||s.anchor),a.dataset.equationRef=s.anchor,a.classList.add("math-reference")})},lookupEquation(e){if(!e)return null;if(this.equationMap.has(e))return this.equationMap.get(e);let t=e.startsWith("eq:")?e:`eq:${e}`;return this.equationMap.get(t)||null},renderLatex(e,t,a={}){if(!e)return Promise.resolve();let r=a.display!==!1;if(!this.MathJax)return e.textContent=t,this.pendingTypeset||(this.pendingTypeset=[]),this.pendingTypeset.push({target:e,latex:t,options:a}),Promise.resolve();let i=r?`\\[${t}\\]`:`\\(${t}\\)`;e.textContent=i,this.renderedLatex||(this.renderedLatex=new WeakMap),this.renderedLatex.set(e,t);let s=this.MathJax.typesetPromise([e]).catch(n=>{});return a.name?s.then(()=>this.nameRendered(e,t)):s},nameRendered(e,t){let a=e.querySelector("mjx-container");!a||this.renderedLatex.get(e)!==t||(a.setAttribute("role","math"),a.setAttribute("aria-label",this.resolveAltText(null,t)))},cleanLatex(e){return(e||"").replace(/%\s*alt:.*$/gm,"").replace(/\\label\{[^}]*\}/g,"").replace(/\\tag\*?\{[^}]*\}/g,"").trim()},resolveAltText(e,t){let a=e||null,r=this.findDatasetAlt(a);if(r)return r;let i=this.extractAltComment(t);if(i)return i;let n=(a&&a.getAttribute?a.getAttribute("data-math-source"):null)||t;return this.generateAltFromLatex(n)},findDatasetAlt(e){let t=e;for(;t;){if(t.dataset&&t.dataset.mathAlt){let a=t.dataset.mathAlt.trim();if(a)return a}t=t.parentElement}return""},extractAltComment(e){if(!e)return"";let t=String(e).split(/\r?\n/);for(let a=0;a<t.length;a+=1){let r=t[a];if(!r)continue;let i=r.match(/%\s*alt:\s*(.+)$/i);if(i)return i[1].trim()}return""},generateAltFromLatex(e){return e?k(e)||"Mathematical expression":""},syncAltAttributes(e,t,a){a&&(e&&e.setAttribute&&(e.setAttribute("aria-label",a),e.dataset&&(e.dataset.mathAlt=a)),t&&t.setAttribute&&(t.setAttribute("aria-label",a),t.dataset&&(t.dataset.mathAlt=a)))}};typeof globalThis!="undefined"&&(globalThis.__DATALOG_MATH_INTERNALS__=l),typeof document!="undefined"&&(document.addEventListener("datalog:math-ready",()=>l.exposeAllReferenceLinks(document)),l.exposeAllReferenceLinks(document)),window.DatalogMath={init(e,t){l.initialized||l.init(e,t)},onPageReady(){l.initialized&&l.onPageReady()},renderLatex(e,t,a){return l.renderLatex(e,t,a)},restore(e){l.restoreContainer(e)},restoreAll(e){l.restoreAll(e)}},l.start(window.MathJax)})();
@@ -1 +1 @@
1
- import{a as H}from"./chunks/chunk-WIRUK3OZ.js";import{a as T,b as W}from"./chunks/chunk-VZ5WKQVA.js";import{a as O,b as B}from"./chunks/chunk-PATLC23F.js";var P="moderation",et=["comment","correction","abuse"],nt={approve:"approved",spam:"spam",hide:"hidden",delete:"deleted",reviewed:"reviewed",accept:"accepted",reject:"rejected",resolve:"resolved",dismiss:"dismissed"},ot={comment:{pending:["approve","spam","delete"],approved:["hide","spam","delete"],spam:["approve","delete"],hidden:["approve","delete"]},correction:{new:["reviewed","accept","reject"],reviewed:["accept","reject"],accepted:["resolve","reject"]},abuse:{open:["dismiss","hide","delete"]}},at={comment:["pending"],correction:["new","reviewed","accepted"],abuse:["open"]},Y=/^https?:\/\//i,rt=new Set(["unauthorized","forbidden"]),it=new Set(["disabled","unsupported","version"]);function st(t,e){let i=t.querySelector(e);if(!i)return{};try{return JSON.parse(i.textContent)||{}}catch(s){return{}}}function r(t){return typeof t=="string"?t:""}function G(t){return(ot[t.type]||{})[t.status]||[]}function J(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=r(t.type).toLowerCase();if(t.id===null||t.id===void 0||!et.includes(e))return null;let i=t.author&&typeof t.author=="object"?t.author:{},s=t.context&&typeof t.context=="object"?t.context:{},c=s.parent&&typeof s.parent=="object"?s.parent:null,u=t.resolution&&typeof t.resolution=="object"?t.resolution:{},_=Array.isArray(t.history)?t.history:[];return{id:String(t.id),type:e,status:r(t.status).toLowerCase(),created_at:r(t.created_at),path:r(t.path),title:r(t.title),author:{name:r(i.name),email:r(i.email)},body:r(t.body)||r(t.message),category:r(t.category),section:r(t.section),quote:r(t.quote),reason:r(t.reason),parent:c?{author:r(c.author&&c.author.name),body:r(c.body)}:null,link:Y.test(r(u.url))?u.url:"",history:_.filter(g=>g&&typeof g=="object").map(g=>({action:r(g.action),at:r(g.at),moderator:r(g.moderator),note:r(g.note)}))}}function lt(t={},e=""){let i=new URLSearchParams;["type","status","path","category","since","q"].forEach(c=>{let u=r(t[c]).trim();u&&u!=="all"&&i.set(c,u)}),e&&i.set("cursor",e);let s=i.toString();return s?`?${s}`:""}function K(t,e){let i=new Date(t);if(Number.isNaN(i.getTime()))return t;try{return i.toLocaleString(e||void 0,{dateStyle:"medium",timeStyle:"short"})}catch(s){return i.toISOString()}}function o(t,e,i,s,c){let u=t.createElement(i);return s&&(u.className=s),c!==void 0&&(u.textContent=c),e.appendChild(u),u}function V(t,e,i={}){let{labels:s={},lang:c,siteUrl:u="",onAction:_}=i,g=s.types||{},h=s.statuses||{},j=s.actions||{},C=t.createElement("li");C.className=`moderation-item moderation-item--${e.type}`,C.dataset.itemId=e.id,C.dataset.itemStatus=e.status;let b=o(t,C,"article","moderation-item__card"),x=o(t,b,"header","moderation-item__meta");if(o(t,x,"span","moderation-item__type",g[e.type]||e.type),o(t,x,"span","moderation-item__status",h[e.status]||e.status),e.category&&o(t,x,"span","moderation-item__category",(s.categories||{})[e.category]||e.category),e.created_at){let l=o(t,x,"time","moderation-item__time",K(e.created_at,c));l.dateTime=e.created_at}if(e.path){let l=o(t,b,"p","moderation-item__where"),d=o(t,l,"a","",e.title||e.path);e.path.startsWith("/")&&!e.path.startsWith("//")&&(d.href=`${u.replace(/\/+$/,"")}${e.path}${e.section?`#${encodeURIComponent(e.section)}`:""}`)}if((e.author.name||e.author.email)&&o(t,b,"p","moderation-item__author",[e.author.name,e.author.email].filter(Boolean).join(" \xB7 ")),e.parent){let l=o(t,b,"blockquote","moderation-item__context");o(t,l,"p","",`${s.in_reply_to||"In reply to"} ${e.parent.author||""}`.trim()),o(t,l,"p","",e.parent.body)}e.quote&&o(t,b,"blockquote","moderation-item__quote",e.quote),e.reason&&o(t,b,"p","moderation-item__reason",e.reason);let v=o(t,b,"div","moderation-item__body");if(e.body.split(/\n{2,}/).forEach(l=>o(t,v,"p","",l)),e.link){let l=o(t,b,"p","moderation-item__link"),d=o(t,l,"a","",e.link);d.href=e.link,d.rel="noopener"}if(e.history.length>0){let l=o(t,b,"ol","moderation-item__history");e.history.forEach(d=>{let E=[j[d.action]||d.action,d.moderator,d.at?K(d.at,c):"",d.note].filter(Boolean).join(" \xB7 ");o(t,l,"li","",E)})}let A=G(e);if(A.length>0&&_){let l=o(t,b,"div","moderation-item__actions"),d=`moderation-note-${e.id}`,E=o(t,l,"label","moderation-item__note-label",s.note||"Note");E.htmlFor=d;let q=o(t,l,"input","moderation-item__note");q.type="text",q.id=d,q.name="note";let k=null;if(A.includes("resolve")){let m=`moderation-link-${e.id}`,L=o(t,l,"label","moderation-item__note-label",s.link||"Issue, pull request or revision");L.htmlFor=m,k=o(t,l,"input","moderation-item__note"),k.type="url",k.id=m,k.name="link"}let U=o(t,l,"div","moderation-item__buttons");A.forEach(m=>{let L=o(t,U,"button","post-tool",j[m]||m);L.type="button",L.dataset.moderationAction=m,L.addEventListener("click",()=>_(e,m,{note:q.value.trim(),link:k?k.value.trim():""}))})}let S=o(t,b,"p","moderation-item__message");return S.setAttribute("data-item-message",""),S.setAttribute("role","status"),S.hidden=!0,C}function dt(t,e={}){let i=t.ownerDocument,s=i.defaultView,c=s&&s.DatalogDynamicServices||{},u=t.dataset.moderationEndpoint||"",_=e.client||W(B(O({},c),{features:u?{}:c.features,base_url:u||c.base_url||"",credentials:t.dataset.moderationCredentials||"include"})),g=H(),h=st(t,"[data-moderation-labels]"),j=h.errors||{},C=i.documentElement.lang||void 0,b=t.dataset.moderationSite||"",x=t.querySelector("[data-moderation-status]"),v=t.querySelector("[data-moderation-list]"),A=t.querySelector("[data-moderation-filters]"),S=t.querySelector("[data-moderation-more]"),l=t.querySelector("[data-moderation-sign-in]"),d="",E=!1,q=0,k={},U=0,m=(n,a="",y=!1)=>{t.dataset.state=n,t.setAttribute("aria-busy",n==="loading"?"true":"false"),x&&(x.textContent=a,x.hidden=a==="",x.setAttribute("role",y?"alert":"status")),l&&(l.hidden=n!=="unauthorized")},L=()=>{let n={};return A&&new FormData(A).forEach((a,y)=>{n[y]=String(a)}),n},Q=n=>{v.textContent="",S&&(S.hidden=!0),n&&n.kind==="unauthorized"?m("unauthorized",h.unauthorized||"",!0):n&&n.kind==="forbidden"?m("forbidden",h.forbidden||"",!0):n&&it.has(n.kind)?m("disabled",T(n,j)):m("error",T(n,j),!0)},N=(n,a,y=!1)=>{let f=n.querySelector("[data-item-message]");f&&(f.textContent=a,f.hidden=a==="",f.setAttribute("role",y?"alert":"status"))},tt=n=>{let a=r(k.status).trim();return a?a===n.status:(at[n.type]||[]).includes(n.status)},w={root:t,client:_,async load(n=!1,a=n?k:L()){if(E&&n)return null;let y=++q,f=U;E=!0,n||(d=""),m("loading",h.loading||"");try{await _.feature(P);let I=await _.get(`${_.pathFor(P)}/items${lt(a,n?d:"")}`);if(y!==q)return null;if(f!==U)return E=!1,w.load(n,a);k=a;let $=I&&I.data&&typeof I.data=="object"?I.data:{},p=(Array.isArray($.items)?$.items:[]).map(J).filter(Boolean);n||(v.textContent=""),p.forEach(F=>v.appendChild(V(i,F,{labels:h,lang:C,siteUrl:b,onAction:w.act}))),d=r($.next_cursor),S&&(S.hidden=d==="");let D=v.children.length;return m(D>0?"loaded":"empty",D>0?"":h.empty||""),p}catch(I){return y!==q?null:f!==U?(E=!1,w.load(n,a)):(Q(I),null)}finally{y===q&&(E=!1)}},async act(n,a,y={}){let f=Array.from(v.children).find(p=>p.dataset.itemId===n.id);if(!f||!G(n).includes(a))return null;if(a==="resolve"&&!Y.test(y.link||""))return N(f,h.link_required||"",!0),null;let I=Array.from(f.querySelectorAll("button"));I.forEach(p=>{p.disabled=!0}),f.setAttribute("aria-busy","true"),N(f,h.working||"");let $={action:a};y.note&&($.note=y.note),a==="resolve"&&($.link=y.link);try{let p=await _.post(`${_.pathFor(P)}/items/${encodeURIComponent(n.id)}/actions`,$,{idempotencyKey:g.key($,n.id)});g.clear(n.id),U+=1;let F=J(p&&p.data&&p.data.item)||B(O({},n),{status:nt[a]||n.status}),z=Array.from(v.children).find(R=>R.dataset.itemId===n.id);if(!z)return F;let M=(h.done||"{{action}}").split("{{action}}").join((h.actions||{})[a]||a);if(tt(F)){let R=V(i,F,{labels:h,lang:C,siteUrl:b,onAction:w.act});v.replaceChild(R,z),N(R,M)}else z.remove(),m(v.children.length>0?"loaded":"empty",v.children.length>0?M:`${M} ${h.empty||""}`.trim());return F}catch(p){return p&&rt.has(p.kind)?Q(p):(f.setAttribute("aria-busy","false"),I.forEach(D=>{D.disabled=!1}),N(f,T(p,j),!0)),null}}};return A&&(A.addEventListener("submit",n=>{n.preventDefault(),w.load()}),A.addEventListener("reset",()=>{Promise.resolve().then(()=>w.load())})),S&&S.addEventListener("click",()=>w.load(!0)),_.enabled?(w.load(),w):(m("disabled",j.disabled||""),w)}function X(t=document){return Array.from(t.querySelectorAll("[data-moderation-inbox]")).map(e=>dt(e))}function Z(){X(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Z,{once:!0}):Z();
1
+ import{a as H}from"./chunks/chunk-TNVD6UAM.js";import{a as T,b as W}from"./chunks/chunk-VZ5WKQVA.js";import{a as O,b as B}from"./chunks/chunk-PATLC23F.js";var P="moderation",et=["comment","correction","abuse"],nt={approve:"approved",spam:"spam",hide:"hidden",delete:"deleted",reviewed:"reviewed",accept:"accepted",reject:"rejected",resolve:"resolved",dismiss:"dismissed"},ot={comment:{pending:["approve","spam","delete"],approved:["hide","spam","delete"],spam:["approve","delete"],hidden:["approve","delete"]},correction:{new:["reviewed","accept","reject"],reviewed:["accept","reject"],accepted:["resolve","reject"]},abuse:{open:["dismiss","hide","delete"]}},at={comment:["pending"],correction:["new","reviewed","accepted"],abuse:["open"]},Y=/^https?:\/\//i,rt=new Set(["unauthorized","forbidden"]),it=new Set(["disabled","unsupported","version"]);function st(t,e){let i=t.querySelector(e);if(!i)return{};try{return JSON.parse(i.textContent)||{}}catch(s){return{}}}function r(t){return typeof t=="string"?t:""}function G(t){return(ot[t.type]||{})[t.status]||[]}function J(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=r(t.type).toLowerCase();if(t.id===null||t.id===void 0||!et.includes(e))return null;let i=t.author&&typeof t.author=="object"?t.author:{},s=t.context&&typeof t.context=="object"?t.context:{},c=s.parent&&typeof s.parent=="object"?s.parent:null,u=t.resolution&&typeof t.resolution=="object"?t.resolution:{},_=Array.isArray(t.history)?t.history:[];return{id:String(t.id),type:e,status:r(t.status).toLowerCase(),created_at:r(t.created_at),path:r(t.path),title:r(t.title),author:{name:r(i.name),email:r(i.email)},body:r(t.body)||r(t.message),category:r(t.category),section:r(t.section),quote:r(t.quote),reason:r(t.reason),parent:c?{author:r(c.author&&c.author.name),body:r(c.body)}:null,link:Y.test(r(u.url))?u.url:"",history:_.filter(g=>g&&typeof g=="object").map(g=>({action:r(g.action),at:r(g.at),moderator:r(g.moderator),note:r(g.note)}))}}function lt(t={},e=""){let i=new URLSearchParams;["type","status","path","category","since","q"].forEach(c=>{let u=r(t[c]).trim();u&&u!=="all"&&i.set(c,u)}),e&&i.set("cursor",e);let s=i.toString();return s?`?${s}`:""}function K(t,e){let i=new Date(t);if(Number.isNaN(i.getTime()))return t;try{return i.toLocaleString(e||void 0,{dateStyle:"medium",timeStyle:"short"})}catch(s){return i.toISOString()}}function o(t,e,i,s,c){let u=t.createElement(i);return s&&(u.className=s),c!==void 0&&(u.textContent=c),e.appendChild(u),u}function V(t,e,i={}){let{labels:s={},lang:c,siteUrl:u="",onAction:_}=i,g=s.types||{},h=s.statuses||{},j=s.actions||{},C=t.createElement("li");C.className=`moderation-item moderation-item--${e.type}`,C.dataset.itemId=e.id,C.dataset.itemStatus=e.status;let b=o(t,C,"article","moderation-item__card"),x=o(t,b,"header","moderation-item__meta");if(o(t,x,"span","moderation-item__type",g[e.type]||e.type),o(t,x,"span","moderation-item__status",h[e.status]||e.status),e.category&&o(t,x,"span","moderation-item__category",(s.categories||{})[e.category]||e.category),e.created_at){let l=o(t,x,"time","moderation-item__time",K(e.created_at,c));l.dateTime=e.created_at}if(e.path){let l=o(t,b,"p","moderation-item__where"),d=o(t,l,"a","",e.title||e.path);e.path.startsWith("/")&&!e.path.startsWith("//")&&(d.href=`${u.replace(/\/+$/,"")}${e.path}${e.section?`#${encodeURIComponent(e.section)}`:""}`)}if((e.author.name||e.author.email)&&o(t,b,"p","moderation-item__author",[e.author.name,e.author.email].filter(Boolean).join(" \xB7 ")),e.parent){let l=o(t,b,"blockquote","moderation-item__context");o(t,l,"p","",`${s.in_reply_to||"In reply to"} ${e.parent.author||""}`.trim()),o(t,l,"p","",e.parent.body)}e.quote&&o(t,b,"blockquote","moderation-item__quote",e.quote),e.reason&&o(t,b,"p","moderation-item__reason",e.reason);let v=o(t,b,"div","moderation-item__body");if(e.body.split(/\n{2,}/).forEach(l=>o(t,v,"p","",l)),e.link){let l=o(t,b,"p","moderation-item__link"),d=o(t,l,"a","",e.link);d.href=e.link,d.rel="noopener"}if(e.history.length>0){let l=o(t,b,"ol","moderation-item__history");e.history.forEach(d=>{let E=[j[d.action]||d.action,d.moderator,d.at?K(d.at,c):"",d.note].filter(Boolean).join(" \xB7 ");o(t,l,"li","",E)})}let A=G(e);if(A.length>0&&_){let l=o(t,b,"div","moderation-item__actions"),d=`moderation-note-${e.id}`,E=o(t,l,"label","moderation-item__note-label",s.note||"Note");E.htmlFor=d;let q=o(t,l,"input","moderation-item__note");q.type="text",q.id=d,q.name="note";let k=null;if(A.includes("resolve")){let m=`moderation-link-${e.id}`,L=o(t,l,"label","moderation-item__note-label",s.link||"Issue, pull request or revision");L.htmlFor=m,k=o(t,l,"input","moderation-item__note"),k.type="url",k.id=m,k.name="link"}let U=o(t,l,"div","moderation-item__buttons");A.forEach(m=>{let L=o(t,U,"button","post-tool",j[m]||m);L.type="button",L.dataset.moderationAction=m,L.addEventListener("click",()=>_(e,m,{note:q.value.trim(),link:k?k.value.trim():""}))})}let S=o(t,b,"p","moderation-item__message");return S.setAttribute("data-item-message",""),S.setAttribute("role","status"),S.hidden=!0,C}function dt(t,e={}){let i=t.ownerDocument,s=i.defaultView,c=s&&s.DatalogDynamicServices||{},u=t.dataset.moderationEndpoint||"",_=e.client||W(B(O({},c),{features:u?{}:c.features,base_url:u||c.base_url||"",credentials:t.dataset.moderationCredentials||"include"})),g=H(),h=st(t,"[data-moderation-labels]"),j=h.errors||{},C=i.documentElement.lang||void 0,b=t.dataset.moderationSite||"",x=t.querySelector("[data-moderation-status]"),v=t.querySelector("[data-moderation-list]"),A=t.querySelector("[data-moderation-filters]"),S=t.querySelector("[data-moderation-more]"),l=t.querySelector("[data-moderation-sign-in]"),d="",E=!1,q=0,k={},U=0,m=(n,a="",y=!1)=>{t.dataset.state=n,t.setAttribute("aria-busy",n==="loading"?"true":"false"),x&&(x.textContent=a,x.hidden=a==="",x.setAttribute("role",y?"alert":"status")),l&&(l.hidden=n!=="unauthorized")},L=()=>{let n={};return A&&new FormData(A).forEach((a,y)=>{n[y]=String(a)}),n},Q=n=>{v.textContent="",S&&(S.hidden=!0),n&&n.kind==="unauthorized"?m("unauthorized",h.unauthorized||"",!0):n&&n.kind==="forbidden"?m("forbidden",h.forbidden||"",!0):n&&it.has(n.kind)?m("disabled",T(n,j)):m("error",T(n,j),!0)},N=(n,a,y=!1)=>{let f=n.querySelector("[data-item-message]");f&&(f.textContent=a,f.hidden=a==="",f.setAttribute("role",y?"alert":"status"))},tt=n=>{let a=r(k.status).trim();return a?a===n.status:(at[n.type]||[]).includes(n.status)},w={root:t,client:_,async load(n=!1,a=n?k:L()){if(E&&n)return null;let y=++q,f=U;E=!0,n||(d=""),m("loading",h.loading||"");try{await _.feature(P);let I=await _.get(`${_.pathFor(P)}/items${lt(a,n?d:"")}`);if(y!==q)return null;if(f!==U)return E=!1,w.load(n,a);k=a;let $=I&&I.data&&typeof I.data=="object"?I.data:{},p=(Array.isArray($.items)?$.items:[]).map(J).filter(Boolean);n||(v.textContent=""),p.forEach(F=>v.appendChild(V(i,F,{labels:h,lang:C,siteUrl:b,onAction:w.act}))),d=r($.next_cursor),S&&(S.hidden=d==="");let D=v.children.length;return m(D>0?"loaded":"empty",D>0?"":h.empty||""),p}catch(I){return y!==q?null:f!==U?(E=!1,w.load(n,a)):(Q(I),null)}finally{y===q&&(E=!1)}},async act(n,a,y={}){let f=Array.from(v.children).find(p=>p.dataset.itemId===n.id);if(!f||!G(n).includes(a))return null;if(a==="resolve"&&!Y.test(y.link||""))return N(f,h.link_required||"",!0),null;let I=Array.from(f.querySelectorAll("button"));I.forEach(p=>{p.disabled=!0}),f.setAttribute("aria-busy","true"),N(f,h.working||"");let $={action:a};y.note&&($.note=y.note),a==="resolve"&&($.link=y.link);try{let p=await _.post(`${_.pathFor(P)}/items/${encodeURIComponent(n.id)}/actions`,$,{idempotencyKey:g.key($,n.id)});g.clear(n.id),U+=1;let F=J(p&&p.data&&p.data.item)||B(O({},n),{status:nt[a]||n.status}),z=Array.from(v.children).find(R=>R.dataset.itemId===n.id);if(!z)return F;let M=(h.done||"{{action}}").split("{{action}}").join((h.actions||{})[a]||a);if(tt(F)){let R=V(i,F,{labels:h,lang:C,siteUrl:b,onAction:w.act});v.replaceChild(R,z),N(R,M)}else z.remove(),m(v.children.length>0?"loaded":"empty",v.children.length>0?M:`${M} ${h.empty||""}`.trim());return F}catch(p){return p&&rt.has(p.kind)?Q(p):(f.setAttribute("aria-busy","false"),I.forEach(D=>{D.disabled=!1}),N(f,T(p,j),!0)),null}}};return A&&(A.addEventListener("submit",n=>{n.preventDefault(),w.load()}),A.addEventListener("reset",()=>{Promise.resolve().then(()=>w.load())})),S&&S.addEventListener("click",()=>w.load(!0)),_.enabled?(w.load(),w):(m("disabled",j.disabled||""),w)}function X(t=document){return Array.from(t.querySelectorAll("[data-moderation-inbox]")).map(e=>dt(e))}function Z(){X(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Z,{once:!0}):Z();
@@ -1 +1 @@
1
- import{a as L}from"./chunks/chunk-WIRUK3OZ.js";import{a as A,c as j}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var x="reactions",M="datalog-reaction:",N=new Set(["disabled","unsupported","version"]);function $(n,r){let s=n.querySelector(r);if(!s)return{};try{return JSON.parse(s.textContent)||{}}catch(o){return{}}}function B(n,r){try{return n?n.getItem(M+r):null}catch(s){return null}}function G(n,r,s){try{n&&n.setItem(M+r,s)}catch(o){}}function D(n){let r=n&&typeof n=="object"?n.counts:null;if(!r||typeof r!="object"||Array.isArray(r))return null;let s={};return Object.keys(r).forEach(o=>{let c=r[o];Number.isInteger(c)&&c>=0&&(s[o]=c)}),s}function J(n,r={}){let s=n.ownerDocument,o=r.window||s.defaultView,c=r.client||j(),E=r.storage===void 0?K(o):r.storage,d=n.dataset.reactionsPath||"/",U=n.dataset.reactionsCounts!=="false",C=L(),f=$(n,"[data-reactions-labels]"),I=f.errors||{},b=n.querySelector("[data-reactions-status]"),i=Array.from(n.querySelectorAll("[data-reaction]")),m=null,p=!1,h=!1,y=B(E,d),g=0,u=(e,t=!1)=>{b&&(b.textContent=e,b.hidden=e==="",b.setAttribute("role",t?"alert":"status"))},l=e=>{n.dataset.state=e},w=()=>{i.forEach(e=>{e.setAttribute("aria-pressed",e.dataset.reaction===y?"true":"false")})},S=e=>{i.forEach(t=>{let a=t.querySelector("[data-reaction-count]");if(!a)return;let F=U&&e?e[t.dataset.reaction]:void 0;Number.isInteger(F)?(a.textContent=String(F),a.hidden=!1):(a.textContent="",a.hidden=!0)})},O=e=>{n.setAttribute("aria-busy",e?"true":"false"),i.forEach(t=>{t.disabled=e})},q=e=>{l("disabled"),S(null),i.forEach(t=>{t.disabled=!0}),u(A(e,I))},R=()=>(m||(m=c.feature(x).catch(e=>{throw m=null,e})),m),v={root:n,get selected(){return y},async load(){let e=++g;l("loading");try{await R();let t=await c.get(`${c.pathFor(x)}?path=${encodeURIComponent(d)}`);if(e!==g||h)return null;let a=D(t&&t.data);return S(a),l("loaded"),p=!0,a}catch(t){return e!==g||h||(t&&N.has(t.kind)?q(t):(S(null),l("unavailable"))),null}},async react(e){if(h||!i.some(t=>t.dataset.reaction===e))return null;if(e===y)return u(f.already||""),null;h=!0,g+=1,O(!0),l("pending"),u(f.sending||"");try{await R();let t=await c.post(c.pathFor(x),{path:d,reaction:e},{idempotencyKey:C.key({path:d,reaction:e})});C.clear(),y=e,G(E,d,e),w();let a=D(t&&t.data);return a&&S(a),l("selected"),u(f.thanks||""),t}catch(t){return t&&N.has(t.kind)?q(t):t&&t.kind==="conflict"?(w(),l(y?"selected":p?"loaded":"unavailable"),u(f.already||"")):(l(p?"loaded":"unavailable"),u(A(t,I),!0)),null}finally{h=!1,n.dataset.state!=="disabled"&&O(!1)}}};w(),i.forEach(e=>{e.addEventListener("click",()=>{v.react(e.dataset.reaction)})});let k=()=>{p||v.load()};if(r.immediate||!o||typeof o.IntersectionObserver!="function")k();else{let e=new o.IntersectionObserver(t=>{t.some(a=>a.isIntersecting)&&(e.disconnect(),k())},{rootMargin:"400px 0px"});e.observe(n)}return v}function K(n){try{return n&&n.localStorage?n.localStorage:null}catch(r){return null}}function P(n=document){return Array.from(n.querySelectorAll("[data-reactions]")).map(r=>J(r))}function T(){P(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",T,{once:!0}):T();
1
+ import{a as L}from"./chunks/chunk-TNVD6UAM.js";import{a as A,c as j}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var x="reactions",M="datalog-reaction:",N=new Set(["disabled","unsupported","version"]);function $(n,r){let s=n.querySelector(r);if(!s)return{};try{return JSON.parse(s.textContent)||{}}catch(o){return{}}}function B(n,r){try{return n?n.getItem(M+r):null}catch(s){return null}}function G(n,r,s){try{n&&n.setItem(M+r,s)}catch(o){}}function D(n){let r=n&&typeof n=="object"?n.counts:null;if(!r||typeof r!="object"||Array.isArray(r))return null;let s={};return Object.keys(r).forEach(o=>{let c=r[o];Number.isInteger(c)&&c>=0&&(s[o]=c)}),s}function J(n,r={}){let s=n.ownerDocument,o=r.window||s.defaultView,c=r.client||j(),E=r.storage===void 0?K(o):r.storage,d=n.dataset.reactionsPath||"/",U=n.dataset.reactionsCounts!=="false",C=L(),f=$(n,"[data-reactions-labels]"),I=f.errors||{},b=n.querySelector("[data-reactions-status]"),i=Array.from(n.querySelectorAll("[data-reaction]")),m=null,p=!1,h=!1,y=B(E,d),g=0,u=(e,t=!1)=>{b&&(b.textContent=e,b.hidden=e==="",b.setAttribute("role",t?"alert":"status"))},l=e=>{n.dataset.state=e},w=()=>{i.forEach(e=>{e.setAttribute("aria-pressed",e.dataset.reaction===y?"true":"false")})},S=e=>{i.forEach(t=>{let a=t.querySelector("[data-reaction-count]");if(!a)return;let F=U&&e?e[t.dataset.reaction]:void 0;Number.isInteger(F)?(a.textContent=String(F),a.hidden=!1):(a.textContent="",a.hidden=!0)})},O=e=>{n.setAttribute("aria-busy",e?"true":"false"),i.forEach(t=>{t.disabled=e})},q=e=>{l("disabled"),S(null),i.forEach(t=>{t.disabled=!0}),u(A(e,I))},R=()=>(m||(m=c.feature(x).catch(e=>{throw m=null,e})),m),v={root:n,get selected(){return y},async load(){let e=++g;l("loading");try{await R();let t=await c.get(`${c.pathFor(x)}?path=${encodeURIComponent(d)}`);if(e!==g||h)return null;let a=D(t&&t.data);return S(a),l("loaded"),p=!0,a}catch(t){return e!==g||h||(t&&N.has(t.kind)?q(t):(S(null),l("unavailable"))),null}},async react(e){if(h||!i.some(t=>t.dataset.reaction===e))return null;if(e===y)return u(f.already||""),null;h=!0,g+=1,O(!0),l("pending"),u(f.sending||"");try{await R();let t=await c.post(c.pathFor(x),{path:d,reaction:e},{idempotencyKey:C.key({path:d,reaction:e})});C.clear(),y=e,G(E,d,e),w();let a=D(t&&t.data);return a&&S(a),l("selected"),u(f.thanks||""),t}catch(t){return t&&N.has(t.kind)?q(t):t&&t.kind==="conflict"?(w(),l(y?"selected":p?"loaded":"unavailable"),u(f.already||"")):(l(p?"loaded":"unavailable"),u(A(t,I),!0)),null}finally{h=!1,n.dataset.state!=="disabled"&&O(!1)}}};w(),i.forEach(e=>{e.addEventListener("click",()=>{v.react(e.dataset.reaction)})});let k=()=>{p||v.load()};if(r.immediate||!o||typeof o.IntersectionObserver!="function")k();else{let e=new o.IntersectionObserver(t=>{t.some(a=>a.isIntersecting)&&(e.disconnect(),k())},{rootMargin:"400px 0px"});e.observe(n)}return v}function K(n){try{return n&&n.localStorage?n.localStorage:null}catch(r){return null}}function P(n=document){return Array.from(n.querySelectorAll("[data-reactions]")).map(r=>J(r))}function T(){P(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",T,{once:!0}):T();
@@ -1 +1 @@
1
- import"./chunks/chunk-PATLC23F.js";var Q="datalog-search-analytics";function j({panel:e,list:n,empty:t,onSelect:i}){if(!e||!n||!t)return{record(){},render(){}};let r=d(),f="";function d(){let u=Object.create(null);try{let c=window.localStorage.getItem(Q);if(c){let a=JSON.parse(c);a&&typeof a=="object"&&Object.entries(a).forEach(([l,S])=>{typeof S=="number"&&Number.isFinite(S)&&(u[l]=S)})}}catch(c){}return u}function m(){try{window.localStorage.setItem(Q,JSON.stringify(r))}catch(u){}}function s(u){let c=(u||"").trim();!c||c===f||(f=c,r[c]=(r[c]||0)+1,m(),p())}function p(){let u=Object.entries(r).filter(([a])=>a&&a.trim().length>1).sort((a,l)=>l[1]-a[1]).slice(0,5);if(n.replaceChildren(),u.length===0){t.hidden=!1;return}t.hidden=!0;let c=document.createDocumentFragment();u.forEach(([a,l])=>{let S=document.createElement("li"),g=document.createElement("button");g.type="button",g.className="search-analytics__query",g.textContent=`${a} (${l})`,g.addEventListener("click",()=>{typeof i=="function"&&i(a)}),S.appendChild(g),c.appendChild(S)}),n.appendChild(c)}return{record:s,render:p}}function k(e=""){let n=e==null?"":String(e);try{return n.toLowerCase().normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"")}catch(t){return n.toLowerCase()}}function F(e=""){return k(e).replace(/\s+/g,"")}function P(e=""){return k(e).split(/[^\p{L}\p{N}\\._]+/u).filter(Boolean)}function H(e=""){return/\\|\^|_|\{|\}|\$/.test(e)}function B(e=""){return/`|::|->|=>|\(|\)|\{|\}|\[|\]|=|\bdef\b|\bfunction\b|\bclass\b/.test(e)}function K(e,n){if(!e||!n)return!1;let t=0;for(let i=0;i<e.length&&t<n.length;i+=1)e[i]===n[t]&&(t+=1);return t===n.length}function ae(e){return e&&new DOMParser().parseFromString(String(e),"text/html").body.textContent||""}function O(e,n,t){if(!e)return"";let i=ae(e),r=Math.max(0,n-80),f=Math.min(i.length,n+t+80);return`${i.slice(r,f)}${f<i.length?"\u2026":""}`}function ie(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oe={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function _(e){return String(e).replace(/[&<>"']/g,n=>oe[n])}function N(e,n){if(!e)return"";let t=String(e),i=Array.from(new Set(P(n||""))).sort((s,p)=>p.length-s.length);if(!i.length)return _(t);let r=new RegExp(i.map(ie).join("|"),"giu"),f="",d=0,m;for(;(m=r.exec(t))!==null;)f+=`${_(t.slice(d,m.index))}<mark>${_(m[0])}</mark>`,d=m.index+m[0].length;return f+_(t.slice(d))}function M(e){return(e||"").toString().split(/[-_\s]+/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function X(e){switch(e){case"post":return"Tutorial & Blog";case"project":return"Project";case"research":return"Research";case"dataset":return"Dataset";default:return M(e||"Page")}}function J({panel:e,limit:n=8,onSelect:t}){if(!e)return{setSuggestions(){},update(){},close(){},handleNavigation(){}};let i=[],r=-1;function f(c){i=Array.isArray(c)?[...c]:[]}function d(c){r=-1;let a=(c||"").trim().toLowerCase();if(!a){p();return}let l=i.filter(g=>g&&g.toLowerCase().includes(a)).slice(0,n);if(l.length===0){p();return}let S=document.createDocumentFragment();l.forEach((g,C)=>{let E=document.createElement("button");E.type="button",E.className="search-autocomplete__option",E.setAttribute("role","option"),E.dataset.autocompleteOption="",E.dataset.value=g,E.setAttribute("aria-selected",C===r?"true":"false"),E.replaceChildren(),E.insertAdjacentHTML("beforeend",N(g,a)),S.appendChild(E)}),e.replaceChildren(),e.appendChild(S),e.hidden=!1}function m(c,a){if(e.hidden)return;let l=Array.from(e.querySelectorAll("[data-autocomplete-option]"));if(l.length!==0){if(c.key==="ArrowDown")c.preventDefault(),r=(r+1)%l.length,s(l);else if(c.key==="ArrowUp")c.preventDefault(),r=(r-1+l.length)%l.length,s(l);else if(c.key==="Enter"&&r>=0){c.preventDefault();let S=l[r],g=S?S.dataset.value:"";g&&a&&(a.value=g),typeof t=="function"&&t(g),u()}}}function s(c){c.forEach((a,l)=>{let S=l===r;a.setAttribute("aria-selected",S?"true":"false"),a.classList.toggle("is-active",S)})}function p(){e.replaceChildren(),e.hidden=!0,r=-1}function u(){p()}return e.addEventListener("click",c=>{let a=c.target.closest("[data-autocomplete-option]");if(!a)return;let l=a.dataset.value||"";l&&typeof t=="function"&&t(l),u()}),{setSuggestions:f,update:d,close:u,handleNavigation:m}}function W(e=[]){let n=Array.isArray(e)?[...e]:[];function t(d){n=Array.isArray(d)?[...d]:[]}function i(d,m={}){let s=(d||"").trim();if(!s)return[];let p=k(s),u=P(s),c=H(s),a=B(s),{type:l="",language:S="",difficulty:g="",tags:C=new Set}=m;return n.map(E=>ce(E,{rawQuery:s,normalizedQuery:p,queryTokens:u,mathQuery:c,codeQuery:a,typeFilter:l,languageFilter:S,difficultyFilter:g,selectedTags:C})).filter(E=>E&&E.score>0).sort((E,T)=>T.score-E.score||E.title.localeCompare(T.title))}function r(d=150){return se(n,d)}function f(){return[...n]}return{setDocuments:t,search:i,suggestions:r,getDocuments:f}}function se(e=[],n=150){let t=new Set;return e.forEach(i=>{i.title&&t.add(i.title),Array.isArray(i.languages)&&i.languages.forEach(r=>t.add(r)),Array.isArray(i.tags)&&i.tags.forEach(r=>t.add(`#${r}`)),Array.isArray(i.math)&&i.math.slice(0,3).forEach(r=>t.add(r))}),Array.from(t).slice(0,n)}function ce(e,n){let{rawQuery:t,normalizedQuery:i,queryTokens:r,mathQuery:f,codeQuery:d,typeFilter:m,languageFilter:s,difficultyFilter:p,selectedTags:u}=n;if(m&&e.type!==m)return null;let c=Array.isArray(e.languages)?e.languages:[];if(s&&!c.includes(s))return null;if(p){let y=String(e.difficulty||"").toLowerCase();if(!y||y!==p)return null}if(u&&u.size>0){let y=new Set(G(e).tags);for(let o of u)if(!y.has(o))return null}if(!t)return null;let{title:a,summary:l,content:S,tags:g,languages:C,difficulty:E}=G(e),T=Array.isArray(e.code)?e.code:[],q=Array.isArray(e.math)?e.math:[],x=0,w="",D=null,A=null;if(a.includes(i)&&(x+=40),r.forEach(y=>{y&&(a.includes(y)&&(x+=12),l.includes(y)&&(x+=8),S.includes(y)&&(x+=6),g.forEach(o=>{o.includes(y)&&(x+=4)}),C.forEach(o=>{o.includes(y)&&(x+=4)}),E.includes(y)&&(x+=2))}),T.length>0){let y=F(t);for(let o of T){let b=String(o.language||"").toLowerCase(),v=o.code||"",z=F(v);if(z.includes(y)){x+=30,D={language:b,code:v};break}if(d&&K(z,y)){x+=18,D={language:b,code:v};break}}!D&&T[0]&&(D={language:String(T[0].language||"").toLowerCase(),code:T[0].code||""})}if(q.length>0){let y=i.replace(/\\/g,"");for(let o of q)if(k(String(o)).includes(y)){x+=26,A=o;break}f&&!A&&q[0]&&(A=q[0],x+=10)}if(S.includes(i)){let y=S.indexOf(i);w=O(e.content||"",y,t.length),x+=10}else if(l.includes(i)){let y=l.indexOf(i);w=O(e.summary||"",y,t.length),x+=6}return x===0?null:{id:`${e.url}`,title:e.title,url:e.url,summary:e.summary,snippet:w,codeSnippet:D,mathSnippet:A,tags:e.tags||[],languages:e.languages||[],difficulty:e.difficulty||"",type:e.type||"page",date:e.date,readingTime:e.reading_time,score:x}}var Y=new WeakMap;function G(e){let n=Y.get(e);if(n)return n;let t=e.normalized||{},i={title:t.title||k(e.title||""),summary:t.summary||k(e.summary||""),content:t.content||k(e.content||""),tags:V(t.tags,e.tags),languages:V(t.languages,e.languages),difficulty:t.difficulty||k(e.difficulty||"")};return Y.set(e,i),i}function V(e,n){return Array.isArray(e)&&e.length>0?e:Array.isArray(n)?n.map(t=>k(t)):[]}function Z(e,n,t){if(!e)return;let i=new Set;n.forEach(d=>{(d.tags||d.topics||[]).forEach(s=>{if(!s)return;let p=String(s).trim().toLowerCase();p&&i.add(p)})});let r=Array.from(i).sort();if(r.length===0){let d=document.createElement("p");d.className="search-filter__empty",d.textContent="No tags available yet.",e.replaceChildren(d);return}let f=document.createDocumentFragment();r.forEach(d=>{let m=document.createElement("button");m.type="button",m.className="search-filter__tag",m.textContent=d,m.dataset.filterTag=d,m.setAttribute("aria-pressed",t.has(d)?"true":"false"),f.appendChild(m)}),e.replaceChildren(),e.appendChild(f)}function ee(e,n,t){let{resultsList:i,resultsMeta:r,emptyState:f,template:d}=t;if(!i||!r||!f||!d)return;if(i.replaceChildren(),!n){r.textContent="Enter a query to begin.",f.hidden=!0;return}if(e.length===0){r.textContent=`No matches for \u201C${n}\u201D.`,f.hidden=!1;return}f.hidden=!0,r.textContent=`${e.length} result${e.length===1?"":"s"} for \u201C${n}\u201D.`;let m=document.createDocumentFragment();e.forEach(s=>{let p=d.content.cloneNode(!0),u=p.querySelector("[data-result-type]"),c=p.querySelector("[data-result-difficulty]"),a=p.querySelector("[data-result-languages]"),l=p.querySelector("[data-result-link]"),S=p.querySelector("[data-result-summary]"),g=p.querySelector("[data-result-code]"),C=g?g.querySelector("code"):null,E=p.querySelector("[data-result-math]"),T=p.querySelector("[data-result-math-preview]"),q=p.querySelector("[data-result-math-code]"),x=p.querySelector("[data-result-math-copy]"),w=p.querySelector("[data-result-excerpt]"),D=p.querySelector("[data-result-tags]"),A=p.querySelector("[data-result-date]");if(u&&(u.textContent=X(s.type)),c&&(s.difficulty?(c.textContent=`Difficulty: ${M(s.difficulty)}`,c.hidden=!1):c.hidden=!0),a&&(s.languages&&s.languages.length>0?(a.textContent=`Languages: ${s.languages.map(y=>M(y)).join(", ")}`,a.hidden=!1):a.hidden=!0),l&&(l.textContent=s.title||s.url,l.setAttribute("href",s.url)),S&&(S.replaceChildren(),S.insertAdjacentHTML("beforeend",N(s.summary||"",n))),E&&q&&(s.mathSnippet?(E.hidden=!1,q.textContent=s.mathSnippet,T&&(window.DatalogMath&&typeof window.DatalogMath.renderLatex=="function"?window.DatalogMath.renderLatex(T,s.mathSnippet,{display:!1,enhance:!1}):window.MathJax&&typeof window.MathJax.typesetPromise=="function"?(T.textContent=`\\(${s.mathSnippet}\\)`,window.MathJax.typesetPromise([T]).catch(()=>{T.textContent=s.mathSnippet})):T.textContent=s.mathSnippet),x&&x.addEventListener("click",()=>le(s.mathSnippet,E))):E.hidden=!0),w&&(s.snippet?(w.replaceChildren(),w.insertAdjacentHTML("beforeend",N(s.snippet,n)),w.hidden=!1):w.hidden=!0),g&&C)if(s.codeSnippet&&s.codeSnippet.code){let y=s.codeSnippet.language||"text";g.classList.remove("language-none"),g.classList.add(`language-${y}`),C.className=`language-${y}`,C.textContent=s.codeSnippet.code,g.hidden=!1}else g.hidden=!0;if(D&&(D.replaceChildren(),(s.tags||[]).forEach(y=>{let o=document.createElement("li");o.textContent=`#${y}`,D.appendChild(o)})),A)if(s.date){let y=new Date(s.date);Number.isNaN(y.getTime())?A.hidden=!0:(A.textContent=y.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),A.hidden=!1)}else A.hidden=!0;m.appendChild(p)}),i.appendChild(m)}function le(e,n){if(!e)return;let t=()=>{if(!n)return;let r=n.querySelector("[data-result-math-copy]"),f=r?r.querySelector(".visually-hidden"):null;if(r&&f){let d=r.getAttribute("data-sr-original")||f.textContent;r.getAttribute("data-sr-original")||r.setAttribute("data-sr-original",d||"Copy LaTeX"),f.textContent="Copied LaTeX",r.classList.add("is-copied"),window.setTimeout(()=>{f.textContent=r.getAttribute("data-sr-original")||"Copy LaTeX",r.classList.remove("is-copied")},2e3)}},i=()=>{let r=document.createElement("textarea");r.value=e,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),t()}catch(f){}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>t()).catch(()=>i()):i()}var ue=8;function te(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),i=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-meta]"),f=e.querySelector("[data-search-empty]"),d=e.querySelector("[data-search-autocomplete]"),m=e.querySelector("[data-search-analytics]"),s=m?m.querySelector(".search-app__analytics-list"):null,p=m?m.querySelector(".search-app__analytics-empty"):null,u=document.getElementById("search-result-template"),c=e.querySelector("[data-filter-type]"),a=e.querySelector("[data-filter-language]"),l=e.querySelector("[data-filter-difficulty]"),S=e.querySelector("[data-filter-tags]"),g=e.getAttribute("data-search-index")||"/search.json",C=new Set,E=W(),T=j({panel:m,list:s,empty:p,onSelect:o=>{t&&(t.value=o,A())}}),q=J({panel:d,limit:ue,onSelect:o=>{o&&t&&(t.value=o,t.focus(),A())}}),x=!1,w=new URLSearchParams(window.location.search);t&&w.has("q")&&(t.value=w.get("q")||""),c&&w.has("type")&&(c.value=w.get("type")),a&&w.has("language")&&(a.value=w.get("language")),l&&w.has("difficulty")&&(l.value=w.get("difficulty")),w.has("tags")&&w.get("tags").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean).forEach(o=>C.add(o)),fe(t,()=>{q.close(),A()}),de(g).then(o=>{let b=o.documents||[];E.setDocuments(b),q.setSuggestions(E.suggestions()),Z(S,b,C),x=!0,D()}).catch(o=>{r&&(r.textContent="Unable to load the search index. Please try again later.")}),n&&n.addEventListener("submit",o=>{o.preventDefault(),A()}),t&&(t.addEventListener("input",()=>{q.update(t.value)}),t.addEventListener("keydown",o=>{q.handleNavigation(o,t)}),t.addEventListener("focus",()=>{q.update(t.value)})),c&&c.addEventListener("change",A),a&&a.addEventListener("change",A),l&&l.addEventListener("change",A),e.addEventListener("click",o=>{let b=o.target;if(b.matches("[data-filter-tag]")){let v=b.getAttribute("data-filter-tag");v&&(C.has(v)?(C.delete(v),b.setAttribute("aria-pressed","false")):(C.add(v),b.setAttribute("aria-pressed","true")),A())}}),document.addEventListener("click",o=>{!d||d.hidden||e.contains(o.target)||q.close()}),document.addEventListener("keydown",o=>{let b=document.activeElement?document.activeElement.tagName:"";["INPUT","TEXTAREA"].includes(b)||(o.key==="/"&&!o.ctrlKey&&!o.metaKey&&!o.altKey||(o.key==="k"||o.key==="K")&&(o.ctrlKey||o.metaKey))&&(o.preventDefault(),t&&(t.focus(),t.select()))}),T.render();function D(){t&&t.value.trim()?A():y()}function A(){if(!t)return;if(!x){r&&(r.textContent="Loading technical index\u2026");return}let o=t.value.trim(),b={type:c?c.value:"",language:a?a.value:"",difficulty:l?l.value:"",tags:C},v=E.search(o,b);ee(v,o,{resultsList:i,resultsMeta:r,emptyState:f,template:u}),y(o),T.record(o)}function y(o){let b=new URL(window.location.href),v=b.searchParams;o?v.set("q",o):v.delete("q"),c&&c.value?v.set("type",c.value):v.delete("type"),a&&a.value?v.set("language",a.value):v.delete("language"),l&&l.value?v.set("difficulty",l.value):v.delete("difficulty"),C.size>0?v.set("tags",Array.from(C).join(",")):v.delete("tags");let z=v.toString(),R=z?`${b.pathname}?${z}`:b.pathname;window.history.replaceState({},"",R)}}function de(e){return fetch(e,{credentials:"same-origin"}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()})}function fe(e,n){e&&e.addEventListener("keydown",t=>{t.key==="Escape"&&(e.value="",typeof n=="function"&&n())})}var pe=300,ge="search-result-",U=500;function he(e,n=pe){let t,i=(...r)=>{t&&window.clearTimeout(t),t=window.setTimeout(()=>{t=void 0,e.apply(null,r)},n)};return i.cancel=()=>{t&&(window.clearTimeout(t),t=void 0)},i}function $(e,n){if(!e)return;let t=String(n||"");e.textContent===t?e.textContent=`${t}\xA0`:e.textContent=t,t.trim()?e.removeAttribute("hidden"):e.setAttribute("hidden","")}function me(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),i=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-empty]"),f=e.querySelector("[data-search-loading]"),d=e.querySelector("[data-search-region]"),m=e.querySelector('[data-search-live="count"]'),s=e.querySelector('[data-search-live="selection"]'),p=e.querySelector('[data-search-live="status"]');if(!t||!i)return;let u=-1,c=0,a=[],l=!1,S=0,g=null,C=he(()=>{n&&(l=!0,o(),$(p,"Loading results\u2026"),n.dispatchEvent(new Event("submit",{cancelable:!0})))});new MutationObserver(()=>{A()}).observe(i,{childList:!0}),A(),t.addEventListener("input",()=>{w(!1),C()}),t.addEventListener("keydown",T);function T(h){if(!a.length&&["ArrowDown","ArrowUp","Enter"].includes(h.key))return!1;switch(h.key){case"ArrowDown":return h.preventDefault(),q(1),!0;case"ArrowUp":return h.preventDefault(),q(-1),!0;case"Enter":return u>=0?(h.preventDefault(),v(),!0):!1;case"Escape":return h.preventDefault(),z(),!0;default:return!1}}function q(h){if(!a.length)return;let L=u===-1?h>0?0:a.length-1:(u+h+a.length)%a.length;x(L)}function x(h){if(!(h<-1||h>=a.length)&&u!==h)if(u>=0&&a[u]&&a[u].classList.remove("is-active"),u=h,u>=0){let L=a[u];if(!L)return;L.classList.add("is-active");let I=D(L);t.setAttribute("aria-activedescendant",I);let re=R(L);$(s,`Result ${u+1} of ${a.length}: ${re}`),L.scrollIntoView({block:"nearest"})}else t.removeAttribute("aria-activedescendant"),$(s,"Search results selection cleared.")}function w(h=!0){u>=0&&a[u]&&a[u].classList.remove("is-active"),u=-1,t.removeAttribute("aria-activedescendant"),h&&$(s,"Search results selection cleared.")}function D(h){if(h.id)return h.id;c+=1;let L=`${ge}${c}`;return h.id=L,L}function A(){a=Array.from(i.querySelectorAll(".search-result")),a.forEach(h=>{D(h),h.setAttribute("role","option"),h.setAttribute("tabindex","-1")}),u>=a.length&&w(!1),l&&(l=!1,$(p,"Results updated.")),b(),y()}function y(){if(!m)return;let h=t.value.trim();if(!h){$(m,"Enter a query to begin.");return}if(r&&!r.hidden&&a.length===0){$(m,`No results found for \u201C${h}\u201D.`);return}$(m,`${a.length} result${a.length===1?"":"s"} found for \u201C${h}\u201D.`)}function o(){d&&d.setAttribute("aria-busy","true"),f&&(g&&(window.clearTimeout(g),g=null),S=Date.now(),f.hidden=!1,f.removeAttribute("hidden"))}function b(){if(d&&d.setAttribute("aria-busy","false"),f){let h=()=>{f.hidden=!0,f.setAttribute("hidden",""),g=null,S=0},L=S?Date.now()-S:U;if(L<U){let I=U-L;g&&window.clearTimeout(g),g=window.setTimeout(h,I)}else h()}}function v(){let h=u>=0?a[u]:null;if(!h)return;let L=h.querySelector("[data-result-link]");L&&L.href&&window.location.assign(L.href)}function z(){C.cancel(),t.value="",w(),$(p,"Search cleared."),n&&(l=!0,o(),n.dispatchEvent(new Event("submit",{cancelable:!0})))}function R(h){let L=h.querySelector("[data-result-link]");if(L&&L.textContent)return L.textContent.trim();let I=h.querySelector(".search-result__title");return I&&I.textContent?I.textContent.trim():"Result"}}var ye=typeof process!="undefined"&&process.env&&process.env.VITEST==="true";function ne(){te(),me()}ye||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ne):ne());export{he as debounce,me as setupSearchEnhancements,$ as updateLiveRegion};
1
+ import"./chunks/chunk-PATLC23F.js";var j="datalog-search-analytics";function Q({panel:e,list:n,empty:t,onSelect:a}){if(!e||!n||!t)return{record(){},render(){}};let r=c(),p="";function c(){let g=Object.create(null);try{let l=window.localStorage.getItem(j);if(l){let i=JSON.parse(l);i&&typeof i=="object"&&Object.entries(i).forEach(([f,S])=>{typeof S=="number"&&Number.isFinite(S)&&(g[f]=S)})}}catch(l){}return g}function u(){try{window.localStorage.setItem(j,JSON.stringify(r))}catch(g){}}function o(g){let l=(g||"").trim();!l||l===p||(p=l,r[l]=(r[l]||0)+1,u(),h())}function h(){let g=Object.entries(r).filter(([i])=>i&&i.trim().length>1).sort((i,f)=>f[1]-i[1]).slice(0,5);if(n.replaceChildren(),g.length===0){t.hidden=!1;return}t.hidden=!0;let l=document.createDocumentFragment();g.forEach(([i,f])=>{let S=document.createElement("li"),y=document.createElement("button");y.type="button",y.className="search-analytics__query",y.textContent=`${i} (${f})`,y.addEventListener("click",()=>{typeof a=="function"&&a(i)}),S.appendChild(y),l.appendChild(S)}),n.appendChild(l)}return{record:o,render:h}}function k(e=""){let n=e==null?"":String(e);try{return n.toLowerCase().normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"")}catch(t){return n.toLowerCase()}}function O(e=""){return k(e).replace(/\s+/g,"")}function U(e=""){return k(e).split(/[^\p{L}\p{N}\\._]+/u).filter(Boolean)}function H(e=""){return/\\|\^|_|\{|\}|\$/.test(e)}function K(e=""){return/`|::|->|=>|\(|\)|\{|\}|\[|\]|=|\bdef\b|\bfunction\b|\bclass\b/.test(e)}function B(e,n){if(!e||!n)return!1;let t=0;for(let a=0;a<e.length&&t<n.length;a+=1)e[a]===n[t]&&(t+=1);return t===n.length}function oe(e){return e&&new DOMParser().parseFromString(String(e),"text/html").body.textContent||""}function R(e,n,t){if(!e)return"";let a=oe(e),r=Math.max(0,n-80),p=Math.min(a.length,n+t+80);return`${a.slice(r,p)}${p<a.length?"\u2026":""}`}function se(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var ce={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function M(e){return String(e).replace(/[&<>"']/g,n=>ce[n])}function I(e,n){if(!e)return"";let t=String(e),a=Array.from(new Set(U(n||""))).sort((o,h)=>h.length-o.length);if(!a.length)return M(t);let r=new RegExp(a.map(se).join("|"),"giu"),p="",c=0,u;for(;(u=r.exec(t))!==null;)p+=`${M(t.slice(c,u.index))}<mark>${M(u[0])}</mark>`,c=u.index+u[0].length;return p+M(t.slice(c))}function F(e){return(e||"").toString().split(/[-_\s]+/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function X(e){switch(e){case"post":return"Tutorial & Blog";case"project":return"Project";case"research":return"Research";case"dataset":return"Dataset";default:return F(e||"Page")}}function J({panel:e,limit:n=8,onSelect:t}){if(!e)return{setSuggestions(){},update(){},close(){},handleNavigation(){}};let a=[],r=-1;function p(l){a=Array.isArray(l)?[...l]:[]}function c(l){r=-1;let i=(l||"").trim().toLowerCase();if(!i){h();return}let f=a.filter(y=>y&&y.toLowerCase().includes(i)).slice(0,n);if(f.length===0){h();return}let S=document.createDocumentFragment();f.forEach((y,A)=>{let w=document.createElement("button");w.type="button",w.className="search-autocomplete__option",w.setAttribute("role","option"),w.dataset.autocompleteOption="",w.dataset.value=y,w.setAttribute("aria-selected",A===r?"true":"false"),w.replaceChildren(),w.insertAdjacentHTML("beforeend",I(y,i)),S.appendChild(w)}),e.replaceChildren(),e.appendChild(S),e.hidden=!1}function u(l,i){if(e.hidden)return;let f=Array.from(e.querySelectorAll("[data-autocomplete-option]"));if(f.length!==0){if(l.key==="ArrowDown")l.preventDefault(),r=(r+1)%f.length,o(f);else if(l.key==="ArrowUp")l.preventDefault(),r=(r-1+f.length)%f.length,o(f);else if(l.key==="Enter"&&r>=0){l.preventDefault();let S=f[r],y=S?S.dataset.value:"";y&&i&&(i.value=y),typeof t=="function"&&t(y),g()}}}function o(l){l.forEach((i,f)=>{let S=f===r;i.setAttribute("aria-selected",S?"true":"false"),i.classList.toggle("is-active",S)})}function h(){e.replaceChildren(),e.hidden=!0,r=-1}function g(){h()}return e.addEventListener("click",l=>{let i=l.target.closest("[data-autocomplete-option]");if(!i)return;let f=i.dataset.value||"";f&&typeof t=="function"&&t(f),g()}),{setSuggestions:p,update:c,close:g,handleNavigation:u}}var le=3;function Z(e=[]){let n=Array.isArray(e)?[...e]:[];function t(c){n=Array.isArray(c)?[...c]:[]}function a(c,u={}){let o=(c||"").trim();if(!o)return[];let h=k(o),g=U(o),l=H(o),i=K(o),{type:f="",language:S="",difficulty:y="",tags:A=new Set}=u;return n.map(w=>de(w,{rawQuery:o,normalizedQuery:h,queryTokens:g,mathQuery:l,codeQuery:i,typeFilter:f,languageFilter:S,difficultyFilter:y,selectedTags:A})).filter(w=>w&&w.score>0).sort((w,C)=>C.score-w.score||w.title.localeCompare(C.title))}function r(c=150){return ue(n,c)}function p(){return[...n]}return{setDocuments:t,search:a,suggestions:r,getDocuments:p}}function ue(e=[],n=150){let t=new Set;return e.forEach(a=>{a.title&&t.add(a.title),Array.isArray(a.languages)&&a.languages.forEach(r=>t.add(r)),Array.isArray(a.tags)&&a.tags.forEach(r=>t.add(`#${r}`)),Array.isArray(a.math)&&a.math.slice(0,3).forEach(r=>t.add(r))}),Array.from(t).slice(0,n)}function de(e,n){let{rawQuery:t,normalizedQuery:a,queryTokens:r,mathQuery:p,codeQuery:c,typeFilter:u,languageFilter:o,difficultyFilter:h,selectedTags:g}=n;if(u&&e.type!==u)return null;let l=Array.isArray(e.languages)?e.languages:[];if(o&&!l.includes(o))return null;if(h){let d=String(e.difficulty||"").toLowerCase();if(!d||d!==h)return null}if(g&&g.size>0){let d=new Set(V(e).tags);for(let E of g)if(!d.has(E))return null}if(!t)return null;let{title:i,summary:f,content:S,tags:y,languages:A,difficulty:w}=V(e),C=Array.isArray(e.code)?e.code:[],q=Array.isArray(e.math)?e.math:[],D=fe(e,{rawQuery:t,normalizedQuery:a,queryTokens:r}),v=(D.find(d=>d.snippet)||{}).snippet||"",x=0,L="",T=null,s=null;if(i.includes(a)&&(x+=40),r.forEach(d=>{d&&(i.includes(d)&&(x+=12),f.includes(d)&&(x+=8),S.includes(d)&&(x+=6),y.forEach(E=>{E.includes(d)&&(x+=4)}),A.forEach(E=>{E.includes(d)&&(x+=4)}),w.includes(d)&&(x+=2))}),C.length>0){let d=O(t);for(let E of C){let $=String(E.language||"").toLowerCase(),z=E.code||"",m=O(z);if(m.includes(d)){x+=30,T={language:$,code:z};break}if(c&&B(m,d)){x+=18,T={language:$,code:z};break}}!T&&C[0]&&(T={language:String(C[0].language||"").toLowerCase(),code:C[0].code||""})}if(q.length>0){let d=a.replace(/\\/g,"");for(let E of q)if(k(String(E)).includes(d)){x+=26,s=E;break}p&&!s&&q[0]&&(s=q[0],x+=10)}if(S.includes(a)){let d=S.indexOf(a);L=v||R(e.content||"",d,t.length),x+=10}else if(f.includes(a)){let d=f.indexOf(a);L=R(e.summary||"",d,t.length),x+=6}return x===0?null:{id:`${e.url}`,title:e.title,url:e.url,summary:e.summary,snippet:L,codeSnippet:T,mathSnippet:s,tags:e.tags||[],languages:e.languages||[],difficulty:e.difficulty||"",type:e.type||"page",date:e.date,readingTime:e.reading_time,sections:D.filter(d=>d.title).slice(0,le),score:x}}function fe(e,n){let t=Array.isArray(e.sections)?e.sections:[];return t.length===0?[]:t.map(a=>pe(e,a,n)).filter(a=>a!==null).sort((a,r)=>r.score-a.score)}function pe(e,n,{rawQuery:t,normalizedQuery:a,queryTokens:r}){let{title:p,content:c}=ge(n);if(!p&&!c)return null;let u=0;p&&p.includes(a)&&(u+=24),r.forEach(g=>{g&&(p.includes(g)&&(u+=8),c.includes(g)&&(u+=3))});let o="",h=c.indexOf(a);return h>=0&&(u+=6,o=R(n.content||"",h,t.length)),u===0?null:{title:n.title||"",url:he(e,n),level:n.level||2,snippet:o,score:u}}function he(e,n){let t=n.anchor;return t?`${e.url}#${encodeURIComponent(t)}`:e.url}var Y=new WeakMap;function ge(e){let n=Y.get(e);if(n)return n;let t={title:k(e.title||""),content:k(e.content||"")};return Y.set(e,t),t}var G=new WeakMap;function V(e){let n=G.get(e);if(n)return n;let t=e.normalized||{},a={title:t.title||k(e.title||""),summary:t.summary||k(e.summary||""),content:t.content||k(e.content||""),tags:W(t.tags,e.tags),languages:W(t.languages,e.languages),difficulty:t.difficulty||k(e.difficulty||"")};return G.set(e,a),a}function W(e,n){return Array.isArray(e)&&e.length>0?e:Array.isArray(n)?n.map(t=>k(t)):[]}function ee(e,n,t){if(!e)return;let a=new Set;n.forEach(c=>{(c.tags||c.topics||[]).forEach(o=>{if(!o)return;let h=String(o).trim().toLowerCase();h&&a.add(h)})});let r=Array.from(a).sort();if(r.length===0){let c=document.createElement("p");c.className="search-filter__empty",c.textContent="No tags available yet.",e.replaceChildren(c);return}let p=document.createDocumentFragment();r.forEach(c=>{let u=document.createElement("button");u.type="button",u.className="search-filter__tag",u.textContent=c,u.dataset.filterTag=c,u.setAttribute("aria-pressed",t.has(c)?"true":"false"),p.appendChild(u)}),e.replaceChildren(),e.appendChild(p)}function ne(e,n,t){let{resultsList:a,resultsMeta:r,emptyState:p,template:c}=t;if(!a||!r||!p||!c)return;if(a.replaceChildren(),!n){r.textContent="Enter a query to begin.",p.hidden=!0;return}if(e.length===0){r.textContent=`No matches for \u201C${n}\u201D.`,p.hidden=!1;return}p.hidden=!0,r.textContent=`${e.length} result${e.length===1?"":"s"} for \u201C${n}\u201D.`;let u=document.createDocumentFragment();e.forEach(o=>{let h=c.content.cloneNode(!0),g=h.querySelector("[data-result-type]"),l=h.querySelector("[data-result-difficulty]"),i=h.querySelector("[data-result-languages]"),f=h.querySelector("[data-result-link]"),S=h.querySelector("[data-result-summary]"),y=h.querySelector("[data-result-code]"),A=y?y.querySelector("code"):null,w=h.querySelector("[data-result-math]"),C=h.querySelector("[data-result-math-preview]"),q=h.querySelector("[data-result-math-code]"),D=h.querySelector("[data-result-math-copy]"),v=h.querySelector("[data-result-excerpt]"),x=h.querySelector("[data-result-sections]"),L=h.querySelector("[data-result-tags]"),T=h.querySelector("[data-result-date]");if(g&&(g.textContent=X(o.type)),l&&(o.difficulty?(l.textContent=`Difficulty: ${F(o.difficulty)}`,l.hidden=!1):l.hidden=!0),i&&(o.languages&&o.languages.length>0?(i.textContent=`Languages: ${o.languages.map(s=>F(s)).join(", ")}`,i.hidden=!1):i.hidden=!0),f&&(f.textContent=o.title||o.url,f.setAttribute("href",o.url)),S&&(S.replaceChildren(),S.insertAdjacentHTML("beforeend",I(o.summary||"",n))),w&&q&&(o.mathSnippet?(w.hidden=!1,q.textContent=o.mathSnippet,C&&(window.DatalogMath&&typeof window.DatalogMath.renderLatex=="function"?(window.DatalogMath.renderLatex(C,o.mathSnippet,{display:!1,enhance:!1}),te(C)):window.MathJax&&typeof window.MathJax.typesetPromise=="function"?(C.textContent=`\\(${o.mathSnippet}\\)`,window.MathJax.typesetPromise([C]).then(()=>te(C)).catch(()=>{C.textContent=o.mathSnippet})):C.textContent=o.mathSnippet),D&&D.addEventListener("click",()=>ye(o.mathSnippet,w))):w.hidden=!0),v&&(o.snippet?(v.replaceChildren(),v.insertAdjacentHTML("beforeend",I(o.snippet,n)),v.hidden=!1):v.hidden=!0),me(x,o,n),y&&A)if(o.codeSnippet&&o.codeSnippet.code){let s=o.codeSnippet.language||"text";y.classList.remove("language-none"),y.classList.add(`language-${s}`),A.className=`language-${s}`,A.textContent=o.codeSnippet.code,y.hidden=!1}else y.hidden=!0;if(L&&(L.replaceChildren(),(o.tags||[]).forEach(s=>{let d=document.createElement("li");d.textContent=`#${s}`,L.appendChild(d)})),T)if(o.date){let s=new Date(o.date);Number.isNaN(s.getTime())?T.hidden=!0:(T.textContent=s.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),T.hidden=!1)}else T.hidden=!0;u.appendChild(h)}),a.appendChild(u)}function me(e,n,t){if(!e)return;let a=Array.isArray(n.sections)?n.sections:[],r=e.querySelector("ul"),p=e.querySelector("[data-result-sections-label]");if(!r||a.length===0){e.hidden=!0;return}e.hidden=!1,p&&(p.textContent=a.length===1?"Matching section":"Matching sections"),r.replaceChildren(),a.forEach(c=>{let u=document.createElement("li");u.className=`search-result__section search-result__section--h${c.level||2}`;let o=document.createElement("a");if(o.className="search-result__section-link",o.setAttribute("href",c.url),o.insertAdjacentHTML("beforeend",I(c.title||n.title||"",t)),u.appendChild(o),c.snippet){let h=document.createElement("span");h.className="search-result__section-snippet",h.insertAdjacentHTML("beforeend",I(c.snippet,t)),u.appendChild(h)}r.appendChild(u)})}function te(e){e.querySelectorAll("[tabindex]").forEach(n=>{n.setAttribute("tabindex","-1")})}function ye(e,n){if(!e)return;let t=()=>{if(!n)return;let r=n.querySelector("[data-result-math-copy]"),p=r?r.querySelector(".visually-hidden"):null;if(r&&p){let c=r.getAttribute("data-sr-original")||p.textContent;r.getAttribute("data-sr-original")||r.setAttribute("data-sr-original",c||"Copy LaTeX"),p.textContent="Copied LaTeX",r.classList.add("is-copied"),window.setTimeout(()=>{p.textContent=r.getAttribute("data-sr-original")||"Copy LaTeX",r.classList.remove("is-copied")},2e3)}},a=()=>{let r=document.createElement("textarea");r.value=e,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),t()}catch(p){}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>t()).catch(()=>a()):a()}var Se=8;function re(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),a=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-meta]"),p=e.querySelector("[data-search-empty]"),c=e.querySelector("[data-search-autocomplete]"),u=e.querySelector("[data-search-analytics]"),o=u?u.querySelector(".search-app__analytics-list"):null,h=u?u.querySelector(".search-app__analytics-empty"):null,g=document.getElementById("search-result-template"),l=e.querySelector("[data-filter-type]"),i=e.querySelector("[data-filter-language]"),f=e.querySelector("[data-filter-difficulty]"),S=e.querySelector("[data-filter-tags]"),y=e.getAttribute("data-search-index")||"/search.json",A=new Set,w=Z(),C=Q({panel:u,list:o,empty:h,onSelect:s=>{t&&(t.value=s,L())}}),q=J({panel:c,limit:Se,onSelect:s=>{s&&t&&(t.value=s,t.focus(),L())}}),D=!1,v=new URLSearchParams(window.location.search);t&&v.has("q")&&(t.value=v.get("q")||""),l&&v.has("type")&&(l.value=v.get("type")),i&&v.has("language")&&(i.value=v.get("language")),f&&v.has("difficulty")&&(f.value=v.get("difficulty")),v.has("tags")&&v.get("tags").split(",").map(s=>s.trim().toLowerCase()).filter(Boolean).forEach(s=>A.add(s)),we(t,()=>{q.close(),L()}),Ee(y).then(s=>{let d=s.documents||[];w.setDocuments(d),q.setSuggestions(w.suggestions()),ee(S,d,A),D=!0,x()}).catch(s=>{r&&(r.textContent="Unable to load the search index. Please try again later.")}),n&&n.addEventListener("submit",s=>{s.preventDefault(),L()}),t&&(t.addEventListener("input",()=>{q.update(t.value)}),t.addEventListener("keydown",s=>{q.handleNavigation(s,t)}),t.addEventListener("focus",()=>{q.update(t.value)})),l&&l.addEventListener("change",L),i&&i.addEventListener("change",L),f&&f.addEventListener("change",L),e.addEventListener("click",s=>{let d=s.target;if(d.matches("[data-filter-tag]")){let E=d.getAttribute("data-filter-tag");E&&(A.has(E)?(A.delete(E),d.setAttribute("aria-pressed","false")):(A.add(E),d.setAttribute("aria-pressed","true")),L())}}),document.addEventListener("click",s=>{!c||c.hidden||e.contains(s.target)||q.close()}),document.addEventListener("keydown",s=>{let d=document.activeElement?document.activeElement.tagName:"";["INPUT","TEXTAREA"].includes(d)||(s.key==="/"&&!s.ctrlKey&&!s.metaKey&&!s.altKey||(s.key==="k"||s.key==="K")&&(s.ctrlKey||s.metaKey))&&(s.preventDefault(),t&&(t.focus(),t.select()))}),C.render();function x(){t&&t.value.trim()?L():T()}function L(){if(!t)return;if(!D){r&&(r.textContent="Loading technical index\u2026");return}let s=t.value.trim(),d={type:l?l.value:"",language:i?i.value:"",difficulty:f?f.value:"",tags:A},E=w.search(s,d);ne(E,s,{resultsList:a,resultsMeta:r,emptyState:p,template:g}),T(s),C.record(s)}function T(s){let d=new URL(window.location.href),E=d.searchParams;s?E.set("q",s):E.delete("q"),l&&l.value?E.set("type",l.value):E.delete("type"),i&&i.value?E.set("language",i.value):E.delete("language"),f&&f.value?E.set("difficulty",f.value):E.delete("difficulty"),A.size>0?E.set("tags",Array.from(A).join(",")):E.delete("tags");let $=E.toString(),z=$?`${d.pathname}?${$}`:d.pathname;window.history.replaceState({},"",z)}}function Ee(e){return fetch(e,{credentials:"same-origin"}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()})}function we(e,n){e&&e.addEventListener("keydown",t=>{t.key==="Escape"&&(e.value="",typeof n=="function"&&n())})}var xe=300,Ce="search-result-",P=500;function Ae(e,n=xe){let t,a=(...r)=>{t&&window.clearTimeout(t),t=window.setTimeout(()=>{t=void 0,e.apply(null,r)},n)};return a.cancel=()=>{t&&(window.clearTimeout(t),t=void 0)},a}function N(e,n){if(!e)return;let t=String(n||"");e.textContent===t?e.textContent=`${t}\xA0`:e.textContent=t,t.trim()?e.removeAttribute("hidden"):e.setAttribute("hidden","")}function ve(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),a=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-empty]"),p=e.querySelector("[data-search-loading]"),c=e.querySelector("[data-search-region]"),u=e.querySelector('[data-search-live="count"]'),o=e.querySelector('[data-search-live="selection"]'),h=e.querySelector('[data-search-live="status"]');if(!t||!a)return;let g=-1,l=0,i=[],f=!1,S=0,y=null,A=Ae(()=>{n&&(f=!0,d(),N(h,"Loading results\u2026"),n.dispatchEvent(new Event("submit",{cancelable:!0})))});new MutationObserver(()=>{T()}).observe(a,{childList:!0}),T(),t.addEventListener("input",()=>{x(!1),A()}),t.addEventListener("keydown",C),a.addEventListener("keydown",q),a.addEventListener("focusin",m=>{let b=m.target.closest(".search-result"),_=b?i.indexOf(b):-1;_>=0&&_!==g&&v(_)});function C(m){if(!i.length&&["ArrowDown","ArrowUp"].includes(m.key))return!1;switch(m.key){case"ArrowDown":return m.preventDefault(),D(1),!0;case"ArrowUp":return m.preventDefault(),D(-1),!0;case"Escape":return m.preventDefault(),$(),!0;default:return!1}}function q(m){switch(m.key){case"ArrowDown":return m.preventDefault(),D(1),!0;case"ArrowUp":return m.preventDefault(),D(-1),!0;case"Escape":return m.preventDefault(),t.focus(),x(),!0;default:return!1}}function D(m){if(!i.length)return;let b=g===-1?m>0?0:i.length-1:(g+m+i.length)%i.length;v(b)}function v(m){if(!(m<-1||m>=i.length)&&g!==m)if(g>=0&&i[g]&&i[g].classList.remove("is-active"),g=m,g>=0){let b=i[g];if(!b)return;b.classList.add("is-active");let _=b.querySelector("[data-result-link]");_&&_.focus();let ie=z(b);N(o,`Result ${g+1} of ${i.length}: ${ie}`),b.scrollIntoView({block:"nearest"})}else N(o,"Search results selection cleared.")}function x(m=!0){g>=0&&i[g]&&i[g].classList.remove("is-active"),g=-1,m&&N(o,"Search results selection cleared.")}function L(m){if(m.id)return m.id;l+=1;let b=`${Ce}${l}`;return m.id=b,b}function T(){i=Array.from(a.querySelectorAll(".search-result")),i.forEach(m=>L(m)),g>=i.length&&x(!1),f&&(f=!1,N(h,"Results updated.")),E(),s()}function s(){if(!u)return;let m=t.value.trim();if(!m){N(u,"Enter a query to begin.");return}if(r&&!r.hidden&&i.length===0){N(u,`No results found for \u201C${m}\u201D.`);return}N(u,`${i.length} result${i.length===1?"":"s"} found for \u201C${m}\u201D.`)}function d(){c&&c.setAttribute("aria-busy","true"),p&&(y&&(window.clearTimeout(y),y=null),S=Date.now(),p.hidden=!1,p.removeAttribute("hidden"))}function E(){if(c&&c.setAttribute("aria-busy","false"),p){let m=()=>{p.hidden=!0,p.setAttribute("hidden",""),y=null,S=0},b=S?Date.now()-S:P;if(b<P){let _=P-b;y&&window.clearTimeout(y),y=window.setTimeout(m,_)}else m()}}function $(){A.cancel(),t.value="",x(),N(h,"Search cleared."),n&&(f=!0,d(),n.dispatchEvent(new Event("submit",{cancelable:!0})))}function z(m){let b=m.querySelector("[data-result-link]");if(b&&b.textContent)return b.textContent.trim();let _=m.querySelector(".search-result__title");return _&&_.textContent?_.textContent.trim():"Result"}}var be=typeof process!="undefined"&&process.env&&process.env.VITEST==="true";function ae(){re(),ve()}be||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ae):ae());export{Ae as debounce,ve as setupSearchEnhancements,N as updateLiveRegion};
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "sources": {
3
- "assets/js/academic.js": "c4a510fe7457b70273361e0dec773299604d17c2fbd43eab62a78dd9ff2175da",
4
- "assets/js/analytics-dashboard.js": "98458c96b2f93c4842a3c4c4197cbcc6e1ebc84f74b322e1935408d3d0d8a3ae",
3
+ "assets/js/academic.js": "18a292571ddd4c3f6872854acb90a9dd8ef31ee016230a4dc3a00c797fd73993",
4
+ "assets/js/analytics-dashboard.js": "3c2aed680b69eb0e091cb45cbda4c55959d4695e6c073e091e2f4169bab8354b",
5
5
  "assets/js/comments.js": "5710a30b20bdffa02b256ec9f9e6b07f0871fa5903eb5b60880aba6e915956f5",
6
6
  "assets/js/comments/thread.js": "50684540ae6f03555ed375df46116f9f91c0c756477a2426972274ec581f18bc",
7
7
  "assets/js/contact.js": "7b93f9f5d8f3c0852303ea22c970845072935de50fd6f765087825e60b845c69",
8
- "assets/js/contact/form.js": "502c755ee72b7f6d050cd3965c25c4979586c1e5c444dd944a77767925c8c5ae",
8
+ "assets/js/contact/form.js": "d475137b45cdcf9ac252670229afab8c830e11d3b8ff9d412af41c3e3f532c56",
9
+ "assets/js/core/code-blocks.js": "4188448fa61927cb274f149c18fcd21cc16f7e447947c48917452ee5b85aaa8d",
9
10
  "assets/js/core/copy-buttons.js": "313e22057b56b8a3721c2d049a4fcf2b02839105ce70a9c82b570539732686b3",
10
- "assets/js/core/dark-mode.js": "1d4a699f6b810c829138823e346d96fa95bb89a3247937f5ff001a476d1856f3",
11
+ "assets/js/core/dark-mode.js": "024545f97a6a859e8e93c6222e10495d499c1dbdde976ed1d763ed5ff5b7e264",
11
12
  "assets/js/core/github-cards.js": "7eb0c4f489fd838f4c62ed0e5ba59ad4c51e01c8a7ccf04c2ef26c1b47fa284e",
12
13
  "assets/js/core/install-tabs.js": "855499d313f2f67b0df2d96e67643df495710497bb7f5ce47282b5cf27bf4e68",
13
14
  "assets/js/core/language-filter.js": "adbe34d62cbbf77bbaab8339101f5c75d8934eed735c7279c95ab007bd56f461",
@@ -15,14 +16,16 @@
15
16
  "assets/js/core/scroll-progress.js": "9610488213fa83f9270d0f2c9026b7f3e689503f41efa0c01317a51760d44b5f",
16
17
  "assets/js/core/search-hotkeys.js": "19881663e3db178e92ab58a382c5369aab5a3045b58410d906eb117924125186",
17
18
  "assets/js/core/skip-links.js": "138265a3aa853bf07a798efd03d56b14a5733f6e6c1810ccf87e4cfb86d52c30",
18
- "assets/js/core/toc.js": "d66665aaa7f5a6359d3d1bee259a6d0781f816782087f670de2c7fc04562789e",
19
- "assets/js/corrections.js": "16010732e7d653490d7b08d8dea88616008f9ae15efbc0f42848c52a7c8a6209",
20
- "assets/js/corrections/form.js": "525c281ca7c964b0415c5571360b87c7827299d870c673d87f2b1b398b240e8b",
19
+ "assets/js/core/toc.js": "5c09bb2782206c6e42229f93afcf0e28428882b218e418b70693bd2e20499416",
20
+ "assets/js/corrections.js": "f8c909e492a9ba4a6bb8ba469f99cfc36b92e37bce0c6aa6ab6a9e017d380aa6",
21
+ "assets/js/corrections/fallback.js": "cecfa6cedda8d42e3300919bb96ae8115cfae93fc87a06d46699c452877dc0fe",
22
+ "assets/js/corrections/form.js": "7c9e59b075e17cc06661f92c567a18632180c9868c72f2ed3675b2b1848252af",
21
23
  "assets/js/dynamic-services/client.js": "32e9cf9ad040553b2b96c3d92733c9b7626846f6dfb0aa6072ceab9f498b90b0",
22
- "assets/js/dynamic-services/form-state.js": "96bfe09e7ea789d57d50f9f36cce8f53823d650dab6e5b4cc10f17c3fbec504e",
23
- "assets/js/loader.js": "4544818b74f4c34a634c58008ca3348ad0bede869ccf81af27ba4dad1cbb9283",
24
- "assets/js/main.js": "ea45ab96106172ab105c96f32042af4d9587d7ae197ac854af7e95accfebdc7c",
25
- "assets/js/math.js": "1b457f5dbce7ed5476f973839c21d05a1700a3ecd5933aeca238e9ec66839adb",
24
+ "assets/js/dynamic-services/form-state.js": "d4bc943e31c2e7a8f868471d3fa91bcc3b134378fe1ec8789fe9225e1c8a263a",
25
+ "assets/js/loader.js": "49a3991fb2cc59a425b896918429d67335886175692d9bbf5fa69e0fe88c52cf",
26
+ "assets/js/main.js": "8894d99fda2b78ddd9a9556fafee808ded74b16143657510d3fbfb900b97e308",
27
+ "assets/js/math.js": "a015120c397bbb65e3934a82fadc61c7e7bb5adb131910e251f87d29cccb9785",
28
+ "assets/js/math/latex-speech.js": "ffee3ff902cb53eb50bfa8bbdf624da417e15e8f123b76838c5b5d239b351229",
26
29
  "assets/js/moderation.js": "2e9bcb00f0dcf4dd436458d99764989c9728794716dd33c59310d65206323c46",
27
30
  "assets/js/moderation/inbox.js": "ddbe3f4c251ff4bf10bd799fbd2e43777d3d728643fd5b962dfdf258c7365993",
28
31
  "assets/js/notebook.js": "361f716a76b398aeb564ef05ba026018b1bc083de28d75c9b8df5776a6ccb21a",
@@ -34,21 +37,22 @@
34
37
  "assets/js/reading-state/progress.js": "96d9c1a4692b958e4d3a43b0701cd4c7254f4b20404394deb2cd8e5984d5e33b",
35
38
  "assets/js/reading-state/storage.js": "9e0eac8d71be811e5f0d27f75f85af1b638e81332572e33b2213bddef6991d9a",
36
39
  "assets/js/reading-state/ui.js": "56e443887597ed71c776a8fad99de48d5798ae5be64c0a37cca16f1475388380",
37
- "assets/js/search.js": "602c89a4a2608ba6662140975a381b8d7d8847c0a10ba11b72247b27c2104f8d",
40
+ "assets/js/search.js": "7c66147727b2ca70e6591b49df30adffa0b1cfb308160140da224e62189e017d",
38
41
  "assets/js/search/analytics.js": "e0473ca5b34073e3246b5b1baec9d4d670a067102e98369208fdc10ff8e4cc1e",
39
42
  "assets/js/search/app.js": "66d93d600d184132c7f6de57764860b5d890b0e777a68e1ec3535399158eec20",
40
43
  "assets/js/search/autocomplete.js": "fb1f2e3751c628a589b71800dcd4be725f4b71736b20b32063e3920ff579e59a",
41
- "assets/js/search/engine.js": "a3731200c827952e6b3aeaa2a8c457277af7b2134f0071fc93e0e2224fb8ccc7",
44
+ "assets/js/search/engine.js": "c7bf1cfff6ccc67960427879a475eee99e6775410b82a5336aa384f6581a2f24",
42
45
  "assets/js/search/filters.js": "0b4bb4f36132cc876a9bf86326cdd0829d9a2c79455ebf4491b55020b3dfb584",
43
- "assets/js/search/render.js": "75eaec880b1fe09a27bf11515a813628fc2a299cacaf340ebd1fd6cc4f5ea678",
46
+ "assets/js/search/render.js": "3207f3c533481811c416681905ebe6d418053257a5f14b0d70096b5474c6fcba",
44
47
  "assets/js/search/utils.js": "a805c21d30ce0d02007609d510c43e99cbb53681ed37b77dd0755af4ccb39e08",
45
48
  "assets/js/subscriptions.js": "053b8387521deb5d4f940ef9effc816bc7e754e351460bda098cccd112d0b0c3",
46
- "assets/js/subscriptions/form.js": "8eee3b658940140bdada2648daae37f11261e38a5a896e863771b12586030898",
49
+ "assets/js/subscriptions/form.js": "acae7805ff17bed6060410939725c0caa651e1b82509347be26a7d7c10846786",
47
50
  "assets/js/subscriptions/manage.js": "4948505dacad370caaccfac389e8721a02f3755d50bdbf54dffafb4e44e1932d",
48
51
  "assets/js/visualizations.js": "a0414ea4ec2fd0829d049642420d753529c331966958c298901bff46d8cc26d4",
49
52
  "assets/js/webmentions.js": "f36402477bf0e6bd835e3ccf3a0fb67eb3af590ef6da179613eab10409e79803",
50
53
  "assets/js/webmentions/list.js": "64dfbad25539d4ae2571bcd61c24a869520c1ec3c1a191b22d4984f1e88c21cf",
51
- "package-lock.json": "1f9d9b58f4b1cd42a5934ed62a688425e779c6e8441734505ed7080310af3fc7",
54
+ "lib/datalog/latex_speech/words.json": "96baf49da70685a120fbeceb37fc5920b057907fc7cdfef63f6838614b4cd5b6",
55
+ "package-lock.json": "4c27f4cd18ff40ca0f1d6866559fd0adfde22abdd41306c705bc2d7893c5975e",
52
56
  "scripts/build_js.mjs": "b976e20ead1e5b69973b5f7413480f0b004db4dfac5a843c220059794eb57af3"
53
57
  }
54
58
  }