Drop the Supabase backend and call the AI provider directly from the
browser. The endpoint URL, API key, and model name are stored in
localStorage and used for direct /chat/completions requests.
- src/lib/llm.ts: config persistence, direct fetch, JSON extraction,
shape validation, connection test
- src/lib/prompts.ts: full + partial-regeneration system prompts and
user-message builder
- src/lib/{api,supabase}.ts removed
- supabase/ directory removed
- @supabase/supabase-js dropped from package.json
- README updated to describe the standalone architecture and CORS caveats
- .gitignore: drop Supabase entries, exclude *.tsbuildinfo
59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
export default {
|
|
content: ['./index.html', './src/**/*.{ts,tsx}'],
|
|
darkMode: 'class',
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
// Dark mode (default) palette
|
|
bg: {
|
|
DEFAULT: '#080810',
|
|
card: '#111118',
|
|
hover: '#16161f',
|
|
},
|
|
// Light mode palette (applied via :root when not .dark)
|
|
bgLight: {
|
|
DEFAULT: '#f8fafc',
|
|
card: '#ffffff',
|
|
},
|
|
border: {
|
|
DEFAULT: 'rgba(255, 255, 255, 0.06)',
|
|
},
|
|
borderLight: {
|
|
DEFAULT: 'rgba(0, 0, 0, 0.08)',
|
|
},
|
|
accent: {
|
|
primary: '#7c3aed',
|
|
secondary: '#06b6d4',
|
|
secondaryLight: '#0891b2',
|
|
},
|
|
fg: {
|
|
DEFAULT: '#e2e8f0',
|
|
muted: '#64748b',
|
|
dark: '#0f172a',
|
|
},
|
|
tag: '#a78bfa',
|
|
},
|
|
animation: {
|
|
'gradient-shift': 'gradient-shift 8s ease infinite',
|
|
'fade-up': 'fade-up 300ms ease-out forwards',
|
|
'pulse-slow': 'pulse 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite',
|
|
},
|
|
keyframes: {
|
|
'gradient-shift': {
|
|
'0%, 100%': { backgroundPosition: '0% 50%' },
|
|
'50%': { backgroundPosition: '100% 50%' },
|
|
},
|
|
'fade-up': {
|
|
'0%': { opacity: '0', transform: 'translateY(20px)' },
|
|
'100%': { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
},
|
|
fontFamily: {
|
|
mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
};
|