diff --git a/.changeset/fifty-avocados-lay.md b/.changeset/fifty-avocados-lay.md
deleted file mode 100644
index eaf9f2e32..000000000
--- a/.changeset/fifty-avocados-lay.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"astro": patch
----
-
-Improve third-party Astro package support
diff --git a/.changeset/little-boats-happen.md b/.changeset/little-boats-happen.md
deleted file mode 100644
index ba970324b..000000000
--- a/.changeset/little-boats-happen.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@astrojs/vue': patch
----
-
-Mark vueperslides as a default noExternal
diff --git a/.changeset/rich-dolphins-teach.md b/.changeset/rich-dolphins-teach.md
deleted file mode 100644
index a9bbf7de9..000000000
--- a/.changeset/rich-dolphins-teach.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@astrojs/image': patch
----
-
-Parallelize image transforms
diff --git a/.changeset/seven-zoos-lie.md b/.changeset/seven-zoos-lie.md
deleted file mode 100644
index b19de1b05..000000000
--- a/.changeset/seven-zoos-lie.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Remove regression when there is duplicate client/server CSS
diff --git a/.changeset/slimy-fireants-carry.md b/.changeset/slimy-fireants-carry.md
deleted file mode 100644
index 7f972759a..000000000
--- a/.changeset/slimy-fireants-carry.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Correctly escape paths in file names
diff --git a/.changeset/smooth-hats-smell.md b/.changeset/smooth-hats-smell.md
deleted file mode 100644
index cac2f8bef..000000000
--- a/.changeset/smooth-hats-smell.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Ensure SSR module is loaded before testing if it's CSS in dev
diff --git a/.changeset/tasty-owls-watch.md b/.changeset/tasty-owls-watch.md
new file mode 100644
index 000000000..8d0eb53f4
--- /dev/null
+++ b/.changeset/tasty-owls-watch.md
@@ -0,0 +1,6 @@
+---
+'astro': patch
+'@astrojs/react': patch
+---
+
+Fix framework components on Vercel Edge
diff --git a/.changeset/three-owls-help.md b/.changeset/three-owls-help.md
deleted file mode 100644
index 9fe2ded0f..000000000
--- a/.changeset/three-owls-help.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@astrojs/alpinejs': patch
----
-
-Update homepage link
diff --git a/examples/basics/package.json b/examples/basics/package.json
index d4d44b91f..36b26f934 100644
--- a/examples/basics/package.json
+++ b/examples/basics/package.json
@@ -10,6 +10,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^1.1.5"
+ "astro": "^1.1.7"
}
}
diff --git a/examples/blog/package.json b/examples/blog/package.json
index 0ccc1d178..920624ff8 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -10,7 +10,7 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^1.1.5",
+ "astro": "^1.1.7",
"@astrojs/mdx": "^0.11.1",
"@astrojs/rss": "^1.0.0",
"@astrojs/sitemap": "^1.0.0"
diff --git a/examples/component/.gitignore b/examples/component/.gitignore
deleted file mode 100644
index 02f6e50b4..000000000
--- a/examples/component/.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/component/.npmrc b/examples/component/.npmrc
deleted file mode 100644
index ef83021af..000000000
--- a/examples/component/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-# Expose Astro dependencies for `pnpm` users
-shamefully-hoist=true
diff --git a/examples/component/.stackblitzrc b/examples/component/.stackblitzrc
deleted file mode 100644
index 43798ecff..000000000
--- a/examples/component/.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/component/README.md b/examples/component/README.md
index 8cd73e343..2023a749e 100644
--- a/examples/component/README.md
+++ b/examples/component/README.md
@@ -1,12 +1,13 @@
-# Astro Starter Kit: Component
+# Astro Starter Kit: Component Package
+
+This is a template for an Astro component library. Use this template for writing components to use in multiple projects or publish to NPM.
```
npm init astro -- --template component
```
-[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/component)
+[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/non-html-pages)
-> π§βπ **Seasoned astronaut?** Delete this file. Have fun!
## π Project Structure
@@ -14,34 +15,19 @@ Inside of your Astro project, you'll see the following folders and files:
```
/
-βββ demo/
-β βββ public/
-β βββ src/
-β βββ pages/
-β βββ index.astro
-βββ packages/
- βββ my-component/
- βββ index.js
- βββ package.json
+βββ index.ts
+βββ src
+β βββ MyComponent.astro
+βββ tsconfig.json
+βββ package.json
```
-This project uses **workspaces** to develop a single package, `@example/my-component`, from `packages/my-component`. It also includes a `demo` Astro site for testing and demonstrating the component.
-
-
+The `index.ts` file is the "entry point" for your package. Export your components in `index.ts` to make them importable from your package.
## π§ 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 |
-| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
-| `npm run astro --help` | Get help using the Astro CLI |
-
-## π Want to learn more?
-
-Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
+| `npm link` | Registers this package locally. Run `npm link my-component-library` in an Astro project to install your components
+| `npm publish` | [Publishes](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages#publishing-unscoped-public-packages) this package to NPM. Requires you to be [logged in](https://docs.npmjs.com/cli/v8/commands/npm-adduser)
diff --git a/examples/component/demo/package.json b/examples/component/demo/package.json
deleted file mode 100644
index 118b218b7..000000000
--- a/examples/component/demo/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "@example/my-component-demo",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "astro dev",
- "start": "astro dev",
- "build": "astro build",
- "preview": "astro preview",
- "astro": "astro"
- },
- "devDependencies": {
- "@example/my-component": "workspace:*",
- "astro": "^1.1.5"
- }
-}
diff --git a/examples/component/demo/public/favicon.svg b/examples/component/demo/public/favicon.svg
deleted file mode 100644
index 0f3906297..000000000
--- a/examples/component/demo/public/favicon.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/examples/component/demo/src/pages/index.astro b/examples/component/demo/src/pages/index.astro
deleted file mode 100644
index f0704e56b..000000000
--- a/examples/component/demo/src/pages/index.astro
+++ /dev/null
@@ -1,25 +0,0 @@
----
-import * as Component from '@example/my-component';
----
-
-
-
-
-
-
- Welcome to Astro
-
-
-
-
- Welcome to Astro
- Plain Button
-
-
diff --git a/examples/component/index.ts b/examples/component/index.ts
new file mode 100644
index 000000000..0e2e94fb2
--- /dev/null
+++ b/examples/component/index.ts
@@ -0,0 +1,6 @@
+// Do not write code directly here, instead use the `src` folder!
+// Then, use this file to export everything you want your user to access.
+
+import MyComponent from './src/MyComponent.astro';
+
+export default MyComponent;
diff --git a/examples/component/package.json b/examples/component/package.json
index f8fb37630..80f78ef8d 100644
--- a/examples/component/package.json
+++ b/examples/component/package.json
@@ -1,13 +1,23 @@
{
"name": "@example/component",
- "version": "0.0.1",
"private": true,
- "scripts": {
- "start": "astro --root demo dev",
- "build": "astro --root demo build",
- "serve": "astro --root demo preview"
+ "version": "0.0.1",
+ "type": "module",
+ "exports": {
+ ".": "./index.ts"
},
- "dependencies": {
- "astro": "^1.1.5"
+ "files": [
+ "src",
+ "index.ts"
+ ],
+ "keywords": [
+ "astro-component"
+ ],
+ "scripts": {},
+ "devDependencies": {
+ "astro": "^1.1.7"
+ },
+ "peerDependencies": {
+ "astro": "^1.1.7"
}
}
diff --git a/examples/component/packages/my-component/Button.astro b/examples/component/packages/my-component/Button.astro
deleted file mode 100644
index 87943fa28..000000000
--- a/examples/component/packages/my-component/Button.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-export interface Props extends Record {
- type?: string;
-}
-
-const { type, ...props } = {
- ...Astro.props,
-};
-
-props.type = type || 'button';
----
-
-
diff --git a/examples/component/packages/my-component/Heading.astro b/examples/component/packages/my-component/Heading.astro
deleted file mode 100644
index 75e4aa4e0..000000000
--- a/examples/component/packages/my-component/Heading.astro
+++ /dev/null
@@ -1,15 +0,0 @@
----
-export interface Props extends Record {
- level?: number | string;
- role?: string;
-}
-
-const { level, role, ...props } = {
- ...Astro.props,
-};
-
-props.role = role || 'heading';
-props['aria-level'] = level || '1';
----
-
-
diff --git a/examples/component/packages/my-component/README.md b/examples/component/packages/my-component/README.md
deleted file mode 100644
index 41a53a6f0..000000000
--- a/examples/component/packages/my-component/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Example `@example/my-component`
-
-This is an example package, exported as `@example/my-component`. It consists of two Astro components, **Button** and **Heading**.
-
-### Button
-
-The **Button** component generates a `