datalog-theme 0.9.0 → 0.9.2

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/CITATION.cff +2 -2
  4. data/_data/i18n/en.yml +24 -0
  5. data/_data/i18n/es.yml +24 -0
  6. data/_data/i18n/pt.yml +24 -0
  7. data/_includes/components/academic-dashboard.html +4 -4
  8. data/_includes/components/author-list.html +1 -1
  9. data/_includes/components/breadcrumbs.html +6 -4
  10. data/_includes/components/citation-tools.html +5 -53
  11. data/_includes/components/comments-thread.html +1 -1
  12. data/_includes/components/contact-form.html +1 -1
  13. data/_includes/components/correction-report.html +1 -1
  14. data/_includes/components/hero.html +1 -1
  15. data/_includes/components/moderation-inbox.html +1 -1
  16. data/_includes/components/post-hero.html +2 -2
  17. data/_includes/components/reactions.html +1 -1
  18. data/_includes/components/reading-list.html +3 -0
  19. data/_includes/components/reading-mode-toggle.html +2 -0
  20. data/_includes/components/reading-state-panel.html +0 -9
  21. data/_includes/components/reading-state-resume.html +17 -0
  22. data/_includes/components/subscribe-form.html +1 -1
  23. data/_includes/components/subscription-manage.html +2 -1
  24. data/_includes/components/visualization-card.html +1 -1
  25. data/_includes/components/webmentions.html +1 -1
  26. data/_includes/footer/nav-column.html +1 -1
  27. data/_includes/footer.html +2 -2
  28. data/_includes/head.html +13 -12
  29. data/_includes/header/navigation.html +2 -2
  30. data/_includes/header.html +1 -1
  31. data/_includes/layouts/default/article.html +2 -2
  32. data/_includes/meta/math-config.html +3 -0
  33. data/_includes/meta/person-json.html +7 -7
  34. data/_includes/meta/publisher.html +1 -1
  35. data/_includes/meta/schema.html +32 -30
  36. data/_includes/meta/scholarly.html +4 -3
  37. data/_includes/post/related-posts.html +1 -1
  38. data/_layouts/dataset.html +1 -1
  39. data/_layouts/home.html +2 -2
  40. data/_layouts/notebook.html +1 -1
  41. data/_layouts/package.html +5 -5
  42. data/_layouts/portfolio.html +1 -1
  43. data/_layouts/post.html +12 -7
  44. data/_layouts/project.html +3 -3
  45. data/_layouts/research.html +7 -67
  46. data/_plugins/authors.rb +22 -4
  47. data/_plugins/citation_exports.rb +93 -0
  48. data/_plugins/image_optimizer.rb +24 -16
  49. data/_plugins/licenses.rb +15 -3
  50. data/_plugins/math_preprocessor.rb +65 -3
  51. data/_plugins/references.rb +30 -8
  52. data/_plugins/reproducibility.rb +20 -3
  53. data/_plugins/responsive_content.rb +40 -0
  54. data/_plugins/revisions.rb +1 -0
  55. data/_plugins/scholarly.rb +5 -0
  56. data/_plugins/statements.rb +2 -2
  57. data/_sass/_base.scss +5 -0
  58. data/_sass/_layout.scss +18 -1
  59. data/_sass/_mathematical.scss +11 -1
  60. data/_sass/_print.scss +16 -8
  61. data/_sass/_syntax-highlighting.scss +1 -1
  62. data/assets/js/dist/chunks/chunk-VZ5WKQVA.js +1 -0
  63. data/assets/js/dist/chunks/chunk-WIRUK3OZ.js +1 -0
  64. data/assets/js/dist/comments.js +2 -2
  65. data/assets/js/dist/contact.js +1 -1
  66. data/assets/js/dist/corrections.js +1 -1
  67. data/assets/js/dist/moderation.js +1 -1
  68. data/assets/js/dist/reactions.js +1 -1
  69. data/assets/js/dist/reading-state.js +1 -1
  70. data/assets/js/dist/sources.json +16 -16
  71. data/assets/js/dist/subscriptions.js +1 -1
  72. data/assets/js/dist/visualizations.js +2 -2
  73. data/assets/js/dist/webmentions.js +1 -1
  74. data/lib/datalog/theme/version.rb +1 -1
  75. metadata +7 -4
  76. data/assets/js/dist/chunks/chunk-2DYDWUFX.js +0 -1
  77. data/assets/js/dist/chunks/chunk-V7734B2G.js +0 -1
@@ -3,9 +3,9 @@
3
3
  "assets/js/academic.js": "c4a510fe7457b70273361e0dec773299604d17c2fbd43eab62a78dd9ff2175da",
4
4
  "assets/js/analytics-dashboard.js": "98458c96b2f93c4842a3c4c4197cbcc6e1ebc84f74b322e1935408d3d0d8a3ae",
5
5
  "assets/js/comments.js": "5710a30b20bdffa02b256ec9f9e6b07f0871fa5903eb5b60880aba6e915956f5",
6
- "assets/js/comments/thread.js": "440b5adb0e6595df75fa79f34c240461e16ede29e54dd8a32ef985cc9dabfd59",
6
+ "assets/js/comments/thread.js": "50684540ae6f03555ed375df46116f9f91c0c756477a2426972274ec581f18bc",
7
7
  "assets/js/contact.js": "7b93f9f5d8f3c0852303ea22c970845072935de50fd6f765087825e60b845c69",
8
- "assets/js/contact/form.js": "e1645a734beee64a7ed025896a8e3dcbee3a1cbfa7d35df6043994b9f52844ce",
8
+ "assets/js/contact/form.js": "502c755ee72b7f6d050cd3965c25c4979586c1e5c444dd944a77767925c8c5ae",
9
9
  "assets/js/core/copy-buttons.js": "339e890158e3c9e5b06f85c56f8658b352a15df8c955e1208dbfa8a75443a55e",
10
10
  "assets/js/core/dark-mode.js": "1d4a699f6b810c829138823e346d96fa95bb89a3247937f5ff001a476d1856f3",
11
11
  "assets/js/core/github-cards.js": "7eb0c4f489fd838f4c62ed0e5ba59ad4c51e01c8a7ccf04c2ef26c1b47fa284e",
@@ -15,23 +15,23 @@
15
15
  "assets/js/core/search-hotkeys.js": "19881663e3db178e92ab58a382c5369aab5a3045b58410d906eb117924125186",
16
16
  "assets/js/core/skip-links.js": "138265a3aa853bf07a798efd03d56b14a5733f6e6c1810ccf87e4cfb86d52c30",
17
17
  "assets/js/corrections.js": "16010732e7d653490d7b08d8dea88616008f9ae15efbc0f42848c52a7c8a6209",
18
- "assets/js/corrections/form.js": "965df11af774ab219a45ea993b17418e93acbf7cb44b83f402c33235369a3810",
19
- "assets/js/dynamic-services/client.js": "a495de0733d4cbac24787f2d5b8583e09643862b2c8f93b5513701c30927f2b1",
20
- "assets/js/dynamic-services/form-state.js": "0711cb2280a1c38cbb8f9ea1f075a6fb3d91ce4ab32647e54351e51ab1e3ebf1",
18
+ "assets/js/corrections/form.js": "525c281ca7c964b0415c5571360b87c7827299d870c673d87f2b1b398b240e8b",
19
+ "assets/js/dynamic-services/client.js": "32e9cf9ad040553b2b96c3d92733c9b7626846f6dfb0aa6072ceab9f498b90b0",
20
+ "assets/js/dynamic-services/form-state.js": "96bfe09e7ea789d57d50f9f36cce8f53823d650dab6e5b4cc10f17c3fbec504e",
21
21
  "assets/js/loader.js": "4544818b74f4c34a634c58008ca3348ad0bede869ccf81af27ba4dad1cbb9283",
22
22
  "assets/js/main.js": "3f613ee824f48b83f9065f087bc8e1a75f0368e37a23dacf3196c2b9ffcd38ad",
23
23
  "assets/js/math.js": "267693a35a1b9cbf3a9c5475fdaadf3eac5b715bd60af0761b4c0adf0eaf521a",
24
24
  "assets/js/moderation.js": "2e9bcb00f0dcf4dd436458d99764989c9728794716dd33c59310d65206323c46",
25
- "assets/js/moderation/inbox.js": "853e517447d9123a938858e206080e0cc5b27b44603d2f936f6d709774fd1d63",
25
+ "assets/js/moderation/inbox.js": "ddbe3f4c251ff4bf10bd799fbd2e43777d3d728643fd5b962dfdf258c7365993",
26
26
  "assets/js/notebook.js": "361f716a76b398aeb564ef05ba026018b1bc083de28d75c9b8df5776a6ccb21a",
27
27
  "assets/js/reactions.js": "8386cffaacba9a1f976274f8145b95e9c1c2409da977dfc94ca195477971848b",
28
- "assets/js/reactions/widget.js": "9dc58e5f3f8a95937ed3ffb640eab0aa4a79d5aabda36ea7791937e7320b3778",
28
+ "assets/js/reactions/widget.js": "8407a55582e017fc9652cf2968db084c06e63e116150abf11c4eac9b7ef90596",
29
29
  "assets/js/reading-state.js": "d2543904e203ccad34e0950bdeb2c526ad0908ee147d8f031e421b6bd0115fd6",
30
- "assets/js/reading-state/anchors.js": "f63336769fad19836c7be98c0f80d52147341ece776fcb25b47cbf42a54c1f2f",
31
- "assets/js/reading-state/highlights.js": "65f58cebcbd622ec99373d8ba9083c10b37d45b34d926e7c8cfa23e08fa93e38",
32
- "assets/js/reading-state/progress.js": "bcbb2ac2783e50ec71ca4d5b243d4083212fa9e23822438a77911c4f1b427f33",
33
- "assets/js/reading-state/storage.js": "961c50c9028187c68a29b30617a05bcfb25e475e63edd4f45ed7b08c40d91d06",
34
- "assets/js/reading-state/ui.js": "e0583dc9ef2025012b2918b636d5ad18e4ee30b89d86c0a40bd0223b16e5e7e8",
30
+ "assets/js/reading-state/anchors.js": "d9051f08c4aff812b841fc1e8ca2eee5859bdb856f17015399fae41fb7a27ab2",
31
+ "assets/js/reading-state/highlights.js": "c806bb70dcc40affac4367a3ca0c7cdbd1e64b8e59571346185f1257168c8ad8",
32
+ "assets/js/reading-state/progress.js": "96d9c1a4692b958e4d3a43b0701cd4c7254f4b20404394deb2cd8e5984d5e33b",
33
+ "assets/js/reading-state/storage.js": "9e0eac8d71be811e5f0d27f75f85af1b638e81332572e33b2213bddef6991d9a",
34
+ "assets/js/reading-state/ui.js": "56e443887597ed71c776a8fad99de48d5798ae5be64c0a37cca16f1475388380",
35
35
  "assets/js/search.js": "602c89a4a2608ba6662140975a381b8d7d8847c0a10ba11b72247b27c2104f8d",
36
36
  "assets/js/search/analytics.js": "e0473ca5b34073e3246b5b1baec9d4d670a067102e98369208fdc10ff8e4cc1e",
37
37
  "assets/js/search/app.js": "66d93d600d184132c7f6de57764860b5d890b0e777a68e1ec3535399158eec20",
@@ -41,11 +41,11 @@
41
41
  "assets/js/search/render.js": "75eaec880b1fe09a27bf11515a813628fc2a299cacaf340ebd1fd6cc4f5ea678",
42
42
  "assets/js/search/utils.js": "a805c21d30ce0d02007609d510c43e99cbb53681ed37b77dd0755af4ccb39e08",
43
43
  "assets/js/subscriptions.js": "053b8387521deb5d4f940ef9effc816bc7e754e351460bda098cccd112d0b0c3",
44
- "assets/js/subscriptions/form.js": "ff2bbe7a41367e15b964f0b996bf3e04cd3d8c99eca06182e74ffdb7e3980c3c",
45
- "assets/js/subscriptions/manage.js": "5d7661edb6930cb9b582b36323ce7af08c5340bbf20c8ca19fefb343608b9a77",
46
- "assets/js/visualizations.js": "114cf5d7b5ed286e1e8d17174fa126787311b8585c2b03f7e73bc960b3c08051",
44
+ "assets/js/subscriptions/form.js": "8eee3b658940140bdada2648daae37f11261e38a5a896e863771b12586030898",
45
+ "assets/js/subscriptions/manage.js": "4948505dacad370caaccfac389e8721a02f3755d50bdbf54dffafb4e44e1932d",
46
+ "assets/js/visualizations.js": "a0414ea4ec2fd0829d049642420d753529c331966958c298901bff46d8cc26d4",
47
47
  "assets/js/webmentions.js": "f36402477bf0e6bd835e3ccf3a0fb67eb3af590ef6da179613eab10409e79803",
48
- "assets/js/webmentions/list.js": "008a18cb6a9d631fe8711125bf16430e4af0867f73c5d24912f14dbc5b22bb66",
48
+ "assets/js/webmentions/list.js": "64dfbad25539d4ae2571bcd61c24a869520c1ec3c1a191b22d4984f1e88c21cf",
49
49
  "package-lock.json": "47c57dbc04bc096bd3d1c0153bf214e1b9127167cd3625947bc518cb0c5888d1",
50
50
  "scripts/build_js.mjs": "b976e20ead1e5b69973b5f7413480f0b004db4dfac5a843c220059794eb57af3"
51
51
  }
