mblox 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mBloxM3E.js +25 -25
- package/package.json +4 -2
package/dist/mBloxM3E.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! mBlox Unified JS | Generated: 2026-06-
|
|
2
|
-
var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{for(var o in t)wt(e,o,{get:t[o],enumerable:!0})};var ke={};B(ke,{ASPECT_RATIO_CLASSES:()=>Be,BLOCK_CARD:()=>k,BLOCK_COMMENT:()=>C,BLOCK_COVER:()=>f,BLOCK_GALLERY:()=>O,BLOCK_LIST:()=>v,BLOCK_PANCAKE:()=>I,BLOCK_QUOTE:()=>y,BLOCK_SHOWCASE:()=>L,BLOCK_STACK:()=>T,BREAKPOINTS:()=>ue,DEFAULT_COLUMN_COUNTS:()=>Ae,LAYOUT_CLASSES:()=>xe,M3E_PALETTES:()=>fe,RESPONSIVE_CAROUSEL_CLASSES_M3E:()=>he,RESPONSIVE_COLUMN_MAP:()=>pe,RESPONSIVE_GRID_CLASSES_M3E:()=>R,getBreakpointIndex:()=>Ie,noImg:()=>_});function Ie(e){return e<ue.sm?0:e<ue.md?1:e<ue.lg?2:e<ue.xl?3:4}var f,L,v,k,O,I,T,y,C,_,Ae,ue,pe,he,R,fe,xe,Be,x=St(()=>{f="v",L="s",v="l",k="c",O="g",I="p",T="t",y="q",C="m",_=window.noImg||"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzljYTNhZiI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ii8+PC9zdmc+",Ae={v:1,m:1,t:1,p:3,c:4,q:4,g:5,l:2,s:6},ue={sm:600,md:840,lg:1200,xl:1600},pe={1:[1,1,1,1,1],2:[1,1,2,2,2],3:[1,1,2,3,3],4:[1,2,3,4,4],5:[2,3,4,4,5],6:[3,4,4,5,6]};he={1:"auto-cols-[100%]",2:"auto-cols-[100%] @3xl:auto-cols-[50%]",3:"auto-cols-[100%] @3xl:auto-cols-[50%] @5xl:auto-cols-[33.333333%]",4:"auto-cols-[100%] @xl:auto-cols-[50%] @3xl:auto-cols-[33.333333%] @5xl:auto-cols-[25%]",5:"auto-cols-[50%] @xl:auto-cols-[33.333333%] @3xl:auto-cols-[25%] @7xl:auto-cols-[20%]",6:"auto-cols-[33.333333%] @xl:auto-cols-[25%] @5xl:auto-cols-[20%] @7xl:auto-cols-[16.666667%]"},R={1:"grid-cols-1",2:"grid-cols-1 @3xl:grid-cols-2",3:"grid-cols-1 @3xl:grid-cols-2 @5xl:grid-cols-3",4:"grid-cols-1 @xl:grid-cols-2 @3xl:grid-cols-3 @5xl:grid-cols-4",5:"grid-cols-1 @md:grid-cols-2 @xl:grid-cols-3 @3xl:grid-cols-4 @7xl:grid-cols-5",6:"grid-cols-3 @xl:grid-cols-4 @5xl:grid-cols-5 @7xl:grid-cols-6"},fe={surface:{bg:"bg-surface",text:"text-on-surface",glass:"bg-surface/20",hoverBg:"hover:bg-surface",hoverText:"hover:text-on-surface",containerBg:"bg-surface-container",containerText:"text-on-surface",containerGlass:"bg-surface-container/20"},primary:{bg:"bg-primary",text:"text-on-primary",glass:"bg-primary/20",hoverBg:"hover:bg-tertiary",hoverText:"hover:text-on-tertiary",containerBg:"bg-primary-container",containerText:"text-on-primary-container",containerGlass:"bg-primary-container/20"},secondary:{bg:"bg-secondary",text:"text-on-secondary",glass:"bg-secondary/20",hoverBg:"hover:bg-secondary",hoverText:"hover:text-on-secondary",containerBg:"bg-secondary-container",containerText:"text-on-secondary-container",containerGlass:"bg-secondary-container/20"},tertiary:{bg:"bg-tertiary",text:"text-on-tertiary",glass:"bg-tertiary/20",containerBg:"bg-tertiary-container",containerText:"text-on-tertiary-container",containerGlass:"bg-tertiary-container/20"},error:{bg:"bg-error",text:"text-on-error",glass:"bg-error/20",containerBg:"bg-error-container",containerText:"text-on-error-container",containerGlass:"bg-error-container/20"}},xe={0:{gap:"gap-0",mt:"mt-0",mb:"mb-0",px:"px-0"},2:{gap:"gap-1 @3xl:gap-2",mt:"mt-1 @3xl:mt-2",mb:"mb-1 @3xl:mb-2",px:"px-1 @3xl:px-2"},4:{gap:"gap-2 @3xl:gap-3 @5xl:gap-4",mt:"mt-2 @3xl:mt-3 @5xl:mt-4",mb:"mb-2 @3xl:mb-3 @5xl:mb-4",px:"px-2 @3xl:px-3 @5xl:px-4"},6:{gap:"gap-3 @3xl:gap-4 @5xl:gap-6",mt:"mt-3 @3xl:mt-4 @5xl:mt-6",mb:"mb-3 @3xl:mb-4 @5xl:mb-6",px:"px-3 @3xl:px-4 @5xl:px-6"},8:{gap:"gap-4 @3xl:gap-6 @5xl:gap-8",mt:"mt-4 @3xl:mt-6 @5xl:mt-8",mb:"mb-4 @3xl:mb-6 @5xl:mb-8",px:"px-4 @3xl:px-6 @5xl:px-8"},10:{gap:"gap-6 @3xl:gap-8 @5xl:gap-10",mt:"mt-6 @3xl:mt-8 @5xl:mt-10",mb:"mb-6 @3xl:mb-8 @5xl:mb-10",px:"px-6 @3xl:px-8 @5xl:px-10"},12:{gap:"gap-8 @3xl:gap-10 @5xl:gap-12",mt:"mt-8 @3xl:mt-10 @5xl:mt-12",mb:"mb-8 @3xl:mb-10 @5xl:mb-12",px:"px-8 @3xl:px-10 @5xl:px-12"}},Be={"1/1":"aspect-square","16/9":"aspect-video","4/3":"aspect-[4/3]","3/4":"aspect-[3/4]","9/16":"aspect-[9/16]","9/21":"aspect-[9/21]","21/9":"aspect-[21/9]"}});function Q(e){if(!e)return[];let t=/#([a-zA-Z0-9_]+)/g,o=e.match(t);return o?o.map(r=>r.toLowerCase()):[]}function K(e){return new Promise((t,o)=>{let r=`jsonp_callback_${Math.round(1e5*Math.random())}`,l=document.createElement("script");l.src=`${e}&callback=${r}`,window[r]=function(s){delete window[r],document.head.removeChild(l),t(s)},l.onerror=function(){delete window[r],document.head.removeChild(l);let s=`JSONP request to ${e} failed.`;console.error(s),o(new Error(s))},document.head.appendChild(l)})}function Ge(e,t){return Array.isArray(e)?{posts:e.map(r=>({title:r.title.rendered,content:r.content.rendered,authorName:r._embedded?.author[0]?.name||"Unknown",authorUri:r._embedded?.author[0]?.link||"",authorImage:r._embedded?.author[0]?.avatar_urls?.["96"]||"",publishedDate:r.date_gmt,url:r.link,thumbnailUrl:r._embedded?.["wp:featuredmedia"]?.[0]?.media_details?.sizes?.large?.source_url||r._embedded?.["wp:featuredmedia"]?.[0]?.source_url||"",labels:[...new Set([...r._embedded?.["wp:term"]?r._embedded?.["wp:term"].flat().map(l=>l.name):[],...Q(r.title.rendered+" "+r.content.rendered)])],commentCount:r.comment_count?parseInt(r.comment_count,10):r._embedded?.replies?.[0]?.length||0,commentsUrl:r.link?`${r.link}#comments`:"",viewCount:r.views||r.view_count||r.pageviews||0,updatedDate:r.modified_gmt||""})),totalResults:parseInt(t.get("X-WP-Total")||"0",10)}:{posts:[],totalResults:0}}function Ye(e){let t=e.querySelectorAll("item, entry");if(!t.length)return{posts:[],totalResults:0,feedUrl:""};let o=e.querySelector("yt\\:channelId")!==null,r=Array.from(t).map(s=>{let a=n=>{let i=s.querySelector(n);return i?i.textContent:""};if(o){let n=a("yt\\:videoId"),i=s.querySelector("media\\:group"),c=i&&i.querySelector("media\\:thumbnail[url]")?.getAttribute("url")||"";return{title:a("title"),content:a("media\\:description")||"",authorName:a("author > name")||e.querySelector("channel > title, feed > title")?.textContent||"Unknown",publishedDate:a("published"),url:s.querySelector('link[rel="alternate"]')?.getAttribute("href")||"",thumbnailUrl:c,videoId:n,authorUri:a("author > uri")||"",authorImage:"",labels:[...new Set([...Array.from(s.querySelectorAll("category")).map(d=>d.textContent),...Q(a("title")+" "+(a("media\\:description")||""))])],commentCount:0,commentsUrl:"",viewCount:a("media\\:statistics[views]")||0,updatedDate:a("updated")||""}}else{let n=s.querySelector("media\\:thumbnail[url], thumbnail[url]")?.getAttribute("url")||"";if(!n){let c=(a("description")||a("content")).match(/<img[^>]+src="([^">]+)"/);c&&(n=c[1])}return{title:a("title"),content:a("description")||a("content"),authorName:a("dc\\:creator, author > name")||e.querySelector("channel > title, feed > title")?.textContent||"Unknown",publishedDate:a("pubDate, published"),url:a("link")||s.querySelector("link[href]")?.getAttribute("href")||"",thumbnailUrl:n,authorUri:a("author > uri")||"",authorImage:"",labels:[...new Set([...Array.from(s.querySelectorAll("category")).map(i=>i.textContent),...Q(a("title")+" "+(a("description")||a("content")))])],commentCount:a("slash\\:comments")?parseInt(a("slash\\:comments"),10):0,commentsUrl:a("comments")||a("link")||s.querySelector("link[href]")?.getAttribute("href")||"",viewCount:0,updatedDate:a("updated")||""}}}),l=e.querySelector('channel > link, feed > link[rel="alternate"]')?.getAttribute("href")||e.querySelector('channel > link, feed > link[rel="alternate"]')?.textContent||"";return{posts:r,totalResults:t.length,feedUrl:l}}function ye(e){if(e.status!=="ok"||!e.items)return{posts:[],totalResults:0,feedUrl:""};let t=e.feed.url.includes("youtube.com");return{posts:e.items.map(r=>{let l="";if(t){let a=r.link.match(/v=([^&]+)/);l=a?a[1]:""}let s=r.thumbnail||"";if(!s&&r.enclosure&&r.enclosure.link&&r.enclosure.type&&r.enclosure.type.startsWith("image/")&&(s=r.enclosure.link),!s&&r.content){let a=r.content.match(/<img[^>]+src="([^">]+)"/);a&&(s=a[1])}return{title:r.title,content:r.description||r.content||"",authorName:r.author||"Unknown",publishedDate:r.pubDate,url:r.link,thumbnailUrl:s,videoId:l,authorUri:"",authorImage:"",labels:[...new Set([...r.categories||[],...Q((r.title||"")+" "+(r.description||r.content||""))])],commentCount:0,commentsUrl:"",viewCount:0,updatedDate:r.updated||""}}),totalResults:e.items.length,feedUrl:e.feed.link}}function Qe(e){if(!e||!e.data||!Array.isArray(e.data.children))return{posts:[],totalResults:0,feedUrl:""};let t=e.data.children.map(o=>{let r=o.data,l="";if(r.thumbnail&&r.thumbnail.startsWith("http"))l=r.thumbnail;else if(r.preview&&r.preview.images&&r.preview.images.length>0){let a=r.preview.images[0].source.url;l=a?a.replace(/&/g,"&"):""}let s="";return r.selftext_html?s=r.selftext_html.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"'):r.selftext?s=r.selftext:r.url&&!r.url.includes("reddit.com")&&(s=`<a href="${r.url}" target="_blank">External Link: ${r.title}</a>`,r.url.match(/\.(jpeg|jpg|gif|png)$/i)&&(s+=`<br><img src="${r.url}" />`,l||(l=r.url))),{title:r.title,content:s,authorName:r.author||"Unknown",publishedDate:r.created_utc?new Date(r.created_utc*1e3).toISOString():"",url:`https://www.reddit.com${r.permalink}`,thumbnailUrl:l,videoId:"",authorUri:`https://www.reddit.com/user/${r.author}`,authorImage:"",labels:[...new Set([...r.link_flair_text?[r.link_flair_text]:[],...Q((r.title||"")+" "+s)])],commentCount:r.num_comments||0,commentsUrl:`https://www.reddit.com${r.permalink}`,viewCount:r.view_count||r.score||0,updatedDate:r.edited?new Date(r.edited*1e3).toISOString():""}});return{posts:t,totalResults:t.length,feedUrl:""}}function ce(e){if(!e.feed||!e.feed.entry)return{posts:[],totalResults:0,feedUrl:""};let t=e.feed.entry.map(r=>{let l="content"in r?r.content.$t:"summary"in r?r.summary.$t:"",s="";if(l){let n=new DOMParser().parseFromString(l,"text/html").querySelector("img");n&&(s=n.src)}return{title:r.title.$t,content:l,authorName:r.author[0].name.$t,authorUri:r.author[0].name.$t==="Anonymous"||r.author[0].name.$t==="Unknown"?"":r.author[0].uri.$t,authorImage:r.author[0].gd$image?r.author[0].gd$image.src:"",publishedDate:r.published.$t,url:(r.link.find(a=>a.rel==="alternate")||{}).href||"",thumbnailUrl:s,labels:[...new Set([...r.category?r.category.map(a=>a.term):[],...Q((r.title.$t||"")+" "+l)])],commentCount:r.thr$total?parseInt(r.thr$total.$t,10):0,commentsUrl:(r.link.find(a=>a.rel==="replies"&&a.type==="text/html")||{}).href||(r.link.find(a=>a.rel==="alternate")||{}).href||"",viewCount:0,updatedDate:r.updated?r.updated.$t:""}}),o=(e.feed.link.find(r=>r.rel==="alternate")||{}).href||"";return{posts:t,totalResults:e.feed.openSearch$totalResults.$t,feedUrl:o}}var V=900*1e3,$=new Map;async function Je(e){let t=[{url:`https://api.codetabs.com/v1/proxy?quest=${e}`,type:"raw"},{url:`https://corsproxy.io/?${encodeURIComponent(e)}`,type:"raw"},{url:`https://api.allorigins.win/get?url=${encodeURIComponent(e)}`,type:"json"}];for(let o of t)try{let r=new AbortController,l=setTimeout(()=>r.abort(),5e3),s=await fetch(o.url,{signal:r.signal});if(clearTimeout(l),s.ok){let a;if(o.type==="json"?a=(await s.json()).contents:a=await s.text(),a&&a.length>0){if(e.includes("/wp-json")){let n=a.trim();if(!n.startsWith("{")&&!n.startsWith("[")){console.warn(`mBlox: Proxy ${o.url} returned non-JSON HTML for WordPress: ${n.substring(0,100)}`);continue}}return{text:a,response:s}}}}catch(r){console.warn(`mBlox: Proxy attempt failed for ${e}: ${r.message}`)}throw new Error(`All CORS proxies failed for ${e}`)}var Ce=class{constructor(t){this.config=t}_buildFeedUrl(){let t=this.config.siteURL;t=t.endsWith("/")?t:t+"/",t.endsWith("/posts/")||(t+="wp/v2/posts/");let o=`${t}?_embed&per_page=${this.config.postsPerBlock}&page=${this.config.stageID}`;return this.config.contentType==="label"&&!isNaN(parseInt(this.config.labelName,10))&&(o+=`&categories=${this.config.labelName}`),o}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r,l;try{let s=await Je(t);r=s.text,l=s.response}catch(s){return console.error(`mBlox: Failed to fetch WordPress feed: ${s.message}`),{posts:[],totalResults:0}}try{let s=JSON.parse(r),a=Ge(s,l.headers);return $.set(t,{data:a,timestamp:Date.now()}),a}catch(s){throw console.error("mBlox: Failed to parse WordPress JSON.",s),new Error("Invalid JSON response from WordPress feed.")}}},J=class{constructor(t){this.config=t}_buildFeedUrl(){return this.config.siteURL}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r;try{r=(await Je(t)).text}catch(n){return console.error(`mBlox: Failed to fetch RSS feed: ${n.message}`),{posts:[],totalResults:0,feedUrl:""}}let s=new DOMParser().parseFromString(r,"text/xml");if(s.getElementsByTagName("parsererror").length)throw new Error("Failed to parse RSS feed.");let a=Ye(s);return $.set(t,{data:a,timestamp:Date.now()}),a}},$e=class{constructor(t){this.config=t}_buildFeedUrl(){return`https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(this.config.siteURL)}`}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r;try{r=await K(t)}catch(s){return console.error(`mBlox: Failed to fetch YouTube JSONP: ${s.message}`),{posts:[],totalResults:0,feedUrl:""}}let l=ye(r);return $.set(t,{data:l,timestamp:Date.now()}),l}},de=class{constructor(t){this.config=t}_buildFeedUrl(t,o){let r=this.config.siteURL+"feeds/",l=this.config.contentType,s=t||this.config.labelName,a=o||this.config.postsPerBlock;switch(l){case"recent":r+="posts"+(this.config.showImage?"/default":"/summary");break;case"comments":r+="comments"+(this.config.showImage?"/default":"/summary");break;case"related":r+="posts"+(this.config.showImage?"/default":"/summary")+"/-/"+encodeURIComponent(s);break;default:r+="posts"+(this.config.showImage?"/default":"/summary")+"/-/"+encodeURIComponent(s)}return r+=`?alt=json-in-script&start-index=${(this.config.stageID-1)*this.config.postsPerBlock+1}&max-results=${a}`,r}async _fetchCurrentPostLabels(){try{let t=window.config?.bg?.psId,o=t&&window.config?.ps?.[t];if(o&&o.lab&&Array.isArray(o.lab)&&o.lab.length>0)return o.lab}catch{}try{let t=window.location.pathname,o=this.config.siteURL+`feeds/posts/default?alt=json-in-script&path=${t}`,r=await K(o),l=ce(r);if(l.posts&&l.posts.length>0)return l.posts[0].labels||[]}catch{console.warn("mBlox: Failed to fetch current post labels for related posts.")}return[]}async fetch(){if(this.config.contentType==="related"){let t=await this._fetchCurrentPostLabels(),o=[],r=window.location.href.split("#")[0].split("?")[0];if(t.length>0){let l=[...t];for(;o.length<this.config.postsPerBlock&&l.length>0;){let s=Math.floor(Math.random()*l.length),a=l.splice(s,1)[0],n=this.config.postsPerBlock+10,i=this._buildFeedUrl(a,n),c=$.get(i),d;if(c&&Date.now()-c.timestamp<V)d=c.data;else{let p;try{p=await K(i)}catch(u){console.error(`mBlox: Failed to fetch Blogger feed: ${u.message}`);break}d=ce(p),$.set(i,{data:d,timestamp:Date.now()})}let m=d.posts.filter(p=>p.url.split("#")[0].split("?")[0]!==r&&!o.some(h=>h.url===p.url));m.sort(()=>Math.random()-.5),o.push(...m)}}if(o.length===0){let l=this.config.siteURL+"feeds/posts"+(this.config.showImage?"/default":"/summary")+`?alt=json-in-script&max-results=${this.config.postsPerBlock+10}`,s=$.get(l),a;if(s&&Date.now()-s.timestamp<V)a=s.data;else{let i;try{i=await K(l)}catch(c){return console.error(`mBlox: Failed to fetch Blogger fallback feed: ${c.message}`),{posts:[],totalResults:0,feedUrl:""}}a=ce(i),$.set(l,{data:a,timestamp:Date.now()})}let n=a.posts.filter(i=>i.url.split("#")[0].split("?")[0]!==r);n.sort(()=>Math.random()-.5),o.push(...n)}return{posts:o.slice(0,this.config.postsPerBlock),totalResults:o.length,feedUrl:""}}else{let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r;try{r=await K(t)}catch(s){return console.error(`mBlox: Failed to fetch Blogger feed: ${s.message}`),{posts:[],totalResults:0,feedUrl:""}}let l=ce(r);return $.set(t,{data:l,timestamp:Date.now()}),l}}},we=class{constructor(t){this.config=t}_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith(".json")||(t+=".json"),t}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;try{let r=await window.fetch(t);if(!r.ok)throw new Error("Native fetch failed");let l=await r.text(),s=JSON.parse(l),a=Qe(s);return $.set(t,{data:a,timestamp:Date.now()}),a}catch{console.warn("mBlox: Reddit native fetch failed (CORS/403). Falling back to rss2json...");let l=t.replace(".json",".rss"),s=`https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(l)}`,a;try{a=await K(s)}catch(i){return console.error(`mBlox: Reddit fallback via RSS2JSON failed: ${i.message}`),{posts:[],totalResults:0,feedUrl:""}}let n=ye(a);return n.posts.forEach(i=>{i.authorName&&i.authorName.startsWith("/u/")&&(i.authorUri=`https://www.reddit.com${i.authorName}`)}),$.set(t,{data:n,timestamp:Date.now()}),n}}},Se=class extends J{_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith("/rss")||(t+="/rss"),t}},Te=class extends J{_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith(".rss")||(t+=".rss"),t}};function Ze(e){let t=e.siteURL.toLowerCase(),o=t.split("?")[0];return t.includes("reddit.com")?new we(e):t.includes("tumblr.com")?new Se(e):t.includes("mastodon.social")||t.includes("bsky.app")?new Te(e):t.includes("deviantart.com")?new J(e):t.includes("/wp-json")?new Ce(e):t.includes("youtube.com")?new $e(e):o.endsWith(".xml")||t.includes("/feed")||o.endsWith(".rss")||o.endsWith("/rss")?new J(e):new de(e)}x();function Xe(e,t){let o={...e};if((o.postsPerBlock<=1||o.blockType==="l")&&(o.isCarousel=!1),o.isCarousel){let r=Math.max(1,Math.min(6,o.columnCount)),l=Ie(window.innerWidth),s=pe[r]||pe[6];o.actualColumnCount=s[l],o.blockRows>Math.ceil(t/o.actualColumnCount)&&(o.blockRows=Math.ceil(t/o.actualColumnCount)),t<=o.actualColumnCount*o.blockRows&&(o.isCarousel=!1,o.containsNavigation=!0)}return o}function Tt(e){if(e.sectionHeight||(e.blockType==="v"?e.sectionHeight="100vh":e.blockType==="s"?e.sectionHeight="70vh":e.sectionHeight="m"),e.articleHeight=e.sectionHeight==="m"?"":`height:${e.sectionHeight}!important;`,e.isImageFixed===null&&(e.isImageFixed=e.blockType==="s"||e.blockType==="v"),e.blurImage===null){let t=["s","l","t","p","q"];e.blurImage=e.showHeader&&!t.includes(e.blockType)}return e.textVerticalAlign||(e.blockType==="v"?e.textVerticalAlign="middle":e.blockType==="l"?e.textVerticalAlign="bottom":e.textVerticalAlign="overlay"),e.ctaAlign||(e.ctaAlign=e.blockType==="v"?"center":"right"),e.textHAlign||(e.textHAlign=e.blockType==="v"?"center":"left"),e.columnCount===null||typeof e.columnCount>"u"?e.columnCount=Ae[e.blockType]||3:e.columnCount=parseInt(e.columnCount,10),e}function et(e){let t={},o=e.querySelector('script[type="application/json"]');if(o)try{t=JSON.parse(o.textContent)}catch(P){console.error("mBlox: Failed to parse embedded JSON configuration.",P)}let r=(P,D,ie)=>{if(t[D]!==void 0)return t[D];let q=e.getAttribute(`data-${P}`);return q!==null?q:ie},l=(P,D,ie)=>{if(t[D]!==void 0)return!!t[D];let q=e.getAttribute(`data-${P}`);return q!==null?q.toLowerCase()==="true":ie},s=(P,D,ie)=>{if(t[D]!==void 0)return parseInt(t[D],10);let q=e.getAttribute(`data-${P}`);return q!==null?parseInt(q,10):ie},a=r("label","label","Label Name missing"),n=String(r("contentType","contentType","recent")).toLowerCase(),i=r("feed","feed","/"),c=r("title","title",""),d=r("description","description",""),m=r("type","type","v-ih"),p=String(m).toLowerCase(),u=p.substring(0,1),h=p.substring(1),g=String(m).substring(1),b=String(r("theme","theme","auto")).toLowerCase(),w=h.includes("h"),S=h.includes("i"),N=h.includes("s"),le=h.includes("a"),j=h.includes("d"),z=h.includes("o"),F=h.includes("l"),W=g.includes("D")?"long":"short",G=s("s","s",1),ae=!e.hasAttribute("data-s")&&t.s===void 0,se=s("posts","posts",3),ge=["light","dark","auto"].includes(b)?b:"auto",Y=String(r("palette","palette","surface")).toLowerCase(),M=Y;fe[M]||(M="surface");let bt=fe[M],Lt=String(r("textVAlign","textVAlign","")).toLowerCase(),Ve=String(r("iBlur","iBlur","")).toLowerCase(),ze=String(r("iFix","iFix","")).toLowerCase(),Fe=e.closest(".widget"),gt=(Fe?Fe.getAttribute("ID"):c+p+a).replace(/[\s#.&?,[\]]/g,"-"),vt=W==="long"?{year:"numeric",month:"short",day:"numeric"}:{month:"short",day:"numeric"},yt=j?new Intl.DateTimeFormat("en-US",vt):null,We=r("cols","cols",null),Ct=r("rows","rows","1"),$t=String(r("overlay-items","overlayItems","vcasb")).toLowerCase().split(""),ve={labelName:a,contentType:n,siteURL:i,mBlockTitle:c,mBlockDescription:d,blockType:u,showHeader:w,showImage:S,showSnippet:N,showAuthor:le,showDate:j,showOverlay:z,showLabels:F,columnCount:We!==null?parseInt(We,10):null,blockRows:parseInt(Ct,10),isCarousel:l("isCarousel","isCarousel",!1),sectionHeight:r("iHeight","iHeight",null),articleHeight:"",blurImage:Ve==="true"||t.iBlur===!0?!0:Ve==="false"||t.iBlur===!1?!1:null,palette:bt,gutterSize:r("gutter","gutter",u=="v"?0:3),textVerticalAlign:Lt,cornerStyle:String(r("corner","corner","")).toLowerCase()=="sharp"?" rounded-none":" rounded-3xl",aspectRatio:` ${Be[String(r("ar","ar","1/1")).replace("x","/").toLowerCase()]||"aspect-square"}`,isImageFixed:ze==="true"||t.iFix===!0?!0:ze==="false"||t.iFix===!1?!1:null,hasRoundedBorder:l("iBorder","iBorder",!1),snippetSize:s("snippetSize","snippetSize",150),callToAction:r("CTAText","CTAText",""),ctaAlign:r("ctaAlign","ctaAlign",""),textHAlign:r("textHAlign","textHAlign",""),moreText:r("moreText","moreText",""),stageID:G,firstInstance:ae,postsPerBlock:se,mBlockID:gt,dateFormatter:yt,dateStyle:W,paletteName:Y,mBloxTheme:ge,interactionClasses:Y==="colorful"?`transition-all duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${u==="p"||u==="q"?"":"hover:bg-tertiary hover:text-on-tertiary "}hover:scale-[1.02] hover:opacity-100 overflow-hidden no-underline font-bold`:`transition-all duration-300 ease-[cubic-bezier(0.2,0,0,1)] hover:scale-[1.02] ${u==="p"||u==="q"?"":"hover:bg-surface-variant "}overflow-hidden no-underline font-bold`,containsNavigation:!1,actualColumnCount:0,overlayItems:$t};return ve.layout=xe[ve.gutterSize*2]||xe[6],Tt(ve)}x();function tt(e){let t=Array.from(e.querySelectorAll(".m-blox-image-to-load"));if(!t.length)return;let o=new IntersectionObserver((r,l)=>{r.forEach(s=>{if(!s.isIntersecting)return;let a=s.target,n=a.tagName==="FIGURE",i=a.getAttribute("data-is-fixed")==="true",c=a.getAttribute("data-img-high"),d=c,m=window.devicePixelRatio||1,p;if(i?p=Math.max(window.innerWidth,window.innerHeight)*m:p=a.getBoundingClientRect().width*m,p>0&&c&&c.includes("/s1600")){let u=Math.min(1600,Math.max(100,Math.ceil(p/100)*100));d=c.replace("/s1600",`/s${u}`)}if(n){let u=new Image;u.onload=()=>{a.style.backgroundImage=`url("${d}")`,i&&(a.style.backgroundAttachment="fixed",a.style.backgroundPosition="center center",a.style.backgroundSize="cover")},u.onerror=()=>{Promise.resolve().then(()=>(x(),ke)).then(({noImg:h})=>{a.style.backgroundImage=`url("${h}")`,a.setAttribute("data-img-high",h)})},u.src=d}else a.onerror=()=>{Promise.resolve().then(()=>(x(),ke)).then(({noImg:u})=>{a.src=u,a.setAttribute("data-img-high",u),a.onerror=null})},a.src=d;l.unobserve(a)})},{rootMargin:"0px 0px 200px 0px"});t.forEach(r=>{o.observe(r)})}var At=`<svg xmlns="http://www.w3.org/2000/svg" style="display:none;" id="mblox-svg-sprite">
|
|
1
|
+
/*! mBlox Unified JS | Generated: 2026-06-08T09:47:20.805Z */
|
|
2
|
+
var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var k=(e,t)=>{for(var o in t)wt(e,o,{get:t[o],enumerable:!0})};var ke={};k(ke,{ASPECT_RATIO_CLASSES:()=>Be,BLOCK_CARD:()=>_,BLOCK_COMMENT:()=>C,BLOCK_COVER:()=>f,BLOCK_GALLERY:()=>R,BLOCK_LIST:()=>v,BLOCK_PANCAKE:()=>B,BLOCK_QUOTE:()=>y,BLOCK_SHOWCASE:()=>L,BLOCK_STACK:()=>T,BREAKPOINTS:()=>ue,DEFAULT_COLUMN_COUNTS:()=>Ae,LAYOUT_CLASSES:()=>xe,M3E_PALETTES:()=>fe,RESPONSIVE_CAROUSEL_CLASSES_M3E:()=>he,RESPONSIVE_COLUMN_MAP:()=>pe,RESPONSIVE_GRID_CLASSES_M3E:()=>U,getBreakpointIndex:()=>Ie,noImg:()=>O});function Ie(e){return e<ue.sm?0:e<ue.md?1:e<ue.lg?2:e<ue.xl?3:4}var f,L,v,_,R,B,T,y,C,O,Ae,ue,pe,he,U,fe,xe,Be,x=St(()=>{f="v",L="s",v="l",_="c",R="g",B="p",T="t",y="q",C="m",O=window.noImg||"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzljYTNhZiI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ii8+PC9zdmc+",Ae={v:1,m:1,t:1,p:3,c:4,q:4,g:5,l:2,s:6},ue={sm:600,md:840,lg:1200,xl:1600},pe={1:[1,1,1,1,1],2:[1,1,2,2,2],3:[1,1,2,3,3],4:[1,2,3,4,4],5:[2,3,4,4,5],6:[3,4,4,5,6]};he={1:"auto-cols-[100%]",2:"auto-cols-[100%] @3xl:auto-cols-[50%]",3:"auto-cols-[100%] @3xl:auto-cols-[50%] @5xl:auto-cols-[33.333333%]",4:"auto-cols-[100%] @xl:auto-cols-[50%] @3xl:auto-cols-[33.333333%] @5xl:auto-cols-[25%]",5:"auto-cols-[50%] @xl:auto-cols-[33.333333%] @3xl:auto-cols-[25%] @7xl:auto-cols-[20%]",6:"auto-cols-[33.333333%] @xl:auto-cols-[25%] @5xl:auto-cols-[20%] @7xl:auto-cols-[16.666667%]"},U={1:"grid-cols-1",2:"grid-cols-1 @3xl:grid-cols-2",3:"grid-cols-1 @3xl:grid-cols-2 @5xl:grid-cols-3",4:"grid-cols-1 @xl:grid-cols-2 @3xl:grid-cols-3 @5xl:grid-cols-4",5:"grid-cols-1 @md:grid-cols-2 @xl:grid-cols-3 @3xl:grid-cols-4 @7xl:grid-cols-5",6:"grid-cols-3 @xl:grid-cols-4 @5xl:grid-cols-5 @7xl:grid-cols-6"},fe={surface:{bg:"bg-surface",text:"text-on-surface",glass:"bg-surface/20",hoverBg:"hover:bg-surface",hoverText:"hover:text-on-surface",containerBg:"bg-surface-container",containerText:"text-on-surface",containerGlass:"bg-surface-container/20"},primary:{bg:"bg-primary",text:"text-on-primary",glass:"bg-primary/20",hoverBg:"hover:bg-tertiary",hoverText:"hover:text-on-tertiary",containerBg:"bg-primary-container",containerText:"text-on-primary-container",containerGlass:"bg-primary-container/20"},secondary:{bg:"bg-secondary",text:"text-on-secondary",glass:"bg-secondary/20",hoverBg:"hover:bg-secondary",hoverText:"hover:text-on-secondary",containerBg:"bg-secondary-container",containerText:"text-on-secondary-container",containerGlass:"bg-secondary-container/20"},tertiary:{bg:"bg-tertiary",text:"text-on-tertiary",glass:"bg-tertiary/20",containerBg:"bg-tertiary-container",containerText:"text-on-tertiary-container",containerGlass:"bg-tertiary-container/20"},error:{bg:"bg-error",text:"text-on-error",glass:"bg-error/20",containerBg:"bg-error-container",containerText:"text-on-error-container",containerGlass:"bg-error-container/20"}},xe={0:{gap:"gap-0",mt:"mt-0",mb:"mb-0",px:"px-0"},2:{gap:"gap-1 @3xl:gap-2",mt:"mt-1 @3xl:mt-2",mb:"mb-1 @3xl:mb-2",px:"px-1 @3xl:px-2"},4:{gap:"gap-2 @3xl:gap-3 @5xl:gap-4",mt:"mt-2 @3xl:mt-3 @5xl:mt-4",mb:"mb-2 @3xl:mb-3 @5xl:mb-4",px:"px-2 @3xl:px-3 @5xl:px-4"},6:{gap:"gap-3 @3xl:gap-4 @5xl:gap-6",mt:"mt-3 @3xl:mt-4 @5xl:mt-6",mb:"mb-3 @3xl:mb-4 @5xl:mb-6",px:"px-3 @3xl:px-4 @5xl:px-6"},8:{gap:"gap-4 @3xl:gap-6 @5xl:gap-8",mt:"mt-4 @3xl:mt-6 @5xl:mt-8",mb:"mb-4 @3xl:mb-6 @5xl:mb-8",px:"px-4 @3xl:px-6 @5xl:px-8"},10:{gap:"gap-6 @3xl:gap-8 @5xl:gap-10",mt:"mt-6 @3xl:mt-8 @5xl:mt-10",mb:"mb-6 @3xl:mb-8 @5xl:mb-10",px:"px-6 @3xl:px-8 @5xl:px-10"},12:{gap:"gap-8 @3xl:gap-10 @5xl:gap-12",mt:"mt-8 @3xl:mt-10 @5xl:mt-12",mb:"mb-8 @3xl:mb-10 @5xl:mb-12",px:"px-8 @3xl:px-10 @5xl:px-12"}},Be={"1/1":"aspect-square","16/9":"aspect-video","4/3":"aspect-[4/3]","3/4":"aspect-[3/4]","9/16":"aspect-[9/16]","9/21":"aspect-[9/21]","21/9":"aspect-[21/9]"}});function Q(e){if(!e)return[];let t=/#([a-zA-Z0-9_]+)/g,o=e.match(t);return o?o.map(r=>r.toLowerCase()):[]}function K(e){return new Promise((t,o)=>{let r=`jsonp_callback_${Math.round(1e5*Math.random())}`,l=document.createElement("script");l.src=`${e}&callback=${r}`,window[r]=function(s){delete window[r],document.head.removeChild(l),t(s)},l.onerror=function(){delete window[r],document.head.removeChild(l);let s=`JSONP request to ${e} failed.`;console.error(s),o(new Error(s))},document.head.appendChild(l)})}function Ge(e,t){return Array.isArray(e)?{posts:e.map(r=>({title:r.title.rendered,content:r.content.rendered,authorName:r._embedded?.author[0]?.name||"Unknown",authorUri:r._embedded?.author[0]?.link||"",authorImage:r._embedded?.author[0]?.avatar_urls?.["96"]||"",publishedDate:r.date_gmt,url:r.link,thumbnailUrl:r._embedded?.["wp:featuredmedia"]?.[0]?.media_details?.sizes?.large?.source_url||r._embedded?.["wp:featuredmedia"]?.[0]?.source_url||"",labels:[...new Set([...r._embedded?.["wp:term"]?r._embedded?.["wp:term"].flat().map(l=>l.name):[],...Q(r.title.rendered+" "+r.content.rendered)])],commentCount:r.comment_count?parseInt(r.comment_count,10):r._embedded?.replies?.[0]?.length||0,commentsUrl:r.link?`${r.link}#comments`:"",viewCount:r.views||r.view_count||r.pageviews||0,updatedDate:r.modified_gmt||""})),totalResults:parseInt(t.get("X-WP-Total")||"0",10)}:{posts:[],totalResults:0}}function Ye(e){let t=e.querySelectorAll("item, entry");if(!t.length)return{posts:[],totalResults:0,feedUrl:""};let o=e.querySelector("yt\\:channelId")!==null,r=Array.from(t).map(s=>{let a=i=>{let n=s.querySelector(i);return n?n.textContent:""};if(o){let i=a("yt\\:videoId"),n=s.querySelector("media\\:group"),c=n&&n.querySelector("media\\:thumbnail[url]")?.getAttribute("url")||"";return{title:a("title"),content:a("media\\:description")||"",authorName:a("author > name")||e.querySelector("channel > title, feed > title")?.textContent||"Unknown",publishedDate:a("published"),url:s.querySelector('link[rel="alternate"]')?.getAttribute("href")||"",thumbnailUrl:c,videoId:i,authorUri:a("author > uri")||"",authorImage:"",labels:[...new Set([...Array.from(s.querySelectorAll("category")).map(d=>d.textContent),...Q(a("title")+" "+(a("media\\:description")||""))])],commentCount:0,commentsUrl:"",viewCount:a("media\\:statistics[views]")||0,updatedDate:a("updated")||""}}else{let i=s.querySelector("media\\:thumbnail[url], thumbnail[url]")?.getAttribute("url")||"";if(!i){let c=(a("description")||a("content")).match(/<img[^>]+src="([^">]+)"/);c&&(i=c[1])}return{title:a("title"),content:a("description")||a("content"),authorName:a("dc\\:creator, author > name")||e.querySelector("channel > title, feed > title")?.textContent||"Unknown",publishedDate:a("pubDate, published"),url:a("link")||s.querySelector("link[href]")?.getAttribute("href")||"",thumbnailUrl:i,authorUri:a("author > uri")||"",authorImage:"",labels:[...new Set([...Array.from(s.querySelectorAll("category")).map(n=>n.textContent),...Q(a("title")+" "+(a("description")||a("content")))])],commentCount:a("slash\\:comments")?parseInt(a("slash\\:comments"),10):0,commentsUrl:a("comments")||a("link")||s.querySelector("link[href]")?.getAttribute("href")||"",viewCount:0,updatedDate:a("updated")||""}}}),l=e.querySelector('channel > link, feed > link[rel="alternate"]')?.getAttribute("href")||e.querySelector('channel > link, feed > link[rel="alternate"]')?.textContent||"";return{posts:r,totalResults:t.length,feedUrl:l}}function ye(e){if(e.status!=="ok"||!e.items)return{posts:[],totalResults:0,feedUrl:""};let t=e.feed.url.includes("youtube.com");return{posts:e.items.map(r=>{let l="";if(t){let a=r.link.match(/v=([^&]+)/);l=a?a[1]:""}let s=r.thumbnail||"";if(!s&&r.enclosure&&r.enclosure.link&&r.enclosure.type&&r.enclosure.type.startsWith("image/")&&(s=r.enclosure.link),!s&&r.content){let a=r.content.match(/<img[^>]+src="([^">]+)"/);a&&(s=a[1])}return{title:r.title,content:r.description||r.content||"",authorName:r.author||"Unknown",publishedDate:r.pubDate,url:r.link,thumbnailUrl:s,videoId:l,authorUri:"",authorImage:"",labels:[...new Set([...r.categories||[],...Q((r.title||"")+" "+(r.description||r.content||""))])],commentCount:0,commentsUrl:"",viewCount:0,updatedDate:r.updated||""}}),totalResults:e.items.length,feedUrl:e.feed.link}}function Qe(e){if(!e||!e.data||!Array.isArray(e.data.children))return{posts:[],totalResults:0,feedUrl:""};let t=e.data.children.map(o=>{let r=o.data,l="";if(r.thumbnail&&r.thumbnail.startsWith("http"))l=r.thumbnail;else if(r.preview&&r.preview.images&&r.preview.images.length>0){let a=r.preview.images[0].source.url;l=a?a.replace(/&/g,"&"):""}let s="";return r.selftext_html?s=r.selftext_html.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"'):r.selftext?s=r.selftext:r.url&&!r.url.includes("reddit.com")&&(s=`<a href="${r.url}" target="_blank">External Link: ${r.title}</a>`,r.url.match(/\.(jpeg|jpg|gif|png)$/i)&&(s+=`<br><img src="${r.url}" />`,l||(l=r.url))),{title:r.title,content:s,authorName:r.author||"Unknown",publishedDate:r.created_utc?new Date(r.created_utc*1e3).toISOString():"",url:`https://www.reddit.com${r.permalink}`,thumbnailUrl:l,videoId:"",authorUri:`https://www.reddit.com/user/${r.author}`,authorImage:"",labels:[...new Set([...r.link_flair_text?[r.link_flair_text]:[],...Q((r.title||"")+" "+s)])],commentCount:r.num_comments||0,commentsUrl:`https://www.reddit.com${r.permalink}`,viewCount:r.view_count||r.score||0,updatedDate:r.edited?new Date(r.edited*1e3).toISOString():""}});return{posts:t,totalResults:t.length,feedUrl:""}}function ce(e){if(!e.feed||!e.feed.entry)return{posts:[],totalResults:0,feedUrl:""};let t=e.feed.entry.map(r=>{let l="content"in r?r.content.$t:"summary"in r?r.summary.$t:"",s="";if(l){let i=new DOMParser().parseFromString(l,"text/html").querySelector("img");i&&(s=i.src)}return{title:r.title.$t,content:l,authorName:r.author[0].name.$t,authorUri:r.author[0].name.$t==="Anonymous"||r.author[0].name.$t==="Unknown"?"":r.author[0].uri.$t,authorImage:r.author[0].gd$image?r.author[0].gd$image.src:"",publishedDate:r.published.$t,url:(r.link.find(a=>a.rel==="alternate")||{}).href||"",thumbnailUrl:s,labels:[...new Set([...r.category?r.category.map(a=>a.term):[],...Q((r.title.$t||"")+" "+l)])],commentCount:r.thr$total?parseInt(r.thr$total.$t,10):0,commentsUrl:(r.link.find(a=>a.rel==="replies"&&a.type==="text/html")||{}).href||(r.link.find(a=>a.rel==="alternate")||{}).href||"",viewCount:0,updatedDate:r.updated?r.updated.$t:""}}),o=(e.feed.link.find(r=>r.rel==="alternate")||{}).href||"";return{posts:t,totalResults:e.feed.openSearch$totalResults.$t,feedUrl:o}}var V=900*1e3,$=new Map;async function Je(e){let t=[{url:`https://api.codetabs.com/v1/proxy?quest=${e}`,type:"raw"},{url:`https://corsproxy.io/?${encodeURIComponent(e)}`,type:"raw"},{url:`https://api.allorigins.win/get?url=${encodeURIComponent(e)}`,type:"json"}];for(let o of t)try{let r=new AbortController,l=setTimeout(()=>r.abort(),5e3),s=await fetch(o.url,{signal:r.signal});if(clearTimeout(l),s.ok){let a;if(o.type==="json"?a=(await s.json()).contents:a=await s.text(),a&&a.length>0){if(e.includes("/wp-json")){let i=a.trim();if(!i.startsWith("{")&&!i.startsWith("[")){console.warn(`mBlox: Proxy ${o.url} returned non-JSON HTML for WordPress: ${i.substring(0,100)}`);continue}}return{text:a,response:s}}}}catch(r){console.warn(`mBlox: Proxy attempt failed for ${e}: ${r.message}`)}throw new Error(`All CORS proxies failed for ${e}`)}var Ce=class{constructor(t){this.config=t}_buildFeedUrl(){let t=this.config.siteURL;t=t.endsWith("/")?t:t+"/",t.endsWith("/posts/")||(t+="wp/v2/posts/");let o=`${t}?_embed&per_page=${this.config.postsPerBlock}&page=${this.config.stageID}`;return this.config.contentType==="label"&&!isNaN(parseInt(this.config.labelName,10))&&(o+=`&categories=${this.config.labelName}`),o}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r,l;try{let s=await Je(t);r=s.text,l=s.response}catch(s){return console.error(`mBlox: Failed to fetch WordPress feed: ${s.message}`),{posts:[],totalResults:0}}try{let s=JSON.parse(r),a=Ge(s,l.headers);return $.set(t,{data:a,timestamp:Date.now()}),a}catch(s){throw console.error("mBlox: Failed to parse WordPress JSON.",s),new Error("Invalid JSON response from WordPress feed.")}}},J=class{constructor(t){this.config=t}_buildFeedUrl(){return this.config.siteURL}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r;try{r=(await Je(t)).text}catch(i){return console.error(`mBlox: Failed to fetch RSS feed: ${i.message}`),{posts:[],totalResults:0,feedUrl:""}}let s=new DOMParser().parseFromString(r,"text/xml");if(s.getElementsByTagName("parsererror").length)throw new Error("Failed to parse RSS feed.");let a=Ye(s);return $.set(t,{data:a,timestamp:Date.now()}),a}},$e=class{constructor(t){this.config=t}_buildFeedUrl(){return`https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(this.config.siteURL)}`}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r;try{r=await K(t)}catch(s){return console.error(`mBlox: Failed to fetch YouTube JSONP: ${s.message}`),{posts:[],totalResults:0,feedUrl:""}}let l=ye(r);return $.set(t,{data:l,timestamp:Date.now()}),l}},de=class{constructor(t){this.config=t}_buildFeedUrl(t,o){let r=this.config.siteURL+"feeds/",l=this.config.contentType,s=t||this.config.labelName,a=o||this.config.postsPerBlock;switch(l){case"recent":r+="posts"+(this.config.showImage?"/default":"/summary");break;case"comments":r+="comments"+(this.config.showImage?"/default":"/summary");break;case"related":r+="posts"+(this.config.showImage?"/default":"/summary")+"/-/"+encodeURIComponent(s);break;default:r+="posts"+(this.config.showImage?"/default":"/summary")+"/-/"+encodeURIComponent(s)}return r+=`?alt=json-in-script&start-index=${(this.config.stageID-1)*this.config.postsPerBlock+1}&max-results=${a}`,r}async _fetchCurrentPostLabels(){try{let t=window.config?.bg?.psId,o=t&&window.config?.ps?.[t];if(o&&o.lab&&Array.isArray(o.lab)&&o.lab.length>0)return o.lab}catch{}try{let t=window.location.pathname,o=this.config.siteURL+`feeds/posts/default?alt=json-in-script&path=${t}`,r=await K(o),l=ce(r);if(l.posts&&l.posts.length>0)return l.posts[0].labels||[]}catch{console.warn("mBlox: Failed to fetch current post labels for related posts.")}return[]}async fetch(){if(this.config.contentType==="related"){let t=await this._fetchCurrentPostLabels(),o=[],r=window.location.href.split("#")[0].split("?")[0];if(t.length>0){let l=[...t];for(;o.length<this.config.postsPerBlock&&l.length>0;){let s=Math.floor(Math.random()*l.length),a=l.splice(s,1)[0],i=this.config.postsPerBlock+10,n=this._buildFeedUrl(a,i),c=$.get(n),d;if(c&&Date.now()-c.timestamp<V)d=c.data;else{let p;try{p=await K(n)}catch(u){console.error(`mBlox: Failed to fetch Blogger feed: ${u.message}`);break}d=ce(p),$.set(n,{data:d,timestamp:Date.now()})}let m=d.posts.filter(p=>p.url.split("#")[0].split("?")[0]!==r&&!o.some(h=>h.url===p.url));m.sort(()=>Math.random()-.5),o.push(...m)}}if(o.length===0){let l=this.config.siteURL+"feeds/posts"+(this.config.showImage?"/default":"/summary")+`?alt=json-in-script&max-results=${this.config.postsPerBlock+10}`,s=$.get(l),a;if(s&&Date.now()-s.timestamp<V)a=s.data;else{let n;try{n=await K(l)}catch(c){return console.error(`mBlox: Failed to fetch Blogger fallback feed: ${c.message}`),{posts:[],totalResults:0,feedUrl:""}}a=ce(n),$.set(l,{data:a,timestamp:Date.now()})}let i=a.posts.filter(n=>n.url.split("#")[0].split("?")[0]!==r);i.sort(()=>Math.random()-.5),o.push(...i)}return{posts:o.slice(0,this.config.postsPerBlock),totalResults:o.length,feedUrl:""}}else{let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;let r;try{r=await K(t)}catch(s){return console.error(`mBlox: Failed to fetch Blogger feed: ${s.message}`),{posts:[],totalResults:0,feedUrl:""}}let l=ce(r);return $.set(t,{data:l,timestamp:Date.now()}),l}}},we=class{constructor(t){this.config=t}_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith(".json")||(t+=".json"),t}async fetch(){let t=this._buildFeedUrl(),o=$.get(t);if(o&&Date.now()-o.timestamp<V)return o.data;try{let r=await window.fetch(t);if(!r.ok)throw new Error("Native fetch failed");let l=await r.text(),s=JSON.parse(l),a=Qe(s);return $.set(t,{data:a,timestamp:Date.now()}),a}catch{console.warn("mBlox: Reddit native fetch failed (CORS/403). Falling back to rss2json...");let l=t.replace(".json",".rss"),s=`https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(l)}`,a;try{a=await K(s)}catch(n){return console.error(`mBlox: Reddit fallback via RSS2JSON failed: ${n.message}`),{posts:[],totalResults:0,feedUrl:""}}let i=ye(a);return i.posts.forEach(n=>{n.authorName&&n.authorName.startsWith("/u/")&&(n.authorUri=`https://www.reddit.com${n.authorName}`)}),$.set(t,{data:i,timestamp:Date.now()}),i}}},Se=class extends J{_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith("/rss")||(t+="/rss"),t}},Te=class extends J{_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith(".rss")||(t+=".rss"),t}};function Ze(e){let t=e.siteURL.toLowerCase(),o=t.split("?")[0];return t.includes("reddit.com")?new we(e):t.includes("tumblr.com")?new Se(e):t.includes("mastodon.social")||t.includes("bsky.app")?new Te(e):t.includes("deviantart.com")?new J(e):t.includes("/wp-json")?new Ce(e):t.includes("youtube.com")?new $e(e):o.endsWith(".xml")||t.includes("/feed")||o.endsWith(".rss")||o.endsWith("/rss")?new J(e):new de(e)}x();function Xe(e,t){let o={...e};if((o.postsPerBlock<=1||o.blockType==="l")&&(o.isCarousel=!1),o.isCarousel){let r=Math.max(1,Math.min(6,o.columnCount)),l=Ie(window.innerWidth),s=pe[r]||pe[6];o.actualColumnCount=s[l],o.blockRows>Math.ceil(t/o.actualColumnCount)&&(o.blockRows=Math.ceil(t/o.actualColumnCount)),t<=o.actualColumnCount*o.blockRows&&(o.isCarousel=!1,o.containsNavigation=!0)}return o}function Tt(e){if(e.sectionHeight||(e.blockType==="v"?e.sectionHeight="100vh":e.blockType==="s"?e.sectionHeight="70vh":e.sectionHeight="m"),e.articleHeight=e.sectionHeight==="m"?"":`height:${e.sectionHeight}!important;`,e.isImageFixed===null&&(e.isImageFixed=e.blockType==="s"||e.blockType==="v"),e.blurImage===null){let t=["s","l","t","p","q"];e.blurImage=e.showHeader&&!t.includes(e.blockType)}return e.textVerticalAlign||(e.blockType==="v"?e.textVerticalAlign="middle":e.blockType==="l"?e.textVerticalAlign="bottom":e.textVerticalAlign="overlay"),e.ctaAlign||(e.ctaAlign=e.blockType==="v"?"center":"right"),e.textHAlign||(e.textHAlign=e.blockType==="v"?"center":"left"),e.columnCount===null||typeof e.columnCount>"u"?e.columnCount=Ae[e.blockType]||3:e.columnCount=parseInt(e.columnCount,10),e}function et(e){let t={},o=e.querySelector('script[type="application/json"]');if(o)try{let I=o.textContent||"";I=I.replace(/(?:\/\/\s*)?<!\[CDATA\[/g,"").replace(/(?:\/\/\s*)?\]\]>/g,"").trim(),t=JSON.parse(I)}catch(I){console.error("mBlox: Failed to parse embedded JSON configuration.",I)}let r=(I,q,ie)=>{if(t[q]!==void 0)return t[q];let E=e.getAttribute(`data-${I}`);return E!==null?E:ie},l=(I,q,ie)=>{if(t[q]!==void 0)return!!t[q];let E=e.getAttribute(`data-${I}`);return E!==null?E.toLowerCase()==="true":ie},s=(I,q,ie)=>{if(t[q]!==void 0)return parseInt(t[q],10);let E=e.getAttribute(`data-${I}`);return E!==null?parseInt(E,10):ie},a=r("label","label","Label Name missing"),i=String(r("contentType","contentType","recent")).toLowerCase(),n=r("feed","feed","/");!n||n==="/"?n=window.location.origin+"/":(/^https?:\/\//i.test(n)||(n.startsWith("/")?n=window.location.origin+n:n="https://"+n),!n.endsWith("/")&&!n.match(/\.(xml|rss|json)$/i)&&!n.includes("?")&&(n+="/"));let c=r("title","title",""),d=r("description","description",""),m=r("type","type","v-ih"),p=String(m).toLowerCase(),u=p.substring(0,1),h=p.substring(1),g=String(m).substring(1),b=String(r("theme","theme","auto")).toLowerCase(),w=h.includes("h"),S=h.includes("i"),j=h.includes("s"),le=h.includes("a"),P=h.includes("d"),z=h.includes("o"),F=h.includes("l"),W=g.includes("D")?"long":"short",G=s("s","s",1),ae=!e.hasAttribute("data-s")&&t.s===void 0,se=s("posts","posts",3),ge=["light","dark","auto"].includes(b)?b:"auto",Y=String(r("palette","palette","surface")).toLowerCase(),D=Y;fe[D]||(D="surface");let bt=fe[D],Lt=String(r("textVAlign","textVAlign","")).toLowerCase(),Ve=String(r("iBlur","iBlur","")).toLowerCase(),ze=String(r("iFix","iFix","")).toLowerCase(),Fe=e.closest(".widget"),gt=(Fe?Fe.getAttribute("ID"):c+p+a).replace(/[\s#.&?,[\]]/g,"-"),vt=W==="long"?{year:"numeric",month:"short",day:"numeric"}:{month:"short",day:"numeric"},yt=P?new Intl.DateTimeFormat("en-US",vt):null,We=r("cols","cols",null),Ct=r("rows","rows","1"),$t=String(r("overlay-items","overlayItems","vcasb")).toLowerCase().split(""),ve={labelName:a,contentType:i,siteURL:n,mBlockTitle:c,mBlockDescription:d,blockType:u,showHeader:w,showImage:S,showSnippet:j,showAuthor:le,showDate:P,showOverlay:z,showLabels:F,columnCount:We!==null?parseInt(We,10):null,blockRows:parseInt(Ct,10),isCarousel:l("isCarousel","isCarousel",!1),sectionHeight:r("iHeight","iHeight",null),articleHeight:"",blurImage:Ve==="true"||t.iBlur===!0?!0:Ve==="false"||t.iBlur===!1?!1:null,palette:bt,gutterSize:r("gutter","gutter",u=="v"?0:3),textVerticalAlign:Lt,cornerStyle:String(r("corner","corner","")).toLowerCase()=="sharp"?" rounded-none":" rounded-3xl",aspectRatio:` ${Be[String(r("ar","ar","1/1")).replace("x","/").toLowerCase()]||"aspect-square"}`,isImageFixed:ze==="true"||t.iFix===!0?!0:ze==="false"||t.iFix===!1?!1:null,hasRoundedBorder:l("iBorder","iBorder",!1),snippetSize:s("snippetSize","snippetSize",150),callToAction:r("CTAText","CTAText",""),ctaAlign:r("ctaAlign","ctaAlign",""),textHAlign:r("textHAlign","textHAlign",""),moreText:r("moreText","moreText",""),stageID:G,firstInstance:ae,postsPerBlock:se,mBlockID:gt,dateFormatter:yt,dateStyle:W,paletteName:Y,mBloxTheme:ge,interactionClasses:Y==="colorful"?`transition-all duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${u==="p"||u==="q"?"":"hover:bg-tertiary hover:text-on-tertiary "}hover:scale-[1.02] hover:opacity-100 overflow-hidden no-underline font-bold`:`transition-all duration-300 ease-[cubic-bezier(0.2,0,0,1)] hover:scale-[1.02] ${u==="p"||u==="q"?"":"hover:bg-surface-variant "}overflow-hidden no-underline font-bold`,containsNavigation:!1,actualColumnCount:0,overlayItems:$t};return ve.layout=xe[ve.gutterSize*2]||xe[6],Tt(ve)}x();function tt(e){let t=Array.from(e.querySelectorAll(".m-blox-image-to-load"));if(!t.length)return;let o=new IntersectionObserver((r,l)=>{r.forEach(s=>{if(!s.isIntersecting)return;let a=s.target,i=a.tagName==="FIGURE",n=a.getAttribute("data-is-fixed")==="true",c=a.getAttribute("data-img-high"),d=c,m=window.devicePixelRatio||1,p;if(n?p=Math.max(window.innerWidth,window.innerHeight)*m:p=a.getBoundingClientRect().width*m,p>0&&c&&c.includes("/s1600")){let u=Math.min(1600,Math.max(100,Math.ceil(p/100)*100));d=c.replace("/s1600",`/s${u}`)}if(i){let u=new Image;u.onload=()=>{a.style.backgroundImage=`url("${d}")`,n&&(a.style.backgroundAttachment="fixed",a.style.backgroundPosition="center center",a.style.backgroundSize="cover")},u.onerror=()=>{Promise.resolve().then(()=>(x(),ke)).then(({noImg:h})=>{a.style.backgroundImage=`url("${h}")`,a.setAttribute("data-img-high",h)})},u.src=d}else a.onerror=()=>{Promise.resolve().then(()=>(x(),ke)).then(({noImg:u})=>{a.src=u,a.setAttribute("data-img-high",u),a.onerror=null})},a.src=d;l.unobserve(a)})},{rootMargin:"0px 0px 200px 0px"});t.forEach(r=>{o.observe(r)})}var At=`<svg xmlns="http://www.w3.org/2000/svg" style="display:none;" id="mblox-svg-sprite">
|
|
3
3
|
<symbol id="icon-bookmark-add" viewBox="0 -960 960 960" fill="currentColor">
|
|
4
4
|
<path d="M480-388q51-47 82.5-77.5T611-518t23-38.5 6-35.5q0-36-26-62t-62-26q-21 0-40.5 8.5T480-648q-12-15-31-23.5t-41-8.5q-36 0-62 26t-26 62q0 19 5.5 35t22.5 38 48 52.5 84 78.5M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240z"/>
|
|
5
5
|
</symbol>
|
|
@@ -33,19 +33,19 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
33
33
|
<symbol id="icon-youtube" viewBox="0 0 16 16" fill="currentColor">
|
|
34
34
|
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z"/>
|
|
35
35
|
</symbol>
|
|
36
|
-
</svg>`;function rt(){typeof document<"u"&&!document.getElementById("mblox-svg-sprite")&&document.body.insertAdjacentHTML("afterbegin",At)}x();function ot(e,t){if(!e||e.length===0)return"";let o=
|
|
37
|
-
${e.moreText} <svg class="inline-block align-text-bottom" fill="currentColor" height="1.2em" viewBox="0 0 16 16" width="1.2em" xmlns="http://www.w3.org/2000/svg"><use href="#icon-caret-right"></use></svg></a>`),`<div class="st${e.stageID} mblox-footer w-full p-8 @lg:px-12 text-right">${o}</div>`}function dt(e,t){let o=t.blockType==="v"?"":" px-8 @lg:px-12";return`<div id="carousel-${t.mBlockID}-st${t.stageID}" class="${t.blockType==="s"?"sFeature ":""}relative${o}">${e}</div>`}function ut(e,t,o){if(!t.isCarousel)return"";let r=e?e instanceof HTMLElement?e.outerHTML:e:"",l=o&&o.posts?o.posts.length:0,s=Math.ceil(l/(t.blockRows||1)),a="";if(s>1){let
|
|
36
|
+
</svg>`;function rt(){typeof document<"u"&&!document.getElementById("mblox-svg-sprite")&&document.body.insertAdjacentHTML("afterbegin",At)}x();function ot(e,t){if(!e||e.length===0)return"";let o=U[t.columnCount]||U[6];return`<div class="${t.layout.gap} grid ${o}">${e.join("")}</div>`}x();function lt(e,t){if(!e||e.length===0)return"";let o=he[t.columnCount]||he[6],l={1:"grid-rows-1",2:"grid-rows-2",3:"grid-rows-3",4:"grid-rows-4"}[t.blockRows]||"grid-rows-1",s=t.blockType==="v"?"":" pb-8";return`<div class="grid grid-flow-col ${l} ${o} overflow-x-auto snap-x snap-mandatory scroll-smooth gap-4 py-4 -my-4 ${s} [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]">${e.join("")}</div>`}x();function at(e,t){if(!e||e.length===0)return"";let o={2:"@md:col-span-1",3:"@md:col-span-2",4:"@sm:col-span-1 @md:col-span-2 @lg:col-span-3",5:"@sm:col-span-2 @md:col-span-3 @xl:col-span-4",6:"@sm:col-span-3 @lg:col-span-4 @xl:col-span-5"},r=t.columnCount,l=U[r]||U[6],s="";if(e.length>1){t.showHeader&&r--;let a=U[r]||U[6],i=o[t.columnCount]||"col-span-1";s=`<div class="${t.layout.gap} ${i} px-0 grid ${a}">${e.slice(1).join("")}</div>`}return`<div class="${t.layout.gap} col flex-grow-1 grid ${l}">${e[0]}${s}</div>`}function st(e){return e.mBlockTitle?`<h4 class="text-headline-lg font-bold ${e.palette.text} m-0">${e.mBlockTitle}</h4>`:""}function nt(e){return e.mBlockDescription?`<p class="pb-3 ${e.palette.text} opacity-75 m-0">${e.mBlockDescription}</p>`:""}function it(e){return e.mBlockTitle?`<div class="p-8 @lg:px-12">${st(e)}${nt(e)}</div>`:""}x();function ct(e,t){if(e.moreText===""&&e.blockType==="v")return"";let o="";return e.moreText!==""&&t.feedUrl&&(o=`<a class="inline-block border-0 font-bold no-underline transition-opacity duration-300 opacity-75 hover:opacity-100 ${e.palette.text}" href="${e.siteURL}search?max-results=9" title="View all">
|
|
37
|
+
${e.moreText} <svg class="inline-block align-text-bottom" fill="currentColor" height="1.2em" viewBox="0 0 16 16" width="1.2em" xmlns="http://www.w3.org/2000/svg"><use href="#icon-caret-right"></use></svg></a>`),`<div class="st${e.stageID} mblox-footer w-full p-8 @lg:px-12 text-right">${o}</div>`}function dt(e,t){let o=t.blockType==="v"?"":" px-8 @lg:px-12";return`<div id="carousel-${t.mBlockID}-st${t.stageID}" class="${t.blockType==="s"?"sFeature ":""}relative${o}">${e}</div>`}function ut(e,t,o){if(!t.isCarousel)return"";let r=e?e instanceof HTMLElement?e.outerHTML:e:"",l=o&&o.posts?o.posts.length:0,s=Math.ceil(l/(t.blockRows||1)),a="";if(s>1){let i=t.blockType==="v"?"bottom-12":"bottom-3",n=Array.from({length:s},(c,d)=>`<button type="button" class="carousel-dot pointer-events-auto w-2 h-2 rounded-full bg-current ${t.palette.text} opacity-30 hover:opacity-100 transition-opacity aria-[current='true']:opacity-100" data-index="${d}" aria-label="Slide ${d+1}"></button>`).join("");a=`<div class="carousel-indicators flex justify-center gap-2 mt-2 absolute ${i} left-0 right-0 z-10">${n}</div>`}return`${r}${a}`}function mt(e,t){if(!t.isCarousel)return;let o=e.querySelector(".overflow-x-auto"),r=e.querySelector(".js-carousel-prev"),l=e.querySelector(".js-carousel-next");if(!o)return;r&&r.addEventListener("click",()=>{o.scrollBy({left:-o.clientWidth,behavior:"smooth"})}),l&&l.addEventListener("click",()=>{o.scrollBy({left:o.clientWidth,behavior:"smooth"})});let s=e.querySelectorAll(".carousel-dot");if(s.length>0&&o){s[0]&&s[0].setAttribute("aria-current","true");let c=()=>{let d=o.scrollLeft,m=o.scrollWidth/s.length,p=Math.min(s.length-1,Math.round(d/m));s.forEach((u,h)=>{h===p?u.setAttribute("aria-current","true"):u.removeAttribute("aria-current")})};o.addEventListener("scroll",c,{passive:!0}),s.forEach(d=>{d.addEventListener("click",()=>{let m=parseInt(d.getAttribute("data-index"),10),p=o.scrollWidth/s.length;o.scrollTo({left:m*p,behavior:"smooth"})})})}let a,i=()=>{a=setInterval(()=>{o.scrollLeft+o.clientWidth>=o.scrollWidth-5?o.scrollTo({left:0,behavior:"smooth"}):o.scrollBy({left:o.clientWidth,behavior:"smooth"})},4e3)},n=()=>{a&&clearInterval(a)};i(),e.addEventListener("mouseenter",n),e.addEventListener("mouseleave",i)}x();function pt(e,t){let r=`absolute top-0 ${e.isCarousel&&e.blockType!=="v"?"bottom-8":"bottom-0"} z-10 flex items-center justify-center w-8 cursor-pointer opacity-70 hover:opacity-100 transition-opacity ${e.palette.text} hover:backdrop-blur-xl`,l=e.isCarousel,s=l?"js-carousel-prev":"nav-prev",a=l?"js-carousel-next":"nav-next",i=`<button class="${r} left-0 ${s}" type="button" title="Previous" aria-label="Previous">
|
|
38
38
|
<svg width="1.5em" height="1.5em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><use href="#icon-caret-left"></use></svg>
|
|
39
|
-
</button>`,
|
|
39
|
+
</button>`,n=`<button class="${r} right-0 ${a}" title="Next" type="button" aria-label="Next">
|
|
40
40
|
<svg width="1.5em" height="1.5em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><use href="#icon-caret-right"></use></svg>
|
|
41
|
-
</button>`;if(l)return`${
|
|
41
|
+
</button>`;if(l)return`${i}${n}`;let c=t?Math.ceil(t.totalResults/e.postsPerBlock):1;return[e.stageID>1?i:"",e.stageID<c?n:""].join("")}x();function H(e,t=160){if(!e)return;e.classList.remove("d-none","hidden"),e.style.display="";let o=e.animate([{opacity:0},{opacity:1}],{duration:t,easing:"ease-out",fill:"forwards"});o.onfinish=()=>{e.style.opacity="1"}}function M(e,t=160){if(!e)return;let o=e.animate([{opacity:1},{opacity:0}],{duration:t,easing:"ease-in",fill:"forwards"});o.onfinish=()=>{e.style.opacity="0",e.style.display="none"}}function _e(e){if(e.videoId)return e.videoId;if(e.thumbnailUrl&&(e.thumbnailUrl.includes("ytimg.com/vi/")||e.thumbnailUrl.includes("youtube.com/vi/"))){let t=e.thumbnailUrl.match(/\/vi\/([a-zA-Z0-9_-]{11})/);if(t&&t[1])return t[1]}if(e.content){let t=e.content.match(/(?:youtube\.com\/embed\/|youtu\.be\/|youtube\.com\/v\/)([a-zA-Z0-9_-]{11})/);if(t&&t[1])return t[1]}return"noVideo"}function be(e){return!e||e==="noVideo"?"":'<svg class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-12 h-12 text-on-error drop-shadow-md z-10 pointer-events-none" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 16 16"><use href="#icon-youtube"></use></svg>'}function ht(e){return!e||e==="noVideo"?"":'<svg class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-16 h-16 text-on-error drop-shadow-lg z-10 pointer-events-none" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 16 16"><use href="#icon-youtube"></use></svg>'}function Oe(e,t){return!e||e==="noVideo"?"":`<iframe class="w-full h-full" src="${`https://www.youtube-nocookie.com/embed/${e}?autoplay=1`}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture;" width="100%" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" style="${t.articleHeight}"></iframe>`}var Re={};k(Re,{render:()=>Bt});x();function ft(e,t){if(!t.showOverlay)return"";let o="";t.overlayItems.includes("v")&&e.viewCount&&e.viewCount>0&&(o=`
|
|
42
42
|
<div class="flex items-center gap-1 px-2 h-6 rounded-md ${t.palette.glass} ${t.palette.text} backdrop-blur-md ${t.palette.hoverBg||"hover:bg-tertiary"} ${t.palette.hoverText||"hover:text-on-tertiary"} transition-colors font-semibold">
|
|
43
43
|
<svg aria-hidden="true" class="w-4 h-4"><use href="#icon-eye"></use></svg>
|
|
44
44
|
<span class="text-[0.625rem]">${e.viewCount}</span>
|
|
45
|
-
</div>`);let r="";if(t.overlayItems.includes("c")){let
|
|
46
|
-
<a aria-label="Comments" class="relative px-2 h-6 rounded-md ${t.palette.glass} ${t.palette.text} backdrop-blur-md flex items-center justify-center gap-1 ${t.palette.hoverBg||"hover:bg-tertiary"} ${t.palette.hoverText||"hover:text-on-tertiary"} transition-colors font-semibold pointer-events-auto" href="${
|
|
45
|
+
</div>`);let r="";if(t.overlayItems.includes("c")){let i=e.commentsUrl||e.url,n=e.commentCount&&e.commentCount>0?`<span class="text-[0.625rem]">${e.commentCount}</span>`:"";r=`
|
|
46
|
+
<a aria-label="Comments" class="relative px-2 h-6 rounded-md ${t.palette.glass} ${t.palette.text} backdrop-blur-md flex items-center justify-center gap-1 ${t.palette.hoverBg||"hover:bg-tertiary"} ${t.palette.hoverText||"hover:text-on-tertiary"} transition-colors font-semibold pointer-events-auto" href="${i}">
|
|
47
47
|
<svg aria-hidden="true" class="w-4 h-4"><use href="#icon-comment-bubble"></use></svg>
|
|
48
|
-
${
|
|
48
|
+
${n}
|
|
49
49
|
</a>`}let l="";t.overlayItems.includes("b")&&(l=`
|
|
50
50
|
<button aria-label="Save" class="group bm-button relative h-6 rounded-md ${t.palette.glass} ${t.palette.text} backdrop-blur-md flex items-center justify-center ${t.palette.hoverBg||"hover:bg-tertiary"} ${t.palette.hoverText||"hover:text-on-tertiary"} transition-all duration-300 ease-in-out pointer-events-auto" data-bm-title="${e.title.replace(/"/g,""")}" data-bm-url="${e.url}" data-bm-image="${e.thumbnailUrl||""}" type="button">
|
|
51
51
|
<span class="bm-text overflow-hidden whitespace-nowrap text-[11px] font-medium transition-all duration-300 max-w-0 opacity-0 group-hover:max-w-[60px] group-hover:opacity-100 group-hover:pl-2.5">Save</span>
|
|
@@ -53,9 +53,9 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
53
53
|
<svg aria-hidden="true" class="w-4 h-4 bm-add-icon group-[.added]:hidden"><use href="#icon-bookmark-add"></use></svg>
|
|
54
54
|
<svg aria-hidden="true" class="w-4 h-4 bm-added-icon hidden group-[.added]:block"><use href="#icon-bookmark-added"></use></svg>
|
|
55
55
|
</div>
|
|
56
|
-
</button>`);let s="";if(t.overlayItems.includes("a")&&e.authorName&&e.authorName!=="Unknown"&&e.authorName!=="Anonymous"){let
|
|
57
|
-
${
|
|
58
|
-
<span>${e.authorName}</span>${
|
|
56
|
+
</button>`);let s="";if(t.overlayItems.includes("a")&&e.authorName&&e.authorName!=="Unknown"&&e.authorName!=="Anonymous"){let i='<svg aria-hidden="true" class="w-4 h-4 text-primary"><use href="#icon-verified"></use></svg>',n="";e.authorImage&&!e.authorImage.includes("blogblog.com")&&(n=`<img src="${e.authorImage.startsWith("//")?`https:${e.authorImage}`:e.authorImage}" alt="${e.authorName}" class="w-4 h-4 rounded-full object-cover">`);let c=`
|
|
57
|
+
${n}
|
|
58
|
+
<span>${e.authorName}</span>${i}
|
|
59
59
|
`;e.authorUri?s=`
|
|
60
60
|
<a href="${e.authorUri}" class="flex items-center gap-1 px-2 h-6 rounded-md ${t.palette.glass} ${t.palette.text} backdrop-blur-md ${t.palette.hoverBg||"hover:bg-tertiary"} ${t.palette.hoverText||"hover:text-on-tertiary"} text-[0.625rem] font-semibold transition-colors pointer-events-auto">
|
|
61
61
|
${c}
|
|
@@ -82,20 +82,20 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
82
82
|
<div class="flex items-center gap-2 pointer-events-auto">
|
|
83
83
|
${a}
|
|
84
84
|
</div>
|
|
85
|
-
</div>`}function
|
|
85
|
+
</div>`}function N(e,t,o,r){if(!o.showImage)return{imageCode:"",showcaseImageCode:"",videoThumbnailURL:"",highResImageURL:""};let{postSnippet:l,videoID:s,postTitle:a,thumbnailUrl:i,authorImage:n,post:c}=r,d=i||"",m=d||o.imageURL||O;if(!m)if(o.contentType=="comments")n&&!n.includes("blogblog.com")?m=n:m=O;else{let D=new DOMParser().parseFromString(l||"","text/html").querySelector("img");m=D?D.getAttribute("src"):O}d||(d=m);let p=m;s&&s!=="noVideo"?p=`https://i.ytimg.com/vi/${s}/maxresdefault.jpg`:o.isBloggerFeed&&(p=p.replace(/\/s\d+(-[a-z]\d+)*(-c)?/,"/s1600"));let h={s:{bs:[o.aspectRatio.trim()],figure:"w-full h-full flex"},p:{bs:[o.aspectRatio.trim()],figure:"w-full h-full flex"},m:{style:"object-fit:cover !important;height:3rem!important;width:3rem!important;",bs:["rounded-full","m-2"],figure:"shrink-0 flex items-center justify-center"},q:{style:"object-fit:cover !important;height:6rem!important;width:6rem;",bs:["rounded-full","mx-auto","mt-6"],figure:"w-full h-full flex"},t:{bs:["h-full","object-cover"],figure:"w-1/3 shrink-0 h-full flex items-center justify-center"},v:{bs:["w-full","h-full","object-cover"],figure:"w-full h-full flex"},l:{bs:[o.aspectRatio.trim()],figure:"w-full h-full flex"},c:{bs:[o.aspectRatio.trim()],figure:"w-full h-full flex"},g:{bs:[o.aspectRatio.trim()],figure:"w-full h-full flex"}}[e]||{bs:[],figure:"w-full h-full flex"},g=h.style||"object-fit:cover !important;height:100% !important;",b=h.bs.length>0?[...h.bs]:["w-full","h-auto"];e!=="m"&&e!=="q"&&e!=="t"&&e!=="v"&&b.unshift("w-full","h-auto");let w=h.figure,S="",j="";if(e==="s"){S=`data-toggle="tooltip" data-vidid="${s}"`;let Y=ht(s),D=o.cornerStyle===" rounded"?" rounded-t-3xl":o.cornerStyle;t===0&&(j=`<figure class="m-0 ${b.join(" ")} ${o.aspectRatio} ${D} m-blox-image-to-load relative cursor-pointer" data-img-high="${p}" data-is-fixed="true" style="${o.articleHeight}" role="img" loading="lazy" title="${a}" aria-label="${a} image" ${S}>${Y}</figure>`)}o.blurImage&&o.contentType!=="comments"&&b.push("blur-sm");let le="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",z=o.blockType==="s"||o.blockType==="l"?t===0&&o.isImageFixed:o.isImageFixed,F=o.isBloggerFeed?" m-blox-image-to-load":"",W=o.isBloggerFeed?le:m,G=be(s),ae=`w-full ${b.join(" ")} ${F}`.replace(/\s+/g," "),se=`m-0 relative ${w} ${b.join(" ")} ${F}`.replace(/\s+/g," "),ne=c?ft(c,o):"";return{imageCode:z?`<figure class="${se} group" data-img-high="${p}" data-is-fixed="true" style="${o.articleHeight}" role="img" loading="lazy" aria-label="${a} image"${S}>${ne}${G}</figure>`:`<figure class="m-0 relative ${w} group"><img class="${ae}" style="${g}" src="${W}" data-img-high="${p}" alt="${a} image" loading="lazy" title="${a}" ${S}/>${ne}${G}</figure>`,showcaseImageCode:j,videoThumbnailURL:d,highResImageURL:p}}x();function Z(e,t,o,r){if(!t.callToAction||e==="g")return"";let l=t.ctaAlign||"right",s="";e==="t"||e==="c"||e==="m"||e==="p"||e==="q"?l==="left"?s="mt-auto self-start":l==="center"?s="mt-auto self-center":s="mt-auto self-end":e==="v"?l==="left"?s="mx-0 md:mx-10 mt-8 self-start":l==="center"?s="mx-0 md:mx-10 mt-8 self-center":s="mx-0 md:mx-10 mt-8 self-end":(e==="s"||e==="l")&&(s="");let a=t.cornerStyle===" rounded-none",n=`js-cta-link inline-block text-label-lg font-bold no-underline px-4 py-2 hover:opacity-100 transition-opacity opacity-75 ${`${t.palette.bg} ${t.palette.text} ${t.palette.hoverBg} ${t.palette.hoverText}`} ${a?"rounded-none":"rounded-full"}`;return`<a href="${r}" class="${n} ${s} after:absolute after:inset-0 z-10" aria-label="View ${o.replace(/"/g,""")}">${t.callToAction}</a>`}x();var xt={q:e=>`<figcaption class="text-label-md">- ${e}</figcaption>`,m:(e,t,o)=>`<span class="text-label-md ${o.containerText}" rel="author">${e}</span>`};function Le(e,t,o,r){if(!t.showAuthor)return"";let l=o==="Anonymous"||o==="Unknown"||!r?"":r;return xt[e]?xt[e](o,l,t.palette):l?`<span class="text-label-md hover:underline z-20 relative cursor-pointer" rel="author" data-href="${l}">${o}</span>`:`<span class="text-label-md" rel="author">${o}</span>`}x();function X(e,t,o,r){if(!t.showDate)return"";let l=new Date(o),s=t.dateFormatter.format(l);if(e==="m")return`<span class="text-label-md font-light">${t.showAuthor?" • ":""} ${s}</span>`;let a=!1;if(r&&new Date(r).getTime()-l.getTime()>1440*60*1e3&&(a=!0),a){let i=t.palette.bg||"bg-surface-variant",n=t.palette.text||"text-on-surface-variant";return`<div class="flex items-center gap-2"><span class="${i} ${n} px-2 py-0.5 rounded-sm text-label-sm font-bold uppercase tracking-wider">Updated</span><span class="text-label-md font-light">${s}</span></div>`}else return`<span class="text-label-md font-light">Published ${s}</span>`}x();var It={q:(e,t,o,r)=>`<svg class="float-left ${r.containerText}" xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 16 16"><use href="#icon-quote"></use></svg><blockquote class="${r.containerText} text-left mt-2 ml-6 text-headline-sm italic">${o?e:`<a href="${t}" class="after:absolute after:inset-0 z-10" aria-label="Read more about ${e.replace(/"/g,""")}">${e}</a>`}</blockquote>`,v:(e,t,o)=>`<h3 class="line-clamp-2 text-display-sm font-bold mx-0 md:mx-10 opacity-75">${o?e:`<a href="${t}" class="after:absolute after:inset-0 z-10" aria-label="Read more about ${e.replace(/"/g,""")}">${e}</a>`}</h3>`,m:(e,t,o)=>`<span class="line-clamp-2 block my-2 text-title-md">"${o?e:`<a href="${t}" class="after:absolute after:inset-0 z-10" aria-label="Read more about ${e.replace(/"/g,""")}">${e}</a>`}"</span>`};function ee(e,t,o,r){if(!t.showHeader)return"";let l=!!t.callToAction;return(It[e]||((a,i,n)=>`<h5 class="line-clamp-2 text-title-lg font-bold mb-2">${n?a:`<a href="${i}" class="after:absolute after:inset-0 z-10" aria-label="Read more about ${a.replace(/"/g,""")}">${a}</a>`}</h5>`))(o,r,l,t.palette)}x();function te(e,t,o,r){if(!t.showSnippet||!o)return"";let s=new DOMParser().parseFromString(o,"text/html").body.textContent||"";return s.length>t.snippetSize&&(s=s.substring(0,t.snippetSize)+"..."),!t.showHeader&&!t.showImage&&!t.callToAction&&!t.showLabels&&!t.showDate?`<a href="${r}" class="after:absolute after:inset-0 z-10 block line-clamp-3 list-none text-body-md font-normal opacity-75 ${e==="v"?"py-6 mx-0 md:mx-10":""}" aria-label="Read more">${s}</a>`:`<div class="line-clamp-3 list-none text-body-md font-normal opacity-75 ${e==="v"?"py-6 block mx-0 md:mx-10":""}">${s}</div>`}function re(e,t,o){if(!e.showLabels||!t||t.length===0)return"";let r=[...t].sort(()=>.5-Math.random()).slice(0,2),l="/search/label/";if(o&&o!=="/")try{let a=new URL(o),i=o.toLowerCase();i.includes("youtube.com")?l="https://www.youtube.com/hashtag/":i.includes("/wp-json")?l=`${a.origin}/search/`:i.includes("tumblr.com")?l=`${a.origin}/tagged/`:i.includes("mastodon.social")?l=`${a.origin}/tags/`:i.includes("bsky.app")?l="https://bsky.app/search?q=":i.includes("deviantart.com")?l="https://www.deviantart.com/tag/":i.includes("reddit.com")?l="https://www.reddit.com/search/?q=":l=`${a.origin}/search/label/`}catch{l="/search/label/"}return`
|
|
86
86
|
<div class="flex items-center gap-2 mb-3 relative z-50 pointer-events-auto">
|
|
87
87
|
<div class="flex flex-wrap items-center gap-2">
|
|
88
|
-
${r.map(a=>{let
|
|
88
|
+
${r.map(a=>{let i=encodeURIComponent(a),n=a.startsWith("#")?a.replace(/\s+/g,""):`#${a.replace(/\s+/g,"")}`;return`<a aria-label="${a.replace(/"/g,""")}" class="relative z-50 pointer-events-auto inline-flex items-center justify-center rounded-full transition-opacity duration-300 ease-[--ease-m3-emphasized] cursor-pointer ${e.palette.bg} ${e.palette.text} ${e.palette.hoverBg} ${e.palette.hoverText} opacity-75 hover:opacity-100 h-6 px-3 text-label-md no-underline" href="${l}${i}"><span>${n}</span></a>`}).join("")}
|
|
89
89
|
</div>
|
|
90
|
-
</div>`}x();function Bt(e,t,o){let r="v",l=Le(r,o,e.authorName,e.authorUri),s=X(r,o,e.publishedDate,e.updatedDate),a=ee(r,o,e.title,e.url),
|
|
90
|
+
</div>`}x();function Bt(e,t,o){let r="v",l=Le(r,o,e.authorName,e.authorUri),s=X(r,o,e.publishedDate,e.updatedDate),a=ee(r,o,e.title,e.url),i=te(r,o,e.content,e.url),n=Z(r,o,e.title,e.url),c=re(o,e.labels,o.siteURL),{imageCode:d}=N(r,t,o,{postSnippet:e.content,videoID:e.videoId,postTitle:e.title,thumbnailUrl:e.thumbnailUrl,authorImage:e.authorImage,post:e}),p=!!(l||s||a||i||n||c)?`
|
|
91
91
|
<div class="${o.palette.containerGlass} backdrop-blur-xl ${o.palette.containerText} p-2 @xs:p-4 @sm:p-8 @md:p-12 absolute z-10 flex flex-col justify-center items-center ${{top:`w-3/4 left-1/2 -translate-x-1/2 top-8 ${o.cornerStyle===" rounded-none"||o.textVerticalAlign==="overlay"?" rounded-none":" rounded-3xl"}`,middle:`w-3/4 left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 ${o.cornerStyle===" rounded-none"||o.textVerticalAlign==="overlay"?" rounded-none":" rounded-3xl"}`,bottom:`w-3/4 left-1/2 -translate-x-1/2 bottom-8 ${o.cornerStyle===" rounded-none"||o.textVerticalAlign==="overlay"?" rounded-none":" rounded-3xl"}`,overlay:"w-full h-full inset-0 rounded-none"}[o.textVerticalAlign]||`w-3/4 left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 ${o.cornerStyle===" rounded-none"||o.textVerticalAlign==="overlay"?" rounded-none":" rounded-3xl"}`}">
|
|
92
92
|
${l}
|
|
93
93
|
<div class="flex flex-wrap items-center justify-center gap-2">${s?`<div class="mb-3">${s}</div>`:""}${c}</div>
|
|
94
94
|
${a}
|
|
95
|
-
${n}
|
|
96
95
|
${i}
|
|
96
|
+
${n}
|
|
97
97
|
</div>
|
|
98
|
-
`:"",u=["relative","block","w-full","rounded-none","text-"+o.textHAlign,"h-full",o.interactionClasses].filter(Boolean).join(" "),h=o.articleHeight?` style="${o.articleHeight.replace(";","")}"`:"",g="@container col-span-1 inline-flex w-full relative",b=o.showImage?d:"";return!o.showHeader&&!o.callToAction&&(b=`<a href="${e.url}" class="absolute inset-0 z-10" aria-label="View ${e.title.replace(/"/g,""")}"></a>${d}`),`<article class="${g}"${h} role="article"><div class="${u}">${b}${p}</div></article>`}var Ue={};
|
|
98
|
+
`:"",u=["relative","block","w-full","rounded-none","text-"+o.textHAlign,"h-full",o.interactionClasses].filter(Boolean).join(" "),h=o.articleHeight?` style="${o.articleHeight.replace(";","")}"`:"",g="@container col-span-1 inline-flex w-full relative",b=o.showImage?d:"";return!o.showHeader&&!o.callToAction&&(b=`<a href="${e.url}" class="absolute inset-0 z-10" aria-label="View ${e.title.replace(/"/g,""")}"></a>${d}`),`<article class="${g}"${h} role="article"><div class="${u}">${b}${p}</div></article>`}var Ue={};k(Ue,{render:()=>kt,renderThumbnail:()=>_t});x();function kt(e,t,o){let r="s",l=_e(e),s=ee(r,o,e.title,e.url),a=te(r,o,e.content,e.url),i="";e.content&&(i=new DOMParser().parseFromString(e.content,"text/html").body.textContent||"",i.length>o.snippetSize&&(i=i.substring(0,o.snippetSize)+"..."),i=i.replace(/"/g,"""));let n=Z(r,o,e.title,e.url),{imageCode:c,showcaseImageCode:d}=N(r,t,o,{postSnippet:e.content,videoID:l,postTitle:e.title,thumbnailUrl:e.thumbnailUrl,authorImage:e.authorImage,post:e});if(t===0&&o.firstInstance){let w=o.cornerStyle===" rounded-none"?"rounded-none":"rounded-t-3xl",S=o.showImage||o.callToAction!==""?n:"",j="";if(o.showHeader||S||o.showLabels){let P=X(r,o,e.publishedDate,e.updatedDate),z=re(o,e.labels,o.siteURL),F=P||z?`<div class="flex flex-wrap items-center gap-x-4 gap-y-0 mb-2">${P?`<div class="mb-3 shrink-0">${P}</div>`:""}<div class="shrink-0">${z}</div></div>`:"",W=o.showHeader||o.showLabels?`<div class="flex-grow min-w-0 w-full @md:w-auto text-${o.textHAlign}">${F}${s} ${a}</div>`:"",G=o.ctaAlign==="left"?"justify-start":o.ctaAlign==="center"?"justify-center":"justify-end",ae=o.showHeader?"mt-4 @md:mt-0 @md:ml-6 ":"",se=o.showHeader?"w-full @md:w-auto":"w-full",ne=S?`<div class="flex-shrink-0 ${ae}flex items-center ${G} ${se}">${S}</div>`:"";j=`<div class="absolute inset-0 flex flex-col justify-end p-0 z-10 pointer-events-none w-full overflow-hidden"><div class="sContent w-full flex flex-col @md:flex-row items-start @md:items-center justify-between p-2 @xs:p-4 @sm:px-12 ${o.showHeader?`${o.palette.containerGlass} backdrop-blur-xl `:""}${o.palette.containerText} pointer-events-auto">${W}${ne}</div></div>`}let le=`<a href="${e.url}" class="absolute inset-0 z-30" title="${e.title.replace(/"/g,""")}" aria-label="View ${e.title.replace(/"/g,""")}"></a>`;return`<div class="@container feature-image w-full ${o.aspectRatio.trim()} relative flex flex-col text-${o.textHAlign} overflow-hidden rounded-none mb-4" style="${o.articleHeight.replace(";","")}"><div class="sIframe hidden absolute inset-0 w-full h-full z-10"></div>${le}${d}<div class="${o.palette.text} block absolute inset-0 z-40 pointer-events-none">${j}</div></div>`}let m=l&&l!=="noVideo"?` data-vidid="${l}"`:"",p=t===0&&o.firstInstance?" ring-4 ring-current ring-inset":"",u=`@container col-span-1 inline-flex w-full sPost cursor-pointer relative ${o.interactionClasses}${p}`,h=O;l&&l!=="noVideo"?h=`https://i.ytimg.com/vi/${l}/maxresdefault.jpg`:e.thumbnailUrl&&(h=e.thumbnailUrl.replace(/\/s\d+(-[a-z]\d+)*(-c)?/,"/s1600"));let g=e.title.replace(/"/g,"""),b=`data-title="${g}" data-link="${e.url}" data-summary="${i}"${m} data-img-high="${h}" data-toggle="tooltip"`;return`<article class="${u}" ${b} role="article" title="${g}">${o.showImage?c:""}</article>`}function _t(e,t){let o=_e(e),r=e.thumbnailUrl||O,l=r;o&&o!=="noVideo"&&l.includes("ytimg.com")?l=l.replace(/\/([^\/]+)$/,"/maxresdefault.jpg"):l=l.replace(/\/s\d+(-c)?/,"/s1600").replace(/\/w\d+-h\d+(-c)?/,"/s1600");let s=(e.content||"").replace(/<[^>]*>/g,"").substring(0,t.snippetSize)+"...";(!r||r.includes("no-image.png"))&&(r=O),(!l||l.includes("no-image.png"))&&(l=O);let a=t.isBloggerFeed?" m-blox-image-to-load":"",i=o!=="noVideo"?` data-vidid="${o}"`:"",n=`data-title="${e.title}" data-link="${e.url}" data-summary="${s}"${i} data-toggle="tooltip"`,c=`<img class="w-full h-full object-cover${a}" src="${r}" data-img-high="${l}" alt="${e.title.replace(/"/g,""")} image" loading="lazy" title="${e.title.replace(/"/g,""")}" />`,d=be(o),m=`<figure class="m-0 w-full ${t.aspectRatio.trim()} overflow-hidden ${t.cornerStyle} relative">${c}${d}</figure>`;return`<article class="col-span-1 inline-flex w-full sPost cursor-pointer relative ${t.interactionClasses}" ${n} title="${e.title.replace(/"/g,""")}" role="article">${m}</article>`}var Me={};k(Me,{render:()=>Ot});x();function A(e,t,o,r,l){let s=Le(e,r,t.authorName,t.authorUri),a=X(e,r,t.publishedDate,t.updatedDate),i=ee(e,r,t.title,t.url),n=te(e,r,t.content,t.url),c=Z(e,r,t.title,t.url),d=re(r,t.labels,r.siteURL),{imageCode:m}=N(e,o,r,{postSnippet:t.content,videoID:t.videoId,postTitle:t.title,thumbnailUrl:t.thumbnailUrl,authorImage:t.authorImage,post:t}),u=r.mBloxTheme!=="surface"?` h-full bg-opacity-90 ${r.palette.containerBg} ${r.palette.containerText}`:` ${r.palette.containerText}`,h=!!(s||a||i||n||c||d),g=!!(s||a||i||n||d),b=r.showImage?m:"";!r.showHeader&&!r.callToAction&&r.showImage&&!r.showLabels&&(b=`<a href="${t.url}" class="absolute inset-0 z-10" aria-label="View ${t.title.replace(/"/g,""")}"></a>${m}`);let w=e!=="comment"&&(a||c)?`<div class="flex items-center justify-between mt-auto w-full pt-4">${a}${c}</div>`:c;return l({authorCode:s,dateCode:a,titleCode:i,snippetCode:n,ctaButtonCode:c,ctaRowCode:w,imageCode:m,finalImageCode:b,labelsCode:d,hasText:h,hasTextContent:g},r,u,t,o)}function Ot(e,t,o){return A("l",e,t,o,(r,l)=>{let s="",a=t===0?"p-4 @xs:p-6 @sm:p-8":"p-2 @xs:p-4 @sm:p-6";if(r.hasText){let p=r.ctaRowCode?`<div class="mt-4 w-full">${r.ctaRowCode}</div>`:"";l.showImage?s=`
|
|
99
99
|
<div class="absolute inset-0 flex flex-col p-0 border-0 pointer-events-none ${{top:"justify-start",middle:"justify-center",bottom:"justify-end",overlay:""}[l.textVerticalAlign]||""}">
|
|
100
100
|
<div class="pointer-events-auto ${l.textVerticalAlign==="overlay"||!{top:"justify-start",middle:"justify-center",bottom:"justify-end",overlay:""}[l.textVerticalAlign]?"h-full ":""}${r.hasTextContent?`${l.palette.containerGlass} backdrop-blur-xl `:""}${l.palette.containerText} rounded-none ${a} text-${l.textHAlign}">
|
|
101
101
|
${r.authorCode}
|
|
@@ -113,7 +113,7 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
113
113
|
${r.snippetCode}
|
|
114
114
|
${p}
|
|
115
115
|
</div>
|
|
116
|
-
`}let
|
|
116
|
+
`}let i=l.showImage?[]:[l.palette.containerBg,l.palette.containerText],c=["relative",l.showImage?"block":"flex flex-col justify-center",l.cornerStyle,l.aspectRatio.trim(),"w-full","h-full",...i,l.interactionClasses].filter(Boolean).join(" "),d=`@container col-span-1 inline-flex w-full h-full relative ${l.layout.mb}`,m=t===0?`<div class="absolute top-0 left-0 z-20 pointer-events-none backdrop-blur-xl ${l.palette.containerGlass} ${l.palette.containerText} px-6 py-3 text-label-lg font-bold w-full">Featured</div>`:"";return`<article class="${d}" role="article"><div class="${c}">${r.finalImageCode}${m}${s}</div></article>`})}var De={};k(De,{render:()=>Rt});x();function Rt(e,t,o){return A("c",e,t,o,(r,l)=>{let s=r.hasText?`
|
|
117
117
|
<div class="absolute inset-0 flex flex-col p-0 border-0 pointer-events-none ${{top:"justify-start",middle:"justify-center",bottom:"justify-end",overlay:""}[l.textVerticalAlign]||""}">
|
|
118
118
|
<div class="pointer-events-auto ${l.textVerticalAlign==="overlay"||!{top:"justify-start",middle:"justify-center",bottom:"justify-end",overlay:""}[l.textVerticalAlign]?"h-full ":""}${r.hasTextContent?`${l.palette.containerGlass} backdrop-blur-xl `:""}${l.palette.containerText} rounded-none p-2 @xs:p-4 @sm:p-6 flex flex-col text-${l.textHAlign}">
|
|
119
119
|
${r.authorCode}
|
|
@@ -123,7 +123,7 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
123
123
|
${r.ctaRowCode}
|
|
124
124
|
</div>
|
|
125
125
|
</div>
|
|
126
|
-
`:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="${["relative","block","w-full",l.cornerStyle,l.aspectRatio.trim(),"h-full",l.interactionClasses].filter(Boolean).join(" ")}">${r.finalImageCode}${s}</div></article>`})}var qe={};
|
|
126
|
+
`:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="${["relative","block","w-full",l.cornerStyle,l.aspectRatio.trim(),"h-full",l.interactionClasses].filter(Boolean).join(" ")}">${r.finalImageCode}${s}</div></article>`})}var qe={};k(qe,{render:()=>Ut});x();function Ut(e,t,o){let r="g",{imageCode:l}=N(r,t,o,{postSnippet:e.content,videoID:e.videoId,postTitle:e.title,thumbnailUrl:e.thumbnailUrl,authorImage:e.authorImage,post:e});return`<article class="@container col-span-1 inline-flex w-full" role="article"><div class="${["block","relative","w-full",o.cornerStyle,o.aspectRatio.trim(),o.interactionClasses].filter(Boolean).join(" ")}"><a href="${e.url}" class="absolute inset-0 z-10" aria-label="View ${e.title.replace(/"/g,""")}"></a>${o.showImage?l:""}</div></article>`}var Ee={};k(Ee,{render:()=>Mt});x();function Mt(e,t,o){return A("p",e,t,o,(r,l)=>{let s=l.mBloxTheme!=="surface"?` h-full bg-opacity-90 ${l.palette.containerBg}`:"",a=r.hasText?`
|
|
127
127
|
<div class="p-2 @xs:p-4 @sm:p-6 flex-grow flex flex-col${s} text-${l.textHAlign}">
|
|
128
128
|
${r.authorCode}
|
|
129
129
|
${r.labelsCode}
|
|
@@ -131,7 +131,7 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
131
131
|
${r.snippetCode}
|
|
132
132
|
<div class="mt-auto pt-2">${r.ctaRowCode}</div>
|
|
133
133
|
</div>
|
|
134
|
-
`:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="flex flex-col w-full ${l.palette.containerBg} ${l.palette.containerText} h-full ${l.cornerStyle} ${l.interactionClasses}">${r.finalImageCode}${a}</div></article>`})}var He={};
|
|
134
|
+
`:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="flex flex-col w-full ${l.palette.containerBg} ${l.palette.containerText} h-full ${l.cornerStyle} ${l.interactionClasses}">${r.finalImageCode}${a}</div></article>`})}var He={};k(He,{render:()=>Dt});x();function Dt(e,t,o){return A("t",e,t,o,(r,l,s)=>{let a=r.hasText?`
|
|
135
135
|
<div class="p-2 @xs:p-4 @sm:p-6 flex-grow flex flex-col${s} text-${l.textHAlign}">
|
|
136
136
|
${r.authorCode}
|
|
137
137
|
${r.labelsCode}
|
|
@@ -139,7 +139,7 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
139
139
|
${r.snippetCode}
|
|
140
140
|
${r.ctaRowCode}
|
|
141
141
|
</div>
|
|
142
|
-
`:"",
|
|
142
|
+
`:"",n=l.blockType==="t"?"w-3/4":"w-2/3",c=r.hasText?l.showImage?`<div class="${n} h-full flex flex-col">${a}</div>`:a:"",d=["flex","flex-row",l.palette.containerBg,l.cornerStyle,"w-full","h-full",l.interactionClasses].filter(Boolean).join(" ");return`<article class="${`@container col-span-1 inline-flex w-full relative h-full ${l.layout.mb}`}" role="article"><div class="${d}">${r.finalImageCode}${c}</div></article>`})}var Ne={};k(Ne,{render:()=>qt});x();function qt(e,t,o){return A("q",e,t,o,(r,l)=>{let s=r.hasText?`
|
|
143
143
|
<div class="p-4 @xs:p-6 @sm:p-8 flex-grow flex flex-col">
|
|
144
144
|
${r.titleCode}
|
|
145
145
|
${r.snippetCode}
|
|
@@ -148,7 +148,7 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
148
148
|
</span>
|
|
149
149
|
<div class="mt-auto pt-2">${r.ctaRowCode}</div>
|
|
150
150
|
</div>
|
|
151
|
-
`:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="${["flex","flex-col","w-full",l.palette.containerBg,l.palette.containerText,l.cornerStyle,`text-${l.textHAlign}`,"h-full",l.interactionClasses].filter(Boolean).join(" ")}">${r.finalImageCode}${s}</div></article>`})}var je={};
|
|
151
|
+
`:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="${["flex","flex-col","w-full",l.palette.containerBg,l.palette.containerText,l.cornerStyle,`text-${l.textHAlign}`,"h-full",l.interactionClasses].filter(Boolean).join(" ")}">${r.finalImageCode}${s}</div></article>`})}var je={};k(je,{render:()=>Et});x();function Et(e,t,o){return A("m",e,t,o,(r,l)=>{let s=`
|
|
152
152
|
<div class="w-full p-2 flex flex-col h-full text-${l.textHAlign}">
|
|
153
153
|
<div class="mb-1 opacity-75 flex flex-wrap items-center gap-x-1">${r.authorCode}${r.dateCode}</div>
|
|
154
154
|
${r.labelsCode}
|
|
@@ -163,7 +163,7 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
163
163
|
${s}
|
|
164
164
|
</div>
|
|
165
165
|
</article>
|
|
166
|
-
`})}var Pe={v:Re,s:Ue,l:Me,c:De,g:qe,p:Ee,t:He,q:Ne,m:je},oe=class{async buildBlockBody(t,o){let r="",l="",s=null,a=t.posts.length,
|
|
166
|
+
`})}var Pe={v:Re,s:Ue,l:Me,c:De,g:qe,p:Ee,t:He,q:Ne,m:je},oe=class{async buildBlockBody(t,o){let r="",l="",s=null,a=t.posts.length,i=o.blockType==="l"||o.blockType==="s";if(o.isCarousel&&(s=null),o.blockType==="s"&&a>0){o.firstInstance&&(l=Pe["s"].render(t.posts[0],0,o));let c=[];for(let d=0;d<a;d++){let m=Pe["s"].renderThumbnail(t.posts[d],o);o.isCarousel&&(m=m.replace('<article class="','<article class="snap-start ')),c.push(m)}return{renderedBlocks:c,carouselIndicators:s,showcaseHTML:l}}let n=[];for(let c=0;c<a;c++){let d=t.posts[c],m=o.columnCount,p=o.blockType;o.blockType==="l"&&c>0&&(p=o.showHeader?"t":"c",c===1&&o.showHeader&&m--);let u=Pe[p].render(d,c,o);o.isCarousel&&(u=u.replace('<article class="','<article class="snap-start ')),n.push(u)}return{renderedBlocks:n,carouselIndicators:s,showcaseHTML:l}}createBlockHeader(t){return it(t)}createBlockFooter(t,o){return ct(t,o)}createStageWrapper(t,o,r,l){let s=r.isCarousel?ut(o,r,l):"",a=pt(r,l),i=`${s}${t}${a}`;return dt(i,r)}bindEvents(t,o){this._bindShowcaseEvents(t,o),this._bindPaginationEvents(t,o),this._bindShareEvents(t),mt(t,o)}_bindShareEvents(t){t.dataset.shareBound||(t.dataset.shareBound="true",t.addEventListener("click",async o=>{let r=o.target.closest('[data-action="share-native"]');if(!r)return;o.preventDefault(),o.stopPropagation();let l=r.getAttribute("data-title"),s=r.getAttribute("data-url");if(navigator.share)try{await navigator.share({title:l,url:s})}catch(a){console.log("Share failed",a)}else navigator.clipboard.writeText(s).then(()=>{alert("Link copied to clipboard!")})}))}_bindShowcaseEvents(t,o){if(t.dataset.showcaseBound)return;let r=t.closest(".mBlock, .mBlockL")?.querySelector(".feature-image");if(!r)return;t.dataset.showcaseBound="true";let l=r.querySelector("figure"),s=r.querySelector(".sIframe"),a=r.querySelector(".sContent");l&&l.addEventListener("click",function(){let n=this.getAttribute("data-vidid");if(n&&n!=="noVideo"){if(s){s.innerHTML=Oe(n,o),s.style.display="",s.style.opacity="1",s.classList.remove("hidden"),l.style.display="none",a&&(a.style.display="none");let c=r.querySelector("a");c&&(c.style.display="none")}}else{let c=r.querySelector("a");c&&c.href&&(window.location.href=c.href)}});let i=r.querySelector("a.z-30")||r.querySelector("a");i&&i.addEventListener("click",function(n){if(l){let c=l.getAttribute("data-vidid");c&&c!=="noVideo"&&(n.preventDefault(),l.click())}}),t.addEventListener("click",function(n){let c=n.target.closest(".sPost");if(!c||!c.closest(".sFeature"))return;let d={vidid:c.getAttribute("data-vidid"),title:c.getAttribute("data-title"),summary:c.getAttribute("data-summary"),link:c.getAttribute("data-link"),imgHigh:c.getAttribute("data-img-high")||c.querySelector("img")?.getAttribute("data-img-high")||""};if(c.classList.contains("ring-4")){window.location.href=d.link;return}if(t.querySelectorAll(".sFeature .sPost").forEach(u=>{u.classList.remove("ring-4","ring-current","ring-inset")}),c.classList.add("ring-4","ring-current","ring-inset"),d.vidid&&d.vidid!=="noVideo"){s&&(s.innerHTML=Oe(d.vidid,o),H(s)),M(l),M(a);let u=r.querySelector("a");u&&(u.style.display="none")}else{if(s&&(s.innerHTML="",M(s)),l){(d.vidid==="noVideo"||!d.vidid)&&l.removeAttribute("data-vidid");let g=l.querySelector("svg");g&&M(g),l.style.backgroundImage=`url("${d.imgHigh}")`,l.style.backgroundSize="cover",l.title=d.title,l.setAttribute("aria-label",d.title+" image"),H(l)}if(a){H(a);let g=a.querySelector("h5");if(g){g.textContent=d.title;let S=g.closest("a");S&&(S.href=d.link)}let b=a.querySelector(".js-cta-link");b&&(b.href=d.link,b.setAttribute("aria-label",`View ${d.title}`));let w=a.querySelector(".list-none")||a.querySelector("div.text-body-md");w&&(w.innerHTML=d.summary)}let u=r.querySelector("a.z-30")||r.querySelector("a");u&&(u.style.display="",u.href=d.link,u.title=d.title,u.hasAttribute("aria-label")&&u.setAttribute("aria-label",`View ${d.title}`));let h=r.querySelector("button");h&&(h.title=d.title)}})}_bindPaginationEvents(t,o){if(!o)return;let r=o.stageID,l=t.querySelectorAll(`.st${r} .nav-prev`),s=t.querySelectorAll(`.st${r} .nav-next`);l.forEach(a=>{a.dataset.bound||(a.dataset.bound="true",a.addEventListener("click",()=>{let i=parseInt(t.getAttribute("data-s"),10);if(i<=1)return;let n=i-1;t.setAttribute("data-s",n),t.style.minHeight=t.clientHeight+"px",M(t.querySelector(`div#m${o.mBlockID}-st${i}`)),M(t.querySelector(`div.mblox-footer.st${i}`)),setTimeout(()=>{H(t.querySelector(`div#m${o.mBlockID}-st${n}`)),H(t.querySelector(`div.mblox-footer.st${n}`)),t.style.minHeight=""},160)}))}),s.forEach(a=>{a.dataset.bound||(a.dataset.bound="true",a.addEventListener("click",()=>{let i=parseInt(t.getAttribute("data-s"),10),n=i+1;t.setAttribute("data-s",n),t.style.minHeight=t.clientHeight+"px",t.classList.add("relative"),M(t.querySelector(`div#m${o.mBlockID}-st${i}`));let c=t.querySelector(`div.mblox-footer.st${i}`);c&&M(c);let d=t.querySelector(`div#m${o.mBlockID}-st${n}`);if(d)setTimeout(()=>{H(d),H(t.querySelector(`div.mblox-footer.st${n}`)),t.style.minHeight=""},160);else{let m=`
|
|
167
167
|
<style>
|
|
168
168
|
@keyframes mblox-loader-anim {
|
|
169
169
|
0% { transform: rotate(0deg) scale(0.8); }
|
|
@@ -171,6 +171,6 @@ var wt=Object.defineProperty;var St=(e,t)=>()=>(e&&(t=e(e=0)),t);var B=(e,t)=>{f
|
|
|
171
171
|
100% { transform: rotate(360deg) scale(0.8); }
|
|
172
172
|
}
|
|
173
173
|
</style>
|
|
174
|
-
<div id="m${o.mBlockID}-st${
|
|
174
|
+
<div id="m${o.mBlockID}-st${n}-loading" class="absolute inset-0 flex items-center justify-center z-10" style="min-height: 200px;">
|
|
175
175
|
<svg class="w-12 h-12 text-current opacity-80" viewBox="0 0 56 56" style="--scroll-progress: 0; animation: mblox-loader-anim 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;"><use href="#icon-progress-m3e"></use></svg>
|
|
176
|
-
</div>`;t.insertAdjacentHTML("beforeend",m);let p=new CustomEvent("mblox:loadNextPage",{detail:{element:t}});t.dispatchEvent(p)}}))})}};var me=null;async function Ht(){return me||(window.mBloxConfig&&window.mBloxConfig.designSystem==="m3e"?(window.mBlox=window.mBlox||{},window.mBlox.m3eRenderer=oe,me=new oe):me=new oe,me)}async function Ke(e){rt();let t=await Ht(),o=typeof e=="string"?document.querySelectorAll(e):[e];for(let r of o){r.classList.add("@container");let l=et(r);r.setAttribute("data-scheme",l.mBloxTheme),r.setAttribute("data-palette",l.paletteName),r._mbloxPaginateListener||(r.addEventListener("mblox:loadNextPage",s=>{Ke(s.target)}),r._mbloxPaginateListener=!0);try{let s=Ze(l),a=await s.fetch();if(l.isBloggerFeed=s instanceof de,a.posts&&a.posts.length>0){let
|
|
176
|
+
</div>`;t.insertAdjacentHTML("beforeend",m);let p=new CustomEvent("mblox:loadNextPage",{detail:{element:t}});t.dispatchEvent(p)}}))})}};var me=null;async function Ht(){return me||(window.mBloxConfig&&window.mBloxConfig.designSystem==="m3e"?(window.mBlox=window.mBlox||{},window.mBlox.m3eRenderer=oe,me=new oe):me=new oe,me)}async function Ke(e){rt();let t=await Ht(),o=typeof e=="string"?document.querySelectorAll(e):[e];for(let r of o){r.classList.add("@container");let l=et(r);r.setAttribute("data-scheme",l.mBloxTheme),r.setAttribute("data-palette",l.paletteName),r._mbloxPaginateListener||(r.addEventListener("mblox:loadNextPage",s=>{Ke(s.target)}),r._mbloxPaginateListener=!0);try{let s=Ze(l),a=await s.fetch();if(l.isBloggerFeed=s instanceof de,a.posts&&a.posts.length>0){let i=a.posts.length;l.contentType==="comments"&&(l.moreText=""),l.firstInstance&&(r.setAttribute("data-s",l.stageID),r.insertAdjacentHTML("beforeend",t.createBlockHeader(l))),l=Xe(l,i);let{renderedBlocks:n,carouselIndicators:c,showcaseHTML:d}=await t.buildBlockBody(a,l);l.firstInstance&&l.blockType==="s"&&d&&r.insertAdjacentHTML("beforeend",d);let p=l.stageID===parseInt(r.getAttribute("data-s")||"1",10)?"":" d-none",u="";l.isCarousel?u=lt(n,l):l.blockType==="l"?u=at(n,l):u=ot(n,l);let h=t.createStageWrapper(u,c,l,a),g=t.createBlockFooter(l,a),b=`<div class="st${l.stageID}${p}" id="m${l.mBlockID}-st${l.stageID}">${h}${g}</div>`,w=r.querySelector(`#m${l.mBlockID}-st${l.stageID}-loading`);w&&w.remove(),r.insertAdjacentHTML("beforeend",b),r.style.minHeight="",t.bindEvents(r,l),tt(r)}}catch(s){console.error(s)}}}window.mBlocks=Ke;
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mblox",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description": "mBlox is a lightweight, dependency-free JavaScript library that enables dynamic, Elementor/Gutentor-like content blocks. It can fetch and display content from various sources like **Blogger**, **WordPress**, and any **RSS feed** (including YouTube) in a variety of customizable layouts.",
|
|
5
5
|
"main": "mBloxCall.js",
|
|
6
6
|
"unpkg": "dist/mBloxM3E.js",
|
|
7
7
|
"jsdelivr": "dist/mBloxM3E.js",
|
|
8
|
-
"files": [
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
9
11
|
"scripts": {
|
|
10
12
|
"build": "npm run build:css && npm run build:icons && npm run build:js",
|
|
11
13
|
"build:css": "npx @tailwindcss/cli -i ./src/design/tailwind.css -o ./dist/mBloxM3E.css --minify",
|