This commit is contained in:
Thomas G. Lopes 2025-06-17 18:46:14 +01:00
parent 338e2ed6b4
commit 76fb39fe99
5 changed files with 35 additions and 20 deletions

View file

@ -38,23 +38,24 @@ IDK, calm down
- [ ] HuggingFace - [ ] HuggingFace
- [ ] OpenAI - [ ] OpenAI
- [ ] File upload - [ ] File upload
- [ ] Test link with free credits
- [x] Ensure responsiveness - [x] Ensure responsiveness
- [ ] File support - [ ] File support
- [x] Streams on the server - [x] Streams on the server
- [ ] Syntax highlighting with Shiki/markdown renderer - [x] Syntax highlighting with Shiki/markdown renderer
- [ ] Eliminate FOUC - [ ] Eliminate FOUC
- [ ] Cascade deletes and shit in Convex - [ ] Cascade deletes and shit in Convex
- [ ] Error notification central, specially for BYOK models like o3 - [ ] Error notification central, specially for BYOK models like o3
- [ ] Google Auth
- [ ] Fix light mode (urgh)
### Chat ### Chat
- [ ] loading state - [x] loading state
- [ ] deal with error states, both on creation attempt and message generation failure - [ ] deal with error states, both on creation attempt and message generation failure
- [ ] delete conversations option - [x] delete conversations option
- [ ] conversation title generation - [x] conversation title generation
- [ ] kbd powered popover model picker - [ ] kbd powered popover model picker
- [ ] autosize - [x] autosize
### Extra ### Extra
@ -64,3 +65,4 @@ IDK, calm down
- [ ] Image generation - [ ] Image generation
- [ ] Chat sharing - [ ] Chat sharing
- [ ] 404 page/redirect - [ ] 404 page/redirect
- [ ] Test link with free credits

View file

@ -42,7 +42,7 @@
"eslint-plugin-svelte": "^3.0.0", "eslint-plugin-svelte": "^3.0.0",
"globals": "^16.0.0", "globals": "^16.0.0",
"jsdom": "^26.0.0", "jsdom": "^26.0.0",
"melt": "^0.35.0", "melt": "https://pkg.vc/-/@melt-ui/melt@42e572f",
"mode-watcher": "^1.0.8", "mode-watcher": "^1.0.8",
"neverthrow": "^8.2.0", "neverthrow": "^8.2.0",
"prettier": "^3.4.2", "prettier": "^3.4.2",

11
pnpm-lock.yaml generated
View file

@ -124,8 +124,8 @@ importers:
specifier: ^26.0.0 specifier: ^26.0.0
version: 26.1.0 version: 26.1.0
melt: melt:
specifier: ^0.35.0 specifier: https://pkg.vc/-/@melt-ui/melt@42e572f
version: 0.35.0(@floating-ui/dom@1.7.1)(svelte@5.34.1) version: https://pkg.vc/-/@melt-ui/melt@42e572f(@floating-ui/dom@1.7.1)(svelte@5.34.1)
mode-watcher: mode-watcher:
specifier: ^1.0.8 specifier: ^1.0.8
version: 1.0.8(svelte@5.34.1) version: 1.0.8(svelte@5.34.1)
@ -1888,8 +1888,9 @@ packages:
mdurl@2.0.0: mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
melt@0.35.0: melt@https://pkg.vc/-/@melt-ui/melt@42e572f:
resolution: {integrity: sha512-Y8/ImbAN83rf11AaqtQ6u9DXcZ2/Ozu6HM7/oV0BZUt0Dh8Q/j06TKyyBB3u65FRsZDJBuxiQHPklCW7dQcfLw==} resolution: {tarball: https://pkg.vc/-/@melt-ui/melt@42e572f}
version: 0.35.0
peerDependencies: peerDependencies:
'@floating-ui/dom': ^1.6.0 '@floating-ui/dom': ^1.6.0
svelte: ^5.30.1 svelte: ^5.30.1
@ -4318,7 +4319,7 @@ snapshots:
mdurl@2.0.0: {} mdurl@2.0.0: {}
melt@0.35.0(@floating-ui/dom@1.7.1)(svelte@5.34.1): melt@https://pkg.vc/-/@melt-ui/melt@42e572f(@floating-ui/dom@1.7.1)(svelte@5.34.1):
dependencies: dependencies:
'@floating-ui/dom': 1.7.1 '@floating-ui/dom': 1.7.1
dequal: 2.0.3 dequal: 2.0.3

View file

@ -8,12 +8,18 @@
import { toggleMode } from 'mode-watcher'; import { toggleMode } from 'mode-watcher';
import { Button } from '$lib/components/ui/button/index.js'; import { Button } from '$lib/components/ui/button/index.js';
import type { LightSwitchProps } from './types'; import type { LightSwitchProps } from './types';
import Tooltip from '../tooltip.svelte';
let { variant = 'outline', class: className }: LightSwitchProps = $props(); let { variant = 'outline', class: className }: LightSwitchProps = $props();
</script> </script>
<Button onclick={toggleMode} {variant} size="icon" class={className}> <Tooltip>
<SunIcon class="absolute scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" /> {#snippet trigger(tooltip)}
<MoonIcon class="scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" /> <Button onclick={toggleMode} {variant} size="icon" class={className} {...tooltip.trigger}>
<span class="sr-only">Toggle theme</span> <SunIcon class="absolute scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" />
</Button> <MoonIcon class="scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" />
<span class="sr-only">Toggle theme</span>
</Button>
{/snippet}
Toggle theme
</Tooltip>

View file

@ -422,11 +422,17 @@
<Sidebar.Trigger class="fixed top-3 left-2 z-50"> <Sidebar.Trigger class="fixed top-3 left-2 z-50">
<PanelLeftIcon /> <PanelLeftIcon />
</Sidebar.Trigger> </Sidebar.Trigger>
<!-- header --> <!-- header -->
<div class="bg-sidebar fixed top-0 right-0 z-50 hidden rounded-bl-lg p-1 md:flex"> <div class="bg-sidebar fixed top-0 right-0 z-50 hidden rounded-bl-lg p-1 md:flex">
<Button variant="ghost" size="icon" class="size-8" href="/account"> <Tooltip>
<Settings2Icon /> {#snippet trigger(tooltip)}
</Button> <Button variant="ghost" size="icon" class="size-8" href="/account" {...tooltip.trigger}>
<Settings2Icon />
</Button>
{/snippet}
Settings
</Tooltip>
<LightSwitch variant="ghost" class="size-8" /> <LightSwitch variant="ghost" class="size-8" />
</div> </div>
<div class="relative"> <div class="relative">