@janga/norna 0.7.11 → 0.7.13
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 +120 -108
- package/bin/norna-cli.mjs +1 -1
- package/docs/README.md +107 -75
- package/docs/assets/norna-dog-shelter.jpg +0 -0
- package/docs/commands.md +7 -4
- package/docs/configuration.md +86 -185
- package/docs/design/command-organization.md +1 -1
- package/docs/design/norna-diagram-design.md +2 -1
- package/docs/design/site-examples-structure.md +4 -1
- package/docs/engine-development.md +15 -8
- package/docs/getting-started.md +126 -144
- package/docs/how-to/embedded-site.md +35 -0
- package/docs/publishing.md +47 -46
- package/docs/requirements.md +54 -0
- package/docs/routes.md +1 -1
- package/docs/site-structure.md +4 -4
- package/docs/sitewide-content.md +2 -1
- package/docs/theme.md +18 -0
- package/examples/README.md +26 -24
- package/examples/complete-sites/dog-shelter-multi-page/.astro/content-assets.mjs +4 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/content.d.ts +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +6 -8
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +26 -53
- package/examples/complete-sites/dog-shelter-multi-page/README.md +7 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +29 -35
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{astro-D_GIpJIE.js → astro-B3JHJyiv.js} +4 -4
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js +151 -151
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js +131 -131
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +10 -10
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{audit-DM9Hkl5B.js → audit-C3SVr7dT.js} +10 -10
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{highlight-DnZ1ULOL.js → highlight-BLtvqtzO.js} +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{icons-RyebKi45.js → icons-C92i61-2.js} +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{settings-DaU-gNnK.js → settings-v5GgKks_.js} +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{toolbar-63PA619H.js → toolbar-BFvJVp26.js} +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{ui-library--bkcNSYz.js → ui-library-Cd35oAvo.js} +10 -10
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{window-jPkpKVcy.js → window-vo3A6TMn.js} +1 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/{xray-BXCHpEJP.js → xray-DwhzGckb.js} +3 -3
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +92 -12
- package/examples/complete-sites/dog-shelter-multi-page/site/config.md +3 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/content.md +12 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/images/intro/shelter-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/public/logo.svg +9 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/route-content.md +11 -19
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/020-adopt/images/adopt/adoption-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/020-adopt/route-content.md +11 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.md +12 -2
- package/examples/complete-sites/dog-shelter-multi-page/site/theme.md +1 -23
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +59 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +138 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +755 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/content-assets.mjs +4 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/content-modules.mjs +1 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/content.d.ts +183 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +1 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +13 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +14 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/settings.json +5 -0
- package/examples/complete-sites/dog-shelter-single-page/.astro/types.d.ts +2 -0
- package/examples/complete-sites/dog-shelter-single-page/README.md +7 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/package.json +3 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
- package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +44 -12
- package/examples/complete-sites/dog-shelter-single-page/site/config.md +3 -0
- package/examples/complete-sites/dog-shelter-single-page/site/content.md +20 -24
- package/examples/complete-sites/dog-shelter-single-page/site/images/what-we-do/rescue-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-single-page/site/images/you-can-help/foster-dog.jpg +0 -0
- package/examples/complete-sites/dog-shelter-single-page/site/public/logo.svg +9 -0
- package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.md +12 -2
- package/examples/complete-sites/dog-shelter-single-page/site/theme.md +1 -23
- package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -1
- package/examples/feature-demos/media-and-surfaces/.astro/dev.log +15 -2
- package/examples/feature-demos/media-and-surfaces/README.md +7 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +7 -1
- package/examples/{complete-sites/dog-shelter-multi-page → feature-demos/media-and-surfaces}/node_modules/.vite/deps/embla-carousel.js +1 -1
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/site/config.md +3 -0
- package/examples/feature-demos/media-and-surfaces/site/content.md +5 -51
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/route-content.md +10 -25
- package/examples/feature-demos/media-and-surfaces/site/routes/020-surfaces/route-content.md +1 -1
- package/examples/feature-demos/sitewide-content/.astro/collections/site.schema.json +59 -0
- package/examples/feature-demos/sitewide-content/.astro/collections/sitewide.schema.json +138 -0
- package/examples/feature-demos/sitewide-content/.astro/collections/theme.schema.json +755 -0
- package/examples/feature-demos/sitewide-content/.astro/content-assets.mjs +1 -0
- package/examples/feature-demos/sitewide-content/.astro/content-modules.mjs +1 -0
- package/examples/feature-demos/sitewide-content/.astro/content.d.ts +183 -0
- package/examples/feature-demos/sitewide-content/.astro/data-store.json +1 -0
- package/examples/feature-demos/sitewide-content/.astro/dev.json +13 -0
- package/examples/feature-demos/sitewide-content/.astro/dev.log +18 -0
- package/examples/feature-demos/sitewide-content/.astro/settings.json +5 -0
- package/examples/feature-demos/sitewide-content/.astro/types.d.ts +2 -0
- package/examples/feature-demos/sitewide-content/README.md +18 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/package.json +3 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
- package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/feature-demos/sitewide-content/site/.norna/generated-images.json +1 -0
- package/examples/feature-demos/sitewide-content/site/config.md +3 -0
- package/examples/feature-demos/sitewide-content/site/content.md +16 -0
- package/examples/feature-demos/sitewide-content/site/public/logo.svg +6 -0
- package/examples/feature-demos/sitewide-content/site/public/robots.txt +2 -0
- package/examples/feature-demos/sitewide-content/site/routes/010-identity/route-content.md +20 -0
- package/examples/feature-demos/sitewide-content/site/routes/020-notices/route-content.md +22 -0
- package/examples/feature-demos/sitewide-content/site/routes/030-footer/route-content.md +17 -0
- package/examples/feature-demos/sitewide-content/site/sitewide-content.md +33 -0
- package/examples/feature-demos/sitewide-content/site/theme.md +3 -0
- package/examples/feature-demos/theme-presets/.astro/dev.log +37 -0
- package/examples/feature-demos/theme-presets/README.md +5 -1
- package/examples/feature-demos/theme-presets/site/config.md +3 -0
- package/fixtures/basic/site/config.md +3 -0
- package/fixtures/content-model-v2/site/config.md +3 -0
- package/package.json +12 -7
- package/scripts/build-pages.mjs +4 -6
- package/scripts/check-config.mjs +1 -10
- package/scripts/deploy-site.mjs +12 -8
- package/scripts/lib/example-sites.mjs +3 -0
- package/scripts/lib/github-repository.mjs +44 -0
- package/scripts/lib/norna-markdown-blocks.mjs +97 -10
- package/scripts/lib/project-config.mjs +112 -123
- package/scripts/lib/site-content.mjs +7 -0
- package/scripts/lib/site-paths.mjs +6 -2
- package/scripts/test-client-javascript.mjs +221 -0
- package/scripts/test-content-check.mjs +103 -0
- package/scripts/test-content-model-v2.mjs +9 -13
- package/scripts/test-documentation.mjs +116 -0
- package/scripts/test-engine-commands.mjs +12 -3
- package/scripts/test-examples.mjs +9 -0
- package/scripts/test-package-check.mjs +17 -9
- package/scripts/test-project-config.mjs +125 -0
- package/scripts/test-temporary-visibility.mjs +3 -10
- package/scripts/test-theme-presets.mjs +3 -8
- package/scripts/watch-pages-deploy.mjs +15 -11
- package/src/components/GalleryGrid.astro +30 -230
- package/src/components/ImageCarousel.astro +184 -0
- package/src/components/MobileSectionNavigationScript.astro +14 -0
- package/src/components/SiteNavigation.astro +54 -341
- package/src/components/SiteNotesScript.astro +43 -0
- package/src/components/SitePage.astro +4 -1
- package/src/components/SiteSection.astro +4 -47
- package/src/layouts/BaseLayout.astro +1 -1
- package/src/lib/galleryImages.ts +53 -0
- package/src/styles/global.css +81 -1
- package/starters/basic/.github/workflows/deploy.yml +1 -2
- package/starters/basic/README.md +10 -8
- package/starters/basic/site/config.md +3 -0
- package/starters/project/.github/workflows/deploy.yml +1 -2
- package/starters/project/README.md +3 -4
- package/starters/project/site/config.md +3 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/embla-carousel.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
- package/examples/complete-sites/dog-shelter-multi-page/site/config.mjs +0 -30
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg +0 -19
- package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg +0 -19
- package/examples/complete-sites/dog-shelter-single-page/site/config.mjs +0 -30
- package/examples/complete-sites/dog-shelter-single-page/site/images/what-we-do/dog-house.svg +0 -25
- package/examples/complete-sites/dog-shelter-single-page/site/images/you-can-help/heart.svg +0 -13
- package/examples/feature-demos/media-and-surfaces/site/config.mjs +0 -30
- package/examples/feature-demos/media-and-surfaces/site/routes/010-media/theme.md +0 -3
- package/examples/feature-demos/theme-presets/site/config.mjs +0 -30
- package/fixtures/basic/site/config.mjs +0 -27
- package/fixtures/content-model-v2/site/config.mjs +0 -11
- package/starters/basic/site/config.mjs +0 -27
- package/starters/project/site/config.mjs +0 -30
package/examples/README.md
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
# Norna
|
|
1
|
+
# Norna Examples
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
These examples are source projects, visual demonstrations, and integration
|
|
4
|
+
checks. Every example is built by `npm run test:examples` and published by the
|
|
5
|
+
documentation workflow.
|
|
6
|
+
|
|
7
|
+
| Example | Purpose | Live demo | Source |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Dog shelter, single page | A coherent homepage made from sections | [Open site](https://janga.github.io/norna/examples/complete-sites/dog-shelter-single-page/) | [View files](complete-sites/dog-shelter-single-page/) |
|
|
10
|
+
| Dog shelter, multi-page | A coherent site with ordered routes and route-local images | [Open site](https://janga.github.io/norna/examples/complete-sites/dog-shelter-multi-page/) | [View files](complete-sites/dog-shelter-multi-page/) |
|
|
11
|
+
| Theme presets | All complete presets without overrides | [Open site](https://janga.github.io/norna/examples/feature-demos/theme-presets/) | [View files](feature-demos/theme-presets/) |
|
|
12
|
+
| Media and surfaces | Image blocks, cards, notes, palettes, and section surfaces | [Open site](https://janga.github.io/norna/examples/feature-demos/media-and-surfaces/) | [View files](feature-demos/media-and-surfaces/) |
|
|
13
|
+
| Sitewide content | Shared identity, navigation, banners, and footer content | [Open site](https://janga.github.io/norna/examples/feature-demos/sitewide-content/) | [View files](feature-demos/sitewide-content/) |
|
|
14
|
+
|
|
15
|
+
## Directory Structure
|
|
4
16
|
|
|
5
17
|
```text
|
|
6
18
|
examples/
|
|
@@ -9,33 +21,23 @@ examples/
|
|
|
9
21
|
| `-- dog-shelter-multi-page/
|
|
10
22
|
`-- feature-demos/
|
|
11
23
|
|-- theme-presets/
|
|
12
|
-
|
|
24
|
+
|-- media-and-surfaces/
|
|
25
|
+
`-- sitewide-content/
|
|
13
26
|
```
|
|
14
27
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- `dog-shelter-single-page/` demonstrates a homepage made from sections.
|
|
21
|
-
- `dog-shelter-multi-page/` adds ordered routes and route-local content.
|
|
28
|
+
`complete-sites/` contains small sites that can be read as coherent Norna
|
|
29
|
+
projects. `feature-demos/` contains focused visual test benches. Feature demos
|
|
30
|
+
are useful for documentation and integration checks, but are not starter
|
|
31
|
+
templates.
|
|
22
32
|
|
|
23
|
-
##
|
|
33
|
+
## Run An Example Locally
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
documentation, manual inspection and integration checks, but are not intended
|
|
27
|
-
as starter templates.
|
|
28
|
-
|
|
29
|
-
- `theme-presets/` compares Norna's complete built-in theme presets.
|
|
30
|
-
- `media-and-surfaces/` demonstrates managed media blocks, notes, palettes and
|
|
31
|
-
section surfaces.
|
|
32
|
-
|
|
33
|
-
The repository's GitHub Pages workflow publishes rendered copies under
|
|
34
|
-
`https://janga.github.io/norna/examples/` so the HTML documentation can link to
|
|
35
|
-
working sites rather than only their source files.
|
|
36
|
-
|
|
37
|
-
Run an example from the repository root by passing its `site/` directory:
|
|
35
|
+
From the Norna repository root, pass the example's `site/` directory:
|
|
38
36
|
|
|
39
37
|
```sh
|
|
40
38
|
node bin/norna.mjs --site-dir examples/feature-demos/media-and-surfaces/site dev:local
|
|
41
39
|
```
|
|
40
|
+
|
|
41
|
+
Use another path from the table to run a different example. The repository's
|
|
42
|
+
GitHub Pages workflow publishes the same source projects under
|
|
43
|
+
`https://janga.github.io/norna/examples/`.
|
|
@@ -178,6 +178,6 @@ declare module 'astro:content' {
|
|
|
178
178
|
LiveContentConfig['collections'][C]['loader']
|
|
179
179
|
>;
|
|
180
180
|
|
|
181
|
-
export type ContentConfig = typeof import("
|
|
181
|
+
export type ContentConfig = typeof import("../../../../src/content.config.js");
|
|
182
182
|
export type LiveContentConfig = never;
|
|
183
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[["Map",1,2,9,10,72,73,94,95],"meta::meta",["Map",3,4,5,6,7,8],"astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":\"jsx\",\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":\"0.0.0.0\",\"port\":4321,\"allowedHosts\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"dangerouslyProcessSVG\":false,\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"processor\":{\"name\":\"satteri\",\"options\":{\"mdastPlugins\":[],\"hastPlugins\":[],\"features\":{}}}},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"csp\":false,\"actionBodySizeLimit\":1048576,\"serverIslandBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"prerenderConflictBehavior\":\"warn\",\"fetchFile\":\"fetch\",\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"chromeDevtoolsWorkspace\":false,\"collectionStorage\":\"single-file\"},\"legacy\":{\"collectionsBackwardsCompat\":false}}","astro-version","7.1.3","content-config-digest","ef24ddbc7d731e37","site",["Map",11,12,32,33,52,53],"site-content",{"id":11,"data":13,"body":17,"filePath":18,"digest":19,"rendered":20},{"title":14,"description":15,"sections":16},"Home","A multi-page dog shelter website built with Norna.",{},"## Dog Shelter {#intro}\n\nWe rescue dogs, help them recover and introduce them to families ready to give\nthem a permanent home.\n\nVisit **Dogs** to meet two current residents, or **Adopt** to learn how the\nadoption process works.","site/content.md","0691a0caebe70101",{"html":21,"metadata":22},"\u003Ch2 id=\"dog-shelter-intro\">Dog Shelter {#intro}\u003C/h2>\n\u003Cp>We rescue dogs, help them recover and introduce them to families ready to give\nthem a permanent home.\u003C/p>\n\u003Cp>Visit \u003Cstrong>Dogs\u003C/strong> to meet two current residents, or \u003Cstrong>Adopt\u003C/strong> to learn how the\nadoption process works.\u003C/p>\n",{"headings":23,"localImagePaths":28,"remoteImagePaths":29,"frontmatter":30,"imagePaths":31},[24],{"depth":25,"slug":26,"text":27},2,"dog-shelter-intro","Dog Shelter {#intro}",[],[],{"title":14,"description":15},[],"site-route-010-dogs",{"id":32,"data":34,"body":38,"filePath":39,"digest":40,"rendered":41},{"title":35,"description":36,"sections":37},"Dogs","Meet dogs currently waiting for adoption.",{},"## Dogs {#dogs}\n\nMeet Rover and Rex.\n\n\u003C!-- norna-image-provenance:\nimage: rover.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly brown cartoon dog standing in profile on a pale green\nbackground. Flat vector style, dark outlines, no text or external assets.\n\nimage: rex.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly golden cartoon dog standing in profile on a pale cream\nbackground. Make it visibly distinct from Rover. Flat vector style, dark\noutlines, no text or external assets.\n-->\n\n```norna-image-stack\n- image: rover.svg\n alt: Rover, a brown dog with upright ears and a curled tail.\n caption: Rover needs daily walks.\n- image: rex.svg\n alt: Rex, a golden dog with one floppy ear and a gently curved tail.\n caption: Rex needs a patient home.\n```","site/routes/010-dogs/route-content.md","73e4b18631e96d28",{"html":42,"metadata":43},"\u003Ch2 id=\"dogs-dogs\">Dogs {#dogs}\u003C/h2>\n\u003Cp>Meet Rover and Rex.\u003C/p>\n\u003C!-- norna-image-provenance:\nimage: rover.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly brown cartoon dog standing in profile on a pale green\nbackground. Flat vector style, dark outlines, no text or external assets.\n\nimage: rex.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Draw a friendly golden cartoon dog standing in profile on a pale cream\nbackground. Make it visibly distinct from Rover. Flat vector style, dark\noutlines, no text or external assets.\n-->\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>- image: rover.svg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> alt: Rover, a brown dog with upright ears and a curled tail.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> caption: Rover needs daily walks.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- image: rex.svg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> alt: Rex, a golden dog with one floppy ear and a gently curved tail.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> caption: Rex needs a patient home.\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n",{"headings":44,"localImagePaths":48,"remoteImagePaths":49,"frontmatter":50,"imagePaths":51},[45],{"depth":25,"slug":46,"text":47},"dogs-dogs","Dogs {#dogs}",[],[],{"title":35,"description":36},[],"site-route-020-adopt",{"id":52,"data":54,"body":58,"filePath":59,"digest":60,"rendered":61},{"title":55,"description":56,"sections":57},"Adopt","Learn how to adopt from Dog Shelter.",{},"## Adopt {#adopt}\n\nAdoption begins with a conversation about your home, routines and experience\nwith dogs. We then arrange a meeting with dogs whose needs appear to match.\n\nThe goal is not the quickest placement. It is a stable home where both the dog\nand the family have the support they need.","site/routes/020-adopt/route-content.md","9e72f3ba5409e5a5",{"html":62,"metadata":63},"\u003Ch2 id=\"adopt-adopt\">Adopt {#adopt}\u003C/h2>\n\u003Cp>Adoption begins with a conversation about your home, routines and experience\nwith dogs. We then arrange a meeting with dogs whose needs appear to match.\u003C/p>\n\u003Cp>The goal is not the quickest placement. It is a stable home where both the dog\nand the family have the support they need.\u003C/p>\n",{"headings":64,"localImagePaths":68,"remoteImagePaths":69,"frontmatter":70,"imagePaths":71},[65],{"depth":25,"slug":66,"text":67},"adopt-adopt","Adopt {#adopt}",[],[],{"title":55,"description":56},[],"sitewide",["Map",74,75],"site-sitewide",{"id":74,"data":76,"filePath":82,"digest":83,"rendered":84},{"navigation":77,"banners":79,"footer":80},{"brand":78},"Dog Shelter",[],{"copyrightMessage":81},"Dog Shelter example site.","site/sitewide-content.md","1e321f6f03ded3d4",{"html":85,"metadata":86},"",{"headings":87,"localImagePaths":88,"remoteImagePaths":89,"frontmatter":90,"imagePaths":93},[],[],[],{"navigation":91,"footer":92},{"brand":78},{"copyrightMessage":81},[],"theme",["Map",96,97],"theme.md",{"id":96,"data":98,"filePath":122,"digest":123,"rendered":124},{"layout":99,"gallery":105,"typography":112,"presentation":115},{"density":100,"pageWidth":101,"gutter":102},"normal","1180px",{"desktop":103,"mobile":104},"clamp(1.25rem, 4vw, 3rem)","1rem",{"width":106,"maxAvailableWidthPercent":107,"maxAvailableHeightPercent":109},"760px",{"desktop":108,"mobile":108},100,{"desktop":110,"mobile":111},72,68,{"fontFamily":113,"preset":114,"rhythm":100},"Arial, 'Helvetica Neue', Helvetica, sans-serif","text-forward",{"palette":116,"sectionSurfaces":117},"paper",{"mode":118,"sequence":119},"cycle",[120,121],"base","soft","site/theme.md","c7dd8e38cdcd2768",{"html":85,"metadata":125},{"headings":126,"localImagePaths":127,"remoteImagePaths":128,"frontmatter":129,"imagePaths":139},[],[],[],{"layout":130,"gallery":132,"typography":135,"presentation":136},{"density":100,"pageWidth":101,"gutter":131},{"desktop":103,"mobile":104},{"width":106,"maxAvailableWidthPercent":133,"maxAvailableHeightPercent":134},{"desktop":108,"mobile":108},{"desktop":110,"mobile":111},{"fontFamily":113,"preset":114,"rhythm":100},{"palette":116,"sectionSurfaces":137},{"mode":118,"sequence":138},[120,121],[]]
|
|
1
|
+
[["Map",1,2,9,10,72,73,98,99],"meta::meta",["Map",3,4,5,6,7,8],"astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":\"jsx\",\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":\"127.0.0.1\",\"port\":4412,\"allowedHosts\":[\"127.0.0.1\",\"127.0.0.1\",\"127.0.0.1\",\"127.0.0.1\"]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"dangerouslyProcessSVG\":false,\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"processor\":{\"name\":\"satteri\",\"options\":{\"mdastPlugins\":[],\"hastPlugins\":[],\"features\":{}}}},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"csp\":false,\"actionBodySizeLimit\":1048576,\"serverIslandBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"prerenderConflictBehavior\":\"warn\",\"fetchFile\":\"fetch\",\"logger\":{\"entrypoint\":\"astro/logger/json\"},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"chromeDevtoolsWorkspace\":false,\"collectionStorage\":\"single-file\"},\"legacy\":{\"collectionsBackwardsCompat\":false}}","astro-version","7.1.3","content-config-digest","ef24ddbc7d731e37","site",["Map",11,12,32,33,52,53],"site-content",{"id":11,"data":13,"body":17,"filePath":18,"digest":19,"rendered":20},{"title":14,"description":15,"sections":16},"Home","A multi-page dog shelter website built with Norna.",{},"## Dog Shelter {#intro}\n\nWe rescue dogs, help them recover and introduce them to families ready to give\nthem a permanent home.\n\nVisit **Dogs** to meet two current residents, or **Adopt** to learn how the\nadoption process works.\n\n```norna-card-list\nlayout: image-right\nflow: stack\nsize: s\nwidth: narrow\n\n- title: Rescue, recovery and new homes\n text: Meet the dogs currently in our care and learn what kind of home each one needs.\n image: shelter-dog.jpg\n link: /dogs/\n```","site/content.md","8e6311f7aa2b670d",{"html":21,"metadata":22},"\u003Ch2 id=\"dog-shelter-intro\">Dog Shelter {#intro}\u003C/h2>\n\u003Cp>We rescue dogs, help them recover and introduce them to families ready to give\nthem a permanent home.\u003C/p>\n\u003Cp>Visit \u003Cstrong>Dogs\u003C/strong> to meet two current residents, or \u003Cstrong>Adopt\u003C/strong> to learn how the\nadoption process works.\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>layout: image-right\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>flow: stack\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>size: s\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>width: narrow\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- title: Rescue, recovery and new homes\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> text: Meet the dogs currently in our care and learn what kind of home each one needs.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> image: shelter-dog.jpg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> link: /dogs/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n",{"headings":23,"localImagePaths":28,"remoteImagePaths":29,"frontmatter":30,"imagePaths":31},[24],{"depth":25,"slug":26,"text":27},2,"dog-shelter-intro","Dog Shelter {#intro}",[],[],{"title":14,"description":15},[],"site-route-010-dogs",{"id":32,"data":34,"body":38,"filePath":39,"digest":40,"rendered":41},{"title":35,"description":36,"sections":37},"Dogs","Meet dogs currently waiting for adoption.",{},"## Dogs {#dogs}\n\nMeet Rover and Rex.\n\n```norna-card-list\nlayout: image-top\nflow: grid\nsize: s\nwidth: narrow\n\n- title: Rover\n text: Curious and active. Rover needs daily walks and room to explore.\n image: rover.jpg\n- title: Rex\n text: Gentle and observant. Rex needs a patient home with quiet routines.\n image: rex.jpg\n```","site/routes/010-dogs/route-content.md","7b650f7fd791e689",{"html":42,"metadata":43},"\u003Ch2 id=\"dogs-dogs\">Dogs {#dogs}\u003C/h2>\n\u003Cp>Meet Rover and Rex.\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>layout: image-top\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>flow: grid\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>size: s\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>width: narrow\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- title: Rover\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> text: Curious and active. Rover needs daily walks and room to explore.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> image: rover.jpg\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- title: Rex\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> text: Gentle and observant. Rex needs a patient home with quiet routines.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> image: rex.jpg\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n",{"headings":44,"localImagePaths":48,"remoteImagePaths":49,"frontmatter":50,"imagePaths":51},[45],{"depth":25,"slug":46,"text":47},"dogs-dogs","Dogs {#dogs}",[],[],{"title":35,"description":36},[],"site-route-020-adopt",{"id":52,"data":54,"body":58,"filePath":59,"digest":60,"rendered":61},{"title":55,"description":56,"sections":57},"Adopt","Learn how to adopt from Dog Shelter.",{},"## Adopt {#adopt}\n\nAdoption begins with a conversation about your home, routines and experience\nwith dogs. We then arrange a meeting with dogs whose needs appear to match.\n\nThe goal is not the quickest placement. It is a stable home where both the dog\nand the family have the support they need.\n\n```norna-card-list\nlayout: image-left\nflow: stack\nsize: s\nwidth: narrow\n\n- title: Start with a conversation\n text: Tell us about your home and routines, then meet dogs whose needs may be a good match.\n image: adoption-dog.jpg\n```","site/routes/020-adopt/route-content.md","9c0eba10f95aae72",{"html":62,"metadata":63},"\u003Ch2 id=\"adopt-adopt\">Adopt {#adopt}\u003C/h2>\n\u003Cp>Adoption begins with a conversation about your home, routines and experience\nwith dogs. We then arrange a meeting with dogs whose needs appear to match.\u003C/p>\n\u003Cp>The goal is not the quickest placement. It is a stable home where both the dog\nand the family have the support they need.\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>layout: image-left\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>flow: stack\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>size: s\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>width: narrow\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- title: Start with a conversation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> text: Tell us about your home and routines, then meet dogs whose needs may be a good match.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan> image: adoption-dog.jpg\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n",{"headings":64,"localImagePaths":68,"remoteImagePaths":69,"frontmatter":70,"imagePaths":71},[65],{"depth":25,"slug":66,"text":67},"adopt-adopt","Adopt {#adopt}",[],[],{"title":55,"description":56},[],"sitewide",["Map",74,75],"site-sitewide",{"id":74,"data":76,"body":84,"filePath":85,"digest":86,"rendered":87},{"navigation":77,"banners":81,"footer":82},{"logo":78},{"alt":79,"height":80},"Dog Shelter","3rem",[],{"copyrightMessage":83},"Dog Shelter example site. Dog photos by Bicanski, CC0, via Pixnio.","\u003C!-- norna-image-provenance:\nimage: logo.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Create a compact horizontal dog shelter logo with a simple dog face in\na house-shaped mark and the words Dog Shelter. Use flat vector shapes, a warm\nred accent, dark text, transparent background and no external assets.\n-->","site/sitewide-content.md","68de962e675a456b",{"html":88,"metadata":89},"\u003C!-- norna-image-provenance:\nimage: logo.svg\nsource: AI-assisted, hand-authored SVG\nprompt: Create a compact horizontal dog shelter logo with a simple dog face in\na house-shaped mark and the words Dog Shelter. Use flat vector shapes, a warm\nred accent, dark text, transparent background and no external assets.\n-->\n",{"headings":90,"localImagePaths":91,"remoteImagePaths":92,"frontmatter":93,"imagePaths":97},[],[],[],{"navigation":94,"footer":96},{"logo":95},{"alt":79,"height":80},{"copyrightMessage":83},[],"theme",["Map",100,101],"theme.md",{"id":100,"data":102,"filePath":104,"digest":105,"rendered":106},{"preset":103},"project","site/theme.md","d19ab283a10fb060",{"html":107,"metadata":108},"",{"headings":109,"localImagePaths":110,"remoteImagePaths":111,"frontmatter":112,"imagePaths":113},[],[],[],{"preset":103},[]]
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"pid":
|
|
3
|
-
"port":
|
|
4
|
-
"url": "http://
|
|
2
|
+
"pid": 58179,
|
|
3
|
+
"port": 4412,
|
|
4
|
+
"url": "http://127.0.0.1:4412",
|
|
5
5
|
"urls": {
|
|
6
6
|
"local": [
|
|
7
|
-
"http://
|
|
7
|
+
"http://127.0.0.1:4412/"
|
|
8
8
|
],
|
|
9
|
-
"network": [
|
|
10
|
-
"http://192.168.1.102:4321/"
|
|
11
|
-
]
|
|
9
|
+
"network": []
|
|
12
10
|
},
|
|
13
11
|
"background": true,
|
|
14
|
-
"startedAt": "2026-08-
|
|
12
|
+
"startedAt": "2026-08-21T04:55:53.950Z"
|
|
15
13
|
}
|
|
@@ -1,53 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Stack trace:
|
|
28
|
-
at loadAndTransform (file:///Users/jangarefelt/Projects/webbhack/norna/node_modules/vite/dist/node/chunks/node.js:19714:31)
|
|
29
|
-
at async handleInvoke (file:///Users/jangarefelt/Projects/webbhack/norna/node_modules/vite/dist/node/chunks/node.js:25811:21)
|
|
30
|
-
05:55:45 [ERROR] [UnknownFilesystemError]
|
|
31
|
-
Hint:
|
|
32
|
-
It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.
|
|
33
|
-
Error reference:
|
|
34
|
-
https://docs.astro.build/en/reference/errors/unknown-filesystem-error/
|
|
35
|
-
Stack trace:
|
|
36
|
-
at /Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/Users/jangarefelt/Projects/webbhack/norna/node_modules/astro/dist/content/mutable-data-store.js:367:13
|
|
37
|
-
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
38
|
-
Caused by:
|
|
39
|
-
ENOENT: no such file or directory, open '/Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/.astro/data-store.json.tmp'
|
|
40
|
-
at async open (node:internal/fs/promises:1360:25)
|
|
41
|
-
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
42
|
-
05:55:45 [ERROR] [UnknownFilesystemError]
|
|
43
|
-
Hint:
|
|
44
|
-
It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.
|
|
45
|
-
Error reference:
|
|
46
|
-
https://docs.astro.build/en/reference/errors/unknown-filesystem-error/
|
|
47
|
-
Stack trace:
|
|
48
|
-
at /Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/Users/jangarefelt/Projects/webbhack/norna/node_modules/astro/dist/content/mutable-data-store.js:103:15
|
|
49
|
-
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
50
|
-
Caused by:
|
|
51
|
-
ENOENT: no such file or directory, open '/Users/jangarefelt/Projects/webbhack/norna/examples/002-dog-shelter-multi-page/.astro/content-assets.mjs.tmp'
|
|
52
|
-
at async open (node:internal/fs/promises:1360:25)
|
|
53
|
-
[...] See full stack trace in the browser, or rerun with --verbose.
|
|
1
|
+
{"message":"connected.","label":"vite","level":"info"}
|
|
2
|
+
{"message":"Generated 0ms","label":"types","level":"info"}
|
|
3
|
+
{"message":"connected.","label":"vite","level":"info"}
|
|
4
|
+
{"message":"Syncing content","label":"content","level":"info"}
|
|
5
|
+
{"message":"Astro config changed","label":"content","level":"info"}
|
|
6
|
+
{"message":"Clearing content store","label":"content","level":"info"}
|
|
7
|
+
[Shiki] The language "norna-card-list" doesn't exist, falling back to "plaintext".
|
|
8
|
+
[Shiki] The language "norna-card-list" doesn't exist, falling back to "plaintext".
|
|
9
|
+
[Shiki] The language "norna-card-list" doesn't exist, falling back to "plaintext".
|
|
10
|
+
{"message":"Synced content","label":"content","level":"info"}
|
|
11
|
+
{"message":"Re-optimizing dependencies because vite config has changed","label":"vite","level":"info"}
|
|
12
|
+
{"message":" astro v7.1.3 ready in 1134 ms\n┃ Local http://127.0.0.1:4412/","label":"SKIP_FORMAT","level":"info"}
|
|
13
|
+
{"message":"watching for file changes...","label":null,"level":"info"}
|
|
14
|
+
{"message":"[200] / 52ms","label":null,"level":"info"}
|
|
15
|
+
{"message":"[200] / 7ms","label":null,"level":"info"}
|
|
16
|
+
{"message":"[200] /dogs/ 18ms","label":null,"level":"info"}
|
|
17
|
+
{"message":"[200] /adopt/ 8ms","label":null,"level":"info"}
|
|
18
|
+
{"message":"[200] / 8ms","label":null,"level":"info"}
|
|
19
|
+
{"message":"[200] /dogs/ 8ms","label":null,"level":"info"}
|
|
20
|
+
{"message":"[200] /adopt/ 8ms","label":null,"level":"info"}
|
|
21
|
+
{"message":"[200] /dogs/ 8ms","label":null,"level":"info"}
|
|
22
|
+
{"message":"[200] / 9ms","label":null,"level":"info"}
|
|
23
|
+
{"message":"[200] / 8ms","label":null,"level":"info"}
|
|
24
|
+
{"message":"[200] / 6ms","label":null,"level":"info"}
|
|
25
|
+
{"message":"[200] /dogs/ 13ms","label":null,"level":"info"}
|
|
26
|
+
{"message":"[200] /dogs/ 7ms","label":null,"level":"info"}
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
A small Norna site with a homepage and ordered routes for dogs and adoption.
|
|
4
4
|
|
|
5
|
+
[Live demo](https://janga.github.io/norna/examples/complete-sites/dog-shelter-multi-page/)
|
|
6
|
+
|
|
|
7
|
+
[View source](https://github.com/janga/norna/tree/main/examples/complete-sites/dog-shelter-multi-page)
|
|
8
|
+
|
|
9
|
+
The dog photos are CC0 images by Bicanski, sourced from Pixnio. Attribution is
|
|
10
|
+
included in the site footer even though the licence does not require it.
|
|
11
|
+
|
|
5
12
|
Run it from the Norna repository root:
|
|
6
13
|
|
|
7
14
|
```sh
|
package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json
CHANGED
|
@@ -1,79 +1,73 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hash": "
|
|
3
|
-
"configHash": "
|
|
2
|
+
"hash": "5cf74c44",
|
|
3
|
+
"configHash": "468b2565",
|
|
4
4
|
"lockfileHash": "808f2e8e",
|
|
5
|
-
"browserHash": "
|
|
5
|
+
"browserHash": "24b56f2c",
|
|
6
6
|
"optimized": {
|
|
7
7
|
"astro > aria-query": {
|
|
8
|
-
"src": "
|
|
8
|
+
"src": "../../../../../../node_modules/aria-query/lib/index.js",
|
|
9
9
|
"file": "astro_n_aria-query.js",
|
|
10
|
-
"fileHash": "
|
|
10
|
+
"fileHash": "22765b52",
|
|
11
11
|
"needsInterop": true
|
|
12
12
|
},
|
|
13
13
|
"astro > axobject-query": {
|
|
14
|
-
"src": "
|
|
14
|
+
"src": "../../../../../../node_modules/axobject-query/lib/index.js",
|
|
15
15
|
"file": "astro_n_axobject-query.js",
|
|
16
|
-
"fileHash": "
|
|
16
|
+
"fileHash": "c0c497a1",
|
|
17
17
|
"needsInterop": true
|
|
18
18
|
},
|
|
19
19
|
"astro > html-escaper": {
|
|
20
|
-
"src": "
|
|
20
|
+
"src": "../../../../../../node_modules/html-escaper/esm/index.js",
|
|
21
21
|
"file": "astro_n_html-escaper.js",
|
|
22
|
-
"fileHash": "
|
|
22
|
+
"fileHash": "3d5b47f7",
|
|
23
23
|
"needsInterop": false
|
|
24
24
|
},
|
|
25
25
|
"astro/runtime/client/dev-toolbar/entrypoint.js": {
|
|
26
|
-
"src": "
|
|
26
|
+
"src": "../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/entrypoint.js",
|
|
27
27
|
"file": "astro_runtime_client_dev-toolbar_entrypoint__js.js",
|
|
28
|
-
"fileHash": "
|
|
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": "6ac7301f",
|
|
28
|
+
"fileHash": "89643eed",
|
|
35
29
|
"needsInterop": false
|
|
36
30
|
}
|
|
37
31
|
},
|
|
38
32
|
"chunks": {
|
|
39
|
-
"astro-
|
|
40
|
-
"file": "astro-
|
|
33
|
+
"astro-B3JHJyiv": {
|
|
34
|
+
"file": "astro-B3JHJyiv.js",
|
|
41
35
|
"isDynamicEntry": true
|
|
42
36
|
},
|
|
43
|
-
"audit-
|
|
44
|
-
"file": "audit-
|
|
37
|
+
"audit-C3SVr7dT": {
|
|
38
|
+
"file": "audit-C3SVr7dT.js",
|
|
45
39
|
"isDynamicEntry": true
|
|
46
40
|
},
|
|
47
|
-
"highlight-
|
|
48
|
-
"file": "highlight-
|
|
41
|
+
"highlight-BLtvqtzO": {
|
|
42
|
+
"file": "highlight-BLtvqtzO.js",
|
|
49
43
|
"isDynamicEntry": false
|
|
50
44
|
},
|
|
51
|
-
"icons-
|
|
52
|
-
"file": "icons-
|
|
45
|
+
"icons-C92i61-2": {
|
|
46
|
+
"file": "icons-C92i61-2.js",
|
|
53
47
|
"isDynamicEntry": false
|
|
54
48
|
},
|
|
55
49
|
"rolldown-runtime-BvCyGRYZ": {
|
|
56
50
|
"file": "rolldown-runtime-BvCyGRYZ.js",
|
|
57
51
|
"isDynamicEntry": false
|
|
58
52
|
},
|
|
59
|
-
"settings-
|
|
60
|
-
"file": "settings-
|
|
53
|
+
"settings-v5GgKks_": {
|
|
54
|
+
"file": "settings-v5GgKks_.js",
|
|
61
55
|
"isDynamicEntry": true
|
|
62
56
|
},
|
|
63
|
-
"toolbar-
|
|
64
|
-
"file": "toolbar-
|
|
57
|
+
"toolbar-BFvJVp26": {
|
|
58
|
+
"file": "toolbar-BFvJVp26.js",
|
|
65
59
|
"isDynamicEntry": true
|
|
66
60
|
},
|
|
67
|
-
"ui-library
|
|
68
|
-
"file": "ui-library
|
|
61
|
+
"ui-library-Cd35oAvo": {
|
|
62
|
+
"file": "ui-library-Cd35oAvo.js",
|
|
69
63
|
"isDynamicEntry": true
|
|
70
64
|
},
|
|
71
|
-
"window-
|
|
72
|
-
"file": "window-
|
|
65
|
+
"window-vo3A6TMn": {
|
|
66
|
+
"file": "window-vo3A6TMn.js",
|
|
73
67
|
"isDynamicEntry": false
|
|
74
68
|
},
|
|
75
|
-
"xray-
|
|
76
|
-
"file": "xray-
|
|
69
|
+
"xray-DwhzGckb": {
|
|
70
|
+
"file": "xray-DwhzGckb.js",
|
|
77
71
|
"isDynamicEntry": true
|
|
78
72
|
}
|
|
79
73
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as isDefinedIcon } from "./icons-
|
|
2
|
-
import { n as createWindowElement, r as synchronizePlacementOnUpdate, t as closeOnOutsideClick } from "./window-
|
|
3
|
-
//#region
|
|
1
|
+
import { n as isDefinedIcon } from "./icons-C92i61-2.js";
|
|
2
|
+
import { n as createWindowElement, r as synchronizePlacementOnUpdate, t as closeOnOutsideClick } from "./window-vo3A6TMn.js";
|
|
3
|
+
//#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/apps/utils/icons.js
|
|
4
4
|
function randomFromArray(list) {
|
|
5
5
|
return list[Math.floor(Math.random() * list.length)];
|
|
6
6
|
}
|
|
@@ -58,7 +58,7 @@ function colorForIntegration() {
|
|
|
58
58
|
return randomFromArray(iconColors);
|
|
59
59
|
}
|
|
60
60
|
//#endregion
|
|
61
|
-
//#region
|
|
61
|
+
//#region ../../../node_modules/astro/dist/runtime/client/dev-toolbar/apps/astro.js
|
|
62
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
63
|
var integrationData;
|
|
64
64
|
var astro_default = {
|
package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astro-B3JHJyiv.js","names":[],"sources":["../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/apps/utils/icons.js","../../../../../../node_modules/astro/dist/runtime/client/dev-toolbar/apps/astro.js"],"sourcesContent":["function randomFromArray(list) {\n return list[Math.floor(Math.random() * list.length)];\n}\nconst categoryIcons = new Map(\n Object.entries({\n frameworks: [\"puzzle\", \"grid\"],\n adapters: [\"puzzle\", \"grid\", \"compress\"],\n \"css+ui\": [\"compress\", \"grid\", \"image\", \"resizeImage\", \"puzzle\"],\n \"performance+seo\": [\"approveUser\", \"checkCircle\", \"compress\", \"robot\", \"searchFile\", \"sitemap\"],\n analytics: [\"checkCircle\", \"compress\", \"searchFile\"],\n accessibility: [\"approveUser\", \"checkCircle\"],\n other: [\"checkCircle\", \"grid\", \"puzzle\", \"sitemap\"]\n })\n);\nfunction iconForIntegration(integration) {\n const icons = integration.categories.filter((category) => categoryIcons.has(category)).flatMap((category) => categoryIcons.get(category));\n return randomFromArray(icons);\n}\nconst iconColors = [\n \"#BC52EE\",\n \"#6D6AF0\",\n \"#52EEBD\",\n \"#52B7EE\",\n \"#52EE55\",\n \"#B7EE52\",\n \"#EEBD52\",\n \"#EE5552\",\n \"#EE52B7\",\n \"#858B98\"\n];\nfunction colorForIntegration() {\n return randomFromArray(iconColors);\n}\nexport {\n colorForIntegration,\n iconForIntegration\n};\n","import { isDefinedIcon } from \"../ui-library/icons.js\";\nimport { colorForIntegration, iconForIntegration } from \"./utils/icons.js\";\nimport {\n closeOnOutsideClick,\n createWindowElement,\n synchronizePlacementOnUpdate\n} from \"./utils/window.js\";\nconst 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>';\nlet integrationData;\nvar astro_default = {\n id: \"astro:home\",\n name: \"Menu\",\n icon: \"astro:logo\",\n async init(canvas, eventTarget) {\n createCanvas();\n document.addEventListener(\"astro:after-swap\", createCanvas);\n eventTarget.addEventListener(\"app-toggled\", async (event) => {\n resetDebugButton();\n if (!(event instanceof CustomEvent)) return;\n if (event.detail.state === true) {\n if (!integrationData) fetchIntegrationData();\n }\n });\n closeOnOutsideClick(eventTarget);\n synchronizePlacementOnUpdate(eventTarget, canvas);\n function fetchIntegrationData() {\n fetch(\"https://astro.build/api/v1/dev-overlay/\", {\n cache: \"no-cache\"\n }).then((res) => res.json()).then((data) => {\n integrationData = data;\n integrationData.data = integrationData.data.map((integration) => {\n return integration;\n });\n refreshIntegrationList();\n });\n }\n function createCanvas() {\n const links = [\n {\n icon: \"bug\",\n name: \"Report a Bug\",\n link: \"https://github.com/withastro/astro/issues/new/choose\"\n },\n {\n icon: \"lightbulb\",\n name: \"Feedback\",\n link: \"https://github.com/withastro/roadmap/discussions/new/choose\"\n },\n {\n icon: \"file-search\",\n name: \"Documentation\",\n link: \"https://docs.astro.build\"\n },\n {\n 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>',\n name: \"Community\",\n link: \"https://astro.build/chat\"\n }\n ];\n const { latestAstroVersion, version, debugInfo } = window.__astro_dev_toolbar__ ?? {};\n const windowComponent = createWindowElement(\n `<style>\n\t\t\t\t#buttons-container {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tgap: 16px;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t}\n\n\t\t\t\t#buttons-container astro-dev-toolbar-card {\n\t\t\t\t\tflex: 1;\n\t\t\t\t}\n\n\t\t\t\tfooter {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tgap: 24px;\n\t\t\t\t}\n\n\t\t\t\tfooter a {\n\t\t\t\t\tcolor: rgba(145, 152, 173, 1);\n\t\t\t\t}\n\n\t\t\t\tfooter a:hover {\n\t\t\t\t\tcolor: rgba(204, 206, 216, 1);\n\t\t\t\t}\n\n\t\t\t\t#main-container {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\tgap: 24px;\n\t\t\t\t}\n\n\t\t\t\tp {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\theader {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\talign-items: center;\n\t\t\t\t}\n\n\t\t\t\theader section {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tgap: 0.8em;\n\t\t\t\t}\n\n\t\t\t\th2 {\n\t\t\t\t\tcolor: white;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 18px;\n\t\t\t\t}\n\n\t\t\t\ta {\n\t\t\t\t\tcolor: rgba(224, 204, 250, 1);\n\t\t\t\t}\n\n\t\t\t\ta:hover {\n\t\t\t\t\tcolor: #f4ecfd;\n\t\t\t\t}\n\n\t\t\t\t#integration-list-wrapper {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\t--offset: 24px;\n\t\t\t\t\toverflow-x: auto;\n\t\t\t\t\toverflow-y: hidden;\n\t\t\t\t\tmargin-left: calc(var(--offset) * -1);\n\t\t\t\t\tmargin-right: calc(var(--offset) * -1);\n\t\t\t\t\tpadding-left: var(--offset);\n\t\t\t\t\tpadding-right: var(--offset);\n\t\t\t\t\theight: 210px;\n\t\t\t\t}\n\n\t\t\t\t/* Pseudo-elements to fade cards as they scroll out of viewport */\n\t\t\t\t#integration-list-wrapper::before,\n\t\t\t\t#integration-list-wrapper::after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\theight: 192px;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tposition: fixed;\n\t\t\t\t\twidth: var(--offset);\n\t\t\t\t\ttop: 106px;\n\t\t\t\t\tbackground: red;\n\t\t\t\t}\n\n\t\t\t\t#integration-list-wrapper::before {\n\t\t\t\t\tleft: -1px;\n\t\t\t\t\tborder-left: 1px solid rgba(52, 56, 65, 1);\n\t\t\t\t\tbackground: linear-gradient(to right, rgba(19, 21, 26, 1), rgba(19, 21, 26, 0));\n\t\t\t\t}\n\n\t\t\t\t#integration-list-wrapper::after {\n\t\t\t\t\tright: -1px;\n\t\t\t\t\tborder-right: 1px solid rgba(52, 56, 65, 1);\n\t\t\t\t\tbackground: linear-gradient(to left, rgba(19, 21, 26, 1), rgba(19, 21, 26, 0));\n\t\t\t\t}\n\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar {\n\t\t\t\t\twidth: 5px;\n\t\t\t\t\theight: 8px;\n\t\t\t\t\tbackground-color: rgba(255, 255, 255, 0.08); /* or add it to the track */\n\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t}\n\n\t\t\t\t/* This is wild but gives us a gap on either side of the container */\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar-button:start:decrement,\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar-button:end:increment {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\twidth: 24px;\n\t\t\t\t\tbackground-color: #13151A;\n\t\t\t\t}\n\n\t\t\t\t/* Removes arrows on both sides */\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar-button:horizontal:start:increment,\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar-button:horizontal:end:decrement {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar-track-piece {\n\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t}\n\n\t\t\t\t#integration-list-wrapper::-webkit-scrollbar-thumb {\n\t\t\t\t\tbackground-color: rgba(255, 255, 255, 0.3);\n\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t}\n\n\t\t\t\t#integration-list {\n\t\t\t\t\tmargin-top: 1em;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tgap: 16px;\n\t\t\t\t\tpadding-bottom: 1em;\n\t\t\t\t}\n\n\t\t\t\t#integration-list::after {\n\t\t\t\t\tcontent: \" \";\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t\twidth: 1px;\n\t\t\t\t\theight: 1px;\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card, .integration-skeleton {\n\t\t\t\t\tmin-width: 240px;\n\t\t\t\t\theight: 160px;\n\t\t\t\t}\n\n\t\t\t\t.integration-skeleton {\n\t\t\t\t\tanimation: pulse 2s calc(var(--i, 0) * 250ms) cubic-bezier(0.4, 0, 0.6, 1) infinite;\n\t\t\t\t\tbackground-color: rgba(35, 38, 45, 1);\n\t\t\t\t\tborder-radius: 8px;\n\t\t\t\t}\n\n\t\t\t\t@keyframes pulse {\n\t\t\t\t\t0%, 100% {\n\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t}\n\t\t\t\t\t50% {\n\t\t\t\t\t\topacity: .5;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card .integration-image {\n\t\t\t\t\twidth: 40px;\n\t\t\t\t\theight: 40px;\n\t\t\t\t\tbackground-color: var(--integration-image-background, white);\n\t\t\t\t\tborder-radius: 9999px;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card img {\n\t\t\t\t\twidth: 24px;\n\t\t\t\t\theight: 24px;\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card astro-dev-toolbar-icon {\n\t\t\t\t\twidth: 24px;\n\t\t\t\t\theight: 24px;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\n\t\t\t\t#links {\n\t\t\t\t\tmargin: auto 0;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tgap: 24px;\n\t\t\t\t}\n\n\t\t\t\t#links a {\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tgap: 0.7em;\n\t\t\t\t\tflex: 1;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\tfont-weight: 600;\n\t\t\t\t\tcolor: white;\n\t\t\t\t}\n\n\t\t\t\t#links a:hover {\n\t\t\t\t\tcolor: rgba(145, 152, 173, 1);\n\t\t\t\t}\n\n\t\t\t\t#links astro-dev-toolbar-icon {\n\t\t\t\t\twidth: 1.5em;\n\t\t\t\t\theight: 1.5em;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card svg {\n\t\t\t\t\twidth: 24px;\n\t\t\t\t\theight: 24px;\n\t\t\t\t\tvertical-align: bottom;\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card h3 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tmargin-bottom: 8px;\n \t\t\tcolor: white;\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t}\n\n\t\t\t\t#integration-list astro-dev-toolbar-card p {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\n\t\t\t\t@media (forced-colors: active) {\n\t\t\t\t\tsvg path[fill=\"#fff\"] {\n\t\t\t\t\t\tfill: black;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</style>\n\n\t\t\t<header>\n\t\t\t\t<section>\n\t\t\t\t${astroLogo}\n\t\t\t\t<astro-dev-toolbar-badge badge-style=\"gray\" size=\"large\">${version}</astro-dev-toolbar-badge>\n\t\t\t\t${latestAstroVersion ? `<astro-dev-toolbar-badge badge-style=\"green\" size=\"large\">${latestAstroVersion} available!</astro-dev-toolbar-badge>\n\t\t\t\t\t\t` : \"\"}\n\t\t\t\t</section>\n\t\t\t\t<astro-dev-toolbar-button id=\"copy-debug-button\">Copy debug info <astro-dev-toolbar-icon icon=\"copy\" /></astro-dev-toolbar-button>\n\t\t\t</header>\n\t\t\t<hr />\n\n\t\t\t<div id=\"main-container\">\n\t\t\t\t<div>\n\t\t\t\t\t<header><h2>Featured integrations</h2><a href=\"https://astro.build/integrations/\" target=\"_blank\">View all</a></header>\n\t\t\t\t\t\t<div id=\"integration-list-wrapper\">\n\t\t\t\t\t\t\t<section id=\"integration-list\">\n\t\t\t\t\t\t\t\t<div class=\"integration-skeleton\" style=\"--i:0;\"></div>\n\t\t\t\t\t\t\t\t<div class=\"integration-skeleton\" style=\"--i:1;\"></div>\n\t\t\t\t\t\t\t\t<div class=\"integration-skeleton\" style=\"--i:2;\"></div>\n\t\t\t\t\t\t\t\t<div class=\"integration-skeleton\" style=\"--i:3;\"></div>\n\t\t\t\t\t\t\t\t<div class=\"integration-skeleton\" style=\"--i:4;\"></div>\n\t\t\t\t\t\t\t</section>\n\t\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<section id=\"links\">\n\t\t\t\t${links.map(\n (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>`\n ).join(\"\")}\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n );\n const copyDebugButton = windowComponent.querySelector(\"#copy-debug-button\");\n copyDebugButton?.addEventListener(\"click\", () => {\n navigator.clipboard.writeText(\"```\\n\" + debugInfo + \"\\n```\");\n copyDebugButton.textContent = \"Copied to clipboard!\";\n setTimeout(() => {\n resetDebugButton();\n }, 3500);\n });\n canvas.append(windowComponent);\n if (integrationData) refreshIntegrationList();\n }\n function resetDebugButton() {\n const copyDebugButton = canvas.querySelector(\"#copy-debug-button\");\n if (!copyDebugButton) return;\n copyDebugButton.innerHTML = 'Copy debug info <astro-dev-toolbar-icon icon=\"copy\" />';\n }\n function refreshIntegrationList() {\n const integrationList = canvas.querySelector(\"#integration-list\");\n if (!integrationList) return;\n integrationList.innerHTML = \"\";\n const fragment = document.createDocumentFragment();\n for (const integration of integrationData.data) {\n const integrationComponent = document.createElement(\"astro-dev-toolbar-card\");\n integrationComponent.link = integration.homepageUrl;\n const integrationContainer = document.createElement(\"div\");\n integrationContainer.className = \"integration-container\";\n const integrationImage = document.createElement(\"div\");\n integrationImage.className = \"integration-image\";\n if (integration.image) {\n const img = document.createElement(\"img\");\n img.src = integration.image;\n img.alt = integration.title;\n integrationImage.append(img);\n } else {\n const icon = document.createElement(\"astro-dev-toolbar-icon\");\n icon.icon = iconForIntegration(integration);\n integrationImage.append(icon);\n integrationImage.style.setProperty(\n \"--integration-image-background\",\n colorForIntegration()\n );\n }\n integrationContainer.append(integrationImage);\n let integrationTitle = document.createElement(\"h3\");\n integrationTitle.textContent = integration.title;\n if (integration.official || integration.categories.includes(\"official\")) {\n 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>';\n }\n integrationContainer.append(integrationTitle);\n const integrationDescription = document.createElement(\"p\");\n integrationDescription.textContent = integration.description.length > 90 ? integration.description.slice(0, 90) + \"\\u2026\" : integration.description;\n integrationContainer.append(integrationDescription);\n integrationComponent.append(integrationContainer);\n fragment.append(integrationComponent);\n }\n integrationList.append(fragment);\n }\n }\n};\nexport {\n astro_default as default\n};\n"],"x_google_ignoreList":[0,1],"mappings":";;;AAAA,SAAS,gBAAgB,MAAM;CAC7B,OAAO,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,MAAM;AACpD;AACA,IAAM,gBAAgB,IAAI,IACxB,OAAO,QAAQ;CACb,YAAY,CAAC,UAAU,MAAM;CAC7B,UAAU;EAAC;EAAU;EAAQ;CAAU;CACvC,UAAU;EAAC;EAAY;EAAQ;EAAS;EAAe;CAAQ;CAC/D,mBAAmB;EAAC;EAAe;EAAe;EAAY;EAAS;EAAc;CAAS;CAC9F,WAAW;EAAC;EAAe;EAAY;CAAY;CACnD,eAAe,CAAC,eAAe,aAAa;CAC5C,OAAO;EAAC;EAAe;EAAQ;EAAU;CAAS;AACpD,CAAC,CACH;AACA,SAAS,mBAAmB,aAAa;CAEvC,OAAO,gBADO,YAAY,WAAW,QAAQ,aAAa,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,aAAa,cAAc,IAAI,QAAQ,CAC5G,CAAC;AAC9B;AACA,IAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,SAAS,sBAAsB;CAC7B,OAAO,gBAAgB,UAAU;AACnC;;;ACzBA,IAAM,YAAY;AAClB,IAAI;AACJ,IAAI,gBAAgB;CAClB,IAAI;CACJ,MAAM;CACN,MAAM;CACN,MAAM,KAAK,QAAQ,aAAa;EAC9B,aAAa;EACb,SAAS,iBAAiB,oBAAoB,YAAY;EAC1D,YAAY,iBAAiB,eAAe,OAAO,UAAU;GAC3D,iBAAiB;GACjB,IAAI,EAAE,iBAAiB,cAAc;GACrC,IAAI,MAAM,OAAO,UAAU;QACrB,CAAC,iBAAiB,qBAAqB;GAAA;EAE/C,CAAC;EACD,oBAAoB,WAAW;EAC/B,6BAA6B,aAAa,MAAM;EAChD,SAAS,uBAAuB;GAC9B,MAAM,2CAA2C,EAC/C,OAAO,WACT,CAAC,CAAC,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS;IAC1C,kBAAkB;IAClB,gBAAgB,OAAO,gBAAgB,KAAK,KAAK,gBAAgB;KAC/D,OAAO;IACT,CAAC;IACD,uBAAuB;GACzB,CAAC;EACH;EACA,SAAS,eAAe;GACtB,MAAM,QAAQ;IACZ;KACE,MAAM;KACN,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,MAAM;IACR;GACF;GACA,MAAM,EAAE,oBAAoB,SAAS,cAAc,OAAO,yBAAyB,CAAC;GACpF,MAAM,kBAAkB,oBACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+OF,UAAU;+DAC+C,QAAQ;MACjE,qBAAqB,6DAA6D,mBAAmB;UACjG,GAAG;;;;;;;;;;;;;;;;;;;;MAoBP,MAAM,KACD,SAAS,YAAY,KAAK,KAAK,4CAA4C,cAAc,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,MAAM,IAAI,KAAK,OAAO,2BAA2B,KAAK,KAAK,KACvL,CAAC,CAAC,KAAK,EAAE,EAAE;;;GAIb;GACA,MAAM,kBAAkB,gBAAgB,cAAc,oBAAoB;GAC1E,iBAAiB,iBAAiB,eAAe;IAC/C,UAAU,UAAU,UAAU,UAAU,YAAY,OAAO;IAC3D,gBAAgB,cAAc;IAC9B,iBAAiB;KACf,iBAAiB;IACnB,GAAG,IAAI;GACT,CAAC;GACD,OAAO,OAAO,eAAe;GAC7B,IAAI,iBAAiB,uBAAuB;EAC9C;EACA,SAAS,mBAAmB;GAC1B,MAAM,kBAAkB,OAAO,cAAc,oBAAoB;GACjE,IAAI,CAAC,iBAAiB;GACtB,gBAAgB,YAAY;EAC9B;EACA,SAAS,yBAAyB;GAChC,MAAM,kBAAkB,OAAO,cAAc,mBAAmB;GAChE,IAAI,CAAC,iBAAiB;GACtB,gBAAgB,YAAY;GAC5B,MAAM,WAAW,SAAS,uBAAuB;GACjD,KAAK,MAAM,eAAe,gBAAgB,MAAM;IAC9C,MAAM,uBAAuB,SAAS,cAAc,wBAAwB;IAC5E,qBAAqB,OAAO,YAAY;IACxC,MAAM,uBAAuB,SAAS,cAAc,KAAK;IACzD,qBAAqB,YAAY;IACjC,MAAM,mBAAmB,SAAS,cAAc,KAAK;IACrD,iBAAiB,YAAY;IAC7B,IAAI,YAAY,OAAO;KACrB,MAAM,MAAM,SAAS,cAAc,KAAK;KACxC,IAAI,MAAM,YAAY;KACtB,IAAI,MAAM,YAAY;KACtB,iBAAiB,OAAO,GAAG;IAC7B,OAAO;KACL,MAAM,OAAO,SAAS,cAAc,wBAAwB;KAC5D,KAAK,OAAO,mBAAmB,WAAW;KAC1C,iBAAiB,OAAO,IAAI;KAC5B,iBAAiB,MAAM,YACrB,kCACA,oBAAoB,CACtB;IACF;IACA,qBAAqB,OAAO,gBAAgB;IAC5C,IAAI,mBAAmB,SAAS,cAAc,IAAI;IAClD,iBAAiB,cAAc,YAAY;IAC3C,IAAI,YAAY,YAAY,YAAY,WAAW,SAAS,UAAU,GACpE,iBAAiB,aAAa;IAEhC,qBAAqB,OAAO,gBAAgB;IAC5C,MAAM,yBAAyB,SAAS,cAAc,GAAG;IACzD,uBAAuB,cAAc,YAAY,YAAY,SAAS,KAAK,YAAY,YAAY,MAAM,GAAG,EAAE,IAAI,MAAW,YAAY;IACzI,qBAAqB,OAAO,sBAAsB;IAClD,qBAAqB,OAAO,oBAAoB;IAChD,SAAS,OAAO,oBAAoB;GACtC;GACA,gBAAgB,OAAO,QAAQ;EACjC;CACF;AACF"}
|