svelte switch, first steps

This commit is contained in:
Josh Patra
2025-04-11 21:08:36 -04:00
parent a9e8f2072f
commit 234cc639f7
40 changed files with 5151 additions and 17729 deletions

287
.svelte-kit/ambient.d.ts vendored Normal file
View File

@@ -0,0 +1,287 @@
// this file is generated — do not edit it
/// <reference types="@sveltejs/kit" />
/**
* Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured).
*
* _Unlike_ [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination.
*
* ```ts
* import { API_KEY } from '$env/static/private';
* ```
*
* Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
*
* ```
* MY_FEATURE_FLAG=""
* ```
*
* You can override `.env` values from the command line like so:
*
* ```bash
* MY_FEATURE_FLAG="enabled" npm run dev
* ```
*/
declare module '$env/static/private' {
export const NVM_INC: string;
export const __MISE_DIFF: string;
export const TERM_PROGRAM: string;
export const ET_NO_TELEMETRY: string;
export const NODE: string;
export const INIT_CWD: string;
export const _P9K_TTY: string;
export const ZSH_THEME: string;
export const PYENV_ROOT: string;
export const NVM_CD_FLAGS: string;
export const ANDROID_HOME: string;
export const TERM: string;
export const SHELL: string;
export const SAVEHIST: string;
export const HISTSIZE: string;
export const TMPDIR: string;
export const HOMEBREW_REPOSITORY: string;
export const npm_config_global_prefix: string;
export const TERM_PROGRAM_VERSION: string;
export const MallocNanoZone: string;
export const COLOR: string;
export const TERM_SESSION_ID: string;
export const npm_config_noproxy: string;
export const npm_config_local_prefix: string;
export const ZSH: string;
export const LC_ALL: string;
export const USER: string;
export const NVM_DIR: string;
export const LS_COLORS: string;
export const COMMAND_MODE: string;
export const npm_config_globalconfig: string;
export const SSH_AUTH_SOCK: string;
export const __CF_USER_TEXT_ENCODING: string;
export const SOLARIZED_THEME: string;
export const npm_execpath: string;
export const TERM_FEATURES: string;
export const PYENV_VIRTUALENV_INIT: string;
export const ATUIN_NOBIND: string;
export const PAGER: string;
export const TMUX: string;
export const LSCOLORS: string;
export const TERMINFO_DIRS: string;
export const PATH: string;
export const npm_package_json: string;
export const _: string;
export const LaunchInstanceID: string;
export const npm_config_userconfig: string;
export const npm_config_init_module: string;
export const __CFBundleIdentifier: string;
export const npm_command: string;
export const PWD: string;
export const FZF_ALT_C_COMMAND: string;
export const npm_lifecycle_event: string;
export const P9K_SSH: string;
export const EDITOR: string;
export const npm_package_name: string;
export const P9K_TTY: string;
export const LANG: string;
export const ITERM_PROFILE: string;
export const FZF_ALT_C_OPTS: string;
export const npm_config_npm_version: string;
export const XPC_FLAGS: string;
export const TMUX_PANE: string;
export const npm_config_node_gyp: string;
export const npm_package_version: string;
export const XPC_SERVICE_NAME: string;
export const GPG_TTY: string;
export const SHLVL: string;
export const PYENV_SHELL: string;
export const HOME: string;
export const COLORFGBG: string;
export const __MISE_ORIG_PATH: string;
export const tmux_version: string;
export const LC_TERMINAL_VERSION: string;
export const HOMEBREW_PREFIX: string;
export const ATUIN_HISTORY_ID: string;
export const MISE_SHELL: string;
export const ITERM_SESSION_ID: string;
export const npm_config_cache: string;
export const LOGNAME: string;
export const LESS: string;
export const npm_lifecycle_script: string;
export const FZF_CTRL_T_OPTS: string;
export const ATUIN_SESSION: string;
export const FZF_CTRL_T_COMMAND: string;
export const TMUX_PLUGIN_MANAGER_PATH: string;
export const FZF_DEFAULT_COMMAND: string;
export const NVM_BIN: string;
export const npm_config_user_agent: string;
export const __MISE_SESSION: string;
export const INFOPATH: string;
export const HOMEBREW_CELLAR: string;
export const _P9K_SSH_TTY: string;
export const LC_TERMINAL: string;
export const DISPLAY: string;
export const BAT_THEME: string;
export const SECURITYSESSIONID: string;
export const HISTFILE: string;
export const npm_node_execpath: string;
export const npm_config_prefix: string;
export const _fzf_git_cat: string;
export const COLORTERM: string;
export const NODE_ENV: string;
}
/**
* Similar to [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
*
* Values are replaced statically at build time.
*
* ```ts
* import { PUBLIC_BASE_URL } from '$env/static/public';
* ```
*/
declare module '$env/static/public' {
}
/**
* This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured).
*
* This module cannot be imported into client-side code.
*
* Dynamic environment variables cannot be used during prerendering.
*
* ```ts
* import { env } from '$env/dynamic/private';
* console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE);
* ```
*
* > In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
*/
declare module '$env/dynamic/private' {
export const env: {
NVM_INC: string;
__MISE_DIFF: string;
TERM_PROGRAM: string;
ET_NO_TELEMETRY: string;
NODE: string;
INIT_CWD: string;
_P9K_TTY: string;
ZSH_THEME: string;
PYENV_ROOT: string;
NVM_CD_FLAGS: string;
ANDROID_HOME: string;
TERM: string;
SHELL: string;
SAVEHIST: string;
HISTSIZE: string;
TMPDIR: string;
HOMEBREW_REPOSITORY: string;
npm_config_global_prefix: string;
TERM_PROGRAM_VERSION: string;
MallocNanoZone: string;
COLOR: string;
TERM_SESSION_ID: string;
npm_config_noproxy: string;
npm_config_local_prefix: string;
ZSH: string;
LC_ALL: string;
USER: string;
NVM_DIR: string;
LS_COLORS: string;
COMMAND_MODE: string;
npm_config_globalconfig: string;
SSH_AUTH_SOCK: string;
__CF_USER_TEXT_ENCODING: string;
SOLARIZED_THEME: string;
npm_execpath: string;
TERM_FEATURES: string;
PYENV_VIRTUALENV_INIT: string;
ATUIN_NOBIND: string;
PAGER: string;
TMUX: string;
LSCOLORS: string;
TERMINFO_DIRS: string;
PATH: string;
npm_package_json: string;
_: string;
LaunchInstanceID: string;
npm_config_userconfig: string;
npm_config_init_module: string;
__CFBundleIdentifier: string;
npm_command: string;
PWD: string;
FZF_ALT_C_COMMAND: string;
npm_lifecycle_event: string;
P9K_SSH: string;
EDITOR: string;
npm_package_name: string;
P9K_TTY: string;
LANG: string;
ITERM_PROFILE: string;
FZF_ALT_C_OPTS: string;
npm_config_npm_version: string;
XPC_FLAGS: string;
TMUX_PANE: string;
npm_config_node_gyp: string;
npm_package_version: string;
XPC_SERVICE_NAME: string;
GPG_TTY: string;
SHLVL: string;
PYENV_SHELL: string;
HOME: string;
COLORFGBG: string;
__MISE_ORIG_PATH: string;
tmux_version: string;
LC_TERMINAL_VERSION: string;
HOMEBREW_PREFIX: string;
ATUIN_HISTORY_ID: string;
MISE_SHELL: string;
ITERM_SESSION_ID: string;
npm_config_cache: string;
LOGNAME: string;
LESS: string;
npm_lifecycle_script: string;
FZF_CTRL_T_OPTS: string;
ATUIN_SESSION: string;
FZF_CTRL_T_COMMAND: string;
TMUX_PLUGIN_MANAGER_PATH: string;
FZF_DEFAULT_COMMAND: string;
NVM_BIN: string;
npm_config_user_agent: string;
__MISE_SESSION: string;
INFOPATH: string;
HOMEBREW_CELLAR: string;
_P9K_SSH_TTY: string;
LC_TERMINAL: string;
DISPLAY: string;
BAT_THEME: string;
SECURITYSESSIONID: string;
HISTFILE: string;
npm_node_execpath: string;
npm_config_prefix: string;
_fzf_git_cat: string;
COLORTERM: string;
NODE_ENV: string;
[key: `PUBLIC_${string}`]: undefined;
[key: `${string}`]: string | undefined;
}
}
/**
* Similar to [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
*
* Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead.
*
* Dynamic environment variables cannot be used during prerendering.
*
* ```ts
* import { env } from '$env/dynamic/public';
* console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE);
* ```
*/
declare module '$env/dynamic/public' {
export const env: {
[key: `PUBLIC_${string}`]: string | undefined;
}
}

