summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/README.md1
-rw-r--r--examples/basics/src/components/Card.astro4
-rw-r--r--examples/basics/src/pages/index.astro1
-rw-r--r--examples/blog-multiple-authors/.gitignore19
-rw-r--r--examples/blog-multiple-authors/.npmrc2
-rw-r--r--examples/blog-multiple-authors/.stackblitzrc6
-rw-r--r--examples/blog-multiple-authors/README.md54
-rw-r--r--examples/blog-multiple-authors/astro.config.mjs9
-rw-r--r--examples/blog-multiple-authors/package.json19
-rw-r--r--examples/blog-multiple-authors/public/favicon.icobin4286 -> 0 bytes
-rw-r--r--examples/blog-multiple-authors/public/images/chapter-01.jpgbin153734 -> 0 bytes
-rw-r--r--examples/blog-multiple-authors/public/images/chapter-02.jpgbin99769 -> 0 bytes
-rw-r--r--examples/blog-multiple-authors/public/images/chapter-03.jpgbin168485 -> 0 bytes
-rw-r--r--examples/blog-multiple-authors/public/images/don.jpgbin27833 -> 0 bytes
-rw-r--r--examples/blog-multiple-authors/public/images/sancho.jpgbin28204 -> 0 bytes
-rw-r--r--examples/blog-multiple-authors/sandbox.config.json11
-rw-r--r--examples/blog-multiple-authors/src/components/MainHead.astro49
-rw-r--r--examples/blog-multiple-authors/src/components/Nav.astro63
-rw-r--r--examples/blog-multiple-authors/src/components/Pagination.astro44
-rw-r--r--examples/blog-multiple-authors/src/components/PostPreview.astro66
-rw-r--r--examples/blog-multiple-authors/src/data/authors.json10
-rw-r--r--examples/blog-multiple-authors/src/layouts/post.astro82
-rw-r--r--examples/blog-multiple-authors/src/pages/about.astro74
-rw-r--r--examples/blog-multiple-authors/src/pages/authors/[author].astro80
-rw-r--r--examples/blog-multiple-authors/src/pages/index.astro45
-rw-r--r--examples/blog-multiple-authors/src/pages/post/chapter-i.md13
-rw-r--r--examples/blog-multiple-authors/src/pages/post/chapter-ii.md15
-rw-r--r--examples/blog-multiple-authors/src/pages/post/chapter-iii.md13
-rw-r--r--examples/blog-multiple-authors/src/pages/posts/[...page].astro83
-rw-r--r--examples/blog-multiple-authors/src/styles/global.css25
-rw-r--r--examples/blog-multiple-authors/tsconfig.json15
-rw-r--r--examples/component/demo/public/robots.txt2
-rw-r--r--examples/docs/src/components/HeadSEO.astro2
-rw-r--r--examples/docs/src/components/Header/Header.astro10
-rw-r--r--examples/docs/src/components/LeftSidebar/LeftSidebar.astro4
-rw-r--r--examples/docs/src/components/PageContent/PageContent.astro2
-rw-r--r--examples/docs/src/components/RightSidebar/MoreMenu.astro2
-rw-r--r--examples/docs/src/components/RightSidebar/RightSidebar.astro2
-rw-r--r--examples/env-vars/.vscode/extensions.json (renamed from examples/starter/.vscode/extensions.json)0
-rw-r--r--examples/env-vars/.vscode/launch.json (renamed from examples/starter/.vscode/launch.json)0
-rw-r--r--examples/env-vars/src/env.d.ts3
-rw-r--r--examples/framework-alpine/.vscode/extensions.json4
-rw-r--r--examples/framework-alpine/.vscode/launch.json11
-rw-r--r--examples/framework-alpine/package.json1
-rw-r--r--examples/framework-alpine/src/components/Counter.astro9
-rw-r--r--examples/framework-alpine/src/pages/index.astro1
-rw-r--r--examples/framework-lit/.vscode/extensions.json4
-rw-r--r--examples/framework-lit/.vscode/launch.json11
-rw-r--r--examples/framework-lit/public/robots.txt2
-rw-r--r--examples/framework-lit/src/pages/index.astro3
-rw-r--r--examples/framework-multiple/.vscode/extensions.json4
-rw-r--r--examples/framework-multiple/.vscode/launch.json11
-rw-r--r--examples/framework-multiple/astro.config.mjs3
-rw-r--r--examples/framework-multiple/package.json3
-rw-r--r--examples/framework-multiple/src/components/A.astro3
-rw-r--r--examples/framework-multiple/src/components/B.astro3
-rw-r--r--examples/framework-multiple/src/components/LitCounter.js33
-rw-r--r--examples/framework-multiple/src/components/PreactCounter.tsx4
-rw-r--r--examples/framework-multiple/src/components/PreactSFC.tsx10
-rw-r--r--examples/framework-multiple/src/components/ReactCounter.tsx (renamed from examples/framework-multiple/src/components/ReactCounter.jsx)2
-rw-r--r--examples/framework-multiple/src/components/SolidCounter.tsx4
-rw-r--r--examples/framework-multiple/src/components/SvelteCounter.svelte21
-rw-r--r--examples/framework-multiple/src/components/VueCounter.vue8
-rw-r--r--examples/framework-multiple/src/components/index.ts2
-rw-r--r--examples/framework-multiple/src/pages/index.astro26
-rw-r--r--examples/framework-multiple/tsconfig.json2
-rw-r--r--examples/framework-preact/.vscode/extensions.json4
-rw-r--r--examples/framework-preact/.vscode/launch.json11
-rw-r--r--examples/framework-preact/src/pages/index.astro2
-rw-r--r--examples/framework-react/.vscode/extensions.json4
-rw-r--r--examples/framework-react/.vscode/launch.json11
-rw-r--r--examples/framework-react/src/components/Counter.tsx (renamed from examples/framework-react/src/components/Counter.jsx)4
-rw-r--r--examples/framework-react/src/pages/index.astro2
-rw-r--r--examples/framework-solid/.vscode/extensions.json4
-rw-r--r--examples/framework-solid/.vscode/launch.json11
-rw-r--r--examples/framework-solid/src/components/Counter.tsx (renamed from examples/framework-solid/src/components/Counter.jsx)0
-rw-r--r--examples/framework-solid/src/pages/index.astro8
-rw-r--r--examples/framework-svelte/.vscode/extensions.json4
-rw-r--r--examples/framework-svelte/.vscode/launch.json11
-rw-r--r--examples/framework-svelte/src/components/Counter.svelte45
-rw-r--r--examples/framework-vue/.vscode/extensions.json4
-rw-r--r--examples/framework-vue/.vscode/launch.json11
-rw-r--r--examples/framework-vue/src/components/Counter.vue3
-rw-r--r--examples/framework-vue/tsconfig.json2
-rw-r--r--examples/integrations-playground/.gitignore19
-rw-r--r--examples/integrations-playground/.npmrc2
-rw-r--r--examples/integrations-playground/.stackblitzrc6
-rw-r--r--examples/integrations-playground/README.md7
-rw-r--r--examples/integrations-playground/astro.config.mjs14
-rw-r--r--examples/integrations-playground/package.json31
-rw-r--r--examples/integrations-playground/public/assets/logo.svg12
-rw-r--r--examples/integrations-playground/public/favicon.icobin4286 -> 0 bytes
-rw-r--r--examples/integrations-playground/public/robots.txt2
-rw-r--r--examples/integrations-playground/sandbox.config.json11
-rw-r--r--examples/integrations-playground/src/components/Link.jsx6
-rw-r--r--examples/integrations-playground/src/components/Lorem.astro115
-rw-r--r--examples/integrations-playground/src/components/SolidCounter.jsx18
-rw-r--r--examples/integrations-playground/src/components/calc-add.js17
-rw-r--r--examples/integrations-playground/src/components/my-counter.js32
-rw-r--r--examples/integrations-playground/src/pages/foo.astro15
-rw-r--r--examples/integrations-playground/src/pages/index.astro54
-rw-r--r--examples/integrations-playground/tsconfig.json15
-rw-r--r--examples/non-html-pages/.vscode/extensions.json4
-rw-r--r--examples/non-html-pages/.vscode/launch.json11
-rw-r--r--examples/portfolio/src/pages/projects.astro4
-rw-r--r--examples/ssr/.vscode/extensions.json4
-rw-r--r--examples/ssr/.vscode/launch.json11
-rw-r--r--examples/starter/.gitignore19
-rw-r--r--examples/starter/.npmrc2
-rw-r--r--examples/starter/.stackblitzrc6
-rw-r--r--examples/starter/README.md43
-rw-r--r--examples/starter/astro.config.mjs4
-rw-r--r--examples/starter/package.json14
-rw-r--r--examples/starter/public/favicon.icobin4286 -> 0 bytes
-rw-r--r--examples/starter/public/logo.svg12
-rw-r--r--examples/starter/sandbox.config.json11
-rw-r--r--examples/starter/src/components/Logo.astro10
-rw-r--r--examples/starter/src/content/Tour.md28
-rw-r--r--examples/starter/src/pages/index.astro86
-rw-r--r--examples/starter/src/styles/global.css29
-rw-r--r--examples/starter/src/styles/home.css54
-rw-r--r--examples/starter/tsconfig.json15
-rw-r--r--examples/subpath/package.json3
-rw-r--r--examples/subpath/public/robots.txt2
-rw-r--r--examples/subpath/src/pages/index.astro5
-rw-r--r--examples/subpath/src/styles/main.css3
-rw-r--r--examples/subpath/src/styles/main.scss5
-rw-r--r--examples/with-vite-plugin-pwa/public/robots.txt2
-rw-r--r--packages/webapi/mod.d.ts2
-rw-r--r--pnpm-lock.yaml72
130 files changed, 273 insertions, 1720 deletions
diff --git a/examples/README.md b/examples/README.md
index e3e295b6d..50caa7f18 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -1,6 +1,5 @@
# Astro Examples Library
-
The easiest way to check out one of these examples on your machine is by running this command in an empty directory:
```
diff --git a/examples/basics/src/components/Card.astro b/examples/basics/src/components/Card.astro
index 4039d4f4f..aea28c83f 100644
--- a/examples/basics/src/components/Card.astro
+++ b/examples/basics/src/components/Card.astro
@@ -4,7 +4,8 @@ export interface Props {
body: string;
href: string;
}
-const { href, title, body } = Astro.props;
+
+const { href, title, body } = Astro.props as Props;
---
<li class="link-card">
@@ -69,6 +70,7 @@ const { href, title, body } = Astro.props;
}
.link-card:is(:hover, :focus-within) h2 span {
+ will-change: transform;
transform: translateX(2px);
}
</style>
diff --git a/examples/basics/src/pages/index.astro b/examples/basics/src/pages/index.astro
index cf05f0bb6..1ca6b285c 100644
--- a/examples/basics/src/pages/index.astro
+++ b/examples/basics/src/pages/index.astro
@@ -86,6 +86,7 @@ import Card from "../components/Card.astro";
border-radius: 4px;
padding: 0.15em 0.25em;
}
+
.link-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr));
diff --git a/examples/blog-multiple-authors/.gitignore b/examples/blog-multiple-authors/.gitignore
deleted file mode 100644
index 02f6e50b4..000000000
--- a/examples/blog-multiple-authors/.gitignore
+++ /dev/null
@@ -1,19 +0,0 @@
-# build output
-dist/
-
-# dependencies
-node_modules/
-
-# logs
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-
-
-# environment variables
-.env
-.env.production
-
-# macOS-specific files
-.DS_Store
diff --git a/examples/blog-multiple-authors/.npmrc b/examples/blog-multiple-authors/.npmrc
deleted file mode 100644
index ef83021af..000000000
--- a/examples/blog-multiple-authors/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-# Expose Astro dependencies for `pnpm` users
-shamefully-hoist=true
diff --git a/examples/blog-multiple-authors/.stackblitzrc b/examples/blog-multiple-authors/.stackblitzrc
deleted file mode 100644
index 43798ecff..000000000
--- a/examples/blog-multiple-authors/.stackblitzrc
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "startCommand": "npm start",
- "env": {
- "ENABLE_CJS_IMPORTS": true
- }
-} \ No newline at end of file
diff --git a/examples/blog-multiple-authors/README.md b/examples/blog-multiple-authors/README.md
deleted file mode 100644
index 6078a0bc8..000000000
--- a/examples/blog-multiple-authors/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Astro Starter Kit: Blog with Multiple Authors
-
-```
-npm init astro -- --template blog-multiple-authors
-```
-
-[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/blog-multiple-authors)
-
-> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
-
-Features:
-
-- ✅ SEO-friendly setup with canonical URLs and OpenGraph data
-- ✅ Full Markdown support
-- ✅ RSS 2.0 generation
-- ✅ Sitemap.xml generation
-
-## 🚀 Project Structure
-
-Inside of your Astro project, you'll see the following folders and files:
-
-```
-/
-├── public/
-│ ├── robots.txt
-│ └── favicon.ico
-├── src/
-│ ├── components/
-│ │ └── Tour.astro
-│ └── pages/
-│ └── index.astro
-└── package.json
-```
-
-Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
-
-There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
-
-Any static assets, like images, can be placed in the `public/` directory.
-
-## 🧞 Commands
-
-All commands are run from the root of the project, from a terminal:
-
-| Command | Action |
-|:---------------- |:-------------------------------------------- |
-| `npm install` | Installs dependencies |
-| `npm run dev` | Starts local dev server at `localhost:3000` |
-| `npm run build` | Build your production site to `./dist/` |
-| `npm run preview` | Preview your build locally, before deploying |
-
-## 👀 Want to learn more?
-
-Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
diff --git a/examples/blog-multiple-authors/astro.config.mjs b/examples/blog-multiple-authors/astro.config.mjs
deleted file mode 100644
index 44cff71d3..000000000
--- a/examples/blog-multiple-authors/astro.config.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineConfig } from 'astro/config';
-import preact from '@astrojs/preact';
-
-// https://astro.build/config
-export default defineConfig({
- // Enable the Preact integration to support Preact JSX components.
- integrations: [preact()],
- site: `http://astro.build`,
-});
diff --git a/examples/blog-multiple-authors/package.json b/examples/blog-multiple-authors/package.json
deleted file mode 100644
index a2dc398b4..000000000
--- a/examples/blog-multiple-authors/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "@example/blog-multiple-authors",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "astro dev",
- "start": "astro dev",
- "build": "astro build",
- "preview": "astro preview"
- },
- "devDependencies": {
- "@astrojs/preact": "^0.5.2",
- "astro": "^1.0.0-rc.6",
- "sass": "^1.52.2"
- },
- "dependencies": {
- "preact": "^10.7.3"
- }
-}
diff --git a/examples/blog-multiple-authors/public/favicon.ico b/examples/blog-multiple-authors/public/favicon.ico
deleted file mode 100644
index 578ad458b..000000000
--- a/examples/blog-multiple-authors/public/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/examples/blog-multiple-authors/public/images/chapter-01.jpg b/examples/blog-multiple-authors/public/images/chapter-01.jpg
deleted file mode 100644
index a848d3059..000000000
--- a/examples/blog-multiple-authors/public/images/chapter-01.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/blog-multiple-authors/public/images/chapter-02.jpg b/examples/blog-multiple-authors/public/images/chapter-02.jpg
deleted file mode 100644
index 0a18c689d..000000000
--- a/examples/blog-multiple-authors/public/images/chapter-02.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/blog-multiple-authors/public/images/chapter-03.jpg b/examples/blog-multiple-authors/public/images/chapter-03.jpg
deleted file mode 100644
index e3b6823ce..000000000
--- a/examples/blog-multiple-authors/public/images/chapter-03.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/blog-multiple-authors/public/images/don.jpg b/examples/blog-multiple-authors/public/images/don.jpg
deleted file mode 100644
index 4419679de..000000000
--- a/examples/blog-multiple-authors/public/images/don.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/blog-multiple-authors/public/images/sancho.jpg b/examples/blog-multiple-authors/public/images/sancho.jpg
deleted file mode 100644
index 2c2b0c6bd..000000000
--- a/examples/blog-multiple-authors/public/images/sancho.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/blog-multiple-authors/sandbox.config.json b/examples/blog-multiple-authors/sandbox.config.json
deleted file mode 100644
index 9178af77d..000000000
--- a/examples/blog-multiple-authors/sandbox.config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "infiniteLoopProtection": true,
- "hardReloadOnChange": false,
- "view": "browser",
- "template": "node",
- "container": {
- "port": 3000,
- "startScript": "start",
- "node": "14"
- }
-}
diff --git a/examples/blog-multiple-authors/src/components/MainHead.astro b/examples/blog-multiple-authors/src/components/MainHead.astro
deleted file mode 100644
index be3584519..000000000
--- a/examples/blog-multiple-authors/src/components/MainHead.astro
+++ /dev/null
@@ -1,49 +0,0 @@
----
-import "../styles/global.css";
-
-export interface Props {
- title: string;
- description: string;
- image?: string;
- type?: string;
- next?: string;
- prev?: string;
- canonicalURL?: string | URL;
-}
-
-const { title, description, image, type, next, prev, canonicalURL } = Astro.props as Props;
----
-
-<!-- Common -->
-<meta charset="UTF-8" />
-<title>{title}</title>
-<meta name="description" content={description} />
-<link rel="preconnect" href="https://fonts.gstatic.com" />
-<link
- href="https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,700;1,400;1,700&display=swap"
- rel="stylesheet"
-/>
-<!-- Sitemap -->
-<link rel="sitemap" href="/sitemap.xml" />
-<!-- RSS -->
-<link rel="alternate" type="application/rss+xml" href="/feed/posts.xml" />
-
-<!-- Favicon -->
-<link rel="icon" type="image/x-icon" href="/favicon.ico" />
-
-<!-- SEO -->
-<link rel="canonical" href={canonicalURL} />
-{next && <link rel="next" aria-label="Previous Page" href={new URL(next, canonicalURL).href} />}
-{prev && <link rel="prev" aria-label="Next Page" href={new URL(prev, canonicalURL).href} />}
-
-<!-- OpenGraph -->
-<meta property="og:title" content={title} />
-<meta property="og:description" content={description} />
-{image && <meta property="og:image" content={new URL(image, canonicalURL)} />}
-
-<!-- Twitter -->
-<meta name="twitter:card" content={image ? "summary_large_image" : "summary"} />
-<meta name="twitter:site" content="@astro" />
-<meta name="twitter:title" content={title} />
-<meta name="twitter:description" content={description} />
-{image && <meta name="twitter:image" content={image} />}
diff --git a/examples/blog-multiple-authors/src/components/Nav.astro b/examples/blog-multiple-authors/src/components/Nav.astro
deleted file mode 100644
index a2a5fc3a3..000000000
--- a/examples/blog-multiple-authors/src/components/Nav.astro
+++ /dev/null
@@ -1,63 +0,0 @@
----
-export interface Props {
- title: string;
-}
-const { title } = Astro.props;
----
-
-<nav class="header">
- <h1 class="title">Don’s Blog</h1>
- <ul class="nav">
- <li><a href="/">Home</a></li>
- <li><a href="/posts">All Posts</a></li>
- <li><a href="/authors/don">Author: Don</a></li>
- <li><a href="/authors/sancho">Author: Sancho</a></li>
- <li><a href="/about">About</a></li>
- </ul>
-</nav>
-
-<style lang="scss">
- .header {
- text-align: center;
-
- @media (min-width: 600px) {
- display: flex;
- align-items: center;
- padding: 2rem;
- }
- }
-
- .title {
- margin: 0;
- font-size: 1.2em;
- letter-spacing: -0.03em;
- font-weight: 400;
- margin-right: 1em;
- }
-
- .nav {
- text-align: center;
-
- @media (min-width: 600px) {
- display: flex;
- }
- }
-
- ul {
- list-style: none;
- margin: 0;
- padding: 0;
- }
-
- li {
- margin: 0;
- }
-
- a {
- display: block;
- font-size: 1.2em;
- letter-spacing: -0.02em;
- margin-left: 0.75em;
- margin-right: 0.75em;
- }
-</style>
diff --git a/examples/blog-multiple-authors/src/components/Pagination.astro b/examples/blog-multiple-authors/src/components/Pagination.astro
deleted file mode 100644
index f31f00776..000000000
--- a/examples/blog-multiple-authors/src/components/Pagination.astro
+++ /dev/null
@@ -1,44 +0,0 @@
----
-export interface Props {
- prevUrl: string;
- nextUrl: string;
-}
-
-const { prevUrl, nextUrl } = Astro.props;
----
-
-<div class="wrapper">
- <nav class="nav">
- <a class="prev" href={prevUrl || "#"} aria-label="Previous Page">Prev</a>
- <a class="next" href={nextUrl || "#"} aria-label="Next Page">Next</a>
- </nav>
-</div>
-
-<style lang="scss">
- .nav {
- display: flex;
- margin-right: auto;
- margin-left: auto;
- padding-top: 4rem;
- padding-bottom: 4rem;
- }
-
- .prev,
- .next {
- display: block;
- text-transform: uppercase;
- font-size: 0.8em;
-
- &[href="#"] {
- display: none;
- }
- }
-
- .prev {
- margin-right: auto;
- }
-
- .next {
- margin-left: auto;
- }
-</style>
diff --git a/examples/blog-multiple-authors/src/components/PostPreview.astro b/examples/blog-multiple-authors/src/components/PostPreview.astro
deleted file mode 100644
index cf1579203..000000000
--- a/examples/blog-multiple-authors/src/components/PostPreview.astro
+++ /dev/null
@@ -1,66 +0,0 @@
----
-export interface Props {
- post: any;
- author: string;
-}
-const { post, author } = Astro.props;
-const { frontmatter } = post;
-
-function formatDate(date) {
- return new Date(date).toUTCString().replace(/(\d\d\d\d) .*/, "$1"); // remove everything after YYYY
-}
----
-
-<article class="post">
- <div class="data">
- <h2>{frontmatter.title}</h2>
- <a class="author" href={`/authors/${frontmatter.author}`}>{author.name}</a>
- <time class="date" datetime={frontmatter.date}>{formatDate(frontmatter.date)}</time>
- <p class="description">
- {frontmatter.description}
- <a class="link" href={post.url} aria-label={`Read ${frontmatter.title}`}>Read</a>
- </p>
- </div>
-</article>
-
-<style lang="scss">
- .post {
- padding-top: 6rem;
- padding-bottom: 6rem;
- border-bottom: 1px solid rgba(black, 0.25);
- text-align: center;
- }
-
- .author {
- text-transform: uppercase;
- }
-
- .date {
- font-style: italic;
- }
-
- .description {
- font-size: 1.25em;
- }
-
- .link {
- text-transform: uppercase;
- font-size: 0.8em;
- margin-left: 1em;
- }
-
- h2 {
- font-weight: 700;
- font-size: 2.75em;
- line-height: 1;
- letter-spacing: -0.04em;
- margin-top: 0;
- margin-bottom: 0;
- }
-
- time {
- display: block;
- margin-top: 0.25rem;
- margin-bottom: 0.5em;
- }
-</style>
diff --git a/examples/blog-multiple-authors/src/data/authors.json b/examples/blog-multiple-authors/src/data/authors.json
deleted file mode 100644
index 1eeff3766..000000000
--- a/examples/blog-multiple-authors/src/data/authors.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "don": {
- "name": "Don Quixote",
- "image": "/images/don.jpg"
- },
- "sancho": {
- "name": "Sancho Panza",
- "image": "/images/sancho.jpg"
- }
-}
diff --git a/examples/blog-multiple-authors/src/layouts/post.astro b/examples/blog-multiple-authors/src/layouts/post.astro
deleted file mode 100644
index 8aaa5ba5e..000000000
--- a/examples/blog-multiple-authors/src/layouts/post.astro
+++ /dev/null
@@ -1,82 +0,0 @@
----
-import MainHead from "../components/MainHead.astro";
-import Nav from "../components/Nav.astro";
-
-const { content } = Astro.props;
-const canonicalURL = new URL(Astro.url.pathname, Astro.site);
----
-
-<html lang={content.lang || "en"}>
- <head>
- <title>{content.title}</title>
- <MainHead
- title={content.title}
- description={content.description}
- image={content.image}
- {canonicalURL}
- />
- <style lang="scss">
- .title {
- margin-top: 4rem;
- margin-bottom: 4rem;
- font-size: 3em;
- letter-spacing: -0.04em;
- text-align: center;
- }
-
- .description {
- margin-bottom: 4rem;
- font-size: 1.4em;
- font-weight: 400;
- text-align: justify;
- text-transform: uppercase;
- }
-
- .img {
- display: block;
- width: 100%;
- height: auto;
- }
-
- .article {
- margin-top: 4rem;
- margin-bottom: 6rem;
-
- :global(p) {
- font-size: 1.3em;
- line-height: 2;
- margin-top: 2em;
- margin-bottom: 2em;
- }
- }
-
- .posts {
- text-transform: uppercase;
- }
-
- .footer {
- margin-top: 6rem;
- padding-bottom: 6rem;
- text-align: center;
- }
- </style>
- </head>
-
- <body>
- <Nav />
-
- <main class="wrapper">
- <h2 class="title">{content.title}</h2>
- <p class="description">{content.description}</p>
- <img class="img" src={content.image} alt="" />
- <article class="article">
- <slot />
- </article>
- <footer class="footer">
- <a class="posts" href="/posts">All Posts</a>
- </footer>
- </main>
-
- <footer></footer>
- </body>
-</html>
diff --git a/examples/blog-multiple-authors/src/pages/about.astro b/examples/blog-multiple-authors/src/pages/about.astro
deleted file mode 100644
index 0edb1446e..000000000
--- a/examples/blog-multiple-authors/src/pages/about.astro
+++ /dev/null
@@ -1,74 +0,0 @@
----
-import MainHead from "../components/MainHead.astro";
-import Nav from "../components/Nav.astro";
-
-let title = "About";
-let description = "About page of an example blog on Astro";
-const canonicalURL = new URL(Astro.url.pathname, Astro.site);
----
-
-<html lang="en">
- <head>
- <MainHead {title} {description} {canonicalURL} />
- <style lang="scss">
- .text {
- padding-bottom: 6rem;
-
- p {
- font-size: 1.2em;
- line-height: 2;
- margin-top: 2em;
- margin-bottom: 2em;
- }
- }
-
- .hero {
- display: block;
- height: 16rem;
- overflow: hidden;
- margin: 4rem 0;
-
- &-img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
- }
-
- .title {
- font-size: 3em;
- letter-spacing: -0.04em;
- margin-top: 2rem;
- margin-bottom: 0;
- text-align: center;
- }
- </style>
- </head>
- <body>
- <Nav {title} />
-
- <main class="wrapper">
- <h2 class="title">{title}</h2>
- <div class="hero">
- <img class="hero-img" src="/images/chapter-01.jpg" alt="" />
- </div>
- <div class="text">
- <p>
- The book cover and spine above and the images which follow were not part of the original
- Ormsby translation—they are taken from the 1880 edition of J. W. Clark, illustrated by
- Gustave Doré. Clark in his edition states that, “The English text of ‘Don Quixote’ adopted
- in this edition is that of Jarvis, with occasional corrections from Motteaux.”
- </p>
- <p>
- See in the introduction below John Ormsby’s critique of both the Jarvis and Motteaux
- translations. It has been elected in the present Project Gutenberg edition to attach the
- famous engravings of Gustave Doré to the Ormsby translation instead of the
- Jarvis/Motteaux. The detail of many of the Doré engravings can be fully appreciated only
- by utilizing the “Full Size” button to expand them to their original dimensions. Ormsby in
- his Preface has criticized the fanciful nature of Doré’s illustrations; others feel these
- woodcuts and steel engravings well match Quixote’s dreams.
- </p>
- </div>
- </main>
- </body>
-</html>
diff --git a/examples/blog-multiple-authors/src/pages/authors/[author].astro b/examples/blog-multiple-authors/src/pages/authors/[author].astro
deleted file mode 100644
index 368fdd591..000000000
--- a/examples/blog-multiple-authors/src/pages/authors/[author].astro
+++ /dev/null
@@ -1,80 +0,0 @@
----
-import MainHead from "../../components/MainHead.astro";
-import Nav from "../../components/Nav.astro";
-import PostPreview from "../../components/PostPreview.astro";
-import authorData from "../../data/authors.json";
-
-export async function getStaticPaths() {
- const allPosts = await Astro.glob("../post/*.md");
- let allAuthorsUnique = [...new Set(allPosts.map((p) => p.frontmatter.author))];
- return allAuthorsUnique.map((author) => ({ params: { author }, props: { allPosts } }));
-}
-
-const { allPosts } = Astro.props;
-const title = "Don’s Blog";
-const description = "An example blog on Astro";
-const canonicalURL = new URL(Astro.url.pathname, Astro.site);
-
-/** filter posts by author, sort by date */
-const posts = allPosts
- .filter((post) => post.frontmatter.author === Astro.params.author)
- .sort((a, b) => new Date(b.frontmatter.date).valueOf() - new Date(a.frontmatter.date).valueOf());
-const author = authorData[posts[0].frontmatter.author];
----
-
-<html lang="en">
- <head>
- <title>{title}</title>
- <MainHead
- {title}
- {description}
- image={posts[0].frontmatter.image}
- canonicalURL={canonicalURL.toString()}
- />
-
- <style lang="scss">
- .title {
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 3em;
- letter-spacing: -0.04em;
- margin-top: 2rem;
- margin-bottom: 0;
- }
-
- .avatar {
- width: 1em;
- height: 1em;
- margin-right: 0.5em;
- border-radius: 50%;
- overflow: hidden;
-
- &-img {
- display: block;
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
- }
-
- .count {
- font-size: 1em;
- display: block;
- text-align: center;
- }
- </style>
- </head>
-
- <body>
- <Nav {title} />
-
- <main class="wrapper">
- <h2 class="title">
- <div class="avatar"><img class="avatar-img" src={author.image} alt="" /></div>
- {author.name}
- </h2>
- {posts.map((post) => <PostPreview post={post} author={author} />)}
- </main>
- </body>
-</html>
diff --git a/examples/blog-multiple-authors/src/pages/index.astro b/examples/blog-multiple-authors/src/pages/index.astro
deleted file mode 100644
index 8e47b8f15..000000000
--- a/examples/blog-multiple-authors/src/pages/index.astro
+++ /dev/null
@@ -1,45 +0,0 @@
----
-// Component Imports
-import MainHead from "../components/MainHead.astro";
-import Nav from "../components/Nav.astro";
-import PostPreview from "../components/PostPreview.astro";
-import Pagination from "../components/Pagination.astro";
-import authorData from "../data/authors.json";
-
-// Component Script:
-// You can write any JavaScript/TypeScript that you'd like here.
-// It will run during the build, but never in the browser.
-// All variables are available to use in the HTML template below.
-let title = "Don’s Blog";
-let description = "An example blog on Astro";
-const canonicalURL = new URL(Astro.url.pathname, Astro.site);
-
-// Data Fetching: List all Markdown posts in the repo.
-let allPosts = await Astro.glob("./post/*.md");
-allPosts.sort(
- (a, b) => new Date(b.frontmatter.date).valueOf() - new Date(a.frontmatter.date).valueOf()
-);
-let firstPage = allPosts.slice(0, 2);
-// Full Astro Component Syntax:
-// https://docs.astro.build/core-concepts/astro-components/
----
-
-<html lang="en">
- <head>
- <MainHead {title} {description} image={allPosts[0].frontmatter.image} {canonicalURL} />
- </head>
-
- <body>
- <Nav {title} />
-
- <main class="wrapper">
- {allPosts.map((post) => (
- <PostPreview post={post} author={authorData[post.frontmatter.author]} />
- ))}
- </main>
-
- <footer>
- <Pagination prevUrl="/posts" nextUrl="/posts/2" />
- </footer>
- </body>
-</html>
diff --git a/examples/blog-multiple-authors/src/pages/post/chapter-i.md b/examples/blog-multiple-authors/src/pages/post/chapter-i.md
deleted file mode 100644
index 9a6fa14ea..000000000
--- a/examples/blog-multiple-authors/src/pages/post/chapter-i.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: ../../layouts/post.astro
-title: Chapter I
-tag: movie
-date: 2021-05-17
-image: /images/chapter-01.jpg
-author: don
-description: Which Treats of the Character and Pursuits of the Famous Gentleman Don Quixote of La Mancha
----
-
-In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing. An olla of rather more beef than mutton, a salad on most nights, scraps on Saturdays, lentils on Fridays, and a pigeon or so extra on Sundays, made away with three-quarters of his income. The rest of it went in a doublet of fine cloth and velvet breeches and shoes to match for holidays, while on week-days he made a brave figure in his best homespun. He had in his house a housekeeper past forty, a niece under twenty, and a lad for the field and market-place, who used to saddle the hack as well as handle the bill-hook. The age of this gentleman of ours was bordering on fifty; he was of a hardy habit, spare, gaunt-featured, a very early riser and a great sportsman. They will have it his surname was Quixada or Quesada (for here there is some difference of opinion among the authors who write on the subject), although from reasonable conjectures it seems plain that he was called Quexana. This, however, is of but little importance to our tale; it will be enough not to stray a hair’s breadth from the truth in the telling of it.
-
-You must know, then, that the above-named gentleman whenever he was at leisure (which was mostly all the year round) gave himself up to reading books of chivalry with such ardour and avidity that he almost entirely neglected the pursuit of his field-sports, and even the management of his property; and to such a pitch did his eagerness and infatuation go that he sold many an acre of tillageland to buy books of chivalry to read, and brought home as many of them as he could get. But of all there were none he liked so well as those of the famous Feliciano de Silva’s composition, for their lucidity of style and complicated conceits were as pearls in his sight, particularly when in his reading he came upon courtships and cartels, where he often found passages like “the reason of the unreason with which my reason is afflicted so weakens my reason that with reason I murmur at your beauty;” or again, “the high heavens, that of your divinity divinely fortify you with the stars, render you deserving of the desert your greatness deserves.” Over conceits of this sort the poor gentleman lost his wits, and used to lie awake striving to understand them and worm the meaning out of them; what Aristotle himself could not have made out or extracted had he come to life again for that special purpose. He was not at all easy about the wounds which Don Belianis gave and took, because it seemed to him that, great as were the surgeons who had cured him, he must have had his face and body covered all over with seams and scars. He commended, however, the author’s way of ending his book with the promise of that interminable adventure, and many a time was he tempted to take up his pen and finish it properly as is there proposed, which no doubt he would have done, and made a successful piece of work of it too, had not greater and more absorbing thoughts prevented him.
diff --git a/examples/blog-multiple-authors/src/pages/post/chapter-ii.md b/examples/blog-multiple-authors/src/pages/post/chapter-ii.md
deleted file mode 100644
index eda406b42..000000000
--- a/examples/blog-multiple-authors/src/pages/post/chapter-ii.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: ../../layouts/post.astro
-title: Chapter II
-tag: movie
-date: 2021-05-18
-image: /images/chapter-02.jpg
-author: sancho
-description: Which Treats of the First Sally the Ingenious Don Quixote Made From Home
----
-
-These preliminaries settled, he did not care to put off any longer the execution of his design, urged on to it by the thought of all the world was losing by his delay, seeing what wrongs he intended to right, grievances to redress, injustices to repair, abuses to remove, and duties to discharge. So, without giving notice of his intention to anyone, and without anybody seeing him, one morning before the dawning of the day (which was one of the hottest of the month of July) he donned his suit of armour, mounted Rocinante with his patched-up helmet on, braced his buckler, took his lance, and by the back door of the yard sallied forth upon the plain in the highest contentment and satisfaction at seeing with what ease he had made a beginning with his grand purpose. But scarcely did he find himself upon the open plain, when a terrible thought struck him, one all but enough to make him abandon the enterprise at the very outset. It occurred to him that he had not been dubbed a knight, and that according to the law of chivalry he neither could nor ought to bear arms against any knight; and that even if he had been, still he ought, as a novice knight, to wear white armour, without a device upon the shield until by his prowess he had earned one. These reflections made him waver in his purpose, but his craze being stronger than any reasoning, he made up his mind to have himself dubbed a knight by the first one he came across, following the example of others in the same case, as he had read in the books that brought him to this pass. As for white armour, he resolved, on the first opportunity, to scour his until it was whiter than an ermine; and so comforting himself he pursued his way, taking that which his horse chose, for in this he believed lay the essence of adventures.
-
-Thus setting out, our new-fledged adventurer paced along, talking to himself and saying, “Who knows but that in time to come, when the veracious history of my famous deeds is made known, the sage who writes it, when he has to set forth my first sally in the early morning, will do it after this fashion? ‘Scarce had the rubicund Apollo spread o’er the face of the broad spacious earth the golden threads of his bright hair, scarce had the little birds of painted plumage attuned their notes to hail with dulcet and mellifluous harmony the coming of the rosy Dawn, that, deserting the soft couch of her jealous spouse, was appearing to mortals at the gates and balconies of the Manchegan horizon, when the renowned knight Don Quixote of La Mancha, quitting the lazy down, mounted his celebrated steed Rocinante and began to traverse the ancient and famous Campo de Montiel;’” which in fact he was actually traversing. “Happy the age, happy the time,” he continued, “in which shall be made known my deeds of fame, worthy to be moulded in brass, carved in marble, limned in pictures, for a memorial for ever. And thou, O sage magician, whoever thou art, to whom it shall fall to be the chronicler of this wondrous history, forget not, I entreat thee, my good Rocinante, the constant companion of my ways and wanderings.” Presently he broke out again, as if he were love-stricken in earnest, “O Princess Dulcinea, lady of this captive heart, a grievous wrong hast thou done me to drive me forth with scorn, and with inexorable obduracy banish me from the presence of thy beauty. O lady, deign to hold in remembrance this heart, thy vassal, that thus in anguish pines for love of thee.”
-
-So he went on stringing together these and other absurdities, all in the style of those his books had taught him, imitating their language as well as he could; and all the while he rode so slowly and the sun mounted so rapidly and with such fervour that it was enough to melt his brains if he had any. Nearly all day he travelled without anything remarkable happening to him, at which he was in despair, for he was anxious to encounter someone at once upon whom to try the might of his strong arm.
diff --git a/examples/blog-multiple-authors/src/pages/post/chapter-iii.md b/examples/blog-multiple-authors/src/pages/post/chapter-iii.md
deleted file mode 100644
index 0b799bc61..000000000
--- a/examples/blog-multiple-authors/src/pages/post/chapter-iii.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: ../../layouts/post.astro
-title: Chapter III
-tag: movie
-date: 2021-05-19
-image: /images/chapter-03.jpg
-author: don
-description: Wheren is Related the Droll Way in which Don Quixote Had Himself Dubbed a Knight
----
-
-Harassed by this reflection, he made haste with his scanty pothouse supper, and having finished it called the landlord, and shutting himself into the stable with him, fell on his knees before him, saying, “From this spot I rise not, valiant knight, until your courtesy grants me the boon I seek, one that will redound to your praise and the benefit of the human race.” The landlord, seeing his guest at his feet and hearing a speech of this kind, stood staring at him in bewilderment, not knowing what to do or say, and entreating him to rise, but all to no purpose until he had agreed to grant the boon demanded of him. “I looked for no less, my lord, from your High Magnificence,” replied Don Quixote, “and I have to tell you that the boon I have asked and your liberality has granted is that you shall dub me knight to-morrow morning, and that to-night I shall watch my arms in the chapel of this your castle; thus to-morrow, as I have said, will be accomplished what I so much desire, enabling me lawfully to roam through all the four quarters of the world seeking adventures on behalf of those in distress, as is the duty of chivalry and of knights-errant like myself, whose ambition is directed to such deeds.”
-
-The landlord, who, as has been mentioned, was something of a wag, and had already some suspicion of his guest’s want of wits, was quite convinced of it on hearing talk of this kind from him, and to make sport for the night he determined to fall in with his humour. So he told him he was quite right in pursuing the object he had in view, and that such a motive was natural and becoming in cavaliers as distinguished as he seemed and his gallant bearing showed him to be; and that he himself in his younger days had followed the same honourable calling, roaming in quest of adventures in various parts of the world, among others the Curing-grounds of Malaga, the Isles of Riaran, the Precinct of Seville, the Little Market of Segovia, the Olivera of Valencia, the Rondilla of Granada, the Strand of San Lucar, the Colt of Cordova, the Taverns of Toledo, and divers other quarters, where he had proved the nimbleness of his feet and the lightness of his fingers, doing many wrongs, cheating many widows, ruining maids and swindling minors, and, in short, bringing himself under the notice of almost every tribunal and court of justice in Spain; until at last he had retired to this castle of his, where he was living upon his property and upon that of others; and where he received all knights-errant of whatever rank or condition they might be, all for the great love he bore them and that they might share their substance with him in return for his benevolence. He told him, moreover, that in this castle of his there was no chapel in which he could watch his armour, as it had been pulled down in order to be rebuilt, but that in a case of necessity it might, he knew, be watched anywhere, and he might watch it that night in a courtyard of the castle, and in the morning, God willing, the requisite ceremonies might be performed so as to have him dubbed a knight, and so thoroughly dubbed that nobody could be more so. He asked if he had any money with him, to which Don Quixote replied that he had not a farthing, as in the histories of knights-errant he had never read of any of them carrying any. On this point the landlord told him he was mistaken; for, though not recorded in the histories, because in the author’s opinion there was no need to mention anything so obvious and necessary as money and clean shirts, it was not to be supposed therefore that they did not carry them, and he might regard it as certain and established that all knights-errant (about whom there were so many full and unimpeachable books) carried well-furnished purses in case of emergency, and likewise carried shirts and a little box of ointment to cure the wounds they received. For in those plains and deserts where they engaged in combat and came out wounded, it was not always that there was someone to cure them, unless indeed they had for a friend some sage magician to succour them at once by fetching through the air upon a cloud some damsel or dwarf with a vial of water of such virtue that by tasting one drop of it they were cured of their hurts and wounds in an instant and left as sound as if they had not received any damage whatever. But in case this should not occur, the knights of old took care to see that their squires were provided with money and other requisites, such as lint and ointments for healing purposes; and when it happened that knights had no squires (which was rarely and seldom the case) they themselves carried everything in cunning saddle-bags that were hardly seen on the horse’s croup, as if it were something else of more importance, because, unless for some such reason, carrying saddle-bags was not very favourably regarded among knights-errant. He therefore advised him (and, as his godson so soon to be, he might even command him) never from that time forth to travel without money and the usual requirements, and he would find the advantage of them when he least expected it.
diff --git a/examples/blog-multiple-authors/src/pages/posts/[...page].astro b/examples/blog-multiple-authors/src/pages/posts/[...page].astro
deleted file mode 100644
index 3c6488855..000000000
--- a/examples/blog-multiple-authors/src/pages/posts/[...page].astro
+++ /dev/null
@@ -1,83 +0,0 @@
----
-import MainHead from "../../components/MainHead.astro";
-import Nav from "../../components/Nav.astro";
-import PostPreview from "../../components/PostPreview.astro";
-import Pagination from "../../components/Pagination.astro";
-import authorData from "../../data/authors.json";
-
-export async function getStaticPaths({ paginate, rss }) {
- const allPosts = await Astro.glob("../post/*.md");
- const sortedPosts = allPosts.sort(
- (a, b) => new Date(b.frontmatter.date).valueOf() - new Date(a.frontmatter.date).valueOf()
- );
-
- // Generate an RSS feed from this collection of posts.
- // NOTE: This is disabled by default, since it requires `site` to be set in your "astro.config.mjs" file.
- // rss({
- // title: 'Don’s Blog',
- // description: 'An example blog on Astro',
- // customData: `<language>en-us</language>`,
- // items: sortedPosts.map(item => ({
- // title: item.title,
- // description: item.description,
- // link: item.url,
- // pubDate: item.date,
- // })),
- // });
-
- // Return a paginated collection of paths for all posts
- return paginate(sortedPosts, { pageSize: 1 });
-}
-
-// page
-const title = "Don’s Blog";
-const description = "An example blog on Astro";
-const canonicalURL = new URL(Astro.url.pathname, Astro.site);
-const { page } = Astro.props;
----
-
-<html lang="en">
- <head>
- <title>{title}</title>
- <MainHead
- {title}
- {description}
- image={page.data[0].frontmatter.image}
- canonicalURL={canonicalURL.toString()}
- prev={page.url.prev}
- next={page.url.next}
- />
-
- <style lang="scss">
- .title {
- font-size: 3em;
- letter-spacing: -0.04em;
- margin-top: 2rem;
- margin-bottom: 0;
- text-align: center;
- }
-
- .count {
- font-size: 1em;
- display: block;
- text-align: center;
- }
- </style>
- </head>
-
- <body>
- <Nav {title} />
-
- <main class="wrapper">
- <h2 class="title">All Posts</h2>
- <small class="count">{page.start + 1}–{page.end + 1} of {page.total}</small>
- {page.data.map((post) => (
- <PostPreview post={post} author={authorData[post.frontmatter.author]} />
- ))}
- </main>
-
- <footer>
- <Pagination prevUrl={page.url.prev} nextUrl={page.url.next} />
- </footer>
- </body>
-</html>
diff --git a/examples/blog-multiple-authors/src/styles/global.css b/examples/blog-multiple-authors/src/styles/global.css
deleted file mode 100644
index 408d2b9de..000000000
--- a/examples/blog-multiple-authors/src/styles/global.css
+++ /dev/null
@@ -1,25 +0,0 @@
-body {
- font-family: 'Spectral', serif;
- line-height: 1.4;
-}
-
-p {
- line-height: 2;
-}
-
-a {
- color: crimson;
-}
-
-img {
- max-width: 100%;
- height: auto;
-}
-
-.wrapper {
- max-width: 60rem;
- margin-left: auto;
- margin-right: auto;
- padding-left: 2rem;
- padding-right: 2rem;
-}
diff --git a/examples/blog-multiple-authors/tsconfig.json b/examples/blog-multiple-authors/tsconfig.json
deleted file mode 100644
index 4db6ee701..000000000
--- a/examples/blog-multiple-authors/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "compilerOptions": {
- // Enable top-level await, and other modern ESM features.
- "target": "ESNext",
- "module": "ESNext",
- // Enable node-style module resolution, for things like npm package imports.
- "moduleResolution": "node",
- // Enable JSON imports.
- "resolveJsonModule": true,
- // Enable stricter transpilation for better output.
- "isolatedModules": true,
- // Add type definitions for our Astro runtime.
- "types": ["astro/client"]
- }
-}
diff --git a/examples/component/demo/public/robots.txt b/examples/component/demo/public/robots.txt
deleted file mode 100644
index 1f53798bb..000000000
--- a/examples/component/demo/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /
diff --git a/examples/docs/src/components/HeadSEO.astro b/examples/docs/src/components/HeadSEO.astro
index 43a19c52b..e3fa7b992 100644
--- a/examples/docs/src/components/HeadSEO.astro
+++ b/examples/docs/src/components/HeadSEO.astro
@@ -1,5 +1,5 @@
---
-import { SITE, OPEN_GRAPH } from "../config.ts";
+import { SITE, OPEN_GRAPH } from "../config";
export interface Props {
content: any;
site: any;
diff --git a/examples/docs/src/components/Header/Header.astro b/examples/docs/src/components/Header/Header.astro
index 0e493b25d..650c93411 100644
--- a/examples/docs/src/components/Header/Header.astro
+++ b/examples/docs/src/components/Header/Header.astro
@@ -1,11 +1,11 @@
---
-import { getLanguageFromURL, KNOWN_LANGUAGE_CODES } from "../../languages.ts";
-import * as CONFIG from "../../config.ts";
+import { getLanguageFromURL, KNOWN_LANGUAGE_CODES } from "../../languages";
+import * as CONFIG from "../../config";
import AstroLogo from "./AstroLogo.astro";
import SkipToContent from "./SkipToContent.astro";
-import SidebarToggle from "./SidebarToggle.tsx";
-import LanguageSelect from "./LanguageSelect.tsx";
-import Search from "./Search.tsx";
+import SidebarToggle from "./SidebarToggle";
+import LanguageSelect from "./LanguageSelect";
+import Search from "./Search";
const { currentPage } = Astro.props;
const lang = currentPage && getLanguageFromURL(currentPage);
diff --git a/examples/docs/src/components/LeftSidebar/LeftSidebar.astro b/examples/docs/src/components/LeftSidebar/LeftSidebar.astro
index 68c70de2a..f71610598 100644
--- a/examples/docs/src/components/LeftSidebar/LeftSidebar.astro
+++ b/examples/docs/src/components/LeftSidebar/LeftSidebar.astro
@@ -1,6 +1,6 @@
---
-import { getLanguageFromURL } from "../../languages.ts";
-import { SIDEBAR } from "../../config.ts";
+import { getLanguageFromURL } from "../../languages";
+import { SIDEBAR } from "../../config";
const { currentPage } = Astro.props;
const currentPageMatch = currentPage.slice(1);
const langCode = getLanguageFromURL(currentPage);
diff --git a/examples/docs/src/components/PageContent/PageContent.astro b/examples/docs/src/components/PageContent/PageContent.astro
index 11c130b05..e0d96b57c 100644
--- a/examples/docs/src/components/PageContent/PageContent.astro
+++ b/examples/docs/src/components/PageContent/PageContent.astro
@@ -1,6 +1,6 @@
---
import MoreMenu from "../RightSidebar/MoreMenu.astro";
-import TableOfContents from "../RightSidebar/TableOfContents.tsx";
+import TableOfContents from "../RightSidebar/TableOfContents";
const { content, githubEditUrl } = Astro.props;
const title = content.title;
diff --git a/examples/docs/src/components/RightSidebar/MoreMenu.astro b/examples/docs/src/components/RightSidebar/MoreMenu.astro
index 9b0e426cf..9c7eddacd 100644
--- a/examples/docs/src/components/RightSidebar/MoreMenu.astro
+++ b/examples/docs/src/components/RightSidebar/MoreMenu.astro
@@ -1,5 +1,5 @@
---
-import ThemeToggleButton from "./ThemeToggleButton.tsx";
+import ThemeToggleButton from "./ThemeToggleButton";
import * as CONFIG from "../../config";
const { editHref } = Astro.props;
const showMoreSection = CONFIG.COMMUNITY_INVITE_URL || editHref;
diff --git a/examples/docs/src/components/RightSidebar/RightSidebar.astro b/examples/docs/src/components/RightSidebar/RightSidebar.astro
index 1406b065e..c009d2202 100644
--- a/examples/docs/src/components/RightSidebar/RightSidebar.astro
+++ b/examples/docs/src/components/RightSidebar/RightSidebar.astro
@@ -1,5 +1,5 @@
---
-import TableOfContents from "./TableOfContents.tsx";
+import TableOfContents from "./TableOfContents";
import MoreMenu from "./MoreMenu.astro";
const { content, githubEditUrl } = Astro.props;
const headings = content.astro.headings;
diff --git a/examples/starter/.vscode/extensions.json b/examples/env-vars/.vscode/extensions.json
index 22a15055d..22a15055d 100644
--- a/examples/starter/.vscode/extensions.json
+++ b/examples/env-vars/.vscode/extensions.json
diff --git a/examples/starter/.vscode/launch.json b/examples/env-vars/.vscode/launch.json
index d64220976..d64220976 100644
--- a/examples/starter/.vscode/launch.json
+++ b/examples/env-vars/.vscode/launch.json
diff --git a/examples/env-vars/src/env.d.ts b/examples/env-vars/src/env.d.ts
index 35cb37076..a44cdaa49 100644
--- a/examples/env-vars/src/env.d.ts
+++ b/examples/env-vars/src/env.d.ts
@@ -1,5 +1,8 @@
/// <reference types="astro/client" />
+// Use this file to type your environment variables!
+// See https://docs.astro.build/en/guides/environment-variables/#intellisense-for-typescript for more information
+
interface ImportMetaEnv {
readonly DB_PASSWORD: string;
readonly PUBLIC_SOME_KEY: string;
diff --git a/examples/framework-alpine/.vscode/extensions.json b/examples/framework-alpine/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-alpine/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-alpine/.vscode/launch.json b/examples/framework-alpine/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-alpine/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json
index 679ae5f69..44e492fe3 100644
--- a/examples/framework-alpine/package.json
+++ b/examples/framework-alpine/package.json
@@ -9,6 +9,7 @@
"preview": "astro preview"
},
"devDependencies": {
+ "@types/alpinejs": "^3.7.0",
"astro": "^1.0.0-rc.6"
},
"dependencies": {
diff --git a/examples/framework-alpine/src/components/Counter.astro b/examples/framework-alpine/src/components/Counter.astro
index 4d0b62a60..0aebebb98 100644
--- a/examples/framework-alpine/src/components/Counter.astro
+++ b/examples/framework-alpine/src/components/Counter.astro
@@ -2,10 +2,14 @@
// Full Astro Component Syntax:
// https://docs.astro.build/core-concepts/astro-components/
-const { initialCount = 0 } = Astro.props;
+export interface Props {
+ initialCount?: number;
+}
+
+const { initialCount = 0 } = Astro.props as Props;
---
-<div class="counter" x-data=`{ count: ${initialCount} }`>
+<div class="counter" x-data={`{ count: ${initialCount} }`}>
<button x-on:click="count--">-</button>
<pre x-text="count">{ initialCount }</pre>
<button x-on:click="count++">+</button>
@@ -23,6 +27,7 @@ const { initialCount = 0 } = Astro.props;
margin-top: 2em;
place-items: center;
}
+
.counter-message {
text-align: center;
}
diff --git a/examples/framework-alpine/src/pages/index.astro b/examples/framework-alpine/src/pages/index.astro
index 7517f3eb4..26987837d 100644
--- a/examples/framework-alpine/src/pages/index.astro
+++ b/examples/framework-alpine/src/pages/index.astro
@@ -25,7 +25,6 @@ import Counter from "../components/Counter.astro";
<!-- Load AlpineJS on the page -->
<script>
import Alpine from "alpinejs";
- window.Alpine = Alpine;
Alpine.start();
</script>
</head>
diff --git a/examples/framework-lit/.vscode/extensions.json b/examples/framework-lit/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-lit/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-lit/.vscode/launch.json b/examples/framework-lit/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-lit/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-lit/public/robots.txt b/examples/framework-lit/public/robots.txt
deleted file mode 100644
index 1f53798bb..000000000
--- a/examples/framework-lit/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /
diff --git a/examples/framework-lit/src/pages/index.astro b/examples/framework-lit/src/pages/index.astro
index faa131524..78c13f2fb 100644
--- a/examples/framework-lit/src/pages/index.astro
+++ b/examples/framework-lit/src/pages/index.astro
@@ -2,6 +2,9 @@
import Lorem from "../components/Lorem.astro";
import { CalcAdd } from "../components/calc-add.js";
import { MyCounter } from "../components/my-counter.js";
+
+// Full Astro Component Syntax:
+// https://docs.astro.build/core-concepts/astro-components/
---
<!DOCTYPE html>
diff --git a/examples/framework-multiple/.vscode/extensions.json b/examples/framework-multiple/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-multiple/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-multiple/.vscode/launch.json b/examples/framework-multiple/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-multiple/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-multiple/astro.config.mjs b/examples/framework-multiple/astro.config.mjs
index 4b50887cd..d4461d396 100644
--- a/examples/framework-multiple/astro.config.mjs
+++ b/examples/framework-multiple/astro.config.mjs
@@ -4,9 +4,10 @@ import react from '@astrojs/react';
import svelte from '@astrojs/svelte';
import vue from '@astrojs/vue';
import solid from '@astrojs/solid-js';
+import lit from '@astrojs/lit';
// https://astro.build/config
export default defineConfig({
// Enable many frameworks to support all different kinds of components.
- integrations: [preact(), react(), svelte(), vue(), solid()],
+ integrations: [preact(), react(), svelte(), vue(), solid(), lit()],
});
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index b49f7c162..a4e1e2018 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -9,7 +9,6 @@
"preview": "astro preview"
},
"devDependencies": {
- "@astrojs/lit": "^0.3.2",
"@astrojs/preact": "^0.5.2",
"@astrojs/react": "^0.4.2",
"@astrojs/solid-js": "^0.4.1",
@@ -18,8 +17,6 @@
"astro": "^1.0.0-rc.6"
},
"dependencies": {
- "@webcomponents/template-shadowroot": "^0.1.0",
- "lit": "^2.2.5",
"preact": "^10.7.3",
"react": "^18.1.0",
"react-dom": "^18.1.0",
diff --git a/examples/framework-multiple/src/components/A.astro b/examples/framework-multiple/src/components/A.astro
deleted file mode 100644
index 2b7bd482a..000000000
--- a/examples/framework-multiple/src/components/A.astro
+++ /dev/null
@@ -1,3 +0,0 @@
-<div class="children">
- <h1>Hello Astro (A)</h1>
-</div>
diff --git a/examples/framework-multiple/src/components/B.astro b/examples/framework-multiple/src/components/B.astro
deleted file mode 100644
index 3640fe831..000000000
--- a/examples/framework-multiple/src/components/B.astro
+++ /dev/null
@@ -1,3 +0,0 @@
-<div class="children">
- <h1>Hello Astro (B)</h1>
-</div>
diff --git a/examples/framework-multiple/src/components/LitCounter.js b/examples/framework-multiple/src/components/LitCounter.js
deleted file mode 100644
index 883a7581d..000000000
--- a/examples/framework-multiple/src/components/LitCounter.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { LitElement, html } from 'lit';
-
-export const tagName = 'my-counter';
-
-class Counter extends LitElement {
- static get properties() {
- return {
- count: {
- type: Number,
- },
- };
- }
-
- constructor() {
- super();
- this.count = 0;
- }
-
- increment() {
- this.count++;
- }
-
- render() {
- return html`
- <div>
- <p>Count: ${this.count}</p>
- <button type="button" @click=${this.increment}>Increment</button>
- </div>
- `;
- }
-}
-
-customElements.define(tagName, Counter);
diff --git a/examples/framework-multiple/src/components/PreactCounter.tsx b/examples/framework-multiple/src/components/PreactCounter.tsx
index 261f275a1..2fb0a54b9 100644
--- a/examples/framework-multiple/src/components/PreactCounter.tsx
+++ b/examples/framework-multiple/src/components/PreactCounter.tsx
@@ -1,6 +1,8 @@
+/** @jsxImportSource preact */
+
import { useState } from 'preact/hooks';
-/** a counter written in Preact */
+/** A counter written with Preact */
export function PreactCounter({ children }) {
const [count, setCount] = useState(0);
const add = () => setCount((i) => i + 1);
diff --git a/examples/framework-multiple/src/components/PreactSFC.tsx b/examples/framework-multiple/src/components/PreactSFC.tsx
deleted file mode 100644
index 60d0fe836..000000000
--- a/examples/framework-multiple/src/components/PreactSFC.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-/** @jsxImportSource preact */
-
-/** a counter written in Preact */
-export default function PreactSFC({ children }) {
- return (
- <>
- <div className="counter">Hello from Preact!</div>
- </>
- );
-}
diff --git a/examples/framework-multiple/src/components/ReactCounter.jsx b/examples/framework-multiple/src/components/ReactCounter.tsx
index cdd42bee2..1cff97917 100644
--- a/examples/framework-multiple/src/components/ReactCounter.jsx
+++ b/examples/framework-multiple/src/components/ReactCounter.tsx
@@ -1,6 +1,6 @@
import { useState } from 'react';
-/** a counter written in React */
+/** A counter written with React */
export function Counter({ children }) {
const [count, setCount] = useState(0);
const add = () => setCount((i) => i + 1);
diff --git a/examples/framework-multiple/src/components/SolidCounter.tsx b/examples/framework-multiple/src/components/SolidCounter.tsx
index b16a463d5..153feaddc 100644
--- a/examples/framework-multiple/src/components/SolidCounter.tsx
+++ b/examples/framework-multiple/src/components/SolidCounter.tsx
@@ -1,6 +1,8 @@
+/** @jsxImportSource solid-js */
+
import { createSignal } from 'solid-js';
-/** a counter written with Solid */
+/** A counter written with Solid */
export default function SolidCounter({ children }) {
const [count, setCount] = createSignal(0);
const add = () => setCount(count() + 1);
diff --git a/examples/framework-multiple/src/components/SvelteCounter.svelte b/examples/framework-multiple/src/components/SvelteCounter.svelte
index 3cab8c43a..01e58574a 100644
--- a/examples/framework-multiple/src/components/SvelteCounter.svelte
+++ b/examples/framework-multiple/src/components/SvelteCounter.svelte
@@ -1,22 +1,23 @@
+<!-- @component
+A counter written with Svelte
+-->
+<script lang="ts">
+ let count = 0;
-<script>
- let children;
- let count = 0;
-
- function add() {
+ function add() {
count += 1;
}
- function subtract() {
+ function subtract() {
count -= 1;
}
</script>
<div class="counter">
- <button on:click={subtract}>-</button>
- <pre>{ count }</pre>
- <button on:click={add}>+</button>
+ <button on:click={subtract}>-</button>
+ <pre>{count}</pre>
+ <button on:click={add}>+</button>
</div>
<div class="counter-message">
- <slot />
+ <slot />
</div>
diff --git a/examples/framework-multiple/src/components/VueCounter.vue b/examples/framework-multiple/src/components/VueCounter.vue
index bd801ca81..74820f7f0 100644
--- a/examples/framework-multiple/src/components/VueCounter.vue
+++ b/examples/framework-multiple/src/components/VueCounter.vue
@@ -1,4 +1,10 @@
<template>
+ <!--
+ Seeing type errors on the word `class`?
+ This unfortunately happens because @types/react's JSX definitions leak into every file due to being declared globally.
+ There's currently no way to prevent this when using both Vue and React with TypeScript in the same project.
+ You can read more about this issue here: https://github.com/johnsoncodehk/volar/discussions/592
+ -->
<div class="counter">
<button @click="subtract()">-</button>
<pre>{{ count }}</pre>
@@ -9,7 +15,7 @@
</div>
</template>
-<script>
+<script lang="ts">
import { ref } from 'vue';
export default {
setup() {
diff --git a/examples/framework-multiple/src/components/index.ts b/examples/framework-multiple/src/components/index.ts
deleted file mode 100644
index 4077dcacd..000000000
--- a/examples/framework-multiple/src/components/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { default as A } from './A.astro';
-export { default as B } from './B.astro';
diff --git a/examples/framework-multiple/src/pages/index.astro b/examples/framework-multiple/src/pages/index.astro
index 6dfdc4e52..ac8996504 100644
--- a/examples/framework-multiple/src/pages/index.astro
+++ b/examples/framework-multiple/src/pages/index.astro
@@ -1,12 +1,13 @@
---
// Style Imports
import "../styles/global.css";
+
// Component Imports
-import { A, B as Renamed } from "../components";
-import * as react from "../components/ReactCounter.jsx";
-import { PreactCounter } from "../components/PreactCounter.tsx";
-import PreactSFC from "../components/PreactSFC.tsx";
-import SolidCounter from "../components/SolidCounter.tsx";
+// For JSX components, all the common ways of exporting (under a namespace, specific export, default export etc) are supported!
+import * as react from "../components/ReactCounter";
+import { PreactCounter } from "../components/PreactCounter";
+import SolidCounter from "../components/SolidCounter";
+
import VueCounter from "../components/VueCounter.vue";
import SvelteCounter from "../components/SvelteCounter.svelte";
@@ -23,29 +24,24 @@ import SvelteCounter from "../components/SvelteCounter.svelte";
<body>
<main>
<react.Counter client:visible>
- <h1>Hello React!</h1>
- <p>What's up?</p>
+ <h1>Hello from React!</h1>
</react.Counter>
<PreactCounter client:visible>
- <h1>Hello Preact!</h1>
+ <h1>Hello from Preact!</h1>
</PreactCounter>
<SolidCounter client:visible>
- <h1>Hello Solid!</h1>
+ <h1>Hello from Solid!</h1>
</SolidCounter>
<VueCounter client:visible>
- <h1>Hello Vue!</h1>
+ <h1>Hello from Vue!</h1>
</VueCounter>
<SvelteCounter client:visible>
- <h1>Hello Svelte!</h1>
+ <h1>Hello from Svelte!</h1>
</SvelteCounter>
-
- <A />
-
- <Renamed />
</main>
</body>
</html>
diff --git a/examples/framework-multiple/tsconfig.json b/examples/framework-multiple/tsconfig.json
index 4db6ee701..7e64c543c 100644
--- a/examples/framework-multiple/tsconfig.json
+++ b/examples/framework-multiple/tsconfig.json
@@ -3,6 +3,8 @@
// Enable top-level await, and other modern ESM features.
"target": "ESNext",
"module": "ESNext",
+ // Needed for TypeScript intellisense in the template inside Vue files
+ "jsx": "preserve",
// Enable node-style module resolution, for things like npm package imports.
"moduleResolution": "node",
// Enable JSON imports.
diff --git a/examples/framework-preact/.vscode/extensions.json b/examples/framework-preact/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-preact/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-preact/.vscode/launch.json b/examples/framework-preact/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-preact/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-preact/src/pages/index.astro b/examples/framework-preact/src/pages/index.astro
index dc2d35fc0..6dc118ab0 100644
--- a/examples/framework-preact/src/pages/index.astro
+++ b/examples/framework-preact/src/pages/index.astro
@@ -1,6 +1,6 @@
---
// Component Imports
-import Counter from "../components/Counter.tsx";
+import Counter from "../components/Counter";
// Full Astro Component Syntax:
// https://docs.astro.build/core-concepts/astro-components/
diff --git a/examples/framework-react/.vscode/extensions.json b/examples/framework-react/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-react/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-react/.vscode/launch.json b/examples/framework-react/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-react/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-react/src/components/Counter.jsx b/examples/framework-react/src/components/Counter.tsx
index 97ddf34c7..6321469d3 100644
--- a/examples/framework-react/src/components/Counter.jsx
+++ b/examples/framework-react/src/components/Counter.tsx
@@ -1,7 +1,7 @@
-import React, { useState } from 'react';
+import { useState } from 'react';
import './Counter.css';
-export default function Counter({ children, count: initialCount }) {
+export default function Counter({ children, count: initialCount }: { children: JSX.Element, count: number }) {
const [count, setCount] = useState(initialCount);
const add = () => setCount((i) => i + 1);
const subtract = () => setCount((i) => i - 1);
diff --git a/examples/framework-react/src/pages/index.astro b/examples/framework-react/src/pages/index.astro
index 8f3142393..61806949a 100644
--- a/examples/framework-react/src/pages/index.astro
+++ b/examples/framework-react/src/pages/index.astro
@@ -1,6 +1,6 @@
---
// Component Imports
-import Counter from "../components/Counter.jsx";
+import Counter from "../components/Counter";
const someProps = {
count: 0,
};
diff --git a/examples/framework-solid/.vscode/extensions.json b/examples/framework-solid/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-solid/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-solid/.vscode/launch.json b/examples/framework-solid/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-solid/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-solid/src/components/Counter.jsx b/examples/framework-solid/src/components/Counter.tsx
index 1255fa399..1255fa399 100644
--- a/examples/framework-solid/src/components/Counter.jsx
+++ b/examples/framework-solid/src/components/Counter.tsx
diff --git a/examples/framework-solid/src/pages/index.astro b/examples/framework-solid/src/pages/index.astro
index 710ad1687..c75644ea4 100644
--- a/examples/framework-solid/src/pages/index.astro
+++ b/examples/framework-solid/src/pages/index.astro
@@ -1,8 +1,12 @@
---
-import Counter from "../components/Counter.jsx";
+// Component Imports
+import Counter from "../components/Counter";
+
+// Full Astro Component Syntax:
+// https://docs.astro.build/core-concepts/astro-components/
---
-<html>
+<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
diff --git a/examples/framework-svelte/.vscode/extensions.json b/examples/framework-svelte/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-svelte/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-svelte/.vscode/launch.json b/examples/framework-svelte/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-svelte/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-svelte/src/components/Counter.svelte b/examples/framework-svelte/src/components/Counter.svelte
index 2f4c07339..1353736aa 100644
--- a/examples/framework-svelte/src/components/Counter.svelte
+++ b/examples/framework-svelte/src/components/Counter.svelte
@@ -1,33 +1,34 @@
-<script>
- let count = 0;
+<script lang="ts">
+ let count = 0;
- function add() {
- count += 1;
- }
+ function add() {
+ count += 1;
+ }
- function subtract() {
- count -= 1;
- }
+ function subtract() {
+ count -= 1;
+ }
</script>
<div class="counter">
- <button on:click={subtract}>-</button>
- <pre>{ count }</pre>
- <button on:click={add}>+</button>
+ <button on:click={subtract}>-</button>
+ <pre>{count}</pre>
+ <button on:click={add}>+</button>
</div>
<div class="message">
- <slot />
+ <slot />
</div>
<style>
- .counter{
- display: grid;
- font-size: 2em;
- grid-template-columns: repeat(3, minmax(0, 1fr));
- margin-top: 2em;
- place-items: center;
- }
- .message {
- text-align: center;
- }
+ .counter {
+ display: grid;
+ font-size: 2em;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ margin-top: 2em;
+ place-items: center;
+ }
+
+ .message {
+ text-align: center;
+ }
</style>
diff --git a/examples/framework-vue/.vscode/extensions.json b/examples/framework-vue/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/framework-vue/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/framework-vue/.vscode/launch.json b/examples/framework-vue/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/framework-vue/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/framework-vue/src/components/Counter.vue b/examples/framework-vue/src/components/Counter.vue
index d5d5215f7..5ce5352b8 100644
--- a/examples/framework-vue/src/components/Counter.vue
+++ b/examples/framework-vue/src/components/Counter.vue
@@ -9,7 +9,7 @@
</div>
</template>
-<script>
+<script lang="ts">
import { ref } from 'vue';
export default {
setup() {
@@ -34,6 +34,7 @@ export default {
margin-top: 2em;
place-items: center;
}
+
.counter-message {
text-align: center;
}
diff --git a/examples/framework-vue/tsconfig.json b/examples/framework-vue/tsconfig.json
index 4db6ee701..7e64c543c 100644
--- a/examples/framework-vue/tsconfig.json
+++ b/examples/framework-vue/tsconfig.json
@@ -3,6 +3,8 @@
// Enable top-level await, and other modern ESM features.
"target": "ESNext",
"module": "ESNext",
+ // Needed for TypeScript intellisense in the template inside Vue files
+ "jsx": "preserve",
// Enable node-style module resolution, for things like npm package imports.
"moduleResolution": "node",
// Enable JSON imports.
diff --git a/examples/integrations-playground/.gitignore b/examples/integrations-playground/.gitignore
deleted file mode 100644
index 02f6e50b4..000000000
--- a/examples/integrations-playground/.gitignore
+++ /dev/null
@@ -1,19 +0,0 @@
-# build output
-dist/
-
-# dependencies
-node_modules/
-
-# logs
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-
-
-# environment variables
-.env
-.env.production
-
-# macOS-specific files
-.DS_Store
diff --git a/examples/integrations-playground/.npmrc b/examples/integrations-playground/.npmrc
deleted file mode 100644
index ef83021af..000000000
--- a/examples/integrations-playground/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-# Expose Astro dependencies for `pnpm` users
-shamefully-hoist=true
diff --git a/examples/integrations-playground/.stackblitzrc b/examples/integrations-playground/.stackblitzrc
deleted file mode 100644
index 43798ecff..000000000
--- a/examples/integrations-playground/.stackblitzrc
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "startCommand": "npm start",
- "env": {
- "ENABLE_CJS_IMPORTS": true
- }
-} \ No newline at end of file
diff --git a/examples/integrations-playground/README.md b/examples/integrations-playground/README.md
deleted file mode 100644
index bcbad42d4..000000000
--- a/examples/integrations-playground/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Integrations Playground
-
-```
-npm init astro -- --template integrations-playground
-```
-
-[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/integrations-playground)
diff --git a/examples/integrations-playground/astro.config.mjs b/examples/integrations-playground/astro.config.mjs
deleted file mode 100644
index 939d22866..000000000
--- a/examples/integrations-playground/astro.config.mjs
+++ /dev/null
@@ -1,14 +0,0 @@
-import { defineConfig } from 'astro/config';
-import lit from '@astrojs/lit';
-import react from '@astrojs/react';
-import tailwind from '@astrojs/tailwind';
-import turbolinks from '@astrojs/turbolinks';
-import sitemap from '@astrojs/sitemap';
-import partytown from '@astrojs/partytown';
-import solid from '@astrojs/solid-js';
-
-// https://astro.build/config
-export default defineConfig({
- site: 'https://example.com',
- integrations: [lit(), react(), tailwind(), turbolinks(), partytown(), sitemap(), solid()],
-});
diff --git a/examples/integrations-playground/package.json b/examples/integrations-playground/package.json
deleted file mode 100644
index b06b100de..000000000
--- a/examples/integrations-playground/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "@example/integrations-playground",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "astro dev",
- "start": "astro dev",
- "build": "astro build",
- "preview": "astro preview"
- },
- "devDependencies": {
- "@astrojs/lit": "^0.3.2",
- "@astrojs/partytown": "^0.1.9",
- "@astrojs/react": "^0.4.2",
- "@astrojs/sitemap": "^0.3.0",
- "@astrojs/solid-js": "0.4.1",
- "@astrojs/tailwind": "^0.2.5",
- "@astrojs/turbolinks": "^0.1.4",
- "astro": "^1.0.0-rc.6",
- "solid-js": "^1.4.3"
- },
- "dependencies": {
- "@webcomponents/template-shadowroot": "^0.1.0",
- "lit": "^2.2.5",
- "preact": "^10.7.3",
- "react": "^18.1.0",
- "react-dom": "^18.1.0",
- "svelte": "^3.48.0",
- "vue": "^3.2.37"
- }
-}
diff --git a/examples/integrations-playground/public/assets/logo.svg b/examples/integrations-playground/public/assets/logo.svg
deleted file mode 100644
index d751556b2..000000000
--- a/examples/integrations-playground/public/assets/logo.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<svg width="193" height="256" fill="none" xmlns="http://www.w3.org/2000/svg">
- <style>
- #flame { fill: #FF5D01; }
- #a { fill: #000014; }
- @media (prefers-color-scheme: dark) {
- #a { fill: #fff; }
- }
- </style>
-
- <path id="a" fill-rule="evenodd" clip-rule="evenodd" d="M131.496 18.929c1.943 2.413 2.935 5.67 4.917 12.181l43.309 142.27a180.277 180.277 0 00-51.778-17.53L99.746 60.56a3.67 3.67 0 00-7.042.01l-27.857 95.232a180.224 180.224 0 00-52.01 17.557l43.52-142.281c1.989-6.502 2.983-9.752 4.927-12.16a15.999 15.999 0 016.484-4.798c2.872-1.154 6.271-1.154 13.07-1.154h31.085c6.807 0 10.211 0 13.085 1.157a16 16 0 016.488 4.806z" fill="url(#paint0_linear)"/>
- <path id="flame" fill-rule="evenodd" clip-rule="evenodd" d="M136.678 180.151c-7.14 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.962 10.367-1.962 13.902 0 0-1.055 17.355 11.016 29.426 0-6.268 5.081-11.349 11.349-11.349 10.743 0 10.731 9.373 10.721 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.973-19.87 5.977-3.79 12.616-8.001 17.192-16.449a31.013 31.013 0 003.744-14.82c0-3.299-.513-6.479-1.463-9.463z" />
-</svg>
diff --git a/examples/integrations-playground/public/favicon.ico b/examples/integrations-playground/public/favicon.ico
deleted file mode 100644
index 578ad458b..000000000
--- a/examples/integrations-playground/public/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/examples/integrations-playground/public/robots.txt b/examples/integrations-playground/public/robots.txt
deleted file mode 100644
index 1f53798bb..000000000
--- a/examples/integrations-playground/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /
diff --git a/examples/integrations-playground/sandbox.config.json b/examples/integrations-playground/sandbox.config.json
deleted file mode 100644
index 9178af77d..000000000
--- a/examples/integrations-playground/sandbox.config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "infiniteLoopProtection": true,
- "hardReloadOnChange": false,
- "view": "browser",
- "template": "node",
- "container": {
- "port": 3000,
- "startScript": "start",
- "node": "14"
- }
-}
diff --git a/examples/integrations-playground/src/components/Link.jsx b/examples/integrations-playground/src/components/Link.jsx
deleted file mode 100644
index 040d112c3..000000000
--- a/examples/integrations-playground/src/components/Link.jsx
+++ /dev/null
@@ -1,6 +0,0 @@
-/* jsxImportSource: react */
-import React from 'react';
-
-export default function Link({ to, text }) {
- return <a href={to}>{text}</a>;
-}
diff --git a/examples/integrations-playground/src/components/Lorem.astro b/examples/integrations-playground/src/components/Lorem.astro
deleted file mode 100644
index 1355c1313..000000000
--- a/examples/integrations-playground/src/components/Lorem.astro
+++ /dev/null
@@ -1,115 +0,0 @@
----
-//hey
----
-
-<style>
- p {
- color: red;
- }
-</style>
-<p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quam arcu, rhoncus et dui at,
- volutpat viverra augue. Suspendisse placerat libero tellus, ut consequat ligula rutrum id.
- Vestibulum lectus libero, viverra in lacus eget, porttitor tincidunt leo. Integer sit amet turpis
- et felis fringilla lacinia in id nibh. Proin vitae dapibus odio. Mauris ornare eget urna id
- volutpat. Duis tellus nisi, hendrerit id sodales in, rutrum a quam. Proin tempor velit turpis, et
- tempor lacus sagittis in. Sed congue mauris quis nibh posuere, nec semper lacus auctor. Morbi sit
- amet enim sit amet arcu ullamcorper sollicitudin. Donec dignissim posuere tincidunt. Donec
- ultrices quam nec orci venenatis suscipit. Maecenas sapien quam, pretium sit amet ullamcorper at,
- vulputate sit amet urna. Suspendisse potenti. Integer in sapien turpis. Nulla accumsan viverra
- diam, quis convallis magna finibus eget. Integer sed eros bibendum, consequat velit sit amet,
- tincidunt orci. Mauris varius id metus in fringilla. Vestibulum dignissim massa eget erat luctus,
- ac congue mauris pellentesque. In et tempor dolor. Cras blandit congue lorem at facilisis. Aenean
- vel lacinia quam. Pellentesque luctus metus ut scelerisque efficitur. Mauris laoreet sodales
- libero eget luctus. Proin at congue dui, a cursus risus. Pellentesque lorem sem, rhoncus fermentum
- arcu ut, euismod fermentum ligula. Nullam eu orci posuere, laoreet leo in, commodo dolor. Fusce at
- felis elementum, commodo justo at, placerat justo. Nam feugiat scelerisque arcu, ut fermentum
- tellus elementum in. Sed ut vulputate ante. Morbi cursus arcu quis odio convallis egestas. Donec
- vulputate vestibulum dolor eget tristique. Nullam tempor semper augue, vitae lobortis neque tempor
- ac. Pellentesque massa leo, congue id ligula auctor, sollicitudin pharetra lorem. Curabitur a
- lacus porttitor, venenatis est quis, mattis velit. Fusce hendrerit lobortis mi ac efficitur.
- Mauris ornare, lorem sed varius faucibus, nisi dui pretium urna, sit amet lacinia nibh ligula in
- ipsum. Phasellus gravida, metus eget ornare ultrices, dolor ipsum consectetur erat, ac aliquet
- eros metus sed lectus. Nullam eleifend posuere rhoncus. Curabitur semper ligula vel ante posuere,
- at blandit orci accumsan. Vivamus accumsan metus in lorem laoreet, a luctus arcu tempus. Donec
- posuere sollicitudin nulla at vulputate. Nulla condimentum imperdiet purus, et lobortis ligula
- iaculis in. Donec suscipit viverra neque, ut elementum eros lacinia ut. Fusce at odio enim. Donec
- rutrum lectus sit amet est auctor, ac rhoncus lorem imperdiet. Curabitur commodo ex est, non
- tempus massa pulvinar nec. Sed fermentum, lectus eget ultricies luctus, enim sem sodales quam, sed
- laoreet tortor sem feugiat nisi. Morbi molestie vehicula viverra. Integer accumsan mi in orci
- ultrices posuere. Integer mi quam, faucibus et aliquet imperdiet, ornare ac ex. Nunc mattis
- molestie nisi, eu venenatis nibh vehicula at. Aliquam ut elit consectetur, finibus lorem sed,
- condimentum sapien. Praesent fermentum iaculis orci, vitae tincidunt est viverra nec. Morbi semper
- turpis sed lectus ornare tristique. Sed congue dui ex. Maecenas orci ligula, imperdiet sit amet
- accumsan et, finibus a velit. Ut vitae blandit eros. Nam gravida nec ipsum non volutpat. Integer
- quam metus, porttitor id ante sed, rutrum porta quam. Aenean at mattis ante. Morbi id libero eget
- risus sagittis gravida. Proin consequat sapien a dignissim posuere. Ut luctus sed metus ut
- elementum. Mauris tincidunt condimentum risus at bibendum. Aenean a sapien justo. Morbi vel neque
- in eros venenatis scelerisque vitae nec justo. Vestibulum lacinia, dui eu sollicitudin ornare, est
- elit vestibulum arcu, nec ultrices augue turpis in massa. Duis commodo lectus sed est posuere, et
- mollis nisi dapibus. Sed id ultrices arcu. Praesent tempor sodales aliquet. Donec suscipit ipsum
- eu odio cursus, quis sodales metus sodales. Nunc vestibulum massa at felis ullamcorper cursus.
- Pellentesque facilisis ante ut lectus vulputate vestibulum. Nullam pharetra felis ac lacus
- sodales, vel suscipit metus faucibus. Donec facilisis imperdiet risus, in volutpat odio tincidunt
- a. Aliquam vitae leo lorem. Proin scelerisque efficitur velit, vel cursus ipsum accumsan id. Morbi
- nibh nulla, pretium quis venenatis et, pharetra et sapien. Cras lobortis, massa sit amet blandit
- pulvinar, mi magna condimentum ex, quis commodo ipsum est quis metus. Maecenas pulvinar, leo sit
- amet congue pulvinar, neque magna ultrices mi, et rhoncus massa sapien quis libero. Etiam a nunc
- et ipsum faucibus pretium. Nulla facilisi. Nunc nec dolor velit. In semper semper mi non
- condimentum. Pellentesque vehicula volutpat odio, a semper sem porta a. In sit amet lectus rutrum,
- sollicitudin augue auctor, maximus quam. Mauris congue, nisl non fermentum iaculis, leo erat
- interdum lorem, quis bibendum arcu eros et elit. Fusce tortor ante, gravida a arcu in, lacinia
- finibus ante. Phasellus facilisis lectus vitae sapien feugiat laoreet. Curabitur ultricies libero
- sit amet condimentum suscipit. Duis at vestibulum mi. Suspendisse at neque augue. Duis ornare a
- mauris id efficitur. Suspendisse in dui nec dolor dignissim venenatis. Curabitur a magna turpis.
- Aliquam at commodo tellus. In id sem interdum, suscipit felis at, mattis velit. Proin accumsan
- sodales felis a lacinia. Curabitur at magna a massa varius maximus. Vestibulum in auctor ante.
- Donec aliquam tortor sed nulla rutrum, et egestas mi efficitur. Sed viverra quam tellus, quis
- vulputate felis ultrices sed. Mauris sagittis, neque quis laoreet gravida, nisi est ultrices mi,
- at tempus nunc justo non dui. Suspendisse porttitor tortor nulla, eget luctus quam finibus id.
- Proin sodales eros mollis tellus euismod luctus a eu mi. Quisque consectetur iaculis nibh, at
- mollis tellus volutpat eu. Aenean a nulla vel lectus rhoncus aliquam. Donec vitae lacinia neque.
- Donec non lectus eget sem finibus ultrices vel nec felis. Proin fringilla mi a leo rhoncus aliquam
- sit amet quis augue. Duis congue ligula at est suscipit fringilla. Proin aliquam erat ut consequat
- dapibus. Suspendisse non nisi orci. Donec ac erat vel libero egestas laoreet. Nullam felis odio,
- tincidunt eget eleifend a, porttitor eu nisi. Suspendisse tristique eros at dolor scelerisque
- hendrerit. Etiam id dignissim lectus. Fusce lacinia metus eu risus placerat, et eleifend nunc
- ultrices. Ut gravida a dui sed volutpat. Sed semper quis erat sed ornare. Pellentesque sapien sem,
- fermentum vel nunc at, auctor posuere nisl. Maecenas aliquet lobortis leo. Vivamus tellus urna,
- dignissim consectetur sapien vitae, hendrerit varius sem. Nunc dictum tristique fermentum. Duis eu
- suscipit odio. Curabitur quis egestas neque. Fusce eu fringilla orci, vitae euismod sapien. Donec
- sit amet iaculis urna. Phasellus maximus nisl in libero bibendum volutpat. Nulla at vehicula
- lorem. Phasellus varius, elit ac suscipit pretium, turpis ipsum porttitor lectus, vitae
- ullamcorper orci velit ut ligula. Proin mollis, orci vel commodo auctor, sapien ipsum vulputate
- enim, sit amet aliquam nulla sapien ut sapien. Proin tincidunt ex non massa aliquet, quis aliquam
- nulla egestas. Maecenas mollis turpis dapibus, dignissim lectus tincidunt, egestas ligula.
- Suspendisse in lobortis purus. Sed tellus tellus, mollis eget tempor sed, interdum ut lectus.
- Nulla sed ex efficitur, porta dui cursus, tristique elit. Maecenas tincidunt tortor vitae massa
- laoreet ultricies. Mauris ac elit vitae orci eleifend ornare non eu ligula. Curabitur venenatis
- nulla ut neque tristique, non tincidunt justo pretium. Suspendisse mattis semper dui, eget
- vestibulum risus elementum sed. In consequat nisi sit amet nulla euismod, at convallis tortor
- tincidunt. Aliquam hendrerit venenatis risus in interdum. Duis ullamcorper imperdiet elit sit amet
- blandit. Mauris placerat lacinia velit id pharetra. Nam nec iaculis dui. Etiam odio mi, fringilla
- in rutrum in, viverra quis tellus. Aliquam egestas mauris id nisi facilisis, in laoreet nibh
- malesuada. Ut eu dui laoreet, venenatis tellus ac, feugiat mauris. Nunc in velit laoreet,
- venenatis tellus quis, blandit dolor. Nulla ultrices et neque id placerat. Nulla eu interdum
- nulla. Aliquam molestie enim quis rutrum finibus. Nulla bibendum orci vel scelerisque posuere.
- Praesent quis magna molestie, luctus tortor tincidunt, gravida neque. Quisque et ligula eget magna
- viverra interdum at a sapien. Mauris ornare efficitur nunc sed vulputate. Praesent laoreet mollis
- tincidunt. Vestibulum id arcu vulputate, eleifend enim vel, accumsan turpis. Morbi faucibus
- convallis tellus, semper laoreet justo lacinia nec. Sed sodales ligula consectetur dui rhoncus, et
- convallis metus accumsan. Sed ullamcorper non ex sit amet ultricies. Donec finibus nulla nec
- blandit porttitor. Etiam aliquam quis leo a imperdiet. Cras at lobortis est. In convallis semper
- enim, ac porta ligula fringilla at. Donec augue est, facilisis et odio sit amet, viverra
- ullamcorper nisl. Ut porta velit nec sem lacinia, sit amet mollis magna auctor. Nulla lobortis
- lacinia mauris nec sagittis. Suspendisse rutrum ex vel nisi interdum hendrerit et ut purus. Sed
- consectetur sodales nibh eget tempus. Aenean egestas luctus viverra. Integer fermentum tincidunt
- tellus, nec rhoncus velit hendrerit vitae. Proin quis neque porttitor, scelerisque risus gravida,
- volutpat sem. Fusce nec ex rhoncus, tempor libero nec, pellentesque ex. Integer quis iaculis
- purus. Nullam vitae imperdiet orci. Sed sit amet eros condimentum, scelerisque turpis facilisis,
- dignissim ante. Proin quis tristique lacus, sed sagittis nisl. Cras pharetra ultrices purus, sed
- ullamcorper nisi fringilla eu. Praesent risus turpis, auctor in fringilla a, fringilla eu dolor.
- Phasellus auctor tristique enim, eleifend molestie diam venenatis ut. Mauris dapibus, enim eget
- pharetra semper, nulla dui porttitor mi, auctor hendrerit augue nulla quis urna. Aliquam in cursus
- justo.
-</p>
diff --git a/examples/integrations-playground/src/components/SolidCounter.jsx b/examples/integrations-playground/src/components/SolidCounter.jsx
deleted file mode 100644
index 4453b881c..000000000
--- a/examples/integrations-playground/src/components/SolidCounter.jsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { createSignal } from 'solid-js';
-
-export default function Counter(props) {
- const [count, setCount] = createSignal(0);
- const add = () => setCount(count() + 1);
- const subtract = () => setCount(count() - 1);
-
- return (
- <>
- <div class="counter">
- <button onClick={subtract}>-</button>
- <pre>{count()}</pre>
- <button onClick={add}>+</button>
- </div>
- <div class="counter-message">{props.children}</div>
- </>
- );
-}
diff --git a/examples/integrations-playground/src/components/calc-add.js b/examples/integrations-playground/src/components/calc-add.js
deleted file mode 100644
index b0b3978bf..000000000
--- a/examples/integrations-playground/src/components/calc-add.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { LitElement, html } from 'lit';
-
-export class CalcAdd extends LitElement {
- static get properties() {
- return {
- num: {
- type: Number,
- },
- };
- }
-
- render() {
- return html` <div>Number: ${this.num}</div> `;
- }
-}
-
-customElements.define('calc-add', CalcAdd);
diff --git a/examples/integrations-playground/src/components/my-counter.js b/examples/integrations-playground/src/components/my-counter.js
deleted file mode 100644
index adc9e4a3d..000000000
--- a/examples/integrations-playground/src/components/my-counter.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import { LitElement, html } from 'lit';
-
-export class MyCounter extends LitElement {
- static get properties() {
- return {
- count: {
- type: Number,
- },
- };
- }
-
- constructor() {
- super();
- this.count = 0;
- }
-
- increment() {
- this.count++;
- }
-
- render() {
- return html`
- <div>
- <p>Count: ${this.count}</p>
-
- <button type="button" @click=${this.increment}>Increment</button>
- </div>
- `;
- }
-}
-
-customElements.define('my-counter', MyCounter);
diff --git a/examples/integrations-playground/src/pages/foo.astro b/examples/integrations-playground/src/pages/foo.astro
deleted file mode 100644
index 0e9785f14..000000000
--- a/examples/integrations-playground/src/pages/foo.astro
+++ /dev/null
@@ -1,15 +0,0 @@
----
-// Page 2!
-import Link from "../components/Link.jsx";
----
-
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
- <title>Demo: Page 2</title>
- </head>
- <body>
- <Link to="/" text="Go Home" />
- </body>
-</html>
diff --git a/examples/integrations-playground/src/pages/index.astro b/examples/integrations-playground/src/pages/index.astro
deleted file mode 100644
index f2b0d2c8a..000000000
--- a/examples/integrations-playground/src/pages/index.astro
+++ /dev/null
@@ -1,54 +0,0 @@
----
-import Lorem from "../components/Lorem.astro";
-import Link from "../components/Link.jsx";
-import SolidCounter from "../components/SolidCounter.jsx";
-import { CalcAdd } from "../components/calc-add.js";
-import { MyCounter } from "../components/my-counter.js";
----
-
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
- <title>Demo</title>
- </head>
- <body>
- <h1 class="px-4 py-4">Test app</h1>
- <h2 class="partytown-status">
- <strong>Party Mode!</strong>
- Colors changing = partytown is enabled
- </h2>
- <MyCounter client:load />
- <SolidCounter client:load />
- <Link to="/foo" text="Go to Page 2" />
- <Lorem />
- <CalcAdd num={33} />
- <script type="text/partytown">
- // Remove `type="text/partytown"` to see this block the page
- // and cause the page to become unresponsive
- console.log("start partytown blocking script");
- const now = Date.now();
- let count = 1;
- while (Date.now() - now < 10000) {
- if (Date.now() - now > count * 1000) {
- console.log("blocking", count);
- count += 1;
- }
- }
- console.log("end partytown blocking script");
- </script>
-
- <script is:inline>
- setInterval(() => {
- const randomColor = Math.floor(Math.random() * 16777215).toString(16);
- document.querySelector(".partytown-status").style.color = "#" + randomColor;
- }, 100);
- </script>
- <style>
- h1,
- h2 {
- color: blue;
- }
- </style>
- </body>
-</html>
diff --git a/examples/integrations-playground/tsconfig.json b/examples/integrations-playground/tsconfig.json
deleted file mode 100644
index 4db6ee701..000000000
--- a/examples/integrations-playground/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "compilerOptions": {
- // Enable top-level await, and other modern ESM features.
- "target": "ESNext",
- "module": "ESNext",
- // Enable node-style module resolution, for things like npm package imports.
- "moduleResolution": "node",
- // Enable JSON imports.
- "resolveJsonModule": true,
- // Enable stricter transpilation for better output.
- "isolatedModules": true,
- // Add type definitions for our Astro runtime.
- "types": ["astro/client"]
- }
-}
diff --git a/examples/non-html-pages/.vscode/extensions.json b/examples/non-html-pages/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/non-html-pages/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/non-html-pages/.vscode/launch.json b/examples/non-html-pages/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/non-html-pages/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/portfolio/src/pages/projects.astro b/examples/portfolio/src/pages/projects.astro
index 7537ed687..0f12635c3 100644
--- a/examples/portfolio/src/pages/projects.astro
+++ b/examples/portfolio/src/pages/projects.astro
@@ -17,10 +17,6 @@ const projects = (await Astro.glob("./project/**/*.md"))
<MainHead
title="All Projects | Jeanine White"
description="Learn about Jeanine White's most recent projects"
- s
- most
- recent
- projects
/>
<style lang="scss">
.grid {
diff --git a/examples/ssr/.vscode/extensions.json b/examples/ssr/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/examples/ssr/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/examples/ssr/.vscode/launch.json b/examples/ssr/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/examples/ssr/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/examples/starter/.gitignore b/examples/starter/.gitignore
deleted file mode 100644
index 02f6e50b4..000000000
--- a/examples/starter/.gitignore
+++ /dev/null
@@ -1,19 +0,0 @@
-# build output
-dist/
-
-# dependencies
-node_modules/
-
-# logs
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-
-
-# environment variables
-.env
-.env.production
-
-# macOS-specific files
-.DS_Store
diff --git a/examples/starter/.npmrc b/examples/starter/.npmrc
deleted file mode 100644
index ef83021af..000000000
--- a/examples/starter/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-# Expose Astro dependencies for `pnpm` users
-shamefully-hoist=true
diff --git a/examples/starter/.stackblitzrc b/examples/starter/.stackblitzrc
deleted file mode 100644
index 43798ecff..000000000
--- a/examples/starter/.stackblitzrc
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "startCommand": "npm start",
- "env": {
- "ENABLE_CJS_IMPORTS": true
- }
-} \ No newline at end of file
diff --git a/examples/starter/README.md b/examples/starter/README.md
deleted file mode 100644
index a4bb5ed8e..000000000
--- a/examples/starter/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Welcome to [Astro](https://astro.build)
-
-[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/starter)
-
-> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
-
-## 🚀 Project Structure
-
-Inside of your Astro project, you'll see the following folders and files:
-
-```
-/
-├── public/
-│ ├── robots.txt
-│ └── favicon.ico
-├── src/
-│ ├── components/
-│ │ └── Tour.astro
-│ └── pages/
-│ └── index.astro
-└── package.json
-```
-
-Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
-
-There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
-
-Any static assets, like images, can be placed in the `public/` directory.
-
-## 🧞 Commands
-
-All commands are run from the root of the project, from a terminal:
-
-| Command | Action |
-|:---------------- |:-------------------------------------------- |
-| `npm install` | Installs dependencies |
-| `npm run dev` | Starts local dev server at `localhost:3000` |
-| `npm run build` | Build your production site to `./dist/` |
-| `npm run preview` | Preview your build locally, before deploying |
-
-## 👀 Want to learn more?
-
-Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
diff --git a/examples/starter/astro.config.mjs b/examples/starter/astro.config.mjs
deleted file mode 100644
index 882e6515a..000000000
--- a/examples/starter/astro.config.mjs
+++ /dev/null
@@ -1,4 +0,0 @@
-import { defineConfig } from 'astro/config';
-
-// https://astro.build/config
-export default defineConfig({});
diff --git a/examples/starter/package.json b/examples/starter/package.json
deleted file mode 100644
index 4d322971d..000000000
--- a/examples/starter/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "@example/starter",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "astro dev",
- "start": "astro dev",
- "build": "astro build",
- "preview": "astro preview"
- },
- "devDependencies": {
- "astro": "^1.0.0-rc.6"
- }
-}
diff --git a/examples/starter/public/favicon.ico b/examples/starter/public/favicon.ico
deleted file mode 100644
index 578ad458b..000000000
--- a/examples/starter/public/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/examples/starter/public/logo.svg b/examples/starter/public/logo.svg
deleted file mode 100644
index d751556b2..000000000
--- a/examples/starter/public/logo.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<svg width="193" height="256" fill="none" xmlns="http://www.w3.org/2000/svg">
- <style>
- #flame { fill: #FF5D01; }
- #a { fill: #000014; }
- @media (prefers-color-scheme: dark) {
- #a { fill: #fff; }
- }
- </style>
-
- <path id="a" fill-rule="evenodd" clip-rule="evenodd" d="M131.496 18.929c1.943 2.413 2.935 5.67 4.917 12.181l43.309 142.27a180.277 180.277 0 00-51.778-17.53L99.746 60.56a3.67 3.67 0 00-7.042.01l-27.857 95.232a180.224 180.224 0 00-52.01 17.557l43.52-142.281c1.989-6.502 2.983-9.752 4.927-12.16a15.999 15.999 0 016.484-4.798c2.872-1.154 6.271-1.154 13.07-1.154h31.085c6.807 0 10.211 0 13.085 1.157a16 16 0 016.488 4.806z" fill="url(#paint0_linear)"/>
- <path id="flame" fill-rule="evenodd" clip-rule="evenodd" d="M136.678 180.151c-7.14 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.962 10.367-1.962 13.902 0 0-1.055 17.355 11.016 29.426 0-6.268 5.081-11.349 11.349-11.349 10.743 0 10.731 9.373 10.721 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.973-19.87 5.977-3.79 12.616-8.001 17.192-16.449a31.013 31.013 0 003.744-14.82c0-3.299-.513-6.479-1.463-9.463z" />
-</svg>
diff --git a/examples/starter/sandbox.config.json b/examples/starter/sandbox.config.json
deleted file mode 100644
index 9178af77d..000000000
--- a/examples/starter/sandbox.config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "infiniteLoopProtection": true,
- "hardReloadOnChange": false,
- "view": "browser",
- "template": "node",
- "container": {
- "port": 3000,
- "startScript": "start",
- "node": "14"
- }
-}
diff --git a/examples/starter/src/components/Logo.astro b/examples/starter/src/components/Logo.astro
deleted file mode 100644
index ca45ef529..000000000
--- a/examples/starter/src/components/Logo.astro
+++ /dev/null
@@ -1,10 +0,0 @@
----
-// Export a "Props" interface to .
-export interface Props {
- height?: number;
- width?: number;
-}
-const { height = 80, width = 60 } = Astro.props;
----
-
-<img height={height} width={width} src="/logo.svg" alt="Astro logo" />
diff --git a/examples/starter/src/content/Tour.md b/examples/starter/src/content/Tour.md
deleted file mode 100644
index b995ba0c8..000000000
--- a/examples/starter/src/content/Tour.md
+++ /dev/null
@@ -1,28 +0,0 @@
-## 🚀 Project Structure
-
-Inside of your Astro project, you'll see the following folders and files:
-
-```
-├── public/
-│ ├── logo.svg
-│ └── favicon.ico
-├── src/
-│ ├── components/
-│ │ └── Logo.astro
-│ ├── content/
-│ │ └── Tour.md
-│ └── pages/
-│ └── index.astro
-└── package.json
-```
-
-Astro looks for `.astro` or `.md` files in the `src/pages/` directory.
-Each page is exposed as a route based on its file name.
-
-There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
-
-Any static assets, like images, can be placed in the `public/` directory.
-
-## 👀 Want to learn more?
-
-Check out the [Astro Documentation](https://github.com/withastro/astro) site or jump into our [Discord server](https://astro.build/chat).
diff --git a/examples/starter/src/pages/index.astro b/examples/starter/src/pages/index.astro
deleted file mode 100644
index 4ec1c38a4..000000000
--- a/examples/starter/src/pages/index.astro
+++ /dev/null
@@ -1,86 +0,0 @@
----
-import { Content as TourContent } from "../content/Tour.md";
-import Logo from "../components/Logo.astro";
-import "../styles/global.css";
-import "../styles/home.css";
-/* ASTRO:COMPONENT_IMPORTS */
-
-// Component Script:
-// You can write any JavaScript/TypeScript that you'd like here.
-// It will run during the build, but never in the browser.
-// All variables are available to use in the HTML template below.
-let title = "My Astro Site";
-
-// Full Astro Component Syntax:
-// https://docs.astro.build/core-concepts/astro-components/
----
-
-<html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width" />
- <title>{title}</title>
-
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
-
- <style>
- header {
- display: flex;
- flex-direction: column;
- gap: 1em;
- max-width: min(100%, 68ch);
- }
- article {
- padding-top: 2em;
- line-height: 1.5;
- display: flex;
- flex-direction: column;
- gap: 1em;
- max-width: 70ch;
- }
- .banner {
- text-align: center;
- font-size: 1.2rem;
- background: var(--color-light);
- padding: 1em 1.5em;
- padding-left: 0.75em;
- border-radius: 4px;
- }
- </style>
- <style is:global>
- pre {
- padding: 1rem;
- }
- </style>
- </head>
- <body>
- <main>
- <header>
- <div>
- <Logo width={60} height={80} />
- <h1>Welcome to <a href="https://astro.build/">Astro</a></h1>
- </div>
- </header>
-
- <article>
- <div class="banner">
- <p><strong>🧑‍🚀 Seasoned astronaut?</strong> Delete this template and have fun!</p>
- </div>
- <TourContent />
- </article>
-
- <!--
-
- You can also use imported framework components directly in your markup!
-
- Note: by default, these components are NOT interactive on the client.
- The `client:visible` directive tells Astro to make it interactive.
-
- See https://docs.astro.build/core-concepts/component-hydration/
-
- -->
-
- <!-- ASTRO:COMPONENT_MARKUP -->
- </main>
- </body>
-</html>
diff --git a/examples/starter/src/styles/global.css b/examples/starter/src/styles/global.css
deleted file mode 100644
index 8ef8122cb..000000000
--- a/examples/starter/src/styles/global.css
+++ /dev/null
@@ -1,29 +0,0 @@
-* {
- box-sizing: border-box;
- margin: 0;
-}
-
-:root {
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif,
- Apple Color Emoji, Segoe UI Emoji;
- font-size: 1rem;
- --user-font-scale: 1rem - 16px;
- font-size: clamp(0.875rem, 0.4626rem + 1.0309vw + var(--user-font-scale), 1.125rem);
-}
-
-body {
- padding: 4rem 2rem;
- width: 100%;
- min-height: 100vh;
- display: grid;
- justify-content: center;
- background: #f9fafb;
- color: #111827;
-}
-
-@media (prefers-color-scheme: dark) {
- body {
- background: #111827;
- color: #fff;
- }
-}
diff --git a/examples/starter/src/styles/home.css b/examples/starter/src/styles/home.css
deleted file mode 100644
index 147f95776..000000000
--- a/examples/starter/src/styles/home.css
+++ /dev/null
@@ -1,54 +0,0 @@
-:root {
- --font-mono: Consolas, 'Andale Mono WT', 'Andale Mono', 'Lucida Console', 'Lucida Sans Typewriter',
- 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Liberation Mono', 'Nimbus Mono L', Monaco,
- 'Courier New', Courier, monospace;
- --color-light: #f3f4f6;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --color-light: #1f2937;
- }
-}
-
-a {
- color: inherit;
-}
-
-header > div {
- font-size: clamp(2rem, -0.4742rem + 6.1856vw, 2.75rem);
-}
-
-header > div {
- display: flex;
- flex-direction: column;
- align-items: center;
-}
-
-header h1 {
- font-size: 1em;
- font-weight: 500;
-}
-header img {
- width: 2em;
- height: 2.667em;
-}
-
-h2 {
- font-weight: 500;
- font-size: clamp(1.5rem, 1rem + 1.25vw, 2rem);
-}
-
-.counter {
- display: grid;
- grid-auto-flow: column;
- gap: 1em;
- font-size: 2rem;
- justify-content: center;
- padding: 2rem 1rem;
-}
-
-.counter > pre {
- text-align: center;
- min-width: 3ch;
-}
diff --git a/examples/starter/tsconfig.json b/examples/starter/tsconfig.json
deleted file mode 100644
index 4db6ee701..000000000
--- a/examples/starter/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "compilerOptions": {
- // Enable top-level await, and other modern ESM features.
- "target": "ESNext",
- "module": "ESNext",
- // Enable node-style module resolution, for things like npm package imports.
- "moduleResolution": "node",
- // Enable JSON imports.
- "resolveJsonModule": true,
- // Enable stricter transpilation for better output.
- "isolatedModules": true,
- // Add type definitions for our Astro runtime.
- "types": ["astro/client"]
- }
-}
diff --git a/examples/subpath/package.json b/examples/subpath/package.json
index e5af28bea..c702dc775 100644
--- a/examples/subpath/package.json
+++ b/examples/subpath/package.json
@@ -10,8 +10,7 @@
},
"devDependencies": {
"@astrojs/react": "^0.4.2",
- "astro": "^1.0.0-rc.6",
- "sass": "^1.52.2"
+ "astro": "^1.0.0-rc.6"
},
"dependencies": {
"react": "^18.1.0",
diff --git a/examples/subpath/public/robots.txt b/examples/subpath/public/robots.txt
deleted file mode 100644
index 1f53798bb..000000000
--- a/examples/subpath/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /
diff --git a/examples/subpath/src/pages/index.astro b/examples/subpath/src/pages/index.astro
index 7ecb1f58d..22fd7582f 100644
--- a/examples/subpath/src/pages/index.astro
+++ b/examples/subpath/src/pages/index.astro
@@ -1,6 +1,9 @@
---
-import "../styles/main.scss";
+import "../styles/main.css";
import Time from "../components/Time.jsx";
+
+// Full Astro Component Syntax:
+// https://docs.astro.build/core-concepts/astro-components/
---
<html lang="en">
diff --git a/examples/subpath/src/styles/main.css b/examples/subpath/src/styles/main.css
new file mode 100644
index 000000000..4f82208f2
--- /dev/null
+++ b/examples/subpath/src/styles/main.css
@@ -0,0 +1,3 @@
+#app {
+ color: tomato;
+}
diff --git a/examples/subpath/src/styles/main.scss b/examples/subpath/src/styles/main.scss
deleted file mode 100644
index 2118ed2a0..000000000
--- a/examples/subpath/src/styles/main.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-body {
- #app {
- color: tomato;
- }
-}
diff --git a/examples/with-vite-plugin-pwa/public/robots.txt b/examples/with-vite-plugin-pwa/public/robots.txt
deleted file mode 100644
index 1f53798bb..000000000
--- a/examples/with-vite-plugin-pwa/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /
diff --git a/packages/webapi/mod.d.ts b/packages/webapi/mod.d.ts
index a3c49dc5c..b385e82a5 100644
--- a/packages/webapi/mod.d.ts
+++ b/packages/webapi/mod.d.ts
@@ -1,5 +1,5 @@
export { pathToPosix } from './lib/utils';
-export { AbortController, AbortSignal, alert, atob, Blob, btoa, ByteLengthQueuingStrategy, cancelAnimationFrame, cancelIdleCallback, CanvasRenderingContext2D, CharacterData, clearTimeout, Comment, CountQueuingStrategy, CSSStyleSheet, CustomElementRegistry, CustomEvent, Document, DocumentFragment, DOMException, Element, Event, EventTarget, fetch, File, FormData, Headers, HTMLBodyElement, HTMLCanvasElement, HTMLDivElement, HTMLDocument, HTMLElement, HTMLHeadElement, HTMLHtmlElement, HTMLImageElement, HTMLSpanElement, HTMLStyleElement, HTMLTemplateElement, HTMLUnknownElement, Image, ImageData, IntersectionObserver, MediaQueryList, MutationObserver, Node, NodeFilter, NodeIterator, OffscreenCanvas, ReadableByteStreamController, ReadableStream, ReadableStreamBYOBReader, ReadableStreamBYOBRequest, ReadableStreamDefaultController, ReadableStreamDefaultReader, Request, requestAnimationFrame, requestIdleCallback, ResizeObserver, Response, setTimeout, ShadowRoot, structuredClone, StyleSheet, Text, TransformStream, TreeWalker, URLPattern, Window, WritableStream, WritableStreamDefaultController, WritableStreamDefaultWriter } from './mod.js';
+export { AbortController, AbortSignal, alert, atob, Blob, btoa, ByteLengthQueuingStrategy, cancelAnimationFrame, cancelIdleCallback, CanvasRenderingContext2D, CharacterData, clearTimeout, Comment, CountQueuingStrategy, CSSStyleSheet, CustomElementRegistry, CustomEvent, Document, DocumentFragment, DOMException, Element, Event, EventTarget, fetch, File, FormData, Headers, HTMLBodyElement, HTMLCanvasElement, HTMLDivElement, HTMLDocument, HTMLElement, HTMLHeadElement, HTMLHtmlElement, HTMLImageElement, HTMLSpanElement, HTMLStyleElement, HTMLTemplateElement, HTMLUnknownElement, Image, ImageData, IntersectionObserver, MediaQueryList, MutationObserver, Node, NodeFilter, NodeIterator, OffscreenCanvas, ReadableByteStreamController, ReadableStream, ReadableStreamBYOBReader, ReadableStreamBYOBRequest, ReadableStreamDefaultController, ReadableStreamDefaultReader, Request, requestAnimationFrame, requestIdleCallback, ResizeObserver, Response, setTimeout, ShadowRoot, structuredClone, StyleSheet, Text, TransformStream, TreeWalker, URLPattern, Window, WritableStream, WritableStreamDefaultController, WritableStreamDefaultWriter, } from './mod.js';
export declare const polyfill: {
(target: any, options?: PolyfillOptions): any;
internals(target: any, name: string): any;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 357c47ae1..20db5c7de 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -74,19 +74,6 @@ importers:
'@astrojs/preact': link:../../packages/integrations/preact
astro: link:../../packages/astro
- examples/blog-multiple-authors:
- specifiers:
- '@astrojs/preact': ^0.5.2
- astro: ^1.0.0-rc.6
- preact: ^10.7.3
- sass: ^1.52.2
- dependencies:
- preact: 10.10.0
- devDependencies:
- '@astrojs/preact': link:../../packages/integrations/preact
- astro: link:../../packages/astro
- sass: 1.54.1
-
examples/component:
specifiers:
astro: ^1.0.0-rc.6
@@ -137,11 +124,13 @@ importers:
examples/framework-alpine:
specifiers:
+ '@types/alpinejs': ^3.7.0
alpinejs: ^3.10.2
astro: ^1.0.0-rc.6
dependencies:
alpinejs: 3.10.3
devDependencies:
+ '@types/alpinejs': 3.7.0
astro: link:../../packages/astro
examples/framework-lit:
@@ -159,15 +148,12 @@ importers:
examples/framework-multiple:
specifiers:
- '@astrojs/lit': ^0.3.2
'@astrojs/preact': ^0.5.2
'@astrojs/react': ^0.4.2
'@astrojs/solid-js': ^0.4.1
'@astrojs/svelte': ^0.5.1
'@astrojs/vue': ^0.5.0
- '@webcomponents/template-shadowroot': ^0.1.0
astro: ^1.0.0-rc.6
- lit: ^2.2.5
preact: ^10.7.3
react: ^18.1.0
react-dom: ^18.1.0
@@ -175,8 +161,6 @@ importers:
svelte: ^3.48.0
vue: ^3.2.37
dependencies:
- '@webcomponents/template-shadowroot': 0.1.0
- lit: 2.2.8
preact: 10.10.0
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@@ -184,7 +168,6 @@ importers:
svelte: 3.49.0
vue: 3.2.37
devDependencies:
- '@astrojs/lit': link:../../packages/integrations/lit
'@astrojs/preact': link:../../packages/integrations/preact
'@astrojs/react': link:../../packages/integrations/react
'@astrojs/solid-js': link:../../packages/integrations/solid
@@ -253,43 +236,6 @@ importers:
'@astrojs/vue': link:../../packages/integrations/vue
astro: link:../../packages/astro
- examples/integrations-playground:
- specifiers:
- '@astrojs/lit': ^0.3.2
- '@astrojs/partytown': ^0.1.9
- '@astrojs/react': ^0.4.2
- '@astrojs/sitemap': ^0.3.0
- '@astrojs/solid-js': 0.4.1
- '@astrojs/tailwind': ^0.2.5
- '@astrojs/turbolinks': ^0.1.4
- '@webcomponents/template-shadowroot': ^0.1.0
- astro: ^1.0.0-rc.6
- lit: ^2.2.5
- preact: ^10.7.3
- react: ^18.1.0
- react-dom: ^18.1.0
- solid-js: ^1.4.3
- svelte: ^3.48.0
- vue: ^3.2.37
- dependencies:
- '@webcomponents/template-shadowroot': 0.1.0
- lit: 2.2.8
- preact: 10.10.0
- react: 18.2.0
- react-dom: 18.2.0_react@18.2.0
- svelte: 3.49.0
- vue: 3.2.37
- devDependencies:
- '@astrojs/lit': link:../../packages/integrations/lit
- '@astrojs/partytown': link:../../packages/integrations/partytown
- '@astrojs/react': link:../../packages/integrations/react
- '@astrojs/sitemap': link:../../packages/integrations/sitemap
- '@astrojs/solid-js': link:../../packages/integrations/solid
- '@astrojs/tailwind': link:../../packages/integrations/tailwind
- '@astrojs/turbolinks': link:../../packages/integrations/turbolinks
- astro: link:../../packages/astro
- solid-js: 1.4.8
-
examples/minimal:
specifiers:
astro: ^1.0.0-rc.6
@@ -336,26 +282,18 @@ importers:
unocss: 0.15.6
vite-imagetools: 4.0.4
- examples/starter:
- specifiers:
- astro: ^1.0.0-rc.6
- devDependencies:
- astro: link:../../packages/astro
-
examples/subpath:
specifiers:
'@astrojs/react': ^0.4.2
astro: ^1.0.0-rc.6
react: ^18.1.0
react-dom: ^18.1.0
- sass: ^1.52.2
dependencies:
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
devDependencies:
'@astrojs/react': link:../../packages/integrations/react
astro: link:../../packages/astro
- sass: 1.54.1
examples/with-markdown-plugins:
specifiers:
@@ -8379,6 +8317,12 @@ packages:
'@types/estree': 1.0.0
dev: false
+ /@types/alpinejs/3.7.0:
+ resolution: {integrity: sha512-iMvJwgJHYFUlMOixKF68BmMQZbnxVA/erh1blbfhY8Z6u6oleEJViz8bye58roLOp8jyBNOsXtobyq7zR/7A2g==}
+ dependencies:
+ '@vue/reactivity': 3.2.37
+ dev: true
+
/@types/babel__core/7.1.19:
resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==}
dependencies: