@locusai/cli 0.1.1 → 0.1.3
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 +37 -29
- package/bin/locus.js +9 -31
- package/bin/server.js +3 -1
- package/index.ts +0 -22
- package/package.json +1 -1
- package/public/dashboard/404.html +1 -1
- package/public/dashboard/_next/static/chunks/{webpack-255b85be392b6a62.js → webpack-a21f388d2a000173.js} +1 -1
- package/public/dashboard/backlog.html +1 -1
- package/public/dashboard/backlog.txt +1 -1
- package/public/dashboard/docs.html +1 -1
- package/public/dashboard/docs.txt +2 -2
- package/public/dashboard/index.html +1 -1
- package/public/dashboard/index.txt +1 -1
- package/public/dashboard/settings.html +1 -1
- package/public/dashboard/settings.txt +2 -2
- package/src/generators/locus.ts +5 -22
- /package/public/dashboard/_next/static/chunks/app/docs/{page-3b74ec7f0f5e33cf.js → page-5f69fffac832d77c.js} +0 -0
- /package/public/dashboard/_next/static/chunks/app/settings/{page-f6a23adb7efc71d2.js → page-82693b6134aafc85.js} +0 -0
- /package/public/dashboard/_next/static/{llhzNjrWTNSwgquH1l7JE → jpBY_e0OMNAi3Fw2pJYM_}/_buildManifest.js +0 -0
- /package/public/dashboard/_next/static/{llhzNjrWTNSwgquH1l7JE → jpBY_e0OMNAi3Fw2pJYM_}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,45 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/asgarovf/locusai/refs/heads/master/assets/logo.png" alt="Locus" width="150" />
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/@locusai/cli"><img src="https://img.shields.io/npm/v/@locusai/cli?color=blue" alt="npm version" /></a>
|
|
7
|
+
<a href="https://github.com/asgarovf/locusai/blob/master/LICENSE"><img src="https://img.shields.io/github/license/asgarovf/locusai?color=blue" alt="License" /></a>
|
|
8
|
+
<a href="https://github.com/asgarovf/locusai"><img src="https://img.shields.io/github/stars/asgarovf/locusai?style=flat&color=blue" alt="GitHub Stars" /></a>
|
|
9
|
+
</p>
|
|
4
10
|
|
|
5
|
-
|
|
11
|
+
# @locusai/cli
|
|
12
|
+
|
|
13
|
+
The unified CLI for **Locus** — a local-first AI development platform that combines task management, documentation, and CI coordination to help AI agents build your projects.
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
6
16
|
|
|
7
17
|
```bash
|
|
8
|
-
#
|
|
9
|
-
|
|
18
|
+
# Create a new Locus-managed project
|
|
19
|
+
npx @locusai/cli init --name my-app
|
|
10
20
|
|
|
11
|
-
# Or
|
|
12
|
-
npx
|
|
21
|
+
# Or initialize in an existing repo
|
|
22
|
+
npx @locusai/cli init
|
|
23
|
+
|
|
24
|
+
# Start the development server
|
|
25
|
+
npx @locusai/cli dev
|
|
13
26
|
```
|
|
14
27
|
|
|
15
|
-
##
|
|
28
|
+
## Commands
|
|
29
|
+
|
|
30
|
+
| Command | Description |
|
|
31
|
+
|---------|-------------|
|
|
32
|
+
| `init --name <name>` | Create a new Locus-managed monorepo project |
|
|
33
|
+
| `init` | Initialize Locus in an existing repository |
|
|
34
|
+
| `dev` | Start the Locus dashboard and MCP server |
|
|
16
35
|
|
|
17
|
-
|
|
36
|
+
## What It Creates
|
|
37
|
+
|
|
38
|
+
When creating a new project (`init --name`):
|
|
39
|
+
- **Monorepo structure**: `apps/`, `packages/`
|
|
18
40
|
- **Locus workspace**: `.locus/` directory with database and config
|
|
19
41
|
- **Starter configuration**: TypeScript, Biome, Git
|
|
20
42
|
- **Example task**: Getting started task in the backlog
|
|
21
|
-
- **Documentation**: Basic getting started guide
|
|
22
|
-
|
|
23
|
-
## Options
|
|
24
|
-
|
|
25
|
-
- `--name <project-name>` (required) - Name of your project
|
|
26
|
-
- `--path <directory>` (optional) - Parent directory (defaults to current directory)
|
|
27
43
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
cd my-app
|
|
32
|
-
bun install
|
|
33
|
-
bun run dev
|
|
34
|
-
```
|
|
44
|
+
When initializing existing repo (`init`):
|
|
45
|
+
- **Locus workspace**: `.locus/` directory with database and config
|
|
35
46
|
|
|
36
|
-
##
|
|
47
|
+
## Documentation
|
|
37
48
|
|
|
38
|
-
|
|
49
|
+
Visit [locusai.dev/docs](https://locusai.dev/docs) for full documentation.
|
|
39
50
|
|
|
40
|
-
|
|
41
|
-
# Update your MCP config or start Locus with:
|
|
42
|
-
locus start --project /path/to/my-app/.locus
|
|
43
|
-
```
|
|
51
|
+
## License
|
|
44
52
|
|
|
45
|
-
|
|
53
|
+
[MIT](https://github.com/asgarovf/locusai/blob/master/LICENSE)
|
package/bin/locus.js
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
// packages/cli/index.ts
|
|
5
5
|
import { existsSync as existsSync2 } from "fs";
|
|
6
6
|
import { homedir } from "os";
|
|
7
|
-
import { isAbsolute, join as join6, resolve
|
|
7
|
+
import { isAbsolute, join as join6, resolve } from "path";
|
|
8
8
|
import { parseArgs } from "util";
|
|
9
9
|
|
|
10
10
|
// packages/cli/src/generators/locus.ts
|
|
11
11
|
import { Database } from "bun:sqlite";
|
|
12
12
|
import { existsSync } from "fs";
|
|
13
13
|
import { writeFile as writeFile2 } from "fs/promises";
|
|
14
|
-
import { join
|
|
14
|
+
import { join } from "path";
|
|
15
15
|
|
|
16
16
|
// packages/cli/src/utils.ts
|
|
17
17
|
import { mkdir, writeFile } from "fs/promises";
|
|
@@ -99,18 +99,11 @@ Managed by Locus.
|
|
|
99
99
|
}
|
|
100
100
|
async function logMcpConfig(config) {
|
|
101
101
|
const { projectPath, projectName } = config;
|
|
102
|
-
const scriptDir = import.meta.dir;
|
|
103
|
-
const isBundled = scriptDir.endsWith("/bin") || scriptDir.endsWith("\\bin");
|
|
104
|
-
const locusRoot = isBundled ? resolve(scriptDir, "../") : resolve(scriptDir, "../../../../");
|
|
105
|
-
const mcpSourcePath = join(locusRoot, "apps/mcp/src/index.ts");
|
|
106
|
-
const mcpBundledPath = isBundled ? join(scriptDir, "mcp.js") : join(locusRoot, "packages/cli/bin/mcp.js");
|
|
107
|
-
const mcpExecPath = existsSync(mcpSourcePath) ? mcpSourcePath : mcpBundledPath;
|
|
108
102
|
const mcpConfig = {
|
|
109
103
|
mcpServers: {
|
|
110
|
-
|
|
111
|
-
command: "
|
|
112
|
-
args: ["
|
|
113
|
-
env: {}
|
|
104
|
+
locus: {
|
|
105
|
+
command: "npx",
|
|
106
|
+
args: ["@locusai/cli", "mcp", "--project", projectPath]
|
|
114
107
|
}
|
|
115
108
|
}
|
|
116
109
|
};
|
|
@@ -120,7 +113,7 @@ Project created successfully!`);
|
|
|
120
113
|
Next steps:`);
|
|
121
114
|
console.log(` cd ${projectName}`);
|
|
122
115
|
console.log(" bun install");
|
|
123
|
-
console.log("
|
|
116
|
+
console.log(" npx @locusai/cli dev");
|
|
124
117
|
console.log(`
|
|
125
118
|
MCP Configuration (add to your IDE or Claude Desktop config):`);
|
|
126
119
|
console.log(JSON.stringify(mcpConfig, null, 2));
|
|
@@ -1010,7 +1003,7 @@ async function init(args) {
|
|
|
1010
1003
|
let basePath = process.cwd();
|
|
1011
1004
|
if (userPathInput) {
|
|
1012
1005
|
const userPath = userPathInput.startsWith("~") ? join6(homedir(), userPathInput.slice(1)) : userPathInput;
|
|
1013
|
-
basePath = isAbsolute(userPath) ? userPath :
|
|
1006
|
+
basePath = isAbsolute(userPath) ? userPath : resolve(process.cwd(), userPath);
|
|
1014
1007
|
}
|
|
1015
1008
|
projectPath = join6(basePath, projectName);
|
|
1016
1009
|
} else {
|
|
@@ -1035,21 +1028,6 @@ async function init(args) {
|
|
|
1035
1028
|
await generateAppServer(config);
|
|
1036
1029
|
}
|
|
1037
1030
|
await initializeLocus(config);
|
|
1038
|
-
if (isNewProject) {
|
|
1039
|
-
if (!existsSync2(join6(projectPath, ".git"))) {
|
|
1040
|
-
console.log("Initializing git repository...");
|
|
1041
|
-
await Bun.spawn(["git", "init"], { cwd: projectPath, stdout: "ignore" }).exited;
|
|
1042
|
-
}
|
|
1043
|
-
console.log("Formatting project...");
|
|
1044
|
-
try {
|
|
1045
|
-
await Bun.spawn(["bun", "run", "format"], {
|
|
1046
|
-
cwd: projectPath,
|
|
1047
|
-
stdout: "ignore"
|
|
1048
|
-
}).exited;
|
|
1049
|
-
} catch {
|
|
1050
|
-
console.log("Note: Formatting skipped (biome not found). Run 'bun install' first.");
|
|
1051
|
-
}
|
|
1052
|
-
}
|
|
1053
1031
|
await logMcpConfig(config);
|
|
1054
1032
|
} catch (error) {
|
|
1055
1033
|
console.error("Error creating project:", error);
|
|
@@ -1065,7 +1043,7 @@ async function dev(args) {
|
|
|
1065
1043
|
strict: false
|
|
1066
1044
|
});
|
|
1067
1045
|
const projectPath = values.project || process.cwd();
|
|
1068
|
-
const locusDir = isAbsolute(projectPath) ? join6(projectPath, ".locus") :
|
|
1046
|
+
const locusDir = isAbsolute(projectPath) ? join6(projectPath, ".locus") : resolve(process.cwd(), projectPath, ".locus");
|
|
1069
1047
|
if (!existsSync2(locusDir)) {
|
|
1070
1048
|
console.error(`Error: .locus directory not found at ${locusDir}`);
|
|
1071
1049
|
console.log("Are you in a Locus project?");
|
|
@@ -1073,7 +1051,7 @@ async function dev(args) {
|
|
|
1073
1051
|
}
|
|
1074
1052
|
const cliDir = import.meta.dir;
|
|
1075
1053
|
const isBundled = cliDir.endsWith("/bin") || cliDir.endsWith("\\bin");
|
|
1076
|
-
const locusRoot = isBundled ?
|
|
1054
|
+
const locusRoot = isBundled ? resolve(cliDir, "../") : resolve(cliDir, "../../");
|
|
1077
1055
|
const serverSourcePath = join6(locusRoot, "apps/server/src/index.ts");
|
|
1078
1056
|
const serverBundledPath = isBundled ? join6(cliDir, "server.js") : join6(locusRoot, "packages/cli/bin/server.js");
|
|
1079
1057
|
const serverExecPath = existsSync2(serverSourcePath) ? serverSourcePath : serverBundledPath;
|
package/bin/server.js
CHANGED
|
@@ -31314,12 +31314,13 @@ class CiController {
|
|
|
31314
31314
|
// apps/server/src/controllers/doc.controller.ts
|
|
31315
31315
|
import {
|
|
31316
31316
|
existsSync as existsSync2,
|
|
31317
|
+
mkdirSync,
|
|
31317
31318
|
readdirSync,
|
|
31318
31319
|
readFileSync,
|
|
31319
31320
|
statSync,
|
|
31320
31321
|
writeFileSync
|
|
31321
31322
|
} from "fs";
|
|
31322
|
-
import { join as join2 } from "path";
|
|
31323
|
+
import { dirname, join as join2 } from "path";
|
|
31323
31324
|
|
|
31324
31325
|
class DocController {
|
|
31325
31326
|
config;
|
|
@@ -31376,6 +31377,7 @@ class DocController {
|
|
|
31376
31377
|
if (!fullPath.startsWith(this.config.docsPath)) {
|
|
31377
31378
|
return res.status(403).json({ error: { message: "Invalid path" } });
|
|
31378
31379
|
}
|
|
31380
|
+
mkdirSync(dirname(fullPath), { recursive: true });
|
|
31379
31381
|
writeFileSync(fullPath, content, "utf-8");
|
|
31380
31382
|
res.json({ ok: true });
|
|
31381
31383
|
} catch (err) {
|
package/index.ts
CHANGED
|
@@ -67,28 +67,6 @@ async function init(args: string[]) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
await initializeLocus(config);
|
|
70
|
-
|
|
71
|
-
if (isNewProject) {
|
|
72
|
-
if (!existsSync(join(projectPath, ".git"))) {
|
|
73
|
-
console.log("Initializing git repository...");
|
|
74
|
-
await Bun.spawn(["git", "init"], { cwd: projectPath, stdout: "ignore" })
|
|
75
|
-
.exited;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
console.log("Formatting project...");
|
|
79
|
-
// Fallback if biome is not in path
|
|
80
|
-
try {
|
|
81
|
-
await Bun.spawn(["bun", "run", "format"], {
|
|
82
|
-
cwd: projectPath,
|
|
83
|
-
stdout: "ignore",
|
|
84
|
-
}).exited;
|
|
85
|
-
} catch {
|
|
86
|
-
console.log(
|
|
87
|
-
"Note: Formatting skipped (biome not found). Run 'bun install' first."
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
70
|
await logMcpConfig(config);
|
|
93
71
|
} catch (error) {
|
|
94
72
|
console.error("Error creating project:", error);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-255b85be392b6a62.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-255b85be392b6a62.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[1432,[],\"OutletBoundary\"]\n9:I[1432,[],\"MetadataBoundary\"]\nb:I[1432,[],\"ViewportBoundary\"]\nd:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"llhzNjrWTNSwgquH1l7JE\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$1\",\"xJCOzcDD38SbDa2h6isdS\",{\"children\":[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a21f388d2a000173.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-a21f388d2a000173.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[1432,[],\"OutletBoundary\"]\n9:I[1432,[],\"MetadataBoundary\"]\nb:I[1432,[],\"ViewportBoundary\"]\nd:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jpBY_e0OMNAi3Fw2pJYM_\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$1\",\"VadaKC5sZrCkOyPtNKuux\",{\"children\":[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var c=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],u=!0,s=0;s<o.length;s++)(!1&a||c>=a)&&Object.keys(r.O).every(e=>r.O[e](o[s]))?o.splice(s--,1):(u=!1,a<c&&(c=a));if(u){e.splice(i--,1);var l=n();void 0!==l&&(t=l)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var c=2&n&&o;"object"==typeof c&&!~e.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>954===e?"static/chunks/954-73b5906ca7819e42.js":972===e?"static/chunks/972-efb0c31aeb3e1619.js":273===e?"static/chunks/273-95c2836f1a6dfb23.js":"static/chunks/"+e+"."+({18:"1e768729d24d723d",140:"d5e67b269d70c096",142:"82cd6bec804102b9",188:"27288b5094867f29"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o]){e[o].push(n);return}if(void 0!==a)for(var c,u,s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var
|
|
1
|
+
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var c=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],u=!0,s=0;s<o.length;s++)(!1&a||c>=a)&&Object.keys(r.O).every(e=>r.O[e](o[s]))?o.splice(s--,1):(u=!1,a<c&&(c=a));if(u){e.splice(i--,1);var l=n();void 0!==l&&(t=l)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var c=2&n&&o;"object"==typeof c&&!~e.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>954===e?"static/chunks/954-73b5906ca7819e42.js":972===e?"static/chunks/972-efb0c31aeb3e1619.js":273===e?"static/chunks/273-95c2836f1a6dfb23.js":"static/chunks/"+e+"."+({18:"1e768729d24d723d",140:"d5e67b269d70c096",142:"82cd6bec804102b9",188:"27288b5094867f29"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o]){e[o].push(n);return}if(void 0!==a)for(var c,u,s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var f=s[l];if(f.getAttribute("src")==o||f.getAttribute("data-webpack")==t+a){c=f;break}}c||(u=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,r.nc&&c.setAttribute("nonce",r.nc),c.setAttribute("data-webpack",t+a),c.src=r.tu(o)),e[o]=[n];var d=(t,r)=>{c.onerror=c.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],c.parentNode&&c.parentNode.removeChild(c),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=d.bind(null,c.onerror),c.onload=d.bind(null,c.onload),u&&document.head.appendChild(c)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,844:0,678:0,851:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n){if(n)o.push(n[2]);else if(/^(678|68|844|851)$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),c=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;c.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",c.name="ChunkLoadError",c.type=a,c.request=i,n[1](c)}},"chunk-"+t,t)}}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,c,u]=o,s=0;if(i.some(t=>0!==e[t])){for(n in c)r.o(c,n)&&(r.m[n]=c[n]);if(u)var l=u(r)}for(t&&t(o);s<i.length;s++)a=i[s],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(l)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})()})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-255b85be392b6a62.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/app/backlog/page-ade60a21a3597509.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-primary text-primary-foreground shadow-md shadow-primary/20" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right opacity-70"><path d="m9 18 6-6-6-6"></path></svg></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex-1 flex items-center justify-center"><div class="animate-pulse text-muted-foreground">Loading...</div></div><!--/$--></div></main></div><script src="/_next/static/chunks/webpack-255b85be392b6a62.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[5771,[\"286\",\"static/chunks/app/backlog/page-ade60a21a3597509.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"llhzNjrWTNSwgquH1l7JE\",\"p\":\"\",\"c\":[\"\",\"backlog\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"backlog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"backlog\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"backlog\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"Jo2ZQII-UeBN1dpYjAhfe\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a21f388d2a000173.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/app/backlog/page-ade60a21a3597509.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-primary text-primary-foreground shadow-md shadow-primary/20" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right opacity-70"><path d="m9 18 6-6-6-6"></path></svg></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex-1 flex items-center justify-center"><div class="animate-pulse text-muted-foreground">Loading...</div></div><!--/$--></div></main></div><script src="/_next/static/chunks/webpack-a21f388d2a000173.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[5771,[\"286\",\"static/chunks/app/backlog/page-ade60a21a3597509.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jpBY_e0OMNAi3Fw2pJYM_\",\"p\":\"\",\"c\":[\"\",\"backlog\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"backlog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"backlog\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"backlog\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"igj_AL6eKBD5Mr1toeac6\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
@@ -13,7 +13,7 @@ f:I[1432,[],"ViewportBoundary"]
|
|
|
13
13
|
:HL["/_next/static/media/47cbc4e2adbc5db9-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
14
|
:HL["/_next/static/css/8aea088cdc4338f0.css","style"]
|
|
15
15
|
:HL["/_next/static/css/c2c06e0e7e056d3e.css","style"]
|
|
16
|
-
0:{"P":null,"b":"
|
|
16
|
+
0:{"P":null,"b":"jpBY_e0OMNAi3Fw2pJYM_","p":"","c":["","backlog"],"i":false,"f":[[["",{"children":["backlog",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8aea088cdc4338f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c2c06e0e7e056d3e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"__className_6a21cc antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"flex h-screen overflow-hidden bg-background","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1 overflow-auto bg-background p-8","children":["$","div",null,{"className":"max-w-[1440px] mx-auto","children":[["$","$L4",null,{}],["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]]}]}]}]}]]}],{"children":["backlog",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children","backlog","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":"$Lc"}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","igj_AL6eKBD5Mr1toeac6",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
|
|
17
17
|
9:{}
|
|
18
18
|
a:{}
|
|
19
19
|
10:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a979e4e0673642a5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-255b85be392b6a62.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/972-efb0c31aeb3e1619.js" async=""></script><script src="/_next/static/chunks/892-70ddfae0f8c9ee9f.js" async=""></script><script src="/_next/static/chunks/app/docs/page-3b74ec7f0f5e33cf.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-primary text-primary-foreground shadow-md shadow-primary/20" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right opacity-70"><path d="m9 18 6-6-6-6"></path></svg></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div class="flex gap-6 h-[calc(100vh-8rem)]"><aside class="w-80 flex flex-col bg-card/50 border border-border/50 rounded-xl overflow-hidden"><div class="p-4 border-b border-border/50"><div class="flex justify-between items-center mb-3"><h3 class="text-sm font-bold text-foreground">Documentation</h3><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-9 w-9 h-8 w-8"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button></div><div class="relative"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><div class="relative w-full group"><input class="flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 pl-3 pr-3 h-9 pl-9 text-sm bg-secondary/40" placeholder="Search docs..." value=""/></div></div></div><div class="p-3 border-b border-border/50"><div class="flex items-center gap-1.5 text-[10px] text-muted-foreground uppercase tracking-wider mb-2 px-1"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-filter"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>Categories</div><div class="flex flex-wrap gap-1.5"><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all bg-secondary text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>All Documents</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg>Product</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code"><polyline points="16 18 22 12 16 6"></polyline><polyline points="8 6 2 12 8 18"></polyline></svg>Engineering</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-palette"><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"></path></svg>Design</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>Team</button></div></div><div class="flex-1 overflow-y-auto p-2"><div class="flex flex-col items-center justify-center h-full text-center p-4"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file text-muted-foreground/30 mb-2"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg><p class="text-sm text-muted-foreground">No documents</p><p class="text-xs text-muted-foreground/60">Create your first document</p></div></div></aside><main class="flex-1 flex flex-col min-w-0"><div class="h-full flex items-center justify-center"><div class="max-w-lg w-full p-10 bg-card/50 border border-border/50 rounded-2xl flex flex-col items-center text-center space-y-5"><div class="p-5 bg-secondary/50 rounded-2xl"><svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-muted-foreground/40"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div><h2 class="text-xl font-bold text-foreground mb-2">Welcome to Documentation</h2><p class="text-muted-foreground text-sm leading-relaxed max-w-sm">Select a document from the sidebar or create a new one using templates for PRDs, technical specs, and more.</p></div><div class="flex gap-2 pt-2"><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-8 px-3 text-xs "><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus mr-1.5"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>New Document</button></div></div></div></main></div></div></main></div><script src="/_next/static/chunks/webpack-255b85be392b6a62.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[8605,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"972\",\"static/chunks/972-efb0c31aeb3e1619.js\",\"892\",\"static/chunks/892-70ddfae0f8c9ee9f.js\",\"40\",\"static/chunks/app/docs/page-3b74ec7f0f5e33cf.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n:HL[\"/_next/static/css/a979e4e0673642a5.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"llhzNjrWTNSwgquH1l7JE\",\"p\":\"\",\"c\":[\"\",\"docs\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"docs\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"docs\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a979e4e0673642a5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"_BP1o0_fdOY_vRb4mQA7B\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a979e4e0673642a5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a21f388d2a000173.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/972-efb0c31aeb3e1619.js" async=""></script><script src="/_next/static/chunks/892-70ddfae0f8c9ee9f.js" async=""></script><script src="/_next/static/chunks/app/docs/page-5f69fffac832d77c.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-primary text-primary-foreground shadow-md shadow-primary/20" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right opacity-70"><path d="m9 18 6-6-6-6"></path></svg></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div class="flex gap-6 h-[calc(100vh-8rem)]"><aside class="w-80 flex flex-col bg-card/50 border border-border/50 rounded-xl overflow-hidden"><div class="p-4 border-b border-border/50"><div class="flex justify-between items-center mb-3"><h3 class="text-sm font-bold text-foreground">Documentation</h3><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-9 w-9 h-8 w-8"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button></div><div class="relative"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><div class="relative w-full group"><input class="flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 pl-3 pr-3 h-9 pl-9 text-sm bg-secondary/40" placeholder="Search docs..." value=""/></div></div></div><div class="p-3 border-b border-border/50"><div class="flex items-center gap-1.5 text-[10px] text-muted-foreground uppercase tracking-wider mb-2 px-1"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-filter"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>Categories</div><div class="flex flex-wrap gap-1.5"><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all bg-secondary text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>All Documents</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg>Product</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code"><polyline points="16 18 22 12 16 6"></polyline><polyline points="8 6 2 12 8 18"></polyline></svg>Engineering</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-palette"><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"></path></svg>Design</button><button class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium transition-all text-muted-foreground hover:bg-secondary/50"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>Team</button></div></div><div class="flex-1 overflow-y-auto p-2"><div class="flex flex-col items-center justify-center h-full text-center p-4"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file text-muted-foreground/30 mb-2"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg><p class="text-sm text-muted-foreground">No documents</p><p class="text-xs text-muted-foreground/60">Create your first document</p></div></div></aside><main class="flex-1 flex flex-col min-w-0"><div class="h-full flex items-center justify-center"><div class="max-w-lg w-full p-10 bg-card/50 border border-border/50 rounded-2xl flex flex-col items-center text-center space-y-5"><div class="p-5 bg-secondary/50 rounded-2xl"><svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-muted-foreground/40"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div><h2 class="text-xl font-bold text-foreground mb-2">Welcome to Documentation</h2><p class="text-muted-foreground text-sm leading-relaxed max-w-sm">Select a document from the sidebar or create a new one using templates for PRDs, technical specs, and more.</p></div><div class="flex gap-2 pt-2"><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-8 px-3 text-xs "><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus mr-1.5"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>New Document</button></div></div></div></main></div></div></main></div><script src="/_next/static/chunks/webpack-a21f388d2a000173.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[8605,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"972\",\"static/chunks/972-efb0c31aeb3e1619.js\",\"892\",\"static/chunks/892-70ddfae0f8c9ee9f.js\",\"40\",\"static/chunks/app/docs/page-5f69fffac832d77c.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n:HL[\"/_next/static/css/a979e4e0673642a5.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jpBY_e0OMNAi3Fw2pJYM_\",\"p\":\"\",\"c\":[\"\",\"docs\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"docs\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"docs\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a979e4e0673642a5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"s52dLTWOvWFg8LzGAM8FZ\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
5:I[9507,[],""]
|
|
6
6
|
6:I[2639,[],""]
|
|
7
7
|
7:I[5182,[],"ClientPageRoot"]
|
|
8
|
-
8:I[8605,["954","static/chunks/954-73b5906ca7819e42.js","972","static/chunks/972-efb0c31aeb3e1619.js","892","static/chunks/892-70ddfae0f8c9ee9f.js","40","static/chunks/app/docs/page-
|
|
8
|
+
8:I[8605,["954","static/chunks/954-73b5906ca7819e42.js","972","static/chunks/972-efb0c31aeb3e1619.js","892","static/chunks/892-70ddfae0f8c9ee9f.js","40","static/chunks/app/docs/page-5f69fffac832d77c.js"],"default"]
|
|
9
9
|
b:I[1432,[],"OutletBoundary"]
|
|
10
10
|
d:I[1432,[],"MetadataBoundary"]
|
|
11
11
|
f:I[1432,[],"ViewportBoundary"]
|
|
@@ -14,7 +14,7 @@ f:I[1432,[],"ViewportBoundary"]
|
|
|
14
14
|
:HL["/_next/static/css/8aea088cdc4338f0.css","style"]
|
|
15
15
|
:HL["/_next/static/css/c2c06e0e7e056d3e.css","style"]
|
|
16
16
|
:HL["/_next/static/css/a979e4e0673642a5.css","style"]
|
|
17
|
-
0:{"P":null,"b":"
|
|
17
|
+
0:{"P":null,"b":"jpBY_e0OMNAi3Fw2pJYM_","p":"","c":["","docs"],"i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8aea088cdc4338f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c2c06e0e7e056d3e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"__className_6a21cc antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"flex h-screen overflow-hidden bg-background","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1 overflow-auto bg-background p-8","children":["$","div",null,{"className":"max-w-[1440px] mx-auto","children":[["$","$L4",null,{}],["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]]}]}]}]}]]}],{"children":["docs",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children","docs","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/a979e4e0673642a5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$Lb",null,{"children":"$Lc"}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","s52dLTWOvWFg8LzGAM8FZ",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
|
|
18
18
|
9:{}
|
|
19
19
|
a:{}
|
|
20
20
|
10:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-255b85be392b6a62.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/app/page-cb3aec9c8077eab1.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-primary text-primary-foreground shadow-md shadow-primary/20" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right opacity-70"><path d="m9 18 6-6-6-6"></path></svg></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex-1 flex items-center justify-center"><div class="animate-pulse text-muted-foreground">Loading...</div></div><!--/$--></div></main></div><script src="/_next/static/chunks/webpack-255b85be392b6a62.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[4119,[\"974\",\"static/chunks/app/page-cb3aec9c8077eab1.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"llhzNjrWTNSwgquH1l7JE\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"ZeleJS-ntiN4LufSnAnj5\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a21f388d2a000173.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/app/page-cb3aec9c8077eab1.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-primary text-primary-foreground shadow-md shadow-primary/20" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right opacity-70"><path d="m9 18 6-6-6-6"></path></svg></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex-1 flex items-center justify-center"><div class="animate-pulse text-muted-foreground">Loading...</div></div><!--/$--></div></main></div><script src="/_next/static/chunks/webpack-a21f388d2a000173.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[4119,[\"974\",\"static/chunks/app/page-cb3aec9c8077eab1.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jpBY_e0OMNAi3Fw2pJYM_\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"afxZRzUZjkcGzVbOlgaPd\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
@@ -13,7 +13,7 @@ f:I[1432,[],"ViewportBoundary"]
|
|
|
13
13
|
:HL["/_next/static/media/47cbc4e2adbc5db9-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
14
|
:HL["/_next/static/css/8aea088cdc4338f0.css","style"]
|
|
15
15
|
:HL["/_next/static/css/c2c06e0e7e056d3e.css","style"]
|
|
16
|
-
0:{"P":null,"b":"
|
|
16
|
+
0:{"P":null,"b":"jpBY_e0OMNAi3Fw2pJYM_","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8aea088cdc4338f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c2c06e0e7e056d3e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"__className_6a21cc antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"flex h-screen overflow-hidden bg-background","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1 overflow-auto bg-background p-8","children":["$","div",null,{"className":"max-w-[1440px] mx-auto","children":[["$","$L4",null,{}],["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]]}]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":"$Lc"}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","afxZRzUZjkcGzVbOlgaPd",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
|
|
17
17
|
9:{}
|
|
18
18
|
a:{}
|
|
19
19
|
10:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-255b85be392b6a62.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/app/settings/page-f6a23adb7efc71d2.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-secondary text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div class="max-w-3xl"><div class="mb-8"><h1 class="text-2xl font-bold tracking-tight text-foreground">Settings</h1><p class="text-muted-foreground mt-1">Manage your workspace preferences and configuration.</p></div><div class="mb-8"><h3 class="text-xs font-bold uppercase tracking-widest text-muted-foreground mb-4 px-4">Appearance</h3><div class="bg-card border border-border/50 rounded-2xl overflow-hidden divide-y divide-border/50"><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></div><div><h4 class="font-medium text-foreground">Dark Mode</h4><p class="text-sm text-muted-foreground mt-0.5">Toggle between light and dark theme</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="true" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-primary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-5"></span></button></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-palette"><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"></path></svg></div><div><h4 class="font-medium text-foreground">Accent Color</h4><p class="text-sm text-muted-foreground mt-0.5">Choose your preferred accent color</p></div></div><div class="shrink-0"><div class="flex gap-2"><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#6366f1"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#8b5cf6"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#06b6d4"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#10b981"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#f59e0b"></button></div></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><h4 class="font-medium text-foreground">Compact Mode</h4><p class="text-sm text-muted-foreground mt-0.5">Reduce spacing for more content visibility</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="false" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-secondary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-0"></span></button></div></div></div></div><div class="mb-8"><h3 class="text-xs font-bold uppercase tracking-widest text-muted-foreground mb-4 px-4">Notifications</h3><div class="bg-card border border-border/50 rounded-2xl overflow-hidden divide-y divide-border/50"><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></div><div><h4 class="font-medium text-foreground">Push Notifications</h4><p class="text-sm text-muted-foreground mt-0.5">Receive notifications for task updates</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="true" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-primary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-5"></span></button></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg></div><div><h4 class="font-medium text-foreground">Auto Refresh</h4><p class="text-sm text-muted-foreground mt-0.5">Automatically refresh board data</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="true" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-primary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-5"></span></button></div></div></div></div><div class="mb-8"><h3 class="text-xs font-bold uppercase tracking-widest text-muted-foreground mb-4 px-4">Account</h3><div class="bg-card border border-border/50 rounded-2xl overflow-hidden divide-y divide-border/50"><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><div><h4 class="font-medium text-foreground">Profile</h4><p class="text-sm text-muted-foreground mt-0.5">Update your personal information</p></div></div><div class="shrink-0"><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-8 px-3 text-xs ">Edit</button></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><div><h4 class="font-medium text-foreground">Security</h4><p class="text-sm text-muted-foreground mt-0.5">Manage authentication settings</p></div></div><div class="shrink-0"><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-8 px-3 text-xs ">Configure</button></div></div></div></div><div><h3 class="text-xs font-bold uppercase tracking-widest text-destructive mb-4 px-4">Danger Zone</h3><div class="bg-destructive/5 border border-destructive/20 rounded-2xl p-6"><div class="flex items-center justify-between"><div><h4 class="font-medium text-foreground">Reset Workspace</h4><p class="text-sm text-muted-foreground mt-0.5">Delete all tasks, documents, and settings</p></div><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90 h-8 px-3 text-xs ">Reset</button></div></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-255b85be392b6a62.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[2804,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"662\",\"static/chunks/app/settings/page-f6a23adb7efc71d2.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"llhzNjrWTNSwgquH1l7JE\",\"p\":\"\",\"c\":[\"\",\"settings\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"settings\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"settings\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"settings\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"YOr1QYtypME2bOX5_9ssB\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a21f388d2a000173.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><script src="/_next/static/chunks/app/settings/page-82693b6134aafc85.js" async=""></script><meta name="next-size-adjust" content=""/><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all bg-secondary text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div class="max-w-3xl"><div class="mb-8"><h1 class="text-2xl font-bold tracking-tight text-foreground">Settings</h1><p class="text-muted-foreground mt-1">Manage your workspace preferences and configuration.</p></div><div class="mb-8"><h3 class="text-xs font-bold uppercase tracking-widest text-muted-foreground mb-4 px-4">Appearance</h3><div class="bg-card border border-border/50 rounded-2xl overflow-hidden divide-y divide-border/50"><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></div><div><h4 class="font-medium text-foreground">Dark Mode</h4><p class="text-sm text-muted-foreground mt-0.5">Toggle between light and dark theme</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="true" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-primary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-5"></span></button></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-palette"><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"></path></svg></div><div><h4 class="font-medium text-foreground">Accent Color</h4><p class="text-sm text-muted-foreground mt-0.5">Choose your preferred accent color</p></div></div><div class="shrink-0"><div class="flex gap-2"><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#6366f1"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#8b5cf6"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#06b6d4"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#10b981"></button><button class="w-6 h-6 rounded-full border-2 border-transparent hover:border-foreground/30 transition-colors" style="background-color:#f59e0b"></button></div></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><h4 class="font-medium text-foreground">Compact Mode</h4><p class="text-sm text-muted-foreground mt-0.5">Reduce spacing for more content visibility</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="false" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-secondary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-0"></span></button></div></div></div></div><div class="mb-8"><h3 class="text-xs font-bold uppercase tracking-widest text-muted-foreground mb-4 px-4">Notifications</h3><div class="bg-card border border-border/50 rounded-2xl overflow-hidden divide-y divide-border/50"><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></div><div><h4 class="font-medium text-foreground">Push Notifications</h4><p class="text-sm text-muted-foreground mt-0.5">Receive notifications for task updates</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="true" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-primary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-5"></span></button></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg></div><div><h4 class="font-medium text-foreground">Auto Refresh</h4><p class="text-sm text-muted-foreground mt-0.5">Automatically refresh board data</p></div></div><div class="shrink-0"><button type="button" role="switch" aria-checked="true" class="relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 bg-primary"><span class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-lg ring-0 transition translate-x-5"></span></button></div></div></div></div><div class="mb-8"><h3 class="text-xs font-bold uppercase tracking-widest text-muted-foreground mb-4 px-4">Account</h3><div class="bg-card border border-border/50 rounded-2xl overflow-hidden divide-y divide-border/50"><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><div><h4 class="font-medium text-foreground">Profile</h4><p class="text-sm text-muted-foreground mt-0.5">Update your personal information</p></div></div><div class="shrink-0"><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-8 px-3 text-xs ">Edit</button></div></div><div class="flex items-start justify-between p-4 rounded-xl hover:bg-secondary/30 transition-colors"><div class="flex gap-4"><div class="w-10 h-10 rounded-xl bg-secondary flex items-center justify-center text-muted-foreground shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><div><h4 class="font-medium text-foreground">Security</h4><p class="text-sm text-muted-foreground mt-0.5">Manage authentication settings</p></div></div><div class="shrink-0"><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-8 px-3 text-xs ">Configure</button></div></div></div></div><div><h3 class="text-xs font-bold uppercase tracking-widest text-destructive mb-4 px-4">Danger Zone</h3><div class="bg-destructive/5 border border-destructive/20 rounded-2xl p-6"><div class="flex items-center justify-between"><div><h4 class="font-medium text-foreground">Reset Workspace</h4><p class="text-sm text-muted-foreground mt-0.5">Delete all tasks, documents, and settings</p></div><button class="inline-flex items-center justify-center gap-2 font-semibold rounded-lg transition-all duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90 h-8 px-3 text-xs ">Reset</button></div></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-a21f388d2a000173.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[5182,[],\"ClientPageRoot\"]\n8:I[2804,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"662\",\"static/chunks/app/settings/page-82693b6134aafc85.js\"],\"default\"]\nb:I[1432,[],\"OutletBoundary\"]\nd:I[1432,[],\"MetadataBoundary\"]\nf:I[1432,[],\"ViewportBoundary\"]\n11:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jpBY_e0OMNAi3Fw2pJYM_\",\"p\":\"\",\"c\":[\"\",\"settings\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"settings\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"settings\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"settings\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"LlZoQpbIfeMCIUpcaF6oO\",{\"children\":[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"c:null\n"])</script></body></html>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
5:I[9507,[],""]
|
|
6
6
|
6:I[2639,[],""]
|
|
7
7
|
7:I[5182,[],"ClientPageRoot"]
|
|
8
|
-
8:I[2804,["954","static/chunks/954-73b5906ca7819e42.js","662","static/chunks/app/settings/page-
|
|
8
|
+
8:I[2804,["954","static/chunks/954-73b5906ca7819e42.js","662","static/chunks/app/settings/page-82693b6134aafc85.js"],"default"]
|
|
9
9
|
b:I[1432,[],"OutletBoundary"]
|
|
10
10
|
d:I[1432,[],"MetadataBoundary"]
|
|
11
11
|
f:I[1432,[],"ViewportBoundary"]
|
|
@@ -13,7 +13,7 @@ f:I[1432,[],"ViewportBoundary"]
|
|
|
13
13
|
:HL["/_next/static/media/47cbc4e2adbc5db9-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
14
|
:HL["/_next/static/css/8aea088cdc4338f0.css","style"]
|
|
15
15
|
:HL["/_next/static/css/c2c06e0e7e056d3e.css","style"]
|
|
16
|
-
0:{"P":null,"b":"
|
|
16
|
+
0:{"P":null,"b":"jpBY_e0OMNAi3Fw2pJYM_","p":"","c":["","settings"],"i":false,"f":[[["",{"children":["settings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8aea088cdc4338f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c2c06e0e7e056d3e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"__className_6a21cc antialiased","children":["$","$L2",null,{"children":["$","div",null,{"className":"flex h-screen overflow-hidden bg-background","children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-1 overflow-auto bg-background p-8","children":["$","div",null,{"className":"max-w-[1440px] mx-auto","children":[["$","$L4",null,{}],["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]]}]}]}]}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children","settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":"$Lc"}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","LlZoQpbIfeMCIUpcaF6oO",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
|
|
17
17
|
9:{}
|
|
18
18
|
a:{}
|
|
19
19
|
10:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/src/generators/locus.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Database } from "bun:sqlite";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { writeFile } from "node:fs/promises";
|
|
4
|
-
import { join
|
|
4
|
+
import { join } from "node:path";
|
|
5
5
|
import type { ProjectConfig } from "../types.js";
|
|
6
6
|
import { ensureDir, writeJson } from "../utils.js";
|
|
7
7
|
|
|
@@ -91,29 +91,12 @@ export async function initializeLocus(config: ProjectConfig) {
|
|
|
91
91
|
|
|
92
92
|
export async function logMcpConfig(config: ProjectConfig) {
|
|
93
93
|
const { projectPath, projectName } = config;
|
|
94
|
-
const scriptDir = import.meta.dir;
|
|
95
|
-
|
|
96
|
-
const isBundled = scriptDir.endsWith("/bin") || scriptDir.endsWith("\\bin");
|
|
97
|
-
const locusRoot = isBundled
|
|
98
|
-
? resolve(scriptDir, "../")
|
|
99
|
-
: resolve(scriptDir, "../../../../");
|
|
100
|
-
|
|
101
|
-
// Detection for bundled vs source mode
|
|
102
|
-
const mcpSourcePath = join(locusRoot, "apps/mcp/src/index.ts");
|
|
103
|
-
const mcpBundledPath = isBundled
|
|
104
|
-
? join(scriptDir, "mcp.js")
|
|
105
|
-
: join(locusRoot, "packages/cli/bin/mcp.js");
|
|
106
|
-
|
|
107
|
-
const mcpExecPath = existsSync(mcpSourcePath)
|
|
108
|
-
? mcpSourcePath
|
|
109
|
-
: mcpBundledPath;
|
|
110
94
|
|
|
111
95
|
const mcpConfig = {
|
|
112
96
|
mcpServers: {
|
|
113
|
-
|
|
114
|
-
command: "
|
|
115
|
-
args: ["
|
|
116
|
-
env: {},
|
|
97
|
+
locus: {
|
|
98
|
+
command: "npx",
|
|
99
|
+
args: ["@locusai/cli", "mcp", "--project", projectPath],
|
|
117
100
|
},
|
|
118
101
|
},
|
|
119
102
|
};
|
|
@@ -122,7 +105,7 @@ export async function logMcpConfig(config: ProjectConfig) {
|
|
|
122
105
|
console.log("\nNext steps:");
|
|
123
106
|
console.log(` cd ${projectName}`);
|
|
124
107
|
console.log(" bun install");
|
|
125
|
-
console.log("
|
|
108
|
+
console.log(" npx @locusai/cli dev");
|
|
126
109
|
console.log(
|
|
127
110
|
"\nMCP Configuration (add to your IDE or Claude Desktop config):"
|
|
128
111
|
);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|