@janga/norna 0.7.16 → 0.7.18

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 (342) hide show
  1. package/README.md +18 -9
  2. package/astro.config.mjs +35 -3
  3. package/bin/norna-cli.mjs +1 -1
  4. package/docs/README.md +16 -14
  5. package/docs/commands.md +2 -2
  6. package/docs/configuration.md +25 -2
  7. package/docs/content.md +92 -103
  8. package/docs/design/navigation-and-theme-plan.md +186 -0
  9. package/docs/design/norna-diagram-design.md +9 -9
  10. package/docs/design/site-examples-structure.md +15 -11
  11. package/docs/engine-development.md +19 -22
  12. package/docs/getting-started.md +21 -16
  13. package/docs/images-and-metadata.md +12 -9
  14. package/docs/pages.md +190 -0
  15. package/docs/public-files.md +49 -36
  16. package/docs/publishing.md +19 -3
  17. package/docs/site-files.md +46 -38
  18. package/docs/sitewide-content.md +20 -36
  19. package/docs/theme.md +109 -143
  20. package/docs/typography.md +19 -31
  21. package/examples/README.md +10 -4
  22. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +17 -41
  23. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +26 -67
  24. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +185 -88
  25. package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +1 -1
  26. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev-local.json +4 -4
  27. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +5 -5
  28. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +33 -23
  29. package/examples/complete-sites/dog-shelter-multi-page/README.md +1 -1
  30. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +8 -8
  31. package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +20 -20
  32. package/examples/complete-sites/dog-shelter-multi-page/site/{content.md → pages/000-home/content.md} +3 -4
  33. package/examples/complete-sites/dog-shelter-multi-page/site/{routes → pages}/010-dogs/content.md +3 -4
  34. package/examples/complete-sites/dog-shelter-multi-page/site/{routes → pages}/020-adopt/content.md +3 -4
  35. package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.yaml +2 -4
  36. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +17 -41
  37. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +26 -67
  38. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +185 -88
  39. package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +1 -1
  40. package/examples/complete-sites/dog-shelter-single-page/.astro/dev-local.json +8 -0
  41. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +5 -5
  42. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +16 -12
  43. package/examples/complete-sites/dog-shelter-single-page/README.md +1 -1
  44. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +8 -8
  45. package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +12 -12
  46. package/examples/complete-sites/dog-shelter-single-page/site/{content.md → pages/000-home/content.md} +5 -2
  47. package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.yaml +2 -4
  48. package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +17 -41
  49. package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +26 -67
  50. package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +180 -91
  51. package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +1 -1
  52. package/examples/feature-demos/media-and-surfaces/.astro/dev.log +4 -14
  53. package/examples/feature-demos/media-and-surfaces/README.md +2 -2
  54. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +9 -9
  55. package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +16 -16
  56. package/examples/feature-demos/media-and-surfaces/site/{content.md → pages/000-home/content.md} +4 -7
  57. package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/010-media/content.md +6 -5
  58. package/examples/feature-demos/media-and-surfaces/site/{routes → pages}/020-surfaces/content.md +9 -7
  59. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/theme.yaml +2 -0
  60. package/examples/feature-demos/media-and-surfaces/site/sitewide-content.yaml +0 -2
  61. package/examples/feature-demos/sitewide-content/README.md +3 -3
  62. package/examples/feature-demos/sitewide-content/site/pages/000-home/content.md +17 -0
  63. package/examples/feature-demos/sitewide-content/site/pages/010-logo-and-navigation/content.md +17 -0
  64. package/examples/feature-demos/sitewide-content/site/{routes → pages}/020-notices/content.md +7 -6
  65. package/examples/feature-demos/sitewide-content/site/{routes → pages}/030-footer/content.md +6 -5
  66. package/examples/feature-demos/sitewide-content/site/sitewide-content.yaml +4 -13
  67. package/examples/feature-demos/theme-preset-documentation/README.md +16 -0
  68. package/examples/feature-demos/theme-preset-documentation/site/.norna/generated-images.json +74 -0
  69. package/examples/feature-demos/{theme-presets/site/routes/020-documentation → theme-preset-documentation/site/pages/000-home}/content.md +4 -7
  70. package/examples/feature-demos/theme-preset-documentation/site/sitewide-content.yaml +3 -0
  71. package/examples/feature-demos/theme-preset-portfolio/README.md +16 -0
  72. package/examples/feature-demos/theme-preset-portfolio/site/.norna/generated-images.json +74 -0
  73. package/examples/feature-demos/theme-preset-portfolio/site/config.yaml +1 -0
  74. package/examples/feature-demos/{theme-presets/site/routes/010-portfolio → theme-preset-portfolio/site/pages/000-home}/content.md +4 -7
  75. package/examples/feature-demos/theme-preset-portfolio/site/public/robots.txt +2 -0
  76. package/examples/feature-demos/theme-preset-portfolio/site/sitewide-content.yaml +3 -0
  77. package/examples/feature-demos/theme-preset-project/README.md +16 -0
  78. package/examples/feature-demos/theme-preset-project/site/.norna/generated-images.json +74 -0
  79. package/examples/feature-demos/theme-preset-project/site/config.yaml +1 -0
  80. package/examples/feature-demos/{theme-presets/site/routes/030-project → theme-preset-project/site/pages/000-home}/content.md +4 -7
  81. package/examples/feature-demos/theme-preset-project/site/public/robots.txt +2 -0
  82. package/examples/feature-demos/theme-preset-project/site/sitewide-content.yaml +3 -0
  83. package/examples/feature-demos/theme-preset-statement/README.md +16 -0
  84. package/examples/feature-demos/theme-preset-statement/site/.norna/generated-images.json +74 -0
  85. package/examples/feature-demos/theme-preset-statement/site/config.yaml +1 -0
  86. package/examples/feature-demos/{theme-presets/site/routes/040-statement → theme-preset-statement/site/pages/000-home}/content.md +4 -7
  87. package/examples/feature-demos/theme-preset-statement/site/public/robots.txt +2 -0
  88. package/examples/feature-demos/theme-preset-statement/site/sitewide-content.yaml +3 -0
  89. package/fixtures/basic/site/{content.md → pages/000-home/content.md} +5 -6
  90. package/fixtures/basic/site/sitewide-content.yaml +1 -8
  91. package/fixtures/basic/site/theme.yaml +1 -8
  92. package/fixtures/content-model-v2/site/{content.md → pages/000-home/content.md} +11 -13
  93. package/fixtures/content-model-v2/site/pages/010-guide/content.md +18 -0
  94. package/fixtures/nested-pages/.astro/collections/site.schema.json +35 -0
  95. package/fixtures/nested-pages/.astro/collections/sitewide.schema.json +97 -0
  96. package/fixtures/nested-pages/.astro/collections/theme.schema.json +844 -0
  97. package/fixtures/nested-pages/.astro/content-assets.mjs +4 -0
  98. package/fixtures/nested-pages/.astro/content-modules.mjs +1 -0
  99. package/fixtures/nested-pages/.astro/content.d.ts +183 -0
  100. package/fixtures/nested-pages/.astro/data-store.json +1 -0
  101. package/fixtures/nested-pages/.astro/dev-local.json +8 -0
  102. package/fixtures/nested-pages/.astro/dev.log +1128 -0
  103. package/fixtures/nested-pages/.astro/settings.json +5 -0
  104. package/fixtures/nested-pages/.astro/types.d.ts +2 -0
  105. package/fixtures/nested-pages/node_modules/.vite/deps/_metadata.json +74 -0
  106. package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js +434 -0
  107. package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js.map +1 -0
  108. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
  109. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
  110. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
  111. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
  112. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
  113. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
  114. package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
  115. package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
  116. package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js +1534 -0
  117. package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +1 -0
  118. package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js +48 -0
  119. package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +1 -0
  120. package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js +42 -0
  121. package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js.map +1 -0
  122. package/fixtures/nested-pages/node_modules/.vite/deps/package.json +3 -0
  123. package/fixtures/nested-pages/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
  124. package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js +190 -0
  125. package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js.map +1 -0
  126. package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js +458 -0
  127. package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js.map +1 -0
  128. package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js +1016 -0
  129. package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +1 -0
  130. package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js +32 -0
  131. package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js.map +1 -0
  132. package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js +111 -0
  133. package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js.map +1 -0
  134. package/fixtures/nested-pages/site/.norna/generated-images.json +10 -0
  135. package/fixtures/nested-pages/site/config.yaml +3 -0
  136. package/fixtures/nested-pages/site/pages/000-home/content.md +15 -0
  137. package/fixtures/nested-pages/site/pages/010-guides/content.md +15 -0
  138. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/content.md +21 -0
  139. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/images/diagram.svg +21 -0
  140. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +18 -0
  141. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/theme.yaml +2 -0
  142. package/fixtures/nested-pages/site/pages/010-guides/pages/020-workflows/content.md +11 -0
  143. package/fixtures/nested-pages/site/pages/010-guides/pages/030-release-notes/content.md +9 -0
  144. package/fixtures/nested-pages/site/pages/010-guides/pages/040-configuration/content.md +3 -0
  145. package/fixtures/nested-pages/site/pages/010-guides/pages/050-content/content.md +3 -0
  146. package/fixtures/nested-pages/site/pages/010-guides/pages/060-themes/content.md +3 -0
  147. package/fixtures/nested-pages/site/pages/010-guides/pages/070-images/content.md +3 -0
  148. package/fixtures/nested-pages/site/pages/010-guides/pages/080-cards/content.md +3 -0
  149. package/fixtures/nested-pages/site/pages/010-guides/pages/090-notes/content.md +3 -0
  150. package/fixtures/nested-pages/site/pages/010-guides/pages/100-validation/content.md +3 -0
  151. package/fixtures/nested-pages/site/pages/010-guides/pages/110-synchronization/content.md +3 -0
  152. package/fixtures/nested-pages/site/pages/010-guides/pages/120-building/content.md +3 -0
  153. package/fixtures/nested-pages/site/pages/010-guides/pages/130-publishing/content.md +3 -0
  154. package/fixtures/nested-pages/site/pages/010-guides/pages/140-troubleshooting/content.md +3 -0
  155. package/fixtures/nested-pages/site/pages/010-guides/pages/150-migration/content.md +3 -0
  156. package/fixtures/nested-pages/site/pages/010-guides/pages/160-accessibility/content.md +3 -0
  157. package/fixtures/nested-pages/site/pages/010-guides/pages/170-performance/content.md +3 -0
  158. package/fixtures/nested-pages/site/pages/010-guides/pages/180-security/content.md +3 -0
  159. package/fixtures/nested-pages/site/pages/010-guides/pages/190-localization/content.md +3 -0
  160. package/fixtures/nested-pages/site/pages/010-guides/pages/200-upgrading/content.md +3 -0
  161. package/fixtures/nested-pages/site/pages/010-guides/pages/210-faq/content.md +3 -0
  162. package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +7 -0
  163. package/fixtures/nested-pages/site/pages/020-reference/content.md +10 -0
  164. package/fixtures/nested-pages/site/pages/020-reference/pages/010-installation/content.md +11 -0
  165. package/fixtures/nested-pages/site/theme.yaml +1 -0
  166. package/package.json +8 -4
  167. package/schemas/config.schema.json +46 -5
  168. package/schemas/content-frontmatter.schema.json +28 -63
  169. package/schemas/manifest.json +4 -2
  170. package/schemas/page-theme.schema.json +192 -0
  171. package/schemas/sitewide-content.schema.json +58 -132
  172. package/schemas/theme.schema.json +434 -152
  173. package/scripts/check-config.mjs +8 -6
  174. package/scripts/deploy-site.mjs +6 -8
  175. package/scripts/doctor.mjs +2 -2
  176. package/scripts/generate-images.mjs +15 -29
  177. package/scripts/generate-schemas.mjs +7 -218
  178. package/scripts/lib/base-path-redirect.mjs +9 -0
  179. package/scripts/lib/editor-language-service.mjs +125 -79
  180. package/scripts/lib/example-sites.mjs +15 -3
  181. package/scripts/lib/heading-ids.mjs +161 -0
  182. package/scripts/lib/navigation-model.mjs +51 -0
  183. package/scripts/lib/norna-markdown-blocks.mjs +3 -4
  184. package/scripts/lib/page-model.mjs +102 -0
  185. package/scripts/lib/presentation.mjs +25 -17
  186. package/scripts/lib/project-config.mjs +46 -8
  187. package/scripts/lib/schema-definitions.mjs +78 -55
  188. package/scripts/lib/schema-editor-metadata.mjs +519 -0
  189. package/scripts/lib/schema-value-definitions.mjs +20 -6
  190. package/scripts/lib/site-content.mjs +159 -97
  191. package/scripts/lib/site-conventions.mjs +1 -0
  192. package/scripts/lib/site-paths.mjs +11 -5
  193. package/scripts/lib/theme-config.mjs +12 -18
  194. package/scripts/lib/theme-presets.mjs +55 -14
  195. package/scripts/release.mjs +1 -1
  196. package/scripts/show-typography.mjs +4 -30
  197. package/scripts/sync-content-sections.mjs +107 -68
  198. package/scripts/{test-temporary-visibility.mjs → test-banner-visibility.mjs} +8 -25
  199. package/scripts/test-client-javascript.mjs +50 -46
  200. package/scripts/test-content-check.mjs +153 -69
  201. package/scripts/test-content-model-v2.mjs +566 -285
  202. package/scripts/test-documentation.mjs +10 -3
  203. package/scripts/test-editor-language-service.mjs +172 -25
  204. package/scripts/test-engine-commands.mjs +6 -5
  205. package/scripts/test-examples.mjs +30 -1
  206. package/scripts/test-heading-ids.mjs +68 -0
  207. package/scripts/test-navigation-model.mjs +63 -0
  208. package/scripts/test-navigation.mjs +11 -2
  209. package/scripts/test-nested-pages.mjs +125 -0
  210. package/scripts/test-package-check.mjs +55 -95
  211. package/scripts/test-page-model.mjs +108 -0
  212. package/scripts/test-project-config.mjs +22 -3
  213. package/scripts/test-schemas.mjs +82 -15
  214. package/scripts/test-theme-presets.mjs +57 -42
  215. package/src/components/NavigationPageTree.astro +157 -0
  216. package/src/components/PageContentsLinks.astro +40 -0
  217. package/src/components/SectionNavigationScript.astro +117 -5
  218. package/src/components/SiteBreadcrumbs.astro +32 -0
  219. package/src/components/SiteNavigation.astro +97 -68
  220. package/src/components/SitePage.astro +93 -55
  221. package/src/components/SiteSection.astro +29 -27
  222. package/src/components/SiteTreeNavigation.astro +35 -0
  223. package/src/components/TreeNavigationScript.astro +83 -0
  224. package/src/content.config.ts +8 -10
  225. package/src/layouts/BaseLayout.astro +21 -20
  226. package/src/lib/pageThemes.ts +44 -0
  227. package/src/lib/sectionContent.ts +106 -107
  228. package/src/lib/siteNavigation.ts +49 -0
  229. package/src/lib/sitePages.ts +96 -38
  230. package/src/pages/{[slug].astro → [...slug].astro} +2 -2
  231. package/src/pages/index.astro +2 -1
  232. package/src/styles/global.css +743 -57
  233. package/starters/basic/README.md +9 -11
  234. package/starters/basic/site/{content.md → pages/000-home/content.md} +7 -4
  235. package/starters/basic/site/sitewide-content.yaml +1 -10
  236. package/starters/basic/site/theme.yaml +1 -105
  237. package/starters/project/README.md +14 -14
  238. package/starters/project/site/{content.md → pages/000-home/content.md} +5 -4
  239. package/starters/project/site/{routes → pages}/010-guide/content.md +5 -4
  240. package/starters/project/site/sitewide-content.yaml +1 -10
  241. package/starters/project/site/theme.yaml +1 -31
  242. package/docs/routes.md +0 -121
  243. package/examples/feature-demos/media-and-surfaces/site/routes/020-surfaces/theme.yaml +0 -3
  244. package/examples/feature-demos/sitewide-content/site/content.md +0 -16
  245. package/examples/feature-demos/sitewide-content/site/routes/010-identity/content.md +0 -20
  246. package/examples/feature-demos/theme-presets/README.md +0 -18
  247. package/examples/feature-demos/theme-presets/site/.norna/generated-images.json +0 -290
  248. package/examples/feature-demos/theme-presets/site/content.md +0 -17
  249. package/examples/feature-demos/theme-presets/site/sitewide-content.yaml +0 -12
  250. package/examples/feature-demos/theme-presets/site/theme.yaml +0 -1
  251. package/fixtures/content-model-v2/site/routes/010-guide/content.md +0 -17
  252. package/scripts/lib/route-model.mjs +0 -17
  253. package/scripts/test-route-model.mjs +0 -32
  254. package/src/lib/routeThemes.ts +0 -41
  255. /package/examples/complete-sites/dog-shelter-multi-page/site/{images/intro → pages/000-home/images}/shelter-dog.jpg +0 -0
  256. /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/010-dogs/images/dogs → pages/010-dogs/images}/rex.jpg +0 -0
  257. /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/010-dogs/images/dogs → pages/010-dogs/images}/rover.jpg +0 -0
  258. /package/examples/complete-sites/dog-shelter-multi-page/site/{routes/020-adopt/images/adopt → pages/020-adopt/images}/adoption-dog.jpg +0 -0
  259. /package/examples/complete-sites/dog-shelter-single-page/site/{images/you-can-help → pages/000-home/images}/foster-dog.jpg +0 -0
  260. /package/examples/complete-sites/dog-shelter-single-page/site/{images/what-we-do → pages/000-home/images}/rescue-dog.jpg +0 -0
  261. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-carousel.svg +0 -0
  262. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-stack.svg +0 -0
  263. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/cards → pages/010-media/images}/card-surfaces.svg +0 -0
  264. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-one.svg +0 -0
  265. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-three.svg +0 -0
  266. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/carousel → pages/010-media/images}/carousel-two.svg +0 -0
  267. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/stack → pages/010-media/images}/stack-one.svg +0 -0
  268. /package/examples/feature-demos/media-and-surfaces/site/{routes/010-media/images/stack → pages/010-media/images}/stack-two.svg +0 -0
  269. /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/config.yaml +0 -0
  270. /package/examples/feature-demos/{theme-presets/site/routes/020-documentation/images/documentation → theme-preset-documentation/site/pages/000-home/images}/black-schnauzer.jpg +0 -0
  271. /package/examples/feature-demos/{theme-presets/site/routes/020-documentation/images/documentation → theme-preset-documentation/site/pages/000-home/images}/retriever-portrait.jpg +0 -0
  272. /package/examples/feature-demos/{theme-presets/site/routes/020-documentation/images/documentation → theme-preset-documentation/site/pages/000-home/images}/schnauzer-portrait.jpg +0 -0
  273. /package/examples/feature-demos/{theme-presets → theme-preset-documentation}/site/public/robots.txt +0 -0
  274. /package/examples/feature-demos/{theme-presets/site/routes/020-documentation → theme-preset-documentation/site}/theme.yaml +0 -0
  275. /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio/images/portfolio → theme-preset-portfolio/site/pages/000-home/images}/puppy-portrait.jpg +0 -0
  276. /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio/images/portfolio → theme-preset-portfolio/site/pages/000-home/images}/shepherd-portrait.jpg +0 -0
  277. /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio/images/portfolio → theme-preset-portfolio/site/pages/000-home/images}/white-puppy.jpg +0 -0
  278. /package/examples/feature-demos/{theme-presets/site/routes/010-portfolio → theme-preset-portfolio/site}/theme.yaml +0 -0
  279. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/routeTheme.schema.json +0 -0
  280. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/site.schema.json +0 -0
  281. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/sitewide.schema.json +0 -0
  282. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/collections/theme.schema.json +0 -0
  283. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content-assets.mjs +0 -0
  284. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content-modules.mjs +0 -0
  285. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/content.d.ts +0 -0
  286. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/data-store.json +0 -0
  287. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev-local.json +0 -0
  288. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev.json +0 -0
  289. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/dev.log +0 -0
  290. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/settings.json +0 -0
  291. /package/examples/feature-demos/{theme-presets → theme-preset-project}/.astro/types.d.ts +0 -0
  292. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/_metadata.json +0 -0
  293. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -0
  294. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -0
  295. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_aria-query.js +0 -0
  296. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -0
  297. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_axobject-query.js +0 -0
  298. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -0
  299. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_html-escaper.js +0 -0
  300. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -0
  301. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -0
  302. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -0
  303. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -0
  304. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -0
  305. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/embla-carousel.js +0 -0
  306. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/embla-carousel.js.map +0 -0
  307. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -0
  308. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -0
  309. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/icons-RyebKi45.js +0 -0
  310. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -0
  311. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/package.json +0 -0
  312. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -0
  313. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -0
  314. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -0
  315. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/toolbar-63PA619H.js +0 -0
  316. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -0
  317. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -0
  318. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -0
  319. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/window-jPkpKVcy.js +0 -0
  320. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -0
  321. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -0
  322. /package/examples/feature-demos/{theme-presets → theme-preset-project}/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -0
  323. /package/examples/feature-demos/{theme-presets/site/routes/030-project/images/project → theme-preset-project/site/pages/000-home/images}/boxer-portrait.jpg +0 -0
  324. /package/examples/feature-demos/{theme-presets/site/routes/030-project/images/project → theme-preset-project/site/pages/000-home/images}/grass-puppy.jpg +0 -0
  325. /package/examples/feature-demos/{theme-presets/site/routes/030-project/images/project → theme-preset-project/site/pages/000-home/images}/grey-street-dog.jpg +0 -0
  326. /package/examples/feature-demos/{theme-presets/site/routes/030-project → theme-preset-project/site}/theme.yaml +0 -0
  327. /package/examples/feature-demos/{theme-presets/site/routes/040-statement/images/statement → theme-preset-statement/site/pages/000-home/images}/black-pedigree.jpg +0 -0
  328. /package/examples/feature-demos/{theme-presets/site/routes/040-statement/images/statement → theme-preset-statement/site/pages/000-home/images}/sheepdog-grass.jpg +0 -0
  329. /package/examples/feature-demos/{theme-presets/site/routes/040-statement/images/statement → theme-preset-statement/site/pages/000-home/images}/sheepdog-wide.jpg +0 -0
  330. /package/examples/feature-demos/{theme-presets/site/routes/040-statement → theme-preset-statement/site}/theme.yaml +0 -0
  331. /package/fixtures/basic/site/{images/work → pages/000-home/images}/.gitkeep +0 -0
  332. /package/fixtures/content-model-v2/site/{images/card-section → pages/000-home/images}/adopt.svg +0 -0
  333. /package/fixtures/content-model-v2/site/{images/intro → pages/000-home/images}/detail.jpg +0 -0
  334. /package/fixtures/content-model-v2/site/{images/intro → pages/000-home/images}/duplicate.jpg +0 -0
  335. /package/fixtures/content-model-v2/site/{images/card-section → pages/000-home/images}/foster.svg +0 -0
  336. /package/fixtures/content-model-v2/site/{images/intro → pages/000-home/images}/hero.jpg +0 -0
  337. /package/fixtures/content-model-v2/site/{images/plain → pages/000-home/images}/image.jpg +0 -0
  338. /package/fixtures/content-model-v2/site/{images/timed → pages/000-home/images}/slide-one.jpg +0 -0
  339. /package/fixtures/content-model-v2/site/{images/timed → pages/000-home/images}/slide-three.jpg +0 -0
  340. /package/fixtures/content-model-v2/site/{images/timed → pages/000-home/images}/slide-two.jpg +0 -0
  341. /package/fixtures/content-model-v2/site/{routes/010-guide/images/intro → pages/010-guide/images}/duplicate.jpg +0 -0
  342. /package/starters/basic/site/{images/work → pages/000-home/images}/.gitkeep +0 -0