View File

@@ -0,0 +1,28 @@
export { matchers } from './matchers.js';
export const nodes = [
() => import('./nodes/0'),
() => import('./nodes/1'),
() => import('./nodes/2')
];
export const server_loads = [];
export const dictionary = {
"/": [2]
};
export const hooks = {
handleError: (({ error }) => { console.error(error) }),
reroute: (() => {}),
transport: {}
};
export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));
export const hash = false;
export const decode = (type, value) => decoders[type](value);
export { default as root } from '../root.js';

View File

@@ -0,0 +1 @@
export const matchers = {};

View File

@@ -0,0 +1 @@
export { default as component } from "../../../../src/routes/+layout.svelte";

View File

@@ -0,0 +1 @@
export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte";

View File

@@ -0,0 +1 @@
export { default as component } from "../../../../src/routes/+page.svelte";

View File

@@ -0,0 +1,3 @@
import { asClassComponent } from 'svelte/legacy';
import Root from './root.svelte';
export default asClassComponent(Root);

View File

@@ -0,0 +1,66 @@
<!-- This file is generated by @sveltejs/kit — do not edit it! -->
<svelte:options runes={true} />
<script>
import { setContext, onMount, tick } from 'svelte';
import { browser } from '$app/environment';
// stores
let { stores, page, constructors, components = [], form, data_0 = null, data_1 = null } = $props();
if (!browser) {
setContext('__svelte__', stores);
}
if (browser) {
$effect.pre(() => stores.page.set(page));
} else {
stores.page.set(page);
}
$effect(() => {
stores;page;constructors;components;form;data_0;data_1;
stores.page.notify();
});
let mounted = $state(false);
let navigated = $state(false);
let title = $state(null);
onMount(() => {
const unsubscribe = stores.page.subscribe(() => {
if (mounted) {
navigated = true;
tick().then(() => {
title = document.title || 'untitled page';
});
}
});
mounted = true;
return unsubscribe;
});
const Pyramid_1=$derived(constructors[1])
</script>
{#if constructors[1]}
{@const Pyramid_0 = constructors[0]}
<!-- svelte-ignore binding_property_non_reactive -->
<Pyramid_0 bind:this={components[0]} data={data_0} {form}>
<!-- svelte-ignore binding_property_non_reactive -->
<Pyramid_1 bind:this={components[1]} data={data_1} {form} />
</Pyramid_0>
{:else}
{@const Pyramid_0 = constructors[0]}
<!-- svelte-ignore binding_property_non_reactive -->
<Pyramid_0 bind:this={components[0]} data={data_0} {form} />
{/if}
{#if mounted}
<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px">
{#if navigated}
{title}
{/if}
</div>
{/if}

View File

@@ -0,0 +1,48 @@
import root from '../root.js';
import { set_building, set_prerendering } from '__sveltekit/environment';
import { set_assets } from '__sveltekit/paths';
import { set_manifest, set_read_implementation } from '__sveltekit/server';
import { set_private_env, set_public_env, set_safe_public_env } from '../../../node_modules/@sveltejs/kit/src/runtime/shared-server.js';
export const options = {
app_template_contains_nonce: false,
csp: {"mode":"auto","directives":{"upgrade-insecure-requests":false,"block-all-mixed-content":false},"reportOnly":{"upgrade-insecure-requests":false,"block-all-mixed-content":false}},
csrf_check_origin: true,
embedded: false,
env_public_prefix: 'PUBLIC_',
env_private_prefix: '',
hash_routing: false,
hooks: null, // added lazily, via `get_hooks`
preload_strategy: "modulepreload",
root,
service_worker: false,
templates: {
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">" + body + "</div>\n\t</body>\n</html>\n",
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
},
version_hash: "19ddiqn"
};
export async function get_hooks() {
let handle;
let handleFetch;
let handleError;
let init;
let reroute;
let transport;
return {
handle,
handleFetch,
handleError,
init,
reroute,
transport
};
}
export { set_assets, set_building, set_manifest, set_prerendering, set_private_env, set_public_env, set_read_implementation, set_safe_public_env };

25
.svelte-kit/non-ambient.d.ts vendored Normal file
View File

@@ -0,0 +1,25 @@
// this file is generated — do not edit it
declare module "svelte/elements" {
export interface HTMLAttributes<T> {
'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null;
'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null;
'data-sveltekit-preload-code'?:
| true
| ''
| 'eager'
| 'viewport'
| 'hover'
| 'tap'
| 'off'
| undefined
| null;
'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null;
'data-sveltekit-reload'?: true | '' | 'off' | undefined | null;
'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null;
}
}
export {};

49
.svelte-kit/tsconfig.json Normal file
View File

@@ -0,0 +1,49 @@
{
"compilerOptions": {
"paths": {
"$lib": [
"../src/lib"
],
"$lib/*": [
"../src/lib/*"
]
},
"rootDirs": [
"..",
"./types"
],
"verbatimModuleSyntax": true,
"isolatedModules": true,
"lib": [
"esnext",
"DOM",
"DOM.Iterable"
],
"moduleResolution": "bundler",
"module": "esnext",
"noEmit": true,
"target": "esnext"
},
"include": [
"ambient.d.ts",
"non-ambient.d.ts",
"./types/**/$types.d.ts",
"../vite.config.js",
"../vite.config.ts",
"../src/**/*.js",
"../src/**/*.ts",
"../src/**/*.svelte",
"../tests/**/*.js",
"../tests/**/*.ts",
"../tests/**/*.svelte"
],
"exclude": [
"../node_modules/**",
"../src/service-worker.js",
"../src/service-worker/**/*.js",
"../src/service-worker.ts",
"../src/service-worker/**/*.ts",
"../src/service-worker.d.ts",
"../src/service-worker/**/*.d.ts"
]
}

View File

@@ -0,0 +1,3 @@
{
"/": []
}

View File

@@ -0,0 +1,24 @@
import type * as Kit from '@sveltejs/kit';
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
// @ts-ignore
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
type RouteParams = { };
type RouteId = '/';
type MaybeWithVoid<T> = {} extends T ? T | void : T;
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
type EnsureDefined<T> = T extends null | undefined ? {} : T;
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
export type Snapshot<T = any> = Kit.Snapshot<T>;
type PageParentData = EnsureDefined<LayoutData>;
type LayoutRouteId = RouteId | "/" | null
type LayoutParams = RouteParams & { }
type LayoutParentData = EnsureDefined<{}>;
export type PageServerData = null;
export type PageData = Expand<PageParentData>;
export type PageProps = { data: PageData }
export type LayoutServerData = null;
export type LayoutData = Expand<LayoutParentData>;
export type LayoutProps = { data: LayoutData; children: import("svelte").Snippet }