mblox 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 mohanjeetsingh
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,171 @@
1
+ # mBlox
2
+
3
+ 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.
4
+
5
+ It can be deployed on **any website** to display content from any supported feed type.
6
+
7
+ Note: The initial version of this tool was created in the pre-GenAI era. Starting October 2025, modern AI tools are being used to refactor and harden the library.
8
+
9
+ ## Features
10
+
11
+ * **Dynamic Content**: Fetch recent posts, posts by label, or recent comments. Automatically extracts hashtags from content to use as labels.
12
+ * **Highly Customizable**: A wide range of `data-*` attributes to control layout, style, and content.
13
+ * **Variety of Layouts**: Includes showcases, carousels, grids, lists, and more.
14
+ * **Lazy Loading**: Content blocks are lazy-loaded on scroll for better performance.
15
+ * **Responsive Design**: Built with modern Tailwind CSS to be mobile-first and fully responsive.
16
+ * **Style Isolation**: CSS is isolated using `@layer mblox` to prevent conflicts with host websites.
17
+ * **Easy Integration**: Add a `section` or `div` with the right class and data attributes, and the script does the rest.
18
+
19
+ ## Directory Structure
20
+
21
+ ```text
22
+ mBlox/
23
+ ├── mBloxCall.js # Lightweight entry point & initializer
24
+ ├── dist/ # Production-ready assets
25
+ │ ├── mBloxM3E.js # Unified JS bundle (Engine + Blocks)
26
+ │ └── mBloxM3E.css # Tailwind CSS bundle
27
+ ├── assets/ # Static resources
28
+ │ ├── tailwind.css # Tailwind configuration and base styles
29
+ │ ├── noImg.js # Placeholder image script
30
+ │ └── vendor/ # Third-party vendor dependencies
31
+ ├── scripts/ # Build pipeline (Node.js)
32
+ └── demo/ # Sample implementations
33
+ ```
34
+
35
+ ## How to Use
36
+
37
+ 1. Include the necessary CSS and JS files in your website's `<head>` section.
38
+
39
+ ```html
40
+ <!-- 1. Include the mBlox Initializer (Configure paths inside this file) -->
41
+ <!-- For best performance, it is recommended to inline the contents of mBloxCall.js directly into your HTML -->
42
+ <script src='mBloxCall.js' defer></script>
43
+ ```
44
+
45
+ **Note on Configuration:**
46
+ Open `mBloxCall.js` to configure any custom paths for `window.mBloxCssSrc` if necessary.
47
+
48
+ **Note on Scripts:**
49
+ * `mBloxCall.js`: The lightweight entry point. It detects `mBlock` elements and dynamically injects the unified `mBloxM3E.js` library and CSS. No manual inclusion of the main bundle is needed.
50
+
51
+ 2. Add an element to your HTML where you want the block to appear.
52
+ 3. Give it the class `mBlock` (standard) or `mBlockL` (lazy-loaded).
53
+ 4. Add `data-*` attributes to configure the block.
54
+
55
+ ### Examples
56
+
57
+ #### 1. Data Attributes Configuration (Full Settings)
58
+
59
+ You can configure mBlox directly using `data-*` attributes on the block element. Here is an example showing all available settings:
60
+
61
+ ```html
62
+ <section
63
+ class='mBlockL'
64
+ data-contenttype="recent"
65
+ data-feed="https://your-blog.blogspot.com/"
66
+ data-type="v-ihsda"
67
+ data-title="Featured Articles"
68
+ data-description="Check out our latest news and updates."
69
+ data-label="Technology"
70
+ data-posts="6"
71
+ data-cols="3"
72
+ data-rows="2"
73
+ data-theme="auto"
74
+ data-palette="surface"
75
+ data-ar="16x9"
76
+ data-isCarousel="true"
77
+ data-iHeight="m"
78
+ data-iBlur="false"
79
+ data-iFix="false"
80
+ data-iBorder="true"
81
+ data-corner="rounded"
82
+ data-gutter="3"
83
+ data-textVAlign="bottom"
84
+ data-textHAlign="left"
85
+ data-ctaAlign="right"
86
+ data-CTAText="Read More"
87
+ data-moreText="View All"
88
+ data-snippetSize="150"
89
+ data-overlay-items="vcasb"
90
+ data-s="1"
91
+ >
92
+ </section>
93
+ ```
94
+
95
+ #### 2. JSON Configuration (Recommended for Complex Setups)
96
+
97
+ Alternatively, you can configure the block using an embedded JSON script. This approach is cleaner when you have many settings or dynamic configurations. Simply place a `<script type="application/json">` tag inside the block element.
98
+
99
+ ```html
100
+ <section class="mBlockL">
101
+ <script type="application/json">
102
+ {
103
+ "contentType": "recent",
104
+ "feed": "https://your-blog.blogspot.com/",
105
+ "type": "v-ihsda",
106
+ "title": "Featured Articles",
107
+ "description": "Check out our latest news and updates.",
108
+ "label": "Technology",
109
+ "posts": 6,
110
+ "cols": 3,
111
+ "rows": 2,
112
+ "theme": "auto",
113
+ "palette": "surface",
114
+ "ar": "16x9",
115
+ "isCarousel": true,
116
+ "iHeight": "m",
117
+ "iBlur": false,
118
+ "iFix": false,
119
+ "iBorder": true,
120
+ "corner": "rounded",
121
+ "gutter": 3,
122
+ "textVAlign": "bottom",
123
+ "textHAlign": "left",
124
+ "ctaAlign": "right",
125
+ "CTAText": "Read More",
126
+ "moreText": "View All",
127
+ "snippetSize": 150,
128
+ "overlayItems": "vcasb",
129
+ "s": 1
130
+ }
131
+ </script>
132
+ </section>
133
+ ```
134
+ *Note: JSON keys use camelCase (e.g., `overlayItems` instead of `overlay-items`) and values maintain their native data types (booleans, numbers).*
135
+
136
+ ## Development & Build Pipeline
137
+
138
+ mBlox uses a specialized build pipeline to ensure the CSS bundle only contains the Tailwind utilities actually used by the script.
139
+
140
+ ### Requirements
141
+ * Node.js (LTS)
142
+ * NPM
143
+
144
+ ### Build Process
145
+ 1. Install dependencies:
146
+ ```bash
147
+ npm install
148
+ ```
149
+ 2. Run the build command:
150
+ ```bash
151
+ npm run build
152
+ ```
153
+ This will compile Tailwind CSS based on your template files and generate the unified JS bundle in `/dist`.
154
+
155
+ ## Configuration
156
+
157
+ Customize mBlox using `data-*` attributes or embedded JSON. The core attributes include:
158
+
159
+ | Attribute | JSON Key | Description | Default |
160
+ |---|---|---|---|
161
+ | `data-feed` | `feed` | Source URL of the blog or feed. | `/` |
162
+ | `data-contenttype` | `contentType` | `recent`, `label`, or `comments`. | `recent` |
163
+ | `data-type` | `type` | Visual style and component layout (e.g., `v-ih`). | `v-ih` |
164
+ | `data-posts` | `posts` | Number of posts to fetch/display. | `3` |
165
+ | `data-cols` | `cols` | Number of columns in the grid. | Varies |
166
+ | `data-theme` | `theme` | `light`, `dark`, or `auto`. | `auto` |
167
+ | `data-palette` | `palette` | Color palette (e.g., `surface`, `colorful`). | `surface` |
168
+ | `data-ar` | `ar` | Aspect ratio (e.g., `16x9`, `4x3`, `1x1`). | `1x1` |
169
+ | `data-isCarousel` | `isCarousel` | Enables carousel navigation. | `false` |
170
+
171
+ *See [spec.md](spec.md) for the full technical breakdown.*
@@ -0,0 +1,7 @@
1
+ /*! mBlox Unified JS | Generated: 2026-06-05T13:58:27.149Z */
2
+ var c=!0;function d(o,n){if(n){let e=window.mBloxConfig||{},t="../dist/mBloxM3E.css";if(e.cssSrc!==void 0?t=e.cssSrc:window.mBloxCssSrc!==void 0&&(t=window.mBloxCssSrc),t&&!document.querySelector(`link[href*="${t}"]`)){let s=document.createElement("link");s.rel="stylesheet",s.href=t,document.head.appendChild(s)}let i="../dist/mBloxM3E.js";if(e.jsSrc!==void 0&&(i=e.jsSrc),i){let s=document.querySelector(`script[src*="${i}"]`);if(s)window.mBlocks?window.mBlocks(o).then(()=>{c=!1}):s.addEventListener("load",()=>{window.mBlocks&&window.mBlocks(o).then(()=>{c=!1})});else{let l=document.createElement("script");l.src=i,l.type="module",l.addEventListener("load",()=>{window.mBlocks&&window.mBlocks(o).then(()=>{c=!1})}),document.head.appendChild(l)}}else window.mBlocks&&window.mBlocks(o).then(()=>{c=!1})}else window.mBlocks&&window.mBlocks(o)}window.addEventListener("load",o=>{document.getElementsByClassName("mBlock").length&&d(".mBlock",c);let n=window.mBloxConfig||{},e=n.lazyLoadThreshold!==void 0?n.lazyLoadThreshold:0,i={rootMargin:n.lazyLoadRootMargin!==void 0?n.lazyLoadRootMargin:"500px",threshold:e},s=document.getElementsByClassName("mBlockL"),l=new IntersectionObserver(a,i);Array.prototype.forEach.call(s,function(r){l.observe(r)})},!1);var a=(o,n)=>{o.forEach(e=>{e.isIntersecting&&(e.target.classList.contains("mBlockL")&&d(e.target,c),n.unobserve(e.target))})};window.loadScripts=d;
3
+ /*!
4
+ * mBlocks for Blogger - Initializer
5
+ * CIA.RealHappinessCenter.com
6
+ * @version 2.0.0
7
+ */
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:var(--font-primary);--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--radius-sm:.25rem;--radius-md:.375rem;--radius-3xl:1.5rem;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#069;--color-on-primary:#ddd;--color-primary-container:#cdf;--color-on-primary-container:#023;--color-secondary:#5c5c5c;--color-on-secondary:#fff;--color-secondary-container:#e6e6e6;--color-on-secondary-container:#333;--color-tertiary:#cc7000;--color-on-tertiary:#fff;--color-tertiary-container:#ec9;--color-on-tertiary-container:#320;--color-error:#c33;--color-on-error:#fff;--color-error-container:#ffedeb;--color-on-error-container:#c11;--color-surface:#fcf8f8;--color-on-surface:#1c1b1b;--color-surface-variant:#e0e3e3;--color-on-surface-variant:#444748;--color-surface-container:#f1edec;--color-primary-container-fixed:#00334d;--font-system:inherit;--font-primary:var(--font-system);--font-secondary:var(--font-system);--text-display-sm:clamp(1.75rem, 3.5vw, 2.28rem);--text-display-sm--line-height:clamp(2.25rem, 4vw, 2.75rem);--text-headline-lg:clamp(1.5rem, 3vw, 2rem);--text-headline-lg--line-height:clamp(2rem, 3.5vw, 2.5rem);--text-headline-sm:clamp(1.125rem, 2vw, 1.42rem);--text-headline-sm--line-height:clamp(1.5rem, 2.5vw, 2rem);--text-title-lg:1.28rem;--text-title-lg--line-height:1.75rem;--text-title-md:1rem;--text-title-md--line-height:1.5rem;--text-title-md--font-weight:500;--text-body-md:.85rem;--text-body-md--line-height:1.25rem;--text-label-lg:.85rem;--text-label-lg--line-height:1.25rem;--text-label-lg--font-weight:500;--text-label-md:.71rem;--text-label-md--line-height:1rem;--text-label-md--font-weight:500;--text-label-sm:.64rem;--text-label-sm--line-height:1rem;--text-label-sm--font-weight:500;--ease-m3-emphasized:cubic-bezier(.2, 0, 0, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{font-family:var(--font-primary);background-color:var(--color-surface);color:var(--color-on-surface)}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start-50{inset-inline-start:calc(var(--spacing) * 50)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-8{top:calc(var(--spacing) * 8)}.top-50{top:calc(var(--spacing) * 50)}.right-0{right:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-12{bottom:calc(var(--spacing) * 12)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-4{grid-column:4}.col-8{grid-column:8}.col-span-1{grid-column:span 1/span 1}.float-end{float:inline-end}.float-left{float:left}.float-start{float:inline-start}.container{width:100%}@media (min-width:600px){.container{max-width:600px}}@media (min-width:840px){.container{max-width:840px}}@media (min-width:1200px){.container{max-width:1200px}}@media (min-width:1600px){.container{max-width:1600px}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-2{margin:calc(var(--spacing) * 2)}.mx-0{margin-inline:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.-my-4{margin-block:calc(var(--spacing) * -4)}.my-2{margin-block:calc(var(--spacing) * 2)}.ms-4{margin-inline-start:calc(var(--spacing) * 4)}.me-3{margin-inline-end:calc(var(--spacing) * 3)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-auto{margin-top:auto}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-6{margin-left:calc(var(--spacing) * 6)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-\[9\/16\]{aspect-ratio:9/16}.aspect-\[9\/21\]{aspect-ratio:9/21}.aspect-\[21\/9\]{aspect-ratio:21/9}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-100{height:calc(var(--spacing) * 100)}.h-auto{height:auto}.h-full{height:100%}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\/3{width:66.6667%}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-75{width:calc(var(--spacing) * 75)}.w-100{width:calc(var(--spacing) * 100)}.w-auto{width:auto}.w-full{width:100%}.max-w-0{max-width:calc(var(--spacing) * 0)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.flex-grow-1{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-none{list-style-type:none}.auto-cols-\[33\.333333\%\]{grid-auto-columns:33.3333%}.auto-cols-\[50\%\]{grid-auto-columns:50%}.auto-cols-\[100\%\]{grid-auto-columns:100%}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-x-1{column-gap:calc(var(--spacing) * 1)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0{row-gap:calc(var(--spacing) * 0)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-3{border-style:var(--tw-border-style);border-width:3px}.bg-\[\#ccc\]{background-color:#ccc}.bg-\[\#ff0000\]{background-color:red}.bg-current{background-color:currentColor}.bg-error{background-color:var(--color-error)}.bg-error-container{background-color:var(--color-error-container)}.bg-error-container\/20{background-color:#ffedeb33}@supports (color:color-mix(in lab, red, red)){.bg-error-container\/20{background-color:color-mix(in oklab, var(--color-error-container) 20%, transparent)}}.bg-error\/20{background-color:#c333}@supports (color:color-mix(in lab, red, red)){.bg-error\/20{background-color:color-mix(in oklab, var(--color-error) 20%, transparent)}}.bg-on-primary\/8{background-color:#dddddd14}@supports (color:color-mix(in lab, red, red)){.bg-on-primary\/8{background-color:color-mix(in oklab, var(--color-on-primary) 8%, transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-container{background-color:var(--color-primary-container)}.bg-primary-container-fixed{background-color:var(--color-primary-container-fixed)}.bg-primary-container\/20{background-color:#cdf3}@supports (color:color-mix(in lab, red, red)){.bg-primary-container\/20{background-color:color-mix(in oklab, var(--color-primary-container) 20%, transparent)}}.bg-primary\/20{background-color:#0693}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-container{background-color:var(--color-secondary-container)}.bg-secondary-container\/20{background-color:#e6e6e633}@supports (color:color-mix(in lab, red, red)){.bg-secondary-container\/20{background-color:color-mix(in oklab, var(--color-secondary-container) 20%, transparent)}}.bg-secondary\/20{background-color:#5c5c5c33}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/20{background-color:color-mix(in oklab, var(--color-secondary) 20%, transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-surface-container{background-color:var(--color-surface-container)}.bg-surface-container\/20{background-color:#f1edec33}@supports (color:color-mix(in lab, red, red)){.bg-surface-container\/20{background-color:color-mix(in oklab, var(--color-surface-container) 20%, transparent)}}.bg-surface-variant{background-color:var(--color-surface-variant)}.bg-surface\/20{background-color:#fcf8f833}@supports (color:color-mix(in lab, red, red)){.bg-surface\/20{background-color:color-mix(in oklab, var(--color-surface) 20%, transparent)}}.bg-tertiary{background-color:var(--color-tertiary)}.bg-tertiary-container{background-color:var(--color-tertiary-container)}.bg-tertiary-container\/20{background-color:#ec93}@supports (color:color-mix(in lab, red, red)){.bg-tertiary-container\/20{background-color:color-mix(in oklab, var(--color-tertiary-container) 20%, transparent)}}.bg-tertiary\/20{background-color:#cc700033}@supports (color:color-mix(in lab, red, red)){.bg-tertiary\/20{background-color:color-mix(in oklab, var(--color-tertiary) 20%, transparent)}}.fill-primary-container{fill:var(--color-primary-container)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.ps-0{padding-inline-start:calc(var(--spacing) * 0)}.ps-5{padding-inline-start:calc(var(--spacing) * 5)}.pe-5{padding-inline-end:calc(var(--spacing) * 5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-text-bottom{vertical-align:text-bottom}.text-label-lg{font-size:var(--text-label-lg);line-height:var(--tw-leading,var(--text-label-lg--line-height));font-weight:var(--tw-font-weight,var(--text-label-lg--font-weight))}.text-label-md{font-size:var(--text-label-md);line-height:var(--tw-leading,var(--text-label-md--line-height));font-weight:var(--tw-font-weight,var(--text-label-md--font-weight))}.text-label-sm{font-size:var(--text-label-sm);line-height:var(--tw-leading,var(--text-label-sm--line-height));font-weight:var(--tw-font-weight,var(--text-label-sm--font-weight))}.text-title-md{font-size:var(--text-title-md);line-height:var(--tw-leading,var(--text-title-md--line-height));font-weight:var(--tw-font-weight,var(--text-title-md--font-weight))}.text-body-md{font-size:var(--text-body-md);line-height:var(--tw-leading,var(--text-body-md--line-height))}.text-display-sm{font-size:var(--text-display-sm);line-height:var(--tw-leading,var(--text-display-sm--line-height))}.text-headline-lg{font-size:var(--text-headline-lg);line-height:var(--tw-leading,var(--text-headline-lg--line-height))}.text-headline-sm{font-size:var(--text-headline-sm);line-height:var(--tw-leading,var(--text-headline-sm--line-height))}.text-title-lg{font-size:var(--text-title-lg);line-height:var(--tw-leading,var(--text-title-lg--line-height))}.text-\[0\.625rem\]{font-size:.625rem}.text-\[11px\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-\[\#00aaff\]{color:#0af}.text-current{color:currentColor}.text-error{color:var(--color-error)}.text-on-error{color:var(--color-on-error)}.text-on-error-container{color:var(--color-on-error-container)}.text-on-primary{color:var(--color-on-primary)}.text-on-primary-container{color:var(--color-on-primary-container)}.text-on-secondary{color:var(--color-on-secondary)}.text-on-secondary-container{color:var(--color-on-secondary-container)}.text-on-surface{color:var(--color-on-surface)}.text-on-surface-variant{color:var(--color-on-surface-variant)}.text-on-tertiary{color:var(--color-on-tertiary)}.text-on-tertiary-container{color:var(--color-on-tertiary-container)}.text-primary{color:var(--color-primary)}.text-primary-container{color:var(--color-primary-container)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-current{--tw-ring-color:currentcolor}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-\[--ease-m3-emphasized\]{--tw-ease:--ease-m3-emphasized;transition-timing-function:--ease-m3-emphasized}.ease-\[cubic-bezier\(0\.2\,0\,0\,1\)\]{--tw-ease:cubic-bezier(.2,0,0,1);transition-timing-function:cubic-bezier(.2,0,0,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[-ms-overflow-style\:none\]{-ms-overflow-style:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:max-w-\[60px\]:is(:where(.group):hover *){max-width:60px}.group-hover\:pl-2\.5:is(:where(.group):hover *){padding-left:calc(var(--spacing) * 2.5)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-\[\.added\]\:block:is(:where(.group).added *){display:block}.group-\[\.added\]\:hidden:is(:where(.group).added *){display:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing) * 0)}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-secondary:hover{background-color:var(--color-secondary)}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:bg-surface-variant:hover{background-color:var(--color-surface-variant)}.hover\:bg-tertiary:hover{background-color:var(--color-tertiary)}.hover\:text-on-secondary:hover{color:var(--color-on-secondary)}.hover\:text-on-surface:hover{color:var(--color-on-surface)}.hover\:text-on-tertiary:hover{color:var(--color-on-tertiary)}.hover\:text-tertiary:hover{color:var(--color-tertiary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:backdrop-blur-xl:hover{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-\[current\=\'true\'\]\:opacity-100[aria-current=true]{opacity:1}@media (min-width:840px){.md\:mx-10{margin-inline:calc(var(--spacing) * 10)}}@container (min-width:20rem){.\@xs\:p-4{padding:calc(var(--spacing) * 4)}.\@xs\:p-6{padding:calc(var(--spacing) * 6)}}@container (min-width:24rem){.\@sm\:col-span-1{grid-column:span 1/span 1}.\@sm\:col-span-2{grid-column:span 2/span 2}.\@sm\:col-span-3{grid-column:span 3/span 3}.\@sm\:p-6{padding:calc(var(--spacing) * 6)}.\@sm\:p-8{padding:calc(var(--spacing) * 8)}.\@sm\:px-12{padding-inline:calc(var(--spacing) * 12)}}@container (min-width:28rem){.\@md\:col-span-1{grid-column:span 1/span 1}.\@md\:col-span-2{grid-column:span 2/span 2}.\@md\:col-span-3{grid-column:span 3/span 3}.\@md\:mt-0{margin-top:calc(var(--spacing) * 0)}.\@md\:ml-6{margin-left:calc(var(--spacing) * 6)}.\@md\:w-auto{width:auto}.\@md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@md\:flex-row{flex-direction:row}.\@md\:items-center{align-items:center}.\@md\:p-12{padding:calc(var(--spacing) * 12)}}@container (min-width:32rem){.\@lg\:col-span-3{grid-column:span 3/span 3}.\@lg\:col-span-4{grid-column:span 4/span 4}.\@lg\:px-12{padding-inline:calc(var(--spacing) * 12)}}@container (min-width:36rem){.\@xl\:col-span-4{grid-column:span 4/span 4}.\@xl\:col-span-5{grid-column:span 5/span 5}.\@xl\:auto-cols-\[25\%\]{grid-auto-columns:25%}.\@xl\:auto-cols-\[33\.333333\%\]{grid-auto-columns:33.3333%}.\@xl\:auto-cols-\[50\%\]{grid-auto-columns:50%}.\@xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (min-width:48rem){.\@3xl\:mt-2{margin-top:calc(var(--spacing) * 2)}.\@3xl\:mt-3{margin-top:calc(var(--spacing) * 3)}.\@3xl\:mt-4{margin-top:calc(var(--spacing) * 4)}.\@3xl\:mt-6{margin-top:calc(var(--spacing) * 6)}.\@3xl\:mt-8{margin-top:calc(var(--spacing) * 8)}.\@3xl\:mt-10{margin-top:calc(var(--spacing) * 10)}.\@3xl\:mb-2{margin-bottom:calc(var(--spacing) * 2)}.\@3xl\:mb-3{margin-bottom:calc(var(--spacing) * 3)}.\@3xl\:mb-4{margin-bottom:calc(var(--spacing) * 4)}.\@3xl\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.\@3xl\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.\@3xl\:mb-10{margin-bottom:calc(var(--spacing) * 10)}.\@3xl\:auto-cols-\[25\%\]{grid-auto-columns:25%}.\@3xl\:auto-cols-\[33\.333333\%\]{grid-auto-columns:33.3333%}.\@3xl\:auto-cols-\[50\%\]{grid-auto-columns:50%}.\@3xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@3xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@3xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\@3xl\:gap-2{gap:calc(var(--spacing) * 2)}.\@3xl\:gap-3{gap:calc(var(--spacing) * 3)}.\@3xl\:gap-4{gap:calc(var(--spacing) * 4)}.\@3xl\:gap-6{gap:calc(var(--spacing) * 6)}.\@3xl\:gap-8{gap:calc(var(--spacing) * 8)}.\@3xl\:gap-10{gap:calc(var(--spacing) * 10)}.\@3xl\:px-2{padding-inline:calc(var(--spacing) * 2)}.\@3xl\:px-3{padding-inline:calc(var(--spacing) * 3)}.\@3xl\:px-4{padding-inline:calc(var(--spacing) * 4)}.\@3xl\:px-6{padding-inline:calc(var(--spacing) * 6)}.\@3xl\:px-8{padding-inline:calc(var(--spacing) * 8)}.\@3xl\:px-10{padding-inline:calc(var(--spacing) * 10)}}@container (min-width:64rem){.\@5xl\:mt-4{margin-top:calc(var(--spacing) * 4)}.\@5xl\:mt-6{margin-top:calc(var(--spacing) * 6)}.\@5xl\:mt-8{margin-top:calc(var(--spacing) * 8)}.\@5xl\:mt-10{margin-top:calc(var(--spacing) * 10)}.\@5xl\:mt-12{margin-top:calc(var(--spacing) * 12)}.\@5xl\:mb-4{margin-bottom:calc(var(--spacing) * 4)}.\@5xl\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.\@5xl\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.\@5xl\:mb-10{margin-bottom:calc(var(--spacing) * 10)}.\@5xl\:mb-12{margin-bottom:calc(var(--spacing) * 12)}.\@5xl\:auto-cols-\[20\%\]{grid-auto-columns:20%}.\@5xl\:auto-cols-\[25\%\]{grid-auto-columns:25%}.\@5xl\:auto-cols-\[33\.333333\%\]{grid-auto-columns:33.3333%}.\@5xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@5xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\@5xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.\@5xl\:gap-4{gap:calc(var(--spacing) * 4)}.\@5xl\:gap-6{gap:calc(var(--spacing) * 6)}.\@5xl\:gap-8{gap:calc(var(--spacing) * 8)}.\@5xl\:gap-10{gap:calc(var(--spacing) * 10)}.\@5xl\:gap-12{gap:calc(var(--spacing) * 12)}.\@5xl\:px-4{padding-inline:calc(var(--spacing) * 4)}.\@5xl\:px-6{padding-inline:calc(var(--spacing) * 6)}.\@5xl\:px-8{padding-inline:calc(var(--spacing) * 8)}.\@5xl\:px-10{padding-inline:calc(var(--spacing) * 10)}.\@5xl\:px-12{padding-inline:calc(var(--spacing) * 12)}}@container (min-width:80rem){.\@7xl\:auto-cols-\[16\.666667\%\]{grid-auto-columns:16.6667%}.\@7xl\:auto-cols-\[20\%\]{grid-auto-columns:20%}.\@7xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.\@7xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}[data-scheme=light],[data-theme=light]{--color-primary:#069;--color-on-primary:#ddd;--color-primary-container:#cdf;--color-on-primary-container:#023;--color-inverse-primary:#a4cbeb;--color-secondary:#5c5c5c;--color-on-secondary:#fff;--color-secondary-container:#e6e6e6;--color-on-secondary-container:#333;--color-tertiary:#cc7000;--color-on-tertiary:#fff;--color-tertiary-container:#ec9;--color-on-tertiary-container:#320;--color-error:#c33;--color-on-error:#fff;--color-error-container:#ffedeb;--color-on-error-container:#c11;--color-background:#f9f9fb;--color-on-background:#1a1c1e;--color-surface:#fcf8f8;--color-on-surface:#1c1b1b;--color-surface-variant:#e0e3e3;--color-on-surface-variant:#444748;--color-surface-tint:#3b627e;--color-inverse-surface:#313030;--color-inverse-on-surface:#f4f0ef;--color-surface-dim:#ddd9d9;--color-surface-bright:#fcf8f8;--color-surface-container-lowest:#fff;--color-surface-container-low:#f7f3f2;--color-surface-container:#f1edec;--color-surface-container-high:#ebe7e7;--color-surface-container-highest:#e5e2e1;--color-primary-fixed:#069;--color-on-primary-fixed:#ddd;--color-primary-container-fixed:#00334d;--color-on-primary-container-fixed:#ddd;--color-primary-fixed-dim:#a4cbeb;--color-on-primary-fixed-variant:#214a66;--color-secondary-fixed:#e3e2e2;--color-on-secondary-fixed:#1b1c1c;--color-secondary-fixed-dim:#c7c6c6;--color-on-secondary-fixed-variant:#464747;--color-tertiary-fixed:#ffdcc2;--color-on-tertiary-fixed:#2e1500;--color-tertiary-fixed-dim:#ffb77c;--color-on-tertiary-fixed-variant:#6d3900;--color-outline:#747878;--color-outline-variant:#c4c7c7;--color-shadow:#000;--color-scrim:#000}[data-scheme=dark],[data-theme=dark]{--color-surface-tint:#a4cbeb;--color-inverse-primary:#3b627e;--color-secondary:#c7c6c6;--color-on-secondary:#303031;--color-secondary-container:#222;--color-on-secondary-container:#e6e6e6;--color-tertiary:#ffb77c;--color-on-tertiary:#4d2700;--color-tertiary-container:#640;--color-on-tertiary-container:#dc9;--color-error:#ffb3ad;--color-on-error:#680009;--color-error-container:#c33;--color-on-error-container:#ffedeb;--color-background:#121415;--color-on-background:#e2e2e5;--color-surface:#141313;--color-on-surface:#e5e2e1;--color-surface-variant:#444748;--color-on-surface-variant:#c4c7c7;--color-surface-dim:#141313;--color-surface-bright:#3a3939;--color-surface-container-lowest:#0e0e0e;--color-surface-container-low:#1c1b1b;--color-surface-container:#201f1f;--color-surface-container-high:#2a2a2a;--color-surface-container-highest:#353434;--color-inverse-surface:#e5e2e1;--color-inverse-on-surface:#313030;--color-primary-fixed:#cae6ff;--color-on-primary-fixed:#001e2f;--color-primary-fixed-dim:#a4cbeb;--color-on-primary-fixed-variant:#214a66;--color-secondary-fixed:#e3e2e2;--color-on-secondary-fixed:#1b1c1c;--color-secondary-fixed-dim:#c7c6c6;--color-on-secondary-fixed-variant:#464747;--color-tertiary-fixed:#ffdcc2;--color-on-tertiary-fixed:#2e1500;--color-tertiary-fixed-dim:#ffb77c;--color-on-tertiary-fixed-variant:#6d3900;--color-outline:#8e9192;--color-outline-variant:#444748;--color-shadow:#000;--color-scrim:#000}@media (prefers-color-scheme:dark){:root:not([data-scheme=light]):not([data-theme=light]){--color-surface-tint:#a4cbeb;--color-inverse-primary:#3b627e;--color-secondary:#c7c6c6;--color-on-secondary:#303031;--color-secondary-container:#222;--color-on-secondary-container:#e6e6e6;--color-tertiary:#ffb77c;--color-on-tertiary:#4d2700;--color-tertiary-container:#640;--color-on-tertiary-container:#dc9;--color-error:#ffb3ad;--color-on-error:#680009;--color-error-container:#c33;--color-on-error-container:#ffedeb;--color-background:#121415;--color-on-background:#e2e2e5;--color-surface:#141313;--color-on-surface:#e5e2e1;--color-surface-variant:#444748;--color-on-surface-variant:#c4c7c7;--color-surface-dim:#141313;--color-surface-bright:#3a3939;--color-surface-container-lowest:#0e0e0e;--color-surface-container-low:#1c1b1b;--color-surface-container:#201f1f;--color-surface-container-high:#2a2a2a;--color-surface-container-highest:#353434;--color-inverse-surface:#e5e2e1;--color-inverse-on-surface:#313030;--color-primary-fixed:#cae6ff;--color-on-primary-fixed:#001e2f;--color-primary-fixed-dim:#a4cbeb;--color-on-primary-fixed-variant:#214a66;--color-secondary-fixed:#e3e2e2;--color-on-secondary-fixed:#1b1c1c;--color-secondary-fixed-dim:#c7c6c6;--color-on-secondary-fixed-variant:#464747;--color-tertiary-fixed:#ffdcc2;--color-on-tertiary-fixed:#2e1500;--color-tertiary-fixed-dim:#ffb77c;--color-on-tertiary-fixed-variant:#6d3900;--color-outline:#8e9192;--color-outline-variant:#444748;--color-shadow:#000;--color-scrim:#000}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
@@ -0,0 +1,176 @@
1
+ /*! mBlox Unified JS | Generated: 2026-06-05T13:58:27.149Z */
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:()=>Ie,BLOCK_CARD:()=>B,BLOCK_COMMENT:()=>y,BLOCK_COVER:()=>f,BLOCK_GALLERY:()=>O,BLOCK_LIST:()=>v,BLOCK_PANCAKE:()=>I,BLOCK_QUOTE:()=>C,BLOCK_SHOWCASE:()=>L,BLOCK_STACK:()=>S,BREAKPOINTS:()=>ce,DEFAULT_COLUMN_COUNTS:()=>Te,LAYOUT_CLASSES:()=>fe,M3E_PALETTES:()=>he,RESPONSIVE_CAROUSEL_CLASSES_M3E:()=>pe,RESPONSIVE_COLUMN_MAP:()=>me,RESPONSIVE_GRID_CLASSES_M3E:()=>R,getBreakpointIndex:()=>Ae,noImg:()=>_});function Ae(e){return e<ce.sm?0:e<ce.md?1:e<ce.lg?2:e<ce.xl?3:4}var f,L,v,B,O,I,S,C,y,_,Te,ce,me,pe,R,he,fe,Ie,x=St(()=>{f="v",L="s",v="l",B="c",O="g",I="p",S="t",C="q",y="m",_=window.noImg||"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzljYTNhZiI+PHBhdGggZD0iTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6Ii8+PC9zdmc+",Te={v:1,m:1,t:1,p:3,c:4,q:4,g:5,l:2,s:6},ce={sm:600,md:840,lg:1200,xl:1600},me={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]};pe={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"},he={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"}},fe={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"}},Ie={"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 G(e){if(!e)return[];let t=/#([a-zA-Z0-9_]+)/g,o=e.match(t);return o?o.map(r=>r.toLowerCase()):[]}function ue(e){return new Promise((t,o)=>{let r=`jsonp_callback_${Math.round(1e5*Math.random())}`,a=document.createElement("script");a.src=`${e}&callback=${r}`,window[r]=function(s){delete window[r],document.head.removeChild(a),t(s)},a.onerror=function(){delete window[r],document.head.removeChild(a);let s=`JSONP request to ${e} failed.`;console.error(s),o(new Error(s))},document.head.appendChild(a)})}function We(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(a=>a.name):[],...G(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 Ge(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 l=n=>{let i=s.querySelector(n);return i?i.textContent:""};if(o){let n=l("yt\\:videoId"),i=s.querySelector("media\\:group"),c=i&&i.querySelector("media\\:thumbnail[url]")?.getAttribute("url")||"";return{title:l("title"),content:l("media\\:description")||"",authorName:l("author > name")||e.querySelector("channel > title, feed > title")?.textContent||"Unknown",publishedDate:l("published"),url:s.querySelector('link[rel="alternate"]')?.getAttribute("href")||"",thumbnailUrl:c,videoId:n,authorUri:l("author > uri")||"",authorImage:"",labels:[...new Set([...Array.from(s.querySelectorAll("category")).map(d=>d.textContent),...G(l("title")+" "+(l("media\\:description")||""))])],commentCount:0,commentsUrl:"",viewCount:l("media\\:statistics[views]")||0,updatedDate:l("updated")||""}}else{let n=s.querySelector("media\\:thumbnail[url], thumbnail[url]")?.getAttribute("url")||"";if(!n){let c=(l("description")||l("content")).match(/<img[^>]+src="([^">]+)"/);c&&(n=c[1])}return{title:l("title"),content:l("description")||l("content"),authorName:l("dc\\:creator, author > name")||e.querySelector("channel > title, feed > title")?.textContent||"Unknown",publishedDate:l("pubDate, published"),url:l("link")||s.querySelector("link[href]")?.getAttribute("href")||"",thumbnailUrl:n,authorUri:l("author > uri")||"",authorImage:"",labels:[...new Set([...Array.from(s.querySelectorAll("category")).map(i=>i.textContent),...G(l("title")+" "+(l("description")||l("content")))])],commentCount:l("slash\\:comments")?parseInt(l("slash\\:comments"),10):0,commentsUrl:l("comments")||l("link")||s.querySelector("link[href]")?.getAttribute("href")||"",viewCount:0,updatedDate:l("updated")||""}}}),a=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:a}}function ve(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 a="";if(t){let l=r.link.match(/v=([^&]+)/);a=l?l[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 l=r.content.match(/<img[^>]+src="([^">]+)"/);l&&(s=l[1])}return{title:r.title,content:r.description||r.content||"",authorName:r.author||"Unknown",publishedDate:r.pubDate,url:r.link,thumbnailUrl:s,videoId:a,authorUri:"",authorImage:"",labels:[...new Set([...r.categories||[],...G((r.title||"")+" "+(r.description||r.content||""))])],commentCount:0,commentsUrl:"",viewCount:0,updatedDate:r.updated||""}}),totalResults:e.items.length,feedUrl:e.feed.link}}function Ye(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,a="";if(r.thumbnail&&r.thumbnail.startsWith("http"))a=r.thumbnail;else if(r.preview&&r.preview.images&&r.preview.images.length>0){let l=r.preview.images[0].source.url;a=l?l.replace(/&amp;/g,"&"):""}let s="";return r.selftext_html?s=r.selftext_html.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/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}" />`,a||(a=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:a,videoId:"",authorUri:`https://www.reddit.com/user/${r.author}`,authorImage:"",labels:[...new Set([...r.link_flair_text?[r.link_flair_text]:[],...G((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 Qe(e){if(!e.feed||!e.feed.entry)return{posts:[],totalResults:0,feedUrl:""};let t=e.feed.entry.map(r=>{let a="content"in r?r.content.$t:"summary"in r?r.summary.$t:"",s="";if(a){let n=new DOMParser().parseFromString(a,"text/html").querySelector("img");n&&(s=n.src)}return{title:r.title.$t,content:a,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(l=>l.rel==="alternate")||{}).href||"",thumbnailUrl:s,labels:[...new Set([...r.category?r.category.map(l=>l.term):[],...G((r.title.$t||"")+" "+a)])],commentCount:r.thr$total?parseInt(r.thr$total.$t,10):0,commentsUrl:(r.link.find(l=>l.rel==="replies"&&l.type==="text/html")||{}).href||(r.link.find(l=>l.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 ie=900*1e3,A=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,a=setTimeout(()=>r.abort(),5e3),s=await fetch(o.url,{signal:r.signal});if(clearTimeout(a),s.ok){let l;if(o.type==="json"?l=(await s.json()).contents:l=await s.text(),l&&l.length>0){if(e.includes("/wp-json")){let n=l.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:l,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=A.get(t);if(o&&Date.now()-o.timestamp<ie)return o.data;let{text:r,response:a}=await Je(t);try{let s=JSON.parse(r),l=We(s,a.headers);return A.set(t,{data:l,timestamp:Date.now()}),l}catch(s){throw console.error("mBlox: Failed to parse WordPress JSON.",s),new Error("Invalid JSON response from WordPress feed.")}}},Y=class{constructor(t){this.config=t}_buildFeedUrl(){return this.config.siteURL}async fetch(){let t=this._buildFeedUrl(),o=A.get(t);if(o&&Date.now()-o.timestamp<ie)return o.data;let{text:r}=await Je(t),s=new DOMParser().parseFromString(r,"text/xml");if(s.getElementsByTagName("parsererror").length)throw new Error("Failed to parse RSS feed.");let l=Ge(s);return A.set(t,{data:l,timestamp:Date.now()}),l}},ye=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=A.get(t);if(o&&Date.now()-o.timestamp<ie)return o.data;let r=await ue(t),a=ve(r);return A.set(t,{data:a,timestamp:Date.now()}),a}},ne=class{constructor(t){this.config=t}_buildFeedUrl(){let t=this.config.siteURL+"feeds/";switch(this.config.contentType){case"recent":t+="posts"+(this.config.showImage?"/default":"/summary");break;case"comments":t+="comments"+(this.config.showImage?"/default":"/summary");break;default:t+="posts"+(this.config.showImage?"/default":"/summary")+"/-/"+this.config.labelName}return t+=`?alt=json-in-script&start-index=${(this.config.stageID-1)*this.config.postsPerBlock+1}&max-results=${this.config.postsPerBlock}`,t}async fetch(){let t=this._buildFeedUrl(),o=A.get(t);if(o&&Date.now()-o.timestamp<ie)return o.data;let r=await ue(t),a=Qe(r);return A.set(t,{data:a,timestamp:Date.now()}),a}},$e=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=A.get(t);if(o&&Date.now()-o.timestamp<ie)return o.data;try{let r=await window.fetch(t);if(!r.ok)throw new Error("Native fetch failed");let a=await r.text(),s=JSON.parse(a),l=Ye(s);return A.set(t,{data:l,timestamp:Date.now()}),l}catch{console.warn("mBlox: Reddit native fetch failed (CORS/403). Falling back to rss2json...");let a=t.replace(".json",".rss"),s=`https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(a)}`,l=await ue(s),n=ve(l);return n.posts.forEach(i=>{i.authorName&&i.authorName.startsWith("/u/")&&(i.authorUri=`https://www.reddit.com${i.authorName}`)}),A.set(t,{data:n,timestamp:Date.now()}),n}}},we=class extends Y{_buildFeedUrl(){let t=this.config.siteURL.replace(/\/$/,"");return t.endsWith("/rss")||(t+="/rss"),t}},Se=class extends Y{_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 $e(e):t.includes("tumblr.com")?new we(e):t.includes("mastodon.social")||t.includes("bsky.app")?new Se(e):t.includes("deviantart.com")?new Y(e):t.includes("/wp-json")?new Ce(e):t.includes("youtube.com")?new ye(e):o.endsWith(".xml")||t.includes("/feed")||o.endsWith(".rss")||o.endsWith("/rss")?new Y(e):new ne(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)),a=Ae(window.innerWidth),s=me[r]||me[6];o.actualColumnCount=s[a],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=Te[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(K){console.error("mBlox: Failed to parse embedded JSON configuration.",K)}let r=(K,q,se)=>{if(t[q]!==void 0)return t[q];let E=e.getAttribute(`data-${K}`);return E!==null?E:se},a=(K,q,se)=>{if(t[q]!==void 0)return!!t[q];let E=e.getAttribute(`data-${K}`);return E!==null?E.toLowerCase()==="true":se},s=(K,q,se)=>{if(t[q]!==void 0)return parseInt(t[q],10);let E=e.getAttribute(`data-${K}`);return E!==null?parseInt(E,10):se},l=r("label","label","Label Name missing"),n=r("contentType","contentType","recent").toLowerCase(),i=r("feed","feed","/"),c=r("title","title",""),d=r("description","description",""),m=r("type","type","v-ih"),p=m.toLowerCase(),u=p.substring(0,1),h=p.substring(1),g=m.substring(1),b=r("theme","theme","auto").toLowerCase(),$=h.includes("h"),w=h.includes("i"),j=h.includes("s"),re=h.includes("a"),N=h.includes("d"),V=h.includes("o"),P=h.includes("l"),z=g.includes("D")?"long":"short",F=s("s","s",1),oe=!e.hasAttribute("data-s")&&t.s===void 0,ae=s("posts","posts",3),Le=["light","dark","auto"].includes(b)?b:"auto",W=r("palette","palette","surface").toLowerCase(),M=W;he[M]||(M="surface");let bt=he[M],Lt=r("textVAlign","textVAlign","").toLowerCase(),Ve=r("iBlur","iBlur","").toLowerCase(),Pe=r("iFix","iFix","").toLowerCase(),ze=e.closest(".widget"),gt=(ze?ze.getAttribute("ID"):c+p+l).replace(/[\s#.&?,[\]]/g,"-"),vt=z==="long"?{year:"numeric",month:"short",day:"numeric"}:{month:"short",day:"numeric"},Ct=N?new Intl.DateTimeFormat("en-US",vt):null,Fe=r("cols","cols",null),yt=r("rows","rows","1"),$t=r("overlay-items","overlayItems","vcasb").toLowerCase().split(""),ge={labelName:l,contentType:n,siteURL:i,mBlockTitle:c,mBlockDescription:d,blockType:u,showHeader:$,showImage:w,showSnippet:j,showAuthor:re,showDate:N,showOverlay:V,showLabels:P,columnCount:Fe!==null?parseInt(Fe,10):null,blockRows:parseInt(yt,10),isCarousel:a("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:r("corner","corner","").toLowerCase()=="sharp"?" rounded-none":" rounded-3xl",aspectRatio:` ${Ie[r("ar","ar","1/1").replace("x","/").toLowerCase()]||"aspect-square"}`,isImageFixed:Pe==="true"||t.iFix===!0?!0:Pe==="false"||t.iFix===!1?!1:null,hasRoundedBorder:a("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:F,firstInstance:oe,postsPerBlock:ae,mBlockID:gt,dateFormatter:Ct,dateStyle:z,paletteName:W,mBloxTheme:Le,interactionClasses:W==="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 ge.layout=fe[ge.gutterSize*2]||fe[6],Tt(ge)}x();function tt(e){let t=Array.from(e.querySelectorAll(".m-blox-image-to-load"));if(!t.length)return;let o=new IntersectionObserver((r,a)=>{r.forEach(s=>{if(!s.isIntersecting)return;let l=s.target,n=l.tagName==="FIGURE",i=l.getAttribute("data-is-fixed")==="true",c=l.getAttribute("data-img-high"),d=c,m=window.devicePixelRatio||1,p;if(i?p=Math.max(window.innerWidth,window.innerHeight)*m:p=l.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=()=>{l.style.backgroundImage=`url("${d}")`,i&&(l.style.backgroundAttachment="fixed",l.style.backgroundPosition="center center",l.style.backgroundSize="cover")},u.onerror=()=>{Promise.resolve().then(()=>(x(),ke)).then(({noImg:h})=>{l.style.backgroundImage=`url("${h}")`,l.setAttribute("data-img-high",h)})},u.src=d}else l.onerror=()=>{Promise.resolve().then(()=>(x(),ke)).then(({noImg:u})=>{l.src=u,l.setAttribute("data-img-high",u),l.onerror=null})},l.src=d;a.unobserve(l)})},{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
+ <symbol id="icon-bookmark-add" viewBox="0 -960 960 960" fill="currentColor">
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
+ </symbol>
6
+ <symbol id="icon-bookmark-added" viewBox="0 -960 960 960" fill="currentColor">
7
+ <path d="m438-400 198-198-57-56-141 141-57-57-57 57zM200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240z"/>
8
+ </symbol>
9
+ <symbol id="icon-caret-left" viewBox="0 0 16 16" fill="currentColor">
10
+ <path d="M3.86 8.753l5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z"/>
11
+ </symbol>
12
+ <symbol id="icon-caret-right" viewBox="0 0 16 16" fill="currentColor">
13
+ <path d="M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z"/>
14
+ </symbol>
15
+ <symbol id="icon-comment-bubble" viewBox="0 -960 960 960" fill="currentColor">
16
+ <path d="M240-240 131-131q-14 14-32.5 6.5T80-152v-668q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18z"/>
17
+ </symbol>
18
+ <symbol id="icon-eye" viewBox="0 0 24 24" fill="currentColor">
19
+ <path d="M15.58 12c0 1.98-1.6 3.58-3.58 3.58S8.42 13.98 8.42 12s1.6-3.58 3.58-3.58 3.58 1.6 3.58 3.58" class="c"/><path d="M12 20.27c3.53 0 6.82-2.08 9.11-5.68.9-1.41.9-3.78 0-5.19-2.29-3.6-5.58-5.68-9.11-5.68S5.18 5.8 2.89 9.4c-.9 1.41-.9 3.78 0 5.19 2.29 3.6 5.58 5.68 9.11 5.68"/>
20
+ </symbol>
21
+ <symbol id="icon-progress-m3e" viewBox="0 0 56 56" fill="currentColor">
22
+ <path class="fill-primary-container" d="M 28.00 8.00 L 28.35 7.79 L 28.71 7.60 L 29.08 7.42 L 29.45 7.26 L 29.83 7.12 L 30.21 7.00 L 30.59 6.91 L 30.97 6.86 L 31.35 6.84 L 31.73 6.85 L 32.10 6.90 L 32.47 6.98 L 32.83 7.09 L 33.17 7.24 L 33.51 7.43 L 33.84 7.64 L 34.15 7.88 L 34.45 8.14 L 34.74 8.42 L 35.02 8.72 L 35.28 9.04 L 35.53 9.36 L 35.77 9.69 L 36.01 10.01 L 36.24 10.34 L 36.46 10.66 L 36.68 10.97 L 36.90 11.26 L 37.12 11.54 L 37.35 11.80 L 37.58 12.05 L 37.83 12.27 L 38.08 12.48 L 38.35 12.66 L 38.62 12.83 L 38.92 12.97 L 39.22 13.10 L 39.55 13.22 L 39.88 13.32 L 40.24 13.42 L 40.60 13.51 L 40.97 13.59 L 41.36 13.68 L 41.75 13.76 L 42.14 13.86 L 42.54 13.96 L 42.93 14.08 L 43.32 14.21 L 43.69 14.36 L 44.06 14.52 L 44.41 14.71 L 44.74 14.92 L 45.05 15.15 L 45.33 15.41 L 45.59 15.68 L 45.82 15.98 L 46.02 16.29 L 46.20 16.63 L 46.34 16.98 L 46.45 17.35 L 46.53 17.73 L 46.58 18.12 L 46.61 18.52 L 46.61 18.92 L 46.59 19.33 L 46.56 19.74 L 46.51 20.14 L 46.45 20.55 L 46.38 20.94 L 46.31 21.34 L 46.24 21.72 L 46.18 22.09 L 46.13 22.46 L 46.09 22.81 L 46.06 23.16 L 46.06 23.50 L 46.07 23.83 L 46.10 24.15 L 46.16 24.47 L 46.24 24.78 L 46.34 25.09 L 46.47 25.40 L 46.62 25.71 L 46.78 26.03 L 46.96 26.34 L 47.16 26.66 L 47.36 26.99 L 47.57 27.32 L 47.79 27.65 L 48.00 28.00 L 48.21 28.35 L 48.40 28.71 L 48.58 29.08 L 48.74 29.45 L 48.88 29.83 L 49.00 30.21 L 49.09 30.59 L 49.14 30.97 L 49.16 31.35 L 49.15 31.73 L 49.10 32.10 L 49.02 32.47 L 48.91 32.83 L 48.76 33.17 L 48.57 33.51 L 48.36 33.84 L 48.12 34.15 L 47.86 34.45 L 47.58 34.74 L 47.28 35.02 L 46.96 35.28 L 46.64 35.53 L 46.31 35.77 L 45.99 36.01 L 45.66 36.24 L 45.34 36.46 L 45.03 36.68 L 44.74 36.90 L 44.46 37.12 L 44.20 37.35 L 43.95 37.58 L 43.73 37.83 L 43.52 38.08 L 43.34 38.35 L 43.17 38.62 L 43.03 38.92 L 42.90 39.22 L 42.78 39.55 L 42.68 39.88 L 42.58 40.24 L 42.49 40.60 L 42.41 40.97 L 42.32 41.36 L 42.24 41.75 L 42.14 42.14 L 42.04 42.54 L 41.92 42.93 L 41.79 43.32 L 41.64 43.69 L 41.48 44.06 L 41.29 44.41 L 41.08 44.74 L 40.85 45.05 L 40.59 45.33 L 40.32 45.59 L 40.02 45.82 L 39.71 46.02 L 39.37 46.20 L 39.02 46.34 L 38.65 46.45 L 38.27 46.53 L 37.88 46.58 L 37.48 46.61 L 37.08 46.61 L 36.67 46.59 L 36.26 46.56 L 35.86 46.51 L 35.45 46.45 L 35.06 46.38 L 34.66 46.31 L 34.28 46.24 L 33.91 46.18 L 33.54 46.13 L 33.19 46.09 L 32.84 46.06 L 32.50 46.06 L 32.17 46.07 L 31.85 46.10 L 31.53 46.16 L 31.22 46.24 L 30.91 46.34 L 30.60 46.47 L 30.29 46.62 L 29.97 46.78 L 29.66 46.96 L 29.34 47.16 L 29.01 47.36 L 28.68 47.57 L 28.35 47.79 L 28.00 48.00 L 27.65 48.21 L 27.29 48.40 L 26.92 48.58 L 26.55 48.74 L 26.17 48.88 L 25.79 49.00 L 25.41 49.09 L 25.03 49.14 L 24.65 49.16 L 24.27 49.15 L 23.90 49.10 L 23.53 49.02 L 23.17 48.91 L 22.83 48.76 L 22.49 48.57 L 22.16 48.36 L 21.85 48.12 L 21.55 47.86 L 21.26 47.58 L 20.98 47.28 L 20.72 46.96 L 20.47 46.64 L 20.23 46.31 L 19.99 45.99 L 19.76 45.66 L 19.54 45.34 L 19.32 45.03 L 19.10 44.74 L 18.88 44.46 L 18.65 44.20 L 18.42 43.95 L 18.17 43.73 L 17.92 43.52 L 17.65 43.34 L 17.38 43.17 L 17.08 43.03 L 16.78 42.90 L 16.45 42.78 L 16.12 42.68 L 15.76 42.58 L 15.40 42.49 L 15.03 42.41 L 14.64 42.32 L 14.25 42.24 L 13.86 42.14 L 13.46 42.04 L 13.07 41.92 L 12.68 41.79 L 12.31 41.64 L 11.94 41.48 L 11.59 41.29 L 11.26 41.08 L 10.95 40.85 L 10.67 40.59 L 10.41 40.32 L 10.18 40.02 L 9.98 39.71 L 9.80 39.37 L 9.66 39.02 L 9.55 38.65 L 9.47 38.27 L 9.42 37.88 L 9.39 37.48 L 9.39 37.08 L 9.41 36.67 L 9.44 36.26 L 9.49 35.86 L 9.55 35.45 L 9.62 35.06 L 9.69 34.66 L 9.76 34.28 L 9.82 33.91 L 9.87 33.54 L 9.91 33.19 L 9.94 32.84 L 9.94 32.50 L 9.93 32.17 L 9.90 31.85 L 9.84 31.53 L 9.76 31.22 L 9.66 30.91 L 9.53 30.60 L 9.38 30.29 L 9.22 29.97 L 9.04 29.66 L 8.84 29.34 L 8.64 29.01 L 8.43 28.68 L 8.21 28.35 L 8.00 28.00 L 7.79 27.65 L 7.60 27.29 L 7.42 26.92 L 7.26 26.55 L 7.12 26.17 L 7.00 25.79 L 6.91 25.41 L 6.86 25.03 L 6.84 24.65 L 6.85 24.27 L 6.90 23.90 L 6.98 23.53 L 7.09 23.17 L 7.24 22.83 L 7.43 22.49 L 7.64 22.16 L 7.88 21.85 L 8.14 21.55 L 8.42 21.26 L 8.72 20.98 L 9.04 20.72 L 9.36 20.47 L 9.69 20.23 L 10.01 19.99 L 10.34 19.76 L 10.66 19.54 L 10.97 19.32 L 11.26 19.10 L 11.54 18.88 L 11.80 18.65 L 12.05 18.42 L 12.27 18.17 L 12.48 17.92 L 12.66 17.65 L 12.83 17.38 L 12.97 17.08 L 13.10 16.78 L 13.22 16.45 L 13.32 16.12 L 13.42 15.76 L 13.51 15.40 L 13.59 15.03 L 13.68 14.64 L 13.76 14.25 L 13.86 13.86 L 13.96 13.46 L 14.08 13.07 L 14.21 12.68 L 14.36 12.31 L 14.52 11.94 L 14.71 11.59 L 14.92 11.26 L 15.15 10.95 L 15.41 10.67 L 15.68 10.41 L 15.98 10.18 L 16.29 9.98 L 16.63 9.80 L 16.98 9.66 L 17.35 9.55 L 17.73 9.47 L 18.12 9.42 L 18.52 9.39 L 18.92 9.39 L 19.33 9.41 L 19.74 9.44 L 20.14 9.49 L 20.55 9.55 L 20.94 9.62 L 21.34 9.69 L 21.72 9.76 L 22.09 9.82 L 22.46 9.87 L 22.81 9.91 L 23.16 9.94 L 23.50 9.94 L 23.83 9.93 L 24.15 9.90 L 24.47 9.84 L 24.78 9.76 L 25.09 9.66 L 25.40 9.53 L 25.71 9.38 L 26.03 9.22 L 26.34 9.04 L 26.66 8.84 L 26.99 8.64 L 27.32 8.43 L 27.65 8.21 L 28.00 8.00 Z" pathLength="100" stroke="currentColor" stroke-dasharray="100" stroke-width="3" style="stroke-dashoffset: var(--scroll-progress, 100); transition: stroke-dashoffset 150ms ease-in-out;"></path>
23
+ </symbol>
24
+ <symbol id="icon-quote" viewBox="0 0 448 512" fill="currentColor">
25
+ <path d="M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64h-64c-35.3 0-64-28.7-64-64z"/>
26
+ </symbol>
27
+ <symbol id="icon-share" viewBox="0 -960 960 960" fill="currentColor">
28
+ <path d="M686-80q-47.5 0-80.75-33.25T572-194q0-8 5-34L278-403q-16.28 17.34-37.64 27.17T194-366q-47.5 0-80.75-33T80-480t33.25-81T194-594q24 0 45 9.3 21 9.29 37 25.7l301-173q-2-8-3.5-16.5T572-766q0-47.5 33.25-80.75T686-880t80.75 33.25T800-766t-33.25 80.75T686-652q-23.27 0-43.64-9Q622-670 606-685L302-516q3 8 4.5 17.5t1.5 18-1 16-3 15.5l303 173q16-15 36.09-23.5 20.1-8.5 43.07-8.5Q734-308 767-274.75T800-194t-33.25 80.75T686-80"/>
29
+ </symbol>
30
+ <symbol id="icon-verified" viewBox="0 -960 960 960" fill="currentColor">
31
+ <path d="m437-433-73-76q-9-10-22-10t-23 9q-10 10-10 23t10 23l97 96q9 9 21 9t21-9l183-182q9-9 9-22t-10-22q-9-8-21.5-7.5T598-593zM332-84l-62-106-124-25q-11-2-18.5-12t-5.5-21l14-120-79-92q-8-8-8-20t8-20l79-91-14-120q-2-11 5.5-21t18.5-12l124-25 62-107q6-10 17-14t22 1l109 51 109-51q11-5 22-1.5t17 13.5l63 108 123 25q11 2 18.5 12t5.5 21l-14 120 79 91q8 8 8 20t-8 20l-79 92 14 120q2 11-5.5 21T814-215l-123 25-63 107q-6 10-17 13.5T589-71l-109-51-109 51q-11 5-22 1t-17-14"/>
32
+ </symbol>
33
+ <symbol id="icon-youtube" viewBox="0 0 16 16" fill="currentColor">
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
+ </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=R[t.columnCount]||R[6];return`<div class="${t.layout.gap} grid ${o}">${e.join("")}</div>`}x();function at(e,t){if(!e||e.length===0)return"";let o=pe[t.columnCount]||pe[6],a={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 ${a} ${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 lt(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,a=R[r]||R[6],s="";if(e.length>1){t.showHeader&&r--;let l=R[r]||R[6],n=o[t.columnCount]||"col-span-1";s=`<div class="${t.layout.gap} ${n} px-0 grid ${l}">${e.slice(1).join("")}</div>`}return`<div class="${t.layout.gap} col flex-grow-1 grid ${a}">${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:"",a=o&&o.posts?o.posts.length:0,s=Math.ceil(a/(t.blockRows||1)),l="";if(s>1){let n=t.blockType==="v"?"bottom-12":"bottom-3",i=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("");l=`<div class="carousel-indicators flex justify-center gap-2 mt-2 absolute ${n} left-0 right-0 z-10">${i}</div>`}return`${r}${l}`}function mt(e,t){if(!t.isCarousel)return;let o=e.querySelector(".overflow-x-auto"),r=e.querySelector(".js-carousel-prev"),a=e.querySelector(".js-carousel-next");if(!o)return;r&&r.addEventListener("click",()=>{o.scrollBy({left:-o.clientWidth,behavior:"smooth"})}),a&&a.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 l,n=()=>{l=setInterval(()=>{o.scrollLeft+o.clientWidth>=o.scrollWidth-5?o.scrollTo({left:0,behavior:"smooth"}):o.scrollBy({left:o.clientWidth,behavior:"smooth"})},4e3)},i=()=>{l&&clearInterval(l)};n(),e.addEventListener("mouseenter",i),e.addEventListener("mouseleave",n)}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`,a=e.isCarousel,s=a?"js-carousel-prev":"nav-prev",l=a?"js-carousel-next":"nav-next",n=`<button class="${r} left-0 ${s}" type="button" title="Previous" aria-label="Previous">
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>`,i=`<button class="${r} right-0 ${l}" title="Next" type="button" aria-label="Next">
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(a)return`${n}${i}`;let c=t?Math.ceil(t.totalResults/e.postsPerBlock):1;return[e.stageID>1?n:"",e.stageID<c?i:""].join("")}x();function D(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 U(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 Be(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 xe(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 _e(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 Oe={};k(Oe,{render:()=>kt});x();function ft(e,t){if(!t.showOverlay)return"";let o="";t.overlayItems.includes("v")&&e.viewCount&&e.viewCount>0&&(o=`
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
+ <svg aria-hidden="true" class="w-4 h-4"><use href="#icon-eye"></use></svg>
44
+ <span class="text-[0.625rem]">${e.viewCount}</span>
45
+ </div>`);let r="";if(t.overlayItems.includes("c")){let n=e.commentsUrl||e.url,i=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="${n}">
47
+ <svg aria-hidden="true" class="w-4 h-4"><use href="#icon-comment-bubble"></use></svg>
48
+ ${i}
49
+ </a>`}let a="";t.overlayItems.includes("b")&&(a=`
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,"&quot;")}" data-bm-url="${e.url}" data-bm-image="${e.thumbnailUrl||""}" type="button">
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>
52
+ <div class="w-6 h-6 flex items-center justify-center shrink-0">
53
+ <svg aria-hidden="true" class="w-4 h-4 bm-add-icon group-[.added]:hidden"><use href="#icon-bookmark-add"></use></svg>
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
+ </div>
56
+ </button>`);let s="";if(t.overlayItems.includes("a")&&e.authorName&&e.authorName!=="Unknown"&&e.authorName!=="Anonymous"){let n='<svg aria-hidden="true" class="w-4 h-4 text-primary"><use href="#icon-verified"></use></svg>',i="";e.authorImage&&!e.authorImage.includes("blogblog.com")&&(i=`<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
+ ${i}
58
+ <span>${e.authorName}</span>${n}
59
+ `;e.authorUri?s=`
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
+ ${c}
62
+ </a>`:s=`
63
+ <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"} text-[0.625rem] font-semibold transition-colors pointer-events-auto">
64
+ ${c}
65
+ </div>`}let l="";return t.overlayItems.includes("s")&&(l=`
66
+ <button aria-label="Share" class="w-6 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-colors pointer-events-auto" data-action="share-native" data-title="${e.title.replace(/"/g,"&quot;")}" data-url="${e.url}">
67
+ <svg aria-hidden="true" class="w-4 h-4"><use href="#icon-share"></use></svg>
68
+ </button>`),`
69
+ <div class="absolute top-0 left-0 right-0 p-3 flex items-start justify-between pointer-events-none z-20">
70
+ <div class="flex items-center gap-2 pointer-events-auto">
71
+ ${o}
72
+ </div>
73
+ <div class="flex items-center gap-2 pointer-events-auto">
74
+ ${r}
75
+ ${a}
76
+ </div>
77
+ </div>
78
+ <div class="absolute bottom-0 left-0 right-0 p-3 flex items-end justify-between pointer-events-none z-20">
79
+ <div class="flex items-center gap-2 pointer-events-auto">
80
+ ${s}
81
+ </div>
82
+ <div class="flex items-center gap-2 pointer-events-auto">
83
+ ${l}
84
+ </div>
85
+ </div>`}function H(e,t,o,r){if(!o.showImage)return{imageCode:"",showcaseImageCode:"",videoThumbnailURL:"",highResImageURL:""};let{postSnippet:a,videoID:s,postTitle:l,thumbnailUrl:n,authorImage:i,post:c}=r,d=n||"",m=d||o.imageURL||_;if(!m)if(o.contentType=="comments")i&&!i.includes("blogblog.com")?m=i:m=_;else{let M=new DOMParser().parseFromString(a||"","text/html").querySelector("img");m=M?M.getAttribute("src"):_}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 $=h.figure,w="",j="";if(e==="s"){w=`data-toggle="tooltip" data-vidid="${s}"`;let W=ht(s),M=o.cornerStyle===" rounded"?" rounded-t-3xl":o.cornerStyle;t===0&&(j=`<figure class="m-0 ${b.join(" ")} ${o.aspectRatio} ${M} m-blox-image-to-load relative cursor-pointer" data-img-high="${p}" data-is-fixed="true" style="${o.articleHeight}" role="img" loading="lazy" title="${l}" aria-label="${l} image" ${w}>${W}</figure>`)}o.blurImage&&o.contentType!=="comments"&&b.push("blur-sm");let re="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",V=o.blockType==="s"||o.blockType==="l"?t===0&&o.isImageFixed:o.isImageFixed,P=o.isBloggerFeed?" m-blox-image-to-load":"",z=o.isBloggerFeed?re:m,F=xe(s),oe=`w-full ${b.join(" ")} ${P}`.replace(/\s+/g," "),ae=`m-0 relative ${$} ${b.join(" ")} ${P}`.replace(/\s+/g," "),le=c?ft(c,o):"";return{imageCode:V?`<figure class="${ae} group" data-img-high="${p}" data-is-fixed="true" style="${o.articleHeight}" role="img" loading="lazy" aria-label="${l} image"${w}>${le}${F}</figure>`:`<figure class="m-0 relative ${$} group"><img class="${oe}" style="${g}" src="${z}" data-img-high="${p}" alt="${l} image" loading="lazy" title="${l}" ${w}/>${le}${F}</figure>`,showcaseImageCode:j,videoThumbnailURL:d,highResImageURL:p}}x();function Q(e,t,o,r){if(!t.callToAction||e==="g")return"";let a=t.ctaAlign||"right",s="";e==="t"||e==="c"||e==="m"||e==="p"||e==="q"?a==="left"?s="mt-auto self-start":a==="center"?s="mt-auto self-center":s="mt-auto self-end":e==="v"?a==="left"?s="mx-0 md:mx-10 mt-8 self-start":a==="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 l=t.cornerStyle===" rounded-none",i=`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}`} ${l?"rounded-none":"rounded-full"}`;return`<a href="${r}" class="${i} ${s} after:absolute after:inset-0 z-10" aria-label="View ${o.replace(/"/g,"&quot;")}">${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 be(e,t,o,r){if(!t.showAuthor)return"";let a=o==="Anonymous"||o==="Unknown"||!r?"":r;return xt[e]?xt[e](o,a,t.palette):a?`<span class="text-label-md hover:underline z-20 relative cursor-pointer" rel="author" data-href="${a}">${o}</span>`:`<span class="text-label-md" rel="author">${o}</span>`}x();function J(e,t,o,r){if(!t.showDate)return"";let a=new Date(o),s=t.dateFormatter.format(a);if(e==="m")return`<span class="text-label-md font-light">${t.showAuthor?" &#8226; ":""} ${s}</span>`;let l=!1;if(r&&new Date(r).getTime()-a.getTime()>1440*60*1e3&&(l=!0),l){let n=t.palette.bg||"bg-surface-variant",i=t.palette.text||"text-on-surface-variant";return`<div class="flex items-center gap-2"><span class="${n} ${i} 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,"&quot;")}">${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,"&quot;")}">${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,"&quot;")}">${e}</a>`}"</span>`};function Z(e,t,o,r){if(!t.showHeader)return"";let a=!!t.callToAction;return(It[e]||((l,n,i)=>`<h5 class="line-clamp-2 text-title-lg font-bold mb-2">${i?l:`<a href="${n}" class="after:absolute after:inset-0 z-10" aria-label="Read more about ${l.replace(/"/g,"&quot;")}">${l}</a>`}</h5>`))(o,r,a,t.palette)}x();function X(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 ee(e,t,o){if(!e.showLabels||!t||t.length===0)return"";let r=[...t].sort(()=>.5-Math.random()).slice(0,2),a="/search/label/";if(o&&o!=="/")try{let l=new URL(o),n=o.toLowerCase();n.includes("youtube.com")?a="https://www.youtube.com/hashtag/":n.includes("/wp-json")?a=`${l.origin}/search/`:n.includes("tumblr.com")?a=`${l.origin}/tagged/`:n.includes("mastodon.social")?a=`${l.origin}/tags/`:n.includes("bsky.app")?a="https://bsky.app/search?q=":n.includes("deviantart.com")?a="https://www.deviantart.com/tag/":n.includes("reddit.com")?a="https://www.reddit.com/search/?q=":a=`${l.origin}/search/label/`}catch{a="/search/label/"}return`
86
+ <div class="flex items-center gap-2 mb-3 relative z-50 pointer-events-auto">
87
+ <div class="flex flex-wrap items-center gap-2">
88
+ ${r.map(l=>{let n=encodeURIComponent(l),i=l.startsWith("#")?l.replace(/\s+/g,""):`#${l.replace(/\s+/g,"")}`;return`<a aria-label="${l.replace(/"/g,"&quot;")}" 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="${a}${n}"><span>${i}</span></a>`}).join("")}
89
+ </div>
90
+ </div>`}x();function kt(e,t,o){let r="v",a=be(r,o,e.authorName,e.authorUri),s=J(r,o,e.publishedDate,e.updatedDate),l=Z(r,o,e.title,e.url),n=X(r,o,e.content,e.url),i=Q(r,o,e.title,e.url),c=ee(o,e.labels,o.siteURL),{imageCode:d}=H(r,t,o,{postSnippet:e.content,videoID:e.videoId,postTitle:e.title,thumbnailUrl:e.thumbnailUrl,authorImage:e.authorImage,post:e}),p=!!(a||s||l||n||i||c)?`
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
+ ${a}
93
+ <div class="flex flex-wrap items-center justify-center gap-2">${s?`<div class="mb-3">${s}</div>`:""}${c}</div>
94
+ ${l}
95
+ ${n}
96
+ ${i}
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,"&quot;")}"></a>${d}`),`<article class="${g}"${h} role="article"><div class="${u}">${b}${p}</div></article>`}var Re={};k(Re,{render:()=>Bt,renderThumbnail:()=>_t});x();function Bt(e,t,o){let r="s",a=Be(e),s=Z(r,o,e.title,e.url),l=X(r,o,e.content,e.url),n="";e.content&&(n=new DOMParser().parseFromString(e.content,"text/html").body.textContent||"",n.length>o.snippetSize&&(n=n.substring(0,o.snippetSize)+"..."),n=n.replace(/"/g,"&quot;"));let i=Q(r,o,e.title,e.url),{imageCode:c,showcaseImageCode:d}=H(r,t,o,{postSnippet:e.content,videoID:a,postTitle:e.title,thumbnailUrl:e.thumbnailUrl,authorImage:e.authorImage,post:e});if(t===0&&o.firstInstance){let $=o.cornerStyle===" rounded-none"?"rounded-none":"rounded-t-3xl",w=o.showImage||o.callToAction!==""?i:"",j="";if(o.showHeader||w||o.showLabels){let N=J(r,o,e.publishedDate,e.updatedDate),V=ee(o,e.labels,o.siteURL),P=N||V?`<div class="flex flex-wrap items-center gap-x-4 gap-y-0 mb-2">${N?`<div class="mb-3 shrink-0">${N}</div>`:""}<div class="shrink-0">${V}</div></div>`:"",z=o.showHeader||o.showLabels?`<div class="flex-grow min-w-0 w-full @md:w-auto text-${o.textHAlign}">${P}${s} ${l}</div>`:"",F=o.ctaAlign==="left"?"justify-start":o.ctaAlign==="center"?"justify-center":"justify-end",oe=o.showHeader?"mt-4 @md:mt-0 @md:ml-6 ":"",ae=o.showHeader?"w-full @md:w-auto":"w-full",le=w?`<div class="flex-shrink-0 ${oe}flex items-center ${F} ${ae}">${w}</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">${z}${le}</div></div>`}let re=`<a href="${e.url}" class="absolute inset-0 z-30" title="${e.title.replace(/"/g,"&quot;")}" aria-label="View ${e.title.replace(/"/g,"&quot;")}"></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>${re}${d}<div class="${o.palette.text} block absolute inset-0 z-40 pointer-events-none">${j}</div></div>`}let m=a&&a!=="noVideo"?` data-vidid="${a}"`:"",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=_;a&&a!=="noVideo"?h=`https://i.ytimg.com/vi/${a}/maxresdefault.jpg`:e.thumbnailUrl&&(h=e.thumbnailUrl.replace(/\/s\d+(-[a-z]\d+)*(-c)?/,"/s1600"));let g=e.title.replace(/"/g,"&quot;"),b=`data-title="${g}" data-link="${e.url}" data-summary="${n}"${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=Be(e),r=e.thumbnailUrl||_,a=r;o&&o!=="noVideo"&&a.includes("ytimg.com")?a=a.replace(/\/([^\/]+)$/,"/maxresdefault.jpg"):a=a.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=_),(!a||a.includes("no-image.png"))&&(a=_);let l=t.isBloggerFeed?" m-blox-image-to-load":"",n=o!=="noVideo"?` data-vidid="${o}"`:"",i=`data-title="${e.title}" data-link="${e.url}" data-summary="${s}"${n} data-toggle="tooltip"`,c=`<img class="w-full h-full object-cover${l}" src="${r}" data-img-high="${a}" alt="${e.title.replace(/"/g,"&quot;")} image" loading="lazy" title="${e.title.replace(/"/g,"&quot;")}" />`,d=xe(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}" ${i} title="${e.title.replace(/"/g,"&quot;")}" role="article">${m}</article>`}var Ue={};k(Ue,{render:()=>Ot});x();function T(e,t,o,r,a){let s=be(e,r,t.authorName,t.authorUri),l=J(e,r,t.publishedDate,t.updatedDate),n=Z(e,r,t.title,t.url),i=X(e,r,t.content,t.url),c=Q(e,r,t.title,t.url),d=ee(r,t.labels,r.siteURL),{imageCode:m}=H(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||l||n||i||c||d),g=!!(s||l||n||i||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,"&quot;")}"></a>${m}`);let $=e!=="comment"&&(l||c)?`<div class="flex items-center justify-between mt-auto w-full pt-4">${l}${c}</div>`:c;return a({authorCode:s,dateCode:l,titleCode:n,snippetCode:i,ctaButtonCode:c,ctaRowCode:$,imageCode:m,finalImageCode:b,labelsCode:d,hasText:h,hasTextContent:g},r,u,t,o)}function Ot(e,t,o){return T("l",e,t,o,(r,a)=>{let s="",l=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>`:"";a.showImage?s=`
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:""}[a.textVerticalAlign]||""}">
100
+ <div class="pointer-events-auto ${a.textVerticalAlign==="overlay"||!{top:"justify-start",middle:"justify-center",bottom:"justify-end",overlay:""}[a.textVerticalAlign]?"h-full ":""}${r.hasTextContent?`${a.palette.containerGlass} backdrop-blur-xl `:""}${a.palette.containerText} rounded-none ${l} text-${a.textHAlign}">
101
+ ${r.authorCode}
102
+ ${r.labelsCode}
103
+ ${r.titleCode}
104
+ ${r.snippetCode}
105
+ ${p}
106
+ </div>
107
+ </div>
108
+ `:s=`
109
+ <div class=" ${l} w-full text-${a.textHAlign}">
110
+ ${r.authorCode}
111
+ ${r.labelsCode}
112
+ ${r.titleCode}
113
+ ${r.snippetCode}
114
+ ${p}
115
+ </div>
116
+ `}let n=a.showImage?[]:[a.palette.containerBg,a.palette.containerText],c=["relative",a.showImage?"block":"flex flex-col justify-center",a.cornerStyle,a.aspectRatio.trim(),"w-full","h-full",...n,a.interactionClasses].filter(Boolean).join(" "),d=`@container col-span-1 inline-flex w-full h-full relative ${a.layout.mb}`,m=t===0?`<div class="absolute top-0 left-0 z-20 pointer-events-none backdrop-blur-xl ${a.palette.containerGlass} ${a.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 Me={};k(Me,{render:()=>Rt});x();function Rt(e,t,o){return T("c",e,t,o,(r,a)=>{let s=r.hasText?`
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:""}[a.textVerticalAlign]||""}">
118
+ <div class="pointer-events-auto ${a.textVerticalAlign==="overlay"||!{top:"justify-start",middle:"justify-center",bottom:"justify-end",overlay:""}[a.textVerticalAlign]?"h-full ":""}${r.hasTextContent?`${a.palette.containerGlass} backdrop-blur-xl `:""}${a.palette.containerText} rounded-none p-2 @xs:p-4 @sm:p-6 flex flex-col text-${a.textHAlign}">
119
+ ${r.authorCode}
120
+ ${r.labelsCode}
121
+ ${r.titleCode}
122
+ ${r.snippetCode}
123
+ ${r.ctaRowCode}
124
+ </div>
125
+ </div>
126
+ `:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="${["relative","block","w-full",a.cornerStyle,a.aspectRatio.trim(),"h-full",a.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:a}=H(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,"&quot;")}"></a>${o.showImage?a:""}</div></article>`}var Ee={};k(Ee,{render:()=>Mt});x();function Mt(e,t,o){return T("p",e,t,o,(r,a)=>{let s=a.mBloxTheme!=="surface"?` h-full bg-opacity-90 ${a.palette.containerBg}`:"",l=r.hasText?`
127
+ <div class="p-2 @xs:p-4 @sm:p-6 flex-grow flex flex-col${s} text-${a.textHAlign}">
128
+ ${r.authorCode}
129
+ ${r.labelsCode}
130
+ ${r.titleCode}
131
+ ${r.snippetCode}
132
+ <div class="mt-auto pt-2">${r.ctaRowCode}</div>
133
+ </div>
134
+ `:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="flex flex-col w-full ${a.palette.containerBg} ${a.palette.containerText} h-full ${a.cornerStyle} ${a.interactionClasses}">${r.finalImageCode}${l}</div></article>`})}var De={};k(De,{render:()=>qt});x();function qt(e,t,o){return T("t",e,t,o,(r,a,s)=>{let l=r.hasText?`
135
+ <div class="p-2 @xs:p-4 @sm:p-6 flex-grow flex flex-col${s} text-${a.textHAlign}">
136
+ ${r.authorCode}
137
+ ${r.labelsCode}
138
+ ${r.titleCode}
139
+ ${r.snippetCode}
140
+ ${r.ctaRowCode}
141
+ </div>
142
+ `:"",i=a.blockType==="t"?"w-3/4":"w-2/3",c=r.hasText?a.showImage?`<div class="${i} h-full flex flex-col">${l}</div>`:l:"",d=["flex","flex-row",a.palette.containerBg,a.cornerStyle,"w-full","h-full",a.interactionClasses].filter(Boolean).join(" ");return`<article class="${`@container col-span-1 inline-flex w-full relative h-full ${a.layout.mb}`}" role="article"><div class="${d}">${r.finalImageCode}${c}</div></article>`})}var He={};k(He,{render:()=>Et});x();function Et(e,t,o){return T("q",e,t,o,(r,a)=>{let s=r.hasText?`
143
+ <div class="p-4 @xs:p-6 @sm:p-8 flex-grow flex flex-col">
144
+ ${r.titleCode}
145
+ ${r.snippetCode}
146
+ <span class="mt-4 text-right">
147
+ ${r.authorCode}
148
+ </span>
149
+ <div class="mt-auto pt-2">${r.ctaRowCode}</div>
150
+ </div>
151
+ `:"";return`<article class="@container col-span-1 inline-flex w-full relative" role="article"><div class="${["flex","flex-col","w-full",a.palette.containerBg,a.palette.containerText,a.cornerStyle,`text-${a.textHAlign}`,"h-full",a.interactionClasses].filter(Boolean).join(" ")}">${r.finalImageCode}${s}</div></article>`})}var je={};k(je,{render:()=>Dt});x();function Dt(e,t,o){return T("m",e,t,o,(r,a)=>{let s=`
152
+ <div class="w-full p-2 flex flex-col h-full text-${a.textHAlign}">
153
+ <div class="mb-1 opacity-75 flex flex-wrap items-center gap-x-1">${r.authorCode}${r.dateCode}</div>
154
+ ${r.labelsCode}
155
+ ${r.titleCode}
156
+ ${r.snippetCode}
157
+ ${r.ctaButtonCode}
158
+ </div>
159
+ `;return`
160
+ <article class="col-span-1 inline-flex w-full relative" role="article">
161
+ <div class="${`${a.cornerStyle} ${a.palette.containerBg} ${a.palette.containerText} flex flex-row p-4 w-full items-start ${a.interactionClasses}`}">
162
+ ${r.finalImageCode}
163
+ ${s}
164
+ </div>
165
+ </article>
166
+ `})}var Ne={v:Oe,s:Re,l:Ue,c:Me,g:qe,p:Ee,t:De,q:He,m:je},te=class{async buildBlockBody(t,o){let r="",a="",s=null,l=t.posts.length,n=o.blockType==="l"||o.blockType==="s";if(o.isCarousel&&(s=null),o.blockType==="s"&&l>0){o.firstInstance&&(a=Ne["s"].render(t.posts[0],0,o));let c=[];for(let d=0;d<l;d++){let m=Ne["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:a}}let i=[];for(let c=0;c<l;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=Ne[p].render(d,c,o);o.isCarousel&&(u=u.replace('<article class="','<article class="snap-start ')),i.push(u)}return{renderedBlocks:i,carouselIndicators:s,showcaseHTML:a}}createBlockHeader(t){return it(t)}createBlockFooter(t,o){return ct(t,o)}createStageWrapper(t,o,r,a){let s=r.isCarousel?ut(o,r,a):"",l=pt(r,a),n=`${s}${t}${l}`;return dt(n,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 a=r.getAttribute("data-title"),s=r.getAttribute("data-url");if(navigator.share)try{await navigator.share({title:a,url:s})}catch(l){console.log("Share failed",l)}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 a=r.querySelector("figure"),s=r.querySelector(".sIframe"),l=r.querySelector(".sContent");a&&a.addEventListener("click",function(){let i=this.getAttribute("data-vidid");if(i&&i!=="noVideo"){if(s){s.innerHTML=_e(i,o),s.style.display="",s.style.opacity="1",s.classList.remove("hidden"),a.style.display="none",l&&(l.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 n=r.querySelector("a.z-30")||r.querySelector("a");n&&n.addEventListener("click",function(i){if(a){let c=a.getAttribute("data-vidid");c&&c!=="noVideo"&&(i.preventDefault(),a.click())}}),t.addEventListener("click",function(i){let c=i.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=_e(d.vidid,o),D(s)),U(a),U(l);let u=r.querySelector("a");u&&(u.style.display="none")}else{if(s&&(s.innerHTML="",U(s)),a){(d.vidid==="noVideo"||!d.vidid)&&a.removeAttribute("data-vidid");let g=a.querySelector("svg");g&&U(g),a.style.backgroundImage=`url("${d.imgHigh}")`,a.style.backgroundSize="cover",a.title=d.title,a.setAttribute("aria-label",d.title+" image"),D(a)}if(l){D(l);let g=l.querySelector("h5");if(g){g.textContent=d.title;let w=g.closest("a");w&&(w.href=d.link)}let b=l.querySelector(".js-cta-link");b&&(b.href=d.link,b.setAttribute("aria-label",`View ${d.title}`));let $=l.querySelector(".list-none")||l.querySelector("div.text-body-md");$&&($.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,a=t.querySelectorAll(`.st${r} .nav-prev`),s=t.querySelectorAll(`.st${r} .nav-next`);a.forEach(l=>{l.dataset.bound||(l.dataset.bound="true",l.addEventListener("click",()=>{let n=parseInt(t.getAttribute("data-s"),10);if(n<=1)return;let i=n-1;t.setAttribute("data-s",i),t.style.minHeight=t.clientHeight+"px",U(t.querySelector(`div#m${o.mBlockID}-st${n}`)),U(t.querySelector(`div.mblox-footer.st${n}`)),setTimeout(()=>{D(t.querySelector(`div#m${o.mBlockID}-st${i}`)),D(t.querySelector(`div.mblox-footer.st${i}`)),t.style.minHeight=""},160)}))}),s.forEach(l=>{l.dataset.bound||(l.dataset.bound="true",l.addEventListener("click",()=>{let n=parseInt(t.getAttribute("data-s"),10),i=n+1;t.setAttribute("data-s",i),t.style.minHeight=t.clientHeight+"px",t.classList.add("relative"),U(t.querySelector(`div#m${o.mBlockID}-st${n}`));let c=t.querySelector(`div.mblox-footer.st${n}`);c&&U(c);let d=t.querySelector(`div#m${o.mBlockID}-st${i}`);if(d)setTimeout(()=>{D(d),D(t.querySelector(`div.mblox-footer.st${i}`)),t.style.minHeight=""},160);else{let m=`
167
+ <style>
168
+ @keyframes mblox-loader-anim {
169
+ 0% { transform: rotate(0deg) scale(0.8); }
170
+ 50% { transform: rotate(180deg) scale(1.1); }
171
+ 100% { transform: rotate(360deg) scale(0.8); }
172
+ }
173
+ </style>
174
+ <div id="m${o.mBlockID}-st${i}-loading" class="absolute inset-0 flex items-center justify-center z-10" style="min-height: 200px;">
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 de=null;async function Ht(){return de||(window.mBloxConfig&&window.mBloxConfig.designSystem==="m3e"?(window.mBlox=window.mBlox||{},window.mBlox.m3eRenderer=te,de=new te):de=new te,de)}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 a=et(r);r.setAttribute("data-scheme",a.mBloxTheme),r.setAttribute("data-palette",a.paletteName),r._mbloxPaginateListener||(r.addEventListener("mblox:loadNextPage",s=>{Ke(s.target)}),r._mbloxPaginateListener=!0);try{let s=Ze(a),l=await s.fetch();if(a.isBloggerFeed=s instanceof ne,l.posts&&l.posts.length>0){let n=l.posts.length;a.contentType==="comments"&&(a.moreText=""),a.firstInstance&&(r.setAttribute("data-s",a.stageID),r.insertAdjacentHTML("beforeend",t.createBlockHeader(a))),a=Xe(a,n);let{renderedBlocks:i,carouselIndicators:c,showcaseHTML:d}=await t.buildBlockBody(l,a);a.firstInstance&&a.blockType==="s"&&d&&r.insertAdjacentHTML("beforeend",d);let p=a.stageID===parseInt(r.getAttribute("data-s")||"1",10)?"":" d-none",u="";a.isCarousel?u=at(i,a):a.blockType==="l"?u=lt(i,a):u=ot(i,a);let h=t.createStageWrapper(u,c,a,l),g=t.createBlockFooter(a,l),b=`<div class="st${a.stageID}${p}" id="m${a.mBlockID}-st${a.stageID}">${h}${g}</div>`,$=r.querySelector(`#m${a.mBlockID}-st${a.stageID}-loading`);$&&$.remove(),r.insertAdjacentHTML("beforeend",b),r.style.minHeight="",t.bindEvents(r,a),tt(r)}}catch(s){console.error(s)}}}window.mBlocks=Ke;
package/mBloxCall.js ADDED
@@ -0,0 +1,100 @@
1
+ /*!
2
+ * mBlocks for Blogger - Initializer
3
+ * CIA.RealHappinessCenter.com
4
+ * @version 2.0.0
5
+ */
6
+
7
+ let isFirstScriptLoad = true;
8
+
9
+ /**
10
+ * Loads the core library and initializes blocks.
11
+ * Uses window.mBloxConfig to determine the design system.
12
+ */
13
+ function loadScripts(blockItem, isFirstLoad) {
14
+ if (isFirstLoad) {
15
+ const config = window.mBloxConfig || {};
16
+
17
+ // 1. Inject CSS for M3E
18
+ let cssUrl = 'https://cdn.jsdelivr.net/npm/mblox/dist/mBloxM3E.css';
19
+ if (config.cssSrc !== undefined) {
20
+ cssUrl = config.cssSrc;
21
+ } else if (window.mBloxCssSrc !== undefined) {
22
+ cssUrl = window.mBloxCssSrc;
23
+ }
24
+
25
+ if (cssUrl && !document.querySelector(`link[href*="${cssUrl}"]`)) {
26
+ const link = document.createElement('link');
27
+ link.rel = 'stylesheet';
28
+ link.href = cssUrl;
29
+ document.head.appendChild(link);
30
+ }
31
+
32
+ // 2. Inject mBlox Unified Bundle (Engine + Blocks)
33
+ let jsUrl = 'https://cdn.jsdelivr.net/npm/mblox/dist/mBloxM3E.js';
34
+ if (config.jsSrc !== undefined) {
35
+ jsUrl = config.jsSrc;
36
+ }
37
+
38
+ if (jsUrl) {
39
+ const existingScript = document.querySelector(`script[src*="${jsUrl}"]`);
40
+ if (!existingScript) {
41
+ const script = document.createElement('script');
42
+ script.src = jsUrl;
43
+ script.type = 'module';
44
+ script.addEventListener('load', () => {
45
+ if (window.mBlocks) {
46
+ window.mBlocks(blockItem).then(() => { isFirstScriptLoad = false; });
47
+ }
48
+ });
49
+ document.head.appendChild(script);
50
+ } else if (window.mBlocks) {
51
+ window.mBlocks(blockItem).then(() => { isFirstScriptLoad = false; });
52
+ } else {
53
+ // Script tag exists but hasn't finished loading. Queue the execution.
54
+ existingScript.addEventListener('load', () => {
55
+ if (window.mBlocks) {
56
+ window.mBlocks(blockItem).then(() => { isFirstScriptLoad = false; });
57
+ }
58
+ });
59
+ }
60
+ } else if (window.mBlocks) {
61
+ window.mBlocks(blockItem).then(() => { isFirstScriptLoad = false; });
62
+ }
63
+ } else {
64
+ if (window.mBlocks) {
65
+ window.mBlocks(blockItem);
66
+ }
67
+ }
68
+ }
69
+
70
+ // Intersection Observer for Lazy Loading
71
+ window.addEventListener("load", (event) => {
72
+ if (document.getElementsByClassName("mBlock").length) {
73
+ loadScripts('.mBlock', isFirstScriptLoad);
74
+ }
75
+
76
+ const config = window.mBloxConfig || {};
77
+ const threshold = config.lazyLoadThreshold !== undefined ? config.lazyLoadThreshold : 0.0;
78
+ const rootMargin = config.lazyLoadRootMargin !== undefined ? config.lazyLoadRootMargin : '500px';
79
+
80
+ const options = { rootMargin: rootMargin, threshold: threshold };
81
+ const lazyLoadTargets = document.getElementsByClassName("mBlockL");
82
+
83
+ let observer = new IntersectionObserver(intersectionCallback, options);
84
+ Array.prototype.forEach.call(lazyLoadTargets, function (observedElement) {
85
+ observer.observe(observedElement);
86
+ });
87
+ }, false);
88
+
89
+ const intersectionCallback = (entries, observer) => {
90
+ entries.forEach((entry) => {
91
+ if (entry.isIntersecting) {
92
+ if ((entry.target).classList.contains("mBlockL")) {
93
+ loadScripts(entry.target, isFirstScriptLoad);
94
+ }
95
+ observer.unobserve(entry.target);
96
+ }
97
+ });
98
+ };
99
+
100
+ window.loadScripts = loadScripts;
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "mblox",
3
+ "version": "2.0.0",
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
+ "main": "mBloxCall.js",
6
+ "unpkg": "dist/mBloxM3E.js",
7
+ "jsdelivr": "dist/mBloxM3E.js",
8
+ "files": [ "dist" ],
9
+ "scripts": {
10
+ "build": "npm run build:css && npm run build:icons && npm run build:js",
11
+ "build:css": "npx @tailwindcss/cli -i ./src/design/tailwind.css -o ./dist/mBloxM3E.css --minify",
12
+ "build:icons": "node scripts/build-icons.js",
13
+ "build:js": "node scripts/build-js.js",
14
+ "dev": "npx -y serve .",
15
+ "test": "echo \"Error: no test specified\" && exit 1"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/mohanjeetsingh/mBlox.git"
20
+ },
21
+ "keywords": [],
22
+ "author": "",
23
+ "license": "ISC",
24
+ "type": "module",
25
+ "bugs": {
26
+ "url": "https://github.com/mohanjeetsingh/mBlox/issues"
27
+ },
28
+ "homepage": "https://github.com/mohanjeetsingh/mBlox#readme",
29
+ "devDependencies": {
30
+ "esbuild": "^0.28.0"
31
+ },
32
+ "dependencies": {
33
+ "@tailwindcss/cli": "^4.3.0",
34
+ "tailwindcss": "^4.3.0"
35
+ }
36
+ }