This commit is contained in:
freedakgmail
2025-11-23 13:31:06 +08:00
parent 00cfae381b
commit 2b4bc92f1b
1039 changed files with 947611 additions and 1307 deletions
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 it is too large Load Diff
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 it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,262 @@
/* [project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/react-image-crop@11.0.10_react@19.2.0/node_modules/react-image-crop/dist/ReactCrop.css [app-client] (css) */
@keyframes marching-ants {
0% {
background-position: 0 0, 0 100%, 0 0, 100% 0;
}
to {
background-position: 20px 0, -20px 100%, 0 -20px, 100% 20px;
}
}
:root {
--rc-drag-handle-size: 12px;
--rc-drag-handle-mobile-size: 24px;
--rc-drag-handle-bg-colour: #0003;
--rc-drag-bar-size: 6px;
--rc-border-color: #ffffffb3;
--rc-focus-color: #08f;
}
.ReactCrop {
cursor: crosshair;
max-width: 100%;
display: inline-block;
position: relative;
}
.ReactCrop *, .ReactCrop :before, .ReactCrop :after {
box-sizing: border-box;
}
.ReactCrop--disabled, .ReactCrop--locked {
cursor: inherit;
}
.ReactCrop__child-wrapper {
max-height: inherit;
overflow: hidden;
}
.ReactCrop__child-wrapper > img, .ReactCrop__child-wrapper > video {
max-width: 100%;
max-height: inherit;
display: block;
}
.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper > img, .ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper > video, .ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection {
touch-action: none;
}
.ReactCrop__crop-mask {
pointer-events: none;
width: calc(100% + .5px);
height: calc(100% + .5px);
position: absolute;
inset: 0;
}
.ReactCrop__crop-selection {
cursor: move;
position: absolute;
top: 0;
left: 0;
transform: translateZ(0);
}
.ReactCrop--disabled .ReactCrop__crop-selection {
cursor: inherit;
}
.ReactCrop--circular-crop .ReactCrop__crop-selection {
border-radius: 50%;
}
.ReactCrop--circular-crop .ReactCrop__crop-selection:after {
pointer-events: none;
content: "";
border: 1px solid var(--rc-border-color);
opacity: .3;
position: absolute;
inset: -1px;
}
.ReactCrop--no-animate .ReactCrop__crop-selection {
outline: 1px dashed #fff;
}
.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection) {
color: #fff;
background-image: linear-gradient(to right, #fff 50%, #444 50%), linear-gradient(to right, #fff 50%, #444 50%), linear-gradient(#fff 50%, #444 50%), linear-gradient(#fff 50%, #444 50%);
background-position: 0 0, 0 100%, 0 0, 100% 0;
background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
background-size: 10px 1px, 10px 1px, 1px 10px, 1px 10px;
animation: 1s linear infinite marching-ants;
}
.ReactCrop__crop-selection:focus {
outline: 2px solid var(--rc-focus-color);
outline-offset: -1px;
}
.ReactCrop--invisible-crop .ReactCrop__crop-mask, .ReactCrop--invisible-crop .ReactCrop__crop-selection {
display: none;
}
.ReactCrop__rule-of-thirds-vt:before, .ReactCrop__rule-of-thirds-vt:after, .ReactCrop__rule-of-thirds-hz:before, .ReactCrop__rule-of-thirds-hz:after {
content: "";
background-color: #fff6;
display: block;
position: absolute;
}
.ReactCrop__rule-of-thirds-vt:before, .ReactCrop__rule-of-thirds-vt:after {
width: 1px;
height: 100%;
}
.ReactCrop__rule-of-thirds-vt:before {
left: 33.3333%;
}
.ReactCrop__rule-of-thirds-vt:after {
left: 66.6667%;
}
.ReactCrop__rule-of-thirds-hz:before, .ReactCrop__rule-of-thirds-hz:after {
width: 100%;
height: 1px;
}
.ReactCrop__rule-of-thirds-hz:before {
top: 33.3333%;
}
.ReactCrop__rule-of-thirds-hz:after {
top: 66.6667%;
}
.ReactCrop__drag-handle {
width: var(--rc-drag-handle-size);
height: var(--rc-drag-handle-size);
background-color: var(--rc-drag-handle-bg-colour);
border: 1px solid var(--rc-border-color);
position: absolute;
}
.ReactCrop__drag-handle:focus {
background: var(--rc-focus-color);
}
.ReactCrop .ord-nw {
cursor: nw-resize;
top: 0;
left: 0;
transform: translate(-50%, -50%);
}
.ReactCrop .ord-n {
cursor: n-resize;
top: 0;
left: 50%;
transform: translate(-50%, -50%);
}
.ReactCrop .ord-ne {
cursor: ne-resize;
top: 0;
right: 0;
transform: translate(50%, -50%);
}
.ReactCrop .ord-e {
cursor: e-resize;
top: 50%;
right: 0;
transform: translate(50%, -50%);
}
.ReactCrop .ord-se {
cursor: se-resize;
bottom: 0;
right: 0;
transform: translate(50%, 50%);
}
.ReactCrop .ord-s {
cursor: s-resize;
bottom: 0;
left: 50%;
transform: translate(-50%, 50%);
}
.ReactCrop .ord-sw {
cursor: sw-resize;
bottom: 0;
left: 0;
transform: translate(-50%, 50%);
}
.ReactCrop .ord-w {
cursor: w-resize;
top: 50%;
left: 0;
transform: translate(-50%, -50%);
}
.ReactCrop__disabled .ReactCrop__drag-handle {
cursor: inherit;
}
.ReactCrop__drag-bar {
position: absolute;
}
.ReactCrop__drag-bar.ord-n {
width: 100%;
height: var(--rc-drag-bar-size);
top: 0;
left: 0;
transform: translateY(-50%);
}
.ReactCrop__drag-bar.ord-e {
width: var(--rc-drag-bar-size);
height: 100%;
top: 0;
right: 0;
transform: translate(50%);
}
.ReactCrop__drag-bar.ord-s {
width: 100%;
height: var(--rc-drag-bar-size);
bottom: 0;
left: 0;
transform: translateY(50%);
}
.ReactCrop__drag-bar.ord-w {
width: var(--rc-drag-bar-size);
height: 100%;
top: 0;
left: 0;
transform: translate(-50%);
}
.ReactCrop--new-crop .ReactCrop__drag-bar, .ReactCrop--new-crop .ReactCrop__drag-handle, .ReactCrop--fixed-aspect .ReactCrop__drag-bar, .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n, .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e, .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s, .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w {
display: none;
}
@media (pointer: coarse) {
.ReactCrop .ord-n, .ReactCrop .ord-e, .ReactCrop .ord-s, .ReactCrop .ord-w {
display: none;
}
.ReactCrop__drag-handle {
width: var(--rc-drag-handle-mobile-size);
height: var(--rc-drag-handle-mobile-size);
}
}
/*# sourceMappingURL=4c051_react-image-crop_dist_ReactCrop_bde06fd8.css.map*/
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[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/app.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => {
module.exports = __turbopack_context__.r("[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/pages/_app.js [client] (ecmascript)");
}),
]);
//# sourceMappingURL=4e98a_next_app_020fddc2.js.map
@@ -0,0 +1,6 @@
{
"version": 3,
"sources": [],
"sections": [
{"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/app.js"],"sourcesContent":["module.exports = require('./dist/pages/_app')\n"],"names":[],"mappings":"AAAA,OAAO,OAAO","ignoreList":[0]}}]
}
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 it is too large Load Diff
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
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 it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[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/error.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => {
module.exports = __turbopack_context__.r("[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/pages/_error.js [client] (ecmascript)");
}),
]);
//# sourceMappingURL=4e98a_next_error_53e529e4.js.map
@@ -0,0 +1,6 @@
{
"version": 3,
"sources": [],
"sections": [
{"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next%4016.0.3_react-dom%4019.2.0_react%4019.2.0__react%4019.2.0/node_modules/next/error.js"],"sourcesContent":["module.exports = require('./dist/pages/_error')\n"],"names":[],"mappings":"AAAA,OAAO,OAAO","ignoreList":[0]}}]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/a0629__pnpm_38e9b27f._.js"
],
source: "dynamic"
});
@@ -0,0 +1,7 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/a0629__pnpm_38e9b27f._.js"
],
source: "dynamic"
});
@@ -0,0 +1,13 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/echarts-for-react@3.0.5_echarts@6.0.0_react@19.2.0/node_modules/echarts-for-react/esm/index.js [app-client] (ecmascript, next/dynamic entry, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/a0629__pnpm_38e9b27f._.js",
"static/chunks/6bb63_echarts-for-react_esm_index_a2c76e66.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/echarts-for-react@3.0.5_echarts@6.0.0_react@19.2.0/node_modules/echarts-for-react/esm/index.js [app-client] (ecmascript, next/dynamic entry)");
});
});
}),
]);
@@ -0,0 +1,5 @@
{
"version": 3,
"sources": [],
"sections": []
}
@@ -0,0 +1,13 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/echarts-for-react@3.0.5_echarts@6.0.0_react@19.2.0/node_modules/echarts-for-react/esm/index.js [app-client] (ecmascript, next/dynamic entry, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/a0629__pnpm_38e9b27f._.js",
"static/chunks/6bb63_echarts-for-react_esm_index_b1a84d50.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/echarts-for-react@3.0.5_echarts@6.0.0_react@19.2.0/node_modules/echarts-for-react/esm/index.js [app-client] (ecmascript, next/dynamic entry)");
});
});
}),
]);
@@ -0,0 +1,5 @@
{
"version": 3,
"sources": [],
"sections": []
}
@@ -0,0 +1,432 @@
/* [project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/reactflow@11.11.4_@types+react@19.2.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/reactflow/dist/style.css [app-client] (css) */
.react-flow {
direction: ltr;
}
.react-flow__container {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.react-flow__pane {
z-index: 1;
cursor: -webkit-grab;
cursor: grab;
}
.react-flow__pane.selection {
cursor: pointer;
}
.react-flow__pane.dragging {
cursor: -webkit-grabbing;
cursor: grabbing;
}
.react-flow__viewport {
transform-origin: 0 0;
z-index: 2;
pointer-events: none;
}
.react-flow__renderer {
z-index: 4;
}
.react-flow__selection {
z-index: 6;
}
.react-flow__nodesselection-rect:focus, .react-flow__nodesselection-rect:focus-visible {
outline: none;
}
.react-flow .react-flow__edges {
pointer-events: none;
overflow: visible;
}
.react-flow__edge-path, .react-flow__connection-path {
stroke: #b1b1b7;
stroke-width: 1px;
fill: none;
}
.react-flow__edge {
pointer-events: visibleStroke;
cursor: pointer;
}
.react-flow__edge.animated path {
stroke-dasharray: 5;
animation: .5s linear infinite dashdraw;
}
.react-flow__edge.animated path.react-flow__edge-interaction {
stroke-dasharray: none;
animation: none;
}
.react-flow__edge.inactive {
pointer-events: none;
}
.react-flow__edge.selected, .react-flow__edge:focus, .react-flow__edge:focus-visible {
outline: none;
}
.react-flow__edge.selected .react-flow__edge-path, .react-flow__edge:focus .react-flow__edge-path, .react-flow__edge:focus-visible .react-flow__edge-path {
stroke: #555;
}
.react-flow__edge-textwrapper {
pointer-events: all;
}
.react-flow__edge-textbg {
fill: #fff;
}
.react-flow__edge .react-flow__edge-text {
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}
.react-flow__connection {
pointer-events: none;
}
.react-flow__connection .animated {
stroke-dasharray: 5;
animation: .5s linear infinite dashdraw;
}
.react-flow__connectionline {
z-index: 1001;
}
.react-flow__nodes {
pointer-events: none;
transform-origin: 0 0;
}
.react-flow__node {
-webkit-user-select: none;
user-select: none;
pointer-events: all;
transform-origin: 0 0;
box-sizing: border-box;
cursor: -webkit-grab;
cursor: grab;
position: absolute;
}
.react-flow__node.dragging {
cursor: -webkit-grabbing;
cursor: grabbing;
}
.react-flow__nodesselection {
z-index: 3;
transform-origin: 0 0;
pointer-events: none;
}
.react-flow__nodesselection-rect {
pointer-events: all;
cursor: -webkit-grab;
cursor: grab;
position: absolute;
}
.react-flow__handle {
pointer-events: none;
background: #1a192b;
border: 1px solid #fff;
border-radius: 100%;
width: 6px;
min-width: 5px;
height: 6px;
min-height: 5px;
position: absolute;
}
.react-flow__handle.connectionindicator {
pointer-events: all;
cursor: crosshair;
}
.react-flow__handle-bottom {
top: auto;
bottom: -4px;
left: 50%;
transform: translate(-50%);
}
.react-flow__handle-top {
top: -4px;
left: 50%;
transform: translate(-50%);
}
.react-flow__handle-left {
top: 50%;
left: -4px;
transform: translate(0, -50%);
}
.react-flow__handle-right {
top: 50%;
right: -4px;
transform: translate(0, -50%);
}
.react-flow__edgeupdater {
cursor: move;
pointer-events: all;
}
.react-flow__panel {
z-index: 5;
margin: 15px;
position: absolute;
}
.react-flow__panel.top {
top: 0;
}
.react-flow__panel.bottom {
bottom: 0;
}
.react-flow__panel.left {
left: 0;
}
.react-flow__panel.right {
right: 0;
}
.react-flow__panel.center {
left: 50%;
transform: translateX(-50%);
}
.react-flow__attribution {
background: #ffffff80;
margin: 0;
padding: 2px 3px;
font-size: 10px;
}
.react-flow__attribution a {
color: #999;
text-decoration: none;
}
@keyframes dashdraw {
from {
stroke-dashoffset: 10px;
}
}
.react-flow__edgelabel-renderer {
pointer-events: none;
-webkit-user-select: none;
user-select: none;
width: 100%;
height: 100%;
position: absolute;
}
.react-flow__edge.updating .react-flow__edge-path {
stroke: #777;
}
.react-flow__edge-text {
font-size: 10px;
}
.react-flow__node.selectable:focus, .react-flow__node.selectable:focus-visible {
outline: none;
}
.react-flow__node-default, .react-flow__node-input, .react-flow__node-output, .react-flow__node-group {
color: #222;
text-align: center;
background-color: #fff;
border: 1px solid #1a192b;
border-radius: 3px;
width: 150px;
padding: 10px;
font-size: 12px;
}
.react-flow__node-default.selectable:hover, .react-flow__node-input.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {
box-shadow: 0 1px 4px 1px #00000014;
}
.react-flow__node-default.selectable.selected, .react-flow__node-default.selectable:focus, .react-flow__node-default.selectable:focus-visible, .react-flow__node-input.selectable.selected, .react-flow__node-input.selectable:focus, .react-flow__node-input.selectable:focus-visible, .react-flow__node-output.selectable.selected, .react-flow__node-output.selectable:focus, .react-flow__node-output.selectable:focus-visible, .react-flow__node-group.selectable.selected, .react-flow__node-group.selectable:focus, .react-flow__node-group.selectable:focus-visible {
box-shadow: 0 0 0 .5px #1a192b;
}
.react-flow__node-group {
background-color: #f0f0f040;
}
.react-flow__nodesselection-rect, .react-flow__selection {
background: #0059dc14;
border: 1px dotted #0059dccc;
}
.react-flow__nodesselection-rect:focus, .react-flow__nodesselection-rect:focus-visible, .react-flow__selection:focus, .react-flow__selection:focus-visible {
outline: none;
}
.react-flow__controls {
box-shadow: 0 0 2px 1px #00000014;
}
.react-flow__controls-button {
box-sizing: content-box;
cursor: pointer;
-webkit-user-select: none;
user-select: none;
background: #fefefe;
border: none;
border-bottom: 1px solid #eee;
justify-content: center;
align-items: center;
width: 16px;
height: 16px;
padding: 5px;
display: flex;
}
.react-flow__controls-button:hover {
background: #f4f4f4;
}
.react-flow__controls-button svg {
width: 100%;
max-width: 12px;
max-height: 12px;
}
.react-flow__controls-button:disabled {
pointer-events: none;
}
.react-flow__controls-button:disabled svg {
fill-opacity: .4;
}
.react-flow__minimap {
background-color: #fff;
}
.react-flow__minimap svg {
display: block;
}
.react-flow__resize-control {
position: absolute;
}
.react-flow__resize-control.left, .react-flow__resize-control.right {
cursor: ew-resize;
}
.react-flow__resize-control.top, .react-flow__resize-control.bottom {
cursor: ns-resize;
}
.react-flow__resize-control.top.left, .react-flow__resize-control.bottom.right {
cursor: nwse-resize;
}
.react-flow__resize-control.bottom.left, .react-flow__resize-control.top.right {
cursor: nesw-resize;
}
.react-flow__resize-control.handle {
background-color: #3367d9;
border: 1px solid #fff;
border-radius: 1px;
width: 4px;
height: 4px;
transform: translate(-50%, -50%);
}
.react-flow__resize-control.handle.left {
top: 50%;
left: 0;
}
.react-flow__resize-control.handle.right {
top: 50%;
left: 100%;
}
.react-flow__resize-control.handle.top {
top: 0;
left: 50%;
}
.react-flow__resize-control.handle.bottom {
top: 100%;
left: 50%;
}
.react-flow__resize-control.handle.top.left, .react-flow__resize-control.handle.bottom.left {
left: 0;
}
.react-flow__resize-control.handle.top.right, .react-flow__resize-control.handle.bottom.right {
left: 100%;
}
.react-flow__resize-control.line {
border: 0 solid #3367d9;
}
.react-flow__resize-control.line.left, .react-flow__resize-control.line.right {
width: 1px;
height: 100%;
top: 0;
transform: translate(-50%);
}
.react-flow__resize-control.line.left {
border-left-width: 1px;
left: 0;
}
.react-flow__resize-control.line.right {
border-right-width: 1px;
left: 100%;
}
.react-flow__resize-control.line.top, .react-flow__resize-control.line.bottom {
width: 100%;
height: 1px;
left: 0;
transform: translate(0, -50%);
}
.react-flow__resize-control.line.top {
border-top-width: 1px;
top: 0;
}
.react-flow__resize-control.line.bottom {
border-bottom-width: 1px;
top: 100%;
}
/*# sourceMappingURL=8b0a3_reactflow_dist_style_33af7838.css.map*/
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 it is too large Load Diff
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 it is too large Load Diff
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
@@ -388,6 +388,8 @@ 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$chevron$2d$down$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$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/chevron-down.js [app-client] (ecmascript) <export default as ChevronDown>");
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$trash$2d$2$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$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/trash-2.js [app-client] (ecmascript) <export default as Trash2>");
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$network$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$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/network.js [app-client] (ecmascript) <export default as Network>");
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$layout$2d$grid$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__LayoutGrid$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/layout-grid.js [app-client] (ecmascript) <export default as LayoutGrid>");
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)");
@@ -416,6 +418,8 @@ function SiteHeader() {
const { searchMembers, searchResults } = (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 { data: session, status } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSession"])();
const { showAlert, showConfirm, showPrompt } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$alert$2d$dialog$2d$custom$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useDialog"])();
const pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["usePathname"])();
const searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSearchParams"])();
const [searchQuery, setSearchQuery] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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 [showResults, setShowResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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"])(false);
const [familyTrees, setFamilyTrees] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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"])([]);
@@ -423,6 +427,9 @@ function SiteHeader() {
const [deletingTreeId, setDeletingTreeId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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"])(null);
const searchRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$__["useRef"])(null);
const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useRouter"])();
// 获取当前视图模式
const currentViewMode = searchParams.get('view') || 'traditional';
const isTreePage = pathname === '/tree';
// 生成带有 treeId 的 URL
const getUrlWithTreeId = (path)=>{
if (currentTree?.id) {
@@ -430,6 +437,15 @@ function SiteHeader() {
}
return path;
};
// 切换视图模式
const handleViewModeChange = (mode)=>{
const params = new URLSearchParams(searchParams.toString());
params.set('view', mode);
if (currentTree?.id) {
params.set('treeId', currentTree.id);
}
router.push(`${pathname}?${params.toString()}`);
};
const getRoleBadge = (role)=>{
switch(role){
case "OWNER":
@@ -438,7 +454,7 @@ function SiteHeader() {
children: "所有者"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 53,
lineNumber: 69,
columnNumber: 16
}, this);
case "EDITOR":
@@ -447,7 +463,7 @@ function SiteHeader() {
children: "编辑"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 55,
lineNumber: 71,
columnNumber: 16
}, this);
case "VIEWER":
@@ -456,7 +472,7 @@ function SiteHeader() {
children: "查看"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 57,
lineNumber: 73,
columnNumber: 16
}, this);
default:
@@ -522,20 +538,13 @@ function SiteHeader() {
// 获取家族树列表
const loadFamilyTrees = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$__["useCallback"])({
"SiteHeader.useCallback[loadFamilyTrees]": ()=>{
// 只在 session 加载完成且用户已登录时才获取
if (status === 'loading') {
return;
}
if (!session?.user?.id) {
setFamilyTrees([]);
setCurrentTree(null);
return;
}
fetch('/api/trees').then({
if (!session?.user?.id || status !== 'authenticated') return;
const controller = new AbortController();
fetch('/api/trees', {
signal: controller.signal
}).then({
"SiteHeader.useCallback[loadFamilyTrees]": (res)=>{
if (!res.ok) {
throw new Error(`HTTP ${res.status}`);
}
if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`);
return res.json();
}
}["SiteHeader.useCallback[loadFamilyTrees]"]).then({
@@ -561,12 +570,15 @@ function SiteHeader() {
}
}["SiteHeader.useCallback[loadFamilyTrees]"]).catch({
"SiteHeader.useCallback[loadFamilyTrees]": (err)=>{
// 只在非 abort 错误时才记录
if (err.name !== 'AbortError') {
// 忽略 abort 错误和 fetch 错误(可能是页面切换导致的)
if (err.name !== 'AbortError' && err.message !== 'Failed to fetch') {
console.error('获取家族树列表失败:', err);
}
}
}["SiteHeader.useCallback[loadFamilyTrees]"]);
return ({
"SiteHeader.useCallback[loadFamilyTrees]": ()=>controller.abort()
})["SiteHeader.useCallback[loadFamilyTrees]"];
}
}["SiteHeader.useCallback[loadFamilyTrees]"], [
session?.user?.id,
@@ -637,12 +649,12 @@ function SiteHeader() {
className: "h-5 w-5"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 220,
lineNumber: 229,
columnNumber: 15
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 219,
lineNumber: 228,
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", {
@@ -650,13 +662,13 @@ function SiteHeader() {
children: "华夏谱"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 222,
lineNumber: 231,
columnNumber: 13
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 218,
lineNumber: 227,
columnNumber: 11
}, this),
session && familyTrees.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"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenu"], {
@@ -672,25 +684,25 @@ function SiteHeader() {
children: currentTree?.name || '选择家族树'
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 230,
lineNumber: 239,
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"])(__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$chevron$2d$down$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], {
className: "h-4 w-4 flex-shrink-0"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 231,
lineNumber: 240,
columnNumber: 19
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 229,
lineNumber: 238,
columnNumber: 17
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 228,
lineNumber: 237,
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuContent"], {
@@ -701,12 +713,12 @@ function SiteHeader() {
children: "我的家族树"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 235,
lineNumber: 244,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 236,
lineNumber: 245,
columnNumber: 17
}, this),
familyTrees.map((tree)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
@@ -726,14 +738,14 @@ function SiteHeader() {
children: tree.name
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 249,
lineNumber: 258,
columnNumber: 23
}, this),
getRoleBadge(tree.currentUserRole)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 248,
lineNumber: 257,
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", {
@@ -744,7 +756,7 @@ function SiteHeader() {
children: "✓"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 254,
lineNumber: 263,
columnNumber: 25
}, this),
tree.ownerId === session?.user?.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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"], {
@@ -757,29 +769,29 @@ function SiteHeader() {
className: "h-3 w-3"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 264,
lineNumber: 273,
columnNumber: 27
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 257,
lineNumber: 266,
columnNumber: 25
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 252,
lineNumber: 261,
columnNumber: 21
}, this)
]
}, tree.id, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 238,
lineNumber: 247,
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"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 270,
lineNumber: 279,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
@@ -790,32 +802,32 @@ function SiteHeader() {
className: "h-4 w-4 mr-2"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 275,
lineNumber: 284,
columnNumber: 19
}, this),
"创建新家族树"
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 271,
lineNumber: 280,
columnNumber: 17
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 234,
lineNumber: 243,
columnNumber: 15
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 227,
lineNumber: 236,
columnNumber: 13
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 217,
lineNumber: 226,
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", {
@@ -827,7 +839,7 @@ function SiteHeader() {
children: "总览 (Overview)"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 284,
lineNumber: 293,
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"], {
@@ -836,7 +848,7 @@ function SiteHeader() {
children: "族谱 (Tree)"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 290,
lineNumber: 299,
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"], {
@@ -845,7 +857,7 @@ function SiteHeader() {
children: "成员 (Members)"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 293,
lineNumber: 302,
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"], {
@@ -854,13 +866,140 @@ function SiteHeader() {
children: "大事记 (Timeline)"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 296,
lineNumber: 305,
columnNumber: 11
}, this),
isTreePage && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenu"], {
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuTrigger"], {
asChild: true,
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: "outline",
size: "sm",
className: "gap-2",
children: [
currentViewMode === 'traditional' ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], {
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$network$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$3e$__["Network"], {
className: "h-4 w-4"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 316,
columnNumber: 23
}, this),
"传统族谱"
]
}, void 0, true) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], {
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$layout$2d$grid$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__LayoutGrid$3e$__["LayoutGrid"], {
className: "h-4 w-4"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 321,
columnNumber: 23
}, this),
"组织架构"
]
}, void 0, true),
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$chevron$2d$down$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], {
className: "h-3 w-3"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 325,
columnNumber: 19
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 313,
columnNumber: 17
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 312,
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuContent"], {
align: "end",
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuLabel"], {
children: "显示模式"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 329,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 330,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
onClick: ()=>handleViewModeChange('traditional'),
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$network$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$3e$__["Network"], {
className: "h-4 w-4 mr-2"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 332,
columnNumber: 19
}, this),
"传统族谱",
currentViewMode === 'traditional' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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: "ml-auto text-primary",
children: "✓"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 334,
columnNumber: 57
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 331,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
onClick: ()=>handleViewModeChange('org-chart'),
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$layout$2d$grid$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__LayoutGrid$3e$__["LayoutGrid"], {
className: "h-4 w-4 mr-2"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 337,
columnNumber: 19
}, this),
"组织架构",
currentViewMode === 'org-chart' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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: "ml-auto text-primary",
children: "✓"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 339,
columnNumber: 55
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 336,
columnNumber: 17
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 328,
columnNumber: 15
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 311,
columnNumber: 13
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 283,
lineNumber: 292,
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", {
@@ -874,7 +1013,7 @@ function SiteHeader() {
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: 303,
lineNumber: 348,
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"], {
@@ -885,7 +1024,7 @@ function SiteHeader() {
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: 304,
lineNumber: 349,
columnNumber: 13
}, this),
showResults && searchResults.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"])("div", {
@@ -906,7 +1045,7 @@ function SiteHeader() {
children: member.fullName
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 324,
lineNumber: 369,
columnNumber: 27
}, 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", {
@@ -914,7 +1053,7 @@ function SiteHeader() {
children: member.gender === "MALE" ? "男" : "女"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 325,
lineNumber: 370,
columnNumber: 27
}, 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", {
@@ -926,13 +1065,13 @@ function SiteHeader() {
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 328,
lineNumber: 373,
columnNumber: 27
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 323,
lineNumber: 368,
columnNumber: 25
}, 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", {
@@ -943,28 +1082,28 @@ function SiteHeader() {
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 330,
lineNumber: 375,
columnNumber: 25
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 322,
lineNumber: 367,
columnNumber: 23
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 321,
lineNumber: 366,
columnNumber: 21
}, this)
}, member.id, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 316,
lineNumber: 361,
columnNumber: 19
}, this))
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 314,
lineNumber: 359,
columnNumber: 15
}, this),
showResults && searchQuery && searchResults.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"])("div", {
@@ -972,13 +1111,13 @@ function SiteHeader() {
children: "未找到匹配的成员"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 343,
lineNumber: 388,
columnNumber: 15
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 302,
lineNumber: 347,
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"], {
@@ -990,7 +1129,7 @@ function SiteHeader() {
className: "h-5 w-5"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 350,
lineNumber: 395,
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", {
@@ -998,13 +1137,13 @@ function SiteHeader() {
children: "Notifications"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 351,
lineNumber: 396,
columnNumber: 13
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 349,
lineNumber: 394,
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"], {
@@ -1018,7 +1157,7 @@ function SiteHeader() {
className: "h-5 w-5"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 356,
lineNumber: 401,
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", {
@@ -1026,18 +1165,18 @@ function SiteHeader() {
children: "Settings"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 357,
lineNumber: 402,
columnNumber: 15
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 355,
lineNumber: 400,
columnNumber: 13
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 354,
lineNumber: 399,
columnNumber: 11
}, this),
status === "loading" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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"], {
@@ -1046,12 +1185,12 @@ function SiteHeader() {
children: "..."
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 363,
lineNumber: 408,
columnNumber: 15
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 362,
lineNumber: 407,
columnNumber: 13
}, this) : session ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenu"], {
children: [
@@ -1068,30 +1207,30 @@ function SiteHeader() {
alt: session.user?.name || "User"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 370,
lineNumber: 415,
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"], {
children: getUserInitial()
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 371,
lineNumber: 416,
columnNumber: 21
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 369,
lineNumber: 414,
columnNumber: 19
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 368,
lineNumber: 413,
columnNumber: 17
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 367,
lineNumber: 412,
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuContent"], {
@@ -1109,7 +1248,7 @@ function SiteHeader() {
children: session.user?.name || "用户"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 378,
lineNumber: 423,
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", {
@@ -1117,23 +1256,23 @@ function SiteHeader() {
children: session.user?.email
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 379,
lineNumber: 424,
columnNumber: 21
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 377,
lineNumber: 422,
columnNumber: 19
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 376,
lineNumber: 421,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 384,
lineNumber: 429,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
@@ -1146,30 +1285,30 @@ function SiteHeader() {
className: "mr-2 h-4 w-4"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 387,
lineNumber: 432,
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"])("span", {
children: "系统设置"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 388,
lineNumber: 433,
columnNumber: 21
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 386,
lineNumber: 431,
columnNumber: 19
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 385,
lineNumber: 430,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 391,
lineNumber: 436,
columnNumber: 17
}, 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$dropdown$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
@@ -1180,32 +1319,32 @@ function SiteHeader() {
className: "mr-2 h-4 w-4"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 393,
lineNumber: 438,
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"])("span", {
children: "退出登录"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 394,
lineNumber: 439,
columnNumber: 19
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 392,
lineNumber: 437,
columnNumber: 17
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 375,
lineNumber: 420,
columnNumber: 15
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 366,
lineNumber: 411,
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: "/auth/signin",
@@ -1215,37 +1354,39 @@ function SiteHeader() {
children: "登录"
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 400,
lineNumber: 445,
columnNumber: 15
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 399,
lineNumber: 444,
columnNumber: 13
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 301,
lineNumber: 346,
columnNumber: 9
}, this)
]
}, void 0, true, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 216,
lineNumber: 225,
columnNumber: 7
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
lineNumber: 215,
lineNumber: 224,
columnNumber: 5
}, this);
}
_s(SiteHeader, "+blv2fB761tlmHxh0WsV8IvqzJc=", false, function() {
_s(SiteHeader, "dJCDANPykjUX9dgtE61179HOBx0=", 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"],
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$2d$auth$40$4$2e$24$2e$13_next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSession"],
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$alert$2d$dialog$2d$custom$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useDialog"],
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["usePathname"],
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSearchParams"],
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useRouter"]
];
});
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/Documents_go-new_chinese-family-tree_e716bb4a._.js"
],
source: "dynamic"
});
@@ -92,6 +92,7 @@
--color-orange-200: #ffd7a8;
--color-orange-500: #fe6e00;
--color-orange-700: #c53c00;
--color-amber-700: #b75000;
--color-yellow-50: #fefce8;
--color-yellow-200: #fff085;
--color-yellow-400: #fac800;
@@ -123,6 +124,7 @@
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-500: #6a7282;
--color-gray-700: #364153;
--color-neutral-100: #f5f5f5;
--color-neutral-200: #e5e5e5;
@@ -192,6 +194,7 @@
--color-orange-200: lab(88.4871% 9.94918 28.8378);
--color-orange-500: lab(64.272% 57.1788 90.3583);
--color-orange-700: lab(46.4615% 57.7275 70.8507);
--color-amber-700: lab(47.2709% 42.9082 69.2966);
--color-yellow-50: lab(98.6846% -1.79055 9.7766);
--color-yellow-200: lab(94.3433% -5.00429 52.9663);
--color-yellow-400: lab(83.2664% 8.65132 106.895);
@@ -223,6 +226,7 @@
--color-gray-50: lab(98.2596% -.247031 -.706708);
--color-gray-100: lab(96.1596% -.0823438 -1.13575);
--color-gray-200: lab(91.6229% -.159115 -2.26791);
--color-gray-500: lab(47.7841% -.393182 -10.0268);
--color-gray-700: lab(27.1134% -.956401 -12.3224);
--color-neutral-100: lab(96.52% -.0000298023 .0000119209);
--color-neutral-200: lab(90.952% 0 -.0000119209);
@@ -632,6 +636,10 @@
top: 100%;
}
.-right-0\.5 {
right: calc(var(--spacing) * -.5);
}
.-right-1 {
right: calc(var(--spacing) * -1);
}
@@ -660,6 +668,14 @@
right: calc(var(--spacing) * 4);
}
.-bottom-0\.5 {
bottom: calc(var(--spacing) * -.5);
}
.-bottom-1 {
bottom: calc(var(--spacing) * -1);
}
.-bottom-12 {
bottom: calc(var(--spacing) * -12);
}
@@ -724,6 +740,10 @@
z-index: 20;
}
.z-30 {
z-index: 30;
}
.z-50 {
z-index: 50;
}
@@ -858,6 +878,10 @@
margin-top: calc(var(--spacing) * 2);
}
.mt-3 {
margin-top: calc(var(--spacing) * 3);
}
.mt-4 {
margin-top: calc(var(--spacing) * 4);
}
@@ -1073,6 +1097,10 @@
height: calc(var(--spacing) * 3);
}
.h-3\.5 {
height: calc(var(--spacing) * 3.5);
}
.h-4 {
height: calc(var(--spacing) * 4);
}
@@ -1257,6 +1285,10 @@
width: calc(var(--spacing) * 3);
}
.w-3\.5 {
width: calc(var(--spacing) * 3.5);
}
.w-3\/4 {
width: 75%;
}
@@ -1309,6 +1341,10 @@
width: calc(var(--spacing) * 32);
}
.w-48 {
width: calc(var(--spacing) * 48);
}
.w-56 {
width: calc(var(--spacing) * 56);
}
@@ -1449,6 +1485,10 @@
flex: 1;
}
.flex-shrink {
flex-shrink: 1;
}
.flex-shrink-0, .shrink-0 {
flex-shrink: 0;
}
@@ -2091,6 +2131,10 @@
border-color: #0000;
}
.border-white {
border-color: var(--color-white);
}
.border-yellow-400 {
border-color: var(--color-yellow-400);
}
@@ -2251,6 +2295,10 @@
background-color: var(--color-gray-100);
}
.bg-gray-500 {
background-color: var(--color-gray-500);
}
.bg-green-50 {
background-color: var(--color-green-50);
}
@@ -2632,6 +2680,10 @@
padding-bottom: calc(var(--spacing) * 20);
}
.pl-1 {
padding-left: calc(var(--spacing) * 1);
}
.pl-2 {
padding-left: calc(var(--spacing) * 2);
}
@@ -2825,6 +2877,10 @@
color: var(--accent-foreground);
}
.text-amber-700 {
color: var(--color-amber-700);
}
.text-background {
color: var(--background);
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/Documents_go-new_chinese-family-tree_fa7c1a71._.js",
"static/chunks/a0629__pnpm_a5fa0ed9._.js",
"static/chunks/4c051_react-image-crop_dist_ReactCrop_bde06fd8.css"
],
source: "dynamic"
});
@@ -0,0 +1,8 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/Documents_go-new_chinese-family-tree_c5040fe9._.js",
"static/chunks/a0629__pnpm_67be5524._.js"
],
source: "dynamic"
});
@@ -2,7 +2,7 @@
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/Documents_go-new_chinese-family-tree_7f5cc112._.js",
"static/chunks/a0629__pnpm_15b3e10c._.js"
"static/chunks/a0629__pnpm_c7eed983._.js"
],
source: "dynamic"
});
@@ -0,0 +1,35 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/6bb63_echarts-for-react_esm_index_bb5838ff.js",
"static/chunks/Documents_go-new_chinese-family-tree_499f53e3._.js",
"static/chunks/56139_zrender_lib_dd4f683d._.js",
"static/chunks/f639c_echarts_lib_util_d4941c19._.js",
"static/chunks/f639c_echarts_lib_model_76b10339._.js",
"static/chunks/f639c_echarts_lib_label_1eda581d._.js",
"static/chunks/f639c_echarts_lib_core_83e874fa._.js",
"static/chunks/f639c_echarts_lib_scale_c4e1b6f8._.js",
"static/chunks/f639c_echarts_lib_data_b614132d._.js",
"static/chunks/f639c_echarts_lib_component_tooltip_6c6de848._.js",
"static/chunks/f639c_echarts_lib_component_axis_85c6ff97._.js",
"static/chunks/f639c_echarts_lib_component_axisPointer_98ac8b14._.js",
"static/chunks/f639c_echarts_lib_component_helper_7aa6326d._.js",
"static/chunks/f639c_echarts_lib_component_dataZoom_e286f5bf._.js",
"static/chunks/f639c_echarts_lib_component_toolbox_521b5e37._.js",
"static/chunks/f639c_echarts_lib_component_marker_cd5e44e5._.js",
"static/chunks/f639c_echarts_lib_component_legend_f6ba321d._.js",
"static/chunks/f639c_echarts_lib_component_visualMap_ee0662bf._.js",
"static/chunks/f639c_echarts_lib_component_a60fa07b._.js",
"static/chunks/f639c_echarts_lib_chart_helper_d540efe4._.js",
"static/chunks/f639c_echarts_lib_chart_line_ce4c6105._.js",
"static/chunks/f639c_echarts_lib_chart_bar_5820a790._.js",
"static/chunks/f639c_echarts_lib_chart_treemap_7a38bd49._.js",
"static/chunks/f639c_echarts_lib_chart_graph_f9c2705e._.js",
"static/chunks/f639c_echarts_lib_chart_1638f649._.js",
"static/chunks/f639c_echarts_lib_coord_8d85a72c._.js",
"static/chunks/f639c_echarts_lib_92e26ca0._.js",
"static/chunks/f639c_echarts_index_dade51e7.js",
"static/chunks/a0629__pnpm_1bbb2e20._.js"
],
source: "dynamic"
});
@@ -1,9 +1,12 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_7cd3d498.js",
"static/chunks/Documents_go-new_chinese-family-tree_41b2729b._.js",
"static/chunks/a0629__pnpm_474131c1._.js"
"static/chunks/a0629__pnpm_2f1a5cab._.js",
"static/chunks/Documents_go-new_chinese-family-tree_ed9ee666._.js",
"static/chunks/3032b_dexie_2a245be4._.js",
"static/chunks/14b10_pako_dist_pako_esm_mjs_63ae9500._.js",
"static/chunks/0f47f_jspdf_dist_jspdf_es_min_f400e067.js",
"static/chunks/a0629__pnpm_3724daf1._.js"
],
source: "dynamic"
});
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 it is too large Load Diff
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 it is too large Load Diff
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 it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,15 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/4e98a_next_dist_compiled_662da5c2._.js",
"static/chunks/4e98a_next_dist_shared_lib_973712af._.js",
"static/chunks/4e98a_next_dist_client_99076394._.js",
"static/chunks/4e98a_next_dist_1a0ae50c._.js",
"static/chunks/4e98a_next_app_020fddc2.js",
"static/chunks/[next]_entry_page-loader_ts_97d2bbab._.js",
"static/chunks/18ced_react-dom_797793fb._.js",
"static/chunks/a0629__pnpm_2ca28523._.js",
"static/chunks/[root-of-the-server]__dda05d7f._.js"
],
source: "entry"
});
File diff suppressed because one or more lines are too long
@@ -0,0 +1,15 @@
(globalThis.TURBOPACK_CHUNK_LISTS || (globalThis.TURBOPACK_CHUNK_LISTS = [])).push({
script: typeof document === "object" ? document.currentScript : undefined,
chunks: [
"static/chunks/4e98a_next_dist_compiled_662da5c2._.js",
"static/chunks/4e98a_next_dist_shared_lib_1a19caea._.js",
"static/chunks/4e98a_next_dist_client_99076394._.js",
"static/chunks/4e98a_next_dist_c302a28c._.js",
"static/chunks/4e98a_next_error_53e529e4.js",
"static/chunks/[next]_entry_page-loader_ts_faadefb0._.js",
"static/chunks/18ced_react-dom_797793fb._.js",
"static/chunks/a0629__pnpm_2ca28523._.js",
"static/chunks/[root-of-the-server]__d6f1a546._.js"
],
source: "entry"
});
File diff suppressed because one or more lines are too long
@@ -0,0 +1,23 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[next]/entry/page-loader.ts { PAGE => \"[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/app.js [client] (ecmascript)\" } [client] (ecmascript)", ((__turbopack_context__, module, exports) => {
const PAGE_PATH = "/_app";
(window.__NEXT_P = window.__NEXT_P || []).push([
PAGE_PATH,
()=>{
return __turbopack_context__.r("[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/app.js [client] (ecmascript)");
}
]);
// @ts-expect-error module.hot exists
if (module.hot) {
// @ts-expect-error module.hot exists
module.hot.dispose(function() {
window.__NEXT_P.push([
PAGE_PATH
]);
});
}
}),
]);
//# sourceMappingURL=%5Bnext%5D_entry_page-loader_ts_97d2bbab._.js.map
@@ -0,0 +1,6 @@
{
"version": 3,
"sources": [],
"sections": [
{"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["turbopack:///[next]/entry/page-loader.ts"],"sourcesContent":["const PAGE_PATH = \"/_app\";\n\n/// <reference types=\"next/client\" />\n\n// inserted by rust code\ndeclare const PAGE_PATH: string\n\n // Adapted from https://github.com/vercel/next.js/blob/b7f9f1f98fc8ab602e84825105b5727272b72e7d/packages/next/src/build/webpack/loaders/next-client-pages-loader.ts\n;(window.__NEXT_P = window.__NEXT_P || []).push([\n PAGE_PATH,\n () => {\n return require('PAGE')\n },\n])\n// @ts-expect-error module.hot exists\nif (module.hot) {\n // @ts-expect-error module.hot exists\n module.hot.dispose(function () {\n window.__NEXT_P.push([PAGE_PATH])\n })\n}\n"],"names":[],"mappings":"AAAA,MAAM,YAAY;AAQjB,CAAC,OAAO,QAAQ,GAAG,OAAO,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC;IAC9C;IACA;QACE;IACF;CACD;AACD,qCAAqC;AACrC,IAAI,OAAO,GAAG,EAAE;IACd,qCAAqC;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC;YAAC;SAAU;IAClC;AACF","ignoreList":[0]}}]
}
@@ -0,0 +1,23 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[next]/entry/page-loader.ts { PAGE => \"[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/error.js [client] (ecmascript)\" } [client] (ecmascript)", ((__turbopack_context__, module, exports) => {
const PAGE_PATH = "/_error";
(window.__NEXT_P = window.__NEXT_P || []).push([
PAGE_PATH,
()=>{
return __turbopack_context__.r("[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/error.js [client] (ecmascript)");
}
]);
// @ts-expect-error module.hot exists
if (module.hot) {
// @ts-expect-error module.hot exists
module.hot.dispose(function() {
window.__NEXT_P.push([
PAGE_PATH
]);
});
}
}),
]);
//# sourceMappingURL=%5Bnext%5D_entry_page-loader_ts_faadefb0._.js.map
@@ -0,0 +1,6 @@
{
"version": 3,
"sources": [],
"sections": [
{"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":["turbopack:///[next]/entry/page-loader.ts"],"sourcesContent":["const PAGE_PATH = \"/_error\";\n\n/// <reference types=\"next/client\" />\n\n// inserted by rust code\ndeclare const PAGE_PATH: string\n\n // Adapted from https://github.com/vercel/next.js/blob/b7f9f1f98fc8ab602e84825105b5727272b72e7d/packages/next/src/build/webpack/loaders/next-client-pages-loader.ts\n;(window.__NEXT_P = window.__NEXT_P || []).push([\n PAGE_PATH,\n () => {\n return require('PAGE')\n },\n])\n// @ts-expect-error module.hot exists\nif (module.hot) {\n // @ts-expect-error module.hot exists\n module.hot.dispose(function () {\n window.__NEXT_P.push([PAGE_PATH])\n })\n}\n"],"names":[],"mappings":"AAAA,MAAM,YAAY;AAQjB,CAAC,OAAO,QAAQ,GAAG,OAAO,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC;IAC9C;IACA;QACE;IACF;CACD;AACD,qCAAqC;AACrC,IAAI,OAAO,GAAG,EAAE;IACd,qCAAqC;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC;YAAC;SAAU;IAClC;AACF","ignoreList":[0]}}]
}
@@ -176,6 +176,7 @@
--color-orange-200: #ffd7a8;
--color-orange-500: #fe6e00;
--color-orange-700: #c53c00;
--color-amber-700: #b75000;
--color-yellow-50: #fefce8;
--color-yellow-200: #fff085;
--color-yellow-400: #fac800;
@@ -207,6 +208,7 @@
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-500: #6a7282;
--color-gray-700: #364153;
--color-neutral-100: #f5f5f5;
--color-neutral-200: #e5e5e5;
@@ -276,6 +278,7 @@
--color-orange-200: lab(88.4871% 9.94918 28.8378);
--color-orange-500: lab(64.272% 57.1788 90.3583);
--color-orange-700: lab(46.4615% 57.7275 70.8507);
--color-amber-700: lab(47.2709% 42.9082 69.2966);
--color-yellow-50: lab(98.6846% -1.79055 9.7766);
--color-yellow-200: lab(94.3433% -5.00429 52.9663);
--color-yellow-400: lab(83.2664% 8.65132 106.895);
@@ -307,6 +310,7 @@
--color-gray-50: lab(98.2596% -.247031 -.706708);
--color-gray-100: lab(96.1596% -.0823438 -1.13575);
--color-gray-200: lab(91.6229% -.159115 -2.26791);
--color-gray-500: lab(47.7841% -.393182 -10.0268);
--color-gray-700: lab(27.1134% -.956401 -12.3224);
--color-neutral-100: lab(96.52% -.0000298023 .0000119209);
--color-neutral-200: lab(90.952% 0 -.0000119209);
@@ -716,6 +720,10 @@
top: 100%;
}
.-right-0\.5 {
right: calc(var(--spacing) * -.5);
}
.-right-1 {
right: calc(var(--spacing) * -1);
}
@@ -744,6 +752,14 @@
right: calc(var(--spacing) * 4);
}
.-bottom-0\.5 {
bottom: calc(var(--spacing) * -.5);
}
.-bottom-1 {
bottom: calc(var(--spacing) * -1);
}
.-bottom-12 {
bottom: calc(var(--spacing) * -12);
}
@@ -808,6 +824,10 @@
z-index: 20;
}
.z-30 {
z-index: 30;
}
.z-50 {
z-index: 50;
}
@@ -942,6 +962,10 @@
margin-top: calc(var(--spacing) * 2);
}
.mt-3 {
margin-top: calc(var(--spacing) * 3);
}
.mt-4 {
margin-top: calc(var(--spacing) * 4);
}
@@ -1157,6 +1181,10 @@
height: calc(var(--spacing) * 3);
}
.h-3\.5 {
height: calc(var(--spacing) * 3.5);
}
.h-4 {
height: calc(var(--spacing) * 4);
}
@@ -1341,6 +1369,10 @@
width: calc(var(--spacing) * 3);
}
.w-3\.5 {
width: calc(var(--spacing) * 3.5);
}
.w-3\/4 {
width: 75%;
}
@@ -1393,6 +1425,10 @@
width: calc(var(--spacing) * 32);
}
.w-48 {
width: calc(var(--spacing) * 48);
}
.w-56 {
width: calc(var(--spacing) * 56);
}
@@ -1533,6 +1569,10 @@
flex: 1;
}
.flex-shrink {
flex-shrink: 1;
}
.flex-shrink-0, .shrink-0 {
flex-shrink: 0;
}
@@ -2175,6 +2215,10 @@
border-color: #0000;
}
.border-white {
border-color: var(--color-white);
}
.border-yellow-400 {
border-color: var(--color-yellow-400);
}
@@ -2335,6 +2379,10 @@
background-color: var(--color-gray-100);
}
.bg-gray-500 {
background-color: var(--color-gray-500);
}
.bg-green-50 {
background-color: var(--color-green-50);
}
@@ -2716,6 +2764,10 @@
padding-bottom: calc(var(--spacing) * 20);
}
.pl-1 {
padding-left: calc(var(--spacing) * 1);
}
.pl-2 {
padding-left: calc(var(--spacing) * 2);
}
@@ -2909,6 +2961,10 @@
color: var(--accent-foreground);
}
.text-amber-700 {
color: var(--color-amber-700);
}
.text-background {
color: var(--background);
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,472 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[turbopack]/browser/dev/hmr-client/hmr-client.ts [client] (ecmascript)", ((__turbopack_context__) => {
"use strict";
/// <reference path="../../../shared/runtime-types.d.ts" />
/// <reference path="../../runtime/base/dev-globals.d.ts" />
/// <reference path="../../runtime/base/dev-protocol.d.ts" />
/// <reference path="../../runtime/base/dev-extensions.ts" />
__turbopack_context__.s([
"connect",
()=>connect,
"setHooks",
()=>setHooks,
"subscribeToUpdate",
()=>subscribeToUpdate
]);
function connect({ addMessageListener, sendMessage, onUpdateError = console.error }) {
addMessageListener((msg)=>{
switch(msg.type){
case 'turbopack-connected':
handleSocketConnected(sendMessage);
break;
default:
try {
if (Array.isArray(msg.data)) {
for(let i = 0; i < msg.data.length; i++){
handleSocketMessage(msg.data[i]);
}
} else {
handleSocketMessage(msg.data);
}
applyAggregatedUpdates();
} catch (e) {
console.warn('[Fast Refresh] performing full reload\n\n' + "Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\n" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\n\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\n' + 'Fast Refresh requires at least one parent function component in your React tree.');
onUpdateError(e);
location.reload();
}
break;
}
});
const queued = globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS;
if (queued != null && !Array.isArray(queued)) {
throw new Error('A separate HMR handler was already registered');
}
globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS = {
push: ([chunkPath, callback])=>{
subscribeToChunkUpdate(chunkPath, sendMessage, callback);
}
};
if (Array.isArray(queued)) {
for (const [chunkPath, callback] of queued){
subscribeToChunkUpdate(chunkPath, sendMessage, callback);
}
}
}
const updateCallbackSets = new Map();
function sendJSON(sendMessage, message) {
sendMessage(JSON.stringify(message));
}
function resourceKey(resource) {
return JSON.stringify({
path: resource.path,
headers: resource.headers || null
});
}
function subscribeToUpdates(sendMessage, resource) {
sendJSON(sendMessage, {
type: 'turbopack-subscribe',
...resource
});
return ()=>{
sendJSON(sendMessage, {
type: 'turbopack-unsubscribe',
...resource
});
};
}
function handleSocketConnected(sendMessage) {
for (const key of updateCallbackSets.keys()){
subscribeToUpdates(sendMessage, JSON.parse(key));
}
}
// we aggregate all pending updates until the issues are resolved
const chunkListsWithPendingUpdates = new Map();
function aggregateUpdates(msg) {
const key = resourceKey(msg.resource);
let aggregated = chunkListsWithPendingUpdates.get(key);
if (aggregated) {
aggregated.instruction = mergeChunkListUpdates(aggregated.instruction, msg.instruction);
} else {
chunkListsWithPendingUpdates.set(key, msg);
}
}
function applyAggregatedUpdates() {
if (chunkListsWithPendingUpdates.size === 0) return;
hooks.beforeRefresh();
for (const msg of chunkListsWithPendingUpdates.values()){
triggerUpdate(msg);
}
chunkListsWithPendingUpdates.clear();
finalizeUpdate();
}
function mergeChunkListUpdates(updateA, updateB) {
let chunks;
if (updateA.chunks != null) {
if (updateB.chunks == null) {
chunks = updateA.chunks;
} else {
chunks = mergeChunkListChunks(updateA.chunks, updateB.chunks);
}
} else if (updateB.chunks != null) {
chunks = updateB.chunks;
}
let merged;
if (updateA.merged != null) {
if (updateB.merged == null) {
merged = updateA.merged;
} else {
// Since `merged` is an array of updates, we need to merge them all into
// one, consistent update.
// Since there can only be `EcmascriptMergeUpdates` in the array, there is
// no need to key on the `type` field.
let update = updateA.merged[0];
for(let i = 1; i < updateA.merged.length; i++){
update = mergeChunkListEcmascriptMergedUpdates(update, updateA.merged[i]);
}
for(let i = 0; i < updateB.merged.length; i++){
update = mergeChunkListEcmascriptMergedUpdates(update, updateB.merged[i]);
}
merged = [
update
];
}
} else if (updateB.merged != null) {
merged = updateB.merged;
}
return {
type: 'ChunkListUpdate',
chunks,
merged
};
}
function mergeChunkListChunks(chunksA, chunksB) {
const chunks = {};
for (const [chunkPath, chunkUpdateA] of Object.entries(chunksA)){
const chunkUpdateB = chunksB[chunkPath];
if (chunkUpdateB != null) {
const mergedUpdate = mergeChunkUpdates(chunkUpdateA, chunkUpdateB);
if (mergedUpdate != null) {
chunks[chunkPath] = mergedUpdate;
}
} else {
chunks[chunkPath] = chunkUpdateA;
}
}
for (const [chunkPath, chunkUpdateB] of Object.entries(chunksB)){
if (chunks[chunkPath] == null) {
chunks[chunkPath] = chunkUpdateB;
}
}
return chunks;
}
function mergeChunkUpdates(updateA, updateB) {
if (updateA.type === 'added' && updateB.type === 'deleted' || updateA.type === 'deleted' && updateB.type === 'added') {
return undefined;
}
if (updateA.type === 'partial') {
invariant(updateA.instruction, 'Partial updates are unsupported');
}
if (updateB.type === 'partial') {
invariant(updateB.instruction, 'Partial updates are unsupported');
}
return undefined;
}
function mergeChunkListEcmascriptMergedUpdates(mergedA, mergedB) {
const entries = mergeEcmascriptChunkEntries(mergedA.entries, mergedB.entries);
const chunks = mergeEcmascriptChunksUpdates(mergedA.chunks, mergedB.chunks);
return {
type: 'EcmascriptMergedUpdate',
entries,
chunks
};
}
function mergeEcmascriptChunkEntries(entriesA, entriesB) {
return {
...entriesA,
...entriesB
};
}
function mergeEcmascriptChunksUpdates(chunksA, chunksB) {
if (chunksA == null) {
return chunksB;
}
if (chunksB == null) {
return chunksA;
}
const chunks = {};
for (const [chunkPath, chunkUpdateA] of Object.entries(chunksA)){
const chunkUpdateB = chunksB[chunkPath];
if (chunkUpdateB != null) {
const mergedUpdate = mergeEcmascriptChunkUpdates(chunkUpdateA, chunkUpdateB);
if (mergedUpdate != null) {
chunks[chunkPath] = mergedUpdate;
}
} else {
chunks[chunkPath] = chunkUpdateA;
}
}
for (const [chunkPath, chunkUpdateB] of Object.entries(chunksB)){
if (chunks[chunkPath] == null) {
chunks[chunkPath] = chunkUpdateB;
}
}
if (Object.keys(chunks).length === 0) {
return undefined;
}
return chunks;
}
function mergeEcmascriptChunkUpdates(updateA, updateB) {
if (updateA.type === 'added' && updateB.type === 'deleted') {
// These two completely cancel each other out.
return undefined;
}
if (updateA.type === 'deleted' && updateB.type === 'added') {
const added = [];
const deleted = [];
const deletedModules = new Set(updateA.modules ?? []);
const addedModules = new Set(updateB.modules ?? []);
for (const moduleId of addedModules){
if (!deletedModules.has(moduleId)) {
added.push(moduleId);
}
}
for (const moduleId of deletedModules){
if (!addedModules.has(moduleId)) {
deleted.push(moduleId);
}
}
if (added.length === 0 && deleted.length === 0) {
return undefined;
}
return {
type: 'partial',
added,
deleted
};
}
if (updateA.type === 'partial' && updateB.type === 'partial') {
const added = new Set([
...updateA.added ?? [],
...updateB.added ?? []
]);
const deleted = new Set([
...updateA.deleted ?? [],
...updateB.deleted ?? []
]);
if (updateB.added != null) {
for (const moduleId of updateB.added){
deleted.delete(moduleId);
}
}
if (updateB.deleted != null) {
for (const moduleId of updateB.deleted){
added.delete(moduleId);
}
}
return {
type: 'partial',
added: [
...added
],
deleted: [
...deleted
]
};
}
if (updateA.type === 'added' && updateB.type === 'partial') {
const modules = new Set([
...updateA.modules ?? [],
...updateB.added ?? []
]);
for (const moduleId of updateB.deleted ?? []){
modules.delete(moduleId);
}
return {
type: 'added',
modules: [
...modules
]
};
}
if (updateA.type === 'partial' && updateB.type === 'deleted') {
// We could eagerly return `updateB` here, but this would potentially be
// incorrect if `updateA` has added modules.
const modules = new Set(updateB.modules ?? []);
if (updateA.added != null) {
for (const moduleId of updateA.added){
modules.delete(moduleId);
}
}
return {
type: 'deleted',
modules: [
...modules
]
};
}
// Any other update combination is invalid.
return undefined;
}
function invariant(_, message) {
throw new Error(`Invariant: ${message}`);
}
const CRITICAL = [
'bug',
'error',
'fatal'
];
function compareByList(list, a, b) {
const aI = list.indexOf(a) + 1 || list.length;
const bI = list.indexOf(b) + 1 || list.length;
return aI - bI;
}
const chunksWithIssues = new Map();
function emitIssues() {
const issues = [];
const deduplicationSet = new Set();
for (const [_, chunkIssues] of chunksWithIssues){
for (const chunkIssue of chunkIssues){
if (deduplicationSet.has(chunkIssue.formatted)) continue;
issues.push(chunkIssue);
deduplicationSet.add(chunkIssue.formatted);
}
}
sortIssues(issues);
hooks.issues(issues);
}
function handleIssues(msg) {
const key = resourceKey(msg.resource);
let hasCriticalIssues = false;
for (const issue of msg.issues){
if (CRITICAL.includes(issue.severity)) {
hasCriticalIssues = true;
}
}
if (msg.issues.length > 0) {
chunksWithIssues.set(key, msg.issues);
} else if (chunksWithIssues.has(key)) {
chunksWithIssues.delete(key);
}
emitIssues();
return hasCriticalIssues;
}
const SEVERITY_ORDER = [
'bug',
'fatal',
'error',
'warning',
'info',
'log'
];
const CATEGORY_ORDER = [
'parse',
'resolve',
'code generation',
'rendering',
'typescript',
'other'
];
function sortIssues(issues) {
issues.sort((a, b)=>{
const first = compareByList(SEVERITY_ORDER, a.severity, b.severity);
if (first !== 0) return first;
return compareByList(CATEGORY_ORDER, a.category, b.category);
});
}
const hooks = {
beforeRefresh: ()=>{},
refresh: ()=>{},
buildOk: ()=>{},
issues: (_issues)=>{}
};
function setHooks(newHooks) {
Object.assign(hooks, newHooks);
}
function handleSocketMessage(msg) {
sortIssues(msg.issues);
handleIssues(msg);
switch(msg.type){
case 'issues':
break;
case 'partial':
// aggregate updates
aggregateUpdates(msg);
break;
default:
// run single update
const runHooks = chunkListsWithPendingUpdates.size === 0;
if (runHooks) hooks.beforeRefresh();
triggerUpdate(msg);
if (runHooks) finalizeUpdate();
break;
}
}
function finalizeUpdate() {
hooks.refresh();
hooks.buildOk();
// This is used by the Next.js integration test suite to notify it when HMR
// updates have been completed.
// TODO: Only run this in test environments (gate by `process.env.__NEXT_TEST_MODE`)
if (globalThis.__NEXT_HMR_CB) {
globalThis.__NEXT_HMR_CB();
globalThis.__NEXT_HMR_CB = null;
}
}
function subscribeToChunkUpdate(chunkListPath, sendMessage, callback) {
return subscribeToUpdate({
path: chunkListPath
}, sendMessage, callback);
}
function subscribeToUpdate(resource, sendMessage, callback) {
const key = resourceKey(resource);
let callbackSet;
const existingCallbackSet = updateCallbackSets.get(key);
if (!existingCallbackSet) {
callbackSet = {
callbacks: new Set([
callback
]),
unsubscribe: subscribeToUpdates(sendMessage, resource)
};
updateCallbackSets.set(key, callbackSet);
} else {
existingCallbackSet.callbacks.add(callback);
callbackSet = existingCallbackSet;
}
return ()=>{
callbackSet.callbacks.delete(callback);
if (callbackSet.callbacks.size === 0) {
callbackSet.unsubscribe();
updateCallbackSets.delete(key);
}
};
}
function triggerUpdate(msg) {
const key = resourceKey(msg.resource);
const callbackSet = updateCallbackSets.get(key);
if (!callbackSet) {
return;
}
for (const callback of callbackSet.callbacks){
callback(msg);
}
if (msg.type === 'notFound') {
// This indicates that the resource which we subscribed to either does not exist or
// has been deleted. In either case, we should clear all update callbacks, so if a
// new subscription is created for the same resource, it will send a new "subscribe"
// message to the server.
// No need to send an "unsubscribe" message to the server, it will have already
// dropped the update stream before sending the "notFound" message.
updateCallbackSets.delete(key);
}
}
}),
"[hmr-entry]/hmr-entry.js { ENTRY => \"[project]/Documents/go-new/chinese-family-tree/pages/_error\" }", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.r("[next]/entry/page-loader.ts { PAGE => \"[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/error.js [client] (ecmascript)\" } [client] (ecmascript)");
}),
]);
//# sourceMappingURL=%5Broot-of-the-server%5D__d6f1a546._.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,472 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[turbopack]/browser/dev/hmr-client/hmr-client.ts [client] (ecmascript)", ((__turbopack_context__) => {
"use strict";
/// <reference path="../../../shared/runtime-types.d.ts" />
/// <reference path="../../runtime/base/dev-globals.d.ts" />
/// <reference path="../../runtime/base/dev-protocol.d.ts" />
/// <reference path="../../runtime/base/dev-extensions.ts" />
__turbopack_context__.s([
"connect",
()=>connect,
"setHooks",
()=>setHooks,
"subscribeToUpdate",
()=>subscribeToUpdate
]);
function connect({ addMessageListener, sendMessage, onUpdateError = console.error }) {
addMessageListener((msg)=>{
switch(msg.type){
case 'turbopack-connected':
handleSocketConnected(sendMessage);
break;
default:
try {
if (Array.isArray(msg.data)) {
for(let i = 0; i < msg.data.length; i++){
handleSocketMessage(msg.data[i]);
}
} else {
handleSocketMessage(msg.data);
}
applyAggregatedUpdates();
} catch (e) {
console.warn('[Fast Refresh] performing full reload\n\n' + "Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\n" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\n\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\n' + 'Fast Refresh requires at least one parent function component in your React tree.');
onUpdateError(e);
location.reload();
}
break;
}
});
const queued = globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS;
if (queued != null && !Array.isArray(queued)) {
throw new Error('A separate HMR handler was already registered');
}
globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS = {
push: ([chunkPath, callback])=>{
subscribeToChunkUpdate(chunkPath, sendMessage, callback);
}
};
if (Array.isArray(queued)) {
for (const [chunkPath, callback] of queued){
subscribeToChunkUpdate(chunkPath, sendMessage, callback);
}
}
}
const updateCallbackSets = new Map();
function sendJSON(sendMessage, message) {
sendMessage(JSON.stringify(message));
}
function resourceKey(resource) {
return JSON.stringify({
path: resource.path,
headers: resource.headers || null
});
}
function subscribeToUpdates(sendMessage, resource) {
sendJSON(sendMessage, {
type: 'turbopack-subscribe',
...resource
});
return ()=>{
sendJSON(sendMessage, {
type: 'turbopack-unsubscribe',
...resource
});
};
}
function handleSocketConnected(sendMessage) {
for (const key of updateCallbackSets.keys()){
subscribeToUpdates(sendMessage, JSON.parse(key));
}
}
// we aggregate all pending updates until the issues are resolved
const chunkListsWithPendingUpdates = new Map();
function aggregateUpdates(msg) {
const key = resourceKey(msg.resource);
let aggregated = chunkListsWithPendingUpdates.get(key);
if (aggregated) {
aggregated.instruction = mergeChunkListUpdates(aggregated.instruction, msg.instruction);
} else {
chunkListsWithPendingUpdates.set(key, msg);
}
}
function applyAggregatedUpdates() {
if (chunkListsWithPendingUpdates.size === 0) return;
hooks.beforeRefresh();
for (const msg of chunkListsWithPendingUpdates.values()){
triggerUpdate(msg);
}
chunkListsWithPendingUpdates.clear();
finalizeUpdate();
}
function mergeChunkListUpdates(updateA, updateB) {
let chunks;
if (updateA.chunks != null) {
if (updateB.chunks == null) {
chunks = updateA.chunks;
} else {
chunks = mergeChunkListChunks(updateA.chunks, updateB.chunks);
}
} else if (updateB.chunks != null) {
chunks = updateB.chunks;
}
let merged;
if (updateA.merged != null) {
if (updateB.merged == null) {
merged = updateA.merged;
} else {
// Since `merged` is an array of updates, we need to merge them all into
// one, consistent update.
// Since there can only be `EcmascriptMergeUpdates` in the array, there is
// no need to key on the `type` field.
let update = updateA.merged[0];
for(let i = 1; i < updateA.merged.length; i++){
update = mergeChunkListEcmascriptMergedUpdates(update, updateA.merged[i]);
}
for(let i = 0; i < updateB.merged.length; i++){
update = mergeChunkListEcmascriptMergedUpdates(update, updateB.merged[i]);
}
merged = [
update
];
}
} else if (updateB.merged != null) {
merged = updateB.merged;
}
return {
type: 'ChunkListUpdate',
chunks,
merged
};
}
function mergeChunkListChunks(chunksA, chunksB) {
const chunks = {};
for (const [chunkPath, chunkUpdateA] of Object.entries(chunksA)){
const chunkUpdateB = chunksB[chunkPath];
if (chunkUpdateB != null) {
const mergedUpdate = mergeChunkUpdates(chunkUpdateA, chunkUpdateB);
if (mergedUpdate != null) {
chunks[chunkPath] = mergedUpdate;
}
} else {
chunks[chunkPath] = chunkUpdateA;
}
}
for (const [chunkPath, chunkUpdateB] of Object.entries(chunksB)){
if (chunks[chunkPath] == null) {
chunks[chunkPath] = chunkUpdateB;
}
}
return chunks;
}
function mergeChunkUpdates(updateA, updateB) {
if (updateA.type === 'added' && updateB.type === 'deleted' || updateA.type === 'deleted' && updateB.type === 'added') {
return undefined;
}
if (updateA.type === 'partial') {
invariant(updateA.instruction, 'Partial updates are unsupported');
}
if (updateB.type === 'partial') {
invariant(updateB.instruction, 'Partial updates are unsupported');
}
return undefined;
}
function mergeChunkListEcmascriptMergedUpdates(mergedA, mergedB) {
const entries = mergeEcmascriptChunkEntries(mergedA.entries, mergedB.entries);
const chunks = mergeEcmascriptChunksUpdates(mergedA.chunks, mergedB.chunks);
return {
type: 'EcmascriptMergedUpdate',
entries,
chunks
};
}
function mergeEcmascriptChunkEntries(entriesA, entriesB) {
return {
...entriesA,
...entriesB
};
}
function mergeEcmascriptChunksUpdates(chunksA, chunksB) {
if (chunksA == null) {
return chunksB;
}
if (chunksB == null) {
return chunksA;
}
const chunks = {};
for (const [chunkPath, chunkUpdateA] of Object.entries(chunksA)){
const chunkUpdateB = chunksB[chunkPath];
if (chunkUpdateB != null) {
const mergedUpdate = mergeEcmascriptChunkUpdates(chunkUpdateA, chunkUpdateB);
if (mergedUpdate != null) {
chunks[chunkPath] = mergedUpdate;
}
} else {
chunks[chunkPath] = chunkUpdateA;
}
}
for (const [chunkPath, chunkUpdateB] of Object.entries(chunksB)){
if (chunks[chunkPath] == null) {
chunks[chunkPath] = chunkUpdateB;
}
}
if (Object.keys(chunks).length === 0) {
return undefined;
}
return chunks;
}
function mergeEcmascriptChunkUpdates(updateA, updateB) {
if (updateA.type === 'added' && updateB.type === 'deleted') {
// These two completely cancel each other out.
return undefined;
}
if (updateA.type === 'deleted' && updateB.type === 'added') {
const added = [];
const deleted = [];
const deletedModules = new Set(updateA.modules ?? []);
const addedModules = new Set(updateB.modules ?? []);
for (const moduleId of addedModules){
if (!deletedModules.has(moduleId)) {
added.push(moduleId);
}
}
for (const moduleId of deletedModules){
if (!addedModules.has(moduleId)) {
deleted.push(moduleId);
}
}
if (added.length === 0 && deleted.length === 0) {
return undefined;
}
return {
type: 'partial',
added,
deleted
};
}
if (updateA.type === 'partial' && updateB.type === 'partial') {
const added = new Set([
...updateA.added ?? [],
...updateB.added ?? []
]);
const deleted = new Set([
...updateA.deleted ?? [],
...updateB.deleted ?? []
]);
if (updateB.added != null) {
for (const moduleId of updateB.added){
deleted.delete(moduleId);
}
}
if (updateB.deleted != null) {
for (const moduleId of updateB.deleted){
added.delete(moduleId);
}
}
return {
type: 'partial',
added: [
...added
],
deleted: [
...deleted
]
};
}
if (updateA.type === 'added' && updateB.type === 'partial') {
const modules = new Set([
...updateA.modules ?? [],
...updateB.added ?? []
]);
for (const moduleId of updateB.deleted ?? []){
modules.delete(moduleId);
}
return {
type: 'added',
modules: [
...modules
]
};
}
if (updateA.type === 'partial' && updateB.type === 'deleted') {
// We could eagerly return `updateB` here, but this would potentially be
// incorrect if `updateA` has added modules.
const modules = new Set(updateB.modules ?? []);
if (updateA.added != null) {
for (const moduleId of updateA.added){
modules.delete(moduleId);
}
}
return {
type: 'deleted',
modules: [
...modules
]
};
}
// Any other update combination is invalid.
return undefined;
}
function invariant(_, message) {
throw new Error(`Invariant: ${message}`);
}
const CRITICAL = [
'bug',
'error',
'fatal'
];
function compareByList(list, a, b) {
const aI = list.indexOf(a) + 1 || list.length;
const bI = list.indexOf(b) + 1 || list.length;
return aI - bI;
}
const chunksWithIssues = new Map();
function emitIssues() {
const issues = [];
const deduplicationSet = new Set();
for (const [_, chunkIssues] of chunksWithIssues){
for (const chunkIssue of chunkIssues){
if (deduplicationSet.has(chunkIssue.formatted)) continue;
issues.push(chunkIssue);
deduplicationSet.add(chunkIssue.formatted);
}
}
sortIssues(issues);
hooks.issues(issues);
}
function handleIssues(msg) {
const key = resourceKey(msg.resource);
let hasCriticalIssues = false;
for (const issue of msg.issues){
if (CRITICAL.includes(issue.severity)) {
hasCriticalIssues = true;
}
}
if (msg.issues.length > 0) {
chunksWithIssues.set(key, msg.issues);
} else if (chunksWithIssues.has(key)) {
chunksWithIssues.delete(key);
}
emitIssues();
return hasCriticalIssues;
}
const SEVERITY_ORDER = [
'bug',
'fatal',
'error',
'warning',
'info',
'log'
];
const CATEGORY_ORDER = [
'parse',
'resolve',
'code generation',
'rendering',
'typescript',
'other'
];
function sortIssues(issues) {
issues.sort((a, b)=>{
const first = compareByList(SEVERITY_ORDER, a.severity, b.severity);
if (first !== 0) return first;
return compareByList(CATEGORY_ORDER, a.category, b.category);
});
}
const hooks = {
beforeRefresh: ()=>{},
refresh: ()=>{},
buildOk: ()=>{},
issues: (_issues)=>{}
};
function setHooks(newHooks) {
Object.assign(hooks, newHooks);
}
function handleSocketMessage(msg) {
sortIssues(msg.issues);
handleIssues(msg);
switch(msg.type){
case 'issues':
break;
case 'partial':
// aggregate updates
aggregateUpdates(msg);
break;
default:
// run single update
const runHooks = chunkListsWithPendingUpdates.size === 0;
if (runHooks) hooks.beforeRefresh();
triggerUpdate(msg);
if (runHooks) finalizeUpdate();
break;
}
}
function finalizeUpdate() {
hooks.refresh();
hooks.buildOk();
// This is used by the Next.js integration test suite to notify it when HMR
// updates have been completed.
// TODO: Only run this in test environments (gate by `process.env.__NEXT_TEST_MODE`)
if (globalThis.__NEXT_HMR_CB) {
globalThis.__NEXT_HMR_CB();
globalThis.__NEXT_HMR_CB = null;
}
}
function subscribeToChunkUpdate(chunkListPath, sendMessage, callback) {
return subscribeToUpdate({
path: chunkListPath
}, sendMessage, callback);
}
function subscribeToUpdate(resource, sendMessage, callback) {
const key = resourceKey(resource);
let callbackSet;
const existingCallbackSet = updateCallbackSets.get(key);
if (!existingCallbackSet) {
callbackSet = {
callbacks: new Set([
callback
]),
unsubscribe: subscribeToUpdates(sendMessage, resource)
};
updateCallbackSets.set(key, callbackSet);
} else {
existingCallbackSet.callbacks.add(callback);
callbackSet = existingCallbackSet;
}
return ()=>{
callbackSet.callbacks.delete(callback);
if (callbackSet.callbacks.size === 0) {
callbackSet.unsubscribe();
updateCallbackSets.delete(key);
}
};
}
function triggerUpdate(msg) {
const key = resourceKey(msg.resource);
const callbackSet = updateCallbackSets.get(key);
if (!callbackSet) {
return;
}
for (const callback of callbackSet.callbacks){
callback(msg);
}
if (msg.type === 'notFound') {
// This indicates that the resource which we subscribed to either does not exist or
// has been deleted. In either case, we should clear all update callbacks, so if a
// new subscription is created for the same resource, it will send a new "subscribe"
// message to the server.
// No need to send an "unsubscribe" message to the server, it will have already
// dropped the update stream before sending the "notFound" message.
updateCallbackSets.delete(key);
}
}
}),
"[hmr-entry]/hmr-entry.js { ENTRY => \"[project]/Documents/go-new/chinese-family-tree/pages/_app\" }", ((__turbopack_context__) => {
"use strict";
__turbopack_context__.r("[next]/entry/page-loader.ts { PAGE => \"[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/app.js [client] (ecmascript)\" } [client] (ecmascript)");
}),
]);
//# sourceMappingURL=%5Broot-of-the-server%5D__dda05d7f._.js.map
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
@@ -0,0 +1,24 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.js [app-client] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/fdeb9_html2canvas_dist_html2canvas_4a71f2ac.js",
"static/chunks/fdeb9_html2canvas_dist_html2canvas_c44710db.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.js [app-client] (ecmascript)");
});
});
}),
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dom-to-image-more@3.7.2/node_modules/dom-to-image-more/dist/dom-to-image-more.min.js [app-client] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_db78e443.js",
"static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_c44710db.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dom-to-image-more@3.7.2/node_modules/dom-to-image-more/dist/dom-to-image-more.min.js [app-client] (ecmascript)");
});
});
}),
]);
@@ -0,0 +1,5 @@
{
"version": 3,
"sources": [],
"sections": []
}
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 it is too large Load Diff
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 it is too large Load Diff
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 it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,46 @@
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.js [app-client] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/fdeb9_html2canvas_dist_html2canvas_4a71f2ac.js",
"static/chunks/fdeb9_html2canvas_dist_html2canvas_295ed41e.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.js [app-client] (ecmascript)");
});
});
}),
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs [app-client] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/f35fa_dompurify_dist_purify_es_mjs_8cd1474d._.js",
"static/chunks/f35fa_dompurify_dist_purify_es_mjs_295ed41e._.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs [app-client] (ecmascript)");
});
});
}),
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/canvg@3.0.11/node_modules/canvg/lib/index.es.js [app-client] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/a0629__pnpm_7081c6ce._.js",
"static/chunks/c7bc8_canvg_lib_index_es_295ed41e.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/canvg@3.0.11/node_modules/canvg/lib/index.es.js [app-client] (ecmascript)");
});
});
}),
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dom-to-image-more@3.7.2/node_modules/dom-to-image-more/dist/dom-to-image-more.min.js [app-client] (ecmascript, async loader)", ((__turbopack_context__) => {
__turbopack_context__.v((parentImport) => {
return Promise.all([
"static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_db78e443.js",
"static/chunks/ffc37_dom-to-image-more_dist_dom-to-image-more_min_295ed41e.js"
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
return parentImport("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dom-to-image-more@3.7.2/node_modules/dom-to-image-more/dist/dom-to-image-more.min.js [app-client] (ecmascript)");
});
});
}),
]);
@@ -0,0 +1,5 @@
{
"version": 3,
"sources": [],
"sections": []
}

Some files were not shown because too many files have changed in this diff Show More