-
Notifications
You must be signed in to change notification settings - Fork 13.3k
SvelteKit-based WebUI #14839
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+25,752
β11,505
Merged
SvelteKit-based WebUI #14839
Changes from 137 commits
Commits
Show all changes
308 commits
Select commit
Hold shift + click to select a range
028fb8c
feat: Adds chat attachments functionality
allozaur 009f77b
refactor: Decouple chat attachments display into components
allozaur fc1a74e
feat: Improves file handling and paste functionality
allozaur f3a55ed
refactor: Rename post-build script for web UI
allozaur e01ae49
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 839140b
feat: Adds file attachment previews to chat
allozaur 2b1b1f8
feat: Improves chat form and file handling
allozaur 6830c25
feat: Adds converting SVG images to PNG
allozaur ecf1f04
feat: Adds PDF file support to chat
allozaur 932f31e
feat: Enables previewing attachments in a dialog
allozaur 2d0b873
chore: Update `index.html.gz` build
allozaur 5b668bf
feat: UI/UX improvements
allozaur e9528f6
feat: Mobile UI & UI elements improvements
allozaur 6ffa578
feat: UI improvements
allozaur 93fb1dc
feat: Chat Sidebar Conversation Items UI improvements
allozaur b592954
feat: UI improvements
allozaur 14e8ac8
chore: Update public build
allozaur 34f3709
feat: Sets focus to `ChatForm`'s `<textarea>` after load
allozaur b5d9f55
feat: Formats message timestamps for readability
allozaur 13c30d6
refactor: Components structure
allozaur 377b808
feat: UI improvements for Chat Settings Dialog
allozaur fa0e729
fix: Close search results after clicking conversation item
allozaur e0c4f6b
chore: Update static webui build
allozaur f3a8758
feat: Updates server properties handling
allozaur 54cfe15
feat: Adds context length check before sending message (PoC)
allozaur e714579
chore: Adds VS Code workspace file
allozaur 2a3d057
feat: Improves chat settings and UI layout
allozaur d6ec058
feat: Binds Vite dev server to all interfaces
allozaur b54989e
refactor: Better structure for components
allozaur 82996b8
docs: Adds JSDoc comments and improves utils
allozaur 8908088
chore: Windsurf rules
allozaur ce2f9d1
feat: Refactors settings dialog with Svelte runes
allozaur 3a45b7d
refactor: Component imports
allozaur 3cde171
refactor: Centralize type definitions
allozaur f0af1ef
feat: Improves chat service architecture, starts implementing Settingβ¦
allozaur 2601cbf
feat: Add WebP image conversion utilities
allozaur dbb292d
refactor: Extract file upload processing to utilities
allozaur 8242776
feat(app): Extract maximum context alert dialog into component
allozaur be5ba77
refactor: Updates order of imports
allozaur bd03cb2
Refactor: Consolidate ChatScreen imports, constants, and naming setup
allozaur 111684c
Feat: Improve chat auto-scrolling behavior
allozaur 7a63680
refactor: Changes order of imports
allozaur a14d3f6
chore: Updates static build
allozaur 7d5cd2c
Build: Enhance frontend bundle compression and size validation
allozaur 4f8bd9b
Refactor: Decouple utility imports from index.ts
allozaur 75afbdc
Refactor: Rename context error state to maxContextError
allozaur e5d263a
chore: Update static build
allozaur afcc79c
feat: Adds proxy and headers for local development
allozaur 82495d9
chore: Update static build
allozaur 23510ae
feat: Enables processing math formulas for markdown content
allozaur 05f976a
feat: Chat Form improvements
allozaur 5e7efef
docs: MarkdownContent component stories
allozaur 0a42402
fix: ScrollArea Height
allozaur 2e0f1d7
chore: Creates `fixtures` folder and adds test files
allozaur 4cad2b6
feat: Adds support for audio file uploads
allozaur 4ba2e04
fix: Fixes chat attachment preview interactivity & displaying issues
allozaur c5b5812
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 6c9992a
refactor: Cleans up redundant console logs
allozaur ed4716c
fix: Improves scroll interval on active responses stream
allozaur ccf4bef
feat: Improve sidebar scrollarea
allozaur b026a17
feat: Improves chat sidebar and header layout & structure
allozaur 5de7bc6
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 20174b1
feat: Enables editing of conversation names
allozaur b8c6795
feat: Implement basic `Processing...` UI
allozaur 0b71fdf
fix: Chat Sidebar interactions
allozaur 7919123
feat: Improves UI appearance
allozaur e23d39d
feat: Allows sending messages with attachments only
allozaur 787f203
refactor: Simplifies API base URL handling
allozaur d5735bd
fix: Add missing validation logic updates
allozaur ceb3d81
fix: Data binding
allozaur 01537bc
refactor: Refactors file type handling using enums
allozaur 8d8372b
fix: Fix types & svelte issues
allozaur 94a06de
feat: Validates file types before upload
allozaur 5d1d146
refactor: DRYs text file extension handling
allozaur a6d846e
feat: Enables audio recording in chat form
allozaur 78219cd
faet: Displays real-time processing details (WIP)
allozaur b67f888
fix: Wrong file extension
allozaur f02925d
fix: Missing import update
allozaur 47ec32d
refactor: Removes debug logs from chat and attachment preview
allozaur 7e2ab2a
feat: Improves file upload handling with modality support
allozaur f8fc579
feat: Adds SPA fallback route to server
allozaur 4632deb
chore: Update static build
allozaur be0dfce
feat: UI improvements & tests
allozaur d16fb23
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 6c99820
chore: Remove old file
allozaur 8699fd9
feat: Improves context handling and error reporting (WIP)
allozaur 0465636
chore: Static build update
allozaur 2fc3a8e
fix: Stops slots polling on context errors
allozaur 5ff1575
chore: Lint
allozaur a5277b0
feat: Improves error handling and UI feedback
allozaur 96870af
feat: Embeds favicon as base64 data URL
allozaur b95fe24
fix: Bundles PDF.js worker inline
allozaur 49931c4
fix: Adds TooltipProvider decorator to Storybook
allozaur 549bf25
feat: Enhances chat form with file attachment options
allozaur 1cafa62
feat: Adds basic WebUI CI workflow
allozaur 57aac56
debug: Removes branch restriction for webui workflow
allozaur 5882dc2
debug: Updates WebUI workflow trigger
allozaur b667585
debug: Workflow trigger
allozaur d2e1794
debug: Workflow trigger
allozaur 158ab08
fix: Workflow trigger
allozaur edd48eb
test: Add Storybook tests to CI
allozaur 0d2ef37
chore: Add reset script
allozaur bddfcb6
fix: Handle only regular content
allozaur 31035bc
refactor: Minor formatting and cleanup in chat attachments
allozaur f91120f
feat: Implement `reasoning_content`
allozaur 5d8e515
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur f36cd8f
chore: Update static build
allozaur 63e59f6
refactor: Separate jobs for webui GH actions workflow
allozaur e027b60
feat: Improve file attachments logic
allozaur cf408db
chore: Add `.windsurf` rule file
allozaur 17b027f
test: Storybook interaction/unit tests WIP
allozaur 96913d6
test: Storybook tests WIP
allozaur 65ca9f9
feat: Chat Form improvements + storybook improvements
allozaur 0ec3689
feat: Show thinking block before actual message
allozaur 935fa01
feat: Use Collapsible component for Thinking Block UI
allozaur 3517660
test: UI/Unit tests
allozaur ffe27e1
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur c2e4b20
test: Fix for Audio/Vision Modality storybook automated tests
allozaur d79a443
test: Storybook cleanup
allozaur 8b77ac4
chore: Update `webui` GH Actions workflow job names
allozaur 66bbf35
feat: Adds keyboard shortcuts
allozaur 9ff3ed4
feat: Adds message deletion functionality
allozaur 9911485
feat: Edit Message UI appearance with `inputClasses`
allozaur 9f0682a
feat: Implements conversation branching
allozaur 8cf3cff
fix: System message handling in chat service
allozaur 362f743
feat: Displays slot usage details in the UI above the Chat Form
allozaur de7add3
refactor: Chat Settings Dialog structure
allozaur 3a17b2c
feat: Thought process setting
allozaur d99934a
feat: Conditionally includes reasoning format in request
allozaur 45150e3
feat: Adds Enter key support to delete dialogs
allozaur 923a088
refactor: Consts
allozaur c81046e
feat: Adds theme selection to chat settings
allozaur 98b55cd
feat: Handles empty file uploads gracefully
allozaur 52b4b65
chore: Update static build
allozaur 056f20c
docs: Update README
allozaur f95cc3c
fix: Update script name in WebUI CI
allozaur 16ede84
fix: Max context
allozaur be3ed2d
chore: Remove legacy `webui-old` React app
allozaur 71d73c5
chore: Ignore `tools/server/webui/**` in .editorconfig
allozaur 49ff4e3
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur aeaeada
fix: Autoscroll on regenerating message
allozaur 218cbcf
feat: Improve destructive actions UI & interactions
allozaur 7fd78b6
fix: Linting
allozaur 3029de2
feat: Improves slots processing and token rate accuracy
allozaur 8220c80
feat: Removes 'excludeThoughtOnReq' setting
allozaur 3a49539
feat: Fix code block default text color for light mode
allozaur f8c1e73
refactor: Remove legacy method for sending messages
allozaur 2a702b7
fix: Auto-scroll after user action on a message
allozaur 6995ca2
chore: Update static build of `webui`
allozaur 9e7f48e
refactor: Const for `/slots` request debounce
allozaur de207be
fix: Fixes slots update debouncing
allozaur b2d38af
chore: Update static build of `webui`
allozaur b98d464
fix: Remove redundant call
allozaur 604d89f
fix: Refactors slots endpoint availability check
allozaur aac118c
chore: Update static build of `webui`
allozaur eb3ffb3
refactor: Remove redundant import
allozaur 79b2ef2
chore: Update static build of `webui`
allozaur 369bcf2
refactor: Removes unneeded script
allozaur dbc44e7
chore: Bump version
allozaur 3d515d0
test: Improve testing pipeline
allozaur f5a5888
reafactor: Code cleanup
allozaur fffb4e1
chore: Linting
allozaur af1473f
refactor: Code formatting and cleanup
allozaur dd5ed65
test: Add code formatting & eslint check to webui CI
allozaur 6f60c03
fix: Types
allozaur 8570a56
fix: Re-add missing prop
allozaur 1f5276a
reafactor: Use `for...of` loops
allozaur 8dcf66d
refactor: Cleanup
allozaur 2f54040
refactor: Componentize Chat Message UI
allozaur ae77aad
refactor: Components cleanup
allozaur d3f8fde
refactor: Clean up Services & Hooks
allozaur 93ae5dd
refactor: Improve architecture and documentation of services
allozaur d42469f
refactor: Singleton exports from service files
allozaur a704dd3
refactor: `PdfMimeType` -> `ApplicationMimeType`
allozaur 7476077
refactor: Cleanup
allozaur ed372e3
chore: Code formatting
allozaur b74ea41
feat: Switch jobs order in CI
allozaur 9a0349b
fix: Scroll to bottom of chat on refresh
allozaur 0242c41
feat: Slots Info UI improvements
allozaur b4ebb5e
fix: Increase auto-scroll threshold
allozaur 773dfd8
chore: Update static build of `webui`
allozaur 37a9fb7
chore: Formatting
allozaur df5df1f
refactor: Cleanup types
allozaur eddd627
chore: Formatting
allozaur 1e9c287
chore: Update `.gitignore`
allozaur 2710127
Merge branch 'master' into allozaur/svelte-webui
allozaur 0fb9310
chore: Update dependencies
allozaur c13eda4
feat: Improve Keyboard Shortcuts UI & logic
allozaur f52c59c
chore: Code formatting
allozaur aef0339
feat: UI improvements for Keyboard Shortcut Info
allozaur f0f6f20
feat: Update conversation title based on current first message branch
allozaur c6223b3
feat: Improves token usage tracking and display
allozaur 702bf1d
chore: Code formatting
allozaur e7aa527
chore: Update `webui` static build
allozaur 5ee2f29
fix: Use proper lifecycle hook
allozaur 10c41c6
chore: Code formatting + static build update
allozaur 55b2a9f
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 3775b79
refactor: Components structure & naming
allozaur 3aa9a5e
refactor: Simplify logic for processing state
allozaur 43a7192
chore: Code formatting
allozaur 88356b9
chore: Update `webui` static build
allozaur 14760f8
refactor: Cleanup
allozaur 90476a2
docs: Add JSDocs and add missing type definitions
allozaur c3ffacd
test: Update `sever.yml` CI with newest WebUI jobs
allozaur 3f6e9bd
refactor: Update CI job name
allozaur 2833815
fix: Add missing build
allozaur fad84e3
fix: Update test
allozaur 78b79e2
fix: Don't remove uncompressed `index.html` after build
allozaur eac36a8
fix: Retrieve `--no-webui` functionality
allozaur 34777cd
fix: Retrieve removing uncompressed `index.html` file in post-build sβ¦
allozaur 9b48e33
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 08d09ed
fix: Post-feedback fixes
allozaur c74daef
test: Add Markdown Content story with interaction tests for URLs
allozaur 2a70cc5
feat: Update Settings defaults
allozaur d40a712
feat: Add toast suggesting enabling PDF as image parsing with vision β¦
allozaur 3b49f44
chore: Code formatting
allozaur 510d6b2
test: Remove legacy test
allozaur b0845fb
chore: Update `webui` static build
allozaur 909cee9
chore: Adds script to install pre-commit hook
allozaur a862318
feat: Improve pre-commit
allozaur e09cf6a
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur a22da20
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur d54858a
feat: Enhance processing state updates
allozaur 69152d0
feat: Allow to re-send request for unchanged edited message
allozaur 1b37cf3
feat: Enable editing Assistant message with optional branching
allozaur 0bd46da
feat: Chat Form auto-focus on refresh improvements
allozaur a3b5393
feat: Improve auto-scroll enabling/disabling
allozaur 67be91b
fix: No error on manual stop when re-generating messages
allozaur 63ce684
refactor: Clean up types
allozaur 114c342
feat: Improve chat processing info persistence
allozaur fd6d6f6
feat: Improve message editing features
allozaur a9bfe9e
fix: Add missing API Key headers if provided in settings
allozaur 0f226a4
feat: Better Error Handling UX
allozaur 00fd662
refactor: Remove unused code
allozaur d187602
feat: Use `uuid` package instead of `crypto.randomUUID()`
allozaur b992243
fix: Navigator fallback for non-secure context
allozaur 1098d0d
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur 8daa38e
refactor: Cleanup
allozaur 31ca791
refactor: Types cleanup
allozaur a247414
refactor: Cleanup
allozaur a9a493e
refactor: Cleanup
allozaur b368674
refactor: Enums folder
allozaur d91d350
chore: Remove code workspace file
allozaur 7a47779
refactor: Cleanup
allozaur ca7d99d
Add resumable downloads for llama-server model loading
ericcurtin 66305cc
fix: Remove unused import
allozaur 606d3f8
Merge remote-tracking branch 'ggml-org/resumable' into allozaur/sveltβ¦
allozaur b5d2f1e
Merge remote-tracking branch 'ggml-org/master' into allozaur/svelte-wβ¦
allozaur e0187df
fix: Don't send empty system message in the `messages` array
allozaur 5156706
Revert "Add resumable downloads for llama-server model loading"
allozaur File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
trigger: manual | ||
--- | ||
|
||
#### Tailwind & CSS | ||
|
||
- We are using Tailwind v4 which uses oklch colors so we now want to refer to the CSS vars directly, without wrapping it with any color function like `hsla/hsl`, `rgba` etc. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
trigger: manual | ||
--- | ||
|
||
# Coding rules | ||
|
||
## Svelte & SvelteKit | ||
|
||
### Services vs Stores Separation Pattern | ||
|
||
#### `lib/services/` - Pure Business Logic | ||
|
||
- **Purpose**: Stateless business logic and external communication | ||
- **Contains**: | ||
- Database operations (DatabaseService) | ||
- API calls to external services (ApiService) | ||
- Pure business logic functions (ChatService, etc.) | ||
- **Rules**: | ||
- NO Svelte runes ($state, $derived, $effect) | ||
- NO reactive state management | ||
- Pure functions and classes only | ||
- Can import types but not stores | ||
- Focus on "how" - implementation details | ||
|
||
#### `lib/stores/` - Reactive State Management | ||
|
||
- **Purpose**: Svelte-specific reactive state with runes | ||
- **Contains**: | ||
- Reactive state classes with $state, $derived, $effect | ||
- UI-focused state management | ||
- Store orchestration logic | ||
- **Rules**: | ||
- USE Svelte runes for reactivity | ||
- Import and use services for business logic | ||
- NO direct database operations | ||
- NO direct API calls (use services) | ||
- Focus on "what" - reactive state for UI | ||
|
||
#### Enforcement | ||
|
||
- Services should be testable without Svelte | ||
- Stores should leverage Svelte's reactivity system | ||
- Clear separation: services handle data, stores handle state | ||
- Services can be reused across multiple stores |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
trigger: manual | ||
--- | ||
|
||
## TypeScript | ||
|
||
- Add JSDocs for functions |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
#!/bin/bash | ||
|
||
# llama.cpp WebUI Development Script | ||
# Usage: ./scripts/webui-dev.sh -hf <model> [-b|--build] [-p|--port <port>] | ||
|
||
set -e | ||
|
||
# Default values | ||
MODEL="" | ||
PORT="8080" | ||
BUILD=false | ||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" | ||
|
||
# Function to display usage | ||
usage() { | ||
echo "Usage: $0 (-hf|-m) <model> [-b|--build] [-p|--port <port>]" | ||
echo "" | ||
echo "Options:" | ||
echo " -b, --build Build llama-server before running" | ||
echo " -h, --help Show this help message" | ||
echo " -hf <model> Hugging Face model to use (required)" | ||
echo " -m <model> Path to local model file (required)" | ||
echo " -p, --port <port> Port to run the server on (default: 8080)" | ||
echo "" | ||
echo "Note: -hf and -m are interchangeable and can accept either HF models or local paths" | ||
echo "" | ||
echo "Examples:" | ||
echo " $0 -hf ggml-org/SmolLM3-3B-GGUF" | ||
echo " $0 -m /path/to/model.gguf" | ||
echo " $0 -hf ggml-org/SmolLM3-3B-GGUF -b -p 8081" | ||
exit 1 | ||
} | ||
|
||
# Parse command line arguments | ||
while [[ $# -gt 0 ]]; do | ||
case $1 in | ||
-hf) | ||
MODEL="$2" | ||
shift 2 | ||
;; | ||
-b|--build) | ||
BUILD=true | ||
shift | ||
;; | ||
-m) | ||
MODEL="$2" | ||
shift 2 | ||
;; | ||
-p|--port) | ||
PORT="$2" | ||
shift 2 | ||
;; | ||
-h|--help) | ||
usage | ||
;; | ||
*) | ||
echo "Unknown option: $1" | ||
usage | ||
;; | ||
esac | ||
done | ||
|
||
if [[ -z "$MODEL" ]]; then | ||
echo "Error: Model (-hf or -m) is required" | ||
usage | ||
fi | ||
|
||
if ! [[ "$PORT" =~ ^[0-9]+$ ]]; then | ||
echo "Error: Port must be a number" | ||
exit 1 | ||
fi | ||
|
||
echo "π Starting llama.cpp WebUI Development Environment" | ||
echo "π Project root: $PROJECT_ROOT" | ||
echo "π€ Model: $MODEL" | ||
echo "π Port: $PORT" | ||
echo "π¨ Build: $BUILD" | ||
echo "" | ||
|
||
# Change to project root | ||
cd "$PROJECT_ROOT" | ||
|
||
# Build if requested | ||
if [[ "$BUILD" == true ]]; then | ||
echo "π¨ Building llama-server..." | ||
cmake -B build | ||
cmake --build build --config Release -t llama-server | ||
echo "β Build completed" | ||
echo "Building webui..." | ||
cd tools/server/webui | ||
npm run build | ||
cd $PROJECT_ROOT | ||
echo "" | ||
fi | ||
|
||
# Check if binary exists | ||
if [[ ! -f "./build/bin/llama-server" ]]; then | ||
echo "β Error: llama-server binary not found at ./build/bin/llama-server" | ||
echo "π‘ Try running with the -b flag to build first" | ||
exit 1 | ||
fi | ||
|
||
echo "π― Starting llama-server..." | ||
echo "π‘ Server will be available at: http://localhost:$PORT" | ||
echo "π Press Ctrl+C to stop the server" | ||
echo "" | ||
|
||
# Start the server | ||
# Check if model looks like a HuggingFace model or local path | ||
if [[ "$MODEL" == *"/"* && ! "$MODEL" == *"ggml-org/"* && ! "$MODEL" == *"microsoft/"* && ! "$MODEL" == *"meta-llama/"* ]]; then | ||
# Looks like a local path | ||
./build/bin/llama-server --path tools/server/public -m "$MODEL" --port "$PORT" | ||
else | ||
# Treat as HuggingFace model | ||
./build/bin/llama-server --path tools/server/public -hf "$MODEL" --port "$PORT" | ||
fi |
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
pnpm-debug.log* | ||
lerna-debug.log* | ||
|
||
node_modules | ||
dist | ||
dist-ssr | ||
*.local | ||
|
||
# Editor directories and files | ||
.vscode/* | ||
!.vscode/extensions.json | ||
.idea | ||
.DS_Store | ||
*.suo | ||
*.ntvs* | ||
*.njsproj | ||
*.sln | ||
*.sw? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
**/.vscode | ||
**/.github | ||
**/.git | ||
**/.svn | ||
**/.hg | ||
**/node_modules | ||
**/dist | ||
**/build | ||
|
||
*.config.js |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import js from '@eslint/js' | ||
import globals from 'globals' | ||
import reactHooks from 'eslint-plugin-react-hooks' | ||
import reactRefresh from 'eslint-plugin-react-refresh' | ||
import tseslint from 'typescript-eslint' | ||
|
||
export default tseslint.config( | ||
{ ignores: ['dist'] }, | ||
{ | ||
extends: [js.configs.recommended, ...tseslint.configs.recommended], | ||
files: ['**/*.{ts,tsx}'], | ||
languageOptions: { | ||
ecmaVersion: 2020, | ||
globals: globals.browser, | ||
}, | ||
plugins: { | ||
'react-hooks': reactHooks, | ||
'react-refresh': reactRefresh, | ||
}, | ||
rules: { | ||
...reactHooks.configs.recommended.rules, | ||
'react-refresh/only-export-components': 'off', | ||
'@typescript-eslint/no-unused-vars': 'off', | ||
}, | ||
}, | ||
) |
File renamed without changes.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.