@taskmark/ui 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -7
- package/app/setup/page.tsx +4 -1
- package/bin/lib/resolve-board.mjs +50 -1
- package/bin/taskmark.js +139 -30
- package/dist/prod-next/BUILD_ID +1 -1
- package/dist/prod-next/build-manifest.json +2 -2
- package/dist/prod-next/prerender-manifest.json +24 -0
- package/dist/prod-next/server/app/_global-error.html +1 -1
- package/dist/prod-next/server/app/_global-error.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.html +1 -1
- package/dist/prod-next/server/app/_not-found.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/prod-next/server/app/api/taskmark-reload/route.js +1 -1
- package/dist/prod-next/server/app/board/page.js +1 -1
- package/dist/prod-next/server/app/page.js +1 -1
- package/dist/prod-next/server/app/setup/page.js +1 -1
- package/dist/prod-next/server/app/setup.html +1 -0
- package/dist/prod-next/server/app/setup.meta +17 -0
- package/dist/prod-next/server/app/setup.rsc +22 -0
- package/dist/prod-next/server/app/setup.segments/_full.segment.rsc +22 -0
- package/dist/prod-next/server/app/setup.segments/_head.segment.rsc +6 -0
- package/dist/prod-next/server/app/setup.segments/_index.segment.rsc +8 -0
- package/dist/prod-next/server/app/setup.segments/_tree.segment.rsc +5 -0
- package/dist/prod-next/server/app/setup.segments/setup/__PAGE__.segment.rsc +6 -0
- package/dist/prod-next/server/app/setup.segments/setup.segment.rsc +5 -0
- package/dist/prod-next/server/chunks/490.js +2 -2
- package/dist/prod-next/server/chunks/616.js +1 -1
- package/dist/prod-next/server/middleware-build-manifest.js +1 -1
- package/dist/prod-next/server/pages/404.html +1 -1
- package/dist/prod-next/server/pages/500.html +1 -1
- package/dist/public/taskmark-snapshot.json +1 -1
- package/lib/taskmark/autoconfig.ts +54 -3
- package/lib/taskmark/discover.ts +2 -1
- package/lib/taskmark/workspace-mode.ts +24 -0
- package/lib/taskmark/workspace.ts +5 -2
- package/package.json +4 -2
- package/public/taskmark-snapshot.json +1 -1
- /package/dist/prod-next/static/{wbcgYS3Jw87KqhnA9ttOL → sAWr5ATVuqk6Wqs18kAWs}/_buildManifest.js +0 -0
- /package/dist/prod-next/static/{wbcgYS3Jw87KqhnA9ttOL → sAWr5ATVuqk6Wqs18kAWs}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -2,12 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
Install in a Taskmark board folder (or product root with `./taskmark/`) and open the board in the browser.
|
|
4
4
|
|
|
5
|
+
## Two modes
|
|
6
|
+
|
|
7
|
+
| Mode | When | Behaviour |
|
|
8
|
+
|------|------|-----------|
|
|
9
|
+
| **Bound** | Board found in/near cwd, or `serve` / `dev` | Opens that one board. No setup wizard, no project picker. |
|
|
10
|
+
| **Workspace** | No local board, or `open` / `--workspace` | Standalone setup wizard + app-bar project picker. |
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Global / any folder without a board → setup & pick projects
|
|
14
|
+
npx @taskmark/ui
|
|
15
|
+
# or: npx -p @taskmark/ui taskmark
|
|
16
|
+
|
|
17
|
+
# Inside a board folder (or product with ./taskmark/) → that board only
|
|
18
|
+
cd my-app-taskmark && npx taskmark
|
|
19
|
+
# or: npm i @taskmark/ui --save && npx taskmark serve
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`taskmark open` always forces the setup / picker, even when a board is nearby. Chosen master folders and the active project persist in cookies.
|
|
23
|
+
|
|
5
24
|
## Install and serve
|
|
6
25
|
|
|
7
26
|
```bash
|
|
8
27
|
# from nested ./taskmark/ or a dedicated *-taskmark board root
|
|
9
28
|
npm install @taskmark/ui --save
|
|
10
|
-
npx taskmark
|
|
29
|
+
npx taskmark
|
|
30
|
+
# or: npx taskmark serve
|
|
11
31
|
```
|
|
12
32
|
|
|
13
33
|
Opens [http://localhost:8275](http://localhost:8275) bound to **this** board.
|
|
@@ -24,20 +44,23 @@ Runs Next.js in development on port **8275** and refreshes the UI when board `.m
|
|
|
24
44
|
Without a local install (once published):
|
|
25
45
|
|
|
26
46
|
```bash
|
|
27
|
-
npx
|
|
47
|
+
npx @taskmark/ui
|
|
48
|
+
# or: npx -p @taskmark/ui taskmark
|
|
28
49
|
```
|
|
29
50
|
|
|
30
51
|
| Option | Meaning |
|
|
31
52
|
|--------|---------|
|
|
32
53
|
| `--port` / `-p` | Listen port (default **8275**; also `PORT` / `TASKMARK_PORT`) |
|
|
33
54
|
| `--board <path>` | Board or product root (sets `TASKMARK_BOARD`) |
|
|
55
|
+
| `--workspace` / `-w` | Force setup / multi-project mode; cannot be combined with `--board` |
|
|
34
56
|
| `--no-open` | Print the URL only |
|
|
35
57
|
|
|
36
|
-
Board resolution:
|
|
58
|
+
Board resolution (bound mode only):
|
|
37
59
|
|
|
38
60
|
1. `--board` / `TASKMARK_BOARD`
|
|
39
61
|
2. `TASKMARK_MASTER`
|
|
40
62
|
3. `TASKMARK_CWD` → npm `INIT_CWD` → `process.cwd()` — nested `./taskmark/` or flat `*-taskmark` root
|
|
63
|
+
4. Sibling `<parent>-taskmark` next to a product repo (multi-git workspaces)
|
|
41
64
|
|
|
42
65
|
### Nested vs flat boards
|
|
43
66
|
|
|
@@ -87,12 +110,14 @@ Favicon, webmanifest, and Open Graph assets ship in `public/` and are included i
|
|
|
87
110
|
|
|
88
111
|
```bash
|
|
89
112
|
npm install
|
|
90
|
-
npm run build
|
|
91
|
-
npm run serve
|
|
92
|
-
npm run dev
|
|
113
|
+
npm run build # next standalone + dist/ for the CLI
|
|
114
|
+
npm run serve # production standalone against cwd/env board
|
|
115
|
+
npm run dev # taskmark dev (Next + markdown live reload) on :8275
|
|
116
|
+
npm run dev:workspace # same, but unbound — work on the setup wizard / picker
|
|
117
|
+
npm run open # prebuilt UI in workspace mode
|
|
93
118
|
```
|
|
94
119
|
|
|
95
|
-
|
|
120
|
+
`npm run dev` / `serve` always bind to a board (sibling `taskmark-taskmark` from this repo). Bare `node ./bin/taskmark.js` uses the smart default. Use `open` / `dev:workspace` to work on the setup wizard.
|
|
96
121
|
|
|
97
122
|
## Stack
|
|
98
123
|
|
package/app/setup/page.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import { SetupWizard } from "@/components/setup/setup-wizard"
|
|
|
6
6
|
import { resolveAutoconfigWorkspace } from "@/lib/taskmark/autoconfig"
|
|
7
7
|
import { getMasterFoldersCookie } from "@/lib/taskmark/cookies"
|
|
8
8
|
import { isStaticRuntime } from "@/lib/taskmark/static-mode"
|
|
9
|
+
import { workspaceStartPath } from "@/lib/taskmark/workspace-mode"
|
|
9
10
|
|
|
10
11
|
type SetupPageProps = {
|
|
11
12
|
searchParams?: Promise<{ mode?: string }>
|
|
@@ -26,6 +27,8 @@ export default async function SetupPage({ searchParams }: SetupPageProps) {
|
|
|
26
27
|
const masters = await getMasterFoldersCookie()
|
|
27
28
|
const hasProjects = masters.length > 0
|
|
28
29
|
const adding = params.mode === "add" && hasProjects
|
|
30
|
+
// First run: offer the directory `taskmark` was launched from as the master.
|
|
31
|
+
const suggestedPath = adding || hasProjects ? "" : workspaceStartPath()
|
|
29
32
|
|
|
30
33
|
return (
|
|
31
34
|
<div className="relative flex min-h-svh flex-col items-center justify-center px-4 py-16">
|
|
@@ -50,7 +53,7 @@ export default async function SetupPage({ searchParams }: SetupPageProps) {
|
|
|
50
53
|
</p>
|
|
51
54
|
</div>
|
|
52
55
|
<SetupWizard
|
|
53
|
-
initialPath=
|
|
56
|
+
initialPath={suggestedPath}
|
|
54
57
|
adding={adding}
|
|
55
58
|
hasExistingProjects={hasProjects}
|
|
56
59
|
/>
|
|
@@ -48,6 +48,50 @@ export function resolveBoardAtPath(candidatePath) {
|
|
|
48
48
|
return null
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Multi-git layout: product repo beside a dedicated `<common>-taskmark` board.
|
|
53
|
+
* Prefer `<parentDirBasename>-taskmark`, else a unique `*-taskmark` sibling,
|
|
54
|
+
* else a sibling whose board prefix matches the product repo name.
|
|
55
|
+
*/
|
|
56
|
+
export function resolveSiblingDedicatedBoard(fromDir) {
|
|
57
|
+
const resolved = path.resolve(fromDir)
|
|
58
|
+
const parent = path.dirname(resolved)
|
|
59
|
+
const parentName = path.basename(parent)
|
|
60
|
+
const preferred = path.join(parent, `${parentName}-taskmark`)
|
|
61
|
+
if (
|
|
62
|
+
isDedicatedBoardRepoName(path.basename(preferred)) &&
|
|
63
|
+
hasBoardMarkers(preferred)
|
|
64
|
+
) {
|
|
65
|
+
return preferred
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
let entries
|
|
69
|
+
try {
|
|
70
|
+
entries = fs.readdirSync(parent, { withFileTypes: true })
|
|
71
|
+
} catch {
|
|
72
|
+
return null
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const boards = []
|
|
76
|
+
for (const entry of entries) {
|
|
77
|
+
if (!entry.isDirectory() || !isDedicatedBoardRepoName(entry.name)) continue
|
|
78
|
+
const full = path.join(parent, entry.name)
|
|
79
|
+
if (hasBoardMarkers(full)) boards.push(full)
|
|
80
|
+
}
|
|
81
|
+
if (boards.length === 0) return null
|
|
82
|
+
if (boards.length === 1) return boards[0]
|
|
83
|
+
|
|
84
|
+
const cwdBase = path.basename(resolved)
|
|
85
|
+
const parts = cwdBase.split("-").filter(Boolean)
|
|
86
|
+
for (let i = parts.length - 1; i >= 1; i--) {
|
|
87
|
+
const prefix = parts.slice(0, i).join("-")
|
|
88
|
+
const hit = boards.find((b) => path.basename(b) === `${prefix}-taskmark`)
|
|
89
|
+
if (hit) return hit
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return null
|
|
93
|
+
}
|
|
94
|
+
|
|
51
95
|
function cwdCandidates() {
|
|
52
96
|
const out = []
|
|
53
97
|
const seen = new Set()
|
|
@@ -74,7 +118,7 @@ function cwdCandidates() {
|
|
|
74
118
|
|
|
75
119
|
/**
|
|
76
120
|
* Same precedence as the Next app autoconfig:
|
|
77
|
-
* TASKMARK_BOARD → TASKMARK_MASTER (as board-or-master) → cwd.
|
|
121
|
+
* TASKMARK_BOARD → TASKMARK_MASTER (as board-or-master) → cwd → sibling *-taskmark.
|
|
78
122
|
* @returns {{ boardPath: string, source: string } | null}
|
|
79
123
|
*/
|
|
80
124
|
export function resolveServeBoard(explicitBoard) {
|
|
@@ -104,5 +148,10 @@ export function resolveServeBoard(explicitBoard) {
|
|
|
104
148
|
if (board) return { boardPath: board, source: "cwd" }
|
|
105
149
|
}
|
|
106
150
|
|
|
151
|
+
for (const candidate of cwdCandidates()) {
|
|
152
|
+
const sibling = resolveSiblingDedicatedBoard(candidate)
|
|
153
|
+
if (sibling) return { boardPath: sibling, source: "sibling" }
|
|
154
|
+
}
|
|
155
|
+
|
|
107
156
|
return null
|
|
108
157
|
}
|
package/bin/taskmark.js
CHANGED
|
@@ -17,13 +17,18 @@ const requireFromPackage = createRequire(path.join(packageRoot, "package.json"))
|
|
|
17
17
|
|
|
18
18
|
function printHelp() {
|
|
19
19
|
console.log(`Usage:
|
|
20
|
+
taskmark [options] smart default: local board if found, else setup
|
|
21
|
+
taskmark open [options]
|
|
20
22
|
taskmark serve [options]
|
|
21
23
|
taskmark dev [options]
|
|
22
24
|
taskmark build [options]
|
|
23
25
|
taskmark preview [options]
|
|
24
26
|
|
|
25
27
|
Commands:
|
|
26
|
-
|
|
28
|
+
(default) Bind to a board in/near cwd when one exists; otherwise open
|
|
29
|
+
the standalone setup / project picker (same as global use)
|
|
30
|
+
open Always start in workspace mode (setup / project picker)
|
|
31
|
+
serve Start the prebuilt UI bound to one resolved board (port ${DEFAULT_PORT})
|
|
27
32
|
dev Next.js development server with board markdown live reload
|
|
28
33
|
build Production static HTML export for Vercel / static hosting
|
|
29
34
|
preview Serve an existing static export (default: <board>/out)
|
|
@@ -31,24 +36,32 @@ Commands:
|
|
|
31
36
|
Options:
|
|
32
37
|
--port, -p <n> Listen port (default ${DEFAULT_PORT}; env PORT / TASKMARK_PORT)
|
|
33
38
|
--board <path> Board or product root (sets TASKMARK_BOARD)
|
|
39
|
+
--workspace, -w Force multi-project / setup mode (skip local board binding)
|
|
34
40
|
--out <dir> Static output directory for build/preview (default: <board>/out)
|
|
35
|
-
--no-open Do not open a browser (serve / preview / dev)
|
|
41
|
+
--no-open Do not open a browser (default / open / serve / preview / dev)
|
|
36
42
|
--help, -h Show help
|
|
37
43
|
|
|
38
|
-
|
|
44
|
+
Modes:
|
|
45
|
+
Bound One board from --board / env / cwd / sibling *-taskmark; no project picker.
|
|
46
|
+
Workspace Setup wizard + app-bar project picker (cookies). Used when no local
|
|
47
|
+
board is found, or with open / --workspace.
|
|
48
|
+
|
|
49
|
+
Board resolution for bound mode (same as the UI):
|
|
39
50
|
1. --board / TASKMARK_BOARD
|
|
40
51
|
2. TASKMARK_MASTER
|
|
41
52
|
3. TASKMARK_CWD → npm INIT_CWD → process.cwd()
|
|
42
53
|
(product root with ./taskmark/, or dedicated *-taskmark root)
|
|
54
|
+
4. Sibling <parent>-taskmark next to a product repo (multi-git)
|
|
43
55
|
|
|
44
56
|
Examples:
|
|
57
|
+
npx @taskmark/ui # global: setup / pick projects
|
|
58
|
+
cd my-app-taskmark && npx taskmark # local board in this folder
|
|
45
59
|
npm i @taskmark/ui --save && npx taskmark serve
|
|
60
|
+
npx taskmark open # force setup even inside a board folder
|
|
46
61
|
npx taskmark dev --board .
|
|
47
62
|
npx taskmark build --board .
|
|
48
63
|
npm run preview
|
|
49
|
-
npx taskmark
|
|
50
|
-
npx -p @taskmark/ui taskmark serve
|
|
51
|
-
TASKMARK_BOARD=/path/to/my-app/taskmark npx taskmark serve
|
|
64
|
+
TASKMARK_BOARD=/path/to/board npx taskmark serve
|
|
52
65
|
`)
|
|
53
66
|
}
|
|
54
67
|
|
|
@@ -59,20 +72,24 @@ function parseArgs(argv) {
|
|
|
59
72
|
board: null,
|
|
60
73
|
out: null,
|
|
61
74
|
open: true,
|
|
75
|
+
workspace: false,
|
|
62
76
|
help: false,
|
|
63
77
|
}
|
|
64
78
|
const rest = [...argv]
|
|
65
|
-
if (rest.length === 0
|
|
66
|
-
args.
|
|
79
|
+
if (rest.length === 0) {
|
|
80
|
+
args.command = "auto"
|
|
67
81
|
return args
|
|
68
82
|
}
|
|
69
|
-
|
|
83
|
+
// Bare `taskmark` with only flags → smart default (local board or setup).
|
|
84
|
+
args.command = rest[0].startsWith("-") ? "auto" : rest.shift()
|
|
70
85
|
while (rest.length) {
|
|
71
86
|
const token = rest.shift()
|
|
72
87
|
if (token === "--help" || token === "-h") {
|
|
73
88
|
args.help = true
|
|
74
89
|
} else if (token === "--no-open") {
|
|
75
90
|
args.open = false
|
|
91
|
+
} else if (token === "--workspace" || token === "-w") {
|
|
92
|
+
args.workspace = true
|
|
76
93
|
} else if (token === "--port" || token === "-p") {
|
|
77
94
|
args.port = rest.shift()
|
|
78
95
|
} else if (token === "--board") {
|
|
@@ -219,6 +236,46 @@ function waitForServer(port, timeoutMs = 60_000) {
|
|
|
219
236
|
})
|
|
220
237
|
}
|
|
221
238
|
|
|
239
|
+
function callerCwd() {
|
|
240
|
+
return process.env.INIT_CWD || process.cwd()
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function isWorkspaceRun(args) {
|
|
244
|
+
return args.command === "open" || args.workspace === true
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Decide bound vs workspace for the default (`auto`) command.
|
|
249
|
+
* Returns a serve-compatible args object with workspace forced when unbound.
|
|
250
|
+
*/
|
|
251
|
+
function resolveAutoArgs(args) {
|
|
252
|
+
if (args.workspace) {
|
|
253
|
+
return { ...args, command: "open", workspace: true }
|
|
254
|
+
}
|
|
255
|
+
if (args.board) {
|
|
256
|
+
return { ...args, command: "serve", workspace: false }
|
|
257
|
+
}
|
|
258
|
+
const resolved = resolveServeBoard(null)
|
|
259
|
+
if (resolved) {
|
|
260
|
+
return { ...args, command: "serve", workspace: false }
|
|
261
|
+
}
|
|
262
|
+
return { ...args, command: "open", workspace: true }
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Workspace mode must out-rank an inherited board bind, so blank those vars for
|
|
267
|
+
* the child (the UI reads empty as unset) instead of only adding the flag.
|
|
268
|
+
*/
|
|
269
|
+
function workspaceEnv() {
|
|
270
|
+
return {
|
|
271
|
+
TASKMARK_WORKSPACE: "1",
|
|
272
|
+
TASKMARK_WORKSPACE_ROOT: callerCwd(),
|
|
273
|
+
TASKMARK_BOARD: "",
|
|
274
|
+
TASKMARK_MASTER: "",
|
|
275
|
+
TASKMARK_CWD: "",
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
222
279
|
function resolveBoardOrExit(boardArg, command) {
|
|
223
280
|
const resolved = resolveServeBoard(boardArg)
|
|
224
281
|
if (!resolved) {
|
|
@@ -228,10 +285,13 @@ Looked for:
|
|
|
228
285
|
- --board / TASKMARK_BOARD
|
|
229
286
|
- TASKMARK_MASTER
|
|
230
287
|
- cwd layouts: nested ./taskmark/ or dedicated *-taskmark root
|
|
288
|
+
- sibling <parent>-taskmark beside a product repo
|
|
231
289
|
|
|
232
290
|
Fix: cd into a product repo (with ./taskmark/) or a board root, or set TASKMARK_BOARD.
|
|
233
291
|
Then re-run: npx taskmark ${command}
|
|
234
|
-
(or: npx -p @taskmark/ui taskmark ${command})
|
|
292
|
+
(or: npx -p @taskmark/ui taskmark ${command})
|
|
293
|
+
|
|
294
|
+
To pick a project in the browser instead: npx taskmark`)
|
|
235
295
|
process.exit(1)
|
|
236
296
|
}
|
|
237
297
|
return resolved
|
|
@@ -253,7 +313,8 @@ function attachChildLifecycle(child, onShutdown) {
|
|
|
253
313
|
}
|
|
254
314
|
|
|
255
315
|
async function serve(args) {
|
|
256
|
-
const
|
|
316
|
+
const workspace = isWorkspaceRun(args)
|
|
317
|
+
const resolved = workspace ? null : resolveBoardOrExit(args.board, "serve")
|
|
257
318
|
const port = resolvePort(args.port)
|
|
258
319
|
const url = `http://localhost:${port}`
|
|
259
320
|
const nextBin = resolveNextBin()
|
|
@@ -266,7 +327,12 @@ async function serve(args) {
|
|
|
266
327
|
}
|
|
267
328
|
|
|
268
329
|
console.log(`Taskmark UI`)
|
|
269
|
-
|
|
330
|
+
if (workspace) {
|
|
331
|
+
console.log(` mode: workspace (choose projects in the browser)`)
|
|
332
|
+
console.log(` from: ${callerCwd()}`)
|
|
333
|
+
} else {
|
|
334
|
+
console.log(` board: ${resolved.boardPath} (${resolved.source})`)
|
|
335
|
+
}
|
|
270
336
|
console.log(` listen: ${url}`)
|
|
271
337
|
|
|
272
338
|
const child = spawn(
|
|
@@ -278,7 +344,9 @@ async function serve(args) {
|
|
|
278
344
|
...process.env,
|
|
279
345
|
PORT: String(port),
|
|
280
346
|
HOSTNAME: "0.0.0.0",
|
|
281
|
-
|
|
347
|
+
...(workspace
|
|
348
|
+
? workspaceEnv()
|
|
349
|
+
: { TASKMARK_BOARD: resolved.boardPath }),
|
|
282
350
|
NODE_ENV: "production",
|
|
283
351
|
},
|
|
284
352
|
stdio: "inherit",
|
|
@@ -308,15 +376,25 @@ async function serve(args) {
|
|
|
308
376
|
}
|
|
309
377
|
|
|
310
378
|
async function dev(args) {
|
|
311
|
-
const
|
|
379
|
+
const workspace = isWorkspaceRun(args)
|
|
380
|
+
const resolved = workspace ? null : resolveBoardOrExit(args.board, "dev")
|
|
312
381
|
const port = resolvePort(args.port)
|
|
313
382
|
const url = `http://localhost:${port}`
|
|
314
383
|
const nextBin = resolveNextBin()
|
|
315
384
|
|
|
316
385
|
console.log(`Taskmark UI (dev)`)
|
|
317
|
-
|
|
386
|
+
if (workspace) {
|
|
387
|
+
console.log(` mode: workspace (choose projects in the browser)`)
|
|
388
|
+
console.log(` from: ${callerCwd()}`)
|
|
389
|
+
} else {
|
|
390
|
+
console.log(` board: ${resolved.boardPath} (${resolved.source})`)
|
|
391
|
+
}
|
|
318
392
|
console.log(` listen: ${url}`)
|
|
319
|
-
console.log(
|
|
393
|
+
console.log(
|
|
394
|
+
workspace
|
|
395
|
+
? ` watch: off (no single board bound)`
|
|
396
|
+
: ` watch: **/*.md under board`
|
|
397
|
+
)
|
|
320
398
|
|
|
321
399
|
const child = spawn(
|
|
322
400
|
process.execPath,
|
|
@@ -326,8 +404,12 @@ async function dev(args) {
|
|
|
326
404
|
env: {
|
|
327
405
|
...process.env,
|
|
328
406
|
PORT: String(port),
|
|
329
|
-
|
|
330
|
-
|
|
407
|
+
...(workspace
|
|
408
|
+
? workspaceEnv()
|
|
409
|
+
: {
|
|
410
|
+
TASKMARK_BOARD: resolved.boardPath,
|
|
411
|
+
TASKMARK_CWD: resolved.boardPath,
|
|
412
|
+
}),
|
|
331
413
|
NODE_ENV: "development",
|
|
332
414
|
},
|
|
333
415
|
stdio: "inherit",
|
|
@@ -335,17 +417,21 @@ async function dev(args) {
|
|
|
335
417
|
)
|
|
336
418
|
|
|
337
419
|
let debounce = null
|
|
338
|
-
const stopWatch =
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
420
|
+
const stopWatch = workspace
|
|
421
|
+
? () => {}
|
|
422
|
+
: watchBoardMarkdown(resolved.boardPath, () => {
|
|
423
|
+
if (debounce) clearTimeout(debounce)
|
|
424
|
+
debounce = setTimeout(() => {
|
|
425
|
+
try {
|
|
426
|
+
touchDevReloadToken()
|
|
427
|
+
console.log(`[taskmark] board markdown changed — refreshing`)
|
|
428
|
+
} catch (err) {
|
|
429
|
+
console.warn(
|
|
430
|
+
`[taskmark] reload touch failed: ${err?.message || err}`
|
|
431
|
+
)
|
|
432
|
+
}
|
|
433
|
+
}, 200)
|
|
434
|
+
})
|
|
349
435
|
|
|
350
436
|
const shutdown = attachChildLifecycle(child, () => {
|
|
351
437
|
stopWatch()
|
|
@@ -427,7 +513,30 @@ async function main() {
|
|
|
427
513
|
printHelp()
|
|
428
514
|
process.exit(args.help || !args.command ? 0 : 1)
|
|
429
515
|
}
|
|
430
|
-
|
|
516
|
+
const workspaceCommands = new Set(["auto", "open", "serve", "dev"])
|
|
517
|
+
if (args.workspace && !workspaceCommands.has(args.command)) {
|
|
518
|
+
console.error(`--workspace applies to the default command, open, serve, and dev.
|
|
519
|
+
|
|
520
|
+
Use: npx taskmark (or: npx taskmark open)`)
|
|
521
|
+
process.exit(1)
|
|
522
|
+
}
|
|
523
|
+
if ((isWorkspaceRun(args) || (args.command === "auto" && args.workspace)) && args.board) {
|
|
524
|
+
console.error(`--board and workspace mode are mutually exclusive.
|
|
525
|
+
|
|
526
|
+
Bind one board: npx taskmark serve --board ${args.board}
|
|
527
|
+
Pick projects in UI: npx taskmark open`)
|
|
528
|
+
process.exit(1)
|
|
529
|
+
}
|
|
530
|
+
if (args.command === "auto") {
|
|
531
|
+
try {
|
|
532
|
+
await serve(resolveAutoArgs(args))
|
|
533
|
+
} catch (err) {
|
|
534
|
+
console.error(String(err?.message || err))
|
|
535
|
+
process.exit(1)
|
|
536
|
+
}
|
|
537
|
+
return
|
|
538
|
+
}
|
|
539
|
+
if (args.command === "open" || args.command === "serve") {
|
|
431
540
|
try {
|
|
432
541
|
await serve(args)
|
|
433
542
|
} catch (err) {
|
package/dist/prod-next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
sAWr5ATVuqk6Wqs18kAWs
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/sAWr5ATVuqk6Wqs18kAWs/_buildManifest.js",
|
|
8
|
+
"static/sAWr5ATVuqk6Wqs18kAWs/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
11
|
"static/chunks/webpack-bfe8992962004e2b.js",
|
|
@@ -78,6 +78,30 @@
|
|
|
78
78
|
"x-next-revalidated-tags",
|
|
79
79
|
"x-next-revalidate-tag-token"
|
|
80
80
|
]
|
|
81
|
+
},
|
|
82
|
+
"/setup": {
|
|
83
|
+
"experimentalBypassFor": [
|
|
84
|
+
{
|
|
85
|
+
"type": "header",
|
|
86
|
+
"key": "next-action"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"type": "header",
|
|
90
|
+
"key": "content-type",
|
|
91
|
+
"value": "multipart/form-data;.*"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"initialRevalidateSeconds": false,
|
|
95
|
+
"srcRoute": "/setup",
|
|
96
|
+
"dataRoute": "/setup.rsc",
|
|
97
|
+
"allowHeader": [
|
|
98
|
+
"host",
|
|
99
|
+
"x-matched-path",
|
|
100
|
+
"x-prerender-revalidate",
|
|
101
|
+
"x-prerender-revalidate-if-generated",
|
|
102
|
+
"x-next-revalidated-tags",
|
|
103
|
+
"x-next-revalidate-tag-token"
|
|
104
|
+
]
|
|
81
105
|
}
|
|
82
106
|
},
|
|
83
107
|
"dynamicRoutes": {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-bfe8992962004e2b.js"/><script src="/_next/static/chunks/4bd1b696-deb4a0a1da1923b0.js" async=""></script><script src="/_next/static/chunks/794-25668765560cb197.js" async=""></script><script src="/_next/static/chunks/main-app-bfb36455d24b3e5a.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-bfe8992962004e2b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-bfe8992962004e2b.js"/><script src="/_next/static/chunks/4bd1b696-deb4a0a1da1923b0.js" async=""></script><script src="/_next/static/chunks/794-25668765560cb197.js" async=""></script><script src="/_next/static/chunks/main-app-bfb36455d24b3e5a.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-bfe8992962004e2b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"sAWr5ATVuqk6Wqs18kAWs\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
8:I[90484,[],"ViewportBoundary"]
|
|
7
7
|
a:I[90484,[],"MetadataBoundary"]
|
|
8
8
|
c:I[27123,[],"default",1]
|
|
9
|
-
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
9
|
+
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"sAWr5ATVuqk6Wqs18kAWs"}
|
|
10
10
|
d:[]
|
|
11
11
|
7:"$Wd"
|
|
12
12
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
8:I[90484,[],"ViewportBoundary"]
|
|
7
7
|
a:I[90484,[],"MetadataBoundary"]
|
|
8
8
|
c:I[27123,[],"default",1]
|
|
9
|
-
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
9
|
+
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"sAWr5ATVuqk6Wqs18kAWs"}
|
|
10
10
|
d:[]
|
|
11
11
|
7:"$Wd"
|
|
12
12
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|