dishui 0.0.84 → 0.0.91
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/dist/components/Input/index.js +52 -62
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/LayoutSuite/index.d.ts +10 -0
- package/dist/components/LayoutSuite/index.js +27 -18
- package/dist/components/LayoutSuite/index.js.map +1 -1
- package/dist/components/Markdown/markdownComponents.js +1 -0
- package/dist/components/Markdown/markdownComponents.js.map +1 -1
- package/dist/components/Markdown/useMarkdownSource.js +46 -31
- package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
- package/dist/components/Markdown/useMarkmapRenderer.js +44 -31
- package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
- package/dist/components/Markdown/useMermaidRenderer.js +49 -31
- package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
- package/dist/components/ProtectedRoute/index.d.ts +2 -1
- package/dist/components/ProtectedRoute/index.js +16 -6
- package/dist/components/ProtectedRoute/index.js.map +1 -1
- package/dist/components/Select/index.d.ts +6 -0
- package/dist/components/Select/index.js +166 -136
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/Table/index.d.ts +23 -2
- package/dist/components/Table/index.js +153 -101
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/index.d.ts +12 -1
- package/dist/components/Tabs/index.js +42 -17
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/pro/ArticleContextMenu/index.js +7 -7
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js +200 -189
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/types.d.ts +3 -0
- package/dist/components/pro/DataTable/DataTable.d.ts +1 -1
- package/dist/components/pro/DataTable/DataTable.js +124 -247
- package/dist/components/pro/DataTable/DataTable.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableBody.d.ts +3 -1
- package/dist/components/pro/DataTable/components/TableBody.js +41 -41
- package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
- package/dist/components/pro/DataTable/components/TablePagination.d.ts +3 -9
- package/dist/components/pro/DataTable/components/TablePagination.js +29 -25
- package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableToolbar.d.ts +2 -1
- package/dist/components/pro/DataTable/components/TableToolbar.js +25 -19
- package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
- package/dist/components/pro/DataTable/index.d.ts +1 -1
- package/dist/components/pro/DataTable/rowDetailExtension.js +1 -1
- package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
- package/dist/components/pro/DataTable/tanstack-table.d.ts +2 -2
- package/dist/components/pro/DataTable/tanstack-table.js +29 -21
- package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
- package/dist/components/pro/DataTable/treeDataUtils.d.ts +2 -0
- package/dist/components/pro/DataTable/treeDataUtils.js +18 -19
- package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
- package/dist/components/pro/DataTable/types.d.ts +43 -0
- package/dist/components/pro/DataTable/useDataTableModel.d.ts +16 -0
- package/dist/components/pro/DataTable/useDataTableModel.js +148 -0
- package/dist/components/pro/DataTable/useDataTableModel.js.map +1 -0
- package/dist/components/pro/FileExplorer/Breadcrumb.js +12 -12
- package/dist/components/pro/Flow/nodes/DataNodeView.js +87 -82
- package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaContent.js +1 -1
- package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaOverlay.js +1 -1
- package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
- package/dist/components/pro/Flow/nodes/Model3DView.js +69 -63
- package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/chartGeometryBudget.d.ts +14 -0
- package/dist/components/pro/Flow/nodes/chartGeometryBudget.js +76 -0
- package/dist/components/pro/Flow/nodes/chartGeometryBudget.js.map +1 -0
- package/dist/components/pro/Flow/nodes/demandRender.d.ts +11 -0
- package/dist/components/pro/Flow/nodes/demandRender.js +26 -0
- package/dist/components/pro/Flow/nodes/demandRender.js.map +1 -0
- package/dist/components/pro/RichTextEditor/SlashMenu.js +68 -58
- package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
- package/dist/contexts/AppContext.d.ts +1 -0
- package/dist/contexts/AppContext.js +144 -145
- package/dist/contexts/AppContext.js.map +1 -1
- package/dist/contexts/authentication.d.ts +7 -0
- package/dist/contexts/authentication.js +22 -0
- package/dist/contexts/authentication.js.map +1 -0
- package/dist/data-table.js.map +1 -1
- package/dist/dishui.css +1 -1
- package/dist/hooks/useControllableState.d.ts +6 -14
- package/dist/hooks/useControllableState.js +21 -15
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useTableColumns.d.ts +3 -3
- package/dist/hooks/useTableColumns.js +2 -2
- package/dist/hooks/useTableColumns.js.map +1 -1
- package/dist/hooks/useTableData.d.ts +11 -4
- package/dist/hooks/useTableData.js +44 -26
- package/dist/hooks/useTableData.js.map +1 -1
- package/dist/index-nostyled.d.ts +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +97 -97
- package/dist/lite.d.ts +2 -0
- package/dist/lite.js +22 -21
- package/dist/utils/i18n.js +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/routerBuilder.d.ts +7 -5
- package/dist/utils/routerBuilder.js +11 -15
- package/dist/utils/routerBuilder.js.map +1 -1
- package/dist/utils/safeStorage.d.ts +8 -0
- package/dist/utils/safeStorage.js +45 -0
- package/dist/utils/safeStorage.js.map +1 -0
- package/package.json +22 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerBuilder.js","names":[],"sources":["../../src/utils/routerBuilder.tsx"],"sourcesContent":["import React from 'react';\nimport {\n createRouter,\n createRootRoute,\n createRoute,\n RootRoute,\n AnyRoute,\n RouteComponent,\n} from '@tanstack/react-router';\n\n/**\n * 路由配置接口\n */\nexport interface RouteConfig {\n /** 路由路径(与 id 二选一,优先使用 path) */\n path?: string;\n /** 路由组件 */\n component?: RouteComponent;\n /** 子路由配置 */\n children?: RouteConfig[];\n /** 路由 ID(仅用于无路径的布局路由,不能与 path 同时使用) */\n id?: string;\n}\n\n/**\n * 路由构建器配置\n */\nexport interface RouterBuilderConfig {\n /** 路由配置数组 */\n routes: RouteConfig[];\n /** 根路由组件,默认使用 AppLayoutWrapper */\n rootComponent?: RouteComponent;\n /** 路由基础路径,部署在子路径时使用(如 '/dish-ui') */\n basepath?: string;\n /** 自定义 404 组件 */\n notFoundComponent?: RouteComponent;\n}\n\n/**\n * 递归创建路由树\n * @param config 路由配置\n * @param parentRoute 父路由\n * @returns
|
|
1
|
+
{"version":3,"file":"routerBuilder.js","names":[],"sources":["../../src/utils/routerBuilder.tsx"],"sourcesContent":["import React from 'react';\nimport {\n createRouter,\n createRootRoute,\n createRoute,\n RootRoute,\n AnyRoute,\n RouteComponent,\n} from '@tanstack/react-router';\n\n/**\n * 路由配置接口\n */\nexport interface RouteConfig {\n /** 路由路径(与 id 二选一,优先使用 path) */\n path?: string;\n /** 路由组件 */\n component?: RouteComponent;\n /** 子路由配置 */\n children?: RouteConfig[];\n /** 路由 ID(仅用于无路径的布局路由,不能与 path 同时使用) */\n id?: string;\n /** Native TanStack guard. Throw redirect(...) or an error to stop this route's loaders. */\n beforeLoad?: AnyRoute['options']['beforeLoad'];\n loader?: AnyRoute['options']['loader'];\n}\n\n/**\n * 路由构建器配置\n */\nexport interface RouterBuilderConfig {\n /** 路由配置数组 */\n routes: RouteConfig[];\n /** 根路由组件,默认使用 AppLayoutWrapper */\n rootComponent?: RouteComponent;\n /** 路由基础路径,部署在子路径时使用(如 '/dish-ui') */\n basepath?: string;\n /** 自定义 404 组件 */\n notFoundComponent?: RouteComponent;\n /** Runs before descendant loaders, including preloads. Must allow public/login routes explicitly. */\n beforeLoad?: AnyRoute['options']['beforeLoad'];\n}\n\n/**\n * 递归创建路由树\n * @param config 路由配置\n * @param parentRoute 父路由\n * @returns 带有子路由的当前路由\n */\nfunction createRoutesRecursive(\n config: RouteConfig,\n parentRoute: RootRoute | AnyRoute\n): AnyRoute {\n\n // 创建当前路由\n // 注意:TanStack Router 不允许同时设置 id 和 path\n // id 只用于无路径的布局路由\n const routeOptions: any = {\n getParentRoute: () => parentRoute,\n component: config.component,\n beforeLoad: config.beforeLoad,\n loader: config.loader,\n };\n\n // 如果有 path,使用 path;否则使用 id(用于布局路由)\n if (config.path) {\n routeOptions.path = config.path;\n } else if (config.id) {\n routeOptions.id = config.id;\n }\n\n const currentRoute = createRoute(routeOptions);\n\n // Keep the actual hierarchy so pathless/layout guards and context reach descendants.\n if (config.children && config.children.length > 0) {\n currentRoute.addChildren(config.children.map(childConfig => createRoutesRecursive(childConfig, currentRoute)));\n }\n\n return currentRoute;\n}\n\n/**\n * 构建路由器\n * @param config 路由构建器配置\n * @returns TanStack Router 实例\n */\nexport function buildRouter(config: RouterBuilderConfig) {\n const rootRoute = createRootRoute({\n component: config.rootComponent,\n beforeLoad: config.beforeLoad,\n notFoundComponent: config.notFoundComponent ?? DefaultNotFound,\n });\n\n const routeTree = rootRoute.addChildren(config.routes.map(routeConfig => createRoutesRecursive(routeConfig, rootRoute)));\n\n const router = createRouter({\n routeTree,\n basepath: config.basepath,\n defaultNotFoundComponent: config.notFoundComponent ?? DefaultNotFound,\n });\n\n return router;\n}\n\nfunction DefaultNotFound() {\n return (\n <div style={{ textAlign: 'center', padding: '4rem 1rem' }}>\n <h1 style={{ fontSize: '3rem', fontWeight: 700, margin: 0 }}>404</h1>\n <p style={{ color: '#666', marginTop: '0.5rem' }}>Page not found</p>\n </div>\n );\n}\n\n/**\n * 从扁平路由配置创建路由器(简化版)\n * @param routes 路由配置数组\n * @param rootComponent 根路由组件\n * @returns TanStack Router 实例\n */\nexport function createRouterFromConfig(\n routes: RouteConfig[],\n rootComponent?: RouteComponent,\n options?: Pick<RouterBuilderConfig, 'basepath' | 'notFoundComponent' | 'beforeLoad'>\n) {\n return buildRouter({\n routes,\n rootComponent,\n basepath: options?.basepath,\n beforeLoad: options?.beforeLoad,\n notFoundComponent: options?.notFoundComponent,\n });\n}\n\n"],"mappings":";;;;AAiDA,SAAS,EACL,GACA,GACQ;CAKR,IAAM,IAAoB;EACtB,sBAAsB;EACtB,WAAW,EAAO;EAClB,YAAY,EAAO;EACnB,QAAQ,EAAO;CACnB;CAGA,AAAI,EAAO,OACP,EAAa,OAAO,EAAO,OACpB,EAAO,OACd,EAAa,KAAK,EAAO;CAG7B,IAAM,IAAe,EAAY,CAAY;CAO7C,OAJI,EAAO,YAAY,EAAO,SAAS,SAAS,KAC5C,EAAa,YAAY,EAAO,SAAS,KAAI,MAAe,EAAsB,GAAa,CAAY,CAAC,CAAC,GAG1G;AACX;AAOA,SAAgB,EAAY,GAA6B;CACrD,IAAM,IAAY,EAAgB;EAC9B,WAAW,EAAO;EAClB,YAAY,EAAO;EACnB,mBAAmB,EAAO,qBAAqB;CACnD,CAAC,GAEK,IAAY,EAAU,YAAY,EAAO,OAAO,KAAI,MAAe,EAAsB,GAAa,CAAS,CAAC,CAAC;CAQvH,OANe,EAAa;EACxB;EACA,UAAU,EAAO;EACjB,0BAA0B,EAAO,qBAAqB;CAC1D,CAEO;AACX;AAEA,SAAS,IAAkB;CACvB,OACI,kBAAC,OAAD;EAAK,OAAO;GAAE,WAAW;GAAU,SAAS;EAAY;EAAxD,UAAA,CACI,kBAAC,MAAD;GAAI,OAAO;IAAE,UAAU;IAAQ,YAAY;IAAK,QAAQ;GAAE;GAAG,UAAA;EAAO,CAAA,GACpE,kBAAC,KAAD;GAAG,OAAO;IAAE,OAAO;IAAQ,WAAW;GAAS;GAAG,UAAA;EAAiB,CAAA,CAClE;;AAEb;AAQA,SAAgB,EACZ,GACA,GACA,GACF;CACE,OAAO,EAAY;EACf;EACA;EACA,UAAU,GAAS;EACnB,YAAY,GAAS;EACrB,mBAAmB,GAAS;CAChC,CAAC;AACL"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Best-effort persistence: unavailable/blocked storage must not break in-memory UI state. */
|
|
2
|
+
export declare const safeStorage: {
|
|
3
|
+
getItem(key: string): string | null;
|
|
4
|
+
setItem(key: string, value: string): boolean;
|
|
5
|
+
removeItem(key: string): boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function readStoredJSON<T>(key: string, isValid: (value: unknown) => value is T, fallback: T): T;
|
|
8
|
+
export declare function writeStoredJSON(key: string, value: unknown): boolean;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/utils/safeStorage.ts
|
|
2
|
+
var e = {
|
|
3
|
+
getItem(e) {
|
|
4
|
+
try {
|
|
5
|
+
return typeof window > "u" ? null : window.localStorage.getItem(e);
|
|
6
|
+
} catch {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
setItem(e, t) {
|
|
11
|
+
try {
|
|
12
|
+
return typeof window > "u" ? !1 : (window.localStorage.setItem(e, t), !0);
|
|
13
|
+
} catch {
|
|
14
|
+
return !1;
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
removeItem(e) {
|
|
18
|
+
try {
|
|
19
|
+
return typeof window > "u" ? !1 : (window.localStorage.removeItem(e), !0);
|
|
20
|
+
} catch {
|
|
21
|
+
return !1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
function t(t, n, r) {
|
|
26
|
+
let i = e.getItem(t);
|
|
27
|
+
if (i === null) return r;
|
|
28
|
+
try {
|
|
29
|
+
let e = JSON.parse(i);
|
|
30
|
+
if (n(e)) return e;
|
|
31
|
+
} catch {}
|
|
32
|
+
return e.removeItem(t), r;
|
|
33
|
+
}
|
|
34
|
+
function n(t, n) {
|
|
35
|
+
try {
|
|
36
|
+
let r = JSON.stringify(n);
|
|
37
|
+
return r !== void 0 && e.setItem(t, r);
|
|
38
|
+
} catch {
|
|
39
|
+
return !1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { t as readStoredJSON, e as safeStorage, n as writeStoredJSON };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=safeStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeStorage.js","names":[],"sources":["../../src/utils/safeStorage.ts"],"sourcesContent":["/** Best-effort persistence: unavailable/blocked storage must not break in-memory UI state. */\nexport const safeStorage = {\n getItem(key: string): string | null {\n try {\n return typeof window === 'undefined' ? null : window.localStorage.getItem(key);\n } catch {\n return null;\n }\n },\n setItem(key: string, value: string): boolean {\n try {\n if (typeof window === 'undefined') return false;\n window.localStorage.setItem(key, value);\n return true;\n } catch {\n return false;\n }\n },\n removeItem(key: string): boolean {\n try {\n if (typeof window === 'undefined') return false;\n window.localStorage.removeItem(key);\n return true;\n } catch {\n return false;\n }\n },\n};\n\nexport function readStoredJSON<T>(key: string, isValid: (value: unknown) => value is T, fallback: T): T {\n const saved = safeStorage.getItem(key);\n if (saved === null) return fallback;\n try {\n const value: unknown = JSON.parse(saved);\n if (isValid(value)) return value;\n } catch {\n // Treat malformed data and validator failures just like a missing preference.\n }\n safeStorage.removeItem(key);\n return fallback;\n}\n\nexport function writeStoredJSON(key: string, value: unknown): boolean {\n try {\n const serialized = JSON.stringify(value);\n return serialized !== undefined && safeStorage.setItem(key, serialized);\n } catch {\n return false;\n }\n}\n"],"mappings":";AACA,IAAa,IAAc;CACzB,QAAQ,GAA4B;EAClC,IAAI;GACF,OAAO,OAAO,SAAW,MAAc,OAAO,OAAO,aAAa,QAAQ,CAAG;EAC/E,QAAQ;GACN,OAAO;EACT;CACF;CACA,QAAQ,GAAa,GAAwB;EAC3C,IAAI;GAGF,OAFI,OAAO,SAAW,MAAoB,MAC1C,OAAO,aAAa,QAAQ,GAAK,CAAK,GAC/B;EACT,QAAQ;GACN,OAAO;EACT;CACF;CACA,WAAW,GAAsB;EAC/B,IAAI;GAGF,OAFI,OAAO,SAAW,MAAoB,MAC1C,OAAO,aAAa,WAAW,CAAG,GAC3B;EACT,QAAQ;GACN,OAAO;EACT;CACF;AACF;AAEA,SAAgB,EAAkB,GAAa,GAAyC,GAAgB;CACtG,IAAM,IAAQ,EAAY,QAAQ,CAAG;CACrC,IAAI,MAAU,MAAM,OAAO;CAC3B,IAAI;EACF,IAAM,IAAiB,KAAK,MAAM,CAAK;EACvC,IAAI,EAAQ,CAAK,GAAG,OAAO;CAC7B,QAAQ,CAER;CAEA,OADA,EAAY,WAAW,CAAG,GACnB;AACT;AAEA,SAAgB,EAAgB,GAAa,GAAyB;CACpE,IAAI;EACF,IAAM,IAAa,KAAK,UAAU,CAAK;EACvC,OAAO,MAAe,KAAA,KAAa,EAAY,QAAQ,GAAK,CAAU;CACxE,QAAQ;EACN,OAAO;CACT;AACF"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dishui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.91",
|
|
4
4
|
"description": "New Components UI Framework with AI Powered",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"packageManager": "pnpm@11.12.0",
|
|
6
7
|
"main": "dist/index.js",
|
|
7
8
|
"module": "dist/index.js",
|
|
8
9
|
"types": "dist/index.d.ts",
|
|
@@ -65,6 +66,16 @@
|
|
|
65
66
|
"test:showcase": "node --test scripts/showcase-components.test.mjs showcase/it-budget/ITBudget.smoke.test.mjs",
|
|
66
67
|
"build:types": "tsc --emitDeclarationOnly -p tsconfig.json && node scripts/strip-dts-css-imports.mjs",
|
|
67
68
|
"typecheck": "tsc --noEmit -p tsconfig.demo.json",
|
|
69
|
+
"typecheck:lib": "tsc --noEmit -p tsconfig.json",
|
|
70
|
+
"typecheck:all": "npm run typecheck:lib && npm run typecheck && npm run typecheck:showcase",
|
|
71
|
+
"test": "node scripts/run-tests.mjs unit",
|
|
72
|
+
"test:browser": "node scripts/run-tests.mjs browser",
|
|
73
|
+
"test:browser:all": "node scripts/run-tests.mjs browser-all",
|
|
74
|
+
"test:regression": "node --test scripts/data-table-stage-a.test.mjs scripts/table-columns.test.mjs src/contexts/AppContext.test.mjs src/components/pro/Flow/nodes/flowStageC.test.mjs scripts/lint-baseline.test.mjs scripts/package-smoke.test.mjs",
|
|
75
|
+
"test:package": "node scripts/package-smoke.mjs",
|
|
76
|
+
"test:perf": "node scripts/flow-stage-c.perf.mjs",
|
|
77
|
+
"check": "npm run typecheck:all && npm run lint:check && npm run docs:check && npm test",
|
|
78
|
+
"check:release": "npm run check && npm run test:browser && npm run build && npm run test:package",
|
|
68
79
|
"docs:generate": "node scripts/check-docs.mjs --write",
|
|
69
80
|
"docs:check": "node scripts/check-docs.mjs",
|
|
70
81
|
"test:docs": "node --test scripts/check-docs.test.mjs",
|
|
@@ -73,8 +84,10 @@
|
|
|
73
84
|
"test:flow": "node --test scripts/flow-hooks.test.mjs scripts/flow-import-export.test.mjs",
|
|
74
85
|
"lint": "oxlint --config .oxlintrc.json src",
|
|
75
86
|
"lint:fix": "oxlint --config .oxlintrc.json --fix src",
|
|
87
|
+
"lint:check": "node scripts/lint-baseline.mjs",
|
|
88
|
+
"lint:baseline": "node scripts/lint-baseline.mjs --write",
|
|
76
89
|
"test:styles": "node --test scripts/styles.test.mjs",
|
|
77
|
-
"prepublishOnly": "npm run
|
|
90
|
+
"prepublishOnly": "npm run check:release",
|
|
78
91
|
"publish:npm": "npm publish --access public",
|
|
79
92
|
"release": "node scripts/release.mjs",
|
|
80
93
|
"release:patch": "node scripts/release.mjs patch",
|
|
@@ -105,8 +118,6 @@
|
|
|
105
118
|
"@types/d3-scale": "^4.0.9",
|
|
106
119
|
"@types/d3-shape": "^3.1.7",
|
|
107
120
|
"@types/d3-time": "^3.0.4",
|
|
108
|
-
"@types/hast": "^3.0.5",
|
|
109
|
-
"@types/mdast": "^4.0.4",
|
|
110
121
|
"@types/node": "^26.1.1",
|
|
111
122
|
"@types/react": "^19.2.17",
|
|
112
123
|
"@types/react-dom": "^19.2.3",
|
|
@@ -119,7 +130,9 @@
|
|
|
119
130
|
"d3-shape": "3.2.0",
|
|
120
131
|
"d3-time": "3.1.0",
|
|
121
132
|
"daisyui": "^5.7.32",
|
|
133
|
+
"esbuild": "0.28.2",
|
|
122
134
|
"oxlint": "^1.82.0",
|
|
135
|
+
"playwright-core": "1.58.2",
|
|
123
136
|
"postcss": "^8.5.19",
|
|
124
137
|
"react": "^19.2.7",
|
|
125
138
|
"react-dom": "^19.2.7",
|
|
@@ -127,7 +140,6 @@
|
|
|
127
140
|
"tailwindcss": "^4.3.3",
|
|
128
141
|
"tslib": "^2.8.1",
|
|
129
142
|
"typescript": "^7.0.2",
|
|
130
|
-
"unified": "^11.0.5",
|
|
131
143
|
"vite": "^8.2.2"
|
|
132
144
|
},
|
|
133
145
|
"dependencies": {
|
|
@@ -149,8 +161,10 @@
|
|
|
149
161
|
"@lezer/highlight": "^1.2.3",
|
|
150
162
|
"@tailwindcss/vite": "^4.3.3",
|
|
151
163
|
"@tanstack/charts": "0.16.2",
|
|
164
|
+
"@tanstack/history": "^1.162.2",
|
|
152
165
|
"@tanstack/react-charts": "^0.16.2",
|
|
153
166
|
"@tanstack/react-table": "^9.2.4",
|
|
167
|
+
"@tanstack/router-core": "^1.171.28",
|
|
154
168
|
"@tanstack/table-core": "^9.2.4",
|
|
155
169
|
"@tiptap/core": "^3.28.0",
|
|
156
170
|
"@tiptap/extension-color": "^3.28.0",
|
|
@@ -174,6 +188,8 @@
|
|
|
174
188
|
"@tiptap/pm": "^3.28.0",
|
|
175
189
|
"@tiptap/react": "^3.28.0",
|
|
176
190
|
"@tiptap/starter-kit": "^3.28.0",
|
|
191
|
+
"@types/hast": "^3.0.5",
|
|
192
|
+
"@types/mdast": "^4.0.4",
|
|
177
193
|
"fflate": "^0.8.2",
|
|
178
194
|
"katex": "^0.17.0",
|
|
179
195
|
"markmap-lib": "^0.18.12",
|
|
@@ -190,6 +206,7 @@
|
|
|
190
206
|
"remark-math": "^6.0.0",
|
|
191
207
|
"three": "^0.180.0",
|
|
192
208
|
"topojson-client": "^3.1.0",
|
|
209
|
+
"unified": "^11.0.5",
|
|
193
210
|
"unist-util-visit": "^5.1.0",
|
|
194
211
|
"world-atlas": "^2.0.2"
|
|
195
212
|
}
|