From 13e5727497fb0d637c8740e8af39e93521c291c9 Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Thu, 21 Nov 2024 17:01:44 +0100 Subject: [PATCH] sprucing the app up a little --- app.config.ts | 2 + bun.lockb | Bin 347855 -> 354252 bytes package.json | 1 + public/images/favicon.old.dark.svg | 7 - public/images/favicon.old.light.svg | 7 - src/app.css | 41 ++++-- src/app.tsx | 5 +- src/assets/edit-blank.svg | 104 ++++++++++++++ src/assets/landing.svg | 150 ++++++++++++++++++++ src/components/colorschemepicker.module.css | 6 + src/components/colorschemepicker.tsx | 112 ++++++++++----- src/routes/(editor).tsx | 34 +++-- src/routes/(editor)/edit.module.css | 20 ++- src/routes/(editor)/edit.tsx | 9 +- src/routes/(editor)/index.module.css | 5 + src/routes/(editor)/index.tsx | 39 +---- src/routes/(editor)/test.module.css | 66 +++++++++ src/routes/(editor)/test.tsx | 38 +++++ src/routes/editor.module.css | 1 + tsconfig.json | 1 + 20 files changed, 537 insertions(+), 111 deletions(-) delete mode 100644 public/images/favicon.old.dark.svg delete mode 100644 public/images/favicon.old.light.svg create mode 100644 src/assets/edit-blank.svg create mode 100644 src/assets/landing.svg create mode 100644 src/routes/(editor)/test.module.css create mode 100644 src/routes/(editor)/test.tsx diff --git a/app.config.ts b/app.config.ts index cf822ba..299ea96 100644 --- a/app.config.ts +++ b/app.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from '@solidjs/start/config'; +import solidSvg from 'vite-plugin-solid-svg' // import { VitePWA } from 'vite-plugin-pwa' export default defineConfig({ @@ -7,6 +8,7 @@ export default defineConfig({ cspNonce: 'KAAS_IS_AWESOME', }, plugins: [ + solidSvg() // VitePWA({ // strategies: 'injectManifest', // registerType: 'autoUpdate', diff --git a/bun.lockb b/bun.lockb index 14b28bc6609637c2847eec9a96dd0ac50620d822..6d0efbdaecac3e51238d7d9ee4c107ee6a872342 100644 GIT binary patch delta 63811 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

