@janga/norna 0.7.10 → 0.7.12
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 -106
- package/bin/norna-cli.mjs +4 -1
- package/docs/README.md +107 -74
- package/docs/assets/norna-dog-shelter.jpg +0 -0
- package/docs/commands.md +13 -4
- package/docs/configuration.md +86 -184
- package/docs/content.md +14 -14
- package/docs/design/command-organization.md +1 -1
- package/docs/design/norna-diagram-design.md +2 -1
- package/docs/design/site-examples-structure.md +38 -24
- package/docs/engine-development.md +28 -15
- package/docs/getting-started.md +141 -124
- 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 +3 -2
- package/docs/site-structure.md +12 -9
- package/docs/sitewide-content.md +2 -1
- package/docs/theme.md +104 -34
- package/docs/typography.md +32 -17
- package/examples/README.md +43 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/sitewide.schema.json +24 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/theme.schema.json +9 -24
- package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content.d.ts +9 -1
- package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -0
- package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/dev-local.json +2 -2
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +13 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +26 -0
- package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +5 -0
- package/examples/complete-sites/dog-shelter-multi-page/README.md +16 -0
- package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +74 -0
- package/examples/{typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets → 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 -0
- package/examples/{typography-presets → 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 -0
- package/examples/{typography-presets → 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 -0
- package/examples/{typography-presets → 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 -0
- package/examples/{typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/icons-RyebKi45.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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/{typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js → complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/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 +98 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/config.md +3 -0
- package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/content.md +12 -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/route-content.md +22 -0
- package/examples/{002-dog-shelter-multi-page → 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 +16 -0
- package/examples/complete-sites/dog-shelter-multi-page/site/theme.md +3 -0
- 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/{dog-gallery → complete-sites/dog-shelter-single-page}/.astro/collections/theme.schema.json +151 -68
- 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/README.md +16 -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/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 +50 -0
- package/examples/complete-sites/dog-shelter-single-page/site/config.md +3 -0
- package/examples/complete-sites/dog-shelter-single-page/site/content.md +34 -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 +16 -0
- package/examples/complete-sites/dog-shelter-single-page/site/theme.md +3 -0
- package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +59 -0
- package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +138 -0
- package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +755 -0
- package/examples/feature-demos/media-and-surfaces/.astro/content-assets.mjs +4 -0
- package/examples/feature-demos/media-and-surfaces/.astro/content-modules.mjs +1 -0
- package/examples/feature-demos/media-and-surfaces/.astro/content.d.ts +183 -0
- package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -0
- package/examples/feature-demos/media-and-surfaces/.astro/dev.log +24 -0
- package/examples/feature-demos/media-and-surfaces/.astro/settings.json +5 -0
- package/examples/feature-demos/media-and-surfaces/.astro/types.d.ts +2 -0
- package/examples/feature-demos/media-and-surfaces/README.md +21 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +80 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js +1389 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/package.json +3 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
- package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
- package/examples/{presentation → feature-demos/media-and-surfaces}/site/.norna/generated-images.json +16 -16
- package/examples/feature-demos/media-and-surfaces/site/config.md +4 -0
- package/examples/feature-demos/media-and-surfaces/site/content.md +18 -0
- package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/route-content.md +17 -24
- package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/route-content.md +1 -1
- package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/theme.md +1 -0
- package/examples/feature-demos/media-and-surfaces/site/sitewide-content.md +6 -0
- package/examples/feature-demos/media-and-surfaces/site/theme.md +3 -0
- 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/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/collections/site.schema.json +59 -0
- package/examples/feature-demos/theme-presets/.astro/collections/sitewide.schema.json +138 -0
- package/examples/feature-demos/theme-presets/.astro/collections/theme.schema.json +755 -0
- package/examples/feature-demos/theme-presets/.astro/content-assets.mjs +4 -0
- package/examples/feature-demos/theme-presets/.astro/content-modules.mjs +1 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/.astro/data-store.json +1 -1
- package/examples/feature-demos/theme-presets/.astro/dev-local.json +8 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/.astro/dev.json +2 -2
- package/examples/feature-demos/theme-presets/.astro/dev.log +164 -0
- package/examples/feature-demos/theme-presets/.astro/types.d.ts +2 -0
- package/examples/feature-demos/theme-presets/README.md +18 -0
- package/examples/feature-demos/theme-presets/node_modules/.vite/deps/package.json +3 -0
- package/examples/feature-demos/theme-presets/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/site/.norna/generated-images.json +45 -45
- package/examples/feature-demos/theme-presets/site/config.md +3 -0
- package/examples/feature-demos/theme-presets/site/content.md +17 -0
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio/shepherd-portrait.jpg +0 -0
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio/white-puppy.jpg +0 -0
- package/examples/{typography-presets/site/routes/010-quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio}/route-content.md +8 -8
- package/examples/feature-demos/theme-presets/site/routes/010-portfolio/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/routes/020-documentation/images/documentation/retriever-portrait.jpg +0 -0
- package/examples/{typography-presets/site/routes/020-compact-gallery → feature-demos/theme-presets/site/routes/020-documentation}/route-content.md +8 -8
- package/examples/feature-demos/theme-presets/site/routes/020-documentation/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/routes/030-project/images/project/boxer-portrait.jpg +0 -0
- package/examples/feature-demos/theme-presets/site/routes/030-project/images/project/grass-puppy.jpg +0 -0
- package/examples/{typography-presets/site/routes/030-text-forward → feature-demos/theme-presets/site/routes/030-project}/route-content.md +8 -8
- package/examples/feature-demos/theme-presets/site/routes/030-project/theme.md +3 -0
- package/examples/feature-demos/theme-presets/site/routes/040-statement/images/statement/sheepdog-grass.jpg +0 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/route-content.md +3 -3
- package/examples/feature-demos/theme-presets/site/routes/040-statement/theme.md +3 -0
- package/examples/{typography-presets → feature-demos/theme-presets}/site/sitewide-content.md +1 -1
- package/examples/feature-demos/theme-presets/site/theme.md +3 -0
- package/fixtures/basic/site/config.md +3 -0
- package/fixtures/content-model-v2/site/config.md +3 -0
- package/package.json +17 -8
- package/scripts/build-pages.mjs +69 -0
- package/scripts/check-config.mjs +3 -11
- package/scripts/deploy-site.mjs +12 -8
- package/scripts/export-theme-preset.mjs +31 -0
- package/scripts/init-site.mjs +1 -0
- package/scripts/lib/example-sites.mjs +37 -0
- package/scripts/lib/github-repository.mjs +44 -0
- package/scripts/lib/norna-markdown-blocks.mjs +97 -10
- package/scripts/lib/presentation.mjs +6 -5
- package/scripts/lib/project-config.mjs +114 -124
- package/scripts/lib/site-content.mjs +9 -2
- package/scripts/lib/site-paths.mjs +6 -2
- package/scripts/lib/theme-config.mjs +3 -0
- package/scripts/lib/theme-presets.mjs +209 -0
- package/scripts/show-typography.mjs +6 -5
- package/scripts/test-client-javascript.mjs +236 -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 +13 -3
- package/scripts/test-examples.mjs +24 -0
- package/scripts/test-navigation.mjs +73 -45
- package/scripts/test-package-check.mjs +17 -9
- package/scripts/test-project-config.mjs +130 -0
- package/scripts/test-temporary-visibility.mjs +3 -10
- package/scripts/test-theme-presets.mjs +146 -0
- 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/NornaSmoothScrollScript.astro +250 -0
- package/src/components/SiteNavigation.astro +58 -341
- package/src/components/SiteNotesScript.astro +43 -0
- package/src/components/SitePage.astro +6 -3
- package/src/components/SiteSection.astro +4 -47
- package/src/content.config.ts +2 -0
- package/src/layouts/BaseLayout.astro +1 -1
- package/src/lib/galleryImages.ts +53 -0
- package/src/styles/global.css +83 -1
- package/starters/basic/.github/workflows/deploy.yml +1 -2
- package/starters/basic/README.md +10 -8
- package/starters/basic/package.json +1 -0
- 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/package.json +1 -0
- package/starters/project/site/config.md +3 -0
- package/examples/001-dog-shelter-single-page/README.md +0 -9
- package/examples/001-dog-shelter-single-page/site/config.mjs +0 -27
- package/examples/001-dog-shelter-single-page/site/content.md +0 -38
- package/examples/001-dog-shelter-single-page/site/images/what-we-do/dog-house.svg +0 -25
- package/examples/001-dog-shelter-single-page/site/images/you-can-help/heart.svg +0 -13
- package/examples/001-dog-shelter-single-page/site/sitewide-content.md +0 -6
- package/examples/001-dog-shelter-single-page/site/theme.md +0 -25
- package/examples/002-dog-shelter-multi-page/README.md +0 -9
- package/examples/002-dog-shelter-multi-page/site/config.mjs +0 -27
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg +0 -19
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg +0 -19
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/route-content.md +0 -30
- package/examples/002-dog-shelter-multi-page/site/sitewide-content.md +0 -6
- package/examples/002-dog-shelter-multi-page/site/theme.md +0 -25
- package/examples/dog-gallery/.astro/collections/site.schema.json +0 -776
- package/examples/dog-gallery/.astro/data-store.json +0 -1
- package/examples/dog-gallery/.astro/dev-local.json +0 -8
- package/examples/dog-gallery/.astro/dev.json +0 -13
- package/examples/dog-gallery/.astro/dev.log +0 -95
- package/examples/dog-gallery/.astro/settings.json +0 -5
- package/examples/dog-gallery/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
- package/examples/dog-gallery/dist/_astro/SitePage.DicGh_5N.css +0 -1
- package/examples/dog-gallery/dist/dog-care/index.html +0 -15
- package/examples/dog-gallery/dist/dog-shelter-logo.svg +0 -14
- package/examples/dog-gallery/dist/favicon.svg +0 -7
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1536.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-960.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-3939.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-2400.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1600.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-2576.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1277.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1536.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-768.webp +0 -0
- package/examples/dog-gallery/dist/index.html +0 -45
- package/examples/dog-gallery/node_modules/.vite/deps/_metadata.json +0 -74
- package/examples/dog-gallery/site/.norna/generated-images.json +0 -226
- package/examples/dog-gallery/site/config.mjs +0 -47
- package/examples/dog-gallery/site/content.md +0 -127
- package/examples/dog-gallery/site/images/black-dogs/black-puppy-meadow.png +0 -0
- package/examples/dog-gallery/site/images/black-dogs/photo-of-a-black-dog.jpg +0 -0
- package/examples/dog-gallery/site/images/brown-dogs/brown-dog.jpg +0 -0
- package/examples/dog-gallery/site/images/brown-dogs/dog-accompanies-master.jpg +0 -0
- package/examples/dog-gallery/site/images/golden-dogs/golden-retriever.jpg +0 -0
- package/examples/dog-gallery/site/images/golden-dogs/toller-puppy.jpg +0 -0
- package/examples/dog-gallery/site/images/white-dogs/white-cute-dog.jpg +0 -0
- package/examples/dog-gallery/site/images/white-dogs/white-puppy-garden.png +0 -0
- package/examples/dog-gallery/site/public/favicon.svg +0 -7
- package/examples/dog-gallery/site/public/logo.svg +0 -14
- package/examples/dog-gallery/site/routes/010-dog-care/route-content.md +0 -38
- package/examples/dog-gallery/site/sitewide-content.md +0 -16
- package/examples/dog-gallery/site/theme.md +0 -101
- package/examples/presentation/README.md +0 -15
- package/examples/presentation/site/config.mjs +0 -29
- package/examples/presentation/site/content.md +0 -67
- package/examples/presentation/site/public/robots.txt +0 -2
- package/examples/presentation/site/routes/010-presets/route-content.md +0 -63
- package/examples/presentation/site/routes/010-presets/theme.md +0 -4
- package/examples/presentation/site/routes/020-media/theme.md +0 -4
- package/examples/presentation/site/sitewide-content.md +0 -6
- package/examples/presentation/site/theme.md +0 -43
- package/examples/typography-presets/.astro/dev.log +0 -45
- package/examples/typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
- package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
- package/examples/typography-presets/site/config.mjs +0 -29
- package/examples/typography-presets/site/content.md +0 -16
- package/examples/typography-presets/site/routes/010-quiet-gallery/theme.md +0 -4
- package/examples/typography-presets/site/routes/020-compact-gallery/theme.md +0 -4
- package/examples/typography-presets/site/routes/030-text-forward/theme.md +0 -4
- package/examples/typography-presets/site/routes/040-statement/theme.md +0 -4
- package/examples/typography-presets/site/theme.md +0 -43
- 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/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/site.schema.json +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content-assets.mjs +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content-modules.mjs +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/types.d.ts +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/package.json +0 -0
- /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
- /package/examples/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery/retriever-portrait.jpg → complete-sites/dog-shelter-multi-page/site/images/intro/shelter-dog.jpg} +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/public/favicon.svg +0 -0
- /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/public/robots.txt +0 -0
- /package/examples/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/white-puppy.jpg → complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.jpg} +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward/boxer-portrait.jpg → complete-sites/dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.jpg} +0 -0
- /package/examples/{typography-presets/site/routes/040-statement/images/statement/sheepdog-grass.jpg → complete-sites/dog-shelter-multi-page/site/routes/020-adopt/images/adopt/adoption-dog.jpg} +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/content-assets.mjs +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/content-modules.mjs +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/types.d.ts +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/node_modules/.vite/deps/package.json +0 -0
- /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward/grass-puppy.jpg → complete-sites/dog-shelter-single-page/site/images/what-we-do/rescue-dog.jpg} +0 -0
- /package/examples/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/shepherd-portrait.jpg → complete-sites/dog-shelter-single-page/site/images/you-can-help/foster-dog.jpg} +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/public/favicon.svg +0 -0
- /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/public/robots.txt +0 -0
- /package/examples/{dog-gallery/dist → feature-demos/media-and-surfaces/site/public}/robots.txt +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-carousel.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-stack.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-surfaces.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-one.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-three.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-two.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/stack/stack-one.svg +0 -0
- /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/stack/stack-two.svg +0 -0
- /package/examples/{dog-gallery → feature-demos/sitewide-content}/site/public/robots.txt +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/collections/routeTheme.schema.json +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/content.d.ts +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/settings.json +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/_metadata.json +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/embla-carousel.js +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
- /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/public/robots.txt +0 -0
- /package/examples/{typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio}/puppy-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/black-schnauzer.jpg +0 -0
- /package/examples/{typography-presets/site/routes/020-compact-gallery/images/compact-gallery → feature-demos/theme-presets/site/routes/020-documentation/images/documentation}/schnauzer-portrait.jpg +0 -0
- /package/examples/{typography-presets/site/routes/030-text-forward/images/text-forward → feature-demos/theme-presets/site/routes/030-project/images/project}/grey-street-dog.jpg +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/black-pedigree.jpg +0 -0
- /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/sheepdog-wide.jpg +0 -0
package/docs/theme.md
CHANGED
|
@@ -2,48 +2,90 @@
|
|
|
2
2
|
|
|
3
3
|
`site/theme.md` defines the site-wide visual theme for a `norna` site. It uses
|
|
4
4
|
YAML frontmatter and does not need a Markdown body. The root theme file is
|
|
5
|
-
required
|
|
6
|
-
|
|
5
|
+
required. The normal setup selects one complete theme preset and adds only
|
|
6
|
+
focused overrides when needed.
|
|
7
7
|
|
|
8
8
|
An optional `theme.md` inside a route directory replaces the root visual theme
|
|
9
|
-
for that route.
|
|
10
|
-
|
|
11
|
-
and belongs in `sitewide-content.md`.
|
|
9
|
+
for that route. Shared identity such as brand and logo remains site-wide and
|
|
10
|
+
belongs in `sitewide-content.md`.
|
|
12
11
|
|
|
13
|
-
##
|
|
12
|
+
## Theme Presets
|
|
13
|
+
|
|
14
|
+
Available complete theme presets are:
|
|
15
|
+
|
|
16
|
+
- `portfolio`: restrained typography and a broad image area for image-led
|
|
17
|
+
presentation.
|
|
18
|
+
- `documentation`: reading-focused typography, a paper palette, and compact
|
|
19
|
+
structural rhythm.
|
|
20
|
+
- `project`: compact layout and a light presentation for project and product
|
|
21
|
+
sites.
|
|
22
|
+
- `statement`: airy spacing and stronger typography for short editorial
|
|
23
|
+
content.
|
|
24
|
+
|
|
25
|
+
A normal `theme.md` can be only:
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
---
|
|
29
|
+
preset: documentation
|
|
30
|
+
---
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Each preset supplies coordinated values for:
|
|
34
|
+
|
|
35
|
+
- layout density, page width, and gutters
|
|
36
|
+
- managed image sizing
|
|
37
|
+
- font family, typography preset, and typography rhythm
|
|
38
|
+
- palette and section-surface behaviour
|
|
39
|
+
|
|
40
|
+
The nested `typography.preset` setting documented below is a lower-level
|
|
41
|
+
typography choice. A top-level theme `preset` selects the complete visual
|
|
42
|
+
system, including that typography choice.
|
|
43
|
+
|
|
44
|
+
## Overrides
|
|
45
|
+
|
|
46
|
+
Values written beside the top-level preset override only that part of the
|
|
47
|
+
preset. Other preset values remain active:
|
|
14
48
|
|
|
15
49
|
```yaml
|
|
16
50
|
---
|
|
51
|
+
preset: documentation
|
|
17
52
|
layout:
|
|
18
|
-
|
|
19
|
-
pageWidth: 1180px
|
|
20
|
-
gutter:
|
|
21
|
-
desktop: clamp(1.25rem, 4vw, 3rem)
|
|
22
|
-
mobile: 1rem
|
|
23
|
-
gallery:
|
|
24
|
-
width: 900px
|
|
25
|
-
maxAvailableWidthPercent:
|
|
26
|
-
desktop: 100
|
|
27
|
-
mobile: 100
|
|
28
|
-
maxAvailableHeightPercent:
|
|
29
|
-
desktop: 74
|
|
30
|
-
mobile: 68
|
|
31
|
-
typography:
|
|
32
|
-
fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
|
|
33
|
-
preset: quiet-gallery
|
|
34
|
-
rhythm: normal
|
|
53
|
+
pageWidth: 1320px
|
|
35
54
|
presentation:
|
|
36
|
-
palette: dark
|
|
37
|
-
sectionSurfaces:
|
|
38
|
-
mode: cycle
|
|
39
|
-
sequence: [base, soft, emphasis]
|
|
55
|
+
palette: dark
|
|
40
56
|
---
|
|
41
57
|
```
|
|
42
58
|
|
|
43
|
-
|
|
44
|
-
`
|
|
45
|
-
|
|
46
|
-
|
|
59
|
+
Nested objects are merged by key. Arrays such as
|
|
60
|
+
`presentation.sectionSurfaces.sequence` replace the preset array when they are
|
|
61
|
+
specified.
|
|
62
|
+
|
|
63
|
+
It is still valid to omit the top-level preset and define the visual settings
|
|
64
|
+
explicitly. Omitted explicit settings then use engine defaults. This is useful
|
|
65
|
+
for focused testing, but selecting a complete preset is the simpler normal
|
|
66
|
+
workflow.
|
|
67
|
+
|
|
68
|
+
## Export A Preset
|
|
69
|
+
|
|
70
|
+
Export the installed definition of a preset before choosing overrides:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
norna theme:export documentation
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
In a generated site, the equivalent npm command is:
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
npm run norna:theme:export -- documentation
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The command creates `site/orig-documentation-theme.md`, or the corresponding
|
|
83
|
+
path under the selected site directory. The file contains the preset values,
|
|
84
|
+
comments describing accepted alternatives, and an example of a fine-grained
|
|
85
|
+
typography override.
|
|
86
|
+
|
|
87
|
+
Norna never loads `orig-*-theme.md`; only `theme.md` is active. The export
|
|
88
|
+
command refuses to overwrite an existing reference file.
|
|
47
89
|
|
|
48
90
|
Site identity is not part of the visual theme. Define the optional navigation
|
|
49
91
|
brand and logo settings in `site/sitewide-content.md`; see [Sitewide Content](sitewide-content.md).
|
|
@@ -203,11 +245,39 @@ visual expression:
|
|
|
203
245
|
site/routes/010-guide/theme.md
|
|
204
246
|
```
|
|
205
247
|
|
|
206
|
-
The route theme uses the same visual schema as the root
|
|
207
|
-
|
|
208
|
-
|
|
248
|
+
The route theme uses the same visual schema and complete presets as the root
|
|
249
|
+
theme. A route can therefore select a different expression without repeating a
|
|
250
|
+
large configuration:
|
|
251
|
+
|
|
252
|
+
```yaml
|
|
253
|
+
---
|
|
254
|
+
preset: statement
|
|
255
|
+
---
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
It completely replaces the root visual theme for that route. If the route
|
|
259
|
+
theme selects no top-level preset, omitted values use engine defaults rather
|
|
260
|
+
than values from the root theme. It cannot define navigation, brand, logo, or
|
|
209
261
|
technical configuration.
|
|
210
262
|
|
|
211
263
|
Section surfaces render as full-width horizontal bands while the section
|
|
212
264
|
content keeps the normal page and image widths. Links keep the palette's global
|
|
213
265
|
accent color.
|
|
266
|
+
|
|
267
|
+
## Common Questions
|
|
268
|
+
|
|
269
|
+
### Should every route select its own preset?
|
|
270
|
+
|
|
271
|
+
No. A route without its own `theme.md` inherits the root theme, which is the
|
|
272
|
+
normal choice when the site should keep one visual expression.
|
|
273
|
+
|
|
274
|
+
Add a route theme only when the route should intentionally look different. If
|
|
275
|
+
the route should keep the same preset but demonstrate a focused change, repeat
|
|
276
|
+
the root preset in the route theme and override only that setting. This is
|
|
277
|
+
necessary because a route theme replaces the root visual theme rather than
|
|
278
|
+
merging with it.
|
|
279
|
+
|
|
280
|
+
For example, a route demonstrating section surfaces may keep `preset: project`
|
|
281
|
+
and change only `presentation.sectionSurfaces`. A route demonstrating media or
|
|
282
|
+
content blocks should normally inherit the root preset so that the media or
|
|
283
|
+
content remains the only variable being compared.
|
package/docs/typography.md
CHANGED
|
@@ -3,12 +3,20 @@
|
|
|
3
3
|
`norna` typography is configured in `site/theme.md` through a site-wide font,
|
|
4
4
|
presets, text rhythm, and optional overrides.
|
|
5
5
|
|
|
6
|
-
The normal
|
|
7
|
-
|
|
8
|
-
Page and section files may override the theme when a focused exception is
|
|
9
|
-
needed, but the normal workflow is to keep typography in `theme.md`.
|
|
6
|
+
The normal workflow is to select a complete top-level theme preset. It already
|
|
7
|
+
chooses a coordinated font, typography preset, and rhythm:
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
```yaml
|
|
10
|
+
---
|
|
11
|
+
preset: documentation
|
|
12
|
+
---
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Use the nested `typography` block only when those typographic choices need to
|
|
16
|
+
differ from the selected theme preset. Typography is configured at root-theme
|
|
17
|
+
or route-theme level, not in page or section content.
|
|
18
|
+
|
|
19
|
+
## Typography Presets
|
|
12
20
|
|
|
13
21
|
Available presets:
|
|
14
22
|
|
|
@@ -21,7 +29,9 @@ Available presets:
|
|
|
21
29
|
- `statement`: tighter, more declarative line-height for short programmatic
|
|
22
30
|
statements. Use it sparingly, usually as a page or section exception.
|
|
23
31
|
|
|
24
|
-
If theme
|
|
32
|
+
If a complete top-level theme preset is selected, that preset supplies the
|
|
33
|
+
typography choice. If both the top-level preset and nested typography are
|
|
34
|
+
omitted, the engine default is `quiet-gallery`.
|
|
25
35
|
|
|
26
36
|
Presets define alignment, size, weight, and line height for `headings.h1`
|
|
27
37
|
through `headings.h4`, `body`, and `caption`. They also choose a readable body
|
|
@@ -142,30 +152,35 @@ Supported override fields:
|
|
|
142
152
|
|
|
143
153
|
## Route Themes
|
|
144
154
|
|
|
145
|
-
|
|
155
|
+
The simplest route-specific typography change is to select a complete theme
|
|
156
|
+
preset:
|
|
146
157
|
|
|
147
158
|
```yaml
|
|
148
|
-
# site/theme.md
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
rhythm: normal
|
|
159
|
+
# site/routes/010-introduction/theme.md
|
|
160
|
+
---
|
|
161
|
+
preset: statement
|
|
162
|
+
---
|
|
153
163
|
```
|
|
154
164
|
|
|
155
|
-
A route-local `theme.md`
|
|
156
|
-
The
|
|
157
|
-
|
|
158
|
-
still needs.
|
|
165
|
+
A route-local `theme.md` replaces the root visual theme rather than inheriting
|
|
166
|
+
from it. The complete preset supplies a coherent route theme without repeating
|
|
167
|
+
the root values.
|
|
159
168
|
|
|
160
|
-
|
|
169
|
+
Use a nested typography choice when only the typographic character needs to be
|
|
170
|
+
specified explicitly:
|
|
161
171
|
|
|
162
172
|
```yaml
|
|
163
173
|
# site/routes/010-introduction/theme.md
|
|
174
|
+
---
|
|
164
175
|
typography:
|
|
165
176
|
preset: statement
|
|
166
177
|
rhythm: normal
|
|
178
|
+
---
|
|
167
179
|
```
|
|
168
180
|
|
|
181
|
+
Without a top-level theme preset, other omitted route-theme values use engine
|
|
182
|
+
defaults rather than values from the root theme.
|
|
183
|
+
|
|
169
184
|
The `body.width` value controls the prose column independently of the page and
|
|
170
185
|
image widths. Captions are normally centered, but `text-forward` uses
|
|
171
186
|
left-aligned captions to support longer explanatory text.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Norna Examples
|
|
2
|
+
|
|
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
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
examples/
|
|
19
|
+
|-- complete-sites/
|
|
20
|
+
| |-- dog-shelter-single-page/
|
|
21
|
+
| `-- dog-shelter-multi-page/
|
|
22
|
+
`-- feature-demos/
|
|
23
|
+
|-- theme-presets/
|
|
24
|
+
|-- media-and-surfaces/
|
|
25
|
+
`-- sitewide-content/
|
|
26
|
+
```
|
|
27
|
+
|
|
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.
|
|
32
|
+
|
|
33
|
+
## Run An Example Locally
|
|
34
|
+
|
|
35
|
+
From the Norna repository root, pass the example's `site/` directory:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
node bin/norna.mjs --site-dir examples/feature-demos/media-and-surfaces/site dev:local
|
|
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/`.
|
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
|
+
"navigation": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"brand": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1
|
|
11
|
+
},
|
|
12
|
+
"logo": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"alt": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1
|
|
18
|
+
},
|
|
19
|
+
"height": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"additionalProperties": false
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"additionalProperties": false
|
|
28
|
+
},
|
|
5
29
|
"banners": {
|
|
6
30
|
"default": [],
|
|
7
31
|
"type": "array",
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
|
+
"preset": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"enum": [
|
|
8
|
+
"portfolio",
|
|
9
|
+
"documentation",
|
|
10
|
+
"project",
|
|
11
|
+
"statement"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
5
14
|
"layout": {
|
|
6
15
|
"type": "object",
|
|
7
16
|
"properties": {
|
|
@@ -738,30 +747,6 @@
|
|
|
738
747
|
},
|
|
739
748
|
"additionalProperties": false
|
|
740
749
|
},
|
|
741
|
-
"navigation": {
|
|
742
|
-
"type": "object",
|
|
743
|
-
"properties": {
|
|
744
|
-
"brand": {
|
|
745
|
-
"type": "string",
|
|
746
|
-
"minLength": 1
|
|
747
|
-
},
|
|
748
|
-
"logo": {
|
|
749
|
-
"type": "object",
|
|
750
|
-
"properties": {
|
|
751
|
-
"alt": {
|
|
752
|
-
"type": "string",
|
|
753
|
-
"minLength": 1
|
|
754
|
-
},
|
|
755
|
-
"height": {
|
|
756
|
-
"type": "string",
|
|
757
|
-
"pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$"
|
|
758
|
-
}
|
|
759
|
-
},
|
|
760
|
-
"additionalProperties": false
|
|
761
|
-
}
|
|
762
|
-
},
|
|
763
|
-
"additionalProperties": false
|
|
764
|
-
},
|
|
765
750
|
"$schema": {
|
|
766
751
|
"type": "string"
|
|
767
752
|
}
|
|
@@ -132,6 +132,14 @@ declare module 'astro:content' {
|
|
|
132
132
|
rendered?: RenderedContent;
|
|
133
133
|
filePath?: string;
|
|
134
134
|
}>;
|
|
135
|
+
"sitewide": Record<string, {
|
|
136
|
+
id: string;
|
|
137
|
+
body?: string;
|
|
138
|
+
collection: "sitewide";
|
|
139
|
+
data: InferEntrySchema<"sitewide">;
|
|
140
|
+
rendered?: RenderedContent;
|
|
141
|
+
filePath?: string;
|
|
142
|
+
}>;
|
|
135
143
|
"theme": Record<string, {
|
|
136
144
|
id: string;
|
|
137
145
|
body?: string;
|
|
@@ -170,6 +178,6 @@ declare module 'astro:content' {
|
|
|
170
178
|
LiveContentConfig['collections'][C]['loader']
|
|
171
179
|
>;
|
|
172
180
|
|
|
173
|
-
export type ContentConfig = typeof import("
|
|
181
|
+
export type ContentConfig = typeof import("../../../../src/content.config.js");
|
|
174
182
|
export type LiveContentConfig = never;
|
|
175
183
|
}
|
|
@@ -0,0 +1 @@
|
|
|
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},[]]
|
|
@@ -0,0 +1,26 @@
|
|
|
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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Dog Shelter multi-page example
|
|
2
|
+
|
|
3
|
+
A small Norna site with a homepage and ordered routes for dogs and adoption.
|
|
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
|
+
|
|
12
|
+
Run it from the Norna repository root:
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
node bin/norna.mjs --site-dir examples/complete-sites/dog-shelter-multi-page/site dev:local
|
|
16
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hash": "5cf74c44",
|
|
3
|
+
"configHash": "468b2565",
|
|
4
|
+
"lockfileHash": "808f2e8e",
|
|
5
|
+
"browserHash": "24b56f2c",
|
|
6
|
+
"optimized": {
|
|
7
|
+
"astro > aria-query": {
|
|
8
|
+
"src": "../../../../../../node_modules/aria-query/lib/index.js",
|
|
9
|
+
"file": "astro_n_aria-query.js",
|
|
10
|
+
"fileHash": "22765b52",
|
|
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": "c0c497a1",
|
|
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": "3d5b47f7",
|
|
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": "89643eed",
|
|
29
|
+
"needsInterop": false
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"chunks": {
|
|
33
|
+
"astro-B3JHJyiv": {
|
|
34
|
+
"file": "astro-B3JHJyiv.js",
|
|
35
|
+
"isDynamicEntry": true
|
|
36
|
+
},
|
|
37
|
+
"audit-C3SVr7dT": {
|
|
38
|
+
"file": "audit-C3SVr7dT.js",
|
|
39
|
+
"isDynamicEntry": true
|
|
40
|
+
},
|
|
41
|
+
"highlight-BLtvqtzO": {
|
|
42
|
+
"file": "highlight-BLtvqtzO.js",
|
|
43
|
+
"isDynamicEntry": false
|
|
44
|
+
},
|
|
45
|
+
"icons-C92i61-2": {
|
|
46
|
+
"file": "icons-C92i61-2.js",
|
|
47
|
+
"isDynamicEntry": false
|
|
48
|
+
},
|
|
49
|
+
"rolldown-runtime-BvCyGRYZ": {
|
|
50
|
+
"file": "rolldown-runtime-BvCyGRYZ.js",
|
|
51
|
+
"isDynamicEntry": false
|
|
52
|
+
},
|
|
53
|
+
"settings-v5GgKks_": {
|
|
54
|
+
"file": "settings-v5GgKks_.js",
|
|
55
|
+
"isDynamicEntry": true
|
|
56
|
+
},
|
|
57
|
+
"toolbar-BFvJVp26": {
|
|
58
|
+
"file": "toolbar-BFvJVp26.js",
|
|
59
|
+
"isDynamicEntry": true
|
|
60
|
+
},
|
|
61
|
+
"ui-library-Cd35oAvo": {
|
|
62
|
+
"file": "ui-library-Cd35oAvo.js",
|
|
63
|
+
"isDynamicEntry": true
|
|
64
|
+
},
|
|
65
|
+
"window-vo3A6TMn": {
|
|
66
|
+
"file": "window-vo3A6TMn.js",
|
|
67
|
+
"isDynamicEntry": false
|
|
68
|
+
},
|
|
69
|
+
"xray-DwhzGckb": {
|
|
70
|
+
"file": "xray-DwhzGckb.js",
|
|
71
|
+
"isDynamicEntry": true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -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 = {
|