/** @jsxImportSource react */
import type { FunctionComponent } from 'react';
import './LanguageSelect.css';
import { KNOWN_LANGUAGES, langPathRegex } from '../../languages';

const LanguageSelect: FunctionComponent<{ lang: string }> = ({ lang }) => {
	return (
		<div className="language-select-wrapper">
			<svg
				aria-hidden="true"
				focusable="false"
				role="img"
				xmlns="http://www.w3.org/2000/svg"
				viewBox="0 0 88.6 77.3"
				height="1.2em"
				width="1.2em"
			>
				<path
					fill="currentColor"
					d="M61,24.6h7.9l18.7,51.6h-7.7l-5.4-15.5H54.3l-5.6,15.5h-7.2L61,24.6z M72.6,55l-8-22.8L56.3,55H72.6z"
				/>
				<path
					fill="currentColor"
					d="M53.6,60.6c-10-4-16-9-22-14c0,0,1.3,1.3,0,0c-6,5-20,13-20,13l-4-6c8-5,10-6,19-13c-2.1-1.9-12-13-13-19h8          c4,9,10,14,10,14c10-8,10-19,10-19h8c0,0-1,13-12,24l0,0c5,5,10,9,19,13L53.6,60.6z M1.6,16.6h56v-8h-23v-7h-9v7h-24V16.6z"
				/>
			</svg>
			<select
				className="language-select"
				value={lang}
				onChange={(e) => {
					const newLang = e.target.value;
					let actualDest = window.location.pathname.replace(langPathRegex, '/');
					if (actualDest == '/') actualDest = `/introduction`;
					window.location.pathname = '/' + newLang + actualDest;
				}}
			>
				{Object.entries(KNOWN_LANGUAGES).map(([key, value]) => {
					return (
						<option value={value} key={value}>
							<span>{key}</span>
						</option>
					);
				})}
			</select>
		</div>
	);
};

