diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index 6bb0af0a0..4fe51ec93 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -99,10 +99,8 @@ export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, roo }, { key: 'Alt-.', - run: (_, e) => { - e.preventDefault(); - onStop?.(); - }, + preventDefault: true, + run: () => onStop?.(), }, /* { key: 'Ctrl-Shift-.', diff --git a/website/.astro/settings.json b/website/.astro/settings.json deleted file mode 100644 index bf82959bd..000000000 --- a/website/.astro/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "devToolbar": { - "enabled": false - } -} \ No newline at end of file diff --git a/website/.astro/types.d.ts b/website/.astro/types.d.ts deleted file mode 100644 index f091daa1d..000000000 --- a/website/.astro/types.d.ts +++ /dev/null @@ -1,290 +0,0 @@ -declare module 'astro:content' { - interface Render { - '.mdx': Promise<{ - Content: import('astro').MarkdownInstance<{}>['Content']; - headings: import('astro').MarkdownHeading[]; - remarkPluginFrontmatter: Record; - }>; - } -} - -declare module 'astro:content' { - interface Render { - '.md': Promise<{ - Content: import('astro').MarkdownInstance<{}>['Content']; - headings: import('astro').MarkdownHeading[]; - remarkPluginFrontmatter: Record; - }>; - } -} - -declare module 'astro:content' { - export { z } from 'astro/zod'; - - type Flatten = T extends { [K: string]: infer U } ? U : never; - - export type CollectionKey = keyof AnyEntryMap; - export type CollectionEntry = Flatten; - - export type ContentCollectionKey = keyof ContentEntryMap; - export type DataCollectionKey = keyof DataEntryMap; - - // This needs to be in sync with ImageMetadata - export type ImageFunction = () => import('astro/zod').ZodObject<{ - src: import('astro/zod').ZodString; - width: import('astro/zod').ZodNumber; - height: import('astro/zod').ZodNumber; - format: import('astro/zod').ZodUnion< - [ - import('astro/zod').ZodLiteral<'png'>, - import('astro/zod').ZodLiteral<'jpg'>, - import('astro/zod').ZodLiteral<'jpeg'>, - import('astro/zod').ZodLiteral<'tiff'>, - import('astro/zod').ZodLiteral<'webp'>, - import('astro/zod').ZodLiteral<'gif'>, - import('astro/zod').ZodLiteral<'svg'>, - import('astro/zod').ZodLiteral<'avif'>, - ] - >; - }>; - - type BaseSchemaWithoutEffects = - | import('astro/zod').AnyZodObject - | import('astro/zod').ZodUnion<[BaseSchemaWithoutEffects, ...BaseSchemaWithoutEffects[]]> - | import('astro/zod').ZodDiscriminatedUnion - | import('astro/zod').ZodIntersection; - - type BaseSchema = - | BaseSchemaWithoutEffects - | import('astro/zod').ZodEffects; - - export type SchemaContext = { image: ImageFunction }; - - type DataCollectionConfig = { - type: 'data'; - schema?: S | ((context: SchemaContext) => S); - }; - - type ContentCollectionConfig = { - type?: 'content'; - schema?: S | ((context: SchemaContext) => S); - }; - - type CollectionConfig = ContentCollectionConfig | DataCollectionConfig; - - export function defineCollection( - input: CollectionConfig - ): CollectionConfig; - - type AllValuesOf = T extends any ? T[keyof T] : never; - type ValidContentEntrySlug = AllValuesOf< - ContentEntryMap[C] - >['slug']; - - export function getEntryBySlug< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - collection: C, - // Note that this has to accept a regular string too, for SSR - entrySlug: E - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - - export function getDataEntryById( - collection: C, - entryId: E - ): Promise>; - - export function getCollection>( - collection: C, - filter?: (entry: CollectionEntry) => entry is E - ): Promise; - export function getCollection( - collection: C, - filter?: (entry: CollectionEntry) => unknown - ): Promise[]>; - - export function getEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >(entry: { - collection: C; - slug: E; - }): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - export function getEntry< - C extends keyof DataEntryMap, - E extends keyof DataEntryMap[C] | (string & {}), - >(entry: { - collection: C; - id: E; - }): E extends keyof DataEntryMap[C] - ? Promise - : Promise | undefined>; - export function getEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - collection: C, - slug: E - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - export function getEntry< - C extends keyof DataEntryMap, - E extends keyof DataEntryMap[C] | (string & {}), - >( - collection: C, - id: E - ): E extends keyof DataEntryMap[C] - ? Promise - : Promise | undefined>; - - /** Resolve an array of entry references from the same collection */ - export function getEntries( - entries: { - collection: C; - slug: ValidContentEntrySlug; - }[] - ): Promise[]>; - export function getEntries( - entries: { - collection: C; - id: keyof DataEntryMap[C]; - }[] - ): Promise[]>; - - export function reference( - collection: C - ): import('astro/zod').ZodEffects< - import('astro/zod').ZodString, - C extends keyof ContentEntryMap - ? { - collection: C; - slug: ValidContentEntrySlug; - } - : { - collection: C; - id: keyof DataEntryMap[C]; - } - >; - // Allow generic `string` to avoid excessive type errors in the config - // if `dev` is not running to update as you edit. - // Invalid collection names will be caught at build time. - export function reference( - collection: C - ): import('astro/zod').ZodEffects; - - type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; - type InferEntrySchema = import('astro/zod').infer< - ReturnTypeOrOriginal['schema']> - >; - - type ContentEntryMap = { - "blog": { -"release-0.0.2-schwindlig.mdx": { - id: "release-0.0.2-schwindlig.mdx"; - slug: "release-002-schwindlig"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.0.2.1-stuermisch.mdx": { - id: "release-0.0.2.1-stuermisch.mdx"; - slug: "release-0021-stuermisch"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.0.3-maelstrom.mdx": { - id: "release-0.0.3-maelstrom.mdx"; - slug: "release-003-maelstrom"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.0.4-gischt.mdx": { - id: "release-0.0.4-gischt.mdx"; - slug: "release-004-gischt"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.3.0-donauwelle.mdx": { - id: "release-0.3.0-donauwelle.mdx"; - slug: "release-030-donauwelle"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.4.0-brandung.mdx": { - id: "release-0.4.0-brandung.mdx"; - slug: "release-040-brandung"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.5.0-wirbel.mdx": { - id: "release-0.5.0-wirbel.mdx"; - slug: "release-050-wirbel"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.6.0-zimtschnecke.mdx": { - id: "release-0.6.0-zimtschnecke.mdx"; - slug: "release-060-zimtschnecke"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.7.0-zuckerguss.mdx": { - id: "release-0.7.0-zuckerguss.mdx"; - slug: "release-070-zuckerguss"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.8.0-himbeermuffin.mdx": { - id: "release-0.8.0-himbeermuffin.mdx"; - slug: "release-080-himbeermuffin"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.9.0-bananenbrot.mdx": { - id: "release-0.9.0-bananenbrot.mdx"; - slug: "release-090-bananenbrot"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-1.0.0-geburtstagskuchen.mdx": { - id: "release-1.0.0-geburtstagskuchen.mdx"; - slug: "release-100-geburtstagskuchen"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"year-2.mdx": { - id: "year-2.mdx"; - slug: "year-2"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -}; - - }; - - type DataEntryMap = { - - }; - - type AnyEntryMap = ContentEntryMap & DataEntryMap; - - type ContentConfig = typeof import("../src/content/config"); -} diff --git a/website/.gitignore b/website/.gitignore index 60c587b1a..199afe530 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,3 +1,4 @@ +.astro # build output dist/ diff --git a/website/src/components/Udels/UdelsEditor.jsx b/website/src/components/Udels/UdelsEditor.jsx index 2d05640f3..fe7a1ae48 100644 --- a/website/src/components/Udels/UdelsEditor.jsx +++ b/website/src/components/Udels/UdelsEditor.jsx @@ -1,5 +1,5 @@ import Loader from '@src/repl/components/Loader'; -import { Panel } from '@src/repl/components/panel/Panel'; +import { HorizontalPanel } from '@src/repl/components/panel/Panel'; import { Code } from '@src/repl/components/Code'; import BigPlayButton from '@src/repl/components/BigPlayButton'; import UserFacingErrorMessage from '@src/repl/components/UserFacingErrorMessage'; @@ -20,7 +20,7 @@ export default function UdelsEditor(Props) { - + ); } diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index 300adb0bc..0f3d3ce10 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -1,7 +1,6 @@ import { useState, useRef, useCallback, useMemo, useEffect } from 'react'; import { Icon } from './Icon'; import { silence, noteToMidi, _mod } from '@strudel/core'; -import { clearHydra } from '@strudel/hydra'; import { getDrawContext, getPunchcardPainter } from '@strudel/draw'; import { transpiler } from '@strudel/transpiler'; import { getAudioContext, webaudioOutput, initAudioOnFirstClick } from '@strudel/webaudio'; diff --git a/website/src/repl/components/ReplEditor.jsx b/website/src/repl/components/ReplEditor.jsx index 83317bf37..5a1c2e676 100644 --- a/website/src/repl/components/ReplEditor.jsx +++ b/website/src/repl/components/ReplEditor.jsx @@ -1,5 +1,5 @@ import Loader from '@src/repl/components/Loader'; -import { Panel } from '@src/repl/components/panel/Panel'; +import { HorizontalPanel, VerticalPanel } from '@src/repl/components/panel/Panel'; import { Code } from '@src/repl/components/Code'; import UserFacingErrorMessage from '@src/repl/components/UserFacingErrorMessage'; import { Header } from './Header'; @@ -21,10 +21,10 @@ export default function ReplEditor(Props) {
- {panelPosition === 'right' && } + {panelPosition === 'right' && }
- {panelPosition === 'bottom' && } + {panelPosition === 'bottom' && } ); } diff --git a/website/src/repl/components/panel/ConsoleTab.jsx b/website/src/repl/components/panel/ConsoleTab.jsx index e1bbbe647..f0fca584c 100644 --- a/website/src/repl/components/panel/ConsoleTab.jsx +++ b/website/src/repl/components/panel/ConsoleTab.jsx @@ -2,7 +2,7 @@ import cx from '@src/cx.mjs'; export function ConsoleTab({ log }) { return ( -
+