Skip to content

Commit e95b4ac

Browse files
committed
Restructure chat-ui: move library source to src/chat-ui/, make ThemeProvider optional
- Move components, contexts, hooks, lib, types, layouts, pages from client/src/ to src/chat-ui/ so the library source lives alongside server code - Update @/ alias in Vite configs and tsconfigs to point at ../src/chat-ui/ - Make ThemeProvider optional via themeProvider prop on ChatProvider (consumers can bring their own theme solution or skip theming entirely) - Create local ThemeContext so sidebar-user-nav no longer hard-depends on next-themes; ChatApp (Layer 4) wires next-themes internally - Add @ai-sdk/react, swr, react-router-dom, next-themes as optional peer deps - Bundle sonner, framer-motion, lucide-react into the library output - Add UI devDependencies (radix, date-fns, etc.) to main package.json since source now resolves from integrations/appkit-agent/node_modules/
1 parent b2c770a commit e95b4ac

118 files changed

Lines changed: 3902 additions & 251 deletions

File tree

Some content is hidden

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

integrations/appkit-agent/client/src/components/theme-provider.tsx

Lines changed: 0 additions & 8 deletions
This file was deleted.

integrations/appkit-agent/client/src/main.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import ReactDOM from 'react-dom/client';
2-
import { getConfig } from './lib/config';
3-
import { ChatApp } from './components/ChatApp';
2+
import { getConfig } from '@/lib/config';
3+
import { ChatApp } from '@/components/ChatApp';
44
import './index.css';
55

66
const rootElement = document.getElementById('root');

integrations/appkit-agent/client/tsconfig.json

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,9 @@
1717
"noFallthroughCasesInSwitch": true,
1818
"baseUrl": ".",
1919
"paths": {
20-
"@/*": ["./src/*"],
21-
"@chat-template/db": ["../packages/db/src/index.ts"],
22-
"@chat-template/ai-sdk-providers": [
23-
"../packages/ai-sdk-providers/src/index.ts"
24-
],
25-
"@chat-template/auth": ["../packages/auth/src/index.ts"],
26-
"@chat-template/core": ["../packages/core/src/index.ts"],
27-
"@chat-template/core/errors": ["../packages/core/src/errors.ts"]
20+
"@/*": ["../src/chat-ui/*"]
2821
}
2922
},
30-
"include": ["src"],
23+
"include": ["src", "../src/chat-ui"],
3124
"references": [{ "path": "./tsconfig.node.json" }]
3225
}

integrations/appkit-agent/client/tsconfig.lib.json

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,11 @@
1616
"declarationMap": true,
1717
"emitDeclarationOnly": true,
1818
"outDir": "../dist/chat-ui",
19-
"rootDir": "src",
19+
"rootDir": "../src/chat-ui",
2020
"baseUrl": ".",
2121
"paths": {
22-
"@/*": ["./src/*"],
23-
"@chat-template/db": ["../packages/db/src/index.ts"],
24-
"@chat-template/ai-sdk-providers": ["../packages/ai-sdk-providers/src/index.ts"],
25-
"@chat-template/auth": ["../packages/auth/src/index.ts"],
26-
"@chat-template/core": ["../packages/core/src/index.ts"],
27-
"@chat-template/core/errors": ["../packages/core/src/errors.ts"]
22+
"@/*": ["../src/chat-ui/*"]
2823
}
2924
},
30-
"include": ["src/lib-entry.ts"]
25+
"include": ["../src/chat-ui/index.ts"]
3126
}

