@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.
Files changed (476) hide show
  1. package/README.md +120 -106
  2. package/bin/norna-cli.mjs +4 -1
  3. package/docs/README.md +107 -74
  4. package/docs/assets/norna-dog-shelter.jpg +0 -0
  5. package/docs/commands.md +13 -4
  6. package/docs/configuration.md +86 -184
  7. package/docs/content.md +14 -14
  8. package/docs/design/command-organization.md +1 -1
  9. package/docs/design/norna-diagram-design.md +2 -1
  10. package/docs/design/site-examples-structure.md +38 -24
  11. package/docs/engine-development.md +28 -15
  12. package/docs/getting-started.md +141 -124
  13. package/docs/how-to/embedded-site.md +35 -0
  14. package/docs/publishing.md +47 -46
  15. package/docs/requirements.md +54 -0
  16. package/docs/routes.md +3 -2
  17. package/docs/site-structure.md +12 -9
  18. package/docs/sitewide-content.md +2 -1
  19. package/docs/theme.md +104 -34
  20. package/docs/typography.md +32 -17
  21. package/examples/README.md +43 -0
  22. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/sitewide.schema.json +24 -0
  23. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/theme.schema.json +9 -24
  24. package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content.d.ts +9 -1
  25. package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -0
  26. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/dev-local.json +2 -2
  27. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +13 -0
  28. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +26 -0
  29. package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +5 -0
  30. package/examples/complete-sites/dog-shelter-multi-page/README.md +16 -0
  31. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +74 -0
  32. 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
  33. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
  34. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_aria-query.js +151 -151
  35. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  36. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_axobject-query.js +131 -131
  37. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  38. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_n_html-escaper.js +1 -1
  39. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  40. package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +10 -10
  41. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  42. 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
  43. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
  44. 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
  45. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
  46. 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
  47. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
  48. 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
  49. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
  50. 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
  51. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
  52. 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
  53. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
  54. 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
  55. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
  56. 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
  57. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
  58. package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +98 -0
  59. package/examples/complete-sites/dog-shelter-multi-page/site/config.md +3 -0
  60. package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/content.md +12 -0
  61. package/examples/complete-sites/dog-shelter-multi-page/site/public/logo.svg +9 -0
  62. package/examples/complete-sites/dog-shelter-multi-page/site/routes/010-dogs/route-content.md +22 -0
  63. package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-multi-page}/site/routes/020-adopt/route-content.md +11 -0
  64. package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.md +16 -0
  65. package/examples/complete-sites/dog-shelter-multi-page/site/theme.md +3 -0
  66. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +59 -0
  67. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +138 -0
  68. package/examples/{dog-gallery → complete-sites/dog-shelter-single-page}/.astro/collections/theme.schema.json +151 -68
  69. package/examples/complete-sites/dog-shelter-single-page/.astro/content.d.ts +183 -0
  70. package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +1 -0
  71. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +13 -0
  72. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +14 -0
  73. package/examples/complete-sites/dog-shelter-single-page/.astro/settings.json +5 -0
  74. package/examples/complete-sites/dog-shelter-single-page/README.md +16 -0
  75. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +74 -0
  76. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
  77. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
  78. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  79. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  80. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
  81. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  82. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  83. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  84. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  85. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  86. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
  87. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
  88. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
  89. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
  90. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
  91. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
  92. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
  93. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
  94. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
  95. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
  96. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
  97. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
  98. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
  99. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
  100. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
  101. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
  102. package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +50 -0
  103. package/examples/complete-sites/dog-shelter-single-page/site/config.md +3 -0
  104. package/examples/complete-sites/dog-shelter-single-page/site/content.md +34 -0
  105. package/examples/complete-sites/dog-shelter-single-page/site/public/logo.svg +9 -0
  106. package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.md +16 -0
  107. package/examples/complete-sites/dog-shelter-single-page/site/theme.md +3 -0
  108. package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +59 -0
  109. package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +138 -0
  110. package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +755 -0
  111. package/examples/feature-demos/media-and-surfaces/.astro/content-assets.mjs +4 -0
  112. package/examples/feature-demos/media-and-surfaces/.astro/content-modules.mjs +1 -0
  113. package/examples/feature-demos/media-and-surfaces/.astro/content.d.ts +183 -0
  114. package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -0
  115. package/examples/feature-demos/media-and-surfaces/.astro/dev.log +24 -0
  116. package/examples/feature-demos/media-and-surfaces/.astro/settings.json +5 -0
  117. package/examples/feature-demos/media-and-surfaces/.astro/types.d.ts +2 -0
  118. package/examples/feature-demos/media-and-surfaces/README.md +21 -0
  119. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +80 -0
  120. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
  121. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
  122. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  123. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  124. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
  125. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  126. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  127. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  128. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  129. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  130. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
  131. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
  132. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js +1389 -0
  133. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js.map +1 -0
  134. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
  135. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
  136. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
  137. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
  138. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/package.json +3 -0
  139. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
  140. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
  141. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
  142. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
  143. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
  144. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
  145. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
  146. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
  147. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
  148. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
  149. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
  150. package/examples/{presentation → feature-demos/media-and-surfaces}/site/.norna/generated-images.json +16 -16
  151. package/examples/feature-demos/media-and-surfaces/site/config.md +4 -0
  152. package/examples/feature-demos/media-and-surfaces/site/content.md +18 -0
  153. package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/route-content.md +17 -24
  154. package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/route-content.md +1 -1
  155. package/examples/{presentation/site/routes/030-surfaces → feature-demos/media-and-surfaces/site/routes/020-surfaces}/theme.md +1 -0
  156. package/examples/feature-demos/media-and-surfaces/site/sitewide-content.md +6 -0
  157. package/examples/feature-demos/media-and-surfaces/site/theme.md +3 -0
  158. package/examples/feature-demos/sitewide-content/.astro/collections/site.schema.json +59 -0
  159. package/examples/feature-demos/sitewide-content/.astro/collections/sitewide.schema.json +138 -0
  160. package/examples/feature-demos/sitewide-content/.astro/collections/theme.schema.json +755 -0
  161. package/examples/feature-demos/sitewide-content/.astro/content-assets.mjs +1 -0
  162. package/examples/feature-demos/sitewide-content/.astro/content-modules.mjs +1 -0
  163. package/examples/feature-demos/sitewide-content/.astro/content.d.ts +183 -0
  164. package/examples/feature-demos/sitewide-content/.astro/data-store.json +1 -0
  165. package/examples/feature-demos/sitewide-content/.astro/dev.json +13 -0
  166. package/examples/feature-demos/sitewide-content/.astro/dev.log +18 -0
  167. package/examples/feature-demos/sitewide-content/.astro/settings.json +5 -0
  168. package/examples/feature-demos/sitewide-content/.astro/types.d.ts +2 -0
  169. package/examples/feature-demos/sitewide-content/README.md +18 -0
  170. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/_metadata.json +74 -0
  171. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js +434 -0
  172. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js.map +1 -0
  173. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  174. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  175. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
  176. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  177. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  178. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  179. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  180. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  181. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js +1534 -0
  182. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js.map +1 -0
  183. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js +48 -0
  184. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +1 -0
  185. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js +42 -0
  186. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js.map +1 -0
  187. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/package.json +3 -0
  188. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
  189. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js +190 -0
  190. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js.map +1 -0
  191. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js +458 -0
  192. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +1 -0
  193. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js +1016 -0
  194. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +1 -0
  195. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js +32 -0
  196. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js.map +1 -0
  197. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js +111 -0
  198. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js.map +1 -0
  199. package/examples/feature-demos/sitewide-content/site/.norna/generated-images.json +1 -0
  200. package/examples/feature-demos/sitewide-content/site/config.md +3 -0
  201. package/examples/feature-demos/sitewide-content/site/content.md +16 -0
  202. package/examples/feature-demos/sitewide-content/site/public/logo.svg +6 -0
  203. package/examples/feature-demos/sitewide-content/site/routes/010-identity/route-content.md +20 -0
  204. package/examples/feature-demos/sitewide-content/site/routes/020-notices/route-content.md +22 -0
  205. package/examples/feature-demos/sitewide-content/site/routes/030-footer/route-content.md +17 -0
  206. package/examples/feature-demos/sitewide-content/site/sitewide-content.md +33 -0
  207. package/examples/feature-demos/sitewide-content/site/theme.md +3 -0
  208. package/examples/feature-demos/theme-presets/.astro/collections/site.schema.json +59 -0
  209. package/examples/feature-demos/theme-presets/.astro/collections/sitewide.schema.json +138 -0
  210. package/examples/feature-demos/theme-presets/.astro/collections/theme.schema.json +755 -0
  211. package/examples/feature-demos/theme-presets/.astro/content-assets.mjs +4 -0
  212. package/examples/feature-demos/theme-presets/.astro/content-modules.mjs +1 -0
  213. package/examples/{typography-presets → feature-demos/theme-presets}/.astro/data-store.json +1 -1
  214. package/examples/feature-demos/theme-presets/.astro/dev-local.json +8 -0
  215. package/examples/{typography-presets → feature-demos/theme-presets}/.astro/dev.json +2 -2
  216. package/examples/feature-demos/theme-presets/.astro/dev.log +164 -0
  217. package/examples/feature-demos/theme-presets/.astro/types.d.ts +2 -0
  218. package/examples/feature-demos/theme-presets/README.md +18 -0
  219. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/package.json +3 -0
  220. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
  221. package/examples/{typography-presets → feature-demos/theme-presets}/site/.norna/generated-images.json +45 -45
  222. package/examples/feature-demos/theme-presets/site/config.md +3 -0
  223. package/examples/feature-demos/theme-presets/site/content.md +17 -0
  224. package/examples/feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio/shepherd-portrait.jpg +0 -0
  225. package/examples/feature-demos/theme-presets/site/routes/010-portfolio/images/portfolio/white-puppy.jpg +0 -0
  226. package/examples/{typography-presets/site/routes/010-quiet-gallery → feature-demos/theme-presets/site/routes/010-portfolio}/route-content.md +8 -8
  227. package/examples/feature-demos/theme-presets/site/routes/010-portfolio/theme.md +3 -0
  228. package/examples/feature-demos/theme-presets/site/routes/020-documentation/images/documentation/retriever-portrait.jpg +0 -0
  229. package/examples/{typography-presets/site/routes/020-compact-gallery → feature-demos/theme-presets/site/routes/020-documentation}/route-content.md +8 -8
  230. package/examples/feature-demos/theme-presets/site/routes/020-documentation/theme.md +3 -0
  231. package/examples/feature-demos/theme-presets/site/routes/030-project/images/project/boxer-portrait.jpg +0 -0
  232. package/examples/feature-demos/theme-presets/site/routes/030-project/images/project/grass-puppy.jpg +0 -0
  233. package/examples/{typography-presets/site/routes/030-text-forward → feature-demos/theme-presets/site/routes/030-project}/route-content.md +8 -8
  234. package/examples/feature-demos/theme-presets/site/routes/030-project/theme.md +3 -0
  235. package/examples/feature-demos/theme-presets/site/routes/040-statement/images/statement/sheepdog-grass.jpg +0 -0
  236. package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/route-content.md +3 -3
  237. package/examples/feature-demos/theme-presets/site/routes/040-statement/theme.md +3 -0
  238. package/examples/{typography-presets → feature-demos/theme-presets}/site/sitewide-content.md +1 -1
  239. package/examples/feature-demos/theme-presets/site/theme.md +3 -0
  240. package/fixtures/basic/site/config.md +3 -0
  241. package/fixtures/content-model-v2/site/config.md +3 -0
  242. package/package.json +17 -8
  243. package/scripts/build-pages.mjs +69 -0
  244. package/scripts/check-config.mjs +3 -11
  245. package/scripts/deploy-site.mjs +12 -8
  246. package/scripts/export-theme-preset.mjs +31 -0
  247. package/scripts/init-site.mjs +1 -0
  248. package/scripts/lib/example-sites.mjs +37 -0
  249. package/scripts/lib/github-repository.mjs +44 -0
  250. package/scripts/lib/norna-markdown-blocks.mjs +97 -10
  251. package/scripts/lib/presentation.mjs +6 -5
  252. package/scripts/lib/project-config.mjs +114 -124
  253. package/scripts/lib/site-content.mjs +9 -2
  254. package/scripts/lib/site-paths.mjs +6 -2
  255. package/scripts/lib/theme-config.mjs +3 -0
  256. package/scripts/lib/theme-presets.mjs +209 -0
  257. package/scripts/show-typography.mjs +6 -5
  258. package/scripts/test-client-javascript.mjs +236 -0
  259. package/scripts/test-content-check.mjs +103 -0
  260. package/scripts/test-content-model-v2.mjs +9 -13
  261. package/scripts/test-documentation.mjs +116 -0
  262. package/scripts/test-engine-commands.mjs +13 -3
  263. package/scripts/test-examples.mjs +24 -0
  264. package/scripts/test-navigation.mjs +73 -45
  265. package/scripts/test-package-check.mjs +17 -9
  266. package/scripts/test-project-config.mjs +130 -0
  267. package/scripts/test-temporary-visibility.mjs +3 -10
  268. package/scripts/test-theme-presets.mjs +146 -0
  269. package/scripts/watch-pages-deploy.mjs +15 -11
  270. package/src/components/GalleryGrid.astro +30 -230
  271. package/src/components/ImageCarousel.astro +184 -0
  272. package/src/components/MobileSectionNavigationScript.astro +14 -0
  273. package/src/components/NornaSmoothScrollScript.astro +250 -0
  274. package/src/components/SiteNavigation.astro +58 -341
  275. package/src/components/SiteNotesScript.astro +43 -0
  276. package/src/components/SitePage.astro +6 -3
  277. package/src/components/SiteSection.astro +4 -47
  278. package/src/content.config.ts +2 -0
  279. package/src/layouts/BaseLayout.astro +1 -1
  280. package/src/lib/galleryImages.ts +53 -0
  281. package/src/styles/global.css +83 -1
  282. package/starters/basic/.github/workflows/deploy.yml +1 -2
  283. package/starters/basic/README.md +10 -8
  284. package/starters/basic/package.json +1 -0
  285. package/starters/basic/site/config.md +3 -0
  286. package/starters/project/.github/workflows/deploy.yml +1 -2
  287. package/starters/project/README.md +3 -4
  288. package/starters/project/package.json +1 -0
  289. package/starters/project/site/config.md +3 -0
  290. package/examples/001-dog-shelter-single-page/README.md +0 -9
  291. package/examples/001-dog-shelter-single-page/site/config.mjs +0 -27
  292. package/examples/001-dog-shelter-single-page/site/content.md +0 -38
  293. package/examples/001-dog-shelter-single-page/site/images/what-we-do/dog-house.svg +0 -25
  294. package/examples/001-dog-shelter-single-page/site/images/you-can-help/heart.svg +0 -13
  295. package/examples/001-dog-shelter-single-page/site/sitewide-content.md +0 -6
  296. package/examples/001-dog-shelter-single-page/site/theme.md +0 -25
  297. package/examples/002-dog-shelter-multi-page/README.md +0 -9
  298. package/examples/002-dog-shelter-multi-page/site/config.mjs +0 -27
  299. package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg +0 -19
  300. package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg +0 -19
  301. package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/route-content.md +0 -30
  302. package/examples/002-dog-shelter-multi-page/site/sitewide-content.md +0 -6
  303. package/examples/002-dog-shelter-multi-page/site/theme.md +0 -25
  304. package/examples/dog-gallery/.astro/collections/site.schema.json +0 -776
  305. package/examples/dog-gallery/.astro/data-store.json +0 -1
  306. package/examples/dog-gallery/.astro/dev-local.json +0 -8
  307. package/examples/dog-gallery/.astro/dev.json +0 -13
  308. package/examples/dog-gallery/.astro/dev.log +0 -95
  309. package/examples/dog-gallery/.astro/settings.json +0 -5
  310. package/examples/dog-gallery/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
  311. package/examples/dog-gallery/dist/_astro/SitePage.DicGh_5N.css +0 -1
  312. package/examples/dog-gallery/dist/dog-care/index.html +0 -15
  313. package/examples/dog-gallery/dist/dog-shelter-logo.svg +0 -14
  314. package/examples/dog-gallery/dist/favicon.svg +0 -7
  315. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1080.webp +0 -0
  316. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1440.webp +0 -0
  317. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1536.webp +0 -0
  318. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-480.webp +0 -0
  319. package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-768.webp +0 -0
  320. package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-480.webp +0 -0
  321. package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-768.webp +0 -0
  322. package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-960.webp +0 -0
  323. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1080.webp +0 -0
  324. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1440.webp +0 -0
  325. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1920.webp +0 -0
  326. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-3939.webp +0 -0
  327. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-480.webp +0 -0
  328. package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-768.webp +0 -0
  329. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1080.webp +0 -0
  330. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1440.webp +0 -0
  331. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1920.webp +0 -0
  332. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-2400.webp +0 -0
  333. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-480.webp +0 -0
  334. package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-768.webp +0 -0
  335. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1080.webp +0 -0
  336. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1440.webp +0 -0
  337. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1600.webp +0 -0
  338. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-480.webp +0 -0
  339. package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-768.webp +0 -0
  340. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1080.webp +0 -0
  341. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1440.webp +0 -0
  342. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1920.webp +0 -0
  343. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-2576.webp +0 -0
  344. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-480.webp +0 -0
  345. package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-768.webp +0 -0
  346. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1080.webp +0 -0
  347. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1277.webp +0 -0
  348. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-480.webp +0 -0
  349. package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-768.webp +0 -0
  350. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1080.webp +0 -0
  351. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1440.webp +0 -0
  352. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1536.webp +0 -0
  353. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-480.webp +0 -0
  354. package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-768.webp +0 -0
  355. package/examples/dog-gallery/dist/index.html +0 -45
  356. package/examples/dog-gallery/node_modules/.vite/deps/_metadata.json +0 -74
  357. package/examples/dog-gallery/site/.norna/generated-images.json +0 -226
  358. package/examples/dog-gallery/site/config.mjs +0 -47
  359. package/examples/dog-gallery/site/content.md +0 -127
  360. package/examples/dog-gallery/site/images/black-dogs/black-puppy-meadow.png +0 -0
  361. package/examples/dog-gallery/site/images/black-dogs/photo-of-a-black-dog.jpg +0 -0
  362. package/examples/dog-gallery/site/images/brown-dogs/brown-dog.jpg +0 -0
  363. package/examples/dog-gallery/site/images/brown-dogs/dog-accompanies-master.jpg +0 -0
  364. package/examples/dog-gallery/site/images/golden-dogs/golden-retriever.jpg +0 -0
  365. package/examples/dog-gallery/site/images/golden-dogs/toller-puppy.jpg +0 -0
  366. package/examples/dog-gallery/site/images/white-dogs/white-cute-dog.jpg +0 -0
  367. package/examples/dog-gallery/site/images/white-dogs/white-puppy-garden.png +0 -0
  368. package/examples/dog-gallery/site/public/favicon.svg +0 -7
  369. package/examples/dog-gallery/site/public/logo.svg +0 -14
  370. package/examples/dog-gallery/site/routes/010-dog-care/route-content.md +0 -38
  371. package/examples/dog-gallery/site/sitewide-content.md +0 -16
  372. package/examples/dog-gallery/site/theme.md +0 -101
  373. package/examples/presentation/README.md +0 -15
  374. package/examples/presentation/site/config.mjs +0 -29
  375. package/examples/presentation/site/content.md +0 -67
  376. package/examples/presentation/site/public/robots.txt +0 -2
  377. package/examples/presentation/site/routes/010-presets/route-content.md +0 -63
  378. package/examples/presentation/site/routes/010-presets/theme.md +0 -4
  379. package/examples/presentation/site/routes/020-media/theme.md +0 -4
  380. package/examples/presentation/site/sitewide-content.md +0 -6
  381. package/examples/presentation/site/theme.md +0 -43
  382. package/examples/typography-presets/.astro/dev.log +0 -45
  383. package/examples/typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
  384. package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  385. package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  386. package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  387. package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  388. package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
  389. package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
  390. package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
  391. package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
  392. package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
  393. package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
  394. package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
  395. package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
  396. package/examples/typography-presets/site/config.mjs +0 -29
  397. package/examples/typography-presets/site/content.md +0 -16
  398. package/examples/typography-presets/site/routes/010-quiet-gallery/theme.md +0 -4
  399. package/examples/typography-presets/site/routes/020-compact-gallery/theme.md +0 -4
  400. package/examples/typography-presets/site/routes/030-text-forward/theme.md +0 -4
  401. package/examples/typography-presets/site/routes/040-statement/theme.md +0 -4
  402. package/examples/typography-presets/site/theme.md +0 -43
  403. package/fixtures/basic/site/config.mjs +0 -27
  404. package/fixtures/content-model-v2/site/config.mjs +0 -11
  405. package/starters/basic/site/config.mjs +0 -27
  406. package/starters/project/site/config.mjs +0 -30
  407. /package/examples/{typography-presets → complete-sites/dog-shelter-multi-page}/.astro/collections/site.schema.json +0 -0
  408. /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content-assets.mjs +0 -0
  409. /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/content-modules.mjs +0 -0
  410. /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/.astro/types.d.ts +0 -0
  411. /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/package.json +0 -0
  412. /package/examples/{dog-gallery → complete-sites/dog-shelter-multi-page}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
  413. /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
  414. /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/public/favicon.svg +0 -0
  415. /package/examples/{001-dog-shelter-single-page → complete-sites/dog-shelter-multi-page}/site/public/robots.txt +0 -0
  416. /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
  417. /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
  418. /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
  419. /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/content-assets.mjs +0 -0
  420. /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/content-modules.mjs +0 -0
  421. /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/.astro/types.d.ts +0 -0
  422. /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/node_modules/.vite/deps/package.json +0 -0
  423. /package/examples/{typography-presets → complete-sites/dog-shelter-single-page}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
  424. /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
  425. /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
  426. /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/public/favicon.svg +0 -0
  427. /package/examples/{002-dog-shelter-multi-page → complete-sites/dog-shelter-single-page}/site/public/robots.txt +0 -0
  428. /package/examples/{dog-gallery/dist → feature-demos/media-and-surfaces/site/public}/robots.txt +0 -0
  429. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-carousel.svg +0 -0
  430. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-stack.svg +0 -0
  431. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/cards/card-surfaces.svg +0 -0
  432. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-one.svg +0 -0
  433. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-three.svg +0 -0
  434. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/carousel/carousel-two.svg +0 -0
  435. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/stack/stack-one.svg +0 -0
  436. /package/examples/{presentation/site/routes/020-media → feature-demos/media-and-surfaces/site/routes/010-media}/images/stack/stack-two.svg +0 -0
  437. /package/examples/{dog-gallery → feature-demos/sitewide-content}/site/public/robots.txt +0 -0
  438. /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/collections/routeTheme.schema.json +0 -0
  439. /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/content.d.ts +0 -0
  440. /package/examples/{typography-presets → feature-demos/theme-presets}/.astro/settings.json +0 -0
  441. /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/_metadata.json +0 -0
  442. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
  443. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
  444. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
  445. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
  446. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
  447. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
  448. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
  449. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
  450. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
  451. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
  452. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
  453. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
  454. /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/embla-carousel.js +0 -0
  455. /package/examples/{typography-presets → feature-demos/theme-presets}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
  456. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
  457. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
  458. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
  459. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
  460. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
  461. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
  462. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
  463. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
  464. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
  465. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
  466. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
  467. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
  468. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
  469. /package/examples/{dog-gallery → feature-demos/theme-presets}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
  470. /package/examples/{typography-presets → feature-demos/theme-presets}/site/public/robots.txt +0 -0
  471. /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
  472. /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
  473. /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
  474. /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
  475. /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/black-pedigree.jpg +0 -0
  476. /package/examples/{typography-presets → feature-demos/theme-presets}/site/routes/040-statement/images/statement/sheepdog-wide.jpg +0 -0
