@janga/norna 0.7.6 → 0.7.7
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/README.md +5 -5
- package/astro.config.mjs +76 -0
- package/bin/norna-cli.mjs +2 -2
- package/docs/README.md +3 -3
- package/docs/commands.md +6 -6
- package/docs/configuration.md +3 -2
- package/docs/content.md +152 -91
- package/docs/design/site-examples-structure.md +1 -1
- package/docs/engine-development.md +3 -3
- package/docs/getting-started.md +4 -3
- package/docs/images-and-metadata.md +112 -20
- package/docs/routes.md +9 -12
- package/docs/site-structure.md +4 -3
- package/docs/theme.md +8 -7
- package/docs/typography.md +5 -5
- package/examples/dog-gallery/site/content.md +41 -45
- package/examples/dog-gallery/site/routes/010-dog-care/route-content.md +1 -3
- package/fixtures/basic/site/content.md +2 -4
- package/fixtures/content-model-v2/.astro/collections/site.schema.json +776 -0
- package/fixtures/content-model-v2/.astro/collections/theme.schema.json +668 -0
- package/fixtures/content-model-v2/.astro/content-assets.mjs +4 -0
- package/fixtures/content-model-v2/.astro/content-modules.mjs +1 -0
- package/fixtures/content-model-v2/.astro/content.d.ts +175 -0
- package/fixtures/content-model-v2/.astro/data-store.json +1 -0
- package/fixtures/content-model-v2/.astro/dev-local.json +8 -0
- package/fixtures/content-model-v2/.astro/dev.json +13 -0
- package/fixtures/content-model-v2/.astro/dev.log +231 -0
- package/fixtures/content-model-v2/.astro/settings.json +5 -0
- package/fixtures/content-model-v2/.astro/types.d.ts +2 -0
- package/fixtures/content-model-v2/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +1 -0
- package/fixtures/content-model-v2/dist/_astro/SitePage.BbfZub4g.css +1 -0
- package/fixtures/content-model-v2/dist/guide/index.html +3 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-971.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-971.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-971.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-960.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-768.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1080.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1440.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1600.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-480.webp +0 -0
- package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-768.webp +0 -0
- package/fixtures/content-model-v2/dist/index.html +8 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/_metadata.json +80 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js +434 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js +1534 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js +1389 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js +48 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js +42 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/package.json +3 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js +190 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js +458 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js +1016 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js +32 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js.map +1 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js +111 -0
- package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js.map +1 -0
- package/fixtures/content-model-v2/site/.norna/generated-images.json +210 -0
- package/fixtures/content-model-v2/site/config.mjs +11 -0
- package/fixtures/content-model-v2/site/content.md +84 -0
- package/fixtures/content-model-v2/site/images/card-section/adopt.svg +9 -0
- package/fixtures/content-model-v2/site/images/card-section/foster.svg +12 -0
- package/fixtures/content-model-v2/site/images/intro/detail.jpg +0 -0
- package/fixtures/content-model-v2/site/images/intro/duplicate.jpg +0 -0
- package/fixtures/content-model-v2/site/images/intro/hero.jpg +0 -0
- package/fixtures/content-model-v2/site/images/plain/image.jpg +0 -0
- package/fixtures/content-model-v2/site/images/timed/slide-one.jpg +0 -0
- package/fixtures/content-model-v2/site/images/timed/slide-three.jpg +0 -0
- package/fixtures/content-model-v2/site/images/timed/slide-two.jpg +0 -0
- package/fixtures/content-model-v2/site/routes/010-guide/images/intro/duplicate.jpg +0 -0
- package/fixtures/content-model-v2/site/routes/010-guide/route-content.md +17 -0
- package/fixtures/content-model-v2/site/theme.md +9 -0
- package/package.json +3 -2
- package/scripts/deploy-site.mjs +11 -4
- package/scripts/dev-local.mjs +6 -0
- package/scripts/generate-images.mjs +132 -56
- package/scripts/lib/image-dimensions.mjs +26 -0
- package/scripts/lib/norna-markdown-blocks.mjs +643 -0
- package/scripts/lib/site-content.mjs +31 -29
- package/scripts/show-typography.mjs +17 -9
- package/scripts/sync-content-sections.mjs +280 -411
- package/scripts/test-content-check.mjs +59 -45
- package/scripts/test-content-model-v2.mjs +998 -0
- package/scripts/test-engine-commands.mjs +1 -1
- package/scripts/test-package-check.mjs +36 -8
- package/scripts/test-temporary-visibility.mjs +3 -6
- package/src/components/CardList.astro +77 -0
- package/src/components/GalleryGrid.astro +22 -12
- package/src/components/SiteNavigation.astro +5 -4
- package/src/components/SitePage.astro +9 -2
- package/src/components/SiteSection.astro +35 -13
- package/src/content.config.ts +4 -17
- package/src/lib/generatedImages.ts +50 -10
- package/src/lib/sectionContent.ts +130 -35
- package/src/styles/global.css +187 -0
- package/starters/basic/site/content.md +10 -6
- package/starters/project/site/content.md +0 -9
- package/starters/project/site/routes/010-guide/route-content.md +0 -5
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en" style="scroll-behavior: smooth; --font-sans: Arial, 'Helvetica Neue', Helvetica, sans-serif; --page-width: 1180px; --content-gutter-desktop: clamp(1.25rem, 4vw, 3rem); --content-gutter-mobile: 1rem; --space-nav-to-first-section-desktop: clamp(1.25rem, 3vw, 2.5rem); --space-nav-to-first-section-mobile: 1.25rem; --space-section-body-to-gallery-desktop: 1.25rem; --space-section-body-to-gallery-mobile: 1rem; --space-gallery-item-desktop: clamp(1.25rem, 2.8vw, 2rem); --space-gallery-item-mobile: 1.5rem; --space-section-to-section-desktop: clamp(1.4rem, 3vw, 2.75rem); --space-section-to-section-mobile: 1.5rem; --space-final-section-bottom-desktop: clamp(1.4rem, 3vw, 2.75rem); --space-final-section-bottom-mobile: 1.5rem; --gallery-width: 900px; --gallery-max-available-width-desktop: 100%; --gallery-max-available-width-mobile: 100%; --gallery-max-image-height-desktop: 74svh; --gallery-max-image-height-mobile: 68svh"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="format-detection" content="telephone=no"><meta name="description" content="Internal fixture for Markdown-authoritative Norna content."><meta name="theme-color" content="#000000"><link rel="canonical" href="https://example.com/"><meta name="generator" content="Astro v7.1.3"><title>Content Model v2 Fixture</title><link rel="stylesheet" href="/_astro/SitePage.BbfZub4g.css"></head><body><a class="skip-link" href="#main-content">Skip to content</a><header class="site-top site-top-has-site-nav" data-smooth-scroll="{"durationPerPixelMs":0.22,"enabled":true,"maximumDurationMs":4000,"minimumDurationMs":2000}" style="--site-top-background-color: var(--color-page); --site-top-text-color: var(--color-text)"><div class="site-nav-row"><a class="site-brand" href="/">Content Model v2 Fixture</a><nav class="site-nav" aria-label="Pages"><ul><li><a href="/" aria-current="page">Content Model v2 Fixture</a></li><li><a href="/guide/">Guide</a></li></ul></nav><details class="mobile-nav-menu"><summary><span>Content Model v2 Fixture</span></summary><div class="mobile-nav-panel"><nav class="mobile-site-nav" aria-label="Pages"><h2>Pages</h2><ul><li><a href="/" aria-current="page">Content Model v2 Fixture</a></li><li><a href="/guide/">Guide</a></li></ul></nav><nav class="mobile-page-nav" aria-label="On this page"><h2>On this page</h2><ul><li><a href="#intro" aria-current="true">Intro</a></li><li><a href="#timed">Timed section</a></li><li><a href="#plain">Plain section</a></li></ul></nav></div></details></div><nav class="page-nav" aria-label="On this page"><ul><li><a href="#intro" aria-current="true">Intro</a></li><li><a href="#timed">Timed section</a></li><li><a href="#plain">Plain section</a></li></ul></nav></header><script type="module">var e=document.querySelector(`.site-top`),t=Array.from(document.querySelectorAll(`.site-section`)),n=Array.from(document.querySelectorAll(`.page-nav a, .mobile-page-nav a`)),r=document.querySelector(`.mobile-nav-menu`),i=JSON.parse(e?.getAttribute(`data-smooth-scroll`)??`{}`),a=0,o=[120,320,700,1e3,2e3],s=window.matchMedia(`(prefers-reduced-motion: reduce)`),c=i.minimumDurationMs,l=i.maximumDurationMs,u=i.durationPerPixelMs,d=[`wheel`,`touchstart`],f=new Set([`ArrowDown`,`ArrowUp`,`End`,`Home`,`PageDown`,`PageUp`,` `]),p=null,m=null,h=0;`scrollRestoration`in history&&(history.scrollRestoration=`manual`);var g=()=>{if(!(e instanceof HTMLElement))return;let t=Math.ceil(e.getBoundingClientRect().height+a);return document.documentElement.style.setProperty(`--site-top-anchor-offset`,`${t}px`),t},_=e=>{let n=e.replace(/^#/,``);return t.find(e=>e.id===n)},v=e=>e?.querySelector(`h1, h2`),y=()=>{p&&=(p.cancel(),null)},b=e=>{e&&m!==e.id&&(m=e.id,n.forEach(t=>{t.getAttribute(`href`)===`#${e.id}`?t.setAttribute(`aria-current`,`true`):t.removeAttribute(`aria-current`)}))},x=()=>_(window.location.hash),S=e=>{window.location.hash!==e&&history.pushState(null,``,e)},C=()=>{r instanceof HTMLDetailsElement&&(r.open=!1)},w=e=>{if(!(e instanceof HTMLElement))return;let t=v(e);if(!(t instanceof HTMLElement))return;let n=g();if(n)return Math.max(0,t.getBoundingClientRect().top+window.scrollY-n)},T=e=>{y();let t=document.documentElement,n=t.style.scrollBehavior;t.style.scrollBehavior=`auto`,window.scrollTo(0,e),t.style.scrollBehavior=n},E=e=>{let t=Math.abs(e);return!i.enabled||s.matches||t<=a?0:Math.min(l,Math.max(c,t*u))},D=e=>e<.5?4*e*e*e:1-(-2*e+2)**3/2,O=(e,{duration:t,onComplete:n}={})=>{y();let r=typeof e==`function`?e:()=>e,i=r();if(i===void 0)return 0;let a=window.scrollY,o=i-a,s=t??E(o);if(s<=0){let e=r();return e===void 0?0:(T(e),n?.(),0)}let c=document.documentElement,l=c.style.scrollBehavior,u=performance.now(),m=0,h={cancel:()=>{}},g=()=>{d.forEach(e=>{window.removeEventListener(e,v)}),window.removeEventListener(`keydown`,b),c.style.scrollBehavior=l,p===h&&(p=null)},_=()=>{m&&cancelAnimationFrame(m),g()},v=()=>_(),b=e=>{f.has(e.key)&&v()},x=e=>{let t=e-u,o=Math.min(1,t/s),c=r();c!==void 0&&(i=c);let l=a+(i-a)*D(o);if(window.scrollTo(0,l),o>=1){window.scrollTo(0,i),g(),n?.();return}m=requestAnimationFrame(x)};return h.cancel=_,p=h,c.style.scrollBehavior=`auto`,d.forEach(e=>{window.addEventListener(e,v,{passive:!0})}),window.addEventListener(`keydown`,b),m=requestAnimationFrame(x),s},k=(e,{behavior:t=`smooth`,duration:n,onComplete:r}={})=>{let i=w(e);if(i===void 0)return 0;let a=t===`smooth`?O(()=>w(e),{duration:n,onComplete:r}):(T(i),r?.(),0);return b(e),a},A=()=>{g()},j=()=>{if(p)return;let e=x();e instanceof HTMLElement&&k(e,{behavior:`auto`})},M=()=>{if(!window.location.hash)return;h+=1;let e=h;o.forEach(t=>{window.setTimeout(()=>{e===h&&requestAnimationFrame(j)},t)})},N=({behavior:e=`auto`,scrollHashlessTop:n=!1}={})=>{let r=x();if(r instanceof HTMLElement){k(r,{behavior:e}),M();return}n&&T(0),b(t[0])};n.forEach(e=>{e.addEventListener(`click`,t=>{let n=_(e.hash);if(!(n instanceof HTMLElement))return;let r=w(n);if(r===void 0)return;t.preventDefault();let i=`#${n.id}`,a=E(r-window.scrollY);S(i),b(n),C(),k(n,{behavior:`smooth`,duration:a,onComplete:M})})}),A(),requestAnimationFrame(()=>N({behavior:`auto`})),e instanceof HTMLElement&&`ResizeObserver`in window&&new ResizeObserver(A).observe(e),window.addEventListener(`resize`,A),window.addEventListener(`load`,M),window.addEventListener(`hashchange`,()=>N({behavior:`auto`,scrollHashlessTop:!0})),window.addEventListener(`popstate`,()=>N({behavior:`auto`,scrollHashlessTop:!0})),window.visualViewport&&window.visualViewport.addEventListener(`resize`,A);</script><main id="main-content" class="site-content"><section id="intro" class="site-section" data-section-title="Intro" style="--section-background-color: transparent; --section-text-color: var(--color-text); --section-heading-align-desktop: left; --section-heading-align-mobile: left; --section-heading-font-size-desktop: clamp(1.35rem, 1.1rem + 0.9vw, 2rem); --section-heading-font-size-mobile: clamp(1.3rem, 1.05rem + 1.35vw, 1.75rem); --section-heading-line-height: 1.04; --section-heading-spacing-after: 0.55em; --section-heading-width-desktop: var(--gallery-layout-width); --section-heading-width-mobile: var(--gallery-layout-width); --section-markdown-h3-align-desktop: left; --section-markdown-h3-align-mobile: left; --section-markdown-h3-font-size-desktop: clamp(1.05rem, 0.98rem + 0.28vw, 1.22rem); --section-markdown-h3-font-size-mobile: clamp(1.04rem, 0.98rem + 0.45vw, 1.18rem); --section-markdown-h3-line-height: 1.18; --section-markdown-h3-spacing-before: 1.5em; --section-markdown-h3-spacing-after: 0.5em; --section-markdown-h4-align-desktop: left; --section-markdown-h4-align-mobile: left; --section-markdown-h4-font-size-desktop: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-markdown-h4-font-size-mobile: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-markdown-h4-line-height: 1.42; --section-markdown-h4-spacing-before: 1.1em; --section-markdown-h4-spacing-after: 0.4em; --section-body-align-desktop: left; --section-body-align-mobile: left; --section-body-font-size-desktop: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-body-font-size-mobile: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-body-line-height: 1.42; --section-body-paragraph-spacing: 0.85em; --section-body-width-desktop: var(--gallery-layout-width); --section-body-width-mobile: var(--gallery-layout-width); --section-caption-align-desktop: center; --section-caption-align-mobile: center; --section-caption-font-size-desktop: clamp(0.86rem, 0.84rem + 0.08vw, 0.92rem); --section-caption-font-size-mobile: clamp(0.86rem, 0.84rem + 0.08vw, 0.92rem); --section-caption-line-height: 1.3; --section-caption-spacing-before: 0.5em; --section-caption-justify-desktop: center; --section-caption-justify-mobile: center"><div class="section-card"><header class="section-header"><h1>Intro</h1></header><div class="section-body section-body-has-gallery"><div class="section-markdown"><p>This fixture validates that Markdown defines sections and that section metadata
|
|
2
|
+
is optional. It also checks <span class="inline-style inline-style-highlight" style="--inline-style-color: #b3261e">inline styles</span>.</p>
|
|
3
|
+
</div><div class="gallery" aria-label="Images: Intro"><figure class="gallery-item"><div class="gallery-image-frame"><img src="/images/generated/intro/hero-6d588a83-971.webp" srcset="/images/generated/intro/hero-6d588a83-480.webp 480w, /images/generated/intro/hero-6d588a83-768.webp 768w, /images/generated/intro/hero-6d588a83-971.webp 971w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 971 / 1619;" width="971" height="1619" class="gallery-image" alt="A black Labrador-type dog sitting on grass." decoding="async" fetchpriority="low" loading="lazy"></div><figcaption class="gallery-meta"><div class="gallery-details"><span>Dog portrait one: a black Labrador-type dog.</span></div></figcaption></figure></div><script type="module" src="/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js"></script><div class="section-markdown">
|
|
4
|
+
<h3 id="subhead-but-not-a-new-section">Subhead, but not a new section</h3>
|
|
5
|
+
<p>Text can continue after a Norna-managed image.</p>
|
|
6
|
+
</div><div class="gallery" aria-label="Images: Intro"><figure class="gallery-item"><div class="gallery-image-frame"><img src="/images/generated/intro/detail-27930b14-971.webp" srcset="/images/generated/intro/detail-27930b14-480.webp 480w, /images/generated/intro/detail-27930b14-768.webp 768w, /images/generated/intro/detail-27930b14-971.webp 971w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 971 / 1619;" width="971" height="1619" class="gallery-image" alt="A small tan terrier-type dog standing in grass." decoding="async" fetchpriority="low" loading="lazy"></div><figcaption class="gallery-meta"><div class="gallery-details"><span>Dog portrait two: a small tan terrier-type dog.</span></div></figcaption></figure><figure class="gallery-item"><div class="gallery-image-frame"><img src="/images/generated/intro/duplicate-49c98f6c-971.webp" srcset="/images/generated/intro/duplicate-49c98f6c-480.webp 480w, /images/generated/intro/duplicate-49c98f6c-768.webp 768w, /images/generated/intro/duplicate-49c98f6c-971.webp 971w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 971 / 1619;" width="971" height="1619" class="gallery-image" alt="A white and brown border collie-type dog sitting outdoors." decoding="async" fetchpriority="low" loading="lazy"></div><figcaption class="gallery-meta"><div class="gallery-details"><span>Dog portrait three: a white and brown border collie-type dog.</span></div></figcaption></figure></div></div></div></section><section id="timed" class="site-section" data-section-title="Timed section" style="--section-background-color: transparent; --section-text-color: var(--color-text); --section-heading-align-desktop: left; --section-heading-align-mobile: left; --section-heading-font-size-desktop: clamp(1.35rem, 1.1rem + 0.9vw, 2rem); --section-heading-font-size-mobile: clamp(1.3rem, 1.05rem + 1.35vw, 1.75rem); --section-heading-line-height: 1.12; --section-heading-spacing-after: 0.55em; --section-heading-width-desktop: var(--gallery-layout-width); --section-heading-width-mobile: var(--gallery-layout-width); --section-markdown-h3-align-desktop: left; --section-markdown-h3-align-mobile: left; --section-markdown-h3-font-size-desktop: clamp(1.05rem, 0.98rem + 0.28vw, 1.22rem); --section-markdown-h3-font-size-mobile: clamp(1.04rem, 0.98rem + 0.45vw, 1.18rem); --section-markdown-h3-line-height: 1.35; --section-markdown-h3-spacing-before: 1.5em; --section-markdown-h3-spacing-after: 0.5em; --section-markdown-h4-align-desktop: left; --section-markdown-h4-align-mobile: left; --section-markdown-h4-font-size-desktop: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-markdown-h4-font-size-mobile: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-markdown-h4-line-height: 1.55; --section-markdown-h4-spacing-before: 1.1em; --section-markdown-h4-spacing-after: 0.4em; --section-body-align-desktop: left; --section-body-align-mobile: left; --section-body-font-size-desktop: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-body-font-size-mobile: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-body-line-height: 1.62; --section-body-paragraph-spacing: 0.85em; --section-body-width-desktop: var(--gallery-layout-width); --section-body-width-mobile: var(--gallery-layout-width); --section-caption-align-desktop: left; --section-caption-align-mobile: left; --section-caption-font-size-desktop: clamp(0.86rem, 0.84rem + 0.08vw, 0.92rem); --section-caption-font-size-mobile: clamp(0.86rem, 0.84rem + 0.08vw, 0.92rem); --section-caption-line-height: 1.4; --section-caption-spacing-before: 0.5em; --section-caption-justify-desktop: flex-start; --section-caption-justify-mobile: flex-start"><div class="section-card"><header class="section-header"><h2>Timed section</h2></header><div class="section-body section-body-has-gallery"><div class="section-markdown"><p>This section uses frontmatter metadata without duplicating section order.</p>
|
|
7
|
+
</div><div class="gallery" aria-label="Images: Timed section"><section class="gallery-item gallery-carousel" data-carousel tabindex="0" role="group" aria-roledescription="carousel" aria-label="Timed section, bildkarusell" style="--gallery-carousel-aspect-ratio: 1.6666666666666667"><div class="gallery-carousel-stage"><div class="gallery-carousel-viewport" data-carousel-viewport><div class="gallery-carousel-slides"><figure class="gallery-carousel-slide" data-carousel-slide><div class="gallery-carousel-image-frame"><img src="/images/generated/timed/slide-one-3770d763-1440.webp" srcset="/images/generated/timed/slide-one-3770d763-480.webp 480w, /images/generated/timed/slide-one-3770d763-768.webp 768w, /images/generated/timed/slide-one-3770d763-1080.webp 1080w, /images/generated/timed/slide-one-3770d763-1440.webp 1440w, /images/generated/timed/slide-one-3770d763-1600.webp 1600w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 1600 / 960;" width="1600" height="960" class="gallery-image gallery-image-landscape" alt="A russet-brown dog beginning a gallop in a grassy field." decoding="async" fetchpriority="low" loading="lazy"></div></figure><figure class="gallery-carousel-slide" data-carousel-slide><div class="gallery-carousel-image-frame"><img src="/images/generated/timed/slide-two-26c08aee-1440.webp" srcset="/images/generated/timed/slide-two-26c08aee-480.webp 480w, /images/generated/timed/slide-two-26c08aee-768.webp 768w, /images/generated/timed/slide-two-26c08aee-1080.webp 1080w, /images/generated/timed/slide-two-26c08aee-1440.webp 1440w, /images/generated/timed/slide-two-26c08aee-1600.webp 1600w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 1600 / 960;" width="1600" height="960" class="gallery-image gallery-image-landscape" alt="The same russet-brown dog fully extended in mid-gallop." decoding="async" fetchpriority="low" loading="lazy"></div></figure><figure class="gallery-carousel-slide" data-carousel-slide><div class="gallery-carousel-image-frame"><img src="/images/generated/timed/slide-three-5bdec65e-1440.webp" srcset="/images/generated/timed/slide-three-5bdec65e-480.webp 480w, /images/generated/timed/slide-three-5bdec65e-768.webp 768w, /images/generated/timed/slide-three-5bdec65e-1080.webp 1080w, /images/generated/timed/slide-three-5bdec65e-1440.webp 1440w, /images/generated/timed/slide-three-5bdec65e-1600.webp 1600w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 1600 / 960;" width="1600" height="960" class="gallery-image gallery-image-landscape" alt="The same russet-brown dog landing during a gallop." decoding="async" fetchpriority="low" loading="lazy"></div></figure></div></div><button class="gallery-carousel-button gallery-carousel-button-previous" type="button" data-carousel-previous aria-label="Föregående bild" title="Föregående bild"><span aria-hidden="true">‹</span></button><button class="gallery-carousel-button gallery-carousel-button-next" type="button" data-carousel-next aria-label="Nästa bild" title="Nästa bild"><span aria-hidden="true">›</span></button><output class="gallery-carousel-position" data-carousel-position aria-live="polite">1 / 3</output></div><div class="gallery-carousel-captions" data-carousel-captions><p class="gallery-meta gallery-carousel-caption" data-carousel-caption data-carousel-caption-index="0"><span class="gallery-details"><span>Gallop phase one: push-off.</span></span></p><p class="gallery-meta gallery-carousel-caption" data-carousel-caption data-carousel-caption-index="1"><span class="gallery-details"><span>Gallop phase two: suspension.</span></span></p><p class="gallery-meta gallery-carousel-caption" data-carousel-caption data-carousel-caption-index="2"><span class="gallery-details"><span>Gallop phase three: landing.</span></span></p></div></section></div></div></div></section><section id="plain" class="site-section" data-section-title="Plain section" style="--section-background-color: transparent; --section-text-color: var(--color-text); --section-heading-align-desktop: left; --section-heading-align-mobile: left; --section-heading-font-size-desktop: clamp(1.35rem, 1.1rem + 0.9vw, 2rem); --section-heading-font-size-mobile: clamp(1.3rem, 1.05rem + 1.35vw, 1.75rem); --section-heading-line-height: 1.12; --section-heading-spacing-after: 0.55em; --section-heading-width-desktop: var(--gallery-layout-width); --section-heading-width-mobile: var(--gallery-layout-width); --section-markdown-h3-align-desktop: left; --section-markdown-h3-align-mobile: left; --section-markdown-h3-font-size-desktop: clamp(1.05rem, 0.98rem + 0.28vw, 1.22rem); --section-markdown-h3-font-size-mobile: clamp(1.04rem, 0.98rem + 0.45vw, 1.18rem); --section-markdown-h3-line-height: 1.35; --section-markdown-h3-spacing-before: 1.5em; --section-markdown-h3-spacing-after: 0.5em; --section-markdown-h4-align-desktop: left; --section-markdown-h4-align-mobile: left; --section-markdown-h4-font-size-desktop: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-markdown-h4-font-size-mobile: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-markdown-h4-line-height: 1.55; --section-markdown-h4-spacing-before: 1.1em; --section-markdown-h4-spacing-after: 0.4em; --section-body-align-desktop: left; --section-body-align-mobile: left; --section-body-font-size-desktop: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-body-font-size-mobile: clamp(0.96rem, 0.94rem + 0.08vw, 1rem); --section-body-line-height: 1.62; --section-body-paragraph-spacing: 0.85em; --section-body-width-desktop: var(--gallery-layout-width); --section-body-width-mobile: var(--gallery-layout-width); --section-caption-align-desktop: left; --section-caption-align-mobile: left; --section-caption-font-size-desktop: clamp(0.86rem, 0.84rem + 0.08vw, 0.92rem); --section-caption-font-size-mobile: clamp(0.86rem, 0.84rem + 0.08vw, 0.92rem); --section-caption-line-height: 1.4; --section-caption-spacing-before: 0.5em; --section-caption-justify-desktop: flex-start; --section-caption-justify-mobile: flex-start"><div class="section-card"><header class="section-header"><h2>Plain section</h2></header><div class="section-body section-body-has-gallery"><div class="section-markdown"><p>This section has no frontmatter metadata.</p>
|
|
8
|
+
</div><div class="gallery" aria-label="Images: Plain section"><figure class="gallery-item"><div class="gallery-image-frame"><img src="/images/generated/plain/image-3770d763-1440.webp" srcset="/images/generated/plain/image-3770d763-480.webp 480w, /images/generated/plain/image-3770d763-768.webp 768w, /images/generated/plain/image-3770d763-1080.webp 1080w, /images/generated/plain/image-3770d763-1440.webp 1440w, /images/generated/plain/image-3770d763-1600.webp 1600w" sizes="(max-width: 700px) 100vw, 100vw" style="aspect-ratio: 1600 / 960;" width="1600" height="960" class="gallery-image gallery-image-landscape" alt decoding="async" fetchpriority="low" loading="lazy"></div><figcaption class="gallery-meta"><div class="gallery-details"><span>a dog</span></div></figcaption></figure></div></div></div></section></main></body></html>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hash": "de113bed",
|
|
3
|
+
"configHash": "5c2ed27d",
|
|
4
|
+
"lockfileHash": "808f2e8e",
|
|
5
|
+
"browserHash": "e72fc9bb",
|
|
6
|
+
"optimized": {
|
|
7
|
+
"astro > aria-query": {
|
|
8
|
+
"src": "../../../../../node_modules/aria-query/lib/index.js",
|
|
9
|
+
"file": "astro_n_aria-query.js",
|
|
10
|
+
"fileHash": "14eef713",
|
|
11
|
+
"needsInterop": true
|
|
12
|
+
},
|
|
13
|
+
"astro > axobject-query": {
|
|
14
|
+
"src": "../../../../../node_modules/axobject-query/lib/index.js",
|
|
15
|
+
"file": "astro_n_axobject-query.js",
|
|
16
|
+
"fileHash": "256c2859",
|
|
17
|
+
"needsInterop": true
|
|
18
|
+
},
|
|
19
|
+
"astro > html-escaper": {
|
|
20
|
+
"src": "../../../../../node_modules/html-escaper/esm/index.js",
|
|
21
|
+
"file": "astro_n_html-escaper.js",
|
|
22
|
+
"fileHash": "7db8908e",
|
|
23
|
+
"needsInterop": false
|
|
24
|
+
},
|
|
25
|
+
"astro/runtime/client/dev-toolbar/entrypoint.js": {
|
|
26
|
+
"src": "../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js",
|
|
27
|
+
"file": "astro_runtime_client_dev-toolbar_entrypoint__js.js",
|
|
28
|
+
"fileHash": "5fc5d14b",
|
|
29
|
+
"needsInterop": false
|
|
30
|
+
},
|
|
31
|
+
"embla-carousel": {
|
|
32
|
+
"src": "../../../../../node_modules/embla-carousel/esm/embla-carousel.esm.js",
|
|
33
|
+
"file": "embla-carousel.js",
|
|
34
|
+
"fileHash": "be8494a6",
|
|
35
|
+
"needsInterop": false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"chunks": {
|
|
39
|
+
"astro-D_GIpJIE": {
|
|
40
|
+
"file": "astro-D_GIpJIE.js",
|
|
41
|
+
"isDynamicEntry": true
|
|
42
|
+
},
|
|
43
|
+
"audit-DM9Hkl5B": {
|
|
44
|
+
"file": "audit-DM9Hkl5B.js",
|
|
45
|
+
"isDynamicEntry": true
|
|
46
|
+
},
|
|
47
|
+
"highlight-DnZ1ULOL": {
|
|
48
|
+
"file": "highlight-DnZ1ULOL.js",
|
|
49
|
+
"isDynamicEntry": false
|
|
50
|
+
},
|
|
51
|
+
"icons-RyebKi45": {
|
|
52
|
+
"file": "icons-RyebKi45.js",
|
|
53
|
+
"isDynamicEntry": false
|
|
54
|
+
},
|
|
55
|
+
"rolldown-runtime-BvCyGRYZ": {
|
|
56
|
+
"file": "rolldown-runtime-BvCyGRYZ.js",
|
|
57
|
+
"isDynamicEntry": false
|
|
58
|
+
},
|
|
59
|
+
"settings-DaU-gNnK": {
|
|
60
|
+
"file": "settings-DaU-gNnK.js",
|
|
61
|
+
"isDynamicEntry": true
|
|
62
|
+
},
|
|
63
|
+
"toolbar-63PA619H": {
|
|
64
|
+
"file": "toolbar-63PA619H.js",
|
|
65
|
+
"isDynamicEntry": true
|
|
66
|
+
},
|
|
67
|
+
"ui-library--bkcNSYz": {
|
|
68
|
+
"file": "ui-library--bkcNSYz.js",
|
|
69
|
+
"isDynamicEntry": true
|
|
70
|
+
},
|
|
71
|
+
"window-jPkpKVcy": {
|
|
72
|
+
"file": "window-jPkpKVcy.js",
|
|
73
|
+
"isDynamicEntry": false
|
|
74
|
+
},
|
|
75
|
+
"xray-BXCHpEJP": {
|
|
76
|
+
"file": "xray-BXCHpEJP.js",
|
|
77
|
+
"isDynamicEntry": true
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
import { n as isDefinedIcon } from "./icons-RyebKi45.js";
|
|
2
|
+
import { n as createWindowElement, r as synchronizePlacementOnUpdate, t as closeOnOutsideClick } from "./window-jPkpKVcy.js";
|
|
3
|
+
//#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/apps/utils/icons.js
|
|
4
|
+
function randomFromArray(list) {
|
|
5
|
+
return list[Math.floor(Math.random() * list.length)];
|
|
6
|
+
}
|
|
7
|
+
var categoryIcons = new Map(Object.entries({
|
|
8
|
+
frameworks: ["puzzle", "grid"],
|
|
9
|
+
adapters: [
|
|
10
|
+
"puzzle",
|
|
11
|
+
"grid",
|
|
12
|
+
"compress"
|
|
13
|
+
],
|
|
14
|
+
"css+ui": [
|
|
15
|
+
"compress",
|
|
16
|
+
"grid",
|
|
17
|
+
"image",
|
|
18
|
+
"resizeImage",
|
|
19
|
+
"puzzle"
|
|
20
|
+
],
|
|
21
|
+
"performance+seo": [
|
|
22
|
+
"approveUser",
|
|
23
|
+
"checkCircle",
|
|
24
|
+
"compress",
|
|
25
|
+
"robot",
|
|
26
|
+
"searchFile",
|
|
27
|
+
"sitemap"
|
|
28
|
+
],
|
|
29
|
+
analytics: [
|
|
30
|
+
"checkCircle",
|
|
31
|
+
"compress",
|
|
32
|
+
"searchFile"
|
|
33
|
+
],
|
|
34
|
+
accessibility: ["approveUser", "checkCircle"],
|
|
35
|
+
other: [
|
|
36
|
+
"checkCircle",
|
|
37
|
+
"grid",
|
|
38
|
+
"puzzle",
|
|
39
|
+
"sitemap"
|
|
40
|
+
]
|
|
41
|
+
}));
|
|
42
|
+
function iconForIntegration(integration) {
|
|
43
|
+
return randomFromArray(integration.categories.filter((category) => categoryIcons.has(category)).flatMap((category) => categoryIcons.get(category)));
|
|
44
|
+
}
|
|
45
|
+
var iconColors = [
|
|
46
|
+
"#BC52EE",
|
|
47
|
+
"#6D6AF0",
|
|
48
|
+
"#52EEBD",
|
|
49
|
+
"#52B7EE",
|
|
50
|
+
"#52EE55",
|
|
51
|
+
"#B7EE52",
|
|
52
|
+
"#EEBD52",
|
|
53
|
+
"#EE5552",
|
|
54
|
+
"#EE52B7",
|
|
55
|
+
"#858B98"
|
|
56
|
+
];
|
|
57
|
+
function colorForIntegration() {
|
|
58
|
+
return randomFromArray(iconColors);
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/apps/astro.js
|
|
62
|
+
var astroLogo = "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 99 26\" width=\"100\"><path fill=\"#fff\" d=\"M6.70402 22.1453c-1.17459-1.0737-1.51748-3.3297-1.02811-4.9641.84853 1.0304 2.02424 1.3569 3.24204 1.5411 1.88005.2844 3.72635.178 5.47285-.6813.1998-.0984.3844-.2292.6027-.3617.1639.4755.2065.9554.1493 1.4439-.1392 1.1898-.7313 2.1088-1.673 2.8054-.3765.2787-.775.5278-1.1639.7905-1.1948.8075-1.518 1.7544-1.0691 3.1318.0107.0336.0202.0671.0444.149-.6101-.273-1.0557-.6705-1.39518-1.1931-.3586-.5517-.52921-1.1619-.53819-1.8221-.00449-.3213-.00449-.6455-.0477-.9623-.10551-.7722-.46804-1.118-1.15102-1.1379-.70094-.0205-1.2554.4129-1.40244 1.0953-.01122.0523-.02749.1041-.04377.1649l.00112.0006Z\"/><path fill=\"url(#paint0_linear_386_2739)\" d=\"M6.70402 22.1453c-1.17459-1.0737-1.51748-3.3297-1.02811-4.9641.84853 1.0304 2.02424 1.3569 3.24204 1.5411 1.88005.2844 3.72635.178 5.47285-.6813.1998-.0984.3844-.2292.6027-.3617.1639.4755.2065.9554.1493 1.4439-.1392 1.1898-.7313 2.1088-1.673 2.8054-.3765.2787-.775.5278-1.1639.7905-1.1948.8075-1.518 1.7544-1.0691 3.1318.0107.0336.0202.0671.0444.149-.6101-.273-1.0557-.6705-1.39518-1.1931-.3586-.5517-.52921-1.1619-.53819-1.8221-.00449-.3213-.00449-.6455-.0477-.9623-.10551-.7722-.46804-1.118-1.15102-1.1379-.70094-.0205-1.2554.4129-1.40244 1.0953-.01122.0523-.02749.1041-.04377.1649l.00112.0006Z\"/><path fill=\"#fff\" d=\"M0 16.909s3.47815-1.6944 6.96603-1.6944l2.62973-8.13858c.09846-.39359.38592-.66106.71044-.66106.3246 0 .612.26747.7105.66106l2.6297 8.13858c4.1309 0 6.966 1.6944 6.966 1.6944S14.7045.814589 14.693.782298C14.5234.306461 14.2371 0 13.8512 0H6.76183c-.38593 0-.66063.306461-.84174.782298C5.90733.81398 0 16.909 0 16.909ZM36.671 11.7318c0 1.4262-1.7739 2.2779-4.2302 2.2779-1.5985 0-2.1638-.3962-2.1638-1.2281 0-.8715.7018-1.2875 2.3003-1.2875 1.4426 0 2.6707.0198 4.0937.1981v.0396Zm.0195-1.7629c-.8772-.19808-2.2028-.31693-3.7818-.31693-4.6006 0-6.7644 1.08943-6.7644 3.62483 0 2.6344 1.4815 3.6446 4.9125 3.6446 2.9046 0 4.8735-.7328 5.5947-2.5354h.117c-.0195.4358-.039.8716-.039 1.2083 0 .931.156 1.0102.9162 1.0102h3.5869c-.1949-.5546-.3119-2.1194-.3119-3.4663 0-1.446.0585-2.5355.0585-4.00123 0-2.99098-1.7934-4.89253-7.4077-4.89253-2.4173 0-5.1074.41596-7.1543 1.03.1949.81213.4679 2.45617.6043 3.5258 1.774-.83193 4.2887-1.18847 6.2381-1.18847 2.6902 0 3.4309.61404 3.4309 1.86193v.4952ZM46.5325 12.5637c-.4874.0594-1.1502.0594-1.8325.0594-.7213 0-1.3841-.0198-1.8324-.0792 0 .1585-.0195.3367-.0195.4952 0 2.476 1.618 3.922 7.3102 3.922 5.3609 0 7.0958-1.4262 7.0958-3.9418 0-2.3769-1.1501-3.5456-6.238-3.8031-3.9573-.17827-4.3082-.61404-4.3082-1.10924 0-.57442.5068-.87154 3.158-.87154 2.7487 0 3.4894.37635 3.4894 1.16866v.17827c.3899-.01981 1.0917-.03961 1.813-.03961.6823 0 1.423.0198 1.8519.05942 0-.17827.0195-.33674.0195-.47539 0-2.91175-2.4172-3.86252-7.0958-3.86252-5.2634 0-7.0373 1.2875-7.0373 3.8031 0 2.25805 1.423 3.66445 6.472 3.88235 3.7233.1188 4.1327.5348 4.1327 1.1092 0 .6141-.6043.8914-3.2165.8914-3.0021 0-3.7623-.416-3.7623-1.2677v-.1189ZM63.6883 2.125c-1.423 1.32712-3.9768 2.65425-5.3998 3.01079.0195.73289.0195 2.07982.0195 2.81271l1.3061.01981c-.0195 1.40635-.039 3.10979-.039 4.23889 0 2.6344 1.3841 4.6152 5.6922 4.6152 1.813 0 3.0216-.1981 4.5226-.515-.1559-.9706-.3314-2.4562-.3898-3.5852-.8968.2971-2.0274.4556-3.275.4556-1.735 0-2.4368-.4754-2.4368-1.8422 0-1.1884 0-2.29767.0195-3.32768 2.2223.01981 4.4446.05943 5.7507.09904-.0195-1.03.0195-2.51559.078-3.50598-1.8909.03961-4.0157.05942-5.7702.05942.0195-.87154.039-1.70347.0585-2.5354h-.1365ZM75.3313 7.35427c.0195-1.03001.039-1.90156.0585-2.75329h-3.9183c.0585 1.70347.0585 3.44656.0585 6.00172 0 2.5553-.0195 4.3182-.0585 6.0018h4.4836c-.078-1.1885-.0975-3.189-.0975-4.8925 0-2.69388 1.0917-3.46638 3.5674-3.46638 1.1502 0 1.9689.13865 2.6902.39615.0195-1.01019.2144-2.97117.3314-3.84271-.7408-.21789-1.5595-.35655-2.5537-.35655-2.1249-.0198-3.6844.85174-4.4056 2.93156l-.156-.0198ZM94.8501 10.5235c0 2.1591-1.5595 3.1693-4.0157 3.1693-2.4368 0-3.9963-.9508-3.9963-3.1693 0-2.21846 1.579-3.05039 3.9963-3.05039 2.4367 0 4.0157.89135 4.0157 3.05039Zm4.0743-.099c0-4.29832-3.353-6.21968-8.09-6.21968-4.7566 0-7.9926 1.92136-7.9926 6.21968 0 4.2785 3.0216 6.5762 7.9731 6.5762 4.9904 0 8.1095-2.2977 8.1095-6.5762Z\"/><defs><linearGradient id=\"paint0_linear_386_2739\" x1=\"5.46011\" x2=\"16.8017\" y1=\"25.9999\" y2=\"20.6412\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#D83333\"/><stop offset=\"1\" stop-color=\"#F041FF\"/></linearGradient></defs></svg>";
|
|
63
|
+
var integrationData;
|
|
64
|
+
var astro_default = {
|
|
65
|
+
id: "astro:home",
|
|
66
|
+
name: "Menu",
|
|
67
|
+
icon: "astro:logo",
|
|
68
|
+
async init(canvas, eventTarget) {
|
|
69
|
+
createCanvas();
|
|
70
|
+
document.addEventListener("astro:after-swap", createCanvas);
|
|
71
|
+
eventTarget.addEventListener("app-toggled", async (event) => {
|
|
72
|
+
resetDebugButton();
|
|
73
|
+
if (!(event instanceof CustomEvent)) return;
|
|
74
|
+
if (event.detail.state === true) {
|
|
75
|
+
if (!integrationData) fetchIntegrationData();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
closeOnOutsideClick(eventTarget);
|
|
79
|
+
synchronizePlacementOnUpdate(eventTarget, canvas);
|
|
80
|
+
function fetchIntegrationData() {
|
|
81
|
+
fetch("https://astro.build/api/v1/dev-overlay/", { cache: "no-cache" }).then((res) => res.json()).then((data) => {
|
|
82
|
+
integrationData = data;
|
|
83
|
+
integrationData.data = integrationData.data.map((integration) => {
|
|
84
|
+
return integration;
|
|
85
|
+
});
|
|
86
|
+
refreshIntegrationList();
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function createCanvas() {
|
|
90
|
+
const links = [
|
|
91
|
+
{
|
|
92
|
+
icon: "bug",
|
|
93
|
+
name: "Report a Bug",
|
|
94
|
+
link: "https://github.com/withastro/astro/issues/new/choose"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
icon: "lightbulb",
|
|
98
|
+
name: "Feedback",
|
|
99
|
+
link: "https://github.com/withastro/roadmap/discussions/new/choose"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
icon: "file-search",
|
|
103
|
+
name: "Documentation",
|
|
104
|
+
link: "https://docs.astro.build"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 17 14\"><path fill=\"currentColor\" d=\"M14.3451 1.9072c-1.0375-.47613-2.1323-.81595-3.257-1.010998-.0102-.001716-.0207-.000234-.03.004243s-.017.011728-.022.020757c-.141.249998-.297.576998-.406.832998-1.2124-.18399-2.44561-.18399-3.658 0-.12159-.28518-.25914-.56328-.412-.832998-.00513-.00893-.01285-.016098-.02213-.02056-.00928-.004462-.0197-.00601-.02987-.00444-1.125.193998-2.22.533998-3.257 1.010998-.00888.00339-.0163.00975-.021.018-2.074 3.099-2.643004 6.122-2.364004 9.107.001.014.01.028.021.037 1.207724.8946 2.558594 1.5777 3.995004 2.02.01014.0032.02103.0031.03111-.0003.01007-.0034.01878-.01.02489-.0187.308-.42.582-.863.818-1.329.00491-.0096.0066-.0205.0048-.0312-.00181-.0106-.007-.0204-.0148-.0278-.00517-.0049-.0113-.0086-.018-.011-.43084-.1656-.84811-.3645-1.248-.595-.01117-.0063-.01948-.0167-.0232-.029-.00373-.0123-.00258-.0255.0032-.037.0034-.0074.00854-.014.015-.019.084-.063.168-.129.248-.195.00706-.0057.01554-.0093.02453-.0106.00898-.0012.01813 0 .02647.0036 2.619 1.196 5.454 1.196 8.041 0 .0086-.0037.0181-.0051.0275-.0038.0093.0012.0181.0049.0255.0108.08.066.164.132.248.195.0068.005.0123.0116.0159.0192.0036.0076.0053.016.0049.0244-.0003.0084-.0028.0166-.0072.0238-.0043.0072-.0104.0133-.0176.0176-.399.2326-.8168.4313-1.249.594-.0069.0025-.0132.0065-.0183.0117-.0052.0051-.0092.0114-.0117.0183-.0023.0067-.0032.0138-.0027.0208.0005.0071.0024.0139.0057.0202.24.465.515.909.817 1.329.0061.0087.0148.0153.0249.0187.0101.0034.021.0035.0311.0003 1.4388-.441 2.7919-1.1241 4.001-2.02.0061-.0042.0111-.0097.0147-.0161.0037-.0064.0058-.0135.0063-.0209.334-3.451-.559-6.449-2.366-9.106-.0018-.00439-.0045-.00834-.008-.01162-.0034-.00327-.0075-.00578-.012-.00738Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z\"/></svg>",
|
|
108
|
+
name: "Community",
|
|
109
|
+
link: "https://astro.build/chat"
|
|
110
|
+
}
|
|
111
|
+
];
|
|
112
|
+
const { latestAstroVersion, version, debugInfo } = window.__astro_dev_toolbar__ ?? {};
|
|
113
|
+
const windowComponent = createWindowElement(`<style>
|
|
114
|
+
#buttons-container {
|
|
115
|
+
display: flex;
|
|
116
|
+
gap: 16px;
|
|
117
|
+
justify-content: center;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#buttons-container astro-dev-toolbar-card {
|
|
121
|
+
flex: 1;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
footer {
|
|
125
|
+
display: flex;
|
|
126
|
+
justify-content: center;
|
|
127
|
+
gap: 24px;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
footer a {
|
|
131
|
+
color: rgba(145, 152, 173, 1);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
footer a:hover {
|
|
135
|
+
color: rgba(204, 206, 216, 1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
#main-container {
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-direction: column;
|
|
141
|
+
height: 100%;
|
|
142
|
+
gap: 24px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
p {
|
|
146
|
+
margin-top: 0;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
header {
|
|
150
|
+
display: flex;
|
|
151
|
+
justify-content: space-between;
|
|
152
|
+
align-items: center;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
header section {
|
|
156
|
+
display: flex;
|
|
157
|
+
gap: 0.8em;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
h2 {
|
|
161
|
+
color: white;
|
|
162
|
+
margin: 0;
|
|
163
|
+
font-size: 18px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
a {
|
|
167
|
+
color: rgba(224, 204, 250, 1);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
a:hover {
|
|
171
|
+
color: #f4ecfd;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
#integration-list-wrapper {
|
|
175
|
+
position: relative;
|
|
176
|
+
--offset: 24px;
|
|
177
|
+
overflow-x: auto;
|
|
178
|
+
overflow-y: hidden;
|
|
179
|
+
margin-left: calc(var(--offset) * -1);
|
|
180
|
+
margin-right: calc(var(--offset) * -1);
|
|
181
|
+
padding-left: var(--offset);
|
|
182
|
+
padding-right: var(--offset);
|
|
183
|
+
height: 210px;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Pseudo-elements to fade cards as they scroll out of viewport */
|
|
187
|
+
#integration-list-wrapper::before,
|
|
188
|
+
#integration-list-wrapper::after {
|
|
189
|
+
content: '';
|
|
190
|
+
height: 192px;
|
|
191
|
+
display: block;
|
|
192
|
+
position: fixed;
|
|
193
|
+
width: var(--offset);
|
|
194
|
+
top: 106px;
|
|
195
|
+
background: red;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
#integration-list-wrapper::before {
|
|
199
|
+
left: -1px;
|
|
200
|
+
border-left: 1px solid rgba(52, 56, 65, 1);
|
|
201
|
+
background: linear-gradient(to right, rgba(19, 21, 26, 1), rgba(19, 21, 26, 0));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
#integration-list-wrapper::after {
|
|
205
|
+
right: -1px;
|
|
206
|
+
border-right: 1px solid rgba(52, 56, 65, 1);
|
|
207
|
+
background: linear-gradient(to left, rgba(19, 21, 26, 1), rgba(19, 21, 26, 0));
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
#integration-list-wrapper::-webkit-scrollbar {
|
|
211
|
+
width: 5px;
|
|
212
|
+
height: 8px;
|
|
213
|
+
background-color: rgba(255, 255, 255, 0.08); /* or add it to the track */
|
|
214
|
+
border-radius: 4px;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* This is wild but gives us a gap on either side of the container */
|
|
218
|
+
#integration-list-wrapper::-webkit-scrollbar-button:start:decrement,
|
|
219
|
+
#integration-list-wrapper::-webkit-scrollbar-button:end:increment {
|
|
220
|
+
display: block;
|
|
221
|
+
width: 24px;
|
|
222
|
+
background-color: #13151A;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* Removes arrows on both sides */
|
|
226
|
+
#integration-list-wrapper::-webkit-scrollbar-button:horizontal:start:increment,
|
|
227
|
+
#integration-list-wrapper::-webkit-scrollbar-button:horizontal:end:decrement {
|
|
228
|
+
display: none;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
#integration-list-wrapper::-webkit-scrollbar-track-piece {
|
|
232
|
+
border-radius: 4px;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
#integration-list-wrapper::-webkit-scrollbar-thumb {
|
|
236
|
+
background-color: rgba(255, 255, 255, 0.3);
|
|
237
|
+
border-radius: 4px;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
#integration-list {
|
|
241
|
+
margin-top: 1em;
|
|
242
|
+
display: flex;
|
|
243
|
+
gap: 16px;
|
|
244
|
+
padding-bottom: 1em;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
#integration-list::after {
|
|
248
|
+
content: " ";
|
|
249
|
+
display: inline-block;
|
|
250
|
+
white-space: pre;
|
|
251
|
+
width: 1px;
|
|
252
|
+
height: 1px;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
#integration-list astro-dev-toolbar-card, .integration-skeleton {
|
|
256
|
+
min-width: 240px;
|
|
257
|
+
height: 160px;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.integration-skeleton {
|
|
261
|
+
animation: pulse 2s calc(var(--i, 0) * 250ms) cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
262
|
+
background-color: rgba(35, 38, 45, 1);
|
|
263
|
+
border-radius: 8px;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@keyframes pulse {
|
|
267
|
+
0%, 100% {
|
|
268
|
+
opacity: 1;
|
|
269
|
+
}
|
|
270
|
+
50% {
|
|
271
|
+
opacity: .5;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
#integration-list astro-dev-toolbar-card .integration-image {
|
|
276
|
+
width: 40px;
|
|
277
|
+
height: 40px;
|
|
278
|
+
background-color: var(--integration-image-background, white);
|
|
279
|
+
border-radius: 9999px;
|
|
280
|
+
display: flex;
|
|
281
|
+
justify-content: center;
|
|
282
|
+
align-items: center;
|
|
283
|
+
margin-bottom: 8px;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
#integration-list astro-dev-toolbar-card img {
|
|
287
|
+
width: 24px;
|
|
288
|
+
height: 24px;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
#integration-list astro-dev-toolbar-card astro-dev-toolbar-icon {
|
|
292
|
+
width: 24px;
|
|
293
|
+
height: 24px;
|
|
294
|
+
color: #fff;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
#links {
|
|
298
|
+
margin: auto 0;
|
|
299
|
+
display: flex;
|
|
300
|
+
justify-content: center;
|
|
301
|
+
gap: 24px;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
#links a {
|
|
305
|
+
text-decoration: none;
|
|
306
|
+
align-items: center;
|
|
307
|
+
display: flex;
|
|
308
|
+
flex-direction: column;
|
|
309
|
+
gap: 0.7em;
|
|
310
|
+
flex: 1;
|
|
311
|
+
white-space: nowrap;
|
|
312
|
+
font-weight: 600;
|
|
313
|
+
color: white;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
#links a:hover {
|
|
317
|
+
color: rgba(145, 152, 173, 1);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
#links astro-dev-toolbar-icon {
|
|
321
|
+
width: 1.5em;
|
|
322
|
+
height: 1.5em;
|
|
323
|
+
display: block;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
#integration-list astro-dev-toolbar-card svg {
|
|
327
|
+
width: 24px;
|
|
328
|
+
height: 24px;
|
|
329
|
+
vertical-align: bottom;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
#integration-list astro-dev-toolbar-card h3 {
|
|
333
|
+
margin: 0;
|
|
334
|
+
margin-bottom: 8px;
|
|
335
|
+
color: white;
|
|
336
|
+
white-space: nowrap;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
#integration-list astro-dev-toolbar-card p {
|
|
340
|
+
font-size: 14px;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
@media (forced-colors: active) {
|
|
344
|
+
svg path[fill="#fff"] {
|
|
345
|
+
fill: black;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
</style>
|
|
349
|
+
|
|
350
|
+
<header>
|
|
351
|
+
<section>
|
|
352
|
+
${astroLogo}
|
|
353
|
+
<astro-dev-toolbar-badge badge-style="gray" size="large">${version}</astro-dev-toolbar-badge>
|
|
354
|
+
${latestAstroVersion ? `<astro-dev-toolbar-badge badge-style="green" size="large">${latestAstroVersion} available!</astro-dev-toolbar-badge>
|
|
355
|
+
` : ""}
|
|
356
|
+
</section>
|
|
357
|
+
<astro-dev-toolbar-button id="copy-debug-button">Copy debug info <astro-dev-toolbar-icon icon="copy" /></astro-dev-toolbar-button>
|
|
358
|
+
</header>
|
|
359
|
+
<hr />
|
|
360
|
+
|
|
361
|
+
<div id="main-container">
|
|
362
|
+
<div>
|
|
363
|
+
<header><h2>Featured integrations</h2><a href="https://astro.build/integrations/" target="_blank">View all</a></header>
|
|
364
|
+
<div id="integration-list-wrapper">
|
|
365
|
+
<section id="integration-list">
|
|
366
|
+
<div class="integration-skeleton" style="--i:0;"></div>
|
|
367
|
+
<div class="integration-skeleton" style="--i:1;"></div>
|
|
368
|
+
<div class="integration-skeleton" style="--i:2;"></div>
|
|
369
|
+
<div class="integration-skeleton" style="--i:3;"></div>
|
|
370
|
+
<div class="integration-skeleton" style="--i:4;"></div>
|
|
371
|
+
</section>
|
|
372
|
+
</div>
|
|
373
|
+
</div>
|
|
374
|
+
<section id="links">
|
|
375
|
+
${links.map((link) => `<a href="${link.link}" target="_blank"><astro-dev-toolbar-icon ${isDefinedIcon(link.icon) ? `icon="${link.icon}">` : `>${link.icon}`}</astro-dev-toolbar-icon>${link.name}</a>`).join("")}
|
|
376
|
+
</section>
|
|
377
|
+
</div>
|
|
378
|
+
`);
|
|
379
|
+
const copyDebugButton = windowComponent.querySelector("#copy-debug-button");
|
|
380
|
+
copyDebugButton?.addEventListener("click", () => {
|
|
381
|
+
navigator.clipboard.writeText("```\n" + debugInfo + "\n```");
|
|
382
|
+
copyDebugButton.textContent = "Copied to clipboard!";
|
|
383
|
+
setTimeout(() => {
|
|
384
|
+
resetDebugButton();
|
|
385
|
+
}, 3500);
|
|
386
|
+
});
|
|
387
|
+
canvas.append(windowComponent);
|
|
388
|
+
if (integrationData) refreshIntegrationList();
|
|
389
|
+
}
|
|
390
|
+
function resetDebugButton() {
|
|
391
|
+
const copyDebugButton = canvas.querySelector("#copy-debug-button");
|
|
392
|
+
if (!copyDebugButton) return;
|
|
393
|
+
copyDebugButton.innerHTML = "Copy debug info <astro-dev-toolbar-icon icon=\"copy\" />";
|
|
394
|
+
}
|
|
395
|
+
function refreshIntegrationList() {
|
|
396
|
+
const integrationList = canvas.querySelector("#integration-list");
|
|
397
|
+
if (!integrationList) return;
|
|
398
|
+
integrationList.innerHTML = "";
|
|
399
|
+
const fragment = document.createDocumentFragment();
|
|
400
|
+
for (const integration of integrationData.data) {
|
|
401
|
+
const integrationComponent = document.createElement("astro-dev-toolbar-card");
|
|
402
|
+
integrationComponent.link = integration.homepageUrl;
|
|
403
|
+
const integrationContainer = document.createElement("div");
|
|
404
|
+
integrationContainer.className = "integration-container";
|
|
405
|
+
const integrationImage = document.createElement("div");
|
|
406
|
+
integrationImage.className = "integration-image";
|
|
407
|
+
if (integration.image) {
|
|
408
|
+
const img = document.createElement("img");
|
|
409
|
+
img.src = integration.image;
|
|
410
|
+
img.alt = integration.title;
|
|
411
|
+
integrationImage.append(img);
|
|
412
|
+
} else {
|
|
413
|
+
const icon = document.createElement("astro-dev-toolbar-icon");
|
|
414
|
+
icon.icon = iconForIntegration(integration);
|
|
415
|
+
integrationImage.append(icon);
|
|
416
|
+
integrationImage.style.setProperty("--integration-image-background", colorForIntegration());
|
|
417
|
+
}
|
|
418
|
+
integrationContainer.append(integrationImage);
|
|
419
|
+
let integrationTitle = document.createElement("h3");
|
|
420
|
+
integrationTitle.textContent = integration.title;
|
|
421
|
+
if (integration.official || integration.categories.includes("official")) integrationTitle.innerHTML += " <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 21 20\"><rect width=\"19\" height=\"19\" x=\"1.16602\" y=\".5\" fill=\"url(#paint0_linear_917_1096)\" fill-opacity=\".33\" rx=\"9.5\"/><path fill=\"#fff\" d=\"M15.139 6.80657c-.062-.06248-.1357-.11208-.217-.14592-.0812-.03385-.1683-.05127-.2563-.05127-.0881 0-.1752.01742-.2564.05127-.0813.03384-.155.08344-.217.14592L9.22566 11.7799 7.13899 9.68657c-.06435-.06216-.14031-.11103-.22355-.14383-.08323-.03281-.17211-.04889-.26157-.04735-.08945.00155-.17773.0207-.25978.05637a.68120694.68120694 0 0 0-.21843.15148c-.06216.06435-.11104.14031-.14384.22355-.0328.08321-.04889.17211-.04734.26161.00154.0894.0207.1777.05636.2597.03566.0821.08714.1563.15148.2185l2.56 2.56c.06198.0625.13571.1121.21695.1459s.16838.0513.25639.0513c.088 0 .17514-.0175.25638-.0513s.15497-.0834.21695-.1459L15.139 7.78657c.0677-.06242.1217-.13819.1586-.22253.0369-.08433.056-.1754.056-.26747 0-.09206-.0191-.18313-.056-.26747-.0369-.08433-.0909-.1601-.1586-.22253Z\"/><rect width=\"19\" height=\"19\" x=\"1.16602\" y=\".5\" stroke=\"url(#paint1_linear_917_1096)\" rx=\"9.5\"/><defs><linearGradient id=\"paint0_linear_917_1096\" x1=\"20.666\" x2=\"-3.47548\" y1=\".00000136\" y2=\"10.1345\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#4AF2C8\"/><stop offset=\"1\" stop-color=\"#2F4CB3\"/></linearGradient><linearGradient id=\"paint1_linear_917_1096\" x1=\"20.666\" x2=\"-3.47548\" y1=\".00000136\" y2=\"10.1345\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#4AF2C8\"/><stop offset=\"1\" stop-color=\"#2F4CB3\"/></linearGradient></defs></svg>";
|
|
422
|
+
integrationContainer.append(integrationTitle);
|
|
423
|
+
const integrationDescription = document.createElement("p");
|
|
424
|
+
integrationDescription.textContent = integration.description.length > 90 ? integration.description.slice(0, 90) + "…" : integration.description;
|
|
425
|
+
integrationContainer.append(integrationDescription);
|
|
426
|
+
integrationComponent.append(integrationContainer);
|
|
427
|
+
fragment.append(integrationComponent);
|
|
428
|
+
}
|
|
429
|
+
integrationList.append(fragment);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
//#endregion
|
|
434
|
+
export { astro_default as default };
|