export default LanguageSelect;
value='cf-user-defined-entryfile'>cf-user-defined-entryfile</option>
<option value='changeset-base'>changeset-base</option>
<option value='changeset-release/refs/pull/2705/merge'>changeset-release/refs/pull/2705/merge</option>
<option value='chore/astro-check'>chore/astro-check</option>
<option value='chore/db-remote-server-destroy'>chore/db-remote-server-destroy</option>
<option value='chore/lint-fix'>chore/lint-fix</option>
<option value='chore/mirror'>chore/mirror</option>
<option value='chore/pnpm-10-and-catalogs'>chore/pnpm-10-and-catalogs</option>
<option value='chris/pin-ztjs'>chris/pin-ztjs</option>
<option value='chris/social-feed'>chris/social-feed</option>
<option value='ci/one-line-command'>ci/one-line-command</option>
<option value='ci/preview-release-teest'>ci/preview-release-teest</option>
<option value='ci/workflow-for-next-branch'>ci/workflow-for-next-branch</option>
<option value='cli-flow-updates'>cli-flow-updates</option>
<option value='compiler-02-new-build'>compiler-02-new-build</option>
<option value='content-perf-benchmark'>content-perf-benchmark</option>
<option value='content-slug-to-id'>content-slug-to-id</option>
<option value='data-function-poc'>data-function-poc</option>
<option value='db-migrate'>db-migrate</option>
<option value='db-seed'>db-seed</option>
<option value='db-tokens'>db-tokens</option>
<option value='db22'>db22</option>
<option value='debugging-mdx-memory'>debugging-mdx-memory</option>
<option value='deno-test'>deno-test</option>
<option value='densities-handling'>densities-handling</option>
<option value='disable-telemetry'>disable-telemetry</option>
<option value='docs/netlify-adapter-site-requirement'>docs/netlify-adapter-site-requirement</option>
<option value='draft/content-collections-file'>draft/content-collections-file</option>
<option value='draft/script-style-bleed'>draft/script-style-bleed</option>
<option value='examples/basics'>examples/basics</option>
<option value='examples/blog'>examples/blog</option>
<option value='examples/component'>examples/component</option>
<option value='examples/container-with-vitest'>examples/container-with-vitest</option>
<option value='examples/framework-alpine'>examples/framework-alpine</option>
<option value='examples/framework-lit'>examples/framework-lit</option>
<option value='examples/framework-multiple'>examples/framework-multiple</option>
<option value='examples/framework-preact'>examples/framework-preact</option>
<option value='examples/framework-react'>examples/framework-react</option>
<option value='examples/framework-solid'>examples/framework-solid</option>
<option value='examples/framework-svelte'>examples/framework-svelte</option>
<option value='examples/framework-vue'>examples/framework-vue</option>
<option value='examples/hackernews'>examples/hackernews</option>
<option value='examples/integration'>examples/integration</option>
<option value='examples/minimal'>examples/minimal</option>
<option value='examples/portfolio'>examples/portfolio</option>
<option value='examples/ssr'>examples/ssr</option>
<option value='examples/starlog'>examples/starlog</option>
<option value='examples/toolbar-app'>examples/toolbar-app</option>
<option value='examples/with-markdoc'>examples/with-markdoc</option>
<option value='examples/with-mdx'>examples/with-mdx</option>
<option value='examples/with-nanostores'>examples/with-nanostores</option>
<option value='examples/with-tailwindcss'>examples/with-tailwindcss</option>
<option value='examples/with-vitest'>examples/with-vitest</option>
<option value='experiment-routes'>experiment-routes</option>
<option value='experiment/markdown-components'>experiment/markdown-components</option>
<option value='expr-before'>expr-before</option>
<option value='fallback-default-fade'>fallback-default-fade</option>
<option value='feat/action-on-result'>feat/action-on-result</option>
<option value='feat/action-success'>feat/action-success</option>
<option value='feat/all-fragments'>feat/all-fragments</option>
<option value='feat/astro-add'>feat/astro-add</option>
<option value='feat/astro-client'>feat/astro-client</option>
<option value='feat/astro-jsx'>feat/astro-jsx</option>
<option value='feat/astro-v-config'>feat/astro-v-config</option>
<option value='feat/autogenerated-tsconfig'>feat/autogenerated-tsconfig</option>
<option value='feat/better-data-types'>feat/better-data-types</option>
<option value='feat/better-table-type'>feat/better-table-type</option>
<option value='feat/break-out-seed-returning'>feat/break-out-seed-returning</option>
<option value='feat/cache-module-graph'>feat/cache-module-graph</option>
<option value='feat/ci-next'>feat/ci-next</option>
<option value='feat/cli'>feat/cli</option>
<option value='feat/codemod'>feat/codemod</option>
<option value='feat/config-log-level'>feat/config-log-level</option>
<option value='feat/container'>feat/container</option>
<option value='feat/context'>feat/context</option>
<option value='feat/create-astro-replace-component-selector-with-astro-add'>feat/create-astro-replace-component-selector-with-astro-add</option>
<option value='feat/create-astro-ui'>feat/create-astro-ui</option>
<option value='feat/csr'>feat/csr</option>
<option value='feat/data-improvements'>feat/data-improvements</option>
<option value='feat/data-with-set'>feat/data-with-set</option>
<option value='feat/db-action'>feat/db-action</option>
<option value='feat/db-relations'>feat/db-relations</option>
<option value='feat/define-data'>feat/define-data</option>
<option value='feat/devtools'>feat/devtools</option>
<option value='feat/dynamic-client-directives'>feat/dynamic-client-directives</option>
<option value='feat/editor'>feat/editor</option>
<option value='feat/experimental-jsx'>feat/experimental-jsx</option>
<option value='feat/expose-action-api-context'>feat/expose-action-api-context</option>
<option value='feat/expose-frontmatter-to-build-done-hook'>feat/expose-frontmatter-to-build-done-hook</option>
<option value='feat/fetch-cache'>feat/fetch-cache</option>
<option value='feat/flow-components'>feat/flow-components</option>
<option value='feat/fonts-granular-preload'>feat/fonts-granular-preload</option>
<option value='feat/fonts-retrieve-data'>feat/fonts-retrieve-data</option>
<option value='feat/foreign-key-migrations'>feat/foreign-key-migrations</option>
<option value='feat/foreign-keys'>feat/foreign-keys</option>
<option value='feat/html-pages'>feat/html-pages</option>
<option value='feat/image-placeholders'>feat/image-placeholders</option>
<option value='feat/improve-custom-element-detection'>feat/improve-custom-element-detection</option>
<option value='feat/incremental-build'>feat/incremental-build</option>
<option value='feat/indexes'>feat/indexes</option>
<option value='feat/integration-kit'>feat/integration-kit</option>
<option value='feat/jsx-transform'>feat/jsx-transform</option>
<option value='feat/legacy-markdown-flag'>feat/legacy-markdown-flag</option>
<option value='feat/markdoc-embeds'>feat/markdoc-embeds</option>
<option value='feat/markdown-components'>feat/markdown-components</option>
<option value='feat/mdx-js-injection'>feat/mdx-js-injection</option>
<option value='feat/mdx-plugin-export'>feat/mdx-plugin-export</option>
<option value='feat/minify-html'>feat/minify-html</option>
<option value='feat/next-get-env'>feat/next-get-env</option>
<option value='feat/og'>feat/og</option>
<option value='feat/ooo-streaming'>feat/ooo-streaming</option>
<option value='feat/pragma'>feat/pragma</option>
<option value='feat/preview'>feat/preview</option>
<option value='feat/react-19'>feat/react-19</option>
<option value='feat/react-19-actions'>feat/react-19-actions</option>
<option value='feat/redirect-on-html-backup'>feat/redirect-on-html-backup</option>
<option value='feat/references'>feat/references</option>
<option value='feat/remote-flag'>feat/remote-flag</option>
<option value='feat/remove-astro-image-backup'>feat/remove-astro-image-backup</option>
<option value='feat/remove-studio'>feat/remove-studio</option>
<option value='feat/render-with-queue'>feat/render-with-queue</option>
<option value='feat/reroute-ssr'>feat/reroute-ssr</option>
<option value='feat/resolve-entrypoint'>feat/resolve-entrypoint</option>
<option value='feat/router'>feat/router</option>
<option value='feat/router-ii'>feat/router-ii</option>
<option value='feat/seo-components'>feat/seo-components</option>
<option value='feat/skip-sync-flag'>feat/skip-sync-flag</option>
<option value='feat/spa'>feat/spa</option>
<option value='feat/spa-ii'>feat/spa-ii</option>
<option value='feat/squoosh'>feat/squoosh</option>
<option value='feat/standard-schema'>feat/standard-schema</option>
<option value='feat/storage-studio'>feat/storage-studio</option>
<option value='feat/streaming-rendering'>feat/streaming-rendering</option>
<option value='feat/style-obj'>feat/style-obj</option>
<option value='feat/test-utils'>feat/test-utils</option>
<option value='feat/xray-improvements'>feat/xray-improvements</option>
<option value='fetch-astro-pages-mvp'>fetch-astro-pages-mvp</option>
<option value='fix-408'>fix-408</option>
<option value='fix-all-pages-key'>fix-all-pages-key</option>
<option value='fix-beta-ref'>fix-beta-ref</option>
<option value='fix-create-ref'>fix-create-ref</option>
<option value='fix-netlify-edge'>fix-netlify-edge</option>
<option value='fix-next-basics'>fix-next-basics</option>
<option value='fix-nullish-slot-name'>fix-nullish-slot-name</option>
<option value='fix-s-island-fallback'>fix-s-island-fallback</option>
<option value='fix-vite-asset'>fix-vite-asset</option>
<option value='fix/actions-cookies'>fix/actions-cookies</option>
<option value='fix/actions-pending-timeout'>fix/actions-pending-timeout</option>
<option value='fix/assets-types'>fix/assets-types</option>
<option value='fix/astro-config-refresh'>fix/astro-config-refresh</option>
<option value='fix/astro-html-escape-bug'>fix/astro-html-escape-bug</option>
<option value='fix/build-subpaths'>fix/build-subpaths</option>
<option value='fix/client-only-component-css'>fix/client-only-component-css</option>
<option value='fix/client-scripts-windows'>fix/client-scripts-windows</option>
<option value='fix/config-migration-defaults'>fix/config-migration-defaults</option>
<option value='fix/container-directives'>fix/container-directives</option>
<option value='fix/dates'>fix/dates</option>
<option value='fix/db-integration-with-missing-config'>fix/db-integration-with-missing-config</option>
<option value='fix/devtoolbar-data-unset'>fix/devtoolbar-data-unset</option>
<option value='fix/empty-slots'>fix/empty-slots</option>
<option value='fix/filepath-layer'>fix/filepath-layer</option>
<option value='fix/frontmatter-file-url'>fix/frontmatter-file-url</option>
<option value='fix/head-propagation'>fix/head-propagation</option>
<option value='fix/hmr-css-deps'>fix/hmr-css-deps</option>
<option value='fix/import-ts-errors'>fix/import-ts-errors</option>
<option value='fix/main-build-failure'>fix/main-build-failure</option>
<option value='fix/map-file-404-logs'>fix/map-file-404-logs</option>
<option value='fix/mdx-named-slots'>fix/mdx-named-slots</option>
<option value='fix/middleware-import'>fix/middleware-import</option>
<option value='fix/multi-images'>fix/multi-images</option>
<option value='fix/nested-get-collection-call'>fix/nested-get-collection-call</option>
<option value='fix/preact-package-build-failure'>fix/preact-package-build-failure</option>
<option value='fix/primary-key-optional'>fix/primary-key-optional</option>
<option value='fix/regex-flags'>fix/regex-flags</option>
<option value='fix/server-headers'>fix/server-headers</option>
<option value='fix/stable-renderer-order'>fix/stable-renderer-order</option>
<option value='fix/transaction-type'>fix/transaction-type</option>
<option value='fix/vue-nested'>fix/vue-nested</option>
<option value='fix/webapi-dev'>fix/webapi-dev</option>
<option value='fork/markdoc-poc-with-md-support'>fork/markdoc-poc-with-md-support</option>
<option value='fork/markdoc-poc-with-parser'>fork/markdoc-poc-with-parser</option>
<option value='format-imports-run'>format-imports-run</option>
<option value='formatting'>formatting</option>
<option value='forward-button'>forward-button</option>
<option value='framework-agnostic-astro-components'>framework-agnostic-astro-components</option>
<option value='fryuni/db-pluggable-backend'>fryuni/db-pluggable-backend</option>
<option value='fryuni/test-route-setup-hook'>fryuni/test-route-setup-hook</option>
<option value='fryuni/tracing-hooks'>fryuni/tracing-hooks</option>
<option value='hippotastic/legitimate-bat'>hippotastic/legitimate-bat</option>
<option value='hoisted-script-ts'>hoisted-script-ts</option>
<option value='host-ssr-example-2'>host-ssr-example-2</option>
<option value='hostfornode'>hostfornode</option>
<option value='image-non-node'>image-non-node</option>
<option value='improve-base-handling'>improve-base-handling</option>
<option value='inline-hoisted-scripts-now'>inline-hoisted-scripts-now</option>
<option value='jn.convert-assertions-to-query-params'>jn.convert-assertions-to-query-params</option>
<option value='latest'>latest</option>
<option value='live-loaders'>live-loaders</option>
<option value='main'>main</option>
<option value='mandar1jn/ci-repo-check'>mandar1jn/ci-repo-check</option>
<option value='markdoc-embed-prototyping'>markdoc-embed-prototyping</option>
<option value='markdown'>markdown</option>
<option value='markdown-poc'>markdown-poc</option>
<option value='mdx-path'>mdx-path</option>
<option value='mk/render-slot-template-backup'>mk/render-slot-template-backup</option>
<option value='move-default-md-code-component'>move-default-md-code-component</option>
<option value='mt/lit-DSD'>mt/lit-DSD</option>
<option value='mt/lit-regen'>mt/lit-regen</option>
<option value='mt/parse-DSD'>mt/parse-DSD</option>
<option value='mt/router_refactoring'>mt/router_refactoring</option>
<option value='nate/new-blog-template'>nate/new-blog-template</option>
<option value='netlify-1'>netlify-1</option>
<option value='netlify-preview'>netlify-preview</option>
<option value='new-adapter-api'>new-adapter-api</option>
<option value='next'>next</option>
<option value='next-render'>next-render</option>
<option value='no-more-vite-postprocess'>no-more-vite-postprocess</option>
<option value='no-more-vite-postprocess2'>no-more-vite-postprocess2</option>
<option value='old-build'>old-build</option>
<option value='plt-1006/unified-and-mdx'>plt-1006/unified-and-mdx</option>
<option value='plt-1768-trailing-slash-object'>plt-1768-trailing-slash-object</option>
<option value='preact-shared-signals'>preact-shared-signals</option>
<option value='process-env-override'>process-env-override</option>
<option value='progress-log'>progress-log</option>
<option value='re-export-drivers'>re-export-drivers</option>
<option value='react-fast-refresh'>react-fast-refresh</option>
<option value='redirects-priority2'>redirects-priority2</option>
<option value='redirects-ssg-object'>redirects-ssg-object</option>
<option value='refactor-how-client-directives-work'>refactor-how-client-directives-work</option>
<option value='refactor/image-internals'>refactor/image-internals</option>
<option value='refactor/markdoc-renderer'>refactor/markdoc-renderer</option>
<option value='refactor/rendere-queue'>refactor/rendere-queue</option>
<option value='refactor/sitemap'>refactor/sitemap</option>
<option value='refactor/ssr-size'>refactor/ssr-size</option>
<option value='release/0.17'>release/0.17</option>
<option value='release/0.18'>release/0.18</option>
<option value='remote-cdn-link'>remote-cdn-link</option>
<option value='remove-fs-abstraction'>remove-fs-abstraction</option>
<option value='remove-start'>remove-start</option>
<option value='restart-on-lock'>restart-on-lock</option>
<option value='revert-13008-renovate/all-minor-patch'>revert-13008-renovate/all-minor-patch</option>
<option value='revert-lockfile'>revert-lockfile</option>
<option value='route-manifest-adapter'>route-manifest-adapter</option>
<option value='sarah11918-image-errors'>sarah11918-image-errors</option>
<option value='sarah11918-patch-2'>sarah11918-patch-2</option>
<option value='sb-tests2'>sb-tests2</option>
<option value='seroval'>seroval</option>
<option value='server-islands-children'>server-islands-children</option>
<option value='session-docs'>session-docs</option>
<option value='single-file-build-2'>single-file-build-2</option>
<option value='slash-404-hint'>slash-404-hint</option>
<option value='slot-bug-1'>slot-bug-1</option>
<option value='solid-ecosystem-pkg'>solid-ecosystem-pkg</option>
<option value='spike/app-setup'>spike/app-setup</option>
<option value='spike/autonav'>spike/autonav</option>
<option value='spike/codehike'>spike/codehike</option>
<option value='spike/context'>spike/context</option>
<option value='spike/csr'>spike/csr</option>
<option value='spike/default-content'>spike/default-content</option>
<option value='spike/incremental'>spike/incremental</option>
<option value='spike/incremental-ii'>spike/incremental-ii</option>
<option value='spike/markdown-wasm'>spike/markdown-wasm</option>
<option value='spike/render'>spike/render</option>
<option value='spike/streaming'>spike/streaming</option>
<option value='spike/svg'>spike/svg</option>
<option value='sqlite-test'>sqlite-test</option>
<option value='squeal'>squeal</option>
<option value='ssr-redirect'>ssr-redirect</option>
<option value='stream-buffer'>stream-buffer</option>
<option value='streaming'>streaming</option>
<option value='telemetry-audit-1'>telemetry-audit-1</option>
<option value='test/new-integrations-demo'>test/new-integrations-demo</option>
<option value='test/new-ssr-demo'>test/new-ssr-demo</option>
<option value='top-level-exports-integrations'>top-level-exports-integrations</option>
<option value='ts-in-hoisted-script'>ts-in-hoisted-script</option>
<option value='ts-no-err'>ts-no-err</option>
<option value='upd-vite-vendored'>upd-vite-vendored</option>
<option value='upgrade-deps'>upgrade-deps</option>
<option value='v1-beta'>v1-beta</option>
<option value='vercel-test'>vercel-test</option>
<option value='vite-fork'>vite-fork</option>
<option value='vscode-astro-global'>vscode-astro-global</option>
<option value='vt-follow-redirects'>vt-follow-redirects</option>
<option value='warn-exp-flag'>warn-exp-flag</option>
<option value='win'>win</option>
<option value='windows-tests-beta'>windows-tests-beta</option>
<option value='wip-assets'>wip-assets</option>
<option value='wip-component-api-2'>wip-component-api-2</option>
<option value='wip-docs-components'>wip-docs-components</option>
<option value='wip-docs-reference-gen'>wip-docs-reference-gen</option>
<option value='wip-fetch-cache'>wip-fetch-cache</option>
<option value='wip-fun-flags'>wip-fun-flags</option>
<option value='wip-icons'>wip-icons</option>
<option value='wip-logging'>wip-logging</option>
<option value='wip-logging-saved'>wip-logging-saved</option>
<option value='wip-mdc'>wip-mdc</option>
<option value='wip-mdx-to-astro-js'>wip-mdx-to-astro-js</option>
<option value='wip-preview-command-integrations'>wip-preview-command-integrations</option>
<option value='wip-setup-content'>wip-setup-content</option>
<option value='wip-smoke'>wip-smoke</option>
<option value='wip-speed-up-markdown'>wip-speed-up-markdown</option>
<option value='wip-stage'>wip-stage</option>
<option value='wip/react-19-test'>wip/react-19-test</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Unnamed repository; edit this file 'description' to name the repository.</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/ansg191/astro/?h=@astrojs/prefetch@0.0.3'>summary</a><a href='/ansg191/astro/refs/?h=@astrojs/prefetch@0.0.3'>refs</a><a class='active' href='/ansg191/astro/log/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>log</a><a href='/ansg191/astro/tree/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3'>tree</a><a href='/ansg191/astro/commit/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3&amp;follow=1'>commit</a><a href='/ansg191/astro/diff/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3&amp;follow=1'>diff</a></td><td class='form'><form class='right' method='get' action='/ansg191/astro/log/examples/docs/src/pages/en'>
<input type='hidden' name='h' value='@astrojs/prefetch@0.0.3'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/ansg191/astro/log/?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>root</a>/<a href='/ansg191/astro/log/examples?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>examples</a>/<a href='/ansg191/astro/log/examples/docs?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>docs</a>/<a href='/ansg191/astro/log/examples/docs/src?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>src</a>/<a href='/ansg191/astro/log/examples/docs/src/pages?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>pages</a>/<a href='/ansg191/astro/log/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3&amp;showmsg=1&amp;follow=1'>en</a> (<a href='/ansg191/astro/log/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3&amp;showmsg=1'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/ansg191/astro/log/examples/docs/src/pages/en?h=@astrojs/prefetch@0.0.3&amp;follow=1'>Collapse</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr class='logheader'><td><span title='2022-06-30 11:21:41 -0700'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/.github/workflows/ci.yml?h=@astrojs/prefetch@0.0.3&amp;id=bf44b2ab88751d59f1d1071a878944ce49554210&amp;follow=1'>Ci: improve times, reduce delay (#3780)</a></td><td><img src='//www.gravatar.com/avatar/184a1f14c759795b94ae1d01b23cc9c7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Schott
</td><td>1</td><td><span class='deletions'>-14</span>/<span class='insertions'>+10</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* improve CI times

* improve CI times

</td></tr>
<tr class='logheader'><td><span title='2022-06-30 11:17:32 -0700'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/astro/src/cli/index.ts?h=@astrojs/prefetch@0.0.3&amp;id=192c4bcfd69aa44f735866378d8ba08ba902d290&amp;follow=1'>await error reporter (#3779)</a></td><td><img src='//www.gravatar.com/avatar/184a1f14c759795b94ae1d01b23cc9c7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Schott
</td><td>2</td><td><span class='deletions'>-10</span>/<span class='insertions'>+25</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 18:11:12 +0000'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/integrations/mdx/test/mdx-page.test.js?h=@astrojs/prefetch@0.0.3&amp;id=af23bdd515645b7fa27e82f19229aebd1c0a7096&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/0ddf46bee0fb93b8d73cb82456ee5b28?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> natemoo-re
</td><td>14</td><td><span class='deletions'>-99</span>/<span class='insertions'>+95</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 13:09:09 -0500'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=@astrojs/prefetch@0.0.3&amp;id=032ad1c047a62dd663067cc562537d16f2872aa7&amp;follow=1'>MDX support (#3706)</a></td><td><img src='//www.gravatar.com/avatar/0ddf46bee0fb93b8d73cb82456ee5b28?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Nate Moore
</td><td>63</td><td><span class='deletions'>-57</span>/<span class='insertions'>+1153</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* feat: first pass at MDX support

* fix: move built-in JSX renderer to come first

* chore: remove jsx example

* chore: update lockfile

* chore: cleanup example

* fix: missing deps

* refactor: move component render logic to `renderPage`

* chore: update HMR script

* chore: update MDX example

* refactor: prefer unshit

* refactor: remove TODO comment

* fix: remove duplicate identifier

* refactor: cleanup mdx entrypoint

* fix: better html handling

* fix: add tsconfig to mdx package

* chore: update lockfile

* fix: do not sort plugins unless mdx is enabled

* chore: update compiler

* fix(hmr): maybe render head for non-Astro pages

* fix: set initial pageExtensions

* refactor: cleanup addPageExtension

* refactor: remove addPageExtensions from types

* refactor: expose HookParameters type

* fix: only default to astro for MDX

* test: pick up jsx support in test fixtures

* refactor: simplify mdx entrypoint

* test: add basic MDX tests

* test(e2e): add mdx + framework tests

* chore: update lockfile

* test(e2e): fix preact mdx e2e test

* fix(mdx): disable .md support

* test(e2e): fix vue-component test missing mdx

* test(e2e): fix solid component needing import

* fix: allow `client:only="solid"` as an alias to `solid-js`

* chore: move to with-mdx example

* chore: update MDX readme

* chore: update example readme

* chore: bump astro version

* chore: update lockfile

* Update mod.d.ts

* feat: support `export const components` in MDX pages

* chore: update mdx example

* fix: update jsx-runtime with better slot support

* refactor: remove object style support

* chore: cleanup package exports

* chore: add todo comment

* refactor: improve isPage function, move to utils

* refactor: dry up manual HMR updates

* chore: add dev tests for MDX

* chore: prefer set to array

* chore: add changesets

* fix(hmr): flip public/private route

Co-authored-by: Nate Moore &lt;nate@astro.build&gt;

</td></tr>
<tr class='logheader'><td><span title='2022-06-30 12:53:01 -0500'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/integrations/prefetch/src/index.ts?h=@astrojs/prefetch@0.0.3&amp;id=91635f05df207d33ee8b50a2afe970b94b24ba7b&amp;follow=1'>Fix integration name (`prefetch` instead of `lit`) (#3778)</a></td><td><img src='//www.gravatar.com/avatar/1fa9983b57e92f5c434b9f289063e4a8?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> hippotastic
</td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+6</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 11:22:18 -0500'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=@astrojs/prefetch@0.0.3&amp;id=d137169b7ba6a7965cb2b851774b241684791682&amp;follow=1'>[ci] update lockfile (#3771)</a></td><td><img src='//www.gravatar.com/avatar/08ecf36c18a9cde65df00e27a15518c2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Bot
</td><td>1</td><td><span class='deletions'>-114</span>/<span class='insertions'>+112</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
Co-authored-by: FredKSchott &lt;FredKSchott@users.noreply.github.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2022-06-30 12:02:39 -0400'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/telemetry/README.md?h=@astrojs/prefetch@0.0.3&amp;id=8045c8ade16fe4306448b7f98a4560ef0557d378&amp;follow=1'>Integration Docs Next Steps (#3677)</a></td><td><img src='//www.gravatar.com/avatar/4b5f36f4fad6616ec0db391a848775a6?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Dan Jutan
</td><td>11</td><td><span class='deletions'>-314</span>/<span class='insertions'>+666</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* sitemap readme skeleton + first sections

* Revert "sitemap readme skeleton + first sections"

This reverts commit cc55b312b6dc95522645002806d63f32c33d1956.

* sitemap readme skeleton + first sections

* remove canonicalURL option from sitemap

* add customPages option to readme

* sitemap examples

* partytown

* deno run command

* reference deno example

* node readme

* netlify &amp; vercel readmes

* note that telemetry is installed

* telemetry is *enabled*, not installed

* Update packages/integrations/vercel/README.md

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

* Update packages/integrations/vercel/README.md

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

* readme -&gt; README

* Update packages/integrations/deno/readme.md

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

* Update packages/integrations/deno/readme.md

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

* qualify they

* Update packages/integrations/sitemap/README.md

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

* Uppercase README names

* Update packages/integrations/partytown/README.md

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

* imports -&gt; import typo

* update changeset

Co-authored-by: Chris Swithinbank &lt;swithinbank@gmail.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2022-06-30 14:18:38 +0000'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/astro/src/cli/index.ts?h=@astrojs/prefetch@0.0.3&amp;id=75ffab7009ae4a5a8cc310795436ae291e554373&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/1c8b274ef6dd37fbd668244859c0c436?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> tony-sull
</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 14:16:39 +0000'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/astro/src/cli/index.ts?h=@astrojs/prefetch@0.0.3&amp;id=913591d13761d7c99f4b5bf547942922736a9f3a&amp;follow=1'>refactor to provide better cli error handling (#3768)</a></td><td><img src='//www.gravatar.com/avatar/184a1f14c759795b94ae1d01b23cc9c7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Schott
</td><td>2</td><td><span class='deletions'>-43</span>/<span class='insertions'>+37</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 08:08:09 -0500'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=@astrojs/prefetch@0.0.3&amp;id=8cbe92b74bef6f0a3d4ebd96579964d23e9e6c8f&amp;follow=1'>[ci] release (#3772)</a><span class='decoration'><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/preact@0.3.1'>@astrojs/preact@0.3.1</a></span></td><td><img src='//www.gravatar.com/avatar/08ecf36c18a9cde65df00e27a15518c2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Bot
</td><td>12</td><td><span class='deletions'>-22</span>/<span class='insertions'>+23</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
Co-authored-by: github-actions[bot] &lt;github-actions[bot]@users.noreply.github.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2022-06-30 08:07:39 -0500'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/README.md?h=@astrojs/prefetch@0.0.3&amp;id=3a13f7d4280b0867ee6c85e94524c6f1e6e0f901&amp;follow=1'>Added Cloudflare adapter to README.md (#3773)</a></td><td><img src='//www.gravatar.com/avatar/cd7eb583b4fe2204df410a3233776c49?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Isaac McFadyen
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 12:12:27 +0000'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/integrations/preact/server.js?h=@astrojs/prefetch@0.0.3&amp;id=40fa87c2744b28929f529e5457d9b3949ec53a59&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/2783aecda70d8668ec042e0ab6653ed3?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> hippotastic
</td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+4</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-30 14:10:56 +0200'>2022-06-30</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/integrations/preact/server.js?h=@astrojs/prefetch@0.0.3&amp;id=b934ab5d860aa3adeec56a9c395f629ee7252ca4&amp;follow=1'>Fix "Invalid hook call" warning (#3769)</a></td><td><img src='//www.gravatar.com/avatar/1fa9983b57e92f5c434b9f289063e4a8?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> hippotastic
</td><td>2</td><td><span class='deletions'>-9</span>/<span class='insertions'>+79</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* Fix "Invalid hook call" warning

* Fix eslint warnings

* Apply code review suggestions

</td></tr>
<tr class='logheader'><td><span title='2022-06-29 17:11:48 -0500'>2022-06-29</span></td><td class='logsubject'><a href='/ansg191/astro/commit/scripts/package.json?h=@astrojs/prefetch@0.0.3&amp;id=38f2fd7723407a80fbece621be2d4aa95713df7f&amp;follow=1'>[ci] release (#3759)</a><span class='decoration'><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=astro@1.0.0-beta.59'>astro@1.0.0-beta.59</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/telemetry@0.2.2'>@astrojs/telemetry@0.2.2</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/preact@0.3.0'>@astrojs/preact@0.3.0</a></span></td><td><img src='//www.gravatar.com/avatar/08ecf36c18a9cde65df00e27a15518c2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Bot
</td><td>42</td><td><span class='deletions'>-121</span>/<span class='insertions'>+117</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
Co-authored-by: github-actions[bot] &lt;github-actions[bot]@users.noreply.github.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2022-06-29 21:56:28 +0000'>2022-06-29</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/webapi/mod.d.ts?h=@astrojs/prefetch@0.0.3&amp;id=a99a54d344b225d2deec17322a670844c0682418&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/d992ca8d4b18ac36e0a6e5f2fdeb063f?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> FredKSchott
</td><td>8</td><td><span class='deletions'>-35</span>/<span class='insertions'>+36</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-06-29 14:54:40 -0700'>2022-06-29</span></td><td class='logsubject'><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=@astrojs/prefetch@0.0.3&amp;id=4bc6c7ceaa799dcb5184601087b1ae664631e435&amp;follow=1'>manual lockfile update (#3751)</a></td><td><img src='//www.gravatar.com/avatar/184a1f14c759795b94ae1d01b23cc9c7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Schott
</td><td>3</td><td><span class='deletions'>-2659</span>/<span class='insertions'>+2871</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* lockfile update

* update lockfile gen script

* Update index.ts

</td></tr>
<tr class='logheader'><td><span title='2022-06-29 14:54:33 -0700'>2022-06-29</span></td><td class='logsubject'><a href='/ansg191/astro/commit/packages/webapi/mod.d.ts?h=@astrojs/prefetch@0.0.3&amp;id=dd176ca58d9ce8ab757075491568a014c0943de2&amp;follow=1'>add error event to telemetry (#3750)</a></td><td><img src='//www.gravatar.com/avatar/184a1f14c759795b94ae1d01b23cc9c7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Fred K. Schott
</td><td>16</td><td><span class='deletions'>-85</span>/<span class='insertions'>+270</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