@@ -1,38 +0,0 @@
1
- ---
2
- title: Dog care
3
- description: A small route for testing multi-page norna navigation.
4
- navigation:
5
- label: Dog care
6
- ---
7
-
8
- ## Daily rhythm {#daily-rhythm}
9
-
10
- Dogs often settle into a home when the day has a clear rhythm. Meals, walks,
11
- rest and play do not need to be dramatic events, but they become easier to
12
- understand when they happen in a predictable order.
13
-
14
- Short routines also make a media page easier to scan. This route exists mainly
15
- to test how page navigation and site navigation behave together.
16
-
17
- ### Morning checks
18
-
19
- This `###` heading tests route-level body subheadings.
20
-
21
- #### Quiet detail
22
-
23
- This `####` heading should stay smaller than the `###` above it.
24
-
25
- ## Calm training {#calm-training}
26
-
27
- Good training can be quiet. A short session with one clear task is often more
28
- useful than a long session with many competing signals.
29
-
30
- The same principle applies to navigation. The page should show where the visitor
31
- is in the site first, and then offer a simple way to jump within the current
32
- page.
33
-
34
- ## Media notes {#media-notes}
35
-
36
- This section is intentionally text-only. Image routes can be added later, but a
37
- first navigation test should make it easy to judge menus, active states and
38
- anchor positions without layout noise from new media.
@@ -1,16 +0,0 @@
1
- ---
2
- navigation:
3
- logo:
4
- alt: Dog Shelter
5
- height: 2.6rem
6
- footer:
7
- copyrightMessage: Dog images from Wikimedia Commons; see image captions for license details.
8
- buildInfo:
9
- enabled: true
10
- text: Built
11
- dateTimeFormat:
12
- locale: en-GB
13
- timeZone: UTC
14
- dateStyle: short
15
- timeStyle: short
16
- ---
@@ -1,101 +0,0 @@
1
- ---
2
- # norna:start theme-help
3
- # Site-wide visual defaults. Remove a value to use the engine default.
4
- # Active values below are ordinary YAML; this marked comment block is only help text.
5
- #
6
- # Available structure:
7
- # layout:
8
- # density: compact | normal | airy
9
- # pageWidth: CSS length, e.g. 2048px
10
- # gutter:
11
- # desktop: CSS length or clamp(), e.g. clamp(1.25rem, 4vw, 3rem)
12
- # mobile: CSS length, e.g. 16px
13
- # spacing:
14
- # firstSectionTop:
15
- # desktop: CSS length or clamp(), e.g. clamp(1.25rem, 2.5vw, 2rem)
16
- # mobile: CSS length, e.g. 1rem
17
- # sectionGap:
18
- # desktop: CSS length or clamp(), e.g. clamp(1.8rem, 3vw, 2.75rem)
19
- # mobile: CSS length, e.g. 1.65rem
20
- # gallery:
21
- # width: CSS length, e.g. 55vw
22
- # maxAvailableWidthPercent:
23
- # desktop: number from 1 through 100
24
- # mobile: number from 1 through 100
25
- # maxAvailableHeightPercent:
26
- # desktop: number from 1 through 100
27
- # mobile: number from 1 through 100
28
- # typography:
29
- # fontFamily: CSS font-family stack
30
- # preset: quiet-gallery | compact-gallery | text-forward | statement
31
- # rhythm: compact | normal | airy
32
- # overrides:
33
- # headings:
34
- # h2:
35
- # size: small | medium | large | xlarge
36
- # h3:
37
- # size: small | medium | large | xlarge
38
- # spacingBefore: CSS length, e.g. 1.2em
39
- # spacingAfter: CSS length, e.g. 0.45em
40
- # h4:
41
- # size: small | medium | large | xlarge
42
- # spacingBefore: CSS length, e.g. 0.9em
43
- # spacingAfter: CSS length, e.g. 0.35em
44
- # presentation:
45
- # palette: dark # Alternatives: light, paper
46
- # sectionSurfaces:
47
- # mode: none | cycle
48
- # sequence: [base, soft, emphasis]
49
- # norna:end theme-help
50
- layout:
51
- density: compact
52
- pageWidth: 2048px
53
- gutter:
54
- desktop: clamp(1.25rem, 4vw, 3rem)
55
- mobile: 16px
56
- spacing:
57
- firstSectionTop:
58
- desktop: clamp(1.25rem, 2.5vw, 2rem)
59
- mobile: 1rem
60
- sectionGap:
61
- desktop: clamp(1.8rem, 3vw, 2.75rem)
62
- mobile: 1.65rem
63
- finalSectionBottom:
64
- desktop: clamp(1.8rem, 3vw, 2.75rem)
65
- mobile: 1.65rem
66
- headingToBlock:
67
- desktop: 0.65em
68
- mobile: 0.6em
69
- blockGap:
70
- desktop: 1.25em
71
- mobile: 1.1em
72
- imageGap:
73
- desktop: clamp(1.25rem, 2.8vw, 2rem)
74
- mobile: 1.8rem
75
- gallery:
76
- width: 55vw
77
- maxAvailableWidthPercent:
78
- desktop: 100
79
- mobile: 100
80
- maxAvailableHeightPercent:
81
- desktop: 74
82
- mobile: 68
83
- typography:
84
- fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
85
- preset: quiet-gallery
86
- rhythm: compact
87
- overrides:
88
- headings:
89
- h3:
90
- size: medium
91
- spacingBefore: 1.2em
92
- spacingAfter: 0.45em
93
- h4:
94
- size: small
95
- spacingBefore: 0.9em
96
- spacingAfter: 0.35em
97
- presentation:
98
- palette: dark # Alternatives: light, paper
99
- sectionSurfaces:
100
- mode: cycle
101
- ---
@@ -1,15 +0,0 @@
1
- # Norna visual model example
2
-
3
- This example is a visual test bench for Norna's presentation features.
4
-
5
- It shows established typography presets and managed media blocks alongside the
6
- palette and section-surface model. The SVG files are hand-authored local assets
7
- so the example does not depend on external images.
8
-
9
- Run it from the repository root with:
10
-
11
- ```sh
12
- node bin/norna.mjs --site-dir examples/presentation/site dev:local
13
- ```
14
-
15
- The site has a home page plus routes for presets, media blocks and surfaces.
@@ -1,29 +0,0 @@
1
- const siteUrl = 'http://localhost:4321/';
2
-
3
- export default {
4
- site: {
5
- url: siteUrl,
6
- basePath: '/',
7
- },
8
- navigation: {
9
- smoothScroll: {
10
- enabled: true,
11
- minimumDurationMs: 2_000,
12
- maximumDurationMs: 4_000,
13
- durationPerPixelMs: 0.22,
14
- },
15
- },
16
- locale: {
17
- lang: 'en',
18
- labels: {
19
- skipToContent: 'Skip to content',
20
- sectionNavigation: 'Sections',
21
- gallery: 'Images',
22
- },
23
- },
24
- github: {
25
- repo: 'owner/norna-visual-model-example',
26
- branch: 'main',
27
- pagesWorkflow: 'Deploy to GitHub Pages',
28
- },
29
- };
@@ -1,67 +0,0 @@
1
- ---
2
- title: Visual Model
3
- description: A visual test bench for Norna's established and new presentation features.
4
- navigation:
5
- label: Home
6
- ---
7
-
8
- ## Norna's visual model {#intro}
9
-
10
- This site is a small test bench for Norna's graphical possibilities. It shows
11
- the features that have been part of the site model for some time, together with
12
- the newer palette and section-surface controls.
13
-
14
- The examples are deliberately ordinary Norna files: a theme chooses the site's
15
- visual defaults, routes can use their own complete themes, and Markdown blocks
16
- place managed media in the content flow.
17
-
18
- ## New: palettes and surfaces {#palette}
19
-
20
- The palette is a small, named choice rather than a collection of unrelated
21
- colours. The site theme selects one of the built-in palettes:
22
-
23
- ```yaml
24
- presentation:
25
- palette: paper
26
- ```
27
-
28
- The palette supplies the page, navigation and frame colours. A site can also
29
- cycle through base, soft and emphasis section surfaces:
30
-
31
- ```yaml
32
- presentation:
33
- sectionSurfaces:
34
- mode: cycle
35
- sequence: [base, soft, emphasis]
36
- ```
37
-
38
- This keeps the visual rhythm consistent without asking each section to invent
39
- its own colours.
40
-
41
- ## New: explicit section surfaces {#surfaces}
42
-
43
- This page uses the theme's surface sequence. `palette` is the visual family;
44
- `sectionSurfaces` chooses a bounded sequence of base, soft and emphasis
45
- treatments for the page.
46
-
47
- The result is a restrained change in background and text treatment, while the
48
- same typography and content model remain in place.
49
-
50
- ## Established features {#established}
51
-
52
- Typography presets, managed image stacks, carousels and card lists remain the
53
- main building blocks for shaping a small site. They are shown in detail on the
54
- routes in this example.
55
-
56
- The important distinction is that these controls are named and bounded. They
57
- provide useful visual variation without turning every page into a new template
58
- or CSS project.
59
-
60
- ## Explore the examples {#next}
61
-
62
- Read [Presets](/presets/) to compare the four typography presets.
63
-
64
- Read [Media blocks](/media/) to compare image stacks, carousels and card lists.
65
-
66
- Read [Surfaces](/surfaces/) for the relationship between palette defaults and
67
- theme-level surface choices.
@@ -1,2 +0,0 @@
1
- User-agent: *
2
- Allow: /
@@ -1,63 +0,0 @@
1
- ---
2
- title: Presets
3
- description: Compare Norna's built-in typography presets.
4
- navigation:
5
- label: Presets
6
- ---
7
-
8
- ## Quiet Gallery {#quiet-gallery}
9
-
10
- This route uses the `quiet-gallery` preset. It keeps headings and body text
11
- restrained so images or other visual material can carry more of the page.
12
-
13
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a
14
- ante venenatis dapibus posuere velit aliquet. This is useful for portfolios,
15
- image-led presentations and pages where captions matter more than long prose.
16
-
17
- ### Typical use
18
-
19
- Choose this preset when the page should feel calm and the visual material should
20
- remain the primary signal.
21
-
22
- ## Compact Gallery {#compact-gallery}
23
-
24
- This section uses `compact-gallery`. It keeps the same broad model but fits more
25
- short sections and image-led content into a smaller vertical rhythm.
26
-
27
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacinia bibendum
28
- nulla sed consectetur. This is useful when visitors need to scan many compact
29
- items without losing the overall structure of the page.
30
-
31
- ### Typical use
32
-
33
- Choose this preset for a dense overview, catalogue or small collection of
34
- related items.
35
-
36
- ## Text Forward {#text-forward}
37
-
38
- This section uses `text-forward`. It gives explanatory writing more presence
39
- while retaining the same Norna section structure.
40
-
41
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere consectetur
42
- est at lobortis. Cras mattis consectetur purus sit amet fermentum. This is
43
- useful for guides, project explanations and documentation with only occasional
44
- images.
45
-
46
- ### Typical use
47
-
48
- Choose this preset when the reader should spend more time with the text than
49
- with a gallery.
50
-
51
- ## Statement {#statement}
52
-
53
- This section uses `statement`. It gives short, declarative content a stronger
54
- visual voice.
55
-
56
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id elit non mi
57
- porta gravida at eget metus. Use it sparingly when a section needs emphasis,
58
- contrast or a more direct editorial tone.
59
-
60
- ### Typical use
61
-
62
- Choose this preset for an introduction, a short point of view or a deliberately
63
- strong transition between quieter sections.
@@ -1,4 +0,0 @@
1
- ---
2
- typography:
3
- preset: quiet-gallery
4
- ---
@@ -1,4 +0,0 @@
1
- ---
2
- typography:
3
- preset: compact-gallery
4
- ---
@@ -1,6 +0,0 @@
1
- ---
2
- navigation:
3
- brand: Visual Model
4
- footer:
5
- copyrightMessage: Norna visual model example.
6
- ---
@@ -1,43 +0,0 @@
1
- ---
2
- layout:
3
- density: normal
4
- pageWidth: 1240px
5
- gutter:
6
- desktop: clamp(1.25rem, 4vw, 3rem)
7
- mobile: 1rem
8
- spacing:
9
- firstSectionTop:
10
- desktop: clamp(1.5rem, 3vw, 2.5rem)
11
- mobile: 1rem
12
- sectionGap:
13
- desktop: clamp(2rem, 4vw, 3.5rem)
14
- mobile: 2rem
15
- finalSectionBottom:
16
- desktop: clamp(2rem, 4vw, 3.5rem)
17
- mobile: 2rem
18
- headingToBlock:
19
- desktop: 0.75em
20
- mobile: 0.7em
21
- blockGap:
22
- desktop: 1.5em
23
- mobile: 1.25em
24
- imageGap:
25
- desktop: clamp(1.25rem, 3vw, 2.25rem)
26
- mobile: 1.5rem
27
- gallery:
28
- width: 960px
29
- maxAvailableWidthPercent:
30
- desktop: 100
31
- mobile: 100
32
- maxAvailableHeightPercent:
33
- desktop: 72
34
- mobile: 68
35
- typography:
36
- fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
37
- preset: text-forward
38
- rhythm: normal
39
- presentation:
40
- palette: paper # Alternatives: dark, light
41
- sectionSurfaces:
42
- mode: cycle
43
- ---
@@ -1,45 +0,0 @@
1
- 21:41:39 [vite] connected.
2
- 21:41:40 [types] Generated 1ms
3
- 21:41:40 [vite] connected.
4
- 21:41:40 [content] Syncing content
5
- 21:41:40 [content] Content config changed
6
- 21:41:40 [content] Clearing content store
7
- [Shiki] The language "norna-image-stack" doesn't exist, falling back to "plaintext".
8
- [Shiki] The language "norna-image-stack" doesn't exist, falling back to "plaintext".
9
- [Shiki] The language "norna-image-stack" doesn't exist, falling back to "plaintext".
10
- [Shiki] The language "norna-image-stack" doesn't exist, falling back to "plaintext".
11
- 21:41:40 [content] Synced content
12
- astro v7.1.3 ready in 1280 ms
13
- ┃ Local http://localhost:4321/
14
- ┃ Network http://192.168.1.102:4321/
15
- 21:41:40 watching for file changes...
16
- 21:41:41 [200] / 52ms
17
- 21:41:41 [200] / 10ms
18
- 21:41:41 [200] / 7ms
19
- 21:41:52 [200] /quiet-gallery/ 24ms
20
- 21:41:53 [200] /compact-gallery/ 11ms
21
- 21:41:54 [200] /text-forward/ 10ms
22
- 21:41:55 [200] /statement/ 9ms
23
- 21:42:03 [200] / 10ms
24
- 21:42:53 [200] /quiet-gallery/ 10ms
25
- 21:43:00 [200] /compact-gallery/ 9ms
26
- 21:43:24 [200] /statement/ 9ms
27
- 21:43:26 [WARN] [router] A `getStaticPaths()` route pattern was matched, but no matching static path was found for requested path `/presets/`.
28
-
29
- Possible dynamic routes being matched: ../../src/pages/[slug].astro.
30
- 21:43:26 [404] /presets/ 2ms
31
- 21:43:28 [WARN] [router] A `getStaticPaths()` route pattern was matched, but no matching static path was found for requested path `/presets/`.
32
-
33
- Possible dynamic routes being matched: ../../src/pages/[slug].astro.
34
- 21:43:28 [404] /presets/ 1ms
35
- 21:43:32 [200] / 6ms
36
- 21:43:42 [404] /norna/links/ 1ms
37
- 21:45:40 [200] /quiet-gallery/ 12ms
38
- 21:45:44 [200] / 9ms
39
- 21:45:47 [200] /quiet-gallery/ 9ms
40
- 21:45:48 [200] /compact-gallery/ 9ms
41
- 21:45:50 [200] / 8ms
42
- 21:45:52 [200] /quiet-gallery/ 8ms
43
- 21:45:54 [200] /compact-gallery/ 9ms
44
- 21:45:57 [200] /text-forward/ 9ms
45
- 21:45:58 [200] /statement/ 9ms
@@ -1 +0,0 @@
1
- {"version":3,"file":"astro-D_GIpJIE.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"}