Skip to content

Commit ced6dd5

Browse files
committed
refactor: remove use-toast hook and related toast functionality
style: update index.css with new tooltip styles fix: improve cloud storage service to check for read_parquet function availability refactor: remove deprecated Gemini models from types fix: conditionally import httpfs test utility in main.tsx for development feat: add CommandPalette component for quick access to commands and tabs feat: implement ExplainPlanViewer component for displaying query execution plans chore: update connectionSlice to manage OPFS connections more effectively chore: enhance duckdbSlice to log cross-origin isolation status chore: modify querySlice to track executing tabs during query execution chore: update types to include executingTabs in QuerySlice chore: configure Vite to set Cross-Origin headers for server and preview chore: add .env.example for environment variable documentation chore: create serve.json for setting Cross-Origin headers in deployment
1 parent 45b023e commit ced6dd5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1588
-1310
lines changed

.env.example

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Duck-UI Environment Variables
2+
# All env vars must be prefixed with DUCK_UI_ to be available in the app.
3+
4+
# Base path for the app (default: /)
5+
# DUCK_UI_BASEPATH=/
6+
7+
# DuckDB WASM: Use CDN-only mode (skip bundled WASM files)
8+
# DUCK_UI_DUCKDB_WASM_CDN_ONLY=false
9+
10+
# DuckDB WASM: Custom base URL for WASM files
11+
# DUCK_UI_DUCKDB_WASM_BASE_URL=
12+
13+
# Docker runtime: External DuckDB HTTP server connection (injected into window.env)
14+
# DUCK_UI_EXTERNAL_CONNECTION_NAME=
15+
# DUCK_UI_EXTERNAL_HOST=
16+
# DUCK_UI_EXTERNAL_PORT=
17+
# DUCK_UI_EXTERNAL_USER=
18+
# DUCK_UI_EXTERNAL_PASS=
19+
# DUCK_UI_EXTERNAL_DATABASE_NAME=
20+
# DUCK_UI_ALLOW_UNSIGNED_EXTENSIONS=false

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ dist-ssr
2525
*.sw?
2626
.env
2727

28-
post.md
28+
post.md
29+
CLAUDE.md

Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ WORKDIR /app
2727
# Copy the build directory from the first stage to the second stage
2828
COPY --from=build /app/dist /app
2929

30-
# Copy the injection script
30+
# Copy the injection script and serve config (COOP/COEP headers for OPFS)
3131
COPY inject-env.js /app/
32+
COPY serve.json /app/
3233

3334
# Install just serve for serving the built app
3435
RUN bun add serve
@@ -51,4 +52,4 @@ RUN chown -R duck-user:duck-group /app
5152
USER duck-user
5253

5354
# Run the injection script then serve using bunx
54-
CMD bun inject-env.js && bunx serve -s -l 5522
55+
CMD bun inject-env.js && bunx serve -s -l 5522 -c serve.json

bun.lock

