0.0.0.2
This commit is contained in:
@@ -38,3 +38,48 @@
|
|||||||
[00:13:58.822] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812295705}
|
[00:13:58.822] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812295705}
|
||||||
[00:14:00.361] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812297064}
|
[00:14:00.361] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/new color: rgb(120, 120, 120) color: inherit {"dp":"/members/new","o":"http://localhost:3000/members/new","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812297064}
|
||||||
[00:14:08.010] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812304899}
|
[00:14:08.010] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812304899}
|
||||||
|
[00:17:32.310] Server WARN ⚠ Fast Refresh had to perform a full reload when ./Documents/go-new/chinese-family-tree/lib/db.ts changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload
|
||||||
|
[00:17:32.549] Server LOG ✓ Compiled in 48ms
|
||||||
|
[00:17:33.273] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold
|
||||||
|
[00:17:33.651] Browser WARN Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.
|
||||||
|
[00:17:33.651] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit
|
||||||
|
[00:17:33.651] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/members","route":"/members"}
|
||||||
|
[00:17:33.651] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812510445}
|
||||||
|
[00:17:33.651] Browser DEBUG Dexie: Creating missing table images
|
||||||
|
[00:18:09.981] Server LOG ✓ Compiled in 112ms
|
||||||
|
[00:21:50.809] Server LOG ✓ Compiled in 82ms
|
||||||
|
[00:21:50.912] Browser ERROR uncaughtError: ReferenceError: AvatarDisplay is not defined
|
||||||
|
[00:22:17.763] Server WARN ⚠ Fast Refresh had to perform a full reload due to a runtime error.
|
||||||
|
[00:22:18.105] Server LOG ✓ Compiled in 54ms
|
||||||
|
[00:22:18.259] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812794820}
|
||||||
|
[00:22:18.737] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold
|
||||||
|
[00:22:19.170] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit
|
||||||
|
[00:22:19.170] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/members","route":"/members"}
|
||||||
|
[00:22:19.170] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812796024}
|
||||||
|
[00:22:44.161] Server LOG ✓ Compiled in 73ms
|
||||||
|
[00:23:40.360] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members/1 color: rgb(120, 120, 120) color: inherit {"dp":"/members/[id]","o":"http://localhost:3000/members/1","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812877273}
|
||||||
|
[00:24:17.202] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812914082}
|
||||||
|
[00:24:19.648] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812916559}
|
||||||
|
[00:24:22.687] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812919582}
|
||||||
|
[00:24:25.750] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812922662}
|
||||||
|
[00:24:43.293] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812940204}
|
||||||
|
[00:24:49.415] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812946328}
|
||||||
|
[00:24:51.383] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812948294}
|
||||||
|
[00:24:52.908] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763812949824}
|
||||||
|
[00:27:42.610] Server LOG ✓ Compiled in 64ms
|
||||||
|
[00:28:08.906] Server LOG ✓ Compiled in 54ms
|
||||||
|
[00:28:34.024] Server LOG ✓ Compiled in 57ms
|
||||||
|
[00:29:13.710] Server LOG ✓ Compiled in 50ms
|
||||||
|
[00:29:22.707] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold
|
||||||
|
[00:29:22.987] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit
|
||||||
|
[00:29:22.987] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/timeline","route":"/timeline"}
|
||||||
|
[00:29:22.987] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763813219912}
|
||||||
|
[00:29:25.957] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/ color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763813222876}
|
||||||
|
[00:29:28.354] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/tree color: rgb(120, 120, 120) color: inherit {"dp":"/tree","o":"http://localhost:3000/tree","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763813225279}
|
||||||
|
[00:29:31.043] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/members color: rgb(120, 120, 120) color: inherit {"dp":"/members","o":"http://localhost:3000/members","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763813227968}
|
||||||
|
[00:29:32.629] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763813229550}
|
||||||
|
[00:29:45.348] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold
|
||||||
|
[00:29:45.605] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit
|
||||||
|
[00:29:45.605] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/timeline","route":"/timeline"}
|
||||||
|
[00:29:45.605] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/timeline color: rgb(120, 120, 120) color: inherit {"dp":"/timeline","o":"http://localhost:3000/timeline","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763813242531}
|
||||||
|
[00:30:04.863] Server LOG ✓ Compiled in 43ms
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -177,7 +177,7 @@ function SiteHeader() {
|
|||||||
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "container flex h-16 items-center px-4",
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mr-8 flex items-center gap-2",
|
className: "mr-8 flex items-center gap-2",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -505,7 +505,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
|||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) <export default as Plus>");
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) <export default as Plus>");
|
||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/filter.js [app-ssr] (ecmascript) <export default as Filter>");
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/filter.js [app-ssr] (ecmascript) <export default as Filter>");
|
||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-ssr] (ecmascript)");
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-ssr] (ecmascript)");
|
||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)");
|
|
||||||
"use client";
|
"use client";
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
@@ -516,7 +515,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
|
||||||
function MembersPage() {
|
function MembersPage() {
|
||||||
const { treeData, searchResults, searchMembers } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])();
|
const { treeData, searchResults, searchMembers } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])();
|
||||||
const [query, setQuery] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])("");
|
const [query, setQuery] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])("");
|
||||||
@@ -636,26 +634,12 @@ function MembersPage() {
|
|||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], {
|
||||||
className: "p-6 flex items-start gap-4",
|
className: "p-6 flex items-start gap-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(AvatarDisplay, {
|
||||||
className: "h-16 w-16 border-2 border-border",
|
imageId: member.avatarImageId,
|
||||||
children: [
|
fallbackUrl: member.avatarUrl,
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarImage"], {
|
fallbackText: member.surname,
|
||||||
src: member.avatarUrl || "/placeholder.svg"
|
className: "h-16 w-16 border-2 border-border"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
|
||||||
lineNumber: 61,
|
|
||||||
columnNumber: 21
|
|
||||||
}, this),
|
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
|
||||||
className: "text-lg font-serif bg-muted",
|
|
||||||
children: member.surname
|
|
||||||
}, void 0, false, {
|
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
|
||||||
lineNumber: 62,
|
|
||||||
columnNumber: 21
|
|
||||||
}, this)
|
|
||||||
]
|
|
||||||
}, void 0, true, {
|
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 60,
|
lineNumber: 60,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
@@ -678,13 +662,13 @@ function MembersPage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 69,
|
lineNumber: 71,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 66,
|
lineNumber: 68,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -695,13 +679,13 @@ function MembersPage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 74,
|
lineNumber: 76,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 65,
|
lineNumber: 67,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -709,7 +693,7 @@ function MembersPage() {
|
|||||||
children: member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"
|
children: member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 78,
|
lineNumber: 80,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -717,7 +701,7 @@ function MembersPage() {
|
|||||||
children: member.ancestralHome || "籍贯未知"
|
children: member.ancestralHome || "籍贯未知"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 81,
|
lineNumber: 83,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -728,7 +712,7 @@ function MembersPage() {
|
|||||||
children: "已故"
|
children: "已故"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 84,
|
lineNumber: 86,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this),
|
}, this),
|
||||||
member.tags?.map((tag)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
member.tags?.map((tag)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -736,19 +720,19 @@ function MembersPage() {
|
|||||||
children: tag
|
children: tag
|
||||||
}, tag, false, {
|
}, tag, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 89,
|
lineNumber: 91,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this))
|
}, this))
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 82,
|
lineNumber: 84,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 64,
|
lineNumber: 66,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -177,7 +177,7 @@ function SiteHeader() {
|
|||||||
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "container flex h-16 items-center px-4",
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mr-8 flex items-center gap-2",
|
className: "mr-8 flex items-center gap-2",
|
||||||
@@ -703,7 +703,7 @@ function TimelinePage() {
|
|||||||
columnNumber: 7
|
columnNumber: 7
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
||||||
className: "container py-8 px-4 md:px-6 flex-1",
|
className: "container mx-auto py-8 px-4 md:px-6 flex-1",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mb-8",
|
className: "mb-8",
|
||||||
@@ -803,7 +803,7 @@ function TimelinePage() {
|
|||||||
children: event.year
|
children: event.year
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 98,
|
lineNumber: 97,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -817,7 +817,7 @@ function TimelinePage() {
|
|||||||
children: event.type === "birth" ? "诞生" : "逝世"
|
children: event.type === "birth" ? "诞生" : "逝世"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 105,
|
lineNumber: 104,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -825,13 +825,13 @@ function TimelinePage() {
|
|||||||
children: event.date
|
children: event.date
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 112,
|
lineNumber: 110,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 104,
|
lineNumber: 103,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
||||||
@@ -847,13 +847,13 @@ function TimelinePage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 116,
|
lineNumber: 114,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 114,
|
lineNumber: 112,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -861,13 +861,13 @@ function TimelinePage() {
|
|||||||
children: event.type === "birth" ? `出生于 ${event.member.birthPlace || event.member.ancestralHome || "未知地点"}` : `享年 ${event.year - Number.parseInt(event.member.birthDate?.substring(0, 4) || "0")} 岁`
|
children: event.type === "birth" ? `出生于 ${event.member.birthPlace || event.member.ancestralHome || "未知地点"}` : `享年 ${event.year - Number.parseInt(event.member.birthDate?.substring(0, 4) || "0")} 岁`
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 120,
|
lineNumber: 118,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 103,
|
lineNumber: 102,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
@@ -881,7 +881,7 @@ function TimelinePage() {
|
|||||||
children: "暂无时间记录。请完善成员的出生日期信息。"
|
children: "暂无时间记录。请完善成员的出生日期信息。"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 130,
|
lineNumber: 128,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
@@ -918,12 +918,12 @@ function TimelinePage() {
|
|||||||
children: "迁徙记录 (Records)"
|
children: "迁徙记录 (Records)"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 141,
|
lineNumber: 139,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 140,
|
lineNumber: 138,
|
||||||
columnNumber: 17
|
columnNumber: 17
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], {
|
||||||
@@ -943,7 +943,7 @@ function TimelinePage() {
|
|||||||
children: mig.year ? `${mig.year}年` : "未知年代"
|
children: mig.year ? `${mig.year}年` : "未知年代"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 149,
|
lineNumber: 147,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -954,13 +954,13 @@ function TimelinePage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 152,
|
lineNumber: 150,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 148,
|
lineNumber: 146,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -974,7 +974,7 @@ function TimelinePage() {
|
|||||||
children: "迁出地"
|
children: "迁出地"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 156,
|
lineNumber: 154,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -982,7 +982,7 @@ function TimelinePage() {
|
|||||||
children: mig.from
|
children: mig.from
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 157,
|
lineNumber: 155,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -990,20 +990,20 @@ function TimelinePage() {
|
|||||||
children: mig.father.fullName
|
children: mig.father.fullName
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 158,
|
lineNumber: 156,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 155,
|
lineNumber: 153,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowRight$3e$__["ArrowRight"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowRight$3e$__["ArrowRight"], {
|
||||||
className: "text-muted-foreground"
|
className: "text-muted-foreground"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 160,
|
lineNumber: 158,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1014,7 +1014,7 @@ function TimelinePage() {
|
|||||||
children: "迁入地"
|
children: "迁入地"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 162,
|
lineNumber: 160,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1022,7 +1022,7 @@ function TimelinePage() {
|
|||||||
children: mig.to
|
children: mig.to
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 163,
|
lineNumber: 161,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1030,25 +1030,25 @@ function TimelinePage() {
|
|||||||
children: mig.person.fullName
|
children: mig.person.fullName
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 164,
|
lineNumber: 162,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 161,
|
lineNumber: 159,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 154,
|
lineNumber: 152,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, idx, true, {
|
}, idx, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 147,
|
lineNumber: 145,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this)),
|
}, this)),
|
||||||
migrations.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
migrations.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -1057,36 +1057,36 @@ function TimelinePage() {
|
|||||||
"暂无迁徙记录。",
|
"暂无迁徙记录。",
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 172,
|
lineNumber: 170,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this),
|
}, this),
|
||||||
"系统会自动分析父子代之间的籍贯/出生地差异来生成迁徙路径。"
|
"系统会自动分析父子代之间的籍贯/出生地差异来生成迁徙路径。"
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 170,
|
lineNumber: 168,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 145,
|
lineNumber: 143,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 144,
|
lineNumber: 142,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 143,
|
lineNumber: 141,
|
||||||
columnNumber: 17
|
columnNumber: 17
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 139,
|
lineNumber: 137,
|
||||||
columnNumber: 15
|
columnNumber: 15
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], {
|
||||||
@@ -1098,7 +1098,7 @@ function TimelinePage() {
|
|||||||
className: "h-16 w-16 mb-4 opacity-20"
|
className: "h-16 w-16 mb-4 opacity-20"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 183,
|
lineNumber: 181,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -1107,36 +1107,36 @@ function TimelinePage() {
|
|||||||
"地图可视化需要地理编码服务支持。",
|
"地图可视化需要地理编码服务支持。",
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 186,
|
lineNumber: 184,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
"当前版本仅支持列表展示迁徙路径。"
|
"当前版本仅支持列表展示迁徙路径。"
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 184,
|
lineNumber: 182,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 182,
|
lineNumber: 180,
|
||||||
columnNumber: 17
|
columnNumber: 17
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 181,
|
lineNumber: 179,
|
||||||
columnNumber: 15
|
columnNumber: 15
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 138,
|
lineNumber: 136,
|
||||||
columnNumber: 13
|
columnNumber: 13
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 137,
|
lineNumber: 135,
|
||||||
columnNumber: 11
|
columnNumber: 11
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,836 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"cn",
|
||||||
|
()=>cn
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$tailwind$2d$merge$40$2$2e$6$2e$0$2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs [app-ssr] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function cn(...inputs) {
|
||||||
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$tailwind$2d$merge$40$2$2e$6$2e$0$2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["twMerge"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clsx"])(inputs));
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Button",
|
||||||
|
()=>Button,
|
||||||
|
"buttonVariants",
|
||||||
|
()=>buttonVariants
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
const buttonVariants = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cva"])("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
|
||||||
|
variants: {
|
||||||
|
variant: {
|
||||||
|
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
||||||
|
destructive: 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
||||||
|
outline: 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
|
||||||
|
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
||||||
|
ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
|
||||||
|
link: 'text-primary underline-offset-4 hover:underline'
|
||||||
|
},
|
||||||
|
size: {
|
||||||
|
default: 'h-9 px-4 py-2 has-[>svg]:px-3',
|
||||||
|
sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',
|
||||||
|
lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',
|
||||||
|
icon: 'size-9',
|
||||||
|
'icon-sm': 'size-8',
|
||||||
|
'icon-lg': 'size-10'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
defaultVariants: {
|
||||||
|
variant: 'default',
|
||||||
|
size: 'default'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function Button({ className, variant, size, asChild = false, ...props }) {
|
||||||
|
const Comp = asChild ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"] : 'button';
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(Comp, {
|
||||||
|
"data-slot": "button",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])(buttonVariants({
|
||||||
|
variant,
|
||||||
|
size,
|
||||||
|
className
|
||||||
|
})),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx",
|
||||||
|
lineNumber: 52,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Input",
|
||||||
|
()=>Input
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function Input({ className, type, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
||||||
|
type: type,
|
||||||
|
"data-slot": "input",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx",
|
||||||
|
lineNumber: 7,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Avatar",
|
||||||
|
()=>Avatar,
|
||||||
|
"AvatarFallback",
|
||||||
|
()=>AvatarFallback,
|
||||||
|
"AvatarImage",
|
||||||
|
()=>AvatarImage
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-avatar@1.1.2_@types+react-dom@19.2.3_@types+react@19.2.6__@types+react@_3ee3dafa662d71951c1a3d5b289c96d1/node_modules/@radix-ui/react-avatar/dist/index.mjs [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
||||||
|
'use client';
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function Avatar({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Root"], {
|
||||||
|
"data-slot": "avatar",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('relative flex size-8 shrink-0 overflow-hidden rounded-full', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx",
|
||||||
|
lineNumber: 13,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function AvatarImage({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Image"], {
|
||||||
|
"data-slot": "avatar-image",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('aspect-square size-full', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx",
|
||||||
|
lineNumber: 29,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function AvatarFallback({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fallback"], {
|
||||||
|
"data-slot": "avatar-fallback",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('bg-muted flex size-full items-center justify-center rounded-full', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx",
|
||||||
|
lineNumber: 42,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"SiteHeader",
|
||||||
|
()=>SiteHeader
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript) <export default as BookOpen>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript) <export default as Search>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Bell$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-ssr] (ecmascript) <export default as Bell>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Settings$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-ssr] (ecmascript) <export default as Settings>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function SiteHeader() {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "mr-8 flex items-center gap-2",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex h-8 w-8 items-center justify-center rounded bg-primary text-primary-foreground",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__["BookOpen"], {
|
||||||
|
className: "h-5 w-5"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 13,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 12,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-xl font-serif font-bold tracking-tight",
|
||||||
|
children: "华夏谱 (HuaXiaPu)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 15,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 11,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", {
|
||||||
|
className: "hidden md:flex items-center gap-6 text-sm font-medium text-muted-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/",
|
||||||
|
className: "transition-colors hover:text-foreground data-[active=true]:text-foreground data-[active=true]:font-semibold",
|
||||||
|
children: "总览 (Overview)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 19,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/tree",
|
||||||
|
className: "transition-colors hover:text-foreground",
|
||||||
|
children: "族谱 (Tree)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 25,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/members",
|
||||||
|
className: "transition-colors hover:text-foreground",
|
||||||
|
children: "成员 (Members)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 28,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/timeline",
|
||||||
|
className: "transition-colors hover:text-foreground",
|
||||||
|
children: "大事记 (Timeline)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 31,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 18,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "ml-auto flex items-center gap-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "relative hidden sm:block",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__["Search"], {
|
||||||
|
className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 38,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], {
|
||||||
|
type: "search",
|
||||||
|
placeholder: "搜索成员...",
|
||||||
|
className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 39,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 37,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
variant: "ghost",
|
||||||
|
size: "icon",
|
||||||
|
className: "text-muted-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Bell$3e$__["Bell"], {
|
||||||
|
className: "h-5 w-5"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 47,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "sr-only",
|
||||||
|
children: "Notifications"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 48,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 46,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/settings",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
variant: "ghost",
|
||||||
|
size: "icon",
|
||||||
|
className: "text-muted-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Settings$3e$__["Settings"], {
|
||||||
|
className: "h-5 w-5"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 53,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "sr-only",
|
||||||
|
children: "Settings"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 54,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 52,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 51,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], {
|
||||||
|
className: "h-8 w-8 border border-border",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarImage"], {
|
||||||
|
src: "/placeholder-user.jpg",
|
||||||
|
alt: "User"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 59,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
||||||
|
children: "李"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 60,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 58,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 36,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 10,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 9,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Card",
|
||||||
|
()=>Card,
|
||||||
|
"CardAction",
|
||||||
|
()=>CardAction,
|
||||||
|
"CardContent",
|
||||||
|
()=>CardContent,
|
||||||
|
"CardDescription",
|
||||||
|
()=>CardDescription,
|
||||||
|
"CardFooter",
|
||||||
|
()=>CardFooter,
|
||||||
|
"CardHeader",
|
||||||
|
()=>CardHeader,
|
||||||
|
"CardTitle",
|
||||||
|
()=>CardTitle
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function Card({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 7,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function CardHeader({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-header",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 20,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function CardTitle({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-title",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('leading-none font-semibold', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 33,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function CardDescription({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-description",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('text-muted-foreground text-sm', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 43,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function CardAction({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-action",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 53,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function CardContent({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-content",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('px-6', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 66,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
function CardFooter({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-footer",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('flex items-center px-6 [.border-t]:pt-6', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 76,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"AvatarDisplay",
|
||||||
|
()=>AvatarDisplay
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-ssr] (ecmascript)");
|
||||||
|
"use client";
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function AvatarDisplay({ imageId, fallbackUrl, fallbackText, className }) {
|
||||||
|
const [blobUrl, setBlobUrl] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(undefined);
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
||||||
|
if (imageId) {
|
||||||
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["db"].images.get(imageId).then((image)=>{
|
||||||
|
if (image) {
|
||||||
|
const url = URL.createObjectURL(image.blob);
|
||||||
|
setBlobUrl(url);
|
||||||
|
return ()=>URL.revokeObjectURL(url);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setBlobUrl(undefined);
|
||||||
|
}
|
||||||
|
}, [
|
||||||
|
imageId
|
||||||
|
]);
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], {
|
||||||
|
className: className,
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarImage"], {
|
||||||
|
src: blobUrl || fallbackUrl || "/placeholder.svg"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx",
|
||||||
|
lineNumber: 33,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
||||||
|
className: "text-lg font-serif bg-muted",
|
||||||
|
children: fallbackText
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx",
|
||||||
|
lineNumber: 34,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx",
|
||||||
|
lineNumber: 32,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>MembersPage
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-ssr] (ecmascript) <export default as Search>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) <export default as Plus>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/filter.js [app-ssr] (ecmascript) <export default as Filter>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-ssr] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2d$display$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx [app-ssr] (ecmascript)");
|
||||||
|
"use client";
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function MembersPage() {
|
||||||
|
const { treeData, searchResults, searchMembers } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])();
|
||||||
|
const [query, setQuery] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])("");
|
||||||
|
const displayMembers = query ? searchResults : Object.values(treeData.members).sort((a, b)=>a.generation - b.generation || (a.birthDate || "").localeCompare(b.birthDate || ""));
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "min-h-screen bg-background flex flex-col font-sans",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 26,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
||||||
|
className: "container mx-auto py-8 px-4 md:px-6 flex-1",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex flex-col md:flex-row justify-between items-center mb-8 gap-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", {
|
||||||
|
className: "text-3xl font-serif font-bold",
|
||||||
|
children: "家族成员列表"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 29,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex items-center gap-2 w-full md:w-auto",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "relative flex-1 md:w-80",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__["Search"], {
|
||||||
|
className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 32,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], {
|
||||||
|
type: "search",
|
||||||
|
placeholder: "搜索姓名、字号...",
|
||||||
|
className: "pl-9",
|
||||||
|
value: query,
|
||||||
|
onChange: (e)=>{
|
||||||
|
setQuery(e.target.value);
|
||||||
|
searchMembers(e.target.value);
|
||||||
|
}
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 33,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 31,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
variant: "outline",
|
||||||
|
size: "icon",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__["Filter"], {
|
||||||
|
className: "h-4 w-4"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 45,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 44,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/members/new",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
className: "gap-2 bg-primary text-primary-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__["Plus"], {
|
||||||
|
className: "h-4 w-4"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 49,
|
||||||
|
columnNumber: 17
|
||||||
|
}, this),
|
||||||
|
"新增成员"
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 48,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 47,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 30,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 28,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
||||||
|
children: displayMembers.map((member)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: `/members/${member.id}`,
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], {
|
||||||
|
className: "hover:border-primary transition-colors cursor-pointer h-full",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], {
|
||||||
|
className: "p-6 flex items-start gap-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2d$display$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarDisplay"], {
|
||||||
|
imageId: member.avatarImageId,
|
||||||
|
fallbackUrl: member.avatarUrl,
|
||||||
|
fallbackText: member.surname,
|
||||||
|
className: "h-16 w-16 border-2 border-border"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 61,
|
||||||
|
columnNumber: 19
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex-1 min-w-0",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex items-baseline justify-between",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
||||||
|
className: "text-xl font-bold font-serif truncate",
|
||||||
|
children: [
|
||||||
|
member.fullName,
|
||||||
|
member.courtesyName && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-sm font-normal text-muted-foreground ml-2",
|
||||||
|
children: [
|
||||||
|
"字 ",
|
||||||
|
member.courtesyName
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 72,
|
||||||
|
columnNumber: 27
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 69,
|
||||||
|
columnNumber: 23
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-xs font-mono bg-muted px-1.5 py-0.5 rounded text-muted-foreground whitespace-nowrap",
|
||||||
|
children: [
|
||||||
|
member.generation,
|
||||||
|
"世"
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 77,
|
||||||
|
columnNumber: 23
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 68,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
|
className: "text-sm text-muted-foreground mt-1 truncate",
|
||||||
|
children: member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 81,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
|
className: "text-sm text-muted-foreground truncate",
|
||||||
|
children: member.ancestralHome || "籍贯未知"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 84,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "mt-3 flex flex-wrap gap-1",
|
||||||
|
children: [
|
||||||
|
member.deathDate && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-[10px] bg-neutral-100 text-neutral-600 px-1.5 py-0.5 rounded border border-neutral-200",
|
||||||
|
children: "已故"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 87,
|
||||||
|
columnNumber: 25
|
||||||
|
}, this),
|
||||||
|
member.tags?.map((tag)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-[10px] bg-primary/10 text-primary px-1.5 py-0.5 rounded border border-primary/20",
|
||||||
|
children: tag
|
||||||
|
}, tag, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 92,
|
||||||
|
columnNumber: 25
|
||||||
|
}, this))
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 85,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 67,
|
||||||
|
columnNumber: 19
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 60,
|
||||||
|
columnNumber: 17
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 59,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
}, member.id, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 58,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this))
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 56,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 27,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 25,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
|
||||||
|
//# sourceMappingURL=Documents_go-new_chinese-family-tree_f4f7335b._.js.map
|
||||||
File diff suppressed because one or more lines are too long
@@ -135,11 +135,13 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
|||||||
class FamilyTreeDB extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] {
|
class FamilyTreeDB extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"] {
|
||||||
members;
|
members;
|
||||||
settings;
|
settings;
|
||||||
|
images;
|
||||||
constructor(){
|
constructor(){
|
||||||
super("FamilyTreeDB");
|
super("FamilyTreeDB");
|
||||||
this.version(1).stores({
|
this.version(1).stores({
|
||||||
members: "id, fullName, fatherId, motherId, [fatherId+motherId]",
|
members: "id, fullName, fatherId, motherId, [fatherId+motherId]",
|
||||||
settings: "key"
|
settings: "key",
|
||||||
|
images: "id"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -296,7 +296,7 @@ function SiteHeader() {
|
|||||||
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "container flex h-16 items-center px-4",
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mr-8 flex items-center gap-2",
|
className: "mr-8 flex items-center gap-2",
|
||||||
@@ -655,7 +655,7 @@ function DashboardPage() {
|
|||||||
columnNumber: 7
|
columnNumber: 7
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
||||||
className: "flex-1 container py-8 px-4 md:px-6",
|
className: "flex-1 container mx-auto py-8 px-4 md:px-6",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$rsc$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$rsc$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "flex flex-col md:flex-row items-start md:items-center justify-between gap-4 mb-8",
|
className: "flex flex-col md:flex-row items-start md:items-center justify-between gap-4 mb-8",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+1257
File diff suppressed because it is too large
Load Diff
+6
File diff suppressed because one or more lines are too long
@@ -202,7 +202,7 @@ function SiteHeader() {
|
|||||||
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "container flex h-16 items-center px-4",
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mr-8 flex items-center gap-2",
|
className: "mr-8 flex items-center gap-2",
|
||||||
@@ -774,7 +774,7 @@ function TimelinePage() {
|
|||||||
columnNumber: 7
|
columnNumber: 7
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
||||||
className: "container py-8 px-4 md:px-6 flex-1",
|
className: "container mx-auto py-8 px-4 md:px-6 flex-1",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mb-8",
|
className: "mb-8",
|
||||||
@@ -874,7 +874,7 @@ function TimelinePage() {
|
|||||||
children: event.year
|
children: event.year
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 98,
|
lineNumber: 97,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -888,7 +888,7 @@ function TimelinePage() {
|
|||||||
children: event.type === "birth" ? "诞生" : "逝世"
|
children: event.type === "birth" ? "诞生" : "逝世"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 105,
|
lineNumber: 104,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -896,13 +896,13 @@ function TimelinePage() {
|
|||||||
children: event.date
|
children: event.date
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 112,
|
lineNumber: 110,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 104,
|
lineNumber: 103,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
||||||
@@ -918,13 +918,13 @@ function TimelinePage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 116,
|
lineNumber: 114,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 114,
|
lineNumber: 112,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -932,13 +932,13 @@ function TimelinePage() {
|
|||||||
children: event.type === "birth" ? `出生于 ${event.member.birthPlace || event.member.ancestralHome || "未知地点"}` : `享年 ${event.year - Number.parseInt(event.member.birthDate?.substring(0, 4) || "0")} 岁`
|
children: event.type === "birth" ? `出生于 ${event.member.birthPlace || event.member.ancestralHome || "未知地点"}` : `享年 ${event.year - Number.parseInt(event.member.birthDate?.substring(0, 4) || "0")} 岁`
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 120,
|
lineNumber: 118,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 103,
|
lineNumber: 102,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
@@ -952,7 +952,7 @@ function TimelinePage() {
|
|||||||
children: "暂无时间记录。请完善成员的出生日期信息。"
|
children: "暂无时间记录。请完善成员的出生日期信息。"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 130,
|
lineNumber: 128,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
@@ -989,12 +989,12 @@ function TimelinePage() {
|
|||||||
children: "迁徙记录 (Records)"
|
children: "迁徙记录 (Records)"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 141,
|
lineNumber: 139,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 140,
|
lineNumber: 138,
|
||||||
columnNumber: 17
|
columnNumber: 17
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
||||||
@@ -1014,7 +1014,7 @@ function TimelinePage() {
|
|||||||
children: mig.year ? `${mig.year}年` : "未知年代"
|
children: mig.year ? `${mig.year}年` : "未知年代"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 149,
|
lineNumber: 147,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -1025,13 +1025,13 @@ function TimelinePage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 152,
|
lineNumber: 150,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 148,
|
lineNumber: 146,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1045,7 +1045,7 @@ function TimelinePage() {
|
|||||||
children: "迁出地"
|
children: "迁出地"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 156,
|
lineNumber: 154,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1053,7 +1053,7 @@ function TimelinePage() {
|
|||||||
children: mig.from
|
children: mig.from
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 157,
|
lineNumber: 155,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1061,20 +1061,20 @@ function TimelinePage() {
|
|||||||
children: mig.father.fullName
|
children: mig.father.fullName
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 158,
|
lineNumber: 156,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 155,
|
lineNumber: 153,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$right$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowRight$3e$__["ArrowRight"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$right$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowRight$3e$__["ArrowRight"], {
|
||||||
className: "text-muted-foreground"
|
className: "text-muted-foreground"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 160,
|
lineNumber: 158,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1085,7 +1085,7 @@ function TimelinePage() {
|
|||||||
children: "迁入地"
|
children: "迁入地"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 162,
|
lineNumber: 160,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1093,7 +1093,7 @@ function TimelinePage() {
|
|||||||
children: mig.to
|
children: mig.to
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 163,
|
lineNumber: 161,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -1101,25 +1101,25 @@ function TimelinePage() {
|
|||||||
children: mig.person.fullName
|
children: mig.person.fullName
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 164,
|
lineNumber: 162,
|
||||||
columnNumber: 31
|
columnNumber: 31
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 161,
|
lineNumber: 159,
|
||||||
columnNumber: 29
|
columnNumber: 29
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 154,
|
lineNumber: 152,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, idx, true, {
|
}, idx, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 147,
|
lineNumber: 145,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this)),
|
}, this)),
|
||||||
migrations.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
migrations.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -1128,36 +1128,36 @@ function TimelinePage() {
|
|||||||
"暂无迁徙记录。",
|
"暂无迁徙记录。",
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 172,
|
lineNumber: 170,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this),
|
}, this),
|
||||||
"系统会自动分析父子代之间的籍贯/出生地差异来生成迁徙路径。"
|
"系统会自动分析父子代之间的籍贯/出生地差异来生成迁徙路径。"
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 170,
|
lineNumber: 168,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 145,
|
lineNumber: 143,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 144,
|
lineNumber: 142,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 143,
|
lineNumber: 141,
|
||||||
columnNumber: 17
|
columnNumber: 17
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 139,
|
lineNumber: 137,
|
||||||
columnNumber: 15
|
columnNumber: 15
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], {
|
||||||
@@ -1169,7 +1169,7 @@ function TimelinePage() {
|
|||||||
className: "h-16 w-16 mb-4 opacity-20"
|
className: "h-16 w-16 mb-4 opacity-20"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 183,
|
lineNumber: 181,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -1178,36 +1178,36 @@ function TimelinePage() {
|
|||||||
"地图可视化需要地理编码服务支持。",
|
"地图可视化需要地理编码服务支持。",
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 186,
|
lineNumber: 184,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
"当前版本仅支持列表展示迁徙路径。"
|
"当前版本仅支持列表展示迁徙路径。"
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 184,
|
lineNumber: 182,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 182,
|
lineNumber: 180,
|
||||||
columnNumber: 17
|
columnNumber: 17
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 181,
|
lineNumber: 179,
|
||||||
columnNumber: 15
|
columnNumber: 15
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 138,
|
lineNumber: 136,
|
||||||
columnNumber: 13
|
columnNumber: 13
|
||||||
}, this)
|
}, this)
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||||
lineNumber: 137,
|
lineNumber: 135,
|
||||||
columnNumber: 11
|
columnNumber: 11
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,913 @@
|
|||||||
|
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"cn",
|
||||||
|
()=>cn
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$tailwind$2d$merge$40$2$2e$6$2e$0$2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function cn(...inputs) {
|
||||||
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$tailwind$2d$merge$40$2$2e$6$2e$0$2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["twMerge"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["clsx"])(inputs));
|
||||||
|
}
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Button",
|
||||||
|
()=>Button,
|
||||||
|
"buttonVariants",
|
||||||
|
()=>buttonVariants
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
const buttonVariants = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cva"])("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
|
||||||
|
variants: {
|
||||||
|
variant: {
|
||||||
|
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
||||||
|
destructive: 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
||||||
|
outline: 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
|
||||||
|
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
||||||
|
ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
|
||||||
|
link: 'text-primary underline-offset-4 hover:underline'
|
||||||
|
},
|
||||||
|
size: {
|
||||||
|
default: 'h-9 px-4 py-2 has-[>svg]:px-3',
|
||||||
|
sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',
|
||||||
|
lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',
|
||||||
|
icon: 'size-9',
|
||||||
|
'icon-sm': 'size-8',
|
||||||
|
'icon-lg': 'size-10'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
defaultVariants: {
|
||||||
|
variant: 'default',
|
||||||
|
size: 'default'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function Button({ className, variant, size, asChild = false, ...props }) {
|
||||||
|
const Comp = asChild ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Slot"] : 'button';
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(Comp, {
|
||||||
|
"data-slot": "button",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])(buttonVariants({
|
||||||
|
variant,
|
||||||
|
size,
|
||||||
|
className
|
||||||
|
})),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx",
|
||||||
|
lineNumber: 52,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c = Button;
|
||||||
|
;
|
||||||
|
var _c;
|
||||||
|
__turbopack_context__.k.register(_c, "Button");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Input",
|
||||||
|
()=>Input
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function Input({ className, type, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
||||||
|
type: type,
|
||||||
|
"data-slot": "input",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx",
|
||||||
|
lineNumber: 7,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c = Input;
|
||||||
|
;
|
||||||
|
var _c;
|
||||||
|
__turbopack_context__.k.register(_c, "Input");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Avatar",
|
||||||
|
()=>Avatar,
|
||||||
|
"AvatarFallback",
|
||||||
|
()=>AvatarFallback,
|
||||||
|
"AvatarImage",
|
||||||
|
()=>AvatarImage
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-avatar@1.1.2_@types+react-dom@19.2.3_@types+react@19.2.6__@types+react@_3ee3dafa662d71951c1a3d5b289c96d1/node_modules/@radix-ui/react-avatar/dist/index.mjs [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-client] (ecmascript)");
|
||||||
|
'use client';
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function Avatar({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Root"], {
|
||||||
|
"data-slot": "avatar",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('relative flex size-8 shrink-0 overflow-hidden rounded-full', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx",
|
||||||
|
lineNumber: 13,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c = Avatar;
|
||||||
|
function AvatarImage({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Image"], {
|
||||||
|
"data-slot": "avatar-image",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('aspect-square size-full', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx",
|
||||||
|
lineNumber: 29,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c1 = AvatarImage;
|
||||||
|
function AvatarFallback({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$avatar$40$1$2e$1$2e$2_$40$types$2b$react$2d$dom$40$19$2e$2$2e$3_$40$types$2b$react$40$19$2e$2$2e$6_$5f40$types$2b$react$40$_3ee3dafa662d71951c1a3d5b289c96d1$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$avatar$2f$dist$2f$index$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fallback"], {
|
||||||
|
"data-slot": "avatar-fallback",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('bg-muted flex size-full items-center justify-center rounded-full', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx",
|
||||||
|
lineNumber: 42,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c2 = AvatarFallback;
|
||||||
|
;
|
||||||
|
var _c, _c1, _c2;
|
||||||
|
__turbopack_context__.k.register(_c, "Avatar");
|
||||||
|
__turbopack_context__.k.register(_c1, "AvatarImage");
|
||||||
|
__turbopack_context__.k.register(_c2, "AvatarFallback");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"SiteHeader",
|
||||||
|
()=>SiteHeader
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript) <export default as BookOpen>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-client] (ecmascript) <export default as Search>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Bell$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/bell.js [app-client] (ecmascript) <export default as Bell>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Settings$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/settings.js [app-client] (ecmascript) <export default as Settings>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function SiteHeader() {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "mr-8 flex items-center gap-2",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex h-8 w-8 items-center justify-center rounded bg-primary text-primary-foreground",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__["BookOpen"], {
|
||||||
|
className: "h-5 w-5"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 13,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 12,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-xl font-serif font-bold tracking-tight",
|
||||||
|
children: "华夏谱 (HuaXiaPu)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 15,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 11,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("nav", {
|
||||||
|
className: "hidden md:flex items-center gap-6 text-sm font-medium text-muted-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/",
|
||||||
|
className: "transition-colors hover:text-foreground data-[active=true]:text-foreground data-[active=true]:font-semibold",
|
||||||
|
children: "总览 (Overview)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 19,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/tree",
|
||||||
|
className: "transition-colors hover:text-foreground",
|
||||||
|
children: "族谱 (Tree)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 25,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/members",
|
||||||
|
className: "transition-colors hover:text-foreground",
|
||||||
|
children: "成员 (Members)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 28,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/timeline",
|
||||||
|
className: "transition-colors hover:text-foreground",
|
||||||
|
children: "大事记 (Timeline)"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 31,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 18,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "ml-auto flex items-center gap-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "relative hidden sm:block",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__["Search"], {
|
||||||
|
className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 38,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
||||||
|
type: "search",
|
||||||
|
placeholder: "搜索成员...",
|
||||||
|
className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 39,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 37,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
variant: "ghost",
|
||||||
|
size: "icon",
|
||||||
|
className: "text-muted-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bell$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Bell$3e$__["Bell"], {
|
||||||
|
className: "h-5 w-5"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 47,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "sr-only",
|
||||||
|
children: "Notifications"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 48,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 46,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/settings",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
variant: "ghost",
|
||||||
|
size: "icon",
|
||||||
|
className: "text-muted-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Settings$3e$__["Settings"], {
|
||||||
|
className: "h-5 w-5"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 53,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "sr-only",
|
||||||
|
children: "Settings"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 54,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 52,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 51,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Avatar"], {
|
||||||
|
className: "h-8 w-8 border border-border",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarImage"], {
|
||||||
|
src: "/placeholder-user.jpg",
|
||||||
|
alt: "User"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 59,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
||||||
|
children: "李"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 60,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 58,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 36,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 10,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||||
|
lineNumber: 9,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c = SiteHeader;
|
||||||
|
var _c;
|
||||||
|
__turbopack_context__.k.register(_c, "SiteHeader");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"Card",
|
||||||
|
()=>Card,
|
||||||
|
"CardAction",
|
||||||
|
()=>CardAction,
|
||||||
|
"CardContent",
|
||||||
|
()=>CardContent,
|
||||||
|
"CardDescription",
|
||||||
|
()=>CardDescription,
|
||||||
|
"CardFooter",
|
||||||
|
()=>CardFooter,
|
||||||
|
"CardHeader",
|
||||||
|
()=>CardHeader,
|
||||||
|
"CardTitle",
|
||||||
|
()=>CardTitle
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function Card({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 7,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c = Card;
|
||||||
|
function CardHeader({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-header",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 20,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c1 = CardHeader;
|
||||||
|
function CardTitle({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-title",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('leading-none font-semibold', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 33,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c2 = CardTitle;
|
||||||
|
function CardDescription({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-description",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('text-muted-foreground text-sm', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 43,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c3 = CardDescription;
|
||||||
|
function CardAction({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-action",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 53,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c4 = CardAction;
|
||||||
|
function CardContent({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-content",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('px-6', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 66,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c5 = CardContent;
|
||||||
|
function CardFooter({ className, ...props }) {
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
"data-slot": "card-footer",
|
||||||
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('flex items-center px-6 [.border-t]:pt-6', className),
|
||||||
|
...props
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
||||||
|
lineNumber: 76,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_c6 = CardFooter;
|
||||||
|
;
|
||||||
|
var _c, _c1, _c2, _c3, _c4, _c5, _c6;
|
||||||
|
__turbopack_context__.k.register(_c, "Card");
|
||||||
|
__turbopack_context__.k.register(_c1, "CardHeader");
|
||||||
|
__turbopack_context__.k.register(_c2, "CardTitle");
|
||||||
|
__turbopack_context__.k.register(_c3, "CardDescription");
|
||||||
|
__turbopack_context__.k.register(_c4, "CardAction");
|
||||||
|
__turbopack_context__.k.register(_c5, "CardContent");
|
||||||
|
__turbopack_context__.k.register(_c6, "CardFooter");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"AvatarDisplay",
|
||||||
|
()=>AvatarDisplay
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
var _s = __turbopack_context__.k.signature();
|
||||||
|
"use client";
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function AvatarDisplay({ imageId, fallbackUrl, fallbackText, className }) {
|
||||||
|
_s();
|
||||||
|
const [blobUrl, setBlobUrl] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(undefined);
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({
|
||||||
|
"AvatarDisplay.useEffect": ()=>{
|
||||||
|
if (imageId) {
|
||||||
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].images.get(imageId).then({
|
||||||
|
"AvatarDisplay.useEffect": (image)=>{
|
||||||
|
if (image) {
|
||||||
|
const url = URL.createObjectURL(image.blob);
|
||||||
|
setBlobUrl(url);
|
||||||
|
return ({
|
||||||
|
"AvatarDisplay.useEffect": ()=>URL.revokeObjectURL(url)
|
||||||
|
})["AvatarDisplay.useEffect"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}["AvatarDisplay.useEffect"]);
|
||||||
|
} else {
|
||||||
|
setBlobUrl(undefined);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}["AvatarDisplay.useEffect"], [
|
||||||
|
imageId
|
||||||
|
]);
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Avatar"], {
|
||||||
|
className: className,
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarImage"], {
|
||||||
|
src: blobUrl || fallbackUrl || "/placeholder.svg"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx",
|
||||||
|
lineNumber: 33,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
||||||
|
className: "text-lg font-serif bg-muted",
|
||||||
|
children: fallbackText
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx",
|
||||||
|
lineNumber: 34,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx",
|
||||||
|
lineNumber: 32,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_s(AvatarDisplay, "20rOO6hDZiS1NqKLpU53DN5jla0=");
|
||||||
|
_c = AvatarDisplay;
|
||||||
|
var _c;
|
||||||
|
__turbopack_context__.k.register(_c, "AvatarDisplay");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>MembersPage
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/input.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/search.js [app-client] (ecmascript) <export default as Search>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-client] (ecmascript) <export default as Plus>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/filter.js [app-client] (ecmascript) <export default as Filter>");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-client] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2d$display$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar-display.tsx [app-client] (ecmascript)");
|
||||||
|
;
|
||||||
|
var _s = __turbopack_context__.k.signature();
|
||||||
|
"use client";
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function MembersPage() {
|
||||||
|
_s();
|
||||||
|
const { treeData, searchResults, searchMembers } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useFamily"])();
|
||||||
|
const [query, setQuery] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
||||||
|
const displayMembers = query ? searchResults : Object.values(treeData.members).sort((a, b)=>a.generation - b.generation || (a.birthDate || "").localeCompare(b.birthDate || ""));
|
||||||
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "min-h-screen bg-background flex flex-col font-sans",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$site$2d$header$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["SiteHeader"], {}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 26,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
||||||
|
className: "container mx-auto py-8 px-4 md:px-6 flex-1",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex flex-col md:flex-row justify-between items-center mb-8 gap-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", {
|
||||||
|
className: "text-3xl font-serif font-bold",
|
||||||
|
children: "家族成员列表"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 29,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex items-center gap-2 w-full md:w-auto",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "relative flex-1 md:w-80",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__["Search"], {
|
||||||
|
className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 32,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
||||||
|
type: "search",
|
||||||
|
placeholder: "搜索姓名、字号...",
|
||||||
|
className: "pl-9",
|
||||||
|
value: query,
|
||||||
|
onChange: (e)=>{
|
||||||
|
setQuery(e.target.value);
|
||||||
|
searchMembers(e.target.value);
|
||||||
|
}
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 33,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 31,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
variant: "outline",
|
||||||
|
size: "icon",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__["Filter"], {
|
||||||
|
className: "h-4 w-4"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 45,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 44,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: "/members/new",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
||||||
|
className: "gap-2 bg-primary text-primary-foreground",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__["Plus"], {
|
||||||
|
className: "h-4 w-4"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 49,
|
||||||
|
columnNumber: 17
|
||||||
|
}, this),
|
||||||
|
"新增成员"
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 48,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 47,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 30,
|
||||||
|
columnNumber: 11
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 28,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
||||||
|
children: displayMembers.map((member)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
||||||
|
href: `/members/${member.id}`,
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], {
|
||||||
|
className: "hover:border-primary transition-colors cursor-pointer h-full",
|
||||||
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
||||||
|
className: "p-6 flex items-start gap-4",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2d$display$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarDisplay"], {
|
||||||
|
imageId: member.avatarImageId,
|
||||||
|
fallbackUrl: member.avatarUrl,
|
||||||
|
fallbackText: member.surname,
|
||||||
|
className: "h-16 w-16 border-2 border-border"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 61,
|
||||||
|
columnNumber: 19
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex-1 min-w-0",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "flex items-baseline justify-between",
|
||||||
|
children: [
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
||||||
|
className: "text-xl font-bold font-serif truncate",
|
||||||
|
children: [
|
||||||
|
member.fullName,
|
||||||
|
member.courtesyName && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-sm font-normal text-muted-foreground ml-2",
|
||||||
|
children: [
|
||||||
|
"字 ",
|
||||||
|
member.courtesyName
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 72,
|
||||||
|
columnNumber: 27
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 69,
|
||||||
|
columnNumber: 23
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-xs font-mono bg-muted px-1.5 py-0.5 rounded text-muted-foreground whitespace-nowrap",
|
||||||
|
children: [
|
||||||
|
member.generation,
|
||||||
|
"世"
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 77,
|
||||||
|
columnNumber: 23
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 68,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
|
className: "text-sm text-muted-foreground mt-1 truncate",
|
||||||
|
children: member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 81,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
|
className: "text-sm text-muted-foreground truncate",
|
||||||
|
children: member.ancestralHome || "籍贯未知"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 84,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this),
|
||||||
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
|
className: "mt-3 flex flex-wrap gap-1",
|
||||||
|
children: [
|
||||||
|
member.deathDate && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-[10px] bg-neutral-100 text-neutral-600 px-1.5 py-0.5 rounded border border-neutral-200",
|
||||||
|
children: "已故"
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 87,
|
||||||
|
columnNumber: 25
|
||||||
|
}, this),
|
||||||
|
member.tags?.map((tag)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
|
className: "text-[10px] bg-primary/10 text-primary px-1.5 py-0.5 rounded border border-primary/20",
|
||||||
|
children: tag
|
||||||
|
}, tag, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 92,
|
||||||
|
columnNumber: 25
|
||||||
|
}, this))
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 85,
|
||||||
|
columnNumber: 21
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 67,
|
||||||
|
columnNumber: 19
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 60,
|
||||||
|
columnNumber: 17
|
||||||
|
}, this)
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 59,
|
||||||
|
columnNumber: 15
|
||||||
|
}, this)
|
||||||
|
}, member.id, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 58,
|
||||||
|
columnNumber: 13
|
||||||
|
}, this))
|
||||||
|
}, void 0, false, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 56,
|
||||||
|
columnNumber: 9
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 27,
|
||||||
|
columnNumber: 7
|
||||||
|
}, this)
|
||||||
|
]
|
||||||
|
}, void 0, true, {
|
||||||
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
|
lineNumber: 25,
|
||||||
|
columnNumber: 5
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
_s(MembersPage, "B+BUbloqoHcpdx38DGjFFOshcwk=", false, function() {
|
||||||
|
return [
|
||||||
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useFamily"]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
_c = MembersPage;
|
||||||
|
var _c;
|
||||||
|
__turbopack_context__.k.register(_c, "MembersPage");
|
||||||
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
||||||
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
//# sourceMappingURL=Documents_go-new_chinese-family-tree_72899ea7._.js.map
|
||||||
File diff suppressed because one or more lines are too long
+28
@@ -1013,6 +1013,10 @@
|
|||||||
height: calc(var(--spacing) * 16);
|
height: calc(var(--spacing) * 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.h-20 {
|
||||||
|
height: calc(var(--spacing) * 20);
|
||||||
|
}
|
||||||
|
|
||||||
.h-28 {
|
.h-28 {
|
||||||
height: calc(var(--spacing) * 28);
|
height: calc(var(--spacing) * 28);
|
||||||
}
|
}
|
||||||
@@ -1157,6 +1161,10 @@
|
|||||||
width: calc(var(--spacing) * 5);
|
width: calc(var(--spacing) * 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.w-6 {
|
||||||
|
width: calc(var(--spacing) * 6);
|
||||||
|
}
|
||||||
|
|
||||||
.w-8 {
|
.w-8 {
|
||||||
width: calc(var(--spacing) * 8);
|
width: calc(var(--spacing) * 8);
|
||||||
}
|
}
|
||||||
@@ -1177,6 +1185,10 @@
|
|||||||
width: calc(var(--spacing) * 16);
|
width: calc(var(--spacing) * 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.w-20 {
|
||||||
|
width: calc(var(--spacing) * 20);
|
||||||
|
}
|
||||||
|
|
||||||
.w-28 {
|
.w-28 {
|
||||||
width: calc(var(--spacing) * 28);
|
width: calc(var(--spacing) * 28);
|
||||||
}
|
}
|
||||||
@@ -1827,6 +1839,16 @@
|
|||||||
border-color: var(--input);
|
border-color: var(--input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-muted-foreground\/50 {
|
||||||
|
border-color: var(--muted-foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports (color: color-mix(in lab, red, red)) {
|
||||||
|
.border-muted-foreground\/50 {
|
||||||
|
border-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.border-neutral-200 {
|
.border-neutral-200 {
|
||||||
border-color: var(--color-neutral-200);
|
border-color: var(--color-neutral-200);
|
||||||
}
|
}
|
||||||
@@ -3328,6 +3350,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (hover: hover) {
|
||||||
|
.hover\:text-destructive:hover {
|
||||||
|
color: var(--destructive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media (hover: hover) {
|
@media (hover: hover) {
|
||||||
.hover\:text-foreground:hover {
|
.hover\:text-foreground:hover {
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
|
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
|
||||||
script: typeof document === "object" ? document.currentScript : undefined,
|
script: typeof document === "object" ? document.currentScript : undefined,
|
||||||
chunks: [
|
chunks: [
|
||||||
"static/chunks/Documents_go-new_chinese-family-tree_94938bbd._.js",
|
"static/chunks/Documents_go-new_chinese-family-tree_ecc939d1._.js",
|
||||||
"static/chunks/a0629__pnpm_ca0aa008._.js"
|
"static/chunks/a0629__pnpm_083acf2b._.js"
|
||||||
],
|
],
|
||||||
source: "dynamic"
|
source: "dynamic"
|
||||||
});
|
});
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
script: typeof document === "object" ? document.currentScript : undefined,
|
script: typeof document === "object" ? document.currentScript : undefined,
|
||||||
chunks: [
|
chunks: [
|
||||||
"static/chunks/a0629__pnpm_196bb18e._.js",
|
"static/chunks/a0629__pnpm_196bb18e._.js",
|
||||||
"static/chunks/Documents_go-new_chinese-family-tree_c6c35f37._.js"
|
"static/chunks/Documents_go-new_chinese-family-tree_72899ea7._.js"
|
||||||
],
|
],
|
||||||
source: "dynamic"
|
source: "dynamic"
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -554,7 +554,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
|||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-client] (ecmascript) <export default as Plus>");
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/plus.js [app-client] (ecmascript) <export default as Plus>");
|
||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/filter.js [app-client] (ecmascript) <export default as Filter>");
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$filter$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Filter$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/filter.js [app-client] (ecmascript) <export default as Filter>");
|
||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-client] (ecmascript)");
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/app-dir/link.js [app-client] (ecmascript)");
|
||||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/avatar.tsx [app-client] (ecmascript)");
|
|
||||||
;
|
;
|
||||||
var _s = __turbopack_context__.k.signature();
|
var _s = __turbopack_context__.k.signature();
|
||||||
"use client";
|
"use client";
|
||||||
@@ -566,7 +565,6 @@ var _s = __turbopack_context__.k.signature();
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
|
||||||
function MembersPage() {
|
function MembersPage() {
|
||||||
_s();
|
_s();
|
||||||
const { treeData, searchResults, searchMembers } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useFamily"])();
|
const { treeData, searchResults, searchMembers } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useFamily"])();
|
||||||
@@ -687,26 +685,12 @@ function MembersPage() {
|
|||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
||||||
className: "p-6 flex items-start gap-4",
|
className: "p-6 flex items-start gap-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Avatar"], {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(AvatarDisplay, {
|
||||||
className: "h-16 w-16 border-2 border-border",
|
imageId: member.avatarImageId,
|
||||||
children: [
|
fallbackUrl: member.avatarUrl,
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarImage"], {
|
fallbackText: member.surname,
|
||||||
src: member.avatarUrl || "/placeholder.svg"
|
className: "h-16 w-16 border-2 border-border"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
|
||||||
lineNumber: 61,
|
|
||||||
columnNumber: 21
|
|
||||||
}, this),
|
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$avatar$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
|
||||||
className: "text-lg font-serif bg-muted",
|
|
||||||
children: member.surname
|
|
||||||
}, void 0, false, {
|
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
|
||||||
lineNumber: 62,
|
|
||||||
columnNumber: 21
|
|
||||||
}, this)
|
|
||||||
]
|
|
||||||
}, void 0, true, {
|
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 60,
|
lineNumber: 60,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
@@ -729,13 +713,13 @@ function MembersPage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 69,
|
lineNumber: 71,
|
||||||
columnNumber: 27
|
columnNumber: 27
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 66,
|
lineNumber: 68,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -746,13 +730,13 @@ function MembersPage() {
|
|||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 74,
|
lineNumber: 76,
|
||||||
columnNumber: 23
|
columnNumber: 23
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 65,
|
lineNumber: 67,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -760,7 +744,7 @@ function MembersPage() {
|
|||||||
children: member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"
|
children: member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 78,
|
lineNumber: 80,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
||||||
@@ -768,7 +752,7 @@ function MembersPage() {
|
|||||||
children: member.ancestralHome || "籍贯未知"
|
children: member.ancestralHome || "籍贯未知"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 81,
|
lineNumber: 83,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this),
|
}, this),
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
@@ -779,7 +763,7 @@ function MembersPage() {
|
|||||||
children: "已故"
|
children: "已故"
|
||||||
}, void 0, false, {
|
}, void 0, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 84,
|
lineNumber: 86,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this),
|
}, this),
|
||||||
member.tags?.map((tag)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
member.tags?.map((tag)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
||||||
@@ -787,19 +771,19 @@ function MembersPage() {
|
|||||||
children: tag
|
children: tag
|
||||||
}, tag, false, {
|
}, tag, false, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 89,
|
lineNumber: 91,
|
||||||
columnNumber: 25
|
columnNumber: 25
|
||||||
}, this))
|
}, this))
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 82,
|
lineNumber: 84,
|
||||||
columnNumber: 21
|
columnNumber: 21
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
}, void 0, true, {
|
}, void 0, true, {
|
||||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
fileName: "[project]/Documents/go-new/chinese-family-tree/app/members/page.tsx",
|
||||||
lineNumber: 64,
|
lineNumber: 66,
|
||||||
columnNumber: 19
|
columnNumber: 19
|
||||||
}, this)
|
}, this)
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -202,7 +202,7 @@ function SiteHeader() {
|
|||||||
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
||||||
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
className: "sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
||||||
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "container flex h-16 items-center px-4",
|
className: "container mx-auto flex h-16 items-center px-4",
|
||||||
children: [
|
children: [
|
||||||
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
||||||
className: "mr-8 flex items-center gap-2",
|
className: "mr-8 flex items-center gap-2",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -114,11 +114,13 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
|||||||
class FamilyTreeDB extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"] {
|
class FamilyTreeDB extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"] {
|
||||||
members;
|
members;
|
||||||
settings;
|
settings;
|
||||||
|
images;
|
||||||
constructor(){
|
constructor(){
|
||||||
super("FamilyTreeDB");
|
super("FamilyTreeDB");
|
||||||
this.version(1).stores({
|
this.version(1).stores({
|
||||||
members: "id, fullName, fatherId, motherId, [fatherId+motherId]",
|
members: "id, fullName, fatherId, motherId, [fatherId+motherId]",
|
||||||
settings: "key"
|
settings: "key",
|
||||||
|
images: "id"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1097,6 +1097,10 @@
|
|||||||
height: calc(var(--spacing) * 16);
|
height: calc(var(--spacing) * 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.h-20 {
|
||||||
|
height: calc(var(--spacing) * 20);
|
||||||
|
}
|
||||||
|
|
||||||
.h-28 {
|
.h-28 {
|
||||||
height: calc(var(--spacing) * 28);
|
height: calc(var(--spacing) * 28);
|
||||||
}
|
}
|
||||||
@@ -1241,6 +1245,10 @@
|
|||||||
width: calc(var(--spacing) * 5);
|
width: calc(var(--spacing) * 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.w-6 {
|
||||||
|
width: calc(var(--spacing) * 6);
|
||||||
|
}
|
||||||
|
|
||||||
.w-8 {
|
.w-8 {
|
||||||
width: calc(var(--spacing) * 8);
|
width: calc(var(--spacing) * 8);
|
||||||
}
|
}
|
||||||
@@ -1261,6 +1269,10 @@
|
|||||||
width: calc(var(--spacing) * 16);
|
width: calc(var(--spacing) * 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.w-20 {
|
||||||
|
width: calc(var(--spacing) * 20);
|
||||||
|
}
|
||||||
|
|
||||||
.w-28 {
|
.w-28 {
|
||||||
width: calc(var(--spacing) * 28);
|
width: calc(var(--spacing) * 28);
|
||||||
}
|
}
|
||||||
@@ -1911,6 +1923,16 @@
|
|||||||
border-color: var(--input);
|
border-color: var(--input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-muted-foreground\/50 {
|
||||||
|
border-color: var(--muted-foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports (color: color-mix(in lab, red, red)) {
|
||||||
|
.border-muted-foreground\/50 {
|
||||||
|
border-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.border-neutral-200 {
|
.border-neutral-200 {
|
||||||
border-color: var(--color-neutral-200);
|
border-color: var(--color-neutral-200);
|
||||||
}
|
}
|
||||||
@@ -3412,6 +3434,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (hover: hover) {
|
||||||
|
.hover\:text-destructive:hover {
|
||||||
|
color: var(--destructive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media (hover: hover) {
|
@media (hover: hover) {
|
||||||
.hover\:text-foreground:hover {
|
.hover\:text-foreground:hover {
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -8,17 +8,34 @@ import { SiteHeader } from "@/components/site-header"
|
|||||||
import { MemberForm } from "@/components/members/member-form"
|
import { MemberForm } from "@/components/members/member-form"
|
||||||
import { Button } from "@/components/ui/button"
|
import { Button } from "@/components/ui/button"
|
||||||
import { ArrowLeft, Edit, Trash, Share2, Printer } from "lucide-react"
|
import { ArrowLeft, Edit, Trash, Share2, Printer } from "lucide-react"
|
||||||
import { useState } from "react"
|
import { useState, useEffect } from "react"
|
||||||
import type { FamilyMember } from "@/types/family"
|
import type { FamilyMember } from "@/types/family"
|
||||||
|
import { db } from "@/lib/db"
|
||||||
|
|
||||||
export default function MemberProfilePage() {
|
export default function MemberProfilePage() {
|
||||||
const { id } = useParams()
|
const { id } = useParams()
|
||||||
const { getMember, updateMember, deleteMember } = useFamily()
|
const { getMember, updateMember, deleteMember } = useFamily()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const [isEditing, setIsEditing] = useState(false)
|
const [isEditing, setIsEditing] = useState(false)
|
||||||
|
const [avatarBlobUrl, setAvatarBlobUrl] = useState<string | undefined>(undefined)
|
||||||
|
|
||||||
const member = getMember(id as string)
|
const member = getMember(id as string)
|
||||||
|
|
||||||
|
// Load avatar blob if exists
|
||||||
|
useEffect(() => {
|
||||||
|
if (member?.avatarImageId) {
|
||||||
|
db.images.get(member.avatarImageId).then((image) => {
|
||||||
|
if (image) {
|
||||||
|
const url = URL.createObjectURL(image.blob)
|
||||||
|
setAvatarBlobUrl(url)
|
||||||
|
return () => URL.revokeObjectURL(url)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
setAvatarBlobUrl(undefined)
|
||||||
|
}
|
||||||
|
}, [member?.avatarImageId])
|
||||||
|
|
||||||
if (!member) {
|
if (!member) {
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen flex flex-col bg-background">
|
<div className="min-h-screen flex flex-col bg-background">
|
||||||
@@ -47,7 +64,7 @@ export default function MemberProfilePage() {
|
|||||||
return (
|
return (
|
||||||
<div className="min-h-screen flex flex-col bg-background">
|
<div className="min-h-screen flex flex-col bg-background">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<div className="container py-8">
|
<div className="container mx-auto py-8">
|
||||||
<div className="mb-6 flex items-center gap-2">
|
<div className="mb-6 flex items-center gap-2">
|
||||||
<Button variant="ghost" onClick={() => setIsEditing(false)}>
|
<Button variant="ghost" onClick={() => setIsEditing(false)}>
|
||||||
<ArrowLeft className="mr-2 h-4 w-4" /> 返回
|
<ArrowLeft className="mr-2 h-4 w-4" /> 返回
|
||||||
@@ -63,14 +80,14 @@ export default function MemberProfilePage() {
|
|||||||
return (
|
return (
|
||||||
<div className="min-h-screen flex flex-col bg-background">
|
<div className="min-h-screen flex flex-col bg-background">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<main className="container py-8 px-4 md:px-6">
|
<main className="container mx-auto py-8 px-4 md:px-6">
|
||||||
{/* Header Section */}
|
{/* Header Section */}
|
||||||
<div className="flex flex-col md:flex-row justify-between items-start gap-6 mb-8 border-b border-border pb-8">
|
<div className="flex flex-col md:flex-row justify-between items-start gap-6 mb-8 border-b border-border pb-8">
|
||||||
<div className="flex items-start gap-6">
|
<div className="flex items-start gap-6">
|
||||||
<div className="h-32 w-32 rounded-lg bg-muted flex items-center justify-center border-2 border-primary/20 overflow-hidden">
|
<div className="h-32 w-32 rounded-lg bg-muted flex items-center justify-center border-2 border-primary/20 overflow-hidden">
|
||||||
{member.avatarUrl ? (
|
{avatarBlobUrl || member.avatarUrl ? (
|
||||||
<img
|
<img
|
||||||
src={member.avatarUrl || "/placeholder.svg"}
|
src={avatarBlobUrl || member.avatarUrl || "/placeholder.svg"}
|
||||||
alt={member.fullName}
|
alt={member.fullName}
|
||||||
className="h-full w-full object-cover"
|
className="h-full w-full object-cover"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default function NewMemberPage() {
|
|||||||
return (
|
return (
|
||||||
<div className="min-h-screen flex flex-col bg-background">
|
<div className="min-h-screen flex flex-col bg-background">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<div className="container py-8">
|
<div className="container mx-auto py-8">
|
||||||
<div className="mb-6 flex items-center gap-2">
|
<div className="mb-6 flex items-center gap-2">
|
||||||
<Button variant="ghost" onClick={() => router.back()}>
|
<Button variant="ghost" onClick={() => router.back()}>
|
||||||
<ArrowLeft className="mr-2 h-4 w-4" /> 返回
|
<ArrowLeft className="mr-2 h-4 w-4" /> 返回
|
||||||
|
|||||||
+11
-8
@@ -9,6 +9,7 @@ import { Card, CardContent } from "@/components/ui/card"
|
|||||||
import { Search, Plus, Filter } from "lucide-react"
|
import { Search, Plus, Filter } from "lucide-react"
|
||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
||||||
|
import { AvatarDisplay } from "@/components/ui/avatar-display"
|
||||||
|
|
||||||
export default function MembersPage() {
|
export default function MembersPage() {
|
||||||
const { treeData, searchResults, searchMembers } = useFamily()
|
const { treeData, searchResults, searchMembers } = useFamily()
|
||||||
@@ -17,13 +18,13 @@ export default function MembersPage() {
|
|||||||
const displayMembers = query
|
const displayMembers = query
|
||||||
? searchResults
|
? searchResults
|
||||||
: Object.values(treeData.members).sort(
|
: Object.values(treeData.members).sort(
|
||||||
(a, b) => a.generation - b.generation || (a.birthDate || "").localeCompare(b.birthDate || ""),
|
(a, b) => a.generation - b.generation || (a.birthDate || "").localeCompare(b.birthDate || ""),
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-background flex flex-col font-sans">
|
<div className="min-h-screen bg-background flex flex-col font-sans">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<main className="container py-8 px-4 md:px-6 flex-1">
|
<main className="container mx-auto py-8 px-4 md:px-6 flex-1">
|
||||||
<div className="flex flex-col md:flex-row justify-between items-center mb-8 gap-4">
|
<div className="flex flex-col md:flex-row justify-between items-center mb-8 gap-4">
|
||||||
<h1 className="text-3xl font-serif font-bold">家族成员列表</h1>
|
<h1 className="text-3xl font-serif font-bold">家族成员列表</h1>
|
||||||
<div className="flex items-center gap-2 w-full md:w-auto">
|
<div className="flex items-center gap-2 w-full md:w-auto">
|
||||||
@@ -57,10 +58,12 @@ export default function MembersPage() {
|
|||||||
<Link href={`/members/${member.id}`} key={member.id}>
|
<Link href={`/members/${member.id}`} key={member.id}>
|
||||||
<Card className="hover:border-primary transition-colors cursor-pointer h-full">
|
<Card className="hover:border-primary transition-colors cursor-pointer h-full">
|
||||||
<CardContent className="p-6 flex items-start gap-4">
|
<CardContent className="p-6 flex items-start gap-4">
|
||||||
<Avatar className="h-16 w-16 border-2 border-border">
|
<AvatarDisplay
|
||||||
<AvatarImage src={member.avatarUrl || "/placeholder.svg"} />
|
imageId={member.avatarImageId}
|
||||||
<AvatarFallback className="text-lg font-serif bg-muted">{member.surname}</AvatarFallback>
|
fallbackUrl={member.avatarUrl}
|
||||||
</Avatar>
|
fallbackText={member.surname}
|
||||||
|
className="h-16 w-16 border-2 border-border"
|
||||||
|
/>
|
||||||
<div className="flex-1 min-w-0">
|
<div className="flex-1 min-w-0">
|
||||||
<div className="flex items-baseline justify-between">
|
<div className="flex items-baseline justify-between">
|
||||||
<h3 className="text-xl font-bold font-serif truncate">
|
<h3 className="text-xl font-bold font-serif truncate">
|
||||||
@@ -80,7 +83,7 @@ export default function MembersPage() {
|
|||||||
</p>
|
</p>
|
||||||
<p className="text-sm text-muted-foreground truncate">{member.ancestralHome || "籍贯未知"}</p>
|
<p className="text-sm text-muted-foreground truncate">{member.ancestralHome || "籍贯未知"}</p>
|
||||||
<div className="mt-3 flex flex-wrap gap-1">
|
<div className="mt-3 flex flex-wrap gap-1">
|
||||||
{member.lifeStatus === "deceased" && (
|
{member.deathDate && (
|
||||||
<span className="text-[10px] bg-neutral-100 text-neutral-600 px-1.5 py-0.5 rounded border border-neutral-200">
|
<span className="text-[10px] bg-neutral-100 text-neutral-600 px-1.5 py-0.5 rounded border border-neutral-200">
|
||||||
已故
|
已故
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ export default function DashboardPage() {
|
|||||||
<div className="flex min-h-screen flex-col bg-background font-sans">
|
<div className="flex min-h-screen flex-col bg-background font-sans">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
|
|
||||||
<main className="flex-1 container py-8 px-4 md:px-6">
|
<main className="flex-1 container mx-auto py-8 px-4 md:px-6">
|
||||||
<div className="flex flex-col md:flex-row items-start md:items-center justify-between gap-4 mb-8">
|
<div className="flex flex-col md:flex-row items-start md:items-center justify-between gap-4 mb-8">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-3xl font-serif font-bold text-foreground">李氏家族族谱</h1>
|
<h1 className="text-3xl font-serif font-bold text-foreground">李氏家族族谱</h1>
|
||||||
|
|||||||
+10
-18
@@ -9,23 +9,14 @@ import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
|||||||
import { useRef, useState } from "react"
|
import { useRef, useState } from "react"
|
||||||
|
|
||||||
export default function SettingsPage() {
|
export default function SettingsPage() {
|
||||||
const { treeData, addMember } = useFamily() // Actually need setTreeData but I didn't expose it directly. I should have.
|
const { treeData, loadData, resetData } = useFamily()
|
||||||
// Wait, I didn't expose setTreeData in the context interface.
|
|
||||||
// I need to update the context to allow full data replacement or add a "loadData" function.
|
|
||||||
// Let me quickly check context/family-context.tsx
|
|
||||||
// ... It has 'addMember', 'updateMember', 'deleteMember'. No 'loadData'.
|
|
||||||
// I will assume I can update the context file first.
|
|
||||||
|
|
||||||
const [importStatus, setImportStatus] = useState<string>("")
|
const [importStatus, setImportStatus] = useState<string>("")
|
||||||
const fileInputRef = useRef<HTMLInputElement>(null)
|
const fileInputRef = useRef<HTMLInputElement>(null)
|
||||||
|
|
||||||
// Since I can't easily modify the context interface without a separate edit step which I should do properly,
|
|
||||||
// I will modify the context file in this same block to add 'loadData'.
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-background flex flex-col font-sans">
|
<div className="min-h-screen bg-background flex flex-col font-sans">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<main className="container py-8 px-4 md:px-6 flex-1 max-w-3xl">
|
<main className="container mx-auto py-8 px-4 md:px-6 flex-1 max-w-3xl">
|
||||||
<h1 className="text-3xl font-serif font-bold mb-8">系统设置 (Settings)</h1>
|
<h1 className="text-3xl font-serif font-bold mb-8">系统设置 (Settings)</h1>
|
||||||
|
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
@@ -80,19 +71,19 @@ export default function SettingsPage() {
|
|||||||
if (!file) return
|
if (!file) return
|
||||||
|
|
||||||
const reader = new FileReader()
|
const reader = new FileReader()
|
||||||
reader.onload = (event) => {
|
reader.onload = async (event) => {
|
||||||
try {
|
try {
|
||||||
const json = JSON.parse(event.target?.result as string)
|
const json = JSON.parse(event.target?.result as string)
|
||||||
if (json.members && json.rootId) {
|
if (json.members && json.rootId) {
|
||||||
// Ideally call loadData(json) here
|
await loadData(json)
|
||||||
// Since I'm in the component, I'll dispatch a custom event or use the context method I'm about to add
|
|
||||||
const event = new CustomEvent("family-data-import", { detail: json })
|
|
||||||
window.dispatchEvent(event)
|
|
||||||
setImportStatus("导入成功!")
|
setImportStatus("导入成功!")
|
||||||
|
// Clear input so same file can be selected again if needed
|
||||||
|
if (fileInputRef.current) fileInputRef.current.value = ""
|
||||||
} else {
|
} else {
|
||||||
setImportStatus("错误:无效的数据格式")
|
setImportStatus("错误:无效的数据格式")
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
console.error(err)
|
||||||
setImportStatus("错误:无法解析文件")
|
setImportStatus("错误:无法解析文件")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -117,9 +108,10 @@ export default function SettingsPage() {
|
|||||||
<CardContent>
|
<CardContent>
|
||||||
<Button
|
<Button
|
||||||
variant="destructive"
|
variant="destructive"
|
||||||
onClick={() => {
|
onClick={async () => {
|
||||||
if (confirm("确定要重置吗?所有更改将丢失。")) {
|
if (confirm("确定要重置吗?所有更改将丢失。")) {
|
||||||
window.location.reload() // Simple way to reset state since it's in-memory
|
await resetData()
|
||||||
|
alert("数据已重置为演示状态。")
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default function TimelinePage() {
|
|||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-background flex flex-col font-sans">
|
<div className="min-h-screen bg-background flex flex-col font-sans">
|
||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<main className="container py-8 px-4 md:px-6 flex-1">
|
<main className="container mx-auto py-8 px-4 md:px-6 flex-1">
|
||||||
<div className="mb-8">
|
<div className="mb-8">
|
||||||
<h1 className="text-3xl font-serif font-bold mb-2">家族历史 (History)</h1>
|
<h1 className="text-3xl font-serif font-bold mb-2">家族历史 (History)</h1>
|
||||||
<p className="text-muted-foreground">纵览家族发展的时间脉络与迁徙足迹。</p>
|
<p className="text-muted-foreground">纵览家族发展的时间脉络与迁徙足迹。</p>
|
||||||
@@ -89,9 +89,8 @@ export default function TimelinePage() {
|
|||||||
<div key={idx} className="relative pl-8 md:pl-12 group">
|
<div key={idx} className="relative pl-8 md:pl-12 group">
|
||||||
{/* Dot */}
|
{/* Dot */}
|
||||||
<div
|
<div
|
||||||
className={`absolute -left-[9px] top-1 h-4 w-4 rounded-full border-2 border-background transition-colors group-hover:scale-110 ${
|
className={`absolute -left-[9px] top-1 h-4 w-4 rounded-full border-2 border-background transition-colors group-hover:scale-110 ${event.type === "birth" ? "bg-primary" : "bg-neutral-400"
|
||||||
event.type === "birth" ? "bg-primary" : "bg-neutral-400"
|
}`}
|
||||||
}`}
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* Year Label (Mobile vs Desktop) */}
|
{/* Year Label (Mobile vs Desktop) */}
|
||||||
@@ -103,9 +102,8 @@ export default function TimelinePage() {
|
|||||||
<div className="bg-card border border-border rounded-lg p-4 shadow-sm transition-all hover:shadow-md hover:border-primary/50 max-w-xl">
|
<div className="bg-card border border-border rounded-lg p-4 shadow-sm transition-all hover:shadow-md hover:border-primary/50 max-w-xl">
|
||||||
<div className="flex items-center justify-between mb-1">
|
<div className="flex items-center justify-between mb-1">
|
||||||
<span
|
<span
|
||||||
className={`text-xs font-bold px-2 py-0.5 rounded-full ${
|
className={`text-xs font-bold px-2 py-0.5 rounded-full ${event.type === "birth" ? "bg-primary/10 text-primary" : "bg-neutral-100 text-neutral-500"
|
||||||
event.type === "birth" ? "bg-primary/10 text-primary" : "bg-neutral-100 text-neutral-500"
|
}`}
|
||||||
}`}
|
|
||||||
>
|
>
|
||||||
{event.type === "birth" ? "诞生" : "逝世"}
|
{event.type === "birth" ? "诞生" : "逝世"}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { Textarea } from "@/components/ui/textarea"
|
|||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
|
||||||
import { CalendarIcon, User, Scroll, Users } from "lucide-react"
|
import { CalendarIcon, User, Scroll, Users } from "lucide-react"
|
||||||
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
|
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
|
||||||
|
import { ImageUpload } from "@/components/ui/image-upload"
|
||||||
|
|
||||||
interface MemberFormProps {
|
interface MemberFormProps {
|
||||||
initialData?: Partial<FamilyMember>
|
initialData?: Partial<FamilyMember>
|
||||||
@@ -75,6 +76,13 @@ export function MemberForm({ initialData, existingMembers = [], onSubmit, onCanc
|
|||||||
</CardTitle>
|
</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="space-y-4">
|
<CardContent className="space-y-4">
|
||||||
|
<div className="flex justify-center mb-4">
|
||||||
|
<ImageUpload
|
||||||
|
value={formData.avatarImageId}
|
||||||
|
onChange={(imageId) => handleChange("avatarImageId", imageId)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="grid grid-cols-2 gap-4">
|
<div className="grid grid-cols-2 gap-4">
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
<Label htmlFor="surname">姓 (Surname)</Label>
|
<Label htmlFor="surname">姓 (Surname)</Label>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
|||||||
export function SiteHeader() {
|
export function SiteHeader() {
|
||||||
return (
|
return (
|
||||||
<header className="sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
|
<header className="sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
|
||||||
<div className="container flex h-16 items-center px-4">
|
<div className="container mx-auto flex h-16 items-center px-4">
|
||||||
<div className="mr-8 flex items-center gap-2">
|
<div className="mr-8 flex items-center gap-2">
|
||||||
<div className="flex h-8 w-8 items-center justify-center rounded bg-primary text-primary-foreground">
|
<div className="flex h-8 w-8 items-center justify-center rounded bg-primary text-primary-foreground">
|
||||||
<BookOpen className="h-5 w-5" />
|
<BookOpen className="h-5 w-5" />
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { useState, useEffect } from "react"
|
||||||
|
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
||||||
|
import { db } from "@/lib/db"
|
||||||
|
|
||||||
|
interface AvatarDisplayProps {
|
||||||
|
imageId?: string
|
||||||
|
fallbackUrl?: string
|
||||||
|
fallbackText?: string
|
||||||
|
className?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export function AvatarDisplay({ imageId, fallbackUrl, fallbackText, className }: AvatarDisplayProps) {
|
||||||
|
const [blobUrl, setBlobUrl] = useState<string | undefined>(undefined)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (imageId) {
|
||||||
|
db.images.get(imageId).then((image) => {
|
||||||
|
if (image) {
|
||||||
|
const url = URL.createObjectURL(image.blob)
|
||||||
|
setBlobUrl(url)
|
||||||
|
return () => URL.revokeObjectURL(url)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
setBlobUrl(undefined)
|
||||||
|
}
|
||||||
|
}, [imageId])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Avatar className={className}>
|
||||||
|
<AvatarImage src={blobUrl || fallbackUrl || "/placeholder.svg"} />
|
||||||
|
<AvatarFallback className="text-lg font-serif bg-muted">{fallbackText}</AvatarFallback>
|
||||||
|
</Avatar>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { useState, useRef, useEffect } from "react"
|
||||||
|
import { Button } from "@/components/ui/button"
|
||||||
|
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
||||||
|
import { Upload, X, Loader2 } from "lucide-react"
|
||||||
|
import { db } from "@/lib/db"
|
||||||
|
import { v4 as uuidv4 } from "uuid"
|
||||||
|
|
||||||
|
interface ImageUploadProps {
|
||||||
|
value?: string // The image ID
|
||||||
|
onChange: (imageId: string | undefined) => void
|
||||||
|
className?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ImageUpload({ value, onChange, className }: ImageUploadProps) {
|
||||||
|
const [previewUrl, setPreviewUrl] = useState<string | undefined>(undefined)
|
||||||
|
const [isLoading, setIsLoading] = useState(false)
|
||||||
|
const fileInputRef = useRef<HTMLInputElement>(null)
|
||||||
|
|
||||||
|
// Load preview if value (imageId) exists
|
||||||
|
useEffect(() => {
|
||||||
|
let objectUrl: string | undefined
|
||||||
|
|
||||||
|
const loadPreview = async () => {
|
||||||
|
if (!value) {
|
||||||
|
setPreviewUrl(undefined)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const image = await db.images.get(value)
|
||||||
|
if (image) {
|
||||||
|
objectUrl = URL.createObjectURL(image.blob)
|
||||||
|
setPreviewUrl(objectUrl)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to load image:", error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
loadPreview()
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
if (objectUrl) URL.revokeObjectURL(objectUrl)
|
||||||
|
}
|
||||||
|
}, [value])
|
||||||
|
|
||||||
|
const handleFileSelect = async (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
|
const file = e.target.files?.[0]
|
||||||
|
if (!file) return
|
||||||
|
|
||||||
|
setIsLoading(true)
|
||||||
|
try {
|
||||||
|
// Basic validation
|
||||||
|
if (!file.type.startsWith("image/")) {
|
||||||
|
alert("请选择图片文件")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file.size > 5 * 1024 * 1024) {
|
||||||
|
alert("图片大小不能超过 5MB")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save to DB
|
||||||
|
const imageId = uuidv4()
|
||||||
|
await db.images.add({
|
||||||
|
id: imageId,
|
||||||
|
blob: file,
|
||||||
|
mimeType: file.type,
|
||||||
|
createdAt: new Date().toISOString(),
|
||||||
|
})
|
||||||
|
|
||||||
|
onChange(imageId)
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to save image:", error)
|
||||||
|
alert("图片上传失败")
|
||||||
|
} finally {
|
||||||
|
setIsLoading(false)
|
||||||
|
// Reset input
|
||||||
|
if (fileInputRef.current) fileInputRef.current.value = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleRemove = () => {
|
||||||
|
onChange(undefined)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={`flex items-center gap-4 ${className}`}>
|
||||||
|
<Avatar className="h-20 w-20 border-2 border-dashed border-muted-foreground/50">
|
||||||
|
<AvatarImage src={previewUrl} className="object-cover" />
|
||||||
|
<AvatarFallback className="bg-transparent">
|
||||||
|
{isLoading ? <Loader2 className="h-6 w-6 animate-spin" /> : <Upload className="h-6 w-6 text-muted-foreground" />}
|
||||||
|
</AvatarFallback>
|
||||||
|
</Avatar>
|
||||||
|
|
||||||
|
<div className="flex flex-col gap-2">
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
ref={fileInputRef}
|
||||||
|
className="hidden"
|
||||||
|
accept="image/*"
|
||||||
|
onChange={handleFileSelect}
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
type="button"
|
||||||
|
variant="outline"
|
||||||
|
size="sm"
|
||||||
|
onClick={() => fileInputRef.current?.click()}
|
||||||
|
disabled={isLoading}
|
||||||
|
>
|
||||||
|
{value ? "更换头像" : "上传头像"}
|
||||||
|
</Button>
|
||||||
|
{value && (
|
||||||
|
<Button
|
||||||
|
type="button"
|
||||||
|
variant="ghost"
|
||||||
|
size="sm"
|
||||||
|
className="text-destructive hover:text-destructive"
|
||||||
|
onClick={handleRemove}
|
||||||
|
>
|
||||||
|
<X className="mr-2 h-3 w-3" /> 移除
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -6,15 +6,24 @@ export interface GlobalSettings {
|
|||||||
value: any
|
value: any
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface StoredImage {
|
||||||
|
id: string
|
||||||
|
blob: Blob
|
||||||
|
mimeType: string
|
||||||
|
createdAt: string
|
||||||
|
}
|
||||||
|
|
||||||
export class FamilyTreeDB extends Dexie {
|
export class FamilyTreeDB extends Dexie {
|
||||||
members!: Table<FamilyMember>
|
members!: Table<FamilyMember>
|
||||||
settings!: Table<GlobalSettings>
|
settings!: Table<GlobalSettings>
|
||||||
|
images!: Table<StoredImage>
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super("FamilyTreeDB")
|
super("FamilyTreeDB")
|
||||||
this.version(1).stores({
|
this.version(1).stores({
|
||||||
members: "id, fullName, fatherId, motherId, [fatherId+motherId]", // Index for searching
|
members: "id, fullName, fatherId, motherId, [fatherId+motherId]", // Index for searching
|
||||||
settings: "key", // Key-value store for rootId etc.
|
settings: "key", // Key-value store for rootId etc.
|
||||||
|
images: "id", // Store images by ID
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*|*MINGW*|*MSYS*)
|
||||||
|
if command -v cygpath > /dev/null 2>&1; then
|
||||||
|
basedir=`cygpath -w "$basedir"`
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/bin/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/bin/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/bin/uuid" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/bin/uuid" "$@"
|
||||||
|
fi
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"lastValidatedTimestamp": 1763812127277,
|
"lastValidatedTimestamp": 1763812566534,
|
||||||
"projects": {},
|
"projects": {},
|
||||||
"pnpmfiles": [],
|
"pnpmfiles": [],
|
||||||
"settings": {
|
"settings": {
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
This is a stub types definition for @types/uuid (https://github.com/uuidjs/uuid#readme).
|
||||||
|
|
||||||
|
uuid provides its own type definitions, so you don't need @types/uuid installed!
|
||||||
Generated
Vendored
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*|*MINGW*|*MSYS*)
|
||||||
|
if command -v cygpath > /dev/null 2>&1; then
|
||||||
|
basedir=`cygpath -w "$basedir"`
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/bin/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/bin/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/dist-node/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules/uuid/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/uuid@13.0.0/node_modules:/Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../../../../../../uuid@13.0.0/node_modules/uuid/dist-node/bin/uuid" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../../../../../../uuid@13.0.0/node_modules/uuid/dist-node/bin/uuid" "$@"
|
||||||
|
fi
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "@types/uuid",
|
||||||
|
"version": "11.0.0",
|
||||||
|
"description": "Stub TypeScript definitions entry for uuid, which provides its own types definitions",
|
||||||
|
"main": "",
|
||||||
|
"scripts": {},
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"uuid": "*"
|
||||||
|
},
|
||||||
|
"deprecated": "This is a stub types definition. uuid provides its own type definitions, so you do not need this installed."
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../../uuid@13.0.0/node_modules/uuid
|
||||||
+20
@@ -92,6 +92,9 @@ importers:
|
|||||||
'@radix-ui/react-tooltip':
|
'@radix-ui/react-tooltip':
|
||||||
specifier: 1.1.6
|
specifier: 1.1.6
|
||||||
version: 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
version: 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||||
|
'@types/uuid':
|
||||||
|
specifier: ^11.0.0
|
||||||
|
version: 11.0.0
|
||||||
'@vercel/analytics':
|
'@vercel/analytics':
|
||||||
specifier: latest
|
specifier: latest
|
||||||
version: 1.5.0(next@16.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
|
version: 1.5.0(next@16.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
|
||||||
@@ -158,6 +161,9 @@ importers:
|
|||||||
tailwindcss-animate:
|
tailwindcss-animate:
|
||||||
specifier: ^1.0.7
|
specifier: ^1.0.7
|
||||||
version: 1.0.7(tailwindcss@4.1.17)
|
version: 1.0.7(tailwindcss@4.1.17)
|
||||||
|
uuid:
|
||||||
|
specifier: ^13.0.0
|
||||||
|
version: 13.0.0
|
||||||
vaul:
|
vaul:
|
||||||
specifier: ^1.1.2
|
specifier: ^1.1.2
|
||||||
version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||||
@@ -1239,6 +1245,10 @@ packages:
|
|||||||
'@types/react@19.2.6':
|
'@types/react@19.2.6':
|
||||||
resolution: {integrity: sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==}
|
resolution: {integrity: sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==}
|
||||||
|
|
||||||
|
'@types/uuid@11.0.0':
|
||||||
|
resolution: {integrity: sha512-HVyk8nj2m+jcFRNazzqyVKiZezyhDKrGUA3jlEcg/nZ6Ms+qHwocba1Y/AaVaznJTAM9xpdFSh+ptbNrhOGvZA==}
|
||||||
|
deprecated: This is a stub types definition. uuid provides its own type definitions, so you do not need this installed.
|
||||||
|
|
||||||
'@vercel/analytics@1.5.0':
|
'@vercel/analytics@1.5.0':
|
||||||
resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
|
resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -1770,6 +1780,10 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
|
|
||||||
|
uuid@13.0.0:
|
||||||
|
resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
vaul@1.1.2:
|
vaul@1.1.2:
|
||||||
resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==}
|
resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -2759,6 +2773,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
csstype: 3.2.3
|
csstype: 3.2.3
|
||||||
|
|
||||||
|
'@types/uuid@11.0.0':
|
||||||
|
dependencies:
|
||||||
|
uuid: 13.0.0
|
||||||
|
|
||||||
'@vercel/analytics@1.5.0(next@16.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
|
'@vercel/analytics@1.5.0(next@16.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
next: 16.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
next: 16.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||||
@@ -3218,6 +3236,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
react: 19.2.0
|
react: 19.2.0
|
||||||
|
|
||||||
|
uuid@13.0.0: {}
|
||||||
|
|
||||||
vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
|
vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
'@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.6))(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||||
|
|||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2010-2020 Robert Kieffer and other contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
+499
@@ -0,0 +1,499 @@
|
|||||||
|
<!--
|
||||||
|
-- This file is auto-generated from README_js.md. Changes should be made there.
|
||||||
|
-->
|
||||||
|
|
||||||
|
# uuid [](https://github.com/uuidjs/uuid/actions?query=workflow%3ACI) [](https://github.com/uuidjs/uuid/actions/workflows/browser.yml)
|
||||||
|
|
||||||
|
For the creation of [RFC9562](https://www.rfc-editor.org/rfc/rfc9562.html) (formerly [RFC4122](https://www.rfc-editor.org/rfc/rfc4122.html)) UUIDs
|
||||||
|
|
||||||
|
- **Complete** - Support for all RFC9562 UUID versions
|
||||||
|
- **Cross-platform** - Support for...
|
||||||
|
- [Typescript](#support)
|
||||||
|
- [Chrome, Safari, Firefox, and Edge](#support)
|
||||||
|
- [NodeJS](#support)
|
||||||
|
- [React Native / Expo](#react-native--expo)
|
||||||
|
- **Secure** - Uses modern `crypto` API for random values
|
||||||
|
- **Compact** - Zero-dependency, [tree-shakable](https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking)
|
||||||
|
- **CLI** - [`uuid` command line](#command-line) utility
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
> Starting with `uuid@12` CommonJS is no longer supported. See [implications](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) and [motivation](https://github.com/uuidjs/uuid/issues/881) for details.
|
||||||
|
|
||||||
|
## Quickstart
|
||||||
|
|
||||||
|
**1. Install**
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm install uuid
|
||||||
|
```
|
||||||
|
|
||||||
|
**2. Create a UUID**
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
|
||||||
|
```
|
||||||
|
|
||||||
|
For timestamp UUIDs, namespace UUIDs, and other options read on ...
|
||||||
|
|
||||||
|
## API Summary
|
||||||
|
|
||||||
|
| | | |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [`uuid.NIL`](#uuidnil) | The nil UUID string (all zeros) | New in `uuid@8.3` |
|
||||||
|
| [`uuid.MAX`](#uuidmax) | The max UUID string (all ones) | New in `uuid@9.1` |
|
||||||
|
| [`uuid.parse()`](#uuidparsestr) | Convert UUID string to array of bytes | New in `uuid@8.3` |
|
||||||
|
| [`uuid.stringify()`](#uuidstringifyarr-offset) | Convert array of bytes to UUID string | New in `uuid@8.3` |
|
||||||
|
| [`uuid.v1()`](#uuidv1options-buffer-offset) | Create a version 1 (timestamp) UUID | |
|
||||||
|
| [`uuid.v1ToV6()`](#uuidv1tov6uuid) | Create a version 6 UUID from a version 1 UUID | New in `uuid@10` |
|
||||||
|
| [`uuid.v3()`](#uuidv3name-namespace-buffer-offset) | Create a version 3 (namespace w/ MD5) UUID | |
|
||||||
|
| [`uuid.v4()`](#uuidv4options-buffer-offset) | Create a version 4 (random) UUID | |
|
||||||
|
| [`uuid.v5()`](#uuidv5name-namespace-buffer-offset) | Create a version 5 (namespace w/ SHA-1) UUID | |
|
||||||
|
| [`uuid.v6()`](#uuidv6options-buffer-offset) | Create a version 6 (timestamp, reordered) UUID | New in `uuid@10` |
|
||||||
|
| [`uuid.v6ToV1()`](#uuidv6tov1uuid) | Create a version 1 UUID from a version 6 UUID | New in `uuid@10` |
|
||||||
|
| [`uuid.v7()`](#uuidv7options-buffer-offset) | Create a version 7 (Unix Epoch time-based) UUID | New in `uuid@10` |
|
||||||
|
| ~~[`uuid.v8()`](#uuidv8)~~ | "Intentionally left blank" | |
|
||||||
|
| [`uuid.validate()`](#uuidvalidatestr) | Test a string to see if it is a valid UUID | New in `uuid@8.3` |
|
||||||
|
| [`uuid.version()`](#uuidversionstr) | Detect RFC version of a UUID | New in `uuid@8.3` |
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### uuid.NIL
|
||||||
|
|
||||||
|
The nil UUID string (all zeros).
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { NIL as NIL_UUID } from 'uuid';
|
||||||
|
|
||||||
|
NIL_UUID; // ⇨ '00000000-0000-0000-0000-000000000000'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.MAX
|
||||||
|
|
||||||
|
The max UUID string (all ones).
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { MAX as MAX_UUID } from 'uuid';
|
||||||
|
|
||||||
|
MAX_UUID; // ⇨ 'ffffffff-ffff-ffff-ffff-ffffffffffff'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.parse(str)
|
||||||
|
|
||||||
|
Convert UUID string to array of bytes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | ---------------------------------------- |
|
||||||
|
| `str` | A valid UUID `String` |
|
||||||
|
| _returns_ | `Uint8Array[16]` |
|
||||||
|
| _throws_ | `TypeError` if `str` is not a valid UUID |
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { parse as uuidParse } from 'uuid';
|
||||||
|
|
||||||
|
// Parse a UUID
|
||||||
|
uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨
|
||||||
|
// Uint8Array(16) [
|
||||||
|
// 110, 192, 189, 127, 17,
|
||||||
|
// 192, 67, 218, 151, 94,
|
||||||
|
// 42, 138, 217, 235, 174,
|
||||||
|
// 11
|
||||||
|
// ]
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.stringify(arr[, offset])
|
||||||
|
|
||||||
|
Convert array of bytes to UUID string
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| -------------- | ---------------------------------------------------------------------------- |
|
||||||
|
| `arr` | `Array`-like collection of 16 values (starting from `offset`) between 0-255. |
|
||||||
|
| [`offset` = 0] | `Number` Starting index in the Array |
|
||||||
|
| _returns_ | `String` |
|
||||||
|
| _throws_ | `TypeError` if a valid UUID string cannot be generated |
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { stringify as uuidStringify } from 'uuid';
|
||||||
|
|
||||||
|
const uuidBytes = Uint8Array.of(
|
||||||
|
0x6e,
|
||||||
|
0xc0,
|
||||||
|
0xbd,
|
||||||
|
0x7f,
|
||||||
|
0x11,
|
||||||
|
0xc0,
|
||||||
|
0x43,
|
||||||
|
0xda,
|
||||||
|
0x97,
|
||||||
|
0x5e,
|
||||||
|
0x2a,
|
||||||
|
0x8a,
|
||||||
|
0xd9,
|
||||||
|
0xeb,
|
||||||
|
0xae,
|
||||||
|
0x0b
|
||||||
|
);
|
||||||
|
|
||||||
|
uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v1([options[, buffer[, offset]]])
|
||||||
|
|
||||||
|
Create an RFC version 1 (timestamp) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| [`options`] | `Object` with one or more of the following properties: |
|
||||||
|
| [`options.node = (random)` ] | RFC "node" field as an `Array[6]` of byte values (per 4.1.6) |
|
||||||
|
| [`options.clockseq = (random)`] | RFC "clock sequence" as a `Number` between 0 - 0x3fff |
|
||||||
|
| [`options.msecs = (current time)`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) |
|
||||||
|
| [`options.nsecs = 0`] | RFC "timestamp" field (`Number` of nanoseconds to add to `msecs`, should be 0-10,000) |
|
||||||
|
| [`options.random = (random)`] | `Array` of 16 random bytes (0-255) used to generate other fields, above |
|
||||||
|
| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
| _throws_ | `Error` if more than 10M UUIDs/sec are requested |
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> The default [node id](https://datatracker.ietf.org/doc/html/rfc9562#section-5.1) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process.
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> `options.random` and `options.rng` are only meaningful on the very first call to `v1()`, where they may be passed to initialize the internal `node` and `clockseq` fields.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v1 as uuidv1 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-9b5d-ab8dfbbd4bed'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example using `options`:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v1 as uuidv1 } from 'uuid';
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
node: Uint8Array.of(0x01, 0x23, 0x45, 0x67, 0x89, 0xab),
|
||||||
|
clockseq: 0x1234,
|
||||||
|
msecs: new Date('2011-11-01').getTime(),
|
||||||
|
nsecs: 5678,
|
||||||
|
};
|
||||||
|
uuidv1(options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v1ToV6(uuid)
|
||||||
|
|
||||||
|
Convert a UUID from version 1 to version 6
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v1ToV6 } from 'uuid';
|
||||||
|
|
||||||
|
v1ToV6('92f62d9e-22c4-11ef-97e9-325096b39f47'); // ⇨ '1ef22c49-2f62-6d9e-97e9-325096b39f47'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v3(name, namespace[, buffer[, offset]])
|
||||||
|
|
||||||
|
Create an RFC version 3 (namespace w/ MD5) UUID
|
||||||
|
|
||||||
|
API is identical to `v5()`, but uses "v3" instead.
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> Per the RFC, "_If backward compatibility is not an issue, SHA-1 [Version 5] is preferred_."
|
||||||
|
|
||||||
|
### uuid.v4([options[, buffer[, offset]]])
|
||||||
|
|
||||||
|
Create an RFC version 4 (random) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| [`options`] | `Object` with one or more of the following properties: |
|
||||||
|
| [`options.random`] | `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example using predefined `random` values:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
|
const v4options = {
|
||||||
|
random: Uint8Array.of(
|
||||||
|
0x10,
|
||||||
|
0x91,
|
||||||
|
0x56,
|
||||||
|
0xbe,
|
||||||
|
0xc4,
|
||||||
|
0xfb,
|
||||||
|
0xc1,
|
||||||
|
0xea,
|
||||||
|
0x71,
|
||||||
|
0xb4,
|
||||||
|
0xef,
|
||||||
|
0xe1,
|
||||||
|
0x67,
|
||||||
|
0x1c,
|
||||||
|
0x58,
|
||||||
|
0x36
|
||||||
|
),
|
||||||
|
};
|
||||||
|
uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v5(name, namespace[, buffer[, offset]])
|
||||||
|
|
||||||
|
Create an RFC version 5 (namespace w/ SHA-1) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| `name` | `String \| Array` |
|
||||||
|
| `namespace` | `String \| Array[16]` Namespace UUID |
|
||||||
|
| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> The RFC `DNS` and `URL` namespaces are available as `v5.DNS` and `v5.URL`.
|
||||||
|
|
||||||
|
Example with custom namespace:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v5 as uuidv5 } from 'uuid';
|
||||||
|
|
||||||
|
// Define a custom namespace. Readers, create your own using something like
|
||||||
|
// https://www.uuidgenerator.net/
|
||||||
|
const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
|
||||||
|
|
||||||
|
uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example with RFC `URL` namespace:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v5 as uuidv5 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv5('https://www.w3.org/', uuidv5.URL); // ⇨ 'c106a26a-21bb-5538-8bf2-57095d1976c1'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v6([options[, buffer[, offset]]])
|
||||||
|
|
||||||
|
Create an RFC version 6 (timestamp, reordered) UUID
|
||||||
|
|
||||||
|
This method takes the same arguments as uuid.v1().
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v6 as uuidv6 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv6(); // ⇨ '1e940672-c5ea-64c1-9bdd-2b0d7b3dcb6d'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example using `options`:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v6 as uuidv6 } from 'uuid';
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
|
||||||
|
clockseq: 0x1234,
|
||||||
|
msecs: new Date('2011-11-01').getTime(),
|
||||||
|
nsecs: 5678,
|
||||||
|
};
|
||||||
|
uuidv6(options); // ⇨ '1e1041c7-10b9-662e-9234-0123456789ab'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v6ToV1(uuid)
|
||||||
|
|
||||||
|
Convert a UUID from version 6 to version 1
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v6ToV1 } from 'uuid';
|
||||||
|
|
||||||
|
v6ToV1('1ef22c49-2f62-6d9e-97e9-325096b39f47'); // ⇨ '92f62d9e-22c4-11ef-97e9-325096b39f47'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v7([options[, buffer[, offset]]])
|
||||||
|
|
||||||
|
Create an RFC version 7 (random) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| [`options`] | `Object` with one or more of the following properties: |
|
||||||
|
| [`options.msecs = (current time)`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) |
|
||||||
|
| [`options.random = (random)`] | `Array` of 16 random bytes (0-255) used to generate other fields, above |
|
||||||
|
| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`options.seq = (random)`] | 32-bit sequence `Number` between 0 - 0xffffffff. This may be provided to help ensure uniqueness for UUIDs generated within the same millisecond time interval. Default = random value. |
|
||||||
|
| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v7 as uuidv7 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv7(); // ⇨ '01695553-c90c-745a-b76f-770d7b3dcb6d'
|
||||||
|
```
|
||||||
|
|
||||||
|
### ~~uuid.v8()~~
|
||||||
|
|
||||||
|
**_"Intentionally left blank"_**
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> Version 8 (experimental) UUIDs are "[for experimental or vendor-specific use cases](https://www.rfc-editor.org/rfc/rfc9562.html#name-uuid-version-8)". The RFC does not define a creation algorithm for them, which is why this package does not offer a `v8()` method. The `validate()` and `version()` methods do work with such UUIDs, however.
|
||||||
|
|
||||||
|
### uuid.validate(str)
|
||||||
|
|
||||||
|
Test a string to see if it is a valid UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | --------------------------------------------------- |
|
||||||
|
| `str` | `String` to validate |
|
||||||
|
| _returns_ | `true` if string is a valid UUID, `false` otherwise |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { validate as uuidValidate } from 'uuid';
|
||||||
|
|
||||||
|
uuidValidate('not a UUID'); // ⇨ false
|
||||||
|
uuidValidate('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ true
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `validate` and `version` together it is possible to do per-version validation, e.g. validate for only v4 UUIds.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { version as uuidVersion } from 'uuid';
|
||||||
|
import { validate as uuidValidate } from 'uuid';
|
||||||
|
|
||||||
|
function uuidValidateV4(uuid) {
|
||||||
|
return uuidValidate(uuid) && uuidVersion(uuid) === 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
const v1Uuid = 'd9428888-122b-11e1-b85c-61cd3cbb3210';
|
||||||
|
const v4Uuid = '109156be-c4fb-41ea-b1b4-efe1671c5836';
|
||||||
|
|
||||||
|
uuidValidateV4(v4Uuid); // ⇨ true
|
||||||
|
uuidValidateV4(v1Uuid); // ⇨ false
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.version(str)
|
||||||
|
|
||||||
|
Detect RFC version of a UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | ---------------------------------------- |
|
||||||
|
| `str` | A valid UUID `String` |
|
||||||
|
| _returns_ | `Number` The RFC version of the UUID |
|
||||||
|
| _throws_ | `TypeError` if `str` is not a valid UUID |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { version as uuidVersion } from 'uuid';
|
||||||
|
|
||||||
|
uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003'); // ⇨ 1
|
||||||
|
uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ 4
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
> [!NOTE]
|
||||||
|
> This method returns `0` for the `NIL` UUID, and `15` for the `MAX` UUID.
|
||||||
|
|
||||||
|
## Command Line
|
||||||
|
|
||||||
|
UUIDs can be generated from the command line using `uuid`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ npx uuid
|
||||||
|
ddeb27fb-d9a0-4624-be4d-4615062daed4
|
||||||
|
```
|
||||||
|
|
||||||
|
The default is to generate version 4 UUIDS, however the other versions are supported. Type `uuid --help` for details:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ npx uuid --help
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
uuid
|
||||||
|
uuid v1
|
||||||
|
uuid v3 <name> <namespace uuid>
|
||||||
|
uuid v4
|
||||||
|
uuid v5 <name> <namespace uuid>
|
||||||
|
uuid v7
|
||||||
|
uuid --help
|
||||||
|
|
||||||
|
Note: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs
|
||||||
|
defined by RFC9562
|
||||||
|
```
|
||||||
|
|
||||||
|
## `options` Handling for Timestamp UUIDs
|
||||||
|
|
||||||
|
Prior to `uuid@11`, it was possible for `options` state to interfere with the internal state used to ensure uniqueness of timestamp-based UUIDs (the `v1()`, `v6()`, and `v7()` methods). Starting with `uuid@11`, this issue has been addressed by using the presence of the `options` argument as a flag to select between two possible behaviors:
|
||||||
|
|
||||||
|
- Without `options`: Internal state is utilized to improve UUID uniqueness.
|
||||||
|
- With `options`: Internal state is **NOT** used and, instead, appropriate defaults are applied as needed.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
**Browsers**: `uuid` [builds are tested](/uuidjs/uuid/blob/main/wdio.conf.js) against the latest version of desktop Chrome, Safari, Firefox, and Edge. Mobile versions of these same browsers are expected to work but aren't currently tested.
|
||||||
|
|
||||||
|
**Node**: `uuid` [builds are tested](https://github.com/uuidjs/uuid/blob/main/.github/workflows/ci.yml#L26-L27) against node ([LTS releases](https://github.com/nodejs/Release)), plus one prior. E.g. At the time of this writing `node@20` is the "maintenance" release and `node@24` is the "current" release, so `uuid` supports `node@18`-`node@24`.
|
||||||
|
|
||||||
|
**Typescript**: TS versions released within the past two years are supported. [source](https://github.com/microsoft/TypeScript/issues/49088#issuecomment-2468723715)
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
<!-- This header is referenced as an anchor in src/rng-browser.ts -->
|
||||||
|
|
||||||
|
### "getRandomValues() not supported"
|
||||||
|
|
||||||
|
This error occurs in environments where the standard [`crypto.getRandomValues()`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues) API is not supported. This issue can be resolved by adding an appropriate polyfill:
|
||||||
|
|
||||||
|
#### React Native / Expo
|
||||||
|
|
||||||
|
1. Install [`react-native-get-random-values`](https://github.com/LinusU/react-native-get-random-values#readme)
|
||||||
|
1. Import it _before_ `uuid`. Since `uuid` might also appear as a transitive dependency of some other imports it's safest to just import `react-native-get-random-values` as the very first thing in your entry point:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import 'react-native-get-random-values';
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Markdown generated from [README_js.md](README_js.md) by <a href="https://github.com/broofa/runmd"><image height="13" src="https://camo.githubusercontent.com/5c7c603cd1e6a43370b0a5063d457e0dabb74cf317adc7baba183acb686ee8d0/687474703a2f2f692e696d6775722e636f6d2f634a4b6f3662552e706e67" /></a>
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
import '../uuid-bin.js';
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
export { default as MAX } from './max.js';
|
||||||
|
export { default as NIL } from './nil.js';
|
||||||
|
export { default as parse } from './parse.js';
|
||||||
|
export { default as stringify } from './stringify.js';
|
||||||
|
export { default as v1 } from './v1.js';
|
||||||
|
export { default as v1ToV6 } from './v1ToV6.js';
|
||||||
|
export { default as v3 } from './v3.js';
|
||||||
|
export { default as v4 } from './v4.js';
|
||||||
|
export { default as v5 } from './v5.js';
|
||||||
|
export { default as v6 } from './v6.js';
|
||||||
|
export { default as v6ToV1 } from './v6ToV1.js';
|
||||||
|
export { default as v7 } from './v7.js';
|
||||||
|
export { default as validate } from './validate.js';
|
||||||
|
export { default as version } from './version.js';
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
export default 'ffffffff-ffff-ffff-ffff-ffffffffffff';
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
import { createHash } from 'node:crypto';
|
||||||
|
function md5(bytes) {
|
||||||
|
if (Array.isArray(bytes)) {
|
||||||
|
bytes = Buffer.from(bytes);
|
||||||
|
}
|
||||||
|
else if (typeof bytes === 'string') {
|
||||||
|
bytes = Buffer.from(bytes, 'utf8');
|
||||||
|
}
|
||||||
|
return createHash('md5').update(bytes).digest();
|
||||||
|
}
|
||||||
|
export default md5;
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
import { randomUUID } from 'node:crypto';
|
||||||
|
export default { randomUUID };
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
export default '00000000-0000-0000-0000-000000000000';
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
function parse(uuid) {
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
let v;
|
||||||
|
return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff);
|
||||||
|
}
|
||||||
|
export default parse;
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
import { randomFillSync } from 'node:crypto';
|
||||||
|
const rnds8Pool = new Uint8Array(256);
|
||||||
|
let poolPtr = rnds8Pool.length;
|
||||||
|
export default function rng() {
|
||||||
|
if (poolPtr > rnds8Pool.length - 16) {
|
||||||
|
randomFillSync(rnds8Pool);
|
||||||
|
poolPtr = 0;
|
||||||
|
}
|
||||||
|
return rnds8Pool.slice(poolPtr, (poolPtr += 16));
|
||||||
|
}
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
import { createHash } from 'node:crypto';
|
||||||
|
function sha1(bytes) {
|
||||||
|
if (Array.isArray(bytes)) {
|
||||||
|
bytes = Buffer.from(bytes);
|
||||||
|
}
|
||||||
|
else if (typeof bytes === 'string') {
|
||||||
|
bytes = Buffer.from(bytes, 'utf8');
|
||||||
|
}
|
||||||
|
return createHash('sha1').update(bytes).digest();
|
||||||
|
}
|
||||||
|
export default sha1;
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
const byteToHex = [];
|
||||||
|
for (let i = 0; i < 256; ++i) {
|
||||||
|
byteToHex.push((i + 0x100).toString(16).slice(1));
|
||||||
|
}
|
||||||
|
export function unsafeStringify(arr, offset = 0) {
|
||||||
|
return (byteToHex[arr[offset + 0]] +
|
||||||
|
byteToHex[arr[offset + 1]] +
|
||||||
|
byteToHex[arr[offset + 2]] +
|
||||||
|
byteToHex[arr[offset + 3]] +
|
||||||
|
'-' +
|
||||||
|
byteToHex[arr[offset + 4]] +
|
||||||
|
byteToHex[arr[offset + 5]] +
|
||||||
|
'-' +
|
||||||
|
byteToHex[arr[offset + 6]] +
|
||||||
|
byteToHex[arr[offset + 7]] +
|
||||||
|
'-' +
|
||||||
|
byteToHex[arr[offset + 8]] +
|
||||||
|
byteToHex[arr[offset + 9]] +
|
||||||
|
'-' +
|
||||||
|
byteToHex[arr[offset + 10]] +
|
||||||
|
byteToHex[arr[offset + 11]] +
|
||||||
|
byteToHex[arr[offset + 12]] +
|
||||||
|
byteToHex[arr[offset + 13]] +
|
||||||
|
byteToHex[arr[offset + 14]] +
|
||||||
|
byteToHex[arr[offset + 15]]).toLowerCase();
|
||||||
|
}
|
||||||
|
function stringify(arr, offset = 0) {
|
||||||
|
const uuid = unsafeStringify(arr, offset);
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Stringified UUID is invalid');
|
||||||
|
}
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
export default stringify;
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
export {};
|
||||||
+70
@@ -0,0 +1,70 @@
|
|||||||
|
import * as assert from 'node:assert/strict';
|
||||||
|
import v1 from './v1.js';
|
||||||
|
import v3 from './v3.js';
|
||||||
|
import v4 from './v4.js';
|
||||||
|
import v5 from './v5.js';
|
||||||
|
import v6 from './v6.js';
|
||||||
|
import v7 from './v7.js';
|
||||||
|
function usage() {
|
||||||
|
console.log('Usage:');
|
||||||
|
console.log(' uuid');
|
||||||
|
console.log(' uuid v1');
|
||||||
|
console.log(' uuid v3 <name> <namespace uuid>');
|
||||||
|
console.log(' uuid v4');
|
||||||
|
console.log(' uuid v5 <name> <namespace uuid>');
|
||||||
|
console.log(' uuid v6');
|
||||||
|
console.log(' uuid v7');
|
||||||
|
console.log(' uuid --help');
|
||||||
|
console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562');
|
||||||
|
}
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
if (args.indexOf('--help') >= 0) {
|
||||||
|
usage();
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
const version = args.shift() || 'v4';
|
||||||
|
switch (version) {
|
||||||
|
case 'v1':
|
||||||
|
console.log(v1());
|
||||||
|
break;
|
||||||
|
case 'v3': {
|
||||||
|
const name = args.shift();
|
||||||
|
let namespace = args.shift();
|
||||||
|
assert.ok(name != null, 'v3 name not specified');
|
||||||
|
assert.ok(namespace != null, 'v3 namespace not specified');
|
||||||
|
if (namespace === 'URL') {
|
||||||
|
namespace = v3.URL;
|
||||||
|
}
|
||||||
|
if (namespace === 'DNS') {
|
||||||
|
namespace = v3.DNS;
|
||||||
|
}
|
||||||
|
console.log(v3(name, namespace));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'v4':
|
||||||
|
console.log(v4());
|
||||||
|
break;
|
||||||
|
case 'v5': {
|
||||||
|
const name = args.shift();
|
||||||
|
let namespace = args.shift();
|
||||||
|
assert.ok(name != null, 'v5 name not specified');
|
||||||
|
assert.ok(namespace != null, 'v5 namespace not specified');
|
||||||
|
if (namespace === 'URL') {
|
||||||
|
namespace = v5.URL;
|
||||||
|
}
|
||||||
|
if (namespace === 'DNS') {
|
||||||
|
namespace = v5.DNS;
|
||||||
|
}
|
||||||
|
console.log(v5(name, namespace));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'v6':
|
||||||
|
console.log(v6());
|
||||||
|
break;
|
||||||
|
case 'v7':
|
||||||
|
console.log(v7());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
+83
@@ -0,0 +1,83 @@
|
|||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
const _state = {};
|
||||||
|
function v1(options, buf, offset) {
|
||||||
|
let bytes;
|
||||||
|
const isV6 = options?._v6 ?? false;
|
||||||
|
if (options) {
|
||||||
|
const optionsKeys = Object.keys(options);
|
||||||
|
if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') {
|
||||||
|
options = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (options) {
|
||||||
|
bytes = v1Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const now = Date.now();
|
||||||
|
const rnds = rng();
|
||||||
|
updateV1State(_state, now, rnds);
|
||||||
|
bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset);
|
||||||
|
}
|
||||||
|
return buf ?? unsafeStringify(bytes);
|
||||||
|
}
|
||||||
|
export function updateV1State(state, now, rnds) {
|
||||||
|
state.msecs ??= -Infinity;
|
||||||
|
state.nsecs ??= 0;
|
||||||
|
if (now === state.msecs) {
|
||||||
|
state.nsecs++;
|
||||||
|
if (state.nsecs >= 10000) {
|
||||||
|
state.node = undefined;
|
||||||
|
state.nsecs = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (now > state.msecs) {
|
||||||
|
state.nsecs = 0;
|
||||||
|
}
|
||||||
|
else if (now < state.msecs) {
|
||||||
|
state.node = undefined;
|
||||||
|
}
|
||||||
|
if (!state.node) {
|
||||||
|
state.node = rnds.slice(10, 16);
|
||||||
|
state.node[0] |= 0x01;
|
||||||
|
state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;
|
||||||
|
}
|
||||||
|
state.msecs = now;
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {
|
||||||
|
if (rnds.length < 16) {
|
||||||
|
throw new Error('Random bytes length must be >= 16');
|
||||||
|
}
|
||||||
|
if (!buf) {
|
||||||
|
buf = new Uint8Array(16);
|
||||||
|
offset = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (offset < 0 || offset + 16 > buf.length) {
|
||||||
|
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msecs ??= Date.now();
|
||||||
|
nsecs ??= 0;
|
||||||
|
clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;
|
||||||
|
node ??= rnds.slice(10, 16);
|
||||||
|
msecs += 12219292800000;
|
||||||
|
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
||||||
|
buf[offset++] = (tl >>> 24) & 0xff;
|
||||||
|
buf[offset++] = (tl >>> 16) & 0xff;
|
||||||
|
buf[offset++] = (tl >>> 8) & 0xff;
|
||||||
|
buf[offset++] = tl & 0xff;
|
||||||
|
const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;
|
||||||
|
buf[offset++] = (tmh >>> 8) & 0xff;
|
||||||
|
buf[offset++] = tmh & 0xff;
|
||||||
|
buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;
|
||||||
|
buf[offset++] = (tmh >>> 16) & 0xff;
|
||||||
|
buf[offset++] = (clockseq >>> 8) | 0x80;
|
||||||
|
buf[offset++] = clockseq & 0xff;
|
||||||
|
for (let n = 0; n < 6; ++n) {
|
||||||
|
buf[offset++] = node[n];
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
export default v1;
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
import parse from './parse.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
export default function v1ToV6(uuid) {
|
||||||
|
const v1Bytes = typeof uuid === 'string' ? parse(uuid) : uuid;
|
||||||
|
const v6Bytes = _v1ToV6(v1Bytes);
|
||||||
|
return typeof uuid === 'string' ? unsafeStringify(v6Bytes) : v6Bytes;
|
||||||
|
}
|
||||||
|
function _v1ToV6(v1Bytes) {
|
||||||
|
return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]);
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
import md5 from './md5.js';
|
||||||
|
import v35, { DNS, URL } from './v35.js';
|
||||||
|
export { DNS, URL } from './v35.js';
|
||||||
|
function v3(value, namespace, buf, offset) {
|
||||||
|
return v35(0x30, md5, value, namespace, buf, offset);
|
||||||
|
}
|
||||||
|
v3.DNS = DNS;
|
||||||
|
v3.URL = URL;
|
||||||
|
export default v3;
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
import parse from './parse.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
export function stringToBytes(str) {
|
||||||
|
str = unescape(encodeURIComponent(str));
|
||||||
|
const bytes = new Uint8Array(str.length);
|
||||||
|
for (let i = 0; i < str.length; ++i) {
|
||||||
|
bytes[i] = str.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
export default function v35(version, hash, value, namespace, buf, offset) {
|
||||||
|
const valueBytes = typeof value === 'string' ? stringToBytes(value) : value;
|
||||||
|
const namespaceBytes = typeof namespace === 'string' ? parse(namespace) : namespace;
|
||||||
|
if (typeof namespace === 'string') {
|
||||||
|
namespace = parse(namespace);
|
||||||
|
}
|
||||||
|
if (namespace?.length !== 16) {
|
||||||
|
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
||||||
|
}
|
||||||
|
let bytes = new Uint8Array(16 + valueBytes.length);
|
||||||
|
bytes.set(namespaceBytes);
|
||||||
|
bytes.set(valueBytes, namespaceBytes.length);
|
||||||
|
bytes = hash(bytes);
|
||||||
|
bytes[6] = (bytes[6] & 0x0f) | version;
|
||||||
|
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = bytes[i];
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
return unsafeStringify(bytes);
|
||||||
|
}
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
import native from './native.js';
|
||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
function _v4(options, buf, offset) {
|
||||||
|
options = options || {};
|
||||||
|
const rnds = options.random ?? options.rng?.() ?? rng();
|
||||||
|
if (rnds.length < 16) {
|
||||||
|
throw new Error('Random bytes length must be >= 16');
|
||||||
|
}
|
||||||
|
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
||||||
|
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
if (offset < 0 || offset + 16 > buf.length) {
|
||||||
|
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
||||||
|
}
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = rnds[i];
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
return unsafeStringify(rnds);
|
||||||
|
}
|
||||||
|
function v4(options, buf, offset) {
|
||||||
|
if (native.randomUUID && !buf && !options) {
|
||||||
|
return native.randomUUID();
|
||||||
|
}
|
||||||
|
return _v4(options, buf, offset);
|
||||||
|
}
|
||||||
|
export default v4;
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
import sha1 from './sha1.js';
|
||||||
|
import v35, { DNS, URL } from './v35.js';
|
||||||
|
export { DNS, URL } from './v35.js';
|
||||||
|
function v5(value, namespace, buf, offset) {
|
||||||
|
return v35(0x50, sha1, value, namespace, buf, offset);
|
||||||
|
}
|
||||||
|
v5.DNS = DNS;
|
||||||
|
v5.URL = URL;
|
||||||
|
export default v5;
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
import v1 from './v1.js';
|
||||||
|
import v1ToV6 from './v1ToV6.js';
|
||||||
|
function v6(options, buf, offset) {
|
||||||
|
options ??= {};
|
||||||
|
offset ??= 0;
|
||||||
|
let bytes = v1({ ...options, _v6: true }, new Uint8Array(16));
|
||||||
|
bytes = v1ToV6(bytes);
|
||||||
|
if (buf) {
|
||||||
|
for (let i = 0; i < 16; i++) {
|
||||||
|
buf[offset + i] = bytes[i];
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
return unsafeStringify(bytes);
|
||||||
|
}
|
||||||
|
export default v6;
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
import parse from './parse.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
export default function v6ToV1(uuid) {
|
||||||
|
const v6Bytes = typeof uuid === 'string' ? parse(uuid) : uuid;
|
||||||
|
const v1Bytes = _v6ToV1(v6Bytes);
|
||||||
|
return typeof uuid === 'string' ? unsafeStringify(v1Bytes) : v1Bytes;
|
||||||
|
}
|
||||||
|
function _v6ToV1(v6Bytes) {
|
||||||
|
return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]);
|
||||||
|
}
|
||||||
+65
@@ -0,0 +1,65 @@
|
|||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
const _state = {};
|
||||||
|
function v7(options, buf, offset) {
|
||||||
|
let bytes;
|
||||||
|
if (options) {
|
||||||
|
bytes = v7Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.seq, buf, offset);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const now = Date.now();
|
||||||
|
const rnds = rng();
|
||||||
|
updateV7State(_state, now, rnds);
|
||||||
|
bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);
|
||||||
|
}
|
||||||
|
return buf ?? unsafeStringify(bytes);
|
||||||
|
}
|
||||||
|
export function updateV7State(state, now, rnds) {
|
||||||
|
state.msecs ??= -Infinity;
|
||||||
|
state.seq ??= 0;
|
||||||
|
if (now > state.msecs) {
|
||||||
|
state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];
|
||||||
|
state.msecs = now;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
state.seq = (state.seq + 1) | 0;
|
||||||
|
if (state.seq === 0) {
|
||||||
|
state.msecs++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
function v7Bytes(rnds, msecs, seq, buf, offset = 0) {
|
||||||
|
if (rnds.length < 16) {
|
||||||
|
throw new Error('Random bytes length must be >= 16');
|
||||||
|
}
|
||||||
|
if (!buf) {
|
||||||
|
buf = new Uint8Array(16);
|
||||||
|
offset = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (offset < 0 || offset + 16 > buf.length) {
|
||||||
|
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msecs ??= Date.now();
|
||||||
|
seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];
|
||||||
|
buf[offset++] = (msecs / 0x10000000000) & 0xff;
|
||||||
|
buf[offset++] = (msecs / 0x100000000) & 0xff;
|
||||||
|
buf[offset++] = (msecs / 0x1000000) & 0xff;
|
||||||
|
buf[offset++] = (msecs / 0x10000) & 0xff;
|
||||||
|
buf[offset++] = (msecs / 0x100) & 0xff;
|
||||||
|
buf[offset++] = msecs & 0xff;
|
||||||
|
buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);
|
||||||
|
buf[offset++] = (seq >>> 20) & 0xff;
|
||||||
|
buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);
|
||||||
|
buf[offset++] = (seq >>> 6) & 0xff;
|
||||||
|
buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);
|
||||||
|
buf[offset++] = rnds[11];
|
||||||
|
buf[offset++] = rnds[12];
|
||||||
|
buf[offset++] = rnds[13];
|
||||||
|
buf[offset++] = rnds[14];
|
||||||
|
buf[offset++] = rnds[15];
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
export default v7;
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import REGEX from './regex.js';
|
||||||
|
function validate(uuid) {
|
||||||
|
return typeof uuid === 'string' && REGEX.test(uuid);
|
||||||
|
}
|
||||||
|
export default validate;
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
function version(uuid) {
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
return parseInt(uuid.slice(14, 15), 16);
|
||||||
|
}
|
||||||
|
export default version;
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
export type * from './types.js';
|
||||||
|
export { default as MAX } from './max.js';
|
||||||
|
export { default as NIL } from './nil.js';
|
||||||
|
export { default as parse } from './parse.js';
|
||||||
|
export { default as stringify } from './stringify.js';
|
||||||
|
export { default as v1 } from './v1.js';
|
||||||
|
export { default as v1ToV6 } from './v1ToV6.js';
|
||||||
|
export { default as v3 } from './v3.js';
|
||||||
|
export { default as v4 } from './v4.js';
|
||||||
|
export { default as v5 } from './v5.js';
|
||||||
|
export { default as v6 } from './v6.js';
|
||||||
|
export { default as v6ToV1 } from './v6ToV1.js';
|
||||||
|
export { default as v7 } from './v7.js';
|
||||||
|
export { default as validate } from './validate.js';
|
||||||
|
export { default as version } from './version.js';
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
export { default as MAX } from './max.js';
|
||||||
|
export { default as NIL } from './nil.js';
|
||||||
|
export { default as parse } from './parse.js';
|
||||||
|
export { default as stringify } from './stringify.js';
|
||||||
|
export { default as v1 } from './v1.js';
|
||||||
|
export { default as v1ToV6 } from './v1ToV6.js';
|
||||||
|
export { default as v3 } from './v3.js';
|
||||||
|
export { default as v4 } from './v4.js';
|
||||||
|
export { default as v5 } from './v5.js';
|
||||||
|
export { default as v6 } from './v6.js';
|
||||||
|
export { default as v6ToV1 } from './v6ToV1.js';
|
||||||
|
export { default as v7 } from './v7.js';
|
||||||
|
export { default as validate } from './validate.js';
|
||||||
|
export { default as version } from './version.js';
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
declare const _default: "ffffffff-ffff-ffff-ffff-ffffffffffff";
|
||||||
|
export default _default;
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
export default 'ffffffff-ffff-ffff-ffff-ffffffffffff';
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
declare function md5(bytes: Uint8Array): Uint8Array;
|
||||||
|
export default md5;
|
||||||
+135
@@ -0,0 +1,135 @@
|
|||||||
|
function md5(bytes) {
|
||||||
|
const words = uint8ToUint32(bytes);
|
||||||
|
const md5Bytes = wordsToMd5(words, bytes.length * 8);
|
||||||
|
return uint32ToUint8(md5Bytes);
|
||||||
|
}
|
||||||
|
function uint32ToUint8(input) {
|
||||||
|
const bytes = new Uint8Array(input.length * 4);
|
||||||
|
for (let i = 0; i < input.length * 4; i++) {
|
||||||
|
bytes[i] = (input[i >> 2] >>> ((i % 4) * 8)) & 0xff;
|
||||||
|
}
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
function getOutputLength(inputLength8) {
|
||||||
|
return (((inputLength8 + 64) >>> 9) << 4) + 14 + 1;
|
||||||
|
}
|
||||||
|
function wordsToMd5(x, len) {
|
||||||
|
const xpad = new Uint32Array(getOutputLength(len)).fill(0);
|
||||||
|
xpad.set(x);
|
||||||
|
xpad[len >> 5] |= 0x80 << len % 32;
|
||||||
|
xpad[xpad.length - 1] = len;
|
||||||
|
x = xpad;
|
||||||
|
let a = 1732584193;
|
||||||
|
let b = -271733879;
|
||||||
|
let c = -1732584194;
|
||||||
|
let d = 271733878;
|
||||||
|
for (let i = 0; i < x.length; i += 16) {
|
||||||
|
const olda = a;
|
||||||
|
const oldb = b;
|
||||||
|
const oldc = c;
|
||||||
|
const oldd = d;
|
||||||
|
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||||
|
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||||
|
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||||
|
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||||
|
a = safeAdd(a, olda);
|
||||||
|
b = safeAdd(b, oldb);
|
||||||
|
c = safeAdd(c, oldc);
|
||||||
|
d = safeAdd(d, oldd);
|
||||||
|
}
|
||||||
|
return Uint32Array.of(a, b, c, d);
|
||||||
|
}
|
||||||
|
function uint8ToUint32(input) {
|
||||||
|
if (input.length === 0) {
|
||||||
|
return new Uint32Array();
|
||||||
|
}
|
||||||
|
const output = new Uint32Array(getOutputLength(input.length * 8)).fill(0);
|
||||||
|
for (let i = 0; i < input.length; i++) {
|
||||||
|
output[i >> 2] |= (input[i] & 0xff) << ((i % 4) * 8);
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
function safeAdd(x, y) {
|
||||||
|
const lsw = (x & 0xffff) + (y & 0xffff);
|
||||||
|
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||||
|
return (msw << 16) | (lsw & 0xffff);
|
||||||
|
}
|
||||||
|
function bitRotateLeft(num, cnt) {
|
||||||
|
return (num << cnt) | (num >>> (32 - cnt));
|
||||||
|
}
|
||||||
|
function md5cmn(q, a, b, x, s, t) {
|
||||||
|
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||||
|
}
|
||||||
|
function md5ff(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn((b & c) | (~b & d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
function md5gg(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn((b & d) | (c & ~d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
function md5hh(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
function md5ii(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
export default md5;
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
declare const _default: {
|
||||||
|
randomUUID: false | (() => `${string}-${string}-${string}-${string}-${string}`);
|
||||||
|
};
|
||||||
|
export default _default;
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||||
|
export default { randomUUID };
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
declare const _default: "00000000-0000-0000-0000-000000000000";
|
||||||
|
export default _default;
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
export default '00000000-0000-0000-0000-000000000000';
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
declare function parse(uuid: string): Uint8Array;
|
||||||
|
export default parse;
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user