01O@+0P#M4s*$4vK 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 bL0&8si?&;RWVx6 - - - - - - diff --git a/public/images/favicon.old.light.svg b/public/images/favicon.old.light.svg deleted file mode 100644 index 3f2ef26..0000000 --- a/public/images/favicon.old.light.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/app.css b/src/app.css index 1aba89e..b6caa23 100644 --- a/src/app.css +++ b/src/app.css @@ -1,16 +1,28 @@ @import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght,GRAD@8..144,400,45;8..144,400,50;8..144,1000,0&family=Roboto+Serif:opsz,GRAD@8..144,71&display=swap"); :root { - --surface-1: light-dark(#ddd, #222); - --surface-2: light-dark(#e8e8e8, #282828); - --surface-3: light-dark(#eee, #333); - --surface-4: light-dark(#f8f8f8, #383838); - --surface-5: light-dark(#fff, #444); - --text-1: light-dark(#222, #eee); - --text-2: light-dark(#282828, #d8d8d8); + --hue: 182.77deg; - --primary: light-dark(oklch(.7503 0.117 181.6deg), oklch(.8549 0.1149 182.77deg)); - --secondary: oklch(from var(--primary) l c calc(h - 180)); + --primary-100: oklch(from var(--primary-500) .95 c h); + --primary-300: oklch(from var(--primary-500) .9 c h); + --primary-500: light-dark(oklch(.7503 0.117 var(--hue)), oklch(.8549 0.1149 var(--hue))); + --primary-700: oklch(from var(--primary-500) .7 c h); + --primary-900: oklch(from var(--primary-500) .6 c h); + + --secondary-100: oklch(from var(--secondary-500) .95 c h); + --secondary-300: oklch(from var(--secondary-500) .9 c h); + --secondary-500: oklch(from var(--primary-500) l c calc(h - 180)); + --secondary-700: oklch(from var(--secondary-500) .7 c h); + --secondary-900: oklch(from var(--secondary-500) .6 c h); + + --surface-1: light-dark(oklch(from var(--secondary-500) .9 .02 h), oklch(from var(--secondary-500) .2 .02 h)); + --surface-2: oklch(from var(--surface-1) calc(l + .025) c h); + --surface-3: oklch(from var(--surface-2) calc(l + .025) c h); + --surface-4: oklch(from var(--surface-3) calc(l + .025) c h); + --surface-5: oklch(from var(--surface-4) calc(l + .025) c h); + + --text-1: light-dark(oklch(from var(--secondary-500) .2 .02 h), oklch(from var(--secondary-500) .9 .02 h)); + --text-2: oklch(from var(--text-1) calc(l + .1) c h); --info: light-dark(oklch(.71 .17 249), oklch(.71 .17 249)); --fail: light-dark(oklch(.64 .21 25.3), oklch(.64 .21 25.3)); @@ -30,6 +42,7 @@ --padding-s: .25em; --padding-m: .5em; --padding-l: 1em; + --padding-xl: 1.5em; } html { @@ -49,7 +62,7 @@ body { background-color: var(--surface-1); color: var(--text-2); - accent-color: var(--primary); + accent-color: var(--primary-500); margin: 0; @@ -65,7 +78,7 @@ body { } a { - color: var(--primary); + color: var(--primary-500); } h1 { @@ -86,4 +99,10 @@ code { background-color: var(--surface-3); border: 1px solid var(--surface-5); border-radius: var(--radii-m); +} + +@property --hue { + syntax: ''; + inherits: false; + initial-value: 0deg; } \ No newline at end of file diff --git a/src/app.tsx b/src/app.tsx index 4cb642d..977a2cf 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -3,13 +3,16 @@ import { Router } from "@solidjs/router"; import { FileRoutes } from "@solidjs/start/router"; import { Suspense } from "solid-js"; import "./app.css"; +import { ThemeProvider } from "./components/colorschemepicker"; export default function App() { return ( ( - {props.children} + + {props.children} + )} > diff --git a/src/assets/edit-blank.svg b/src/assets/edit-blank.svg new file mode 100644 index 0000000..0e95e43 --- /dev/null +++ b/src/assets/edit-blank.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/landing.svg b/src/assets/landing.svg new file mode 100644 index 0000000..b8d4ed8 --- /dev/null +++ b/src/assets/landing.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/colorschemepicker.module.css b/src/components/colorschemepicker.module.css index 0a64665..797b99f 100644 --- a/src/components/colorschemepicker.module.css +++ b/src/components/colorschemepicker.module.css @@ -19,4 +19,10 @@ &:has(:focus-visible) { border-color: var(--info); } +} + +.hue { + display: flex; + flex-flow: row; + align-items: center; } \ No newline at end of file diff --git a/src/components/colorschemepicker.tsx b/src/components/colorschemepicker.tsx index 5d7ffb9..0f4c9bb 100644 --- a/src/components/colorschemepicker.tsx +++ b/src/components/colorschemepicker.tsx @@ -1,69 +1,115 @@ -import { Component, createEffect, createMemo, createResource, For, Setter } from "solid-js"; +import { Accessor, Component, createContext, createEffect, createMemo, createResource, For, ParentComponent, Setter, Show, Suspense, useContext } from "solid-js"; import css from './colorschemepicker.module.css'; import { CgDarkMode } from "solid-icons/cg"; -import { action, cache, useAction } from "@solidjs/router"; +import { action, createAsyncStore, query, useAction } from "@solidjs/router"; import { useSession } from "vinxi/http"; +import { createStore, reconcile, ReconcileOptions, SetStoreFunction } from "solid-js/store"; export enum ColorScheme { Auto = 'light dark', Light = 'light', Dark = 'dark', } -type ColorSchemeKey = keyof typeof ColorScheme; -const colorSchemeKeys: readonly ColorSchemeKey[] = ['Auto', 'Light', 'Dark'] as const; +const colorSchemes = Object.entries(ColorScheme) as readonly [keyof typeof ColorScheme, ColorScheme][]; -interface ColorSchemePickerProps { - value?: Setter; +export interface State { + colorScheme: ColorScheme; + hue: number; } const getSession = async () => { 'use server'; - console.log('what? why? how???', process.env.SESSION_SECRET); - - return useSession<{ colorScheme: ColorSchemeKey }>({ + return useSession({ password: process.env.SESSION_SECRET!, }); }; -export const getColorScheme = cache(async () => { +export const getState = query(async () => { 'use server'; const session = await getSession(); - return session.data.colorScheme; + return session.data; }, 'color-scheme'); -const setColorScheme = action(async (colorScheme: ColorSchemeKey) => { +const setState = action(async (state: State) => { 'use server'; const session = await getSession(); - await session.update({ colorScheme }); + await session.update(state); }, 'color-scheme'); -export const ColorSchemePicker: Component = (props) => { - const [value, { mutate }] = createResource(() => getColorScheme(), { initialValue: 'Auto' }); - const updateStore = useAction(setColorScheme); +interface ThemeContextType { + readonly theme: State; + setColorScheme(colorScheme: ColorScheme): void; + setHue(hue: number): void; +} - createEffect(() => { - props.value?.(ColorScheme[value()]); - }); +const ThemeContext = createContext(); - return ; + if (theme === undefined) { + throw new Error('useColorScheme is called outside a '); + } + + return theme; +}; + +export const ThemeProvider: ParentComponent = (props) => { + const [state, { mutate }] = createResource(() => getState(), { deferStream: true, initialValue: { colorScheme: ColorScheme.Auto, hue: 0 } }); + const updateState = useAction(setState); + + return + {state => { + const [store, setStore] = createStore(state()); + + createEffect(() => { + setStore(state()); + }); + + createEffect(() => { + console.log({ ...store }) + }); + + return ({ ...prev, colorScheme }))) }, + setHue(hue: number) { updateState(mutate(prev => ({ ...prev, hue }))) }, + }}> + {props.children} + ; + }} + ; +}; + +export const ColorSchemePicker: Component = (props) => { + const { theme, setColorScheme, setHue } = useStore(); + + return <> + + + + ; }; \ No newline at end of file diff --git a/src/routes/(editor).tsx b/src/routes/(editor).tsx index 1bb5e18..edde9a2 100644 --- a/src/routes/(editor).tsx +++ b/src/routes/(editor).tsx @@ -1,23 +1,26 @@ -import { Link, Meta, Title } from "@solidjs/meta"; -import { Component, createMemo, createSignal, ErrorBoundary, ParentProps, Show } from "solid-js"; -import { BsTranslate } from "solid-icons/bs"; +import { Link, Meta, Style, Title } from "@solidjs/meta"; +import { Component, createEffect, createMemo, createSignal, ErrorBoundary, ParentProps, Show } from "solid-js"; import { FilesProvider } from "~/features/file"; import { CommandPalette, CommandPaletteApi, Menu, MenuProvider } from "~/features/menu"; -import { A, createAsync, useBeforeLeave } from "@solidjs/router"; +import { A, RouteDefinition, useBeforeLeave } from "@solidjs/router"; import { createCommand, Modifier } from "~/features/command"; -import { ColorScheme, ColorSchemePicker, getColorScheme } from "~/components/colorschemepicker"; +import { ColorScheme, ColorSchemePicker, getState, useTheme } from "~/components/colorschemepicker"; import css from "./editor.module.css"; +export const route: RouteDefinition = { + preload: () => getState(), +}; + export default function Editor(props: ParentProps) { - const storedColorScheme = createAsync(() => getColorScheme(), { initialValue: 'Auto' }); + const theme = useTheme(); const [commandPalette, setCommandPalette] = createSignal(); - const colorScheme = createMemo(() => ColorScheme[storedColorScheme()]); + const color = createMemo(() => ({ [ColorScheme.Auto]: undefined, [ColorScheme.Light]: '#eee', [ColorScheme.Dark]: '#333', - }[ColorScheme[storedColorScheme()]])); + }[theme.colorScheme])); const commands = [ createCommand('open command palette', () => { @@ -32,7 +35,7 @@ export default function Editor(props: ParentProps) { } useBeforeLeave((e) => { - e.preventDefault() + e.preventDefault(); transition(() => { e.retry(true) }) }); @@ -40,14 +43,18 @@ export default function Editor(props: ParentProps) { return Calque - - - - + + }> + + @@ -66,6 +73,7 @@ export default function Editor(props: ParentProps) {

+
diff --git a/src/routes/(editor)/edit.module.css b/src/routes/(editor)/edit.module.css index 2bcab2b..108e015 100644 --- a/src/routes/(editor)/edit.module.css +++ b/src/routes/(editor)/edit.module.css @@ -27,9 +27,25 @@ .blank { display: grid; - grid: 100% / 100%; + place-content: center; + place-items: center; + grid-auto-flow: column; + gap: var(--padding-l); inline-size: 100%; block-size: 100%; - place-items: center; + & > svg { + padding-inline-end: 3em; + margin-inline-end: 3em; + border-inline-end: 2px solid var(--surface-5); + } + + & > button { + background-color: var(--surface-4); + color: var(--text-1); + padding: var(--padding-l) var(--padding-xl); + border: none; + border-radius: var(--radii-m); + cursor: pointer; + } } \ No newline at end of file diff --git a/src/routes/(editor)/edit.tsx b/src/routes/(editor)/edit.tsx index 3192d40..bf9ba3b 100644 --- a/src/routes/(editor)/edit.tsx +++ b/src/routes/(editor)/edit.tsx @@ -7,9 +7,10 @@ import { Grid, load, useFiles } from "~/features/file"; import { Command, CommandType, Context, createCommand, Modifier, noop, useCommands } from "~/features/command"; import { GridApi } from "~/features/file/grid"; import { Tab, Tabs } from "~/components/tabs"; -import css from "./edit.module.css"; import { isServer } from "solid-js/web"; import { Prompt, PromptApi } from "~/components/prompt"; +import EditBlankImage from '~/assets/edit-blank.svg' +import css from "./edit.module.css"; const isInstalledPWA = !isServer && window.matchMedia('(display-mode: standalone)').matches; @@ -269,6 +270,10 @@ const Editor: Component<{ root: FileSystemDirectoryHandle }> = (props) => { + + + + @@ -385,6 +390,8 @@ const Content: Component<{ directory: FileSystemDirectoryHandle, api?: Setter = (props) => { return
+ +
}; \ No newline at end of file diff --git a/src/routes/(editor)/index.module.css b/src/routes/(editor)/index.module.css index 0a4b674..a0e4468 100644 --- a/src/routes/(editor)/index.module.css +++ b/src/routes/(editor)/index.module.css @@ -3,6 +3,11 @@ place-content: center; gap: var(--padding-m); + & > :is(.primary, .secondary) { + display: grid; + grid: 3em / repeat(5, 3em); + } + ul { display: flex; flex-flow: column; diff --git a/src/routes/(editor)/index.tsx b/src/routes/(editor)/index.tsx index 4a8679a..a55bb3e 100644 --- a/src/routes/(editor)/index.tsx +++ b/src/routes/(editor)/index.tsx @@ -1,46 +1,13 @@ -import { Component, createEffect, createMemo, createResource, createSignal, For, onMount, Show } from "solid-js"; -import { useFiles } from "~/features/file"; -import { AiFillFile, AiFillFolder, AiFillFolderOpen } from "solid-icons/ai"; import { A } from "@solidjs/router"; +import LandingImage from '../../assets/landing.svg' import css from "./index.module.css"; -interface FileEntry { - name: string; - kind: 'file'; - meta: File; -} - -interface FolderEntry { - name: string; - kind: 'folder'; - entries: Entry[]; -} - -type Entry = FileEntry | FolderEntry; - -async function* walk(directory: FileSystemDirectoryHandle, filters: RegExp[] = [], depth = 0): AsyncGenerator { - if (depth === 10) { - return; - } - - for await (const handle of directory.values()) { - - if (filters.some(f => f.test(handle.name))) { - continue; - } - - if (handle.kind === 'file') { - yield { name: handle.name, kind: 'file', meta: await handle.getFile() }; - } - else { - yield { name: handle.name, kind: 'folder', entries: await Array.fromAsync(walk(handle, filters, depth + 1)) }; - } - } -} export default function Index() { return (
+ +

Hi, welcome!

Lets get started diff --git a/src/routes/(editor)/test.module.css b/src/routes/(editor)/test.module.css new file mode 100644 index 0000000..465ae65 --- /dev/null +++ b/src/routes/(editor)/test.module.css @@ -0,0 +1,66 @@ +.main { + display: grid; + place-content: center; + gap: var(--padding-m); + + & > svg { + inline-size: 100%; + } + + & > :is(.primary, .secondary) { + display: grid; + grid: 3em / repeat(5, 3em); + } + + & > .primary { + & > :nth-child(1) { + background-color: var(--primary-100); + } + + & > :nth-child(2) { + background-color: var(--primary-300); + } + + & > :nth-child(3) { + background-color: var(--primary-500); + } + + & > :nth-child(4) { + background-color: var(--primary-700); + } + + & > :nth-child(5) { + background-color: var(--primary-900); + } + } + + & > .secondary { + & > :nth-child(1) { + background-color: var(--secondary-100); + } + + & > :nth-child(2) { + background-color: var(--secondary-300); + } + + & > :nth-child(3) { + background-color: var(--secondary-500); + } + + & > :nth-child(4) { + background-color: var(--secondary-700); + } + + & > :nth-child(5) { + background-color: var(--secondary-900); + } + } + + ul { + display: flex; + flex-flow: column; + gap: var(--padding-s); + padding-inline-start: var(--padding-l); + margin: 0; + } +} \ No newline at end of file diff --git a/src/routes/(editor)/test.tsx b/src/routes/(editor)/test.tsx new file mode 100644 index 0000000..9fedd4e --- /dev/null +++ b/src/routes/(editor)/test.tsx @@ -0,0 +1,38 @@ +import { A } from "@solidjs/router"; +import LandingImage from '../../assets/landing.svg' +import css from "./test.module.css"; + + +export default function Index() { + return ( +
+ + +

Hi, welcome!

+ Lets get started + +
+ + + + + +
+ +
+ + + + + +
+ + +
+ ); +} diff --git a/src/routes/editor.module.css b/src/routes/editor.module.css index 7f57193..597cb8b 100644 --- a/src/routes/editor.module.css +++ b/src/routes/editor.module.css @@ -50,6 +50,7 @@ & .right { display: grid; + grid-auto-flow: column; align-content: center; } } diff --git a/tsconfig.json b/tsconfig.json index 2464cc2..9557a86 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,6 +15,7 @@ "@testing-library/jest-dom", "@types/wicg-file-system-access", "vinxi/types/client", + "vite-plugin-solid-svg/types-component-solid", "vite-plugin-pwa/solid", "bun-types" ],