integrations/appkit-agent/client/vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default defineConfig({
77
base: "/",
88
resolve: {
99
alias: {
10-
"@": path.resolve(__dirname, "./src"),
10+
"@": path.resolve(__dirname, "../src/chat-ui"),
1111
},
1212
},
1313
build: {

integrations/appkit-agent/client/vite.lib.config.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ export default defineConfig({
66
plugins: [react()],
77
resolve: {
88
alias: {
9-
"@": path.resolve(__dirname, "./src"),
9+
"@": path.resolve(__dirname, "../src/chat-ui"),
1010
},
1111
},
1212
build: {
1313
outDir: "../dist/chat-ui",
1414
emptyOutDir: true,
1515
sourcemap: true,
1616
lib: {
17-
entry: path.resolve(__dirname, "src/lib-entry.ts"),
17+
entry: path.resolve(__dirname, "../src/chat-ui/index.ts"),
1818
formats: ["es"],
1919
fileName: "index",
2020
},
@@ -29,8 +29,6 @@ export default defineConfig({
2929
"swr",
3030
"swr/infinite",
3131
"next-themes",
32-
"sonner",
33-
"framer-motion",
3432
],
3533
},
3634
},

integrations/appkit-agent/package.json

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
}
2929
},
3030
"./chat-ui": {
31-
"types": "./dist/chat-ui/lib-entry.d.ts",
31+
"types": "./dist/chat-ui/index.d.ts",
3232
"import": "./dist/chat-ui/index.js",
3333
"style": "./dist/chat-ui/index.css"
3434
},
@@ -78,7 +78,11 @@
7878
"express": ">=4.0.0",
7979
"pg": ">=8.0.0",
8080
"react": "^18.0.0 || ^19.0.0",
81-
"react-dom": "^18.0.0 || ^19.0.0"
81+
"react-dom": "^18.0.0 || ^19.0.0",
82+
"@ai-sdk/react": ">=1.0.0",
83+
"swr": ">=2.0.0",
84+
"react-router-dom": ">=6.0.0",
85+
"next-themes": ">=0.3.0"
8286
},
8387
"peerDependenciesMeta": {
8488
"@databricks/langchainjs": {
@@ -101,6 +105,18 @@
101105
},
102106
"react-dom": {
103107
"optional": true
108+
},
109+
"@ai-sdk/react": {
110+
"optional": true
111+
},
112+
"swr": {
113+
"optional": true
114+
},
115+
"react-router-dom": {
116+
"optional": true
117+
},
118+
"next-themes": {
119+
"optional": true
104120
}
105121
},
106122
"dependencies": {
@@ -110,24 +126,41 @@
110126
"class-variance-authority": "^0.7.1",
111127
"clsx": "^2.1.1",
112128
"drizzle-orm": "^0.38.0",
129+
"framer-motion": "^12.0.0",
130+
"lucide-react": "^0.500.0",
131+
"sonner": "^2.0.0",
113132
"tailwind-merge": "^3.4.0",
114133
"zod": "^4.3.5"
115134
},
116135
"devDependencies": {
117136
"@databricks/appkit": "^0.21.0",
118137
"@langchain/core": "^1.1.8",
138+
"@radix-ui/react-alert-dialog": "^1.1.2",
139+
"@radix-ui/react-collapsible": "^1.1.12",
140+
"@radix-ui/react-dialog": "^1.1.2",
141+
"@radix-ui/react-dropdown-menu": "^2.1.2",
142+
"@radix-ui/react-separator": "^1.1.0",
143+
"@radix-ui/react-tooltip": "^1.1.3",
144+
"@radix-ui/react-use-controllable-state": "^1.2.2",
119145
"@types/express": "^4.17.25",
120146
"@types/node": "^22.0.0",
121147
"@types/pg": "^8.16.0",
122148
"@types/react": "^19.0.0",
123149
"@types/react-dom": "^19.0.0",
150+
"@types/react-syntax-highlighter": "^15.5.13",
151+
"date-fns": "^4.1.0",
124152
"drizzle-kit": "^0.31.10",
153+
"fast-deep-equal": "^3.1.3",
125154
"prettier": "^3.0.0",
126155
"react": "^19.0.0",
127156
"react-dom": "^19.0.0",
157+
"react-syntax-highlighter": "^15.6.6",
158+
"streamdown": "^1.4.0",
128159
"tailwindcss": "^3.4.0",
129160
"tsdown": "^0.9.0",
130161
"typescript": "^5.4.0",
162+
"use-stick-to-bottom": "^1.1.1",
163+
"usehooks-ts": "^3.1.0",
131164
"vitest": "^4.0.18"
132165
},
133166
"author": {

0 commit comments

Comments
 (0)