@@ -0,0 +1,1016 @@
1
+ import { n as DevToolbarWindow, t as settings } from "./astro_runtime_client_dev-toolbar_entrypoint__js.js";
2
+ import { n as isDefinedIcon, t as getIconElement } from "./icons-RyebKi45.js";
3
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/badge.js
4
+ var sizes$1 = ["small", "large"];
5
+ var styles$6 = [
6
+ "purple",
7
+ "gray",
8
+ "red",
9
+ "green",
10
+ "yellow",
11
+ "blue"
12
+ ];
13
+ var DevToolbarBadge = class extends HTMLElement {
14
+ _size = "small";
15
+ _badgeStyle = "purple";
16
+ get size() {
17
+ return this._size;
18
+ }
19
+ set size(value) {
20
+ if (!sizes$1.includes(value)) {
21
+ settings.logger.error(`Invalid size: ${value}, expected one of ${sizes$1.join(", ")}, got ${value}.`);
22
+ return;
23
+ }
24
+ this._size = value;
25
+ this.updateStyle();
26
+ }
27
+ get badgeStyle() {
28
+ return this._badgeStyle;
29
+ }
30
+ set badgeStyle(value) {
31
+ if (!styles$6.includes(value)) {
32
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$6.join(", ")}, got ${value}.`);
33
+ return;
34
+ }
35
+ this._badgeStyle = value;
36
+ this.updateStyle();
37
+ }
38
+ shadowRoot;
39
+ static observedAttributes = ["badge-style", "size"];
40
+ constructor() {
41
+ super();
42
+ this.shadowRoot = this.attachShadow({ mode: "open" });
43
+ this.shadowRoot.innerHTML = `
44
+ <style>
45
+ .badge {
46
+ box-sizing: border-box;
47
+ border-radius: 4px;
48
+ border: 1px solid transparent;
49
+ padding: 8px;
50
+ font-size: 12px;
51
+ color: var(--text-color);
52
+ height: var(--size);
53
+ border: 1px solid var(--border-color);
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
58
+
59
+ --purple-text: rgba(224, 204, 250, 1);
60
+ --purple-border: rgba(113, 24, 226, 1);
61
+
62
+ --gray-text: rgba(191, 193, 201, 1);
63
+ --gray-border:rgba(191, 193, 201, 1);
64
+
65
+ --red-text: rgba(249, 196, 215, 1);
66
+ --red-border: rgba(179, 62, 102, 1);
67
+
68
+ --green-text: rgba(213, 249, 196, 1);
69
+ --green-border: rgba(61, 125, 31, 1);
70
+
71
+ --yellow-text: rgba(249, 233, 196, 1);
72
+ --yellow-border: rgba(181, 138, 45, 1);
73
+
74
+ --blue-text: rgba(189, 195, 255, 1);
75
+ --blue-border: rgba(54, 69, 217, 1);
76
+
77
+ --large: 24px;
78
+ --small: 20px;
79
+ }
80
+ </style>
81
+ <style id="selected-style"></style>
82
+
83
+ <div class="badge">
84
+ <slot></slot>
85
+ </div>
86
+ `;
87
+ }
88
+ connectedCallback() {
89
+ this.updateStyle();
90
+ }
91
+ attributeChangedCallback() {
92
+ if (this.hasAttribute("badge-style")) this.badgeStyle = this.getAttribute("badge-style");
93
+ if (this.hasAttribute("size")) this.size = this.getAttribute("size");
94
+ }
95
+ updateStyle() {
96
+ const style = this.shadowRoot.querySelector("#selected-style");
97
+ if (style) style.innerHTML = `
98
+ .badge {
99
+ --text-color: var(--${this.badgeStyle}-text);
100
+ --border-color: var(--${this.badgeStyle}-border);
101
+ --size: var(--${this.size});
102
+ }`;
103
+ }
104
+ };
105
+ //#endregion
106
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/button.js
107
+ var sizes = [
108
+ "small",
109
+ "medium",
110
+ "large"
111
+ ];
112
+ var styles$5 = [
113
+ "ghost",
114
+ "outline",
115
+ "purple",
116
+ "gray",
117
+ "red",
118
+ "green",
119
+ "yellow",
120
+ "blue"
121
+ ];
122
+ var borderRadii = ["normal", "rounded"];
123
+ var DevToolbarButton = class extends HTMLElement {
124
+ _size = "small";
125
+ _buttonStyle = "purple";
126
+ _buttonBorderRadius = "normal";
127
+ get size() {
128
+ return this._size;
129
+ }
130
+ set size(value) {
131
+ if (!sizes.includes(value)) {
132
+ settings.logger.error(`Invalid size: ${value}, expected one of ${sizes.join(", ")}, got ${value}.`);
133
+ return;
134
+ }
135
+ this._size = value;
136
+ this.updateStyle();
137
+ }
138
+ get buttonStyle() {
139
+ return this._buttonStyle;
140
+ }
141
+ set buttonStyle(value) {
142
+ if (!styles$5.includes(value)) {
143
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$5.join(", ")}, got ${value}.`);
144
+ return;
145
+ }
146
+ this._buttonStyle = value;
147
+ this.updateStyle();
148
+ }
149
+ get buttonBorderRadius() {
150
+ return this._buttonBorderRadius;
151
+ }
152
+ set buttonBorderRadius(value) {
153
+ if (!borderRadii.includes(value)) {
154
+ settings.logger.error(`Invalid border-radius: ${value}, expected one of ${borderRadii.join(", ")}, got ${value}.`);
155
+ return;
156
+ }
157
+ this._buttonBorderRadius = value;
158
+ this.updateStyle();
159
+ }
160
+ static observedAttributes = [
161
+ "button-style",
162
+ "size",
163
+ "button-border-radius"
164
+ ];
165
+ shadowRoot;
166
+ constructor() {
167
+ super();
168
+ this.shadowRoot = this.attachShadow({ mode: "open" });
169
+ this.shadowRoot.innerHTML = `
170
+ <style>
171
+ button {
172
+ --purple-background: rgba(113, 24, 226, 1);
173
+ --purple-border: rgba(224, 204, 250, 0.33);
174
+ --purple-text: #fff;
175
+
176
+ --gray-background: rgba(52, 56, 65, 1);
177
+ --gray-border: rgba(71, 78, 94, 1);
178
+ --gray-text: #fff;
179
+
180
+ --red-background: rgba(179, 62, 102, 1);
181
+ --red-border: rgba(249, 196, 215, 0.33);
182
+ --red-text: #fff;
183
+
184
+ --green-background: rgba(213, 249, 196, 1);
185
+ --green-border: rgba(61, 125, 31, 1);
186
+ --green-text: #000;
187
+
188
+ --yellow-background: rgba(255, 236, 179, 1);
189
+ --yellow-border: rgba(255, 191, 0, 1);
190
+ --yellow-text: #000;
191
+
192
+ --blue-background: rgba(54, 69, 217, 1);
193
+ --blue-border: rgba(189, 195, 255, 1);
194
+ --blue-text: #fff;
195
+
196
+ --outline-background: transparent;
197
+ --outline-border: #fff;
198
+ --outline-text: #fff;
199
+
200
+ --ghost-background: transparent;
201
+ --ghost-border: transparent;
202
+ --ghost-text: #fff;
203
+
204
+ --large-font-size: 16px;
205
+ --medium-font-size: 14px;
206
+ --small-font-size: 12px;
207
+
208
+ --large-padding: 12px 16px;
209
+ --large-rounded-padding: 12px 12px;
210
+ --medium-padding: 8px 12px;
211
+ --medium-rounded-padding: 8px 8px;
212
+ --small-padding: 4px 8px;
213
+ --small-rounded-padding: 4px 4px;
214
+
215
+ --normal-border-radius: 4px;
216
+ --rounded-border-radius: 9999px;
217
+
218
+ border: 1px solid var(--border);
219
+ padding: var(--padding);
220
+ font-size: var(--font-size);
221
+ background: var(--background);
222
+
223
+ color: var(--text-color);
224
+ border-radius: var(--border-radius);
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: center;
228
+ }
229
+
230
+ button:hover {
231
+ cursor: pointer;
232
+ }
233
+
234
+ ::slotted(astro-dev-toolbar-icon) {
235
+ display: inline-block;
236
+ height: 1em;
237
+ width: 1em;
238
+ margin-left: 0.5em;
239
+ }
240
+ </style>
241
+ <style id="selected-style"></style>
242
+
243
+ <button>
244
+ <slot></slot>
245
+ </button>
246
+ `;
247
+ }
248
+ connectedCallback() {
249
+ this.updateStyle();
250
+ }
251
+ updateStyle() {
252
+ const style = this.shadowRoot.querySelector("#selected-style");
253
+ if (style) style.innerHTML = `
254
+ button {
255
+ --background: var(--${this.buttonStyle}-background);
256
+ --border: var(--${this.buttonStyle}-border);
257
+ --font-size: var(--${this.size}-font-size);
258
+ --text-color: var(--${this.buttonStyle}-text);
259
+ ${this.buttonBorderRadius === "normal" ? "--padding: var(--" + this.size + "-padding);" : "--padding: var(--" + this.size + "-rounded-padding);"}
260
+ --border-radius: var(--${this.buttonBorderRadius}-border-radius);
261
+ }`;
262
+ }
263
+ attributeChangedCallback() {
264
+ if (this.hasAttribute("size")) this.size = this.getAttribute("size");
265
+ if (this.hasAttribute("button-style")) this.buttonStyle = this.getAttribute("button-style");
266
+ }
267
+ };
268
+ //#endregion
269
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/card.js
270
+ var styles$4 = [
271
+ "purple",
272
+ "gray",
273
+ "red",
274
+ "green",
275
+ "yellow",
276
+ "blue"
277
+ ];
278
+ var DevToolbarCard = class extends HTMLElement {
279
+ link;
280
+ clickAction;
281
+ shadowRoot;
282
+ _cardStyle = "purple";
283
+ get cardStyle() {
284
+ return this._cardStyle;
285
+ }
286
+ set cardStyle(value) {
287
+ if (!styles$4.includes(value)) {
288
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$4.join(", ")}, got ${value}.`);
289
+ return;
290
+ }
291
+ this._cardStyle = value;
292
+ this.updateStyle();
293
+ }
294
+ static observedAttributes = ["card-style"];
295
+ constructor() {
296
+ super();
297
+ this.shadowRoot = this.attachShadow({ mode: "open" });
298
+ this.link = this.getAttribute("link");
299
+ }
300
+ attributeChangedCallback() {
301
+ if (this.hasAttribute("card-style")) this.cardStyle = this.getAttribute("card-style");
302
+ this.updateStyle();
303
+ }
304
+ updateStyle() {
305
+ const style = this.shadowRoot.querySelector("#selected-style");
306
+ if (style) style.innerHTML = `
307
+ :host {
308
+ --hover-background: var(--${this.cardStyle}-hover-background);
309
+ --hover-border: var(--${this.cardStyle}-hover-border);
310
+ }
311
+ `;
312
+ }
313
+ connectedCallback() {
314
+ const element = this.link ? "a" : this.clickAction ? "button" : "div";
315
+ this.shadowRoot.innerHTML += `
316
+ <style>
317
+ :host {
318
+ --purple-hover-background: rgba(136, 58, 234, 0.33);
319
+ --purple-hover-border: 1px solid rgba(113, 24, 226, 1);
320
+
321
+ --gray-hover-background: rgba(191, 193, 201, 0.33);
322
+ --gray-hover-border: 1px solid rgba(191, 193, 201, 1);
323
+
324
+ --red-hover-background: rgba(249, 196, 215, 0.33);
325
+ --red-hover-border: 1px solid rgba(179, 62, 102, 1);
326
+
327
+ --green-hover-background: rgba(213, 249, 196, 0.33);
328
+ --green-hover-border: 1px solid rgba(61, 125, 31, 1);
329
+
330
+ --yellow-hover-background: rgba(255, 236, 179, 0.33);
331
+ --yellow-hover-border: 1px solid rgba(255, 191, 0, 1);
332
+
333
+ --blue-hover-background: rgba(189, 195, 255, 0.33);
334
+ --blue-hover-border: 1px solid rgba(54, 69, 217, 1);
335
+ }
336
+
337
+ :host>a, :host>button, :host>div {
338
+ box-sizing: border-box;
339
+ padding: 16px;
340
+ display: block;
341
+ border-radius: 8px;
342
+ border: 1px solid rgba(35, 38, 45, 1);
343
+ color: rgba(191, 193, 201, 1);
344
+ text-decoration: none;
345
+ background-color: #13151A;
346
+ box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.10), 0px 1px 2px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.09), 0px 10px 6px 0px rgba(0, 0, 0, 0.05), 0px 17px 7px 0px rgba(0, 0, 0, 0.01), 0px 26px 7px 0px rgba(0, 0, 0, 0.00);
347
+ width: 100%;
348
+ height: 100%;
349
+ }
350
+
351
+ h1, h2, h3, h4, h5, h6 {
352
+ color: #fff;
353
+ font-weight: 600;
354
+ }
355
+
356
+ a:hover, button:hover {
357
+ background: var(--hover-background);
358
+ border: var(--hover-border);
359
+ }
360
+
361
+ svg {
362
+ display: block;
363
+ margin: 0 auto;
364
+ }
365
+
366
+ span {
367
+ margin-top: 8px;
368
+ display: block;
369
+ text-align: center;
370
+ }
371
+ </style>
372
+ <style id="selected-style"></style>
373
+
374
+ <${element}${this.link ? ` href="${this.link}" target="_blank"` : ``} id="astro-overlay-card">
375
+ <slot />
376
+ </${element}>
377
+ `;
378
+ this.updateStyle();
379
+ if (this.clickAction) this.shadowRoot.getElementById("astro-overlay-card")?.addEventListener("click", this.clickAction);
380
+ }
381
+ };
382
+ //#endregion
383
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/highlight.js
384
+ var styles$3 = [
385
+ "purple",
386
+ "gray",
387
+ "red",
388
+ "green",
389
+ "yellow",
390
+ "blue"
391
+ ];
392
+ var DevToolbarHighlight = class extends HTMLElement {
393
+ icon;
394
+ _highlightStyle = "purple";
395
+ get highlightStyle() {
396
+ return this._highlightStyle;
397
+ }
398
+ set highlightStyle(value) {
399
+ if (!styles$3.includes(value)) {
400
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$3.join(", ")}, got ${value}.`);
401
+ return;
402
+ }
403
+ this._highlightStyle = value;
404
+ this.updateStyle();
405
+ }
406
+ static observedAttributes = ["highlight-style"];
407
+ shadowRoot;
408
+ constructor() {
409
+ super();
410
+ this.shadowRoot = this.attachShadow({ mode: "open" });
411
+ this.icon = this.hasAttribute("icon") ? this.getAttribute("icon") : void 0;
412
+ this.shadowRoot.innerHTML = `
413
+ <style>
414
+ :host {
415
+ --purple-background: linear-gradient(180deg, rgba(224, 204, 250, 0.33) 0%, rgba(224, 204, 250, 0.0825) 100%);
416
+ --purple-border: 1px solid rgba(113, 24, 226, 1);
417
+
418
+ --gray-background: linear-gradient(180deg, rgba(191, 193, 201, 0.33) 0%, rgba(191, 193, 201, 0.0825) 100%);
419
+ --gray-border: 1px solid rgba(191, 193, 201, 1);
420
+
421
+ --red-background: linear-gradient(180deg, rgba(249, 196, 215, 0.33) 0%, rgba(249, 196, 215, 0.0825) 100%);
422
+ --red-border: 1px solid rgba(179, 62, 102, 1);
423
+
424
+ --green-background: linear-gradient(180deg, rgba(213, 249, 196, 0.33) 0%, rgba(213, 249, 196, 0.0825) 100%);
425
+ --green-border: 1px solid rgba(61, 125, 31, 1);
426
+
427
+ --yellow-background: linear-gradient(180deg, rgba(255, 236, 179, 0.33) 0%, rgba(255, 236, 179, 0.0825) 100%);
428
+ --yellow-border: 1px solid rgba(181, 138, 45, 1);
429
+
430
+ --blue-background: linear-gradient(180deg, rgba(189, 195, 255, 0.33) 0%, rgba(189, 195, 255, 0.0825) 100%);
431
+ --blue-border: 1px solid rgba(54, 69, 217, 1);
432
+
433
+ border-radius: 4px;
434
+ display: block;
435
+ width: 100%;
436
+ height: 100%;
437
+ position: absolute;
438
+ z-index: 2000000000;
439
+
440
+ background: var(--background);
441
+ border: var(--border);
442
+ }
443
+
444
+ .icon {
445
+ width: 24px;
446
+ height: 24px;
447
+ color: white;
448
+ background: linear-gradient(0deg, #B33E66, #B33E66), linear-gradient(0deg, #351722, #351722);
449
+ border: 1px solid rgba(53, 23, 34, 1);
450
+ border-radius: 9999px;
451
+ display: flex;
452
+ justify-content: center;
453
+ align-items: center;
454
+ position: absolute;
455
+ top: -15px;
456
+ right: -15px;
457
+ }
458
+ </style>
459
+ <style id="selected-style"></style>
460
+ `;
461
+ }
462
+ updateStyle() {
463
+ const style = this.shadowRoot.querySelector("#selected-style");
464
+ if (style) style.innerHTML = `
465
+ :host {
466
+ --background: var(--${this.highlightStyle}-background);
467
+ --border: var(--${this.highlightStyle}-border);
468
+ }`;
469
+ }
470
+ attributeChangedCallback() {
471
+ if (this.hasAttribute("highlight-style")) this.highlightStyle = this.getAttribute("highlight-style");
472
+ }
473
+ connectedCallback() {
474
+ this.updateStyle();
475
+ if (this.icon) {
476
+ let iconContainer = document.createElement("div");
477
+ iconContainer.classList.add("icon");
478
+ let iconElement;
479
+ if (isDefinedIcon(this.icon)) iconElement = getIconElement(this.icon);
480
+ else {
481
+ iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
482
+ iconElement.setAttribute("viewBox", "0 0 16 16");
483
+ iconElement.innerHTML = this.icon;
484
+ }
485
+ if (iconElement) {
486
+ iconElement?.style.setProperty("width", "16px");
487
+ iconElement?.style.setProperty("height", "16px");
488
+ iconContainer.append(iconElement);
489
+ this.shadowRoot.append(iconContainer);
490
+ }
491
+ }
492
+ }
493
+ };
494
+ //#endregion
495
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/icon.js
496
+ var DevToolbarIcon = class extends HTMLElement {
497
+ _icon = void 0;
498
+ shadowRoot;
499
+ get icon() {
500
+ return this._icon;
501
+ }
502
+ set icon(name) {
503
+ this._icon = name;
504
+ this.buildTemplate();
505
+ }
506
+ constructor() {
507
+ super();
508
+ this.shadowRoot = this.attachShadow({ mode: "open" });
509
+ if (this.hasAttribute("icon")) this.icon = this.getAttribute("icon");
510
+ else this.buildTemplate();
511
+ }
512
+ getIconHTML(icon) {
513
+ if (icon && isDefinedIcon(icon)) return getIconElement(icon)?.outerHTML ?? "";
514
+ return "<slot />";
515
+ }
516
+ buildTemplate() {
517
+ this.shadowRoot.innerHTML = `
518
+ <style>
519
+ svg {
520
+ width: 100%;
521
+ height: 100%;
522
+ }
523
+
524
+ @media (forced-colors: active) {
525
+ svg path[fill="#fff"] {
526
+ fill: black;
527
+ }
528
+ }
529
+ </style>
530
+ ${this.getIconHTML(this._icon)}`;
531
+ }
532
+ };
533
+ //#endregion
534
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/radio-checkbox.js
535
+ var styles$2 = [
536
+ "purple",
537
+ "gray",
538
+ "red",
539
+ "green",
540
+ "yellow",
541
+ "blue"
542
+ ];
543
+ var DevToolbarRadioCheckbox = class extends HTMLElement {
544
+ _radioStyle = "purple";
545
+ input;
546
+ shadowRoot;
547
+ get radioStyle() {
548
+ return this._radioStyle;
549
+ }
550
+ set radioStyle(value) {
551
+ if (!styles$2.includes(value)) {
552
+ console.error(`Invalid style: ${value}, expected one of ${styles$2.join(", ")}.`);
553
+ return;
554
+ }
555
+ this._radioStyle = value;
556
+ this.updateStyle();
557
+ }
558
+ static observedAttributes = [
559
+ "radio-style",
560
+ "checked",
561
+ "disabled",
562
+ "name",
563
+ "value"
564
+ ];
565
+ constructor() {
566
+ super();
567
+ this.shadowRoot = this.attachShadow({ mode: "open" });
568
+ this.shadowRoot.innerHTML = `
569
+ <style>
570
+ :host {
571
+ --purple-unchecked: rgba(224, 204, 250, 0.33);
572
+ --purple-checked: rgba(224, 204, 250, 1);
573
+
574
+ --gray-unchecked: rgba(191, 193, 201, 0.33);
575
+ --gray-checked: rgba(191, 193, 201, 1);
576
+
577
+ --red-unchecked: rgba(249, 196, 215, 0.33);
578
+ --red-checked: rgba(179, 62, 102, 1);
579
+
580
+ --green-unchecked: rgba(213, 249, 196, 0.33);
581
+ --green-checked: rgba(61, 125, 31, 1);
582
+
583
+ --yellow-unchecked: rgba(255, 236, 179, 0.33);
584
+ --yellow-checked: rgba(181, 138, 45, 1);
585
+
586
+ --blue-unchecked: rgba(189, 195, 255, 0.33);
587
+ --blue-checked: rgba(54, 69, 217, 1);
588
+ }
589
+
590
+ input[type="radio"] {
591
+ appearance: none;
592
+ -webkit-appearance: none;
593
+ display: flex;
594
+ align-content: center;
595
+ justify-content: center;
596
+ border: 2px solid var(--unchecked-color);
597
+ border-radius: 9999px;
598
+ width: 16px;
599
+ height: 16px;
600
+ }
601
+
602
+ input[type="radio"]::before {
603
+ content: "";
604
+ background-color: var(--checked-color);
605
+ width: 8px;
606
+ height: 8px;
607
+ border-radius: 9999px;
608
+ visibility: hidden;
609
+ margin: 2px;
610
+ }
611
+
612
+ input[type="radio"]:checked {
613
+ border-color: var(--checked-color);
614
+ }
615
+
616
+ input[type="radio"]:checked::before {
617
+ visibility: visible;
618
+ }
619
+ </style>
620
+ <style id="selected-style"></style>
621
+ `;
622
+ this.input = document.createElement("input");
623
+ this.input.type = "radio";
624
+ this.shadowRoot.append(this.input);
625
+ }
626
+ connectedCallback() {
627
+ this.updateInputState();
628
+ this.updateStyle();
629
+ }
630
+ updateStyle() {
631
+ const styleElement = this.shadowRoot.querySelector("#selected-style");
632
+ if (styleElement) styleElement.innerHTML = `
633
+ :host {
634
+ --unchecked-color: var(--${this._radioStyle}-unchecked);
635
+ --checked-color: var(--${this._radioStyle}-checked);
636
+ }
637
+ `;
638
+ }
639
+ updateInputState() {
640
+ this.input.checked = this.hasAttribute("checked");
641
+ this.input.disabled = this.hasAttribute("disabled");
642
+ this.input.name = this.getAttribute("name") || "";
643
+ this.input.value = this.getAttribute("value") || "";
644
+ }
645
+ attributeChangedCallback() {
646
+ if (this.hasAttribute("radio-style")) this.radioStyle = this.getAttribute("radio-style");
647
+ this.updateInputState();
648
+ }
649
+ };
650
+ //#endregion
651
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/select.js
652
+ var styles$1 = [
653
+ "purple",
654
+ "gray",
655
+ "red",
656
+ "green",
657
+ "yellow",
658
+ "blue"
659
+ ];
660
+ var DevToolbarSelect = class extends HTMLElement {
661
+ shadowRoot;
662
+ element;
663
+ _selectStyle = "gray";
664
+ get selectStyle() {
665
+ return this._selectStyle;
666
+ }
667
+ set selectStyle(value) {
668
+ if (!styles$1.includes(value)) {
669
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles$1.join(", ")}.`);
670
+ return;
671
+ }
672
+ this._selectStyle = value;
673
+ this.updateStyle();
674
+ }
675
+ static observedAttributes = ["select-style"];
676
+ constructor() {
677
+ super();
678
+ this.shadowRoot = this.attachShadow({ mode: "open" });
679
+ this.shadowRoot.innerHTML = `
680
+ <style>
681
+ :host {
682
+ --purple-text: rgba(224, 204, 250, 1);
683
+ --purple-border: rgba(113, 24, 226, 1);
684
+
685
+ --gray-text: rgba(191, 193, 201, 1);
686
+ --gray-border:rgba(191, 193, 201, 1);
687
+
688
+ --red-text: rgba(249, 196, 215, 1);
689
+ --red-border: rgba(179, 62, 102, 1);
690
+
691
+ --green-text: rgba(213, 249, 196, 1);
692
+ --green-border: rgba(61, 125, 31, 1);
693
+
694
+ --yellow-text: rgba(249, 233, 196, 1);
695
+ --yellow-border: rgba(181, 138, 45, 1);
696
+
697
+ --blue-text: rgba(189, 195, 255, 1);
698
+ --blue-border: rgba(54, 69, 217, 1);
699
+
700
+ --text-color: var(--gray-text);
701
+ --border-color: var(--gray-border);
702
+ }
703
+ select {
704
+ appearance: none;
705
+ text-align-last: center;
706
+ display: inline-block;
707
+ font-family: system-ui, sans-serif;
708
+ font-size: 14px;
709
+ padding: 4px 24px 4px 8px;
710
+ border: 1px solid var(--border-color);
711
+ border-radius: 4px;
712
+ color: var(--text-color);
713
+ background-color: transparent;
714
+ background-image:
715
+ linear-gradient(45deg, transparent 50%, var(--text-color) 50%),
716
+ linear-gradient(135deg, var(--text-color) 50%, transparent 50%);
717
+ background-position:
718
+ calc(100% - 12px) calc(1em - 2px),
719
+ calc(100% - 8px) calc(1em - 2px);
720
+ background-size: 4px 4px;
721
+ background-repeat: no-repeat;
722
+ }
723
+ </style>
724
+ <style id="selected-style"></style>
725
+ <slot></slot>
726
+ `;
727
+ this.element = document.createElement("select");
728
+ this.shadowRoot.addEventListener("slotchange", (event) => {
729
+ if (event.target instanceof HTMLSlotElement) this.element.append(...event.target.assignedNodes());
730
+ });
731
+ }
732
+ connectedCallback() {
733
+ this.element.name = "dev-toolbar-select";
734
+ this.shadowRoot.append(this.element);
735
+ this.updateStyle();
736
+ }
737
+ attributeChangedCallback() {
738
+ if (this.hasAttribute("select-style")) this.selectStyle = this.getAttribute("select-style");
739
+ }
740
+ updateStyle() {
741
+ const style = this.shadowRoot.querySelector("#selected-style");
742
+ if (style) style.innerHTML = `
743
+ :host {
744
+ --text-color: var(--${this.selectStyle}-text);
745
+ --border-color: var(--${this.selectStyle}-border);
746
+ }
747
+ `;
748
+ }
749
+ };
750
+ //#endregion
751
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/toggle.js
752
+ var styles = [
753
+ "purple",
754
+ "gray",
755
+ "red",
756
+ "green",
757
+ "yellow",
758
+ "blue"
759
+ ];
760
+ var DevToolbarToggle = class extends HTMLElement {
761
+ shadowRoot;
762
+ input;
763
+ _toggleStyle = "gray";
764
+ get toggleStyle() {
765
+ return this._toggleStyle;
766
+ }
767
+ set toggleStyle(value) {
768
+ if (!styles.includes(value)) {
769
+ settings.logger.error(`Invalid style: ${value}, expected one of ${styles.join(", ")}.`);
770
+ return;
771
+ }
772
+ this._toggleStyle = value;
773
+ this.updateStyle();
774
+ }
775
+ static observedAttributes = ["toggle-style"];
776
+ constructor() {
777
+ super();
778
+ this.shadowRoot = this.attachShadow({ mode: "open" });
779
+ this.shadowRoot.innerHTML = `
780
+ <style>
781
+ :host {
782
+ --purple-bg-on: rgba(113, 24, 226, 1);
783
+ --purple-border-off: rgba(113, 24, 226, 1);
784
+ --purple-border-on: rgba(224, 204, 250, 1);
785
+
786
+ --gray-bg-on: rgba(61, 125, 31, 1);
787
+ --gray-border-off: rgba(145, 152, 173, 1);
788
+ --gray-border-on: rgba(213, 249, 196, 1);
789
+
790
+ --red-bg-on: rgba(179, 62, 102, 1);
791
+ --red-border-off: rgba(179, 62, 102, 1);
792
+ --red-border-on: rgba(249, 196, 215, 1);
793
+
794
+ --green-bg-on: rgba(61, 125, 31, 1);
795
+ --green-border-off: rgba(61, 125, 31, 1);
796
+ --green-border-on: rgba(213, 249, 196, 1);
797
+
798
+ --yellow-bg-on: rgba(181, 138, 45, 1);
799
+ --yellow-border-off: rgba(181, 138, 45, 1);
800
+ --yellow-border-on: rgba(255, 236, 179, 1);
801
+
802
+ --blue-bg-on: rgba(54, 69, 217, 1);
803
+ --blue-border-off: rgba(54, 69, 217, 1);
804
+ --blue-border-on: rgba(189, 195, 255, 1);
805
+ }
806
+
807
+ input {
808
+ appearance: none;
809
+ width: 32px;
810
+ height: 20px;
811
+ border: 1px solid var(--border-off);
812
+ transition: background-color 0.2s ease, border-color 0.2s ease;
813
+ border-radius: 9999px;
814
+ }
815
+
816
+ input::after {
817
+ content: '';
818
+ width: 16px;
819
+ display: inline-block;
820
+ height: 16px;
821
+ background-color: var(--border-off);
822
+ border-radius: 9999px;
823
+ transition: transform 0.2s ease, background-color 0.2s ease;
824
+ top: 1px;
825
+ left: 1px;
826
+ position: relative;
827
+ }
828
+
829
+ @media (forced-colors: active) {
830
+ input::after {
831
+ border: 1px solid black;
832
+ top: 0px;
833
+ left: 0px;
834
+ }
835
+ }
836
+
837
+ input:checked {
838
+ border: 1px solid var(--border-on);
839
+ background-color: var(--bg-on);
840
+ }
841
+
842
+ input:checked::after {
843
+ transform: translateX(12px);
844
+ background: var(--border-on);
845
+ }
846
+ </style>
847
+ <style id="selected-style"></style>
848
+ `;
849
+ this.input = document.createElement("input");
850
+ }
851
+ attributeChangedCallback() {
852
+ if (this.hasAttribute("toggle-style")) this.toggleStyle = this.getAttribute("toggle-style");
853
+ }
854
+ updateStyle() {
855
+ const style = this.shadowRoot.querySelector("#selected-style");
856
+ if (style) style.innerHTML = `
857
+ :host {
858
+ --bg-on: var(--${this.toggleStyle}-bg-on);
859
+ --border-off: var(--${this.toggleStyle}-border-off);
860
+ --border-on: var(--${this.toggleStyle}-border-on);
861
+ }
862
+ `;
863
+ }
864
+ connectedCallback() {
865
+ this.input.type = "checkbox";
866
+ this.input.name = "dev-toolbar-toggle";
867
+ this.shadowRoot.append(this.input);
868
+ this.updateStyle();
869
+ }
870
+ get value() {
871
+ return this.input.value;
872
+ }
873
+ set value(val) {
874
+ this.input.value = val;
875
+ }
876
+ };
877
+ //#endregion
878
+ //#region ../../node_modules/astro/dist/runtime/client/dev-toolbar/ui-library/tooltip.js
879
+ var DevToolbarTooltip = class extends HTMLElement {
880
+ sections = [];
881
+ shadowRoot;
882
+ constructor() {
883
+ super();
884
+ this.shadowRoot = this.attachShadow({ mode: "open" });
885
+ }
886
+ connectedCallback() {
887
+ this.shadowRoot.innerHTML = `
888
+ <style>
889
+ :host {
890
+ position: absolute;
891
+ display: none;
892
+ color: white;
893
+ background: linear-gradient(0deg, #310A65, #310A65), linear-gradient(0deg, #7118E2, #7118E2);
894
+ border: 1px solid rgba(113, 24, 226, 1);
895
+ border-radius: 4px;
896
+ padding: 0;
897
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
898
+ font-size: 14px;
899
+ margin: 0;
900
+ z-index: 2000000001;
901
+ max-width: 45ch;
902
+ width: fit-content;
903
+ min-width: 30ch;
904
+ box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.30), 0px 1px 2px 0px rgba(0, 0, 0, 0.29), 0px 4px 4px 0px rgba(0, 0, 0, 0.26), 0px 10px 6px 0px rgba(0, 0, 0, 0.15), 0px 17px 7px 0px rgba(0, 0, 0, 0.04), 0px 26px 7px 0px rgba(0, 0, 0, 0.01);
905
+ }
906
+
907
+ :host([data-show="true"]) {
908
+ display: block;
909
+ }
910
+
911
+ svg {
912
+ vertical-align: bottom;
913
+ margin-inline-end: 4px;
914
+ }
915
+
916
+ hr {
917
+ border: 1px solid rgba(136, 58, 234, 0.33);
918
+ padding: 0;
919
+ margin: 0;
920
+ }
921
+
922
+ section {
923
+ padding: 8px;
924
+ }
925
+
926
+ .section-content {
927
+ max-height: 250px;
928
+ overflow-y: auto;
929
+ }
930
+
931
+ .modal-title {
932
+ display: flex;
933
+ justify-content: space-between;
934
+ align-items: center;
935
+ }
936
+
937
+ .modal-main-title {
938
+ font-weight: bold;
939
+ }
940
+
941
+ .modal-title + div {
942
+ margin-top: 8px;
943
+ }
944
+
945
+ .modal-cta {
946
+ display: block;
947
+ font-weight: bold;
948
+ font-size: 0.9em;
949
+ }
950
+
951
+ .clickable-section {
952
+ background: rgba(113, 24, 226, 1);
953
+ padding: 8px;
954
+ border: 0;
955
+ color: white;
956
+ font-family: system-ui, sans-serif;
957
+ text-align: left;
958
+ line-height: 1.2;
959
+ white-space: nowrap;
960
+ text-decoration: none;
961
+ margin: 0;
962
+ width: 100%;
963
+ }
964
+
965
+ .clickable-section:hover {
966
+ cursor: pointer;
967
+ }
968
+
969
+ pre, code {
970
+ background: rgb(78, 27, 145);
971
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
972
+ border-radius: 2px;
973
+ font-size: 14px;
974
+ padding: 2px;
975
+ }
976
+ pre {
977
+ padding: 1em;
978
+ margin: 0 0;
979
+ overflow: auto;
980
+ }
981
+ `;
982
+ const fragment = new DocumentFragment();
983
+ this.sections.forEach((section, index) => {
984
+ const sectionElement = section.clickAction ? document.createElement("button") : document.createElement("section");
985
+ if (section.clickAction) {
986
+ sectionElement.classList.add("clickable-section");
987
+ sectionElement.addEventListener("click", async () => {
988
+ await section.clickAction();
989
+ });
990
+ }
991
+ sectionElement.innerHTML = `
992
+ ${section.title ? `<div class="modal-title"><span class="modal-main-title">
993
+ ${section.icon ? this.getElementForIcon(section.icon) : ""}${section.title}</span>${section.inlineTitle ?? ""}</div>` : ""}
994
+ ${section.content ? `<div class="section-content">${section.content}</div>` : ""}
995
+ ${section.clickDescription ? `<span class="modal-cta">${section.clickDescription}</span>` : ""}
996
+ `;
997
+ fragment.append(sectionElement);
998
+ if (index < this.sections.length - 1) fragment.append(document.createElement("hr"));
999
+ });
1000
+ this.shadowRoot.append(fragment);
1001
+ }
1002
+ getElementForIcon(icon) {
1003
+ let iconElement;
1004
+ if (isDefinedIcon(icon)) iconElement = getIconElement(icon);
1005
+ else {
1006
+ iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
1007
+ iconElement.setAttribute("viewBox", "0 0 16 16");
1008
+ iconElement.innerHTML = icon;
1009
+ }
1010
+ iconElement?.style.setProperty("width", "16px");
1011
+ iconElement?.style.setProperty("height", "16px");
1012
+ return iconElement?.outerHTML ?? "";
1013
+ }
1014
+ };
1015
+ //#endregion
1016
+ export { DevToolbarBadge, DevToolbarButton, DevToolbarCard, DevToolbarHighlight, DevToolbarIcon, DevToolbarRadioCheckbox, DevToolbarSelect, DevToolbarToggle, DevToolbarTooltip, DevToolbarWindow };