Lines changed: 49 additions & 132 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "duck-ui",
33
"private": true,
4-
"version": "0.0.32",
5-
"release_date": "2026-02-28",
4+
"version": "0.0.33",
5+
"release_date": "2026-03-14",
66
"type": "module",
77
"scripts": {
88
"dev": "vite",
@@ -18,9 +18,9 @@
1818
"dependencies": {
1919
"@dnd-kit/core": "^6.3.1",
2020
"@dnd-kit/sortable": "^10.0.0",
21-
"@duckdb/duckdb-wasm": "1.33.1-dev19.0",
21+
"@duckdb/duckdb-wasm": "1.32.0",
2222
"@hookform/resolvers": "^5.2.2",
23-
"@mlc-ai/web-llm": "^0.2.81",
23+
"@mlc-ai/web-llm": "^0.2.82",
2424
"@radix-ui/react-accordion": "^1.2.12",
2525
"@radix-ui/react-alert-dialog": "^1.1.15",
2626
"@radix-ui/react-aspect-ratio": "^1.1.8",
@@ -42,26 +42,22 @@
4242
"@radix-ui/react-slot": "^1.2.4",
4343
"@radix-ui/react-switch": "^1.2.6",
4444
"@radix-ui/react-tabs": "^1.1.13",
45-
"@radix-ui/react-toast": "^1.2.15",
4645
"@radix-ui/react-tooltip": "^1.2.8",
4746
"@tailwindcss/vite": "^4.2.1",
4847
"@tanstack/react-table": "^8.21.3",
49-
"@tanstack/react-virtual": "^3.13.19",
50-
"buffer": "^6.0.3",
48+
"@tanstack/react-virtual": "^3.13.22",
5149
"class-variance-authority": "^0.7.1",
5250
"clsx": "^2.1.1",
5351
"cmdk": "^1.1.1",
5452
"date-fns": "^4.1.0",
55-
"fflate": "^0.8.2",
56-
"framer-motion": "^12.34.3",
53+
"framer-motion": "^12.36.0",
5754
"html2canvas": "^1.4.1",
5855
"lucide-react": "^0.546.0",
5956
"monaco-editor": "^0.55.1",
60-
"openai": "^6.25.0",
57+
"openai": "^6.29.0",
6158
"papaparse": "^5.5.3",
6259
"react": "^19.2.4",
6360
"react-dom": "^19.2.4",
64-
"react-dropzone": "^14.4.1",
6561
"react-error-boundary": "^6.1.1",
6662
"react-hook-form": "^7.71.2",
6763
"react-markdown": "^10.1.0",
@@ -70,34 +66,31 @@
7066
"sonner": "^2.0.7",
7167
"sql-formatter": "^15.7.2",
7268
"tailwind-merge": "^3.5.0",
73-
"tailwindcss-animate": "^1.0.7",
7469
"uplot": "^1.6.32",
7570
"vaul": "^1.1.2",
7671
"exceljs": "^4.4.0",
7772
"zod": "^4.3.6",
7873
"zustand": "^5.0.11"
7974
},
8075
"devDependencies": {
81-
"@eslint/js": "^9.39.3",
82-
"@types/node": "^24.11.0",
76+
"@eslint/js": "^9.39.4",
77+
"@types/node": "^24.12.0",
8378
"@types/papaparse": "^5.5.2",
8479
"@types/react": "^19.2.14",
8580
"@types/react-dom": "^19.2.3",
86-
"@vitejs/plugin-react": "^5.1.4",
87-
"autoprefixer": "^10.4.27",
88-
"baseline-browser-mapping": "^2.10.0",
81+
"@vitejs/plugin-react": "^5.2.0",
82+
"baseline-browser-mapping": "^2.10.7",
8983
"esbuild": "^0.25.12",
90-
"eslint": "^9.39.3",
84+
"eslint": "^9.39.4",
9185
"eslint-plugin-react-hooks": "^7.0.1",
9286
"eslint-plugin-react-refresh": "^0.4.26",
9387
"globals": "^16.5.0",
94-
"postcss": "^8.5.6",
9588
"prettier": "^3.8.1",
9689
"tailwindcss": "^4.2.1",
9790
"typescript": "~5.9.3",
98-
"typescript-eslint": "^8.56.1",
91+
"typescript-eslint": "^8.57.0",
9992
"vite": "^7.3.1",
100-
"vitest": "^4.0.18"
93+
"vitest": "^4.1.0"
10194
},
10295
"description": "Duck-UI is a web-based interface for interacting with DuckDB, a high-performance analytical database system. This project leverages DuckDB's WebAssembly (WASM) capabilities to provide a seamless and efficient user experience directly in the browser.",
10396
"main": "eslint.config.js",

serve.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"headers": [
3+
{
4+
"source": "**/*",
5+
"headers": [
6+
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
7+
{ "key": "Cross-Origin-Embedder-Policy", "value": "credentialless" }
8+
]
9+
}
10+
]
11+
}

0 commit comments

Comments
 (0)