@allbluecn/web-app 0.4.10 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +9 -7
- package/public/tanstack-landscape-black.svg +23 -0
- package/public/tanstack-landscape-white.svg +23 -0
- package/src/components/changelog/changelog-page.tsx +382 -0
- package/src/components/layout/sidebar-03/app-sidebar.tsx +3 -1
- package/src/components/layout/sidebar-03/nav-secondary.tsx +93 -0
- package/src/lib/app-version.ts +20 -0
- package/src/lib/changelog/sdk-versions-types.ts +14 -0
- package/src/lib/changelog/sdk-versions.ts +151 -0
- package/src/routeTree.gen.ts +23 -0
- package/src/routes/_nav/changelog/route.lazy.tsx +7 -0
- package/src/routes/_nav/changelog/route.tsx +13 -0
- package/src/server/serverFns/changelog/fetch.ts +28 -0
- package/src/styles/globals.css +18 -0
- package/src/styles/typeset.css +464 -0
- /package/src/components/layout/sidebar-03/{sidebar-search-trigger.tsx → nav-search-trigger.tsx} +0 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { SdkGroup } from './sdk-versions-types'
|
|
2
|
+
|
|
3
|
+
export const SDK_GROUPS: SdkGroup[] = [
|
|
4
|
+
{
|
|
5
|
+
"id": "tanstack",
|
|
6
|
+
"label": "tanstack-sdk",
|
|
7
|
+
"icon": "⚡",
|
|
8
|
+
"items": [
|
|
9
|
+
{
|
|
10
|
+
"name": "@tanstack/react-start",
|
|
11
|
+
"version": "v1.168.46",
|
|
12
|
+
"lastUpdate": "Aug 24, 2026",
|
|
13
|
+
"source": "apps/web/package.json#dependencies",
|
|
14
|
+
"docsUrl": "https://tanstack.com/start/latest"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "@tanstack/react-router",
|
|
18
|
+
"version": "v1.170.29",
|
|
19
|
+
"lastUpdate": "Aug 24, 2026",
|
|
20
|
+
"source": "apps/web/package.json#dependencies",
|
|
21
|
+
"docsUrl": "https://tanstack.com/router/latest"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "@tanstack/react-query",
|
|
25
|
+
"version": "v5.101.2",
|
|
26
|
+
"lastUpdate": "Aug 24, 2026",
|
|
27
|
+
"source": "apps/web/package.json#dependencies",
|
|
28
|
+
"docsUrl": "https://tanstack.com/query/latest"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "@tanstack/ai",
|
|
32
|
+
"version": "v0.43.0",
|
|
33
|
+
"lastUpdate": "Aug 24, 2026",
|
|
34
|
+
"source": "apps/web/package.json#dependencies",
|
|
35
|
+
"docsUrl": "https://tanstack.com/ai/latest"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "@tanstack/react-table",
|
|
39
|
+
"version": "v9.1.0",
|
|
40
|
+
"lastUpdate": "Aug 24, 2026",
|
|
41
|
+
"source": "apps/web/package.json#dependencies",
|
|
42
|
+
"docsUrl": "https://tanstack.com/table/latest"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "@tanstack/react-form",
|
|
46
|
+
"version": "v2.0.0-alpha.0",
|
|
47
|
+
"lastUpdate": "Aug 24, 2026",
|
|
48
|
+
"source": "apps/web/package.json#dependencies",
|
|
49
|
+
"docsUrl": "https://tanstack.com/form/latest"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "@tanstack/charts",
|
|
53
|
+
"version": "v0.9.0",
|
|
54
|
+
"lastUpdate": "Aug 24, 2026",
|
|
55
|
+
"source": "apps/admin/package.json#dependencies",
|
|
56
|
+
"docsUrl": "https://tanstack.com/charts/latest"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "@tanstack/react-pacer",
|
|
60
|
+
"version": "v0.22.1",
|
|
61
|
+
"lastUpdate": "Aug 24, 2026",
|
|
62
|
+
"source": "apps/web/package.json#dependencies",
|
|
63
|
+
"docsUrl": "https://tanstack.com/pacer/latest"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "@tanstack/react-hotkeys",
|
|
67
|
+
"version": "v0.10.0",
|
|
68
|
+
"lastUpdate": "Aug 24, 2026",
|
|
69
|
+
"source": "apps/web/package.json#dependencies",
|
|
70
|
+
"docsUrl": "https://tanstack.com/hotkeys/latest"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "@tanstack/react-virtual",
|
|
74
|
+
"version": "v3.14.9",
|
|
75
|
+
"lastUpdate": "Aug 24, 2026",
|
|
76
|
+
"source": "apps/admin/package.json#dependencies",
|
|
77
|
+
"docsUrl": "https://tanstack.com/virtual/latest"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "allblue",
|
|
83
|
+
"label": "allblue-sdk",
|
|
84
|
+
"icon": "🔷",
|
|
85
|
+
"items": [
|
|
86
|
+
{
|
|
87
|
+
"name": "@allbluecn/web-app",
|
|
88
|
+
"version": "v0.4.12",
|
|
89
|
+
"lastUpdate": "Aug 24, 2026",
|
|
90
|
+
"source": "apps/web/package.json",
|
|
91
|
+
"docsUrl": "https://github.com/allbluecn/allblue"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "@allbluecn/kernel",
|
|
95
|
+
"version": "v0.3.0",
|
|
96
|
+
"lastUpdate": "Aug 24, 2026",
|
|
97
|
+
"source": "packages/kernel/package.json",
|
|
98
|
+
"docsUrl": "https://github.com/allbluecn/allblue"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "core",
|
|
104
|
+
"label": "core-sdk",
|
|
105
|
+
"icon": "🧩",
|
|
106
|
+
"items": [
|
|
107
|
+
{
|
|
108
|
+
"name": "Vite",
|
|
109
|
+
"version": "v8.1.5",
|
|
110
|
+
"lastUpdate": "Aug 24, 2026",
|
|
111
|
+
"source": "apps/web/package.json#devDependencies",
|
|
112
|
+
"docsUrl": "https://vite.dev/"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "Node.js",
|
|
116
|
+
"version": "v24.19.0",
|
|
117
|
+
"lastUpdate": "Aug 24, 2026",
|
|
118
|
+
"source": ".nvmrc",
|
|
119
|
+
"docsUrl": "https://nodejs.org/"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "Prisma",
|
|
123
|
+
"version": "v7.8.0",
|
|
124
|
+
"lastUpdate": "Aug 24, 2026",
|
|
125
|
+
"source": "packages/database/package.json#devDependencies",
|
|
126
|
+
"docsUrl": "https://www.prisma.io/docs"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "shadcn UI",
|
|
130
|
+
"version": "v1.2.4",
|
|
131
|
+
"lastUpdate": "Aug 24, 2026",
|
|
132
|
+
"source": "apps/web/package.json#dependencies",
|
|
133
|
+
"docsUrl": "https://ui.shadcn.com/"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "TipTap",
|
|
137
|
+
"version": "v3.27.4",
|
|
138
|
+
"lastUpdate": "Aug 24, 2026",
|
|
139
|
+
"source": "packages/shared/package.json#devDependencies",
|
|
140
|
+
"docsUrl": "https://tiptap.dev/"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "Lucide React",
|
|
144
|
+
"version": "v1.24.0",
|
|
145
|
+
"lastUpdate": "Aug 24, 2026",
|
|
146
|
+
"source": "packages/ui/package.json#dependencies",
|
|
147
|
+
"docsUrl": "https://lucide.dev/"
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
]
|
package/src/routeTree.gen.ts
CHANGED
|
@@ -25,6 +25,7 @@ import { Route as NavAcceptanceCriteriaRouteRouteImport } from './routes/_nav/ac
|
|
|
25
25
|
import { Route as NavAgentsRouteRouteImport } from './routes/_nav/agents/route'
|
|
26
26
|
import { Route as NavAppsRouteRouteImport } from './routes/_nav/apps/route'
|
|
27
27
|
import { Route as NavBugsRouteRouteImport } from './routes/_nav/bugs/route'
|
|
28
|
+
import { Route as NavChangelogRouteRouteImport } from './routes/_nav/changelog/route'
|
|
28
29
|
import { Route as NavChatRouteRouteImport } from './routes/_nav/chat/route'
|
|
29
30
|
import { Route as NavDashboardRouteRouteImport } from './routes/_nav/dashboard/route'
|
|
30
31
|
import { Route as NavDesignRouteRouteImport } from './routes/_nav/design/route'
|
|
@@ -220,6 +221,13 @@ const NavBugsRouteRoute = NavBugsRouteRouteImport.update({
|
|
|
220
221
|
path: '/bugs',
|
|
221
222
|
getParentRoute: () => NavRouteRoute,
|
|
222
223
|
} as any)
|
|
224
|
+
const NavChangelogRouteRoute = NavChangelogRouteRouteImport.update({
|
|
225
|
+
id: '/changelog',
|
|
226
|
+
path: '/changelog',
|
|
227
|
+
getParentRoute: () => NavRouteRoute,
|
|
228
|
+
} as any).lazy(() =>
|
|
229
|
+
import('./routes/_nav/changelog/route.lazy').then((d) => d.Route),
|
|
230
|
+
)
|
|
223
231
|
const NavChatRouteRoute = NavChatRouteRouteImport.update({
|
|
224
232
|
id: '/chat',
|
|
225
233
|
path: '/chat',
|
|
@@ -810,6 +818,7 @@ export interface FileRoutesByFullPath {
|
|
|
810
818
|
'/agents': typeof NavAgentsRouteRoute
|
|
811
819
|
'/apps': typeof NavAppsRouteRouteWithChildren
|
|
812
820
|
'/bugs': typeof NavBugsRouteRoute
|
|
821
|
+
'/changelog': typeof NavChangelogRouteRoute
|
|
813
822
|
'/chat': typeof NavChatRouteRouteWithChildren
|
|
814
823
|
'/dashboard': typeof NavDashboardRouteRoute
|
|
815
824
|
'/design': typeof NavDesignRouteRouteWithChildren
|
|
@@ -910,6 +919,7 @@ export interface FileRoutesByTo {
|
|
|
910
919
|
'/agents': typeof NavAgentsRouteRoute
|
|
911
920
|
'/apps': typeof NavAppsRouteRouteWithChildren
|
|
912
921
|
'/bugs': typeof NavBugsRouteRoute
|
|
922
|
+
'/changelog': typeof NavChangelogRouteRoute
|
|
913
923
|
'/chat': typeof NavChatRouteRouteWithChildren
|
|
914
924
|
'/dashboard': typeof NavDashboardRouteRoute
|
|
915
925
|
'/inspiration': typeof NavInspirationRouteRoute
|
|
@@ -1000,6 +1010,7 @@ export interface FileRoutesById {
|
|
|
1000
1010
|
'/_nav/agents': typeof NavAgentsRouteRoute
|
|
1001
1011
|
'/_nav/apps': typeof NavAppsRouteRouteWithChildren
|
|
1002
1012
|
'/_nav/bugs': typeof NavBugsRouteRoute
|
|
1013
|
+
'/_nav/changelog': typeof NavChangelogRouteRoute
|
|
1003
1014
|
'/_nav/chat': typeof NavChatRouteRouteWithChildren
|
|
1004
1015
|
'/_nav/dashboard': typeof NavDashboardRouteRoute
|
|
1005
1016
|
'/_nav/design': typeof NavDesignRouteRouteWithChildren
|
|
@@ -1102,6 +1113,7 @@ export interface FileRouteTypes {
|
|
|
1102
1113
|
| '/agents'
|
|
1103
1114
|
| '/apps'
|
|
1104
1115
|
| '/bugs'
|
|
1116
|
+
| '/changelog'
|
|
1105
1117
|
| '/chat'
|
|
1106
1118
|
| '/dashboard'
|
|
1107
1119
|
| '/design'
|
|
@@ -1202,6 +1214,7 @@ export interface FileRouteTypes {
|
|
|
1202
1214
|
| '/agents'
|
|
1203
1215
|
| '/apps'
|
|
1204
1216
|
| '/bugs'
|
|
1217
|
+
| '/changelog'
|
|
1205
1218
|
| '/chat'
|
|
1206
1219
|
| '/dashboard'
|
|
1207
1220
|
| '/inspiration'
|
|
@@ -1291,6 +1304,7 @@ export interface FileRouteTypes {
|
|
|
1291
1304
|
| '/_nav/agents'
|
|
1292
1305
|
| '/_nav/apps'
|
|
1293
1306
|
| '/_nav/bugs'
|
|
1307
|
+
| '/_nav/changelog'
|
|
1294
1308
|
| '/_nav/chat'
|
|
1295
1309
|
| '/_nav/dashboard'
|
|
1296
1310
|
| '/_nav/design'
|
|
@@ -1504,6 +1518,13 @@ declare module '@tanstack/react-router' {
|
|
|
1504
1518
|
preLoaderRoute: typeof NavBugsRouteRouteImport
|
|
1505
1519
|
parentRoute: typeof NavRouteRoute
|
|
1506
1520
|
}
|
|
1521
|
+
'/_nav/changelog': {
|
|
1522
|
+
id: '/_nav/changelog'
|
|
1523
|
+
path: '/changelog'
|
|
1524
|
+
fullPath: '/changelog'
|
|
1525
|
+
preLoaderRoute: typeof NavChangelogRouteRouteImport
|
|
1526
|
+
parentRoute: typeof NavRouteRoute
|
|
1527
|
+
}
|
|
1507
1528
|
'/_nav/chat': {
|
|
1508
1529
|
id: '/_nav/chat'
|
|
1509
1530
|
path: '/chat'
|
|
@@ -2470,6 +2491,7 @@ interface NavRouteRouteChildren {
|
|
|
2470
2491
|
NavAgentsRouteRoute: typeof NavAgentsRouteRoute
|
|
2471
2492
|
NavAppsRouteRoute: typeof NavAppsRouteRouteWithChildren
|
|
2472
2493
|
NavBugsRouteRoute: typeof NavBugsRouteRoute
|
|
2494
|
+
NavChangelogRouteRoute: typeof NavChangelogRouteRoute
|
|
2473
2495
|
NavChatRouteRoute: typeof NavChatRouteRouteWithChildren
|
|
2474
2496
|
NavDashboardRouteRoute: typeof NavDashboardRouteRoute
|
|
2475
2497
|
NavDesignRouteRoute: typeof NavDesignRouteRouteWithChildren
|
|
@@ -2491,6 +2513,7 @@ const NavRouteRouteChildren: NavRouteRouteChildren = {
|
|
|
2491
2513
|
NavAgentsRouteRoute: NavAgentsRouteRoute,
|
|
2492
2514
|
NavAppsRouteRoute: NavAppsRouteRouteWithChildren,
|
|
2493
2515
|
NavBugsRouteRoute: NavBugsRouteRoute,
|
|
2516
|
+
NavChangelogRouteRoute: NavChangelogRouteRoute,
|
|
2494
2517
|
NavChatRouteRoute: NavChatRouteRouteWithChildren,
|
|
2495
2518
|
NavDashboardRouteRoute: NavDashboardRouteRoute,
|
|
2496
2519
|
NavDesignRouteRoute: NavDesignRouteRouteWithChildren,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createLazyFileRoute } from '@tanstack/react-router'
|
|
2
|
+
import { ChangelogPage } from '@/components/changelog/changelog-page'
|
|
3
|
+
import type { DeveloperLogEntry } from '@allbluecn/shared'
|
|
4
|
+
|
|
5
|
+
export const Route = createLazyFileRoute('/_nav/changelog')({
|
|
6
|
+
component: ChangelogPage,
|
|
7
|
+
})
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFileRoute } from '@tanstack/react-router'
|
|
2
|
+
import { fetchChangelogFn } from '@/server/serverFns/changelog/fetch'
|
|
3
|
+
import type { DeveloperLogEntry } from '@allbluecn/shared'
|
|
4
|
+
|
|
5
|
+
export const Route = createFileRoute('/_nav/changelog')({
|
|
6
|
+
loader: async () => {
|
|
7
|
+
try {
|
|
8
|
+
return { entries: await fetchChangelogFn() as DeveloperLogEntry[] }
|
|
9
|
+
} catch {
|
|
10
|
+
return { entries: [] as DeveloperLogEntry[] }
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createServerFn } from '@tanstack/react-start'
|
|
2
|
+
import { prisma } from '@allbluecn/database'
|
|
3
|
+
import type { DeveloperLogEntry } from '@allbluecn/shared'
|
|
4
|
+
|
|
5
|
+
export const fetchChangelogFn = createServerFn({ method: 'GET' })
|
|
6
|
+
.handler(async () => {
|
|
7
|
+
const logs = await prisma.developerLog.findMany({
|
|
8
|
+
where: { isDeleted: false },
|
|
9
|
+
orderBy: [{ year: 'desc' }, { createdAt: 'desc' }],
|
|
10
|
+
select: {
|
|
11
|
+
id: true,
|
|
12
|
+
date: true,
|
|
13
|
+
year: true,
|
|
14
|
+
title: true,
|
|
15
|
+
desc: true,
|
|
16
|
+
tags: true,
|
|
17
|
+
commitSha: true,
|
|
18
|
+
createdAt: true,
|
|
19
|
+
updatedAt: true,
|
|
20
|
+
},
|
|
21
|
+
})
|
|
22
|
+
return logs.map((log) => ({
|
|
23
|
+
...log,
|
|
24
|
+
tags: (log.tags as string[]) ?? [],
|
|
25
|
+
createdAt: log.createdAt.toISOString(),
|
|
26
|
+
updatedAt: log.updatedAt.toISOString(),
|
|
27
|
+
})) as DeveloperLogEntry[]
|
|
28
|
+
})
|
package/src/styles/globals.css
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
@import './_variables.scss';
|
|
2
2
|
@import './_keyframe-animations.scss';
|
|
3
3
|
@import "tailwindcss";
|
|
4
|
+
@import "@fontsource-variable/geist";
|
|
5
|
+
@import "@fontsource-variable/geist-mono";
|
|
6
|
+
@import "./typeset.css";
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
--font-geist: 'Geist Variable', sans-serif;
|
|
10
|
+
--font-geist-mono: 'Geist Mono Variable', monospace;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.typeset-article {
|
|
14
|
+
--typeset-font-body: var(--font-geist);
|
|
15
|
+
--typeset-font-heading: var(--font-geist);
|
|
16
|
+
--typeset-font-mono: var(--font-geist-mono);
|
|
17
|
+
--typeset-size: 15px;
|
|
18
|
+
--typeset-leading: 1.75;
|
|
19
|
+
--typeset-flow: 1.25em;
|
|
20
|
+
}
|
|
4
21
|
|
|
5
22
|
@source "../";
|
|
6
23
|
@source "../../../../packages/ui/src/**/*.{ts,tsx}";
|
|
@@ -76,6 +93,7 @@
|
|
|
76
93
|
--color-chart-5: var(--chart-5);
|
|
77
94
|
|
|
78
95
|
--container-2xl: 1400px;
|
|
96
|
+
--container-3xl: 48rem;
|
|
79
97
|
|
|
80
98
|
--animate-gradient: gradient 8s linear infinite;
|
|
81
99
|
@keyframes gradient {
|