@@ -1 +1 @@
1
- import{a as q,b as U,c as L}from"./chunks/chunk-V7734B2G.js";import{a as F,c as k}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var p="subscriptions",C=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function O(e,r){let a=e.querySelector(r);if(!a)return{};try{return JSON.parse(a.textContent)||{}}catch(t){return{}}}function T(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function $(e,r={}){let a={email:e.email||""};return r.hasTopics&&(a.topics=[].concat(e.topics||[]).filter(Boolean)),r.sourceUrl&&(a.source_url=r.sourceUrl),r.locale&&(a.locale=r.locale),a}function M(e,r,a={}){let t={};return C.test(e.email)||(t.email=a.email_invalid||"That does not look like an email address."),Array.isArray(e.topics)&&e.topics.length===0&&(t.topics=a.topics_required||"Pick at least one."),r.website&&(t.website="spam"),Object.keys(t).length>0?t:null}function _(e,r={}){let a=r.client||k(),t=e.querySelector("form"),o=O(e,"[data-subscribe-labels]"),y=o.errors||{},S=e.ownerDocument,u=S.querySelector('link[rel="canonical"]'),A={sourceUrl:e.dataset.subscribeSource||u&&u.href||"",locale:e.dataset.subscribeLocale||S.documentElement.lang||"",hasTopics:t.querySelector('[name="topics"]')!==null},w=e.dataset.subscribeDoubleOptIn!=="false",h=null,v=c=>{t.dataset.result=c,q(t,"success",o[c]||"")};if(!a.enabled)return q(t,"disabled",y.disabled||""),{form:t,available:!1,submit:async()=>null};let f=()=>(h||(h=a.feature(p).catch(c=>{throw h=null,L(t,c,y),t.dataset.state="disabled",t.querySelectorAll("button[type=submit]").forEach(i=>{i.disabled=!0}),c})),h);t.addEventListener("focusin",()=>f().catch(()=>{}),{once:!0});let b={form:t,available:!0,async submit(){let c=U(t),i=$(c,A),d=M(i,c,o);if(delete t.dataset.result,d)return d.website?(v("pending"),null):(q(t,"invalid",y.invalid||"",d),null);q(t,"pending",o.sending||"");try{await f()}catch(l){return null}try{let l=await a.post(a.pathFor(p),i,{idempotencyKey:T()}),m=l&&l.data&&typeof l.data.status=="string"?l.data.status:"";return t.reset(),v(m==="confirmed"||m==="subscribed"||m===""&&!w?"confirmed":"pending"),l}catch(l){return l&&l.kind==="conflict"?v("duplicate"):L(t,l,y),null}}};return t.addEventListener("submit",c=>{c.preventDefault(),b.submit()}),b}function D(e=document){return Array.from(e.querySelectorAll("[data-subscribe]")).map(r=>_(r))}var N=["confirm","unsubscribe","manage"],R=/^[A-Za-z0-9._~-]{8,512}$/;function j(e,r){let a=e.querySelector(r);if(!a)return{};try{return JSON.parse(a.textContent)||{}}catch(t){return{}}}function K(e){let r=new URLSearchParams(e||""),a=N.find(o=>r.has(o));if(!a)return null;let t=(r.get(a)||"").trim();return R.test(t)?{action:a,token:t}:null}function P(e,r={}){let t=e.ownerDocument.defaultView,o=r.client||k(),y=r.location||t&&t.location||{search:"",pathname:"/"},S=r.history===void 0?t&&t.history:r.history,u=j(e,"[data-manage-labels]"),A=u.errors||{},w=e.querySelector("[data-manage-status]"),h=e.querySelector("[data-manage-idle]"),v=e.querySelector("[data-manage-unsubscribe-panel]"),f=e.querySelector("[data-manage-preferences]"),b=K(y.search),c=b?`${o.pathFor(p)}/${encodeURIComponent(b.token)}`:"",i=(n,s="",E=!1)=>{e.dataset.state=n,w&&(w.textContent=s,w.hidden=s==="",w.setAttribute("role",E?"alert":"status"))},d=n=>{[h,v,f].forEach(s=>{s&&(s.hidden=s!==n)})},l=n=>{let s=n&&(n.kind==="not_found"||n.status===410);d(null),i("error",s?u.invalid_link||"":F(n,A),!0)},m=n=>{e.setAttribute("aria-busy",n?"true":"false"),e.querySelectorAll("button").forEach(s=>{s.disabled=n})},g={root:e,request:b,async confirm(){d(null),i("pending",u.confirming||"");try{await o.feature(p);let n=await o.post(`${o.pathFor(p)}/confirm`,{token:b.token});return i("confirmed",u.confirmed||""),n}catch(n){return l(n),null}},async unsubscribe(){m(!0),i("pending",u.unsubscribing||"");try{await o.feature(p);let n=await o.delete(c);return d(null),i("unsubscribed",u.unsubscribed||""),n}catch(n){return l(n),null}finally{m(!1)}},async load(){d(null),i("loading",u.loading||"");try{await o.feature(p);let n=await o.get(c),s=n&&n.data&&Array.isArray(n.data.topics)?n.data.topics.map(String):[];return f&&f.querySelectorAll('[name="topics"]').forEach(E=>{E.checked=s.includes(E.value)}),d(f),i("loaded"),s}catch(n){return l(n),null}},async save(){let n=Array.from(f.querySelectorAll('[name="topics"]:checked')).map(s=>s.value);m(!0),i("pending",u.saving||"");try{let s=await o.patch(c,{topics:n});return i("saved",u.saved||""),s}catch(s){return i("error",F(s,A),!0),null}finally{m(!1)}}};return e.querySelectorAll("[data-manage-unsubscribe]").forEach(n=>{n.addEventListener("click",()=>g.unsubscribe())}),f&&f.addEventListener("submit",n=>{n.preventDefault(),g.save()}),o.enabled?b?(S&&typeof S.replaceState=="function"&&S.replaceState(null,"",y.pathname),b.action==="confirm"?g.confirm():b.action==="manage"?g.load():(d(v),i("idle")),g):(d(h),i("idle"),g):(d(null),i("disabled",A.disabled||""),g)}function I(e=document){return Array.from(e.querySelectorAll("[data-subscription-manage]")).map(r=>P(r))}function x(){D(document),I(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",x,{once:!0}):x();
1
+ import{a as O,b as R,c as q,d as T,e as I}from"./chunks/chunk-WIRUK3OZ.js";import{a as x,c as C}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var h="subscriptions",M=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function N(e,a){let s=e.querySelector(a);if(!s)return{};try{return JSON.parse(s.textContent)||{}}catch(n){return{}}}function $(e,a={}){let s={email:e.email||""};return a.hasTopics&&(s.topics=[].concat(e.topics||[]).filter(Boolean)),a.sourceUrl&&(s.source_url=a.sourceUrl),a.locale&&(s.locale=a.locale),s}function j(e,a,s={}){let n={};return M.test(e.email)||(n.email=s.email_invalid||"That does not look like an email address."),Array.isArray(e.topics)&&e.topics.length===0&&(n.topics=s.topics_required||"Pick at least one."),a.website&&(n.website="spam"),Object.keys(n).length>0?n:null}function P(e,a={}){let s=a.client||C(),n=e.querySelector("form"),c=N(e,"[data-subscribe-labels]"),g=c.errors||{},S=e.ownerDocument,o=S.querySelector('link[rel="canonical"]'),k={sourceUrl:e.dataset.subscribeSource||o&&o.href||"",locale:e.dataset.subscribeLocale||S.documentElement.lang||"",hasTopics:n.querySelector('[name="topics"]')!==null},v=e.dataset.subscribeDoubleOptIn!=="false",E=O(n),w=d=>{n.dataset.result=d,q(n,"success",c[d]||"")};if(!s.enabled)return q(n,"disabled",g.disabled||""),{form:n,available:!1,submit:async()=>null};let m=R(s,h,n,g);n.addEventListener("focusin",()=>m().catch(()=>{}),{once:!0});let p={form:n,available:!0,async submit(){let d=T(n),f=$(d,k),l=j(f,d,c);if(delete n.dataset.result,l)return l.website?(w("pending"),null):(q(n,"invalid",g.invalid||"",l),null);q(n,"pending",c.sending||"");try{await m()}catch(i){return null}try{let i=await s.post(s.pathFor(h),f,{idempotencyKey:E.key(f)}),u=i&&i.data&&typeof i.data.status=="string"?i.data.status:"";return E.clear(),n.reset(),w(u==="confirmed"||u==="subscribed"||u===""&&!v?"confirmed":"pending"),i}catch(i){return i&&i.kind==="conflict"?w("duplicate"):I(n,i,g),null}}};return n.addEventListener("submit",d=>{d.preventDefault(),p.submit()}),p}function U(e=document){return Array.from(e.querySelectorAll("[data-subscribe]")).map(a=>P(a))}var J=["confirm","unsubscribe","manage"],K=/^[A-Za-z0-9._~-]{8,512}$/;function z(e,a){let s=e.querySelector(a);if(!s)return{};try{return JSON.parse(s.textContent)||{}}catch(n){return{}}}function B(e){let a=new URLSearchParams(e||""),s=J.find(c=>a.has(c));if(!s)return null;let n=(a.get(s)||"").trim();return K.test(n)?{action:s,token:n}:null}function V(e,a={}){let s=e.ownerDocument,n=s.defaultView,c=a.client||C(),g=a.location||n&&n.location||{search:"",pathname:"/"},S=a.history===void 0?n&&n.history:a.history,o=z(e,"[data-manage-labels]"),k=o.errors||{},v=e.querySelector("[data-manage-status]"),E=e.querySelector("[data-manage-idle]"),w=e.querySelector("[data-manage-unsubscribe-panel]"),m=e.querySelector("[data-manage-preferences]"),p=B(g.search),d=p?`${c.pathFor(h)}/${encodeURIComponent(p.token)}`:"",f=null,l=s.createElement("button");l.type="button",l.className="post-tool",l.dataset.manageRetry="",l.textContent=o.retry||"Try again",l.hidden=!0,l.addEventListener("click",()=>f==null?void 0:f()),e.appendChild(l);let i=(r,t="",A=!1)=>{r!=="error"&&(f=null),e.dataset.state=r,l.hidden=r!=="error"||!f,v&&(v.textContent=t,v.hidden=t==="",v.setAttribute("role",A?"alert":"status"))},u=r=>{[E,w,m].forEach(t=>{t&&(t.hidden=t!==r)})},F=(r,t,A)=>{let L=t&&r&&(r.kind==="not_found"||r.status===410);f=r!=null&&r.retryable?A:null,u(null),i("error",L?o.invalid_link||"":x(r,k),!0)},y=r=>{e.setAttribute("aria-busy",r?"true":"false"),e.querySelectorAll("button").forEach(t=>{t.disabled=r})},b={root:e,request:p,async confirm(){let r=!1;y(!0),u(null),i("pending",o.confirming||"");try{await c.feature(h),r=!0;let t=await c.post(`${c.pathFor(h)}/confirm`,{token:p.token});return i("confirmed",o.confirmed||""),t}catch(t){return F(t,r,()=>b.confirm()),null}finally{y(!1)}},async unsubscribe(){let r=!1;y(!0),i("pending",o.unsubscribing||"");try{await c.feature(h),r=!0;let t=await c.delete(d);return u(null),i("unsubscribed",o.unsubscribed||""),t}catch(t){return F(t,r,()=>b.unsubscribe()),null}finally{y(!1)}},async load(){let r=!1;y(!0),u(null),i("loading",o.loading||"");try{await c.feature(h),r=!0;let t=await c.get(d),A=t&&t.data&&Array.isArray(t.data.topics)?t.data.topics.map(String):[];return m&&m.querySelectorAll('[name="topics"]').forEach(L=>{L.checked=A.includes(L.value)}),u(m),i("loaded"),A}catch(t){return F(t,r,()=>b.load()),null}finally{y(!1)}},async save(){let r=Array.from(m.querySelectorAll('[name="topics"]:checked')).map(t=>t.value);y(!0),i("pending",o.saving||"");try{let t=await c.patch(d,{topics:r});return i("saved",o.saved||""),t}catch(t){return f=t!=null&&t.retryable?()=>b.save():null,i("error",x(t,k),!0),null}finally{y(!1)}}};return e.querySelectorAll("[data-manage-unsubscribe]").forEach(r=>{r.addEventListener("click",()=>b.unsubscribe())}),m&&m.addEventListener("submit",r=>{r.preventDefault(),b.save()}),c.enabled?p?(S&&typeof S.replaceState=="function"&&S.replaceState(null,"",g.pathname),p.action==="confirm"?b.confirm():p.action==="manage"?b.load():(u(w),i("idle")),b):(u(E),i("idle"),b):(u(null),i("disabled",k.disabled||""),b)}function D(e=document){return Array.from(e.querySelectorAll("[data-subscription-manage]")).map(a=>V(a))}function _(){U(document),D(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",_,{once:!0}):_();
@@ -1,4 +1,4 @@
1
- (function(){let Z=typeof process!="undefined"&&process.env&&process.env.VITEST==="true",_="[data-viz-type]",I='script[type="application/json"]',F='script[type="application/vnd.jupyter.widget-state+json"]',K='script[type="application/vnd.jupyter.widget-view+json"]',q=new Map,L=new Set,k="viz-table-fallback-template",z=(t,e={})=>{if(!t)return Promise.reject(new Error("Missing script source"));if(q.has(t))return q.get(t);let r=new Promise((n,s)=>{let o=document.createElement("script");o.src=t,o.async=e.async!==!1,e.integrity&&(o.integrity=e.integrity,o.crossOrigin=e.crossOrigin||"anonymous"),o.onload=()=>n(o),o.onerror=a=>s(a),document.head.appendChild(o)});return q.set(t,r),r},Q=t=>!t||L.has(t)?Promise.resolve():new Promise((e,r)=>{let n=document.createElement("link");n.rel="stylesheet",n.href=t,n.onload=()=>{L.add(t),e(n)},n.onerror=s=>r(s),document.head.appendChild(n)}),b=t=>Object.prototype.toString.call(t)==="[object Object]",y=t=>t===null||typeof t=="undefined"?"":t instanceof Date?t.toISOString():Array.isArray(t)?t.map(e=>y(e)).join(", "):b(t)?Object.entries(t).map(([e,r])=>`${e}: ${y(r)}`).join("; "):typeof t=="boolean"?t?"Yes":"No":typeof t=="number"?Number.isFinite(t)?`${t}`:"":String(t),T=(t,e=[])=>b(t)?Object.entries(t).reduce((r,[n,s])=>{let o=e.concat([n]);return b(s)?Object.assign(r,T(s,o)):Array.isArray(s)?r[o.join(" \u203A ")]=s.map(a=>y(a)).join(", "):r[o.join(" \u203A ")]=s,r},{}):{[e.join(" \u203A ")||"Value"]:t},m=t=>{if(!t)return[];if(Array.isArray(t)){if(!t.length)return[];if(t.every(e=>b(e)))return t.map(e=>T(e));if(Array.isArray(t[0])){let e=t[0],r=e.every(o=>typeof o=="string"||typeof o=="number"),n=e.map((o,a)=>r?y(o):`Column ${a+1}`),s=r?1:0;return t.slice(s).map((o,a)=>{let c={};return Array.isArray(o)?(n.forEach((i,l)=>{c[i]=o[l]}),n.length||o.forEach((i,l)=>{c[`Column ${l+1}`]=i})):c[`Row ${a+1}`]=o,c})}return t.map((e,r)=>({Index:r+1,Value:e}))}return b(t)?Array.isArray(t.data)?m(t.data):Array.isArray(t.values)?m(t.values):Array.isArray(t.rows)?m(t.rows):[T(t)]:[{Value:t}]},tt=t=>{let e=["Series","Trace","Group","Category","Index","X","Y","Z","Value","Text"],r=[];return e.forEach(n=>{t.includes(n)&&r.push(n)}),t.filter(n=>!e.includes(n)).sort().forEach(n=>r.push(n)),r},et=t=>{let e=t.getAttribute("data-viz-title");if(e)return e;let r=t.querySelector(".viz-title");return r&&r.textContent?r.textContent.trim():t.getAttribute("data-viz-slug")||"Visualization data"},rt=()=>{let t=document.getElementById(k);if(t)return t;t=document.createElement("template"),t.id=k;let e=document.createElement("div");return e.insertAdjacentHTML("afterbegin",'<div class="viz-table-container" data-viz-table-container><button type="button" class="viz-table-toggle" data-viz-table-toggle aria-expanded="false">Show data table</button><div class="viz-table-wrapper" data-viz-table-wrapper hidden><table class="viz-table" data-viz-table><caption data-viz-table-caption></caption><thead data-viz-table-head></thead><tbody data-viz-table-body></tbody></table></div></div>'),t.content.appendChild(e.firstElementChild),document.body.appendChild(t),t},E=(t,e={})=>{let{caption:r,rows:n}=e,s=m(n);if(!s.length)return;let o=Array.from(s.reduce((p,f)=>(Object.keys(f).forEach(O=>p.add(O)),p),new Set));if(!o.length)return;let a=tt(o),i=rt().content.firstElementChild.cloneNode(!0),l=i.querySelector("[data-viz-table-toggle]"),u=i.querySelector("[data-viz-table-wrapper]"),H=i.querySelector("[data-viz-table]"),w=i.querySelector("[data-viz-table-caption]"),h=i.querySelector("[data-viz-table-head]"),S=i.querySelector("[data-viz-table-body]"),A=`${t.getAttribute("data-viz-slug")||t.id||"viz"}-table`;H.id=A,l.setAttribute("aria-controls",A),w.textContent=r||et(t);let x=document.createElement("tr");a.forEach(p=>{let f=document.createElement("th");f.scope="col",f.textContent=p,x.appendChild(f)}),h.appendChild(x),s.forEach(p=>{let f=document.createElement("tr");a.forEach((O,yt)=>{let X=y(p[O]);if(yt===0){let v=document.createElement("th");v.scope="row",v.textContent=X,f.appendChild(v)}else{let v=document.createElement("td");v.textContent=X,f.appendChild(v)}}),S.appendChild(f)}),l.addEventListener("click",()=>{let p=l.getAttribute("aria-expanded")==="true";l.setAttribute("aria-expanded",String(!p)),l.textContent=p?"Show data table":"Hide data table",p?u.setAttribute("hidden",""):u.removeAttribute("hidden")});let Y=t.querySelector("[data-viz-table-container]");Y&&Y.remove(),t.appendChild(i),(t.querySelector("[data-viz-canvas]")||t).setAttribute("aria-describedby",A)},N=(t=[])=>{let e=[];return t.forEach((r,n)=>{let s=r.name||`Series ${n+1}`,o=Array.isArray(r.x)?r.x:[],a=Array.isArray(r.y)?r.y:[],c=Array.isArray(r.text)?r.text:[],i=r.z;if(Array.isArray(i)&&i.length&&Array.isArray(i[0])){let u=o.length?o:i[0].map((w,h)=>h+1);(a.length?a:i.map((w,h)=>h+1)).forEach((w,h)=>{let S=i[h]||[];u.forEach((A,x)=>{e.push({Series:s,Y:w,X:A,Value:Array.isArray(S)?S[x]:S,Text:c[h]?y(c[h]):""})})});return}let l=Math.max(o.length,a.length,c.length);for(let u=0;u<l;u+=1)e.push({Series:s,X:o[u],Y:a[u],Text:c[u]})}),e.length?e:null},M=t=>t?Array.isArray(t)?t:b(t)&&Array.isArray(t.data)?t.data:t:null,V=t=>{let e=t.querySelector("script[data-observable-data]");if(!e)return null;try{return JSON.parse(e.textContent||"null")}catch(r){return null}},g=null,j=new Set,C=(t,e)=>{if(typeof window[e]!="undefined")return Promise.resolve(window[e]);let r=()=>z(t).then(()=>window[e]);if(g)return g.then(o=>new Promise((a,c)=>{o([t],i=>a(i||window[e]),c)}),r);let n=r();j.add(n);let s=()=>j.delete(n);return n.then(s,s),n},D=()=>C("https://cdn.jsdelivr.net/npm/plotly.js-dist-min@2.27.0/plotly.min.js","Plotly"),nt=()=>C("https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js","d3"),ot=()=>C("https://cdn.jsdelivr.net/npm/@bokeh/bokehjs@3.3.3/build/js/bokeh.min.js","Bokeh").then(t=>t&&t.Plotting?t:z("https://cdn.jsdelivr.net/npm/@bokeh/bokehjs@3.3.3/build/js/bokeh-api.min.js").then(()=>window.Bokeh)),R=()=>(g||(g=Promise.allSettled([...j]).then(()=>typeof window.requirejs!="undefined"?window.requirejs:z("https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js",{async:!1}).then(()=>window.requirejs))),g),st=()=>R().then(t=>{let e=window.__datalogWidgetManagerPromise;if(e)return e;let r=new Promise((n,s)=>{t.config({paths:{"@jupyter-widgets/html-manager":"https://cdn.jsdelivr.net/npm/@jupyter-widgets/html-manager@1.0.8/dist/embed-amd","@jupyter-widgets/base":"https://cdn.jsdelivr.net/npm/@jupyter-widgets/base@6.0.7/dist/index","@jupyter-widgets/controls":"https://cdn.jsdelivr.net/npm/@jupyter-widgets/controls@5.0.7/dist/index","@lumino/coreutils":"https://cdn.jsdelivr.net/npm/@lumino/coreutils@2.1.1/dist/index","@lumino/widgets":"https://cdn.jsdelivr.net/npm/@lumino/widgets@2.3.1/dist/index"}}),t(["@jupyter-widgets/html-manager"],o=>n(o),o=>s(o))});return window.__datalogWidgetManagerPromise=r,r}),at=(t,e)=>{let r=document.createElement("button");return r.type="button",r.className="viz-toolbar__button",r.textContent=t,r.addEventListener("click",n=>{n.preventDefault(),e(n)}),r},d=(t,e,r="info")=>{let n=t.querySelector("[data-viz-status]");n&&(n.textContent=e,n.dataset.tone=r)},$=t=>{let e=t.getAttribute("data-viz-version"),r=t.getAttribute("data-viz-updated"),n=t.querySelector("[data-viz-meta]");if(!n)return;let s=[];e&&s.push(`v${e}`),r&&s.push(`Updated ${r}`),n.textContent=s.join(" \xB7 ")},it=t=>{let e=t.querySelector("[data-viz-canvas]")||t,r=t.querySelector(I);if(!r)return d(t,"Missing Plotly specification","error"),Promise.resolve();let n={};try{n=JSON.parse(r.textContent||"{}")}catch(a){return d(t,"Invalid Plotly specification","error"),Promise.resolve()}let s=Array.isArray(n.data)?n.data:[],o=Object.assign({autosize:!0},n.layout||{});return D().then(a=>a.newPlot(e,s,o,{responsive:!0,displaylogo:!1})).then(()=>{d(t,"Interactive");let a=t.querySelector("[data-viz-export]");a&&(a.replaceChildren(),a.appendChild(at("Download PNG",()=>{D().then(i=>{i.downloadImage(e,{format:"png",filename:t.getAttribute("data-viz-slug")||"visualization"})})})));let c=N(s);c&&E(t,{caption:o&&o.title?y(o.title.text||o.title):void 0,rows:c})}).catch(()=>{d(t,"Plotly failed to load","error")})},B=(t,e,r,n)=>{let s={args:n,done:!1,error:null,result:void 0},o=document.createElement("script"),a=t.nonce||t.getAttribute("nonce");a&&(o.nonce=a),o.datalogRun=s,o.textContent=`(function (run) {
1
+ (function(){let Z=typeof process!="undefined"&&process.env&&process.env.VITEST==="true",I="[data-viz-type]",_='script[type="application/json"]',F='script[type="application/vnd.jupyter.widget-state+json"]',K='script[type="application/vnd.jupyter.widget-view+json"]',q=new Map,k=new Set,L="viz-table-fallback-template",z=(t,e={})=>{if(!t)return Promise.reject(new Error("Missing script source"));if(q.has(t))return q.get(t);let r=new Promise((n,s)=>{let o=document.createElement("script");o.src=t,o.async=e.async!==!1,e.integrity&&(o.integrity=e.integrity,o.crossOrigin=e.crossOrigin||"anonymous"),o.onload=()=>n(o),o.onerror=a=>s(a),document.head.appendChild(o)});return q.set(t,r),r},Q=t=>!t||k.has(t)?Promise.resolve():new Promise((e,r)=>{let n=document.createElement("link");n.rel="stylesheet",n.href=t,n.onload=()=>{k.add(t),e(n)},n.onerror=s=>r(s),document.head.appendChild(n)}),b=t=>Object.prototype.toString.call(t)==="[object Object]",y=t=>t===null||typeof t=="undefined"?"":t instanceof Date?t.toISOString():Array.isArray(t)?t.map(e=>y(e)).join(", "):b(t)?Object.entries(t).map(([e,r])=>`${e}: ${y(r)}`).join("; "):typeof t=="boolean"?t?"Yes":"No":typeof t=="number"?Number.isFinite(t)?`${t}`:"":String(t),T=(t,e=[])=>b(t)?Object.entries(t).reduce((r,[n,s])=>{let o=e.concat([n]);return b(s)?Object.assign(r,T(s,o)):Array.isArray(s)?r[o.join(" \u203A ")]=s.map(a=>y(a)).join(", "):r[o.join(" \u203A ")]=s,r},{}):{[e.join(" \u203A ")||"Value"]:t},m=t=>{if(!t)return[];if(Array.isArray(t)){if(!t.length)return[];if(t.every(e=>b(e)))return t.map(e=>T(e));if(Array.isArray(t[0])){let e=t[0],r=e.every(o=>typeof o=="string"||typeof o=="number"),n=e.map((o,a)=>r?y(o):`Column ${a+1}`),s=r?1:0;return t.slice(s).map((o,a)=>{let c={};return Array.isArray(o)?(n.forEach((i,l)=>{c[i]=o[l]}),n.length||o.forEach((i,l)=>{c[`Column ${l+1}`]=i})):c[`Row ${a+1}`]=o,c})}return t.map((e,r)=>({Index:r+1,Value:e}))}return b(t)?Array.isArray(t.data)?m(t.data):Array.isArray(t.values)?m(t.values):Array.isArray(t.rows)?m(t.rows):[T(t)]:[{Value:t}]},tt=t=>{let e=["Series","Trace","Group","Category","Index","X","Y","Z","Value","Text"],r=[];return e.forEach(n=>{t.includes(n)&&r.push(n)}),t.filter(n=>!e.includes(n)).sort().forEach(n=>r.push(n)),r},et=t=>{let e=t.getAttribute("data-viz-title");if(e)return e;let r=t.querySelector(".viz-title");return r&&r.textContent?r.textContent.trim():t.getAttribute("data-viz-slug")||"Visualization data"},rt=()=>{let t=document.getElementById(L);if(t)return t;t=document.createElement("template"),t.id=L;let e=document.createElement("div");return e.insertAdjacentHTML("afterbegin",'<div class="viz-table-container" data-viz-table-container><button type="button" class="viz-table-toggle" data-viz-table-toggle aria-expanded="false">Show data table</button><div class="viz-table-wrapper" data-viz-table-wrapper hidden><table class="viz-table" data-viz-table><caption data-viz-table-caption></caption><thead data-viz-table-head></thead><tbody data-viz-table-body></tbody></table></div></div>'),t.content.appendChild(e.firstElementChild),document.body.appendChild(t),t},E=(t,e={})=>{let{caption:r,rows:n}=e,s=m(n);if(!s.length)return;let o=Array.from(s.reduce((p,f)=>(Object.keys(f).forEach(O=>p.add(O)),p),new Set));if(!o.length)return;let a=tt(o),i=rt().content.firstElementChild.cloneNode(!0),l=i.querySelector("[data-viz-table-toggle]"),u=i.querySelector("[data-viz-table-wrapper]"),H=i.querySelector("[data-viz-table]"),w=i.querySelector("[data-viz-table-caption]"),h=i.querySelector("[data-viz-table-head]"),S=i.querySelector("[data-viz-table-body]"),A=`${t.getAttribute("data-viz-slug")||t.id||"viz"}-table`;H.id=A,l.setAttribute("aria-controls",A),w.textContent=r||et(t);let x=document.createElement("tr");a.forEach(p=>{let f=document.createElement("th");f.scope="col",f.textContent=p,x.appendChild(f)}),h.appendChild(x),s.forEach(p=>{let f=document.createElement("tr");a.forEach((O,yt)=>{let X=y(p[O]);if(yt===0){let v=document.createElement("th");v.scope="row",v.textContent=X,f.appendChild(v)}else{let v=document.createElement("td");v.textContent=X,f.appendChild(v)}}),S.appendChild(f)}),l.addEventListener("click",()=>{let p=l.getAttribute("aria-expanded")==="true";l.setAttribute("aria-expanded",String(!p)),l.textContent=p?"Show data table":"Hide data table",p?u.setAttribute("hidden",""):u.removeAttribute("hidden")});let Y=t.querySelector("[data-viz-table-container]");Y&&Y.remove(),t.appendChild(i),(t.querySelector("[data-viz-canvas]")||t).setAttribute("aria-describedby",A)},M=(t=[])=>{let e=[];return t.forEach((r,n)=>{let s=r.name||`Series ${n+1}`,o=Array.isArray(r.x)?r.x:[],a=Array.isArray(r.y)?r.y:[],c=Array.isArray(r.text)?r.text:[],i=r.z;if(Array.isArray(i)&&i.length&&Array.isArray(i[0])){let u=o.length?o:i[0].map((w,h)=>h+1);(a.length?a:i.map((w,h)=>h+1)).forEach((w,h)=>{let S=i[h]||[];u.forEach((A,x)=>{e.push({Series:s,Y:w,X:A,Value:Array.isArray(S)?S[x]:S,Text:c[h]?y(c[h]):""})})});return}let l=Math.max(o.length,a.length,c.length);for(let u=0;u<l;u+=1)e.push({Series:s,X:o[u],Y:a[u],Text:c[u]})}),e.length?e:null},N=t=>t?Array.isArray(t)?t:b(t)&&Array.isArray(t.data)?t.data:t:null,V=t=>{let e=t.querySelector("script[data-observable-data]");if(!e)return null;try{return JSON.parse(e.textContent||"null")}catch(r){return null}},g=null,j=new Set,C=(t,e)=>{if(typeof window[e]!="undefined")return Promise.resolve(window[e]);let r=()=>z(t).then(()=>window[e]);if(g)return g.then(o=>new Promise((a,c)=>{o([t],i=>a(i||window[e]),c)}),r);let n=r();j.add(n);let s=()=>j.delete(n);return n.then(s,s),n},D=()=>C("https://cdn.jsdelivr.net/npm/plotly.js-dist-min@2.27.0/plotly.min.js","Plotly"),nt=()=>C("https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js","d3"),ot=()=>C("https://cdn.jsdelivr.net/npm/@bokeh/bokehjs@3.3.3/build/js/bokeh.min.js","Bokeh").then(t=>t&&t.Plotting?t:z("https://cdn.jsdelivr.net/npm/@bokeh/bokehjs@3.3.3/build/js/bokeh-api.min.js").then(()=>window.Bokeh)),R=()=>(g||(g=Promise.allSettled([...j]).then(()=>typeof window.requirejs!="undefined"?window.requirejs:z("https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js",{async:!1}).then(()=>window.requirejs))),g),st=()=>R().then(t=>{let e=window.__datalogWidgetManagerPromise;if(e)return e;let r=new Promise((n,s)=>{t.config({paths:{"@jupyter-widgets/html-manager":"https://cdn.jsdelivr.net/npm/@jupyter-widgets/html-manager@1.0.8/dist/embed-amd","@jupyter-widgets/base":"https://cdn.jsdelivr.net/npm/@jupyter-widgets/base@6.0.7/dist/index","@jupyter-widgets/controls":"https://cdn.jsdelivr.net/npm/@jupyter-widgets/controls@5.0.7/dist/index","@lumino/coreutils":"https://cdn.jsdelivr.net/npm/@lumino/coreutils@2.1.1/dist/index","@lumino/widgets":"https://cdn.jsdelivr.net/npm/@lumino/widgets@2.3.1/dist/index"}}),t(["@jupyter-widgets/html-manager"],o=>n(o),o=>s(o))});return window.__datalogWidgetManagerPromise=r,r}),at=(t,e)=>{let r=document.createElement("button");return r.type="button",r.className="viz-toolbar__button",r.textContent=t,r.addEventListener("click",n=>{n.preventDefault(),e(n)}),r},d=(t,e,r="info")=>{let n=t.querySelector("[data-viz-status]");n&&(n.textContent=e,n.dataset.tone=r),(e==="Interactive"||e==="Embedded")&&queueMicrotask(()=>document.dispatchEvent(new CustomEvent("datalog:viz-rendered",{detail:{element:t}})))},$=t=>{let e=t.getAttribute("data-viz-version"),r=t.getAttribute("data-viz-updated"),n=t.querySelector("[data-viz-meta]");if(!n)return;let s=[];e&&s.push(`v${e}`),r&&s.push(`Updated ${r}`),n.textContent=s.join(" \xB7 ")},it=t=>{let e=t.querySelector("[data-viz-canvas]")||t,r=t.querySelector(_);if(!r)return d(t,"Missing Plotly specification","error"),Promise.resolve();let n={};try{n=JSON.parse(r.textContent||"{}")}catch(a){return d(t,"Invalid Plotly specification","error"),Promise.resolve()}let s=Array.isArray(n.data)?n.data:[],o=Object.assign({autosize:!0},n.layout||{});return D().then(a=>a.newPlot(e,s,o,{responsive:!0,displaylogo:!1})).then(()=>{d(t,"Interactive");let a=t.querySelector("[data-viz-export]");a&&(a.replaceChildren(),a.appendChild(at("Download PNG",()=>{D().then(i=>{i.downloadImage(e,{format:"png",filename:t.getAttribute("data-viz-slug")||"visualization"})})})));let c=M(s);c&&E(t,{caption:o&&o.title?y(o.title.text||o.title):void 0,rows:c})}).catch(()=>{d(t,"Plotly failed to load","error")})},B=(t,e,r,n)=>{let s={args:n,done:!1,error:null,result:void 0},o=document.createElement("script"),a=t.nonce||t.getAttribute("nonce");a&&(o.nonce=a),o.datalogRun=s,o.textContent=`(function (run) {
2
2
  try {
3
3
  run.result = (function (${e.join(", ")}) {
4
4
  ${r}
@@ -8,4 +8,4 @@ run.done = true;
8
8
  run.error = error;
9
9
  }
10
10
  })(document.currentScript.datalogRun);`;try{document.head.appendChild(o)}finally{o.remove()}if(s.error)throw s.error;if(!s.done)throw new Error("The Content Security Policy did not allow the visualization script to run");return s.result},ct=t=>{let e=t.querySelector("[data-d3-script]");return e?nt().then(r=>{let n=e.textContent||"",s=t.querySelector("[data-viz-canvas]")||t;s.replaceChildren();let o=[],a=c=>{typeof c!="undefined"&&o.push(c)};try{let c=`${n}
11
- ;try { if (typeof data !== 'undefined') captureData(data); } catch (instrumentationError) {}`,i=B(e,["d3","element","captureData"],c,[r,s,a]);typeof i!="undefined"&&a(i);let l=o.length?o[o.length-1]:null,u=M(l);u&&E(t,{rows:u}),d(t,"Interactive")}catch(c){s.replaceChildren(),d(t,"D3 rendering error","error")}}).catch(()=>d(t,"D3 assets failed to load","error")):(d(t,"Missing D3 rendering instructions","error"),Promise.resolve())},dt=t=>{try{let e=new URL(t,"https://observablehq.com");if(e.origin!=="https://observablehq.com")return null;let r=Array.from(e.searchParams,([n,s])=>`${encodeURIComponent(n)}=${encodeURIComponent(s)}`).join("&");return"https://observablehq.com"+e.pathname+(r?"?"+r:"")}catch(e){return null}},lt=t=>{let e=t.getAttribute("data-observable-src")||t.getAttribute("data-viz-src");if(!e)return d(t,"Missing Observable notebook source","error"),Promise.resolve();let r=dt(e);if(!r)return d(t,"Observable embeds must come from observablehq.com","error"),Promise.resolve();let n=document.createElement("iframe");n.src=r,n.loading="lazy",n.title=t.getAttribute("data-viz-title")||"Observable visualization",n.setAttribute("allowfullscreen",""),n.setAttribute("sandbox","allow-scripts allow-same-origin allow-popups allow-forms"),n.className="viz-embed",(t.querySelector("[data-viz-canvas]")||t).replaceChildren(n),d(t,"Embedded");let o=V(t);return o&&E(t,{rows:o}),Promise.resolve()},ut=t=>{let e=t.querySelector(I),r=t.querySelector("[data-bokeh-script]"),n=t.querySelector("[data-viz-canvas]")||t;return!e&&!r?(d(t,"Missing Bokeh specification","error"),Promise.resolve()):ot().then(s=>{if(e){let o={};try{o=JSON.parse(e.textContent||"{}")}catch(c){d(t,"Invalid Bokeh specification","error");return}let a=n.id||`bokeh-${Math.random().toString(36).slice(2)}`;n.id=a;try{s.embed.embed_item(o,a),d(t,"Interactive")}catch(c){d(t,"Bokeh rendering error","error")}return}if(r){let o=r.textContent||"";n.replaceChildren();try{B(r,["Bokeh","element"],o,[s,n]),d(t,"Interactive")}catch(a){d(t,"Bokeh rendering error","error")}}}).catch(s=>{d(t,"Bokeh assets failed to load","error")})},pt=t=>{let e=t.getAttribute("data-shiny-src");if(!e)return d(t,"Missing Shiny application source","error"),Promise.resolve();let r=document.createElement("iframe");r.src=e,r.loading="lazy",r.title=t.getAttribute("data-viz-title")||"R Shiny application",r.className="viz-embed",r.setAttribute("allow","fullscreen"),r.setAttribute("sandbox","allow-scripts allow-forms allow-same-origin");let n=t.getAttribute("data-shiny-height");return r.style.height=n||"640px",(t.querySelector("[data-viz-canvas]")||t).replaceChildren(r),d(t,"Embedded"),Promise.resolve()},ht=t=>{let e=t.querySelector(F),r=t.querySelector(K);if(!e||!r)return d(t,"Missing widget state payload","error"),Promise.resolve();let n,s;try{n=JSON.parse(e.textContent||"{}"),s=JSON.parse(r.textContent||"{}")}catch(a){return d(t,"Invalid widget payload","error"),Promise.resolve()}let o=t.querySelector("[data-viz-canvas]")||t;return o.replaceChildren(),st().then(a=>{let c=new a.HTMLManager({loader:a.requireLoader});return c.set_state(n).then(()=>c.get_model(s.model_id)).then(i=>c.create_view(i)).then(i=>c.display_view(i,o)).then(()=>d(t,"Interactive")).catch(i=>{d(t,"Widget rendering error","error")})}).catch(a=>{d(t,"Widget assets failed to load","error")})},P=t=>{let e=t.getAttribute("data-viz-type");switch($(t),e){case"plotly":return it(t);case"observable":return lt(t);case"d3":return ct(t);case"bokeh":return ut(t);case"shiny":return pt(t);case"ipywidgets":return ht(t);default:return d(t,"Unsupported visualization type","error"),Promise.resolve()}},W=()=>{if(!("IntersectionObserver"in window)){document.querySelectorAll(_).forEach(e=>{P(e)});return}let t=new IntersectionObserver((e,r)=>{e.filter(n=>n.isIntersecting).forEach(n=>{let s=n.target;r.unobserve(s),P(s)})},{rootMargin:"200px 0px"});document.querySelectorAll(_).forEach(e=>{t.observe(e)})},U=t=>{document.querySelectorAll("[data-viz-card]").forEach(r=>{let n=!t.tech||r.dataset.vizTech===t.tech,s=(r.dataset.vizTags||"").split(",").map(a=>a.trim()).filter(Boolean),o=!t.tag||s.includes(t.tag);r.hidden=!(n&&o)})},G=()=>{let t=document.querySelector("[data-viz-gallery]");if(!t)return;let e=t.querySelector('[data-viz-filter="tech"]'),r=t.querySelector('[data-viz-filter="tag"]'),n=()=>{U({tech:e&&e.value!=="all"?e.value:"",tag:r&&r.value!=="all"?r.value:""})};e&&e.addEventListener("change",n),r&&r.addEventListener("change",n),n()},J=()=>{W(),G()},ft={loadScript:z,loadStyle:Q,loadUmd:C,ensureRequire:R,resetRequireLoading:()=>{g=null,j.clear()},normalizeRecords:m,stringifyValue:y,buildDataTable:E,annotateVersionMetadata:$,buildPlotlyRecords:N,buildD3Records:M,buildObservableRecords:V,filterGallery:U,renderVisualization:P,initializeVisualizations:W,initializeGallery:G};typeof globalThis!="undefined"&&(globalThis.__DATALOG_VIZ_INTERNALS__=ft),Z||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",J):J())})();
11
+ ;try { if (typeof data !== 'undefined') captureData(data); } catch (instrumentationError) {}`,i=B(e,["d3","element","captureData"],c,[r,s,a]);typeof i!="undefined"&&a(i);let l=o.length?o[o.length-1]:null,u=N(l);u&&E(t,{rows:u}),d(t,"Interactive")}catch(c){s.replaceChildren(),d(t,"D3 rendering error","error")}}).catch(()=>d(t,"D3 assets failed to load","error")):(d(t,"Missing D3 rendering instructions","error"),Promise.resolve())},dt=t=>{try{let e=new URL(t,"https://observablehq.com");if(e.origin!=="https://observablehq.com")return null;let r=Array.from(e.searchParams,([n,s])=>`${encodeURIComponent(n)}=${encodeURIComponent(s)}`).join("&");return"https://observablehq.com"+e.pathname+(r?"?"+r:"")}catch(e){return null}},lt=t=>{let e=t.getAttribute("data-observable-src")||t.getAttribute("data-viz-src");if(!e)return d(t,"Missing Observable notebook source","error"),Promise.resolve();let r=dt(e);if(!r)return d(t,"Observable embeds must come from observablehq.com","error"),Promise.resolve();let n=document.createElement("iframe");n.src=r,n.loading="lazy",n.title=t.getAttribute("data-viz-title")||"Observable visualization",n.setAttribute("allowfullscreen",""),n.setAttribute("sandbox","allow-scripts allow-same-origin allow-popups allow-forms"),n.className="viz-embed",(t.querySelector("[data-viz-canvas]")||t).replaceChildren(n),d(t,"Embedded");let o=V(t);return o&&E(t,{rows:o}),Promise.resolve()},ut=t=>{let e=t.querySelector(_),r=t.querySelector("[data-bokeh-script]"),n=t.querySelector("[data-viz-canvas]")||t;return!e&&!r?(d(t,"Missing Bokeh specification","error"),Promise.resolve()):ot().then(s=>{if(e){let o={};try{o=JSON.parse(e.textContent||"{}")}catch(c){d(t,"Invalid Bokeh specification","error");return}let a=n.id||`bokeh-${Math.random().toString(36).slice(2)}`;n.id=a;try{s.embed.embed_item(o,a),d(t,"Interactive")}catch(c){d(t,"Bokeh rendering error","error")}return}if(r){let o=r.textContent||"";n.replaceChildren();try{B(r,["Bokeh","element"],o,[s,n]),d(t,"Interactive")}catch(a){d(t,"Bokeh rendering error","error")}}}).catch(s=>{d(t,"Bokeh assets failed to load","error")})},pt=t=>{let e=t.getAttribute("data-shiny-src");if(!e)return d(t,"Missing Shiny application source","error"),Promise.resolve();let r=document.createElement("iframe");r.src=e,r.loading="lazy",r.title=t.getAttribute("data-viz-title")||"R Shiny application",r.className="viz-embed",r.setAttribute("allow","fullscreen"),r.setAttribute("sandbox","allow-scripts allow-forms allow-same-origin");let n=t.getAttribute("data-shiny-height");return r.style.height=n||"640px",(t.querySelector("[data-viz-canvas]")||t).replaceChildren(r),d(t,"Embedded"),Promise.resolve()},ht=t=>{let e=t.querySelector(F),r=t.querySelector(K);if(!e||!r)return d(t,"Missing widget state payload","error"),Promise.resolve();let n,s;try{n=JSON.parse(e.textContent||"{}"),s=JSON.parse(r.textContent||"{}")}catch(a){return d(t,"Invalid widget payload","error"),Promise.resolve()}let o=t.querySelector("[data-viz-canvas]")||t;return o.replaceChildren(),st().then(a=>{let c=new a.HTMLManager({loader:a.requireLoader});return c.set_state(n).then(()=>c.get_model(s.model_id)).then(i=>c.create_view(i)).then(i=>c.display_view(i,o)).then(()=>d(t,"Interactive")).catch(i=>{d(t,"Widget rendering error","error")})}).catch(a=>{d(t,"Widget assets failed to load","error")})},P=t=>{let e=t.getAttribute("data-viz-type");switch($(t),e){case"plotly":return it(t);case"observable":return lt(t);case"d3":return ct(t);case"bokeh":return ut(t);case"shiny":return pt(t);case"ipywidgets":return ht(t);default:return d(t,"Unsupported visualization type","error"),Promise.resolve()}},W=()=>{if(!("IntersectionObserver"in window)){document.querySelectorAll(I).forEach(e=>{P(e)});return}let t=new IntersectionObserver((e,r)=>{e.filter(n=>n.isIntersecting).forEach(n=>{let s=n.target;r.unobserve(s),P(s)})},{rootMargin:"200px 0px"});document.querySelectorAll(I).forEach(e=>{t.observe(e)})},U=t=>{document.querySelectorAll("[data-viz-card]").forEach(r=>{let n=!t.tech||r.dataset.vizTech===t.tech,s=(r.dataset.vizTags||"").split(",").map(a=>a.trim()).filter(Boolean),o=!t.tag||s.includes(t.tag);r.hidden=!(n&&o)})},G=()=>{let t=document.querySelector("[data-viz-gallery]");if(!t)return;let e=t.querySelector('[data-viz-filter="tech"]'),r=t.querySelector('[data-viz-filter="tag"]'),n=()=>{U({tech:e&&e.value!=="all"?e.value:"",tag:r&&r.value!=="all"?r.value:""})};e&&e.addEventListener("change",n),r&&r.addEventListener("change",n),n()},J=()=>{W(),G()},ft={loadScript:z,loadStyle:Q,loadUmd:C,ensureRequire:R,resetRequireLoading:()=>{g=null,j.clear()},normalizeRecords:m,stringifyValue:y,buildDataTable:E,annotateVersionMetadata:$,buildPlotlyRecords:M,buildD3Records:N,buildObservableRecords:V,filterGallery:U,renderVisualization:P,initializeVisualizations:W,initializeGallery:G};typeof globalThis!="undefined"&&(globalThis.__DATALOG_VIZ_INTERNALS__=ft),Z||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",J):J())})();
@@ -1 +1 @@
1
- import{a as N,c as A}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var S="webmentions",_=["mention","reply"],O=["mention","reply","repost","like"],D=200,F=280,T=/^https?:\/\//i,M=new Set(["disabled","unsupported","version"]);function U(e,t){let r=e.querySelector(t);if(!r)return{};try{return JSON.parse(r.textContent)||{}}catch(s){return{}}}function x(e,t){if(typeof e!="string")return"";let r=e.replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t-1).trimEnd()}\u2026`:r}function j(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch(t){return""}}function k(e,t=_){if(!e||typeof e!="object"||Array.isArray(e))return null;let r=typeof e.source=="string"?e.source.trim():"",s=typeof e.type=="string"?e.type.trim().toLowerCase():"mention";if(e.verified!==!0||!T.test(r)||!t.includes(s))return null;let a=e.author&&typeof e.author=="object"?e.author:{},f=typeof a.url=="string"&&T.test(a.url.trim())?a.url.trim():"",i=typeof e.published_at=="string"&&!Number.isNaN(Date.parse(e.published_at))?e.published_at:"";return{id:e.id===null||e.id===void 0?"":String(e.id),source:r,host:j(r),type:s,title:x(e.title,D),excerpt:x(e.excerpt,F),author:{name:x(a.name,120),url:f},published_at:i}}function R(e,t=_){return(e&&typeof e=="object"&&Array.isArray(e.mentions)?e.mentions:[]).map(s=>k(s,t)).filter(Boolean).sort((s,a)=>a.published_at.localeCompare(s.published_at))}function q(e,t){let r=new Date(e);if(Number.isNaN(r.getTime()))return"";try{return r.toLocaleDateString(t||void 0,{dateStyle:"medium"})}catch(s){return r.toISOString().slice(0,10)}}function W(e,t,r={}){let{labels:s={},lang:a}=r,f=s.types||{},i=e.createElement("li");i.className=`webmention webmention--${t.type}`,t.id&&(i.dataset.mentionId=t.id);let c=e.createElement("span");c.className="webmention__type",c.textContent=f[t.type]||t.type,i.appendChild(c);let d=e.createElement("a");d.className="webmention__title",d.href=t.source,d.rel="nofollow noopener ugc",d.textContent=t.title||t.host||t.source,i.appendChild(d);let u=e.createElement("span");if(u.className="webmention__meta",t.author.name){let n;t.author.url?(n=e.createElement("a"),n.href=t.author.url,n.rel="nofollow noopener ugc"):n=e.createElement("span"),n.className="webmention__author",n.textContent=t.author.name,u.appendChild(n)}if(t.host&&t.title){let n=e.createElement("span");n.className="webmention__host",n.textContent=t.host,u.appendChild(n)}if(t.published_at){let n=e.createElement("time");n.className="webmention__time",n.dateTime=t.published_at,n.textContent=q(t.published_at,a),u.appendChild(n)}if(u.childNodes.length>0&&i.appendChild(u),t.excerpt){let n=e.createElement("p");n.className="webmention__excerpt",n.textContent=t.excerpt,i.appendChild(n)}return i}function $(e,t={}){let r=e.ownerDocument,s=t.window||r.defaultView,a=t.client||A(),f=e.dataset.webmentionsTarget||"",i=(e.dataset.webmentionsTypes||_.join(",")).split(",").map(o=>o.trim().toLowerCase()).filter(o=>O.includes(o)),c=U(e,"[data-webmentions-labels]"),d=c.errors||{},u=r.documentElement.lang||void 0,n=e.querySelector("[data-webmentions-status]"),w=e.querySelector("[data-webmentions-list]"),h=null,g=!1,C=!1,b=(o,l="",p={})=>{if(e.dataset.state=o,!!n&&(n.textContent=l,n.hidden=l==="",n.setAttribute("role",p.alert?"alert":"status"),p.retry)){let m=r.createElement("button");m.type="button",m.className="post-tool",m.setAttribute("data-webmentions-retry",""),m.textContent=c.retry||"Try again",m.addEventListener("click",()=>y.load()),n.appendChild(r.createTextNode(" ")),n.appendChild(m)}},I=()=>(h||(h=a.feature(S).catch(o=>{throw h=null,o})),h),y={root:e,types:i,async load(){if(g)return null;g=!0,b("loading",c.loading||"");try{await I();let o=await a.get(`${a.pathFor(S)}?target=${encodeURIComponent(f)}`),l=R(o&&o.data,i);return w.textContent="",l.forEach(p=>w.appendChild(W(r,p,{labels:c,lang:u}))),w.hidden=l.length===0,b(l.length>0?"loaded":"empty",l.length>0?"":c.empty||""),C=!0,l}catch(o){return o&&M.has(o.kind)?(b("disabled"),e.hidden=!0):b("error",N(o,d),{alert:!0,retry:!0}),null}finally{g=!1}}},E=()=>{C||y.load()};if(t.immediate||!s||typeof s.IntersectionObserver!="function")E();else{let o=new s.IntersectionObserver(l=>{l.some(p=>p.isIntersecting)&&(o.disconnect(),E())},{rootMargin:"400px 0px"});o.observe(e)}return y}function L(e=document){return Array.from(e.querySelectorAll("[data-webmentions]")).map(t=>$(t))}function v(){L(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",v,{once:!0}):v();
1
+ import{a as N,c as A}from"./chunks/chunk-VZ5WKQVA.js";import"./chunks/chunk-PATLC23F.js";var S="webmentions",_=["mention","reply"],I=["mention","reply","repost","like"],O=200,F=280,T=/^https?:\/\//i,M=new Set(["disabled","unsupported","version"]);function U(e,t){let r=e.querySelector(t);if(!r)return{};try{return JSON.parse(r.textContent)||{}}catch(s){return{}}}function x(e,t){if(typeof e!="string")return"";let r=e.replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t-1).trimEnd()}\u2026`:r}function j(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch(t){return""}}function k(e,t=_){if(!e||typeof e!="object"||Array.isArray(e))return null;let r=typeof e.source=="string"?e.source.trim():"",s=typeof e.type=="string"?e.type.trim().toLowerCase():"mention";if(e.verified!==!0||!T.test(r)||!t.includes(s))return null;let a=e.author&&typeof e.author=="object"?e.author:{},f=typeof a.url=="string"&&T.test(a.url.trim())?a.url.trim():"",i=typeof e.published_at=="string"&&!Number.isNaN(Date.parse(e.published_at))?e.published_at:"";return{id:e.id===null||e.id===void 0?"":String(e.id),source:r,host:j(r),type:s,title:x(e.title,O),excerpt:x(e.excerpt,F),author:{name:x(a.name,120),url:f},published_at:i}}function R(e,t=_){return(e&&typeof e=="object"&&Array.isArray(e.mentions)?e.mentions:[]).map(s=>k(s,t)).filter(Boolean).sort((s,a)=>(Date.parse(a.published_at)||0)-(Date.parse(s.published_at)||0))}function q(e,t){let r=new Date(e);if(Number.isNaN(r.getTime()))return"";try{return r.toLocaleDateString(t||void 0,{dateStyle:"medium"})}catch(s){return r.toISOString().slice(0,10)}}function W(e,t,r={}){let{labels:s={},lang:a}=r,f=s.types||{},i=e.createElement("li");i.className=`webmention webmention--${t.type}`,t.id&&(i.dataset.mentionId=t.id);let c=e.createElement("span");c.className="webmention__type",c.textContent=f[t.type]||t.type,i.appendChild(c);let d=e.createElement("a");d.className="webmention__title",d.href=t.source,d.rel="nofollow noopener ugc",d.textContent=t.title||t.host||t.source,i.appendChild(d);let u=e.createElement("span");if(u.className="webmention__meta",t.author.name){let n;t.author.url?(n=e.createElement("a"),n.href=t.author.url,n.rel="nofollow noopener ugc"):n=e.createElement("span"),n.className="webmention__author",n.textContent=t.author.name,u.appendChild(n)}if(t.host&&t.title){let n=e.createElement("span");n.className="webmention__host",n.textContent=t.host,u.appendChild(n)}if(t.published_at){let n=e.createElement("time");n.className="webmention__time",n.dateTime=t.published_at,n.textContent=q(t.published_at,a),u.appendChild(n)}if(u.childNodes.length>0&&i.appendChild(u),t.excerpt){let n=e.createElement("p");n.className="webmention__excerpt",n.textContent=t.excerpt,i.appendChild(n)}return i}function $(e,t={}){let r=e.ownerDocument,s=t.window||r.defaultView,a=t.client||A(),f=e.dataset.webmentionsTarget||"",i=(e.dataset.webmentionsTypes||_.join(",")).split(",").map(o=>o.trim().toLowerCase()).filter(o=>I.includes(o)),c=U(e,"[data-webmentions-labels]"),d=c.errors||{},u=r.documentElement.lang||void 0,n=e.querySelector("[data-webmentions-status]"),w=e.querySelector("[data-webmentions-list]"),h=null,g=!1,C=!1,b=(o,l="",p={})=>{if(e.dataset.state=o,!!n&&(n.textContent=l,n.hidden=l==="",n.setAttribute("role",p.alert?"alert":"status"),p.retry)){let m=r.createElement("button");m.type="button",m.className="post-tool",m.setAttribute("data-webmentions-retry",""),m.textContent=c.retry||"Try again",m.addEventListener("click",()=>y.load()),n.appendChild(r.createTextNode(" ")),n.appendChild(m)}},D=()=>(h||(h=a.feature(S).catch(o=>{throw h=null,o})),h),y={root:e,types:i,async load(){if(g)return null;g=!0,b("loading",c.loading||"");try{await D();let o=await a.get(`${a.pathFor(S)}?target=${encodeURIComponent(f)}`),l=R(o&&o.data,i);return w.textContent="",l.forEach(p=>w.appendChild(W(r,p,{labels:c,lang:u}))),w.hidden=l.length===0,b(l.length>0?"loaded":"empty",l.length>0?"":c.empty||""),C=!0,l}catch(o){return o&&M.has(o.kind)?(b("disabled"),e.hidden=!0):b("error",N(o,d),{alert:!0,retry:!0}),null}finally{g=!1}}},E=()=>{C||y.load()};if(t.immediate||!s||typeof s.IntersectionObserver!="function")E();else{let o=new s.IntersectionObserver(l=>{l.some(p=>p.isIntersecting)&&(o.disconnect(),E())},{rootMargin:"400px 0px"});o.observe(e)}return y}function L(e=document){return Array.from(e.querySelectorAll("[data-webmentions]")).map(t=>$(t))}function v(){L(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",v,{once:!0}):v();
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Datalog
4
4
  module Theme
5
- VERSION = "0.9.0" unless const_defined?(:VERSION)
5
+ VERSION = "0.9.2" unless const_defined?(:VERSION)
6
6
  # The Ruby the gem installs on, for the gemspec and `datalog check`. The
7
7
  # release workflow rewrites every quoted version assigned to a name ending
8
8
  # in VERSION in this file, so this name must not end that way.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datalog-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diogo Ribeiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-18 00:00:00.000000000 Z
11
+ date: 2026-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -324,6 +324,7 @@ files:
324
324
  - _includes/components/reading-mode-toggle.html
325
325
  - _includes/components/reading-state-bookmark.html
326
326
  - _includes/components/reading-state-panel.html
327
+ - _includes/components/reading-state-resume.html
327
328
  - _includes/components/reproducibility.html
328
329
  - _includes/components/responsive-image.html
329
330
  - _includes/components/revision-history.html
@@ -376,6 +377,7 @@ files:
376
377
  - _layouts/research.html
377
378
  - _plugins/analytics_dashboard.rb
378
379
  - _plugins/authors.rb
380
+ - _plugins/citation_exports.rb
379
381
  - _plugins/config_validator.rb
380
382
  - _plugins/critical_css_check.rb
381
383
  - _plugins/csp_generator.rb
@@ -393,6 +395,7 @@ files:
393
395
  - _plugins/reading_time.rb
394
396
  - _plugins/references.rb
395
397
  - _plugins/reproducibility.rb
398
+ - _plugins/responsive_content.rb
396
399
  - _plugins/revisions.rb
397
400
  - _plugins/rouge_highlight_filter.rb
398
401
  - _plugins/scholarly.rb
@@ -448,9 +451,9 @@ files:
448
451
  - assets/img/social-card.png
449
452
  - assets/js/dist/academic.js
450
453
  - assets/js/dist/analytics-dashboard.js
451
- - assets/js/dist/chunks/chunk-2DYDWUFX.js
452
454
  - assets/js/dist/chunks/chunk-PATLC23F.js
453
- - assets/js/dist/chunks/chunk-V7734B2G.js
455
+ - assets/js/dist/chunks/chunk-VZ5WKQVA.js
456
+ - assets/js/dist/chunks/chunk-WIRUK3OZ.js
454
457
  - assets/js/dist/comments.js
455
458
  - assets/js/dist/contact.js
456
459
  - assets/js/dist/core.js
@@ -1 +0,0 @@
1
- import{a as x,b as $}from"./chunk-PATLC23F.js";var O="/capabilities",M="/health",U={401:"unauthorized",403:"forbidden",404:"not_found",409:"conflict",422:"invalid",429:"rate_limited"},j=new Set(["timeout","network","rate_limited","server"]),q=new Set(["GET","HEAD","OPTIONS"]),N={disabled:"This feature is not set up on this site.",unsupported:"The service behind this site does not offer this feature.",version:"This site and its service expect different API versions.",timeout:"The service took too long to answer. Try again in a moment.",network:"The service could not be reached. Check your connection and try again.",malformed:"The service answered in a way this site could not read.",unauthorized:"You need to sign in for this.",forbidden:"You are not allowed to do this.",not_found:"The service has nothing at that address.",conflict:"This was already done, or something changed in the meantime.",invalid:"Some of what you entered needs a correction.",rate_limited:"Too many requests for now. Please wait a little and try again.",server:"The service ran into a problem. Try again later.",http:"The service refused the request.",aborted:"The request was cancelled.",reference:"Reference: {{id}}"},c=class extends Error{constructor(r,i,n={}){var h,a,f,T,b,v,A,m;super(i),this.name="ServiceError",this.kind=r,this.status=(h=n.status)!=null?h:null,this.code=(a=n.code)!=null?a:null,this.requestId=(f=n.requestId)!=null?f:null,this.retryAfter=(T=n.retryAfter)!=null?T:null,this.errors=(b=n.errors)!=null?b:null,this.expected=(v=n.expected)!=null?v:null,this.actual=(A=n.actual)!=null?A:null,this.retryable=(m=n.retryable)!=null?m:j.has(r)}};function H(e=globalThis){let r=e.DatalogDynamicServices;return r&&typeof r=="object"?r:{}}function Y(e){let r=String(e!=null?e:"1").trim()||"1";return/^v/i.test(r)?`v${r.slice(1)}`:`v${r}`}function G(e,r=Date.now()){if(!e)return null;let i=Number(e);if(Number.isFinite(i))return Math.max(0,i);let n=Date.parse(e);return Number.isNaN(n)?null:Math.max(0,Math.round((n-r)/1e3))}function K(e,r){if(!e||typeof e.cookie!="string")return null;let i=e.cookie.split(";").map(n=>n.trim()).find(n=>n.startsWith(`${r}=`));return i?decodeURIComponent(i.slice(r.length+1)):null}function B(e,r,i){let n=e.status,h=U[n]||(n>=500?"server":"http"),a=r&&typeof r=="object"?r.error||r:{},f=a&&(a.message||a.title)||`The service answered ${n}`;return new c(h,f,{status:n,code:a&&a.code||null,requestId:i,retryAfter:G(e.headers.get("Retry-After")),errors:a&&a.errors||null})}function X(e,r={}){let i=e&&e.kind?e.kind:"http",n=r[i]||N[i]||r.http||N.http;if(e&&e.requestId){let h=r.reference||N.reference;return`${n} ${h.split("{{id}}").join(e.requestId)}`}return n}function J(e=H(),r={}){let i=r.fetch||((...t)=>globalThis.fetch(...t)),n=r.delay||(t=>new Promise(s=>setTimeout(s,t))),h=r.document===void 0?globalThis.document:r.document,a=String(e.base_url||"").replace(/\/+$/,""),f=Y(e.api_version),T=Number(e.timeout_ms)>0?Number(e.timeout_ms):8e3,b=["omit","same-origin","include"].includes(e.credentials)?e.credentials:"omit",v=e.features&&typeof e.features=="object"?e.features:{},A=e.paths&&typeof e.paths=="object"?e.paths:{},m=a!=="",E=null;function R(t){return/^https?:\/\//i.test(t)?t:`${a}/${f}${t.startsWith("/")?t:`/${t}`}`}function L(t){let s=A[t];return typeof s=="string"&&s!==""?s:`/${t}`}async function P(t,s,o){let u=new AbortController,_=setTimeout(()=>u.abort(),T),w=!1;o.signal&&o.signal.addEventListener("abort",()=>{w=!0,u.abort()});let p=x({Accept:"application/json"},o.headers||{}),d={method:t,headers:p,credentials:b,signal:u.signal};if(o.body!==void 0&&(p["Content-Type"]="application/json",d.body=JSON.stringify(o.body)),o.idempotencyKey&&(p["Idempotency-Key"]=o.idempotencyKey),!q.has(t)&&e.csrf_header&&e.csrf_cookie){let g=K(h,e.csrf_cookie);g&&(p[e.csrf_header]=g)}let l,k;try{l=await i(R(s),d),k=await l.text()}catch(g){throw w?new c("aborted","The request was cancelled",{retryable:!1}):u.signal.aborted?new c("timeout",`No answer within ${T} ms`):new c("network","The service could not be reached")}finally{clearTimeout(_)}let I=l.headers.get("X-Request-Id")||null,S=null;if(k)try{S=JSON.parse(k)}catch(g){if(l.ok)throw new c("malformed","The service did not answer with JSON",{status:l.status,requestId:I,retryable:!1})}if(!l.ok)throw B(l,S,I);return{data:S,status:l.status,requestId:I,headers:l.headers}}async function y(t,s,o={}){var p;if(!m)throw new c("disabled","Dynamic services are not configured for this site",{retryable:!1});let u=String(t).toUpperCase(),_=(p=o.retries)!=null?p:q.has(u)?2:0,w=0;for(;;)try{return await P(u,s,o)}catch(d){let l=d.retryAfter!==null&&d.retryAfter>10;if(!(d instanceof c)||!d.retryable||w>=_||l)throw d;w+=1,await n(d.retryAfter!==null?d.retryAfter*1e3:300*w)}}function C(){return E||(E=y("GET",O).then(({data:t})=>{var u;let s=String((u=t&&t.api_version)!=null?u:"").replace(/^v/i,""),o=f.slice(1);if(s!==o)throw new c("version",`The service speaks API version ${s||"unknown"}; this site expects ${o}`,{expected:o,actual:s,retryable:!1});return t}).catch(t=>{throw E=null,t})),E}async function F(t){if(!m)throw new c("disabled","Dynamic services are not configured for this site",{retryable:!1});if(v[t]===!1)throw new c("disabled",`${t} is off in this site's settings`,{retryable:!1});let s=await C();if(!s||!s.features||!s.features[t])throw new c("unsupported",`The service does not offer ${t}`,{retryable:!1});return!0}return{enabled:m,base:a,version:f,timeout:T,credentials:b,urlFor:R,pathFor:L,request:y,get:(t,s)=>y("GET",t,s),post:(t,s,o={})=>y("POST",t,$(x({},o),{body:s})),patch:(t,s,o={})=>y("PATCH",t,$(x({},o),{body:s})),delete:(t,s)=>y("DELETE",t,s),capabilities:C,feature:F,health:()=>y("GET",M).then(({data:t})=>t)}}var D=null;function z(){return D||(D=J()),D}export{X as a,J as b,z as c};
@@ -1 +0,0 @@
1
- import{a as l}from"./chunk-2DYDWUFX.js";var u=["idle","pending","success","invalid","error","disabled"];function b(e,t){let i=e.elements.namedItem(t);return i?typeof i.setAttribute=="function"?[i]:Array.from(i):[]}function f(e){e.querySelectorAll("[aria-invalid]").forEach(t=>{t.removeAttribute("aria-invalid");let i=(t.getAttribute("aria-describedby")||"").split(/\s+/).filter(r=>r&&!r.endsWith("-error")).join(" ");i?t.setAttribute("aria-describedby",i):t.removeAttribute("aria-describedby")}),e.querySelectorAll("[data-error-for]").forEach(t=>{t.textContent="",t.hidden=!0})}function y(e,t){let i=0,r=null;return Object.keys(t||{}).forEach(n=>{let o=Array.isArray(t[n])?t[n].join(" "):String(t[n]),s=e.querySelector(`[data-error-for="${n}"]`);s&&(s.textContent=o,s.hidden=!1,s.id||(s.id=`${e.id||"form"}-${n}-error`)),b(e,n).forEach(d=>{if(d.setAttribute("aria-invalid","true"),s){let a=(d.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);a.includes(s.id)||a.push(s.id),d.setAttribute("aria-describedby",a.join(" "))}r=r||d,i+=1})}),r&&typeof r.focus=="function"&&r.focus(),i}function c(e,t,i="",r=null){e.dataset.state=u.includes(t)?t:"idle";let n=t==="pending";e.setAttribute("aria-busy",n?"true":"false"),e.querySelectorAll("button[type=submit], [data-form-submit]").forEach(s=>{s.disabled=n||t==="disabled"}),e.querySelectorAll("fieldset").forEach(s=>{s.disabled=t==="disabled"});let o=e.querySelector("[data-form-status]");o&&(o.setAttribute("role",t==="error"||t==="invalid"?"alert":"status"),o.textContent=i,o.hidden=i===""),f(e),t==="invalid"&&r&&y(e,r)}function A(e){let t={};return new FormData(e).forEach((i,r)=>{let n=typeof i=="string"?i.trim():i;r in t?t[r]=[].concat(t[r],n):t[r]=n}),t}function h(e,t,i={}){let r=l(t,i);t&&t.kind==="invalid"?c(e,"invalid",r,t.errors||null):c(e,"error",r)}export{c as a,A as b,h as c};