agkan 2.14.3 → 2.15.0
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.ja.md +13 -13
- package/README.md +13 -13
- package/dist/board/boardFavicon.d.ts +2 -0
- package/dist/board/boardFavicon.d.ts.map +1 -0
- package/dist/board/boardFavicon.js +5 -0
- package/dist/board/boardFavicon.js.map +1 -0
- package/dist/board/boardRenderer.d.ts +22 -6
- package/dist/board/boardRenderer.d.ts.map +1 -1
- package/dist/board/boardRenderer.js +40 -24
- package/dist/board/boardRenderer.js.map +1 -1
- package/dist/board/boardRoutes.d.ts +2 -2
- package/dist/board/boardRoutes.d.ts.map +1 -1
- package/dist/board/boardRoutes.js +18 -3
- package/dist/board/boardRoutes.js.map +1 -1
- package/dist/board/boardStyles.d.ts +1 -1
- package/dist/board/boardStyles.d.ts.map +1 -1
- package/dist/board/boardStyles.js +14 -6
- package/dist/board/boardStyles.js.map +1 -1
- package/dist/board/client/board.js +369 -13
- package/dist/board/server.d.ts +2 -2
- package/dist/board/server.d.ts.map +1 -1
- package/dist/board/server.js +5 -5
- package/dist/board/server.js.map +1 -1
- package/dist/cli/commands/agent-guide.d.ts.map +1 -1
- package/dist/cli/commands/agent-guide.js +6 -0
- package/dist/cli/commands/agent-guide.js.map +1 -1
- package/dist/cli/commands/board.d.ts.map +1 -1
- package/dist/cli/commands/board.js +202 -15
- package/dist/cli/commands/board.js.map +1 -1
- package/dist/cli/commands/ps.d.ts +7 -0
- package/dist/cli/commands/ps.d.ts.map +1 -0
- package/dist/cli/commands/ps.js +83 -0
- package/dist/cli/commands/ps.js.map +1 -0
- package/dist/cli/commands/task/add.js +1 -1
- package/dist/cli/commands/task/add.js.map +1 -1
- package/dist/cli/commands/task/copy.d.ts +6 -0
- package/dist/cli/commands/task/copy.d.ts.map +1 -0
- package/dist/cli/commands/task/copy.js +118 -0
- package/dist/cli/commands/task/copy.js.map +1 -0
- package/dist/cli/commands/task/list.d.ts.map +1 -1
- package/dist/cli/commands/task/list.js +37 -17
- package/dist/cli/commands/task/list.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/board-daemon.d.ts +7 -0
- package/dist/cli/utils/board-daemon.d.ts.map +1 -0
- package/dist/cli/utils/board-daemon.js +77 -0
- package/dist/cli/utils/board-daemon.js.map +1 -0
- package/dist/db/adapters/sqlite-storage-backend.d.ts +26 -0
- package/dist/db/adapters/sqlite-storage-backend.d.ts.map +1 -0
- package/dist/db/adapters/sqlite-storage-backend.js +447 -0
- package/dist/db/adapters/sqlite-storage-backend.js.map +1 -0
- package/dist/db/connection.d.ts +14 -0
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +28 -2
- package/dist/db/connection.js.map +1 -1
- package/dist/db/migrations/20260328000000_initial_schema.d.ts +3 -0
- package/dist/db/migrations/20260328000000_initial_schema.d.ts.map +1 -0
- package/dist/db/migrations/20260328000000_initial_schema.js +218 -0
- package/dist/db/migrations/20260328000000_initial_schema.js.map +1 -0
- package/dist/db/migrations/20260329000000_add_session_id_to_task_run_logs.d.ts +3 -0
- package/dist/db/migrations/20260329000000_add_session_id_to_task_run_logs.d.ts.map +1 -0
- package/dist/db/migrations/20260329000000_add_session_id_to_task_run_logs.js +7 -0
- package/dist/db/migrations/20260329000000_add_session_id_to_task_run_logs.js.map +1 -0
- package/dist/db/migrations/index.d.ts +4 -0
- package/dist/db/migrations/index.d.ts.map +1 -0
- package/dist/db/migrations/index.js +18 -0
- package/dist/db/migrations/index.js.map +1 -0
- package/dist/db/migrations/types.d.ts +17 -0
- package/dist/db/migrations/types.d.ts.map +1 -0
- package/dist/{board/client → db/migrations}/types.js +0 -1
- package/dist/db/migrations/types.js.map +1 -0
- package/dist/db/reset.d.ts.map +1 -1
- package/dist/db/reset.js +8 -3
- package/dist/db/reset.js.map +1 -1
- package/dist/db/schema.d.ts +4 -4
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +22 -207
- package/dist/db/schema.js.map +1 -1
- package/dist/db/types/repository.d.ts +192 -0
- package/dist/db/types/repository.d.ts.map +1 -0
- package/dist/db/types/repository.js +15 -0
- package/dist/db/types/repository.js.map +1 -0
- package/dist/models/Attachment.d.ts +25 -0
- package/dist/models/Attachment.d.ts.map +1 -0
- package/dist/models/Attachment.js +7 -0
- package/dist/models/Attachment.js.map +1 -0
- package/dist/services/AttachmentService.d.ts +62 -0
- package/dist/services/AttachmentService.d.ts.map +1 -0
- package/dist/services/AttachmentService.js +95 -0
- package/dist/services/AttachmentService.js.map +1 -0
- package/dist/services/ClaudeProcessService.d.ts +100 -0
- package/dist/services/ClaudeProcessService.d.ts.map +1 -0
- package/dist/services/ClaudeProcessService.js +278 -0
- package/dist/services/ClaudeProcessService.js.map +1 -0
- package/dist/services/CommentService.d.ts +3 -3
- package/dist/services/CommentService.d.ts.map +1 -1
- package/dist/services/CommentService.js +10 -70
- package/dist/services/CommentService.js.map +1 -1
- package/dist/services/ExportImportService.d.ts +3 -3
- package/dist/services/ExportImportService.d.ts.map +1 -1
- package/dist/services/ExportImportService.js +12 -16
- package/dist/services/ExportImportService.js.map +1 -1
- package/dist/services/MetadataService.d.ts +3 -3
- package/dist/services/MetadataService.d.ts.map +1 -1
- package/dist/services/MetadataService.js +9 -69
- package/dist/services/MetadataService.js.map +1 -1
- package/dist/services/TagService.d.ts +3 -3
- package/dist/services/TagService.d.ts.map +1 -1
- package/dist/services/TagService.js +9 -35
- package/dist/services/TagService.js.map +1 -1
- package/dist/services/TaskBlockService.d.ts +3 -3
- package/dist/services/TaskBlockService.d.ts.map +1 -1
- package/dist/services/TaskBlockService.js +9 -36
- package/dist/services/TaskBlockService.js.map +1 -1
- package/dist/services/TaskService.d.ts +3 -23
- package/dist/services/TaskService.d.ts.map +1 -1
- package/dist/services/TaskService.js +34 -186
- package/dist/services/TaskService.js.map +1 -1
- package/dist/services/TaskTagService.d.ts +3 -3
- package/dist/services/TaskTagService.d.ts.map +1 -1
- package/dist/services/TaskTagService.js +19 -83
- package/dist/services/TaskTagService.js.map +1 -1
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +18 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +12 -5
- package/dist/board/boardScript.d.ts +0 -2
- package/dist/board/boardScript.d.ts.map +0 -1
- package/dist/board/boardScript.js +0 -1202
- package/dist/board/boardScript.js.map +0 -1
- package/dist/board/client/addTaskModal.d.ts +0 -2
- package/dist/board/client/addTaskModal.d.ts.map +0 -1
- package/dist/board/client/addTaskModal.js +0 -64
- package/dist/board/client/addTaskModal.js.map +0 -1
- package/dist/board/client/autoScroll.d.ts +0 -4
- package/dist/board/client/autoScroll.d.ts.map +0 -1
- package/dist/board/client/autoScroll.js +0 -59
- package/dist/board/client/autoScroll.js.map +0 -1
- package/dist/board/client/boardPolling.d.ts +0 -15
- package/dist/board/client/boardPolling.d.ts.map +0 -1
- package/dist/board/client/boardPolling.js +0 -144
- package/dist/board/client/boardPolling.js.map +0 -1
- package/dist/board/client/burgerMenu.d.ts +0 -2
- package/dist/board/client/burgerMenu.d.ts.map +0 -1
- package/dist/board/client/burgerMenu.js +0 -80
- package/dist/board/client/burgerMenu.js.map +0 -1
- package/dist/board/client/contextMenu.d.ts +0 -2
- package/dist/board/client/contextMenu.d.ts.map +0 -1
- package/dist/board/client/contextMenu.js +0 -52
- package/dist/board/client/contextMenu.js.map +0 -1
- package/dist/board/client/detailPanel.d.ts +0 -8
- package/dist/board/client/detailPanel.d.ts.map +0 -1
- package/dist/board/client/detailPanel.js +0 -565
- package/dist/board/client/detailPanel.js.map +0 -1
- package/dist/board/client/dragDrop.d.ts +0 -6
- package/dist/board/client/dragDrop.d.ts.map +0 -1
- package/dist/board/client/dragDrop.js +0 -82
- package/dist/board/client/dragDrop.js.map +0 -1
- package/dist/board/client/filters.d.ts +0 -6
- package/dist/board/client/filters.d.ts.map +0 -1
- package/dist/board/client/filters.js +0 -167
- package/dist/board/client/filters.js.map +0 -1
- package/dist/board/client/main.d.ts +0 -2
- package/dist/board/client/main.d.ts.map +0 -1
- package/dist/board/client/main.js +0 -20
- package/dist/board/client/main.js.map +0 -1
- package/dist/board/client/tags.d.ts +0 -6
- package/dist/board/client/tags.d.ts.map +0 -1
- package/dist/board/client/tags.js +0 -198
- package/dist/board/client/tags.js.map +0 -1
- package/dist/board/client/types.d.ts +0 -48
- package/dist/board/client/types.d.ts.map +0 -1
- package/dist/board/client/types.js.map +0 -1
- package/dist/board/client/utils.d.ts +0 -4
- package/dist/board/client/utils.d.ts.map +0 -1
- package/dist/board/client/utils.js +0 -44
- package/dist/board/client/utils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardFavicon.js","sourceRoot":"","sources":["../../src/board/boardFavicon.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,wpkhBAAwpkhB,CAAC"}
|
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
import { Task, TaskStatus } from '../models';
|
|
2
2
|
import { Tag } from '../models/Tag';
|
|
3
|
-
import {
|
|
3
|
+
import { StorageBackend } from '../db/types/repository';
|
|
4
4
|
export declare const STATUSES: TaskStatus[];
|
|
5
5
|
export declare const STATUS_LABELS: Record<TaskStatus, string>;
|
|
6
6
|
export declare const STATUS_COLORS: Record<TaskStatus, string>;
|
|
7
|
-
export declare function renderCard(task: Task, tags: Tag[]): string;
|
|
8
|
-
export declare function renderColumn(status: TaskStatus, tasks: Task[], tagMap: Map<number, Tag[]
|
|
9
|
-
|
|
7
|
+
export declare function renderCard(task: Task, tags: Tag[], blockedByIds?: number[], blockingIds?: number[]): string;
|
|
8
|
+
export declare function renderColumn(status: TaskStatus, tasks: Task[], tagMap: Map<number, Tag[]>, blockMap?: Map<number, {
|
|
9
|
+
blockedBy: number[];
|
|
10
|
+
blocking: number[];
|
|
11
|
+
}>): string;
|
|
12
|
+
export declare function renderBoard(tasksByStatus: Map<TaskStatus, Task[]>, tagMap: Map<number, Tag[]>, boardTitle?: string, theme?: string, blockMap?: Map<number, {
|
|
13
|
+
blockedBy: number[];
|
|
14
|
+
blocking: number[];
|
|
15
|
+
}>): string;
|
|
10
16
|
export declare function sortByPriority(tasks: Task[]): Task[];
|
|
11
|
-
export declare function buildBoardCardsPayload(tasksByStatus: Map<TaskStatus, Task[]>, tagMap: Map<number, Tag[]
|
|
17
|
+
export declare function buildBoardCardsPayload(tasksByStatus: Map<TaskStatus, Task[]>, tagMap: Map<number, Tag[]>, blockMap?: Map<number, {
|
|
18
|
+
blockedBy: number[];
|
|
19
|
+
blocking: number[];
|
|
20
|
+
}>): {
|
|
12
21
|
status: TaskStatus;
|
|
13
22
|
html: string;
|
|
14
23
|
count: number;
|
|
15
24
|
}[];
|
|
16
25
|
export declare function buildTasksByStatus(tasks: Task[]): Map<TaskStatus, Task[]>;
|
|
17
|
-
export declare function
|
|
26
|
+
export declare function buildBlockMap(blocks: Array<{
|
|
27
|
+
blocker_task_id: number;
|
|
28
|
+
blocked_task_id: number;
|
|
29
|
+
}>): Map<number, {
|
|
30
|
+
blockedBy: number[];
|
|
31
|
+
blocking: number[];
|
|
32
|
+
}>;
|
|
33
|
+
export declare function getBoardUpdatedAt(database: StorageBackend): string | null;
|
|
18
34
|
//# sourceMappingURL=boardRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boardRenderer.d.ts","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,UAAU,EAA8B,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"boardRenderer.d.ts","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,UAAU,EAA8B,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,eAAO,MAAM,QAAQ,EAAE,UAAU,EAA8E,CAAC;AAEhH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAQpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAQpD,CAAC;AAWF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,GAAE,MAAM,EAAO,EAAE,WAAW,GAAE,MAAM,EAAO,GAAG,MAAM,CAkBnH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E,MAAM,CAuBR;AAmHD,wBAAgB,WAAW,CACzB,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E,MAAM,CA+CR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAMpD;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAWvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAYzE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAc1D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAEzE"}
|
|
@@ -40,11 +40,13 @@ exports.renderBoard = renderBoard;
|
|
|
40
40
|
exports.sortByPriority = sortByPriority;
|
|
41
41
|
exports.buildBoardCardsPayload = buildBoardCardsPayload;
|
|
42
42
|
exports.buildTasksByStatus = buildTasksByStatus;
|
|
43
|
+
exports.buildBlockMap = buildBlockMap;
|
|
43
44
|
exports.getBoardUpdatedAt = getBoardUpdatedAt;
|
|
44
45
|
const fs = __importStar(require("fs"));
|
|
45
46
|
const path = __importStar(require("path"));
|
|
46
47
|
const models_1 = require("../models");
|
|
47
48
|
const boardStyles_1 = require("./boardStyles");
|
|
49
|
+
const boardFavicon_1 = require("./boardFavicon");
|
|
48
50
|
exports.STATUSES = ['icebox', 'backlog', 'ready', 'in_progress', 'review', 'done', 'closed'];
|
|
49
51
|
exports.STATUS_LABELS = {
|
|
50
52
|
icebox: 'Icebox',
|
|
@@ -72,14 +74,16 @@ function escapeHtml(text) {
|
|
|
72
74
|
.replace(/"/g, '"')
|
|
73
75
|
.replace(/'/g, ''');
|
|
74
76
|
}
|
|
75
|
-
function renderCard(task, tags) {
|
|
77
|
+
function renderCard(task, tags, blockedByIds = [], blockingIds = []) {
|
|
76
78
|
const priority = task.priority;
|
|
77
79
|
const priorityBadge = priority
|
|
78
80
|
? `<span class="priority priority-${escapeHtml(priority)}">${escapeHtml(priority)}</span>`
|
|
79
81
|
: '';
|
|
80
82
|
const tagBadges = tags.map((t) => `<span class="tag">${escapeHtml(t.name)}</span>`).join('');
|
|
83
|
+
const dataBlockedBy = blockedByIds.length > 0 ? ` data-blocked-by="${blockedByIds.join(',')}"` : '';
|
|
84
|
+
const dataBlocking = blockingIds.length > 0 ? ` data-blocking="${blockingIds.join(',')}"` : '';
|
|
81
85
|
return `
|
|
82
|
-
<div class="card" draggable="true" data-id="${task.id}" data-status="${task.status}" data-updated-at="${escapeHtml(task.updated_at)}">
|
|
86
|
+
<div class="card" draggable="true" data-id="${task.id}" data-status="${task.status}" data-updated-at="${escapeHtml(task.updated_at)}"${dataBlockedBy}${dataBlocking}>
|
|
83
87
|
<div class="card-header">
|
|
84
88
|
<span class="card-id">#${task.id}</span>
|
|
85
89
|
${priorityBadge}
|
|
@@ -88,10 +92,15 @@ function renderCard(task, tags) {
|
|
|
88
92
|
${tagBadges ? `<div class="card-tags">${tagBadges}</div>` : ''}
|
|
89
93
|
</div>`;
|
|
90
94
|
}
|
|
91
|
-
function renderColumn(status, tasks, tagMap) {
|
|
95
|
+
function renderColumn(status, tasks, tagMap, blockMap = new Map()) {
|
|
92
96
|
const color = exports.STATUS_COLORS[status];
|
|
93
97
|
const label = exports.STATUS_LABELS[status];
|
|
94
|
-
const cards = tasks
|
|
98
|
+
const cards = tasks
|
|
99
|
+
.map((t) => {
|
|
100
|
+
const blockRels = blockMap.get(t.id) || { blockedBy: [], blocking: [] };
|
|
101
|
+
return renderCard(t, tagMap.get(t.id) || [], blockRels.blockedBy, blockRels.blocking);
|
|
102
|
+
})
|
|
103
|
+
.join('');
|
|
95
104
|
return `
|
|
96
105
|
<div class="column" data-status="${status}">
|
|
97
106
|
<div class="column-header" style="border-top-color:${color}">
|
|
@@ -106,7 +115,7 @@ function renderColumn(status, tasks, tagMap) {
|
|
|
106
115
|
</div>
|
|
107
116
|
</div>`;
|
|
108
117
|
}
|
|
109
|
-
const BOARD_PRIORITY_OPTIONS = models_1.PRIORITIES.map((p) => `<option value="${p}">${p.charAt(0).toUpperCase() + p.slice(1)}</option>`).join('\n ');
|
|
118
|
+
const BOARD_PRIORITY_OPTIONS = models_1.PRIORITIES.map((p) => `<option value="${p}"${p === 'medium' ? ' selected' : ''}>${p.charAt(0).toUpperCase() + p.slice(1)}</option>`).join('\n ');
|
|
110
119
|
function getAddTaskModal() {
|
|
111
120
|
return `
|
|
112
121
|
<div class="modal-overlay" id="add-modal">
|
|
@@ -211,8 +220,8 @@ function getBoardBodyStatic() {
|
|
|
211
220
|
<script>${script}
|
|
212
221
|
</script>`;
|
|
213
222
|
}
|
|
214
|
-
function renderBoard(tasksByStatus, tagMap, boardTitle, theme) {
|
|
215
|
-
const columns = exports.STATUSES.map((status) => renderColumn(status, tasksByStatus.get(status) || [], tagMap)).join('');
|
|
223
|
+
function renderBoard(tasksByStatus, tagMap, boardTitle, theme, blockMap = new Map()) {
|
|
224
|
+
const columns = exports.STATUSES.map((status) => renderColumn(status, tasksByStatus.get(status) || [], tagMap, blockMap)).join('');
|
|
216
225
|
const titleHtml = boardTitle ? `<span class="board-title">${escapeHtml(boardTitle)}</span>` : '';
|
|
217
226
|
const boardBodyStatic = getBoardBodyStatic();
|
|
218
227
|
const dataThemeAttr = theme === 'dark' || theme === 'light' ? ` data-theme="${theme}"` : '';
|
|
@@ -222,6 +231,7 @@ function renderBoard(tasksByStatus, tagMap, boardTitle, theme) {
|
|
|
222
231
|
<meta charset="UTF-8">
|
|
223
232
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
224
233
|
<title>agkan board</title>
|
|
234
|
+
<link rel="icon" type="image/png" href="${boardFavicon_1.BOARD_FAVICON_BASE64}">
|
|
225
235
|
<style>${boardStyles_1.BOARD_STYLES}
|
|
226
236
|
</style>
|
|
227
237
|
</head>
|
|
@@ -246,6 +256,7 @@ function renderBoard(tasksByStatus, tagMap, boardTitle, theme) {
|
|
|
246
256
|
<span class="filter-label">Assignee</span>
|
|
247
257
|
<input type="text" id="filter-assignee" class="filter-assignee-input" placeholder="Filter by assignee">
|
|
248
258
|
</div>
|
|
259
|
+
<button class="dependency-toggle-btn" id="dependency-toggle" title="Show/hide task dependencies">Show dependencies</button>
|
|
249
260
|
<button class="filter-clear-btn" id="filter-clear">Clear filters</button>
|
|
250
261
|
</div>
|
|
251
262
|
<div class="board-container">
|
|
@@ -261,10 +272,15 @@ function sortByPriority(tasks) {
|
|
|
261
272
|
return oa - ob;
|
|
262
273
|
});
|
|
263
274
|
}
|
|
264
|
-
function buildBoardCardsPayload(tasksByStatus, tagMap) {
|
|
275
|
+
function buildBoardCardsPayload(tasksByStatus, tagMap, blockMap = new Map()) {
|
|
265
276
|
return exports.STATUSES.map((status) => {
|
|
266
277
|
const tasks = tasksByStatus.get(status) || [];
|
|
267
|
-
const html = tasks
|
|
278
|
+
const html = tasks
|
|
279
|
+
.map((t) => {
|
|
280
|
+
const blockRels = blockMap.get(t.id) || { blockedBy: [], blocking: [] };
|
|
281
|
+
return renderCard(t, tagMap.get(t.id) || [], blockRels.blockedBy, blockRels.blocking);
|
|
282
|
+
})
|
|
283
|
+
.join('');
|
|
268
284
|
return { status, html, count: tasks.length };
|
|
269
285
|
});
|
|
270
286
|
}
|
|
@@ -281,21 +297,21 @@ function buildTasksByStatus(tasks) {
|
|
|
281
297
|
}
|
|
282
298
|
return tasksByStatus;
|
|
283
299
|
}
|
|
300
|
+
function buildBlockMap(blocks) {
|
|
301
|
+
const blockMap = new Map();
|
|
302
|
+
for (const block of blocks) {
|
|
303
|
+
if (!blockMap.has(block.blocker_task_id)) {
|
|
304
|
+
blockMap.set(block.blocker_task_id, { blockedBy: [], blocking: [] });
|
|
305
|
+
}
|
|
306
|
+
blockMap.get(block.blocker_task_id).blocking.push(block.blocked_task_id);
|
|
307
|
+
if (!blockMap.has(block.blocked_task_id)) {
|
|
308
|
+
blockMap.set(block.blocked_task_id, { blockedBy: [], blocking: [] });
|
|
309
|
+
}
|
|
310
|
+
blockMap.get(block.blocked_task_id).blockedBy.push(block.blocker_task_id);
|
|
311
|
+
}
|
|
312
|
+
return blockMap;
|
|
313
|
+
}
|
|
284
314
|
function getBoardUpdatedAt(database) {
|
|
285
|
-
|
|
286
|
-
.prepare(`
|
|
287
|
-
SELECT MAX(updated_at) as max_updated_at FROM (
|
|
288
|
-
SELECT updated_at FROM tasks UNION ALL SELECT updated_at FROM task_metadata
|
|
289
|
-
)
|
|
290
|
-
`)
|
|
291
|
-
.get();
|
|
292
|
-
const tagsRow = database
|
|
293
|
-
.prepare(`
|
|
294
|
-
SELECT MAX(created_at) as max_created_at, COUNT(*) as count FROM task_tags
|
|
295
|
-
`)
|
|
296
|
-
.get();
|
|
297
|
-
if (baseRow.max_updated_at === null && tagsRow.max_created_at === null)
|
|
298
|
-
return null;
|
|
299
|
-
return `${baseRow.max_updated_at}|${tagsRow.max_created_at}|${tagsRow.count}`;
|
|
315
|
+
return database.getBoardUpdatedAtSignature();
|
|
300
316
|
}
|
|
301
317
|
//# sourceMappingURL=boardRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boardRenderer.js","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"boardRenderer.js","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { TagService } from '../services/TagService';
|
|
|
5
5
|
import { MetadataService } from '../services/MetadataService';
|
|
6
6
|
import { CommentService } from '../services/CommentService';
|
|
7
7
|
import { TaskBlockService } from '../services/TaskBlockService';
|
|
8
|
-
import {
|
|
8
|
+
import { StorageBackend } from '../db/types/repository';
|
|
9
9
|
export type BoardServices = {
|
|
10
10
|
ts: TaskService;
|
|
11
11
|
tts: TaskTagService;
|
|
@@ -13,7 +13,7 @@ export type BoardServices = {
|
|
|
13
13
|
ms: MetadataService;
|
|
14
14
|
cs: CommentService;
|
|
15
15
|
tbs: TaskBlockService;
|
|
16
|
-
database:
|
|
16
|
+
database: StorageBackend;
|
|
17
17
|
boardTitle?: string;
|
|
18
18
|
configDir: string;
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boardRoutes.d.ts","sourceRoot":"","sources":["../../src/board/boardRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"boardRoutes.d.ts","sourceRoot":"","sources":["../../src/board/boardRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAWxD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,WAAW,CAAC;IAChB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,eAAe,CAAC;IACpB,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAoRF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAO9E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+B1E;AAkCD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAuB5E"}
|
|
@@ -198,6 +198,19 @@ function registerTagRoutes(app, tts, tags, ts) {
|
|
|
198
198
|
const allTags = tags.listTags();
|
|
199
199
|
return c.json({ tags: allTags });
|
|
200
200
|
});
|
|
201
|
+
app.post('/api/tags', async (c) => {
|
|
202
|
+
const body = await c.req.json();
|
|
203
|
+
if (!body.name || typeof body.name !== 'string' || !body.name.trim()) {
|
|
204
|
+
return c.json({ error: 'Name is required' }, 400);
|
|
205
|
+
}
|
|
206
|
+
try {
|
|
207
|
+
const tag = tags.createTag({ name: body.name.trim() });
|
|
208
|
+
return c.json(tag, 201);
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
return c.json({ error: e instanceof Error ? e.message : 'Failed to create tag' }, 400);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
201
214
|
}
|
|
202
215
|
function registerUtilityRoutes(app, ts) {
|
|
203
216
|
app.post('/api/tasks/purge', async (c) => {
|
|
@@ -320,11 +333,12 @@ function parseBoardCardFilters(query) {
|
|
|
320
333
|
return filters;
|
|
321
334
|
}
|
|
322
335
|
function registerBoardRoutes(app, services) {
|
|
323
|
-
const { ts, tts, database, boardTitle, configDir } = services;
|
|
336
|
+
const { ts, tts, tbs, database, boardTitle, configDir } = services;
|
|
324
337
|
app.get('/', (c) => {
|
|
325
338
|
const tasksByStatus = (0, boardRenderer_1.buildTasksByStatus)(ts.listTasks({}, 'id', 'asc'));
|
|
326
339
|
const boardConfig = (0, boardConfig_1.readBoardConfig)(configDir);
|
|
327
|
-
|
|
340
|
+
const blockMap = (0, boardRenderer_1.buildBlockMap)(tbs.getAllBlocks());
|
|
341
|
+
return c.html((0, boardRenderer_1.renderBoard)(tasksByStatus, tts.getAllTaskTags(), boardTitle, boardConfig.theme, blockMap));
|
|
328
342
|
});
|
|
329
343
|
app.get('/api/board/updated-at', (c) => c.json({ updatedAt: (0, boardRenderer_1.getBoardUpdatedAt)(database) }));
|
|
330
344
|
app.get('/api/board/cards', (c) => {
|
|
@@ -335,7 +349,8 @@ function registerBoardRoutes(app, services) {
|
|
|
335
349
|
search: c.req.query('search'),
|
|
336
350
|
});
|
|
337
351
|
const tasksByStatus = (0, boardRenderer_1.buildTasksByStatus)(ts.listTasks(filters, 'id', 'asc'));
|
|
338
|
-
const
|
|
352
|
+
const blockMap = (0, boardRenderer_1.buildBlockMap)(tbs.getAllBlocks());
|
|
353
|
+
const columns = (0, boardRenderer_1.buildBoardCardsPayload)(tasksByStatus, tts.getAllTaskTags(), blockMap);
|
|
339
354
|
return c.json({ columns });
|
|
340
355
|
});
|
|
341
356
|
registerTaskApiRoutes(app, services);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boardRoutes.js","sourceRoot":"","sources":["../../src/board/boardRoutes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boardRoutes.js","sourceRoot":"","sources":["../../src/board/boardRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const BOARD_STYLES = "\n :root {\n --bg-page: #f1f5f9;\n --bg-surface: #ffffff;\n --bg-surface-subtle: #f8fafc;\n --bg-surface-hover: #f1f5f9;\n --border-color: #e2e8f0;\n --border-color-subtle: #f1f5f9;\n --text-primary: #1e293b;\n --text-secondary: #64748b;\n --text-muted: #94a3b8;\n --header-bg: #1e293b;\n --tag-bg: #e0f2fe;\n --tag-color: #0369a1;\n --column-count-bg: #e2e8f0;\n --column-count-color: #64748b;\n --input-bg: #ffffff;\n --burger-dropdown-bg: #ffffff;\n --drag-over-bg: #eff6ff;\n }\n [data-theme=\"dark\"] {\n --bg-page: #0f172a;\n --bg-surface: #1e293b;\n --bg-surface-subtle: #1e293b;\n --bg-surface-hover: #334155;\n --border-color: #334155;\n --border-color-subtle: #1e293b;\n --text-primary: #f1f5f9;\n --text-secondary: #94a3b8;\n --text-muted: #64748b;\n --header-bg: #0f172a;\n --tag-bg: #0c4a6e;\n --tag-color: #7dd3fc;\n --column-count-bg: #334155;\n --column-count-color: #94a3b8;\n --input-bg: #1e293b;\n --burger-dropdown-bg: #1e293b;\n --drag-over-bg: #1e3a5f;\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg-page); color: var(--text-primary); }\n header { background: var(--header-bg); color: white; padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; }\n header h1 { font-size: 18px; font-weight: 700; }\n .board-title { font-size: 14px; font-weight: 400; opacity: 0.75; }\n .board-container { display: flex; width: 100%; height: calc(100vh - 92px); gap: 0; }\n .board { display: flex; gap: 12px; padding: 16px; overflow-x: auto; flex: 1; align-items: stretch; min-width: 0; }\n .board.with-panel { padding-right: 0; }\n .column { background: var(--bg-surface-subtle); border: 1px solid var(--border-color); border-radius: 8px; width: 240px; flex-shrink: 0; display: flex; flex-direction: column; border-top: 3px solid transparent; }\n .column-header { padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border-color); flex-shrink: 0; }\n .column-title { font-size: 13px; font-weight: 700; }\n .column-header-right { display: flex; align-items: center; gap: 6px; }\n .column-count { background: var(--column-count-bg); color: var(--column-count-color); border-radius: 10px; font-size: 11px; font-weight: 600; padding: 2px 7px; }\n .add-btn { background: none; border: 1px solid var(--border-color); color: var(--text-secondary); border-radius: 4px; width: 22px; height: 22px; font-size: 14px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }\n .add-btn:hover { background: var(--border-color); color: var(--text-primary); }\n .column-body { padding: 8px; min-height: 60px; flex: 1; overflow-y: auto; overflow-x: hidden; min-height: 0; }\n .column.drag-over .column-body { background: var(--drag-over-bg); border-radius: 6px; }\n .card { background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; padding: 10px; margin-bottom: 6px; cursor: grab; transition: box-shadow 0.15s; }\n .card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n .card.active { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.25); background: #eff6ff; }\n [data-theme=\"dark\"] .card.active { border-color: #60a5fa; box-shadow: 0 0 0 2px rgba(96,165,250,0.25); background: #1e3a5f; }\n .card.dragging { opacity: 0.5; }\n .card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 5px; }\n .card-id { font-size: 11px; color: var(--text-muted); font-weight: 600; }\n .card-title { font-size: 13px; font-weight: 500; line-height: 1.4; word-break: break-word; }\n .card-tags { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }\n .tag { background: var(--tag-bg); color: var(--tag-color); font-size: 10px; font-weight: 600; padding: 2px 6px; border-radius: 10px; }\n .priority { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 10px; text-transform: uppercase; }\n .priority-critical { background: #fee2e2; color: #dc2626; }\n .priority-high { background: #fee2e2; color: #dc2626; }\n .priority-medium { background: #fef9c3; color: #ca8a04; }\n .priority-low { background: #dcfce7; color: #16a34a; }\n .context-menu { position: fixed; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 4px 0; z-index: 1000; display: none; min-width: 140px; }\n .context-menu-item { padding: 8px 14px; font-size: 13px; cursor: pointer; display: flex; align-items: center; gap: 8px; color: var(--text-primary); }\n .context-menu-item:hover { background: var(--bg-surface-hover); }\n .context-menu-item.danger { color: #dc2626; }\n .context-menu-item.danger:hover { background: #fef2f2; }\n .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 2000; display: none; align-items: center; justify-content: center; }\n .modal-overlay.show { display: flex; }\n .modal { background: var(--bg-surface); border-radius: 8px; padding: 24px; width: 520px; box-shadow: 0 8px 24px rgba(0,0,0,0.2); color: var(--text-primary); }\n .modal h2 { font-size: 16px; margin-bottom: 14px; }\n .modal label { display: block; font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-bottom: 4px; }\n .modal input, .modal textarea, .modal select { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 8px 10px; font-size: 13px; font-family: inherit; margin-bottom: 12px; background: var(--input-bg); color: var(--text-primary); }\n .modal textarea { resize: vertical; min-height: 60px; }\n .modal input:focus, .modal textarea:focus, .modal select:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .modal-actions { display: flex; justify-content: flex-end; gap: 8px; }\n .modal-actions button { padding: 6px 14px; border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid var(--border-color); background: var(--bg-surface); color: var(--text-secondary); }\n .modal-actions button:hover { background: var(--bg-surface-hover); }\n .modal-actions button.primary { background: #3b82f6; color: white; border-color: #3b82f6; }\n .modal-actions button.primary:hover { background: #2563eb; }\n .toast { position: fixed; bottom: 20px; right: 20px; background: #ef4444; color: white; padding: 10px 16px; border-radius: 6px; font-size: 13px; opacity: 0; transition: opacity 0.3s; pointer-events: none; }\n .toast.show { opacity: 1; }\n .detail-panel { position: relative; width: 0; height: calc(100vh - 92px); background: var(--bg-surface); box-shadow: none; border-left: 0 solid var(--border-color); display: flex; flex-direction: column; max-width: 800px; overflow: hidden; transition: width 0.25s ease; }\n .detail-panel-resize-handle { position: absolute; top: 0; left: 0; width: 6px; height: 100%; cursor: col-resize; z-index: 10; background: transparent; }\n .detail-panel-resize-handle:hover, .detail-panel-resize-handle.dragging { background: rgba(59,130,246,0.3); }\n .detail-panel.open { width: 400px; min-width: 280px; border-left-width: 1px; }\n .detail-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--border-color); flex-shrink: 0; }\n .detail-panel-header h2 { font-size: 16px; font-weight: 700; color: var(--text-primary); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .detail-panel-close { background: none; border: none; font-size: 20px; color: var(--text-secondary); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-shrink: 0; }\n .detail-panel-close:hover { background: var(--bg-surface-hover); color: var(--text-primary); }\n .detail-panel-body { flex: 1; overflow: hidden; min-width: 0; display: flex; flex-direction: column; }\n .detail-field { margin-bottom: 16px; word-wrap: break-word; }\n .description-field-wrapper { display: flex; flex-direction: column; margin-bottom: 16px; }\n .detail-field-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; letter-spacing: 0.05em; }\n .detail-field-value { font-size: 13px; color: var(--text-primary); line-height: 1.5; }\n .detail-field-value.empty { color: var(--text-muted); font-style: italic; }\n .detail-status-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; color: white; }\n .detail-tags { display: flex; flex-wrap: wrap; gap: 4px; }\n .detail-meta-table { width: 100%; border-collapse: collapse; }\n .detail-meta-table td { padding: 4px 0; font-size: 12px; }\n .detail-meta-table td:first-child { color: var(--text-secondary); width: 100px; }\n .detail-meta-table td:last-child { color: var(--text-primary); }\n .detail-panel-footer { padding: 12px 20px; border-top: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; }\n .detail-panel-footer button { padding: 7px 18px; border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid #3b82f6; background: #3b82f6; color: white; }\n .detail-panel-footer button:hover { background: #2563eb; border-color: #2563eb; }\n .detail-edit-input { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .detail-edit-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .detail-edit-textarea { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; resize: none; min-height: 80px; background: var(--input-bg); color: var(--text-primary); overflow: hidden; }\n .detail-edit-textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .detail-edit-select { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .detail-edit-select:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .tag-select-wrapper { position: relative; }\n .tag-select-control { border: 1px solid var(--border-color); border-radius: 6px; padding: 4px 8px; min-height: 36px; cursor: text; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; background: var(--input-bg); }\n .tag-select-control:focus-within { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .tag-pill { background: var(--tag-bg); color: var(--tag-color); font-size: 11px; font-weight: 600; padding: 2px 4px 2px 8px; border-radius: 10px; display: inline-flex; align-items: center; gap: 3px; }\n .tag-pill-remove { background: none; border: none; color: var(--tag-color); cursor: pointer; font-size: 13px; line-height: 1; padding: 0 2px; display: inline-flex; align-items: center; border-radius: 50%; }\n .tag-pill-remove:hover { color: #dc2626; background: rgba(220,38,38,0.1); }\n .tag-select-input { border: none; outline: none; font-size: 12px; font-family: inherit; min-width: 80px; flex: 1; background: transparent; padding: 2px 0; color: var(--text-primary); }\n .tag-select-input::placeholder { color: var(--text-muted); }\n .tag-select-dropdown { position: absolute; top: calc(100% + 2px); left: 0; right: 0; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 100; max-height: 180px; overflow-y: auto; display: none; }\n .tag-select-dropdown.open { display: block; }\n .tag-select-option { padding: 6px 10px; font-size: 12px; cursor: pointer; color: var(--text-primary); }\n .tag-select-option:hover, .tag-select-option.focused { background: #eff6ff; color: #0369a1; }\n .tag-select-no-options { padding: 6px 10px; font-size: 12px; color: var(--text-muted); font-style: italic; }\n .filter-bar { display: flex; align-items: center; gap: 16px; height: 44px; background: var(--bg-surface-subtle); border-bottom: 1px solid var(--border-color); padding: 0 16px; flex-shrink: 0; overflow-x: auto; }\n .filter-group { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }\n .filter-label { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); letter-spacing: 0.05em; white-space: nowrap; }\n .filter-priority-btn { border: 1px solid var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 8px; font-size: 11px; font-weight: 600; cursor: pointer; text-transform: uppercase; color: var(--text-secondary); }\n .filter-priority-btn:hover { background: var(--bg-surface-hover); }\n .filter-priority-btn.active[data-priority=\"critical\"] { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }\n .filter-priority-btn.active[data-priority=\"high\"] { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }\n .filter-priority-btn.active[data-priority=\"medium\"] { background: #fef9c3; color: #ca8a04; border-color: #fde047; }\n .filter-priority-btn.active[data-priority=\"low\"] { background: #dcfce7; color: #16a34a; border-color: #86efac; }\n .filter-search-input { border: 1px solid var(--border-color); border-radius: 4px; padding: 3px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); width: 160px; }\n .filter-search-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .filter-assignee-input { border: 1px solid var(--border-color); border-radius: 4px; padding: 3px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); width: 120px; }\n .filter-assignee-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .filter-tag-pill { background: var(--tag-bg); color: var(--tag-color); font-size: 11px; font-weight: 600; padding: 2px 4px 2px 8px; border-radius: 10px; display: inline-flex; align-items: center; gap: 3px; flex-shrink: 0; }\n .filter-tag-pill-remove { background: none; border: none; color: var(--tag-color); cursor: pointer; font-size: 13px; line-height: 1; padding: 0 2px; display: inline-flex; align-items: center; border-radius: 50%; }\n .filter-tag-pill-remove:hover { color: #dc2626; background: rgba(220,38,38,0.1); }\n .filter-tag-dropdown-wrapper { flex-shrink: 0; }\n .filter-tag-add-btn { border: 1px dashed var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 8px; font-size: 11px; color: var(--text-secondary); cursor: pointer; white-space: nowrap; }\n .filter-tag-add-btn:hover { background: var(--bg-surface-hover); border-color: var(--text-muted); }\n .filter-tag-dropdown { position: fixed; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 200; max-height: 180px; overflow-y: auto; display: none; min-width: 140px; }\n .filter-tag-dropdown.open { display: block; }\n .filter-tag-dropdown-option { padding: 6px 10px; font-size: 12px; cursor: pointer; color: var(--text-primary); white-space: nowrap; }\n .filter-tag-dropdown-option:hover { background: #eff6ff; color: #0369a1; }\n .filter-tag-dropdown-empty { padding: 6px 10px; font-size: 12px; color: var(--text-muted); font-style: italic; }\n .filter-clear-btn { border: 1px solid var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 10px; font-size: 11px; font-weight: 600; cursor: pointer; color: var(--text-secondary); display: none; flex-shrink: 0; margin-left: auto; }\n .filter-clear-btn:hover { background: #fee2e2; border-color: #fca5a5; color: #dc2626; }\n .filter-clear-btn.visible { display: block; }\n .detail-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--border-color); flex-shrink: 0; padding: 0 20px; background: var(--bg-surface); }\n .detail-tab { padding: 8px 14px; font-size: 12px; font-weight: 600; color: var(--text-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; border-top: none; border-left: none; border-right: none; }\n .detail-tab:hover { color: var(--text-secondary); }\n .detail-tab.active { color: #3b82f6; border-bottom-color: #3b82f6; }\n .detail-tab-content { display: none; flex: 1; overflow-y: auto; min-height: 0; }\n .detail-tab-content.active { display: block; overflow-y: auto; }\n .detail-relations { font-size: 12px; color: var(--text-secondary); padding: 6px 0; border-bottom: 1px solid var(--border-color-subtle); margin-bottom: 12px; }\n .detail-relation-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }\n .detail-relation-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); width: 80px; flex-shrink: 0; letter-spacing: 0.05em; }\n .detail-relation-ids { display: flex; flex-wrap: wrap; gap: 4px; }\n .detail-relation-id { font-size: 11px; color: #3b82f6; background: #eff6ff; border-radius: 10px; padding: 1px 7px; font-weight: 600; }\n .detail-timestamp { font-size: 11px; color: var(--text-muted); margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border-color-subtle); }\n .detail-footer-timestamp { font-size: 11px; color: var(--text-muted); }\n .comment-item { position: relative; padding: 6px 0 6px 10px; border-left: 2px solid var(--border-color); margin-bottom: 10px; }\n .comment-item:hover { border-left-color: #3b82f6; }\n .comment-meta { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }\n .comment-author { font-size: 11px; font-weight: 600; color: var(--text-secondary); }\n .comment-date { font-size: 11px; color: var(--text-muted); }\n .comment-actions { display: none; margin-left: auto; gap: 4px; }\n .comment-item:hover .comment-actions { display: flex; }\n .comment-action-btn { background: none; border: none; padding: 1px 4px; cursor: pointer; color: var(--text-muted); font-size: 12px; border-radius: 3px; }\n .comment-action-btn:hover { color: var(--text-primary); background: var(--bg-surface-hover); }\n .comment-action-btn.danger:hover { color: #dc2626; background: #fef2f2; }\n .comment-content { font-size: 13px; color: var(--text-primary); line-height: 1.5; white-space: pre-wrap; }\n .comment-edit-area { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 60px; background: var(--input-bg); color: var(--text-primary); margin-top: 4px; }\n .comment-edit-area:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .comment-edit-actions { display: flex; gap: 6px; margin-top: 4px; }\n .comment-btn { background: none; border: 1px solid var(--border-color); border-radius: 4px; font-size: 11px; font-weight: 600; padding: 2px 8px; cursor: pointer; color: var(--text-secondary); }\n .comment-btn:hover { background: var(--bg-surface-hover); }\n .add-comment-trigger { background: none; border: 1px dashed var(--border-color); border-radius: 6px; padding: 8px 12px; font-size: 12px; color: var(--text-muted); cursor: pointer; width: 100%; text-align: left; margin-top: 4px; }\n .add-comment-trigger:hover { border-color: var(--text-muted); color: var(--text-secondary); background: var(--bg-surface-subtle); }\n .add-comment-form { margin-top: 4px; display: none; }\n .add-comment-form.open { display: block; }\n .add-comment-textarea { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 72px; background: var(--input-bg); color: var(--text-primary); }\n .add-comment-textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .add-comment-submit { margin-top: 6px; padding: 5px 14px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid #3b82f6; background: #3b82f6; color: white; }\n .add-comment-submit:hover { background: #2563eb; border-color: #2563eb; }\n .add-comment-cancel { margin-top: 6px; margin-left: 6px; padding: 5px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid var(--border-color); background: var(--bg-surface); color: var(--text-secondary); }\n .add-comment-cancel:hover { background: var(--bg-surface-hover); }\n .burger-menu-wrapper { position: relative; }\n .burger-menu-btn { background: none; border: none; color: white; cursor: pointer; padding: 4px 6px; border-radius: 4px; display: flex; flex-direction: column; gap: 4px; align-items: center; justify-content: center; opacity: 0.8; }\n .burger-menu-btn:hover { opacity: 1; background: rgba(255,255,255,0.1); }\n .burger-menu-btn span { display: block; width: 18px; height: 2px; background: white; border-radius: 1px; }\n .burger-menu-dropdown { position: absolute; right: 0; top: calc(100% + 6px); background: var(--burger-dropdown-bg); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 4px 0; z-index: 1000; display: none; min-width: 180px; }\n .burger-menu-dropdown.open { display: block; }\n .burger-menu-item { padding: 8px 14px; font-size: 13px; cursor: pointer; display: flex; align-items: center; gap: 8px; color: var(--text-primary); white-space: nowrap; }\n .burger-menu-item:hover { background: var(--bg-surface-hover); }\n .burger-menu-item.danger { color: #dc2626; }\n .burger-menu-item.danger:hover { background: #fef2f2; }\n .burger-menu-separator { height: 1px; background: var(--border-color); margin: 4px 0; }\n .add-metadata-row-btn { background: none; border: 1px dashed var(--border-color); border-radius: 6px; padding: 5px 10px; font-size: 12px; color: var(--text-secondary); cursor: pointer; width: 100%; text-align: left; margin-bottom: 12px; }\n .add-metadata-row-btn:hover { border-color: var(--text-muted); background: var(--bg-surface-subtle); }\n .metadata-row { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }\n .metadata-row-key { flex: 1; border: 1px solid var(--border-color); border-radius: 6px; padding: 6px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .metadata-row-key:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .metadata-row-value { flex: 2; border: 1px solid var(--border-color); border-radius: 6px; padding: 6px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .metadata-row-value:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .metadata-row-remove { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 16px; line-height: 1; padding: 2px 4px; border-radius: 4px; flex-shrink: 0; }\n .metadata-row-remove:hover { color: #dc2626; background: #fef2f2; }";
|
|
1
|
+
export declare const BOARD_STYLES = "\n :root {\n --bg-page: #f1f5f9;\n --bg-surface: #ffffff;\n --bg-surface-subtle: #f8fafc;\n --bg-surface-hover: #f1f5f9;\n --border-color: #e2e8f0;\n --border-color-subtle: #f1f5f9;\n --text-primary: #1e293b;\n --text-secondary: #64748b;\n --text-muted: #94a3b8;\n --header-bg: #1e293b;\n --tag-bg: #e0f2fe;\n --tag-color: #0369a1;\n --column-count-bg: #e2e8f0;\n --column-count-color: #64748b;\n --input-bg: #ffffff;\n --burger-dropdown-bg: #ffffff;\n --drag-over-bg: #eff6ff;\n }\n [data-theme=\"dark\"] {\n --bg-page: #0f172a;\n --bg-surface: #1e293b;\n --bg-surface-subtle: #1e293b;\n --bg-surface-hover: #334155;\n --border-color: #334155;\n --border-color-subtle: #1e293b;\n --text-primary: #f1f5f9;\n --text-secondary: #94a3b8;\n --text-muted: #64748b;\n --header-bg: #0f172a;\n --tag-bg: #0c4a6e;\n --tag-color: #7dd3fc;\n --column-count-bg: #334155;\n --column-count-color: #94a3b8;\n --input-bg: #1e293b;\n --burger-dropdown-bg: #1e293b;\n --drag-over-bg: #1e3a5f;\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg-page); color: var(--text-primary); }\n header { background: var(--header-bg); color: white; padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; }\n header h1 { font-size: 18px; font-weight: 700; }\n .board-title { font-size: 14px; font-weight: 400; opacity: 0.75; }\n .board-container { display: flex; width: 100%; height: calc(100vh - 92px); gap: 0; }\n .board { display: flex; gap: 12px; padding: 16px; overflow-x: auto; flex: 1; align-items: stretch; min-width: 0; }\n .board.with-panel { padding-right: 0; }\n .column { background: var(--bg-surface-subtle); border: 1px solid var(--border-color); border-radius: 8px; width: 240px; flex-shrink: 0; display: flex; flex-direction: column; border-top: 3px solid transparent; }\n .column-header { padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border-color); flex-shrink: 0; }\n .column-title { font-size: 13px; font-weight: 700; }\n .column-header-right { display: flex; align-items: center; gap: 6px; }\n .column-count { background: var(--column-count-bg); color: var(--column-count-color); border-radius: 10px; font-size: 11px; font-weight: 600; padding: 2px 7px; }\n .add-btn { background: none; border: 1px solid var(--border-color); color: var(--text-secondary); border-radius: 4px; width: 22px; height: 22px; font-size: 14px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }\n .add-btn:hover { background: var(--border-color); color: var(--text-primary); }\n .column-body { padding: 8px; min-height: 60px; flex: 1; overflow-y: auto; overflow-x: hidden; min-height: 0; }\n .column.drag-over .column-body { background: var(--drag-over-bg); border-radius: 6px; }\n .card { background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; padding: 10px; margin-bottom: 6px; cursor: grab; transition: box-shadow 0.15s; }\n .card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n .card.active { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.25); background: #eff6ff; }\n [data-theme=\"dark\"] .card.active { border-color: #60a5fa; box-shadow: 0 0 0 2px rgba(96,165,250,0.25); background: #1e3a5f; }\n .card.dragging { opacity: 0.5; }\n .card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 5px; }\n .card-id { font-size: 11px; color: var(--text-muted); font-weight: 600; }\n .card-title { font-size: 13px; font-weight: 500; line-height: 1.4; word-break: break-word; }\n .card-tags { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }\n .tag { background: var(--tag-bg); color: var(--tag-color); font-size: 10px; font-weight: 600; padding: 2px 6px; border-radius: 10px; }\n .priority { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 10px; text-transform: uppercase; }\n .priority-critical { background: #fee2e2; color: #dc2626; }\n .priority-high { background: #fee2e2; color: #dc2626; }\n .priority-medium { background: #fef9c3; color: #ca8a04; }\n .priority-low { background: #dcfce7; color: #16a34a; }\n .context-menu { position: fixed; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 4px 0; z-index: 1000; display: none; min-width: 140px; }\n .context-menu-item { padding: 8px 14px; font-size: 13px; cursor: pointer; display: flex; align-items: center; gap: 8px; color: var(--text-primary); }\n .context-menu-item:hover { background: var(--bg-surface-hover); }\n .context-menu-item.danger { color: #dc2626; }\n .context-menu-item.danger:hover { background: #fef2f2; }\n .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 2000; display: none; align-items: center; justify-content: center; }\n .modal-overlay.show { display: flex; }\n .modal { background: var(--bg-surface); border-radius: 8px; padding: 24px; width: 520px; box-shadow: 0 8px 24px rgba(0,0,0,0.2); color: var(--text-primary); }\n .modal h2 { font-size: 16px; margin-bottom: 14px; }\n .modal label { display: block; font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-bottom: 4px; }\n .modal input, .modal textarea, .modal select { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 8px 10px; font-size: 13px; font-family: inherit; margin-bottom: 12px; background: var(--input-bg); color: var(--text-primary); }\n .modal textarea { resize: vertical; min-height: 60px; }\n .modal input:focus, .modal textarea:focus, .modal select:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .modal-actions { display: flex; justify-content: flex-end; gap: 8px; }\n .modal-actions button { padding: 6px 14px; border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid var(--border-color); background: var(--bg-surface); color: var(--text-secondary); }\n .modal-actions button:hover { background: var(--bg-surface-hover); }\n .modal-actions button.primary { background: #3b82f6; color: white; border-color: #3b82f6; }\n .modal-actions button.primary:hover { background: #2563eb; }\n .toast { position: fixed; bottom: 20px; right: 20px; z-index: 100; background: #ef4444; color: white; padding: 10px 16px; border-radius: 6px; font-size: 13px; opacity: 0; transition: opacity 0.3s; pointer-events: none; }\n .toast.show { opacity: 1; }\n .detail-panel { position: relative; z-index: 6; width: 0; height: calc(100vh - 92px); background: var(--bg-surface); box-shadow: none; border-left: 0 solid var(--border-color); display: flex; flex-direction: column; max-width: 800px; overflow: hidden; transition: width 0.25s ease; }\n .detail-panel-resize-handle { position: absolute; top: 0; left: 0; width: 6px; height: 100%; cursor: col-resize; z-index: 10; background: transparent; }\n .detail-panel-resize-handle:hover, .detail-panel-resize-handle.dragging { background: rgba(59,130,246,0.3); }\n .detail-panel.open { width: 400px; min-width: 280px; border-left-width: 1px; }\n .detail-panel-header { display: flex; align-items: center; gap: 4px; padding: 16px 20px; border-bottom: 1px solid var(--border-color); flex-shrink: 0; }\n .detail-panel-header h2 { font-size: 16px; font-weight: 700; color: var(--text-primary); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }\n .detail-panel-close { background: none; border: none; font-size: 20px; color: var(--text-secondary); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-shrink: 0; margin-left: auto; }\n .detail-panel-close:hover { background: var(--bg-surface-hover); color: var(--text-primary); }\n .detail-panel-copy-id { background: none; border: none; font-size: 20px; color: var(--text-secondary); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-shrink: 0; }\n .detail-panel-copy-id:hover { background: var(--bg-surface-hover); color: var(--text-primary); }\n .detail-panel-body { flex: 1; overflow: hidden; min-width: 0; display: flex; flex-direction: column; }\n .detail-field { margin-bottom: 16px; word-wrap: break-word; }\n .description-field-wrapper { display: flex; flex-direction: column; margin-bottom: 16px; }\n .detail-field-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; letter-spacing: 0.05em; }\n .detail-field-value { font-size: 13px; color: var(--text-primary); line-height: 1.5; }\n .detail-field-value.empty { color: var(--text-muted); font-style: italic; }\n .detail-status-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; color: white; }\n .detail-tags { display: flex; flex-wrap: wrap; gap: 4px; }\n .detail-meta-table { width: 100%; border-collapse: collapse; }\n .detail-meta-table td { padding: 4px 0; font-size: 12px; }\n .detail-meta-table td:first-child { color: var(--text-secondary); width: 100px; }\n .detail-meta-table td:last-child { color: var(--text-primary); }\n .detail-panel-footer { padding: 12px 20px; border-top: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; }\n .detail-panel-footer button { padding: 7px 18px; border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid #3b82f6; background: #3b82f6; color: white; }\n .detail-panel-footer button:hover { background: #2563eb; border-color: #2563eb; }\n .detail-edit-input { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .detail-edit-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .detail-edit-textarea { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; resize: none; min-height: 80px; background: var(--input-bg); color: var(--text-primary); overflow: hidden; }\n .detail-edit-textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .detail-edit-select { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .detail-edit-select:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .tag-select-wrapper { position: relative; }\n .tag-select-control { border: 1px solid var(--border-color); border-radius: 6px; padding: 4px 8px; min-height: 36px; cursor: text; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; background: var(--input-bg); }\n .tag-select-control:focus-within { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .tag-pill { background: var(--tag-bg); color: var(--tag-color); font-size: 11px; font-weight: 600; padding: 2px 4px 2px 8px; border-radius: 10px; display: inline-flex; align-items: center; gap: 3px; }\n .tag-pill-remove { background: none; border: none; color: var(--tag-color); cursor: pointer; font-size: 13px; line-height: 1; padding: 0 2px; display: inline-flex; align-items: center; border-radius: 50%; }\n .tag-pill-remove:hover { color: #dc2626; background: rgba(220,38,38,0.1); }\n .tag-select-input { border: none; outline: none; font-size: 12px; font-family: inherit; min-width: 80px; flex: 1; background: transparent; padding: 2px 0; color: var(--text-primary); }\n .tag-select-input::placeholder { color: var(--text-muted); }\n .tag-select-dropdown { position: absolute; top: calc(100% + 2px); left: 0; right: 0; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 100; max-height: 180px; overflow-y: auto; display: none; }\n .tag-select-dropdown.open { display: block; }\n .tag-select-option { padding: 6px 10px; font-size: 12px; cursor: pointer; color: var(--text-primary); }\n .tag-select-option:hover, .tag-select-option.focused { background: #eff6ff; color: #0369a1; }\n .tag-select-no-options { padding: 6px 10px; font-size: 12px; color: var(--text-muted); font-style: italic; }\n .filter-bar { display: flex; align-items: center; gap: 16px; height: 44px; background: var(--bg-surface-subtle); border-bottom: 1px solid var(--border-color); padding: 0 16px; flex-shrink: 0; overflow-x: auto; }\n .filter-group { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }\n .filter-label { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); letter-spacing: 0.05em; white-space: nowrap; }\n .filter-priority-btn { border: 1px solid var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 8px; font-size: 11px; font-weight: 600; cursor: pointer; text-transform: uppercase; color: var(--text-secondary); }\n .filter-priority-btn:hover { background: var(--bg-surface-hover); }\n .filter-priority-btn.active[data-priority=\"critical\"] { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }\n .filter-priority-btn.active[data-priority=\"high\"] { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }\n .filter-priority-btn.active[data-priority=\"medium\"] { background: #fef9c3; color: #ca8a04; border-color: #fde047; }\n .filter-priority-btn.active[data-priority=\"low\"] { background: #dcfce7; color: #16a34a; border-color: #86efac; }\n .filter-search-input { border: 1px solid var(--border-color); border-radius: 4px; padding: 3px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); width: 160px; }\n .filter-search-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .filter-assignee-input { border: 1px solid var(--border-color); border-radius: 4px; padding: 3px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); width: 120px; }\n .filter-assignee-input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .filter-tag-pill { background: var(--tag-bg); color: var(--tag-color); font-size: 11px; font-weight: 600; padding: 2px 4px 2px 8px; border-radius: 10px; display: inline-flex; align-items: center; gap: 3px; flex-shrink: 0; }\n .filter-tag-pill-remove { background: none; border: none; color: var(--tag-color); cursor: pointer; font-size: 13px; line-height: 1; padding: 0 2px; display: inline-flex; align-items: center; border-radius: 50%; }\n .filter-tag-pill-remove:hover { color: #dc2626; background: rgba(220,38,38,0.1); }\n .filter-tag-dropdown-wrapper { flex-shrink: 0; }\n .filter-tag-add-btn { border: 1px dashed var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 8px; font-size: 11px; color: var(--text-secondary); cursor: pointer; white-space: nowrap; }\n .filter-tag-add-btn:hover { background: var(--bg-surface-hover); border-color: var(--text-muted); }\n .filter-tag-dropdown { position: fixed; background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 200; max-height: 180px; overflow-y: auto; display: none; min-width: 140px; }\n .filter-tag-dropdown.open { display: block; }\n .filter-tag-dropdown-option { padding: 6px 10px; font-size: 12px; cursor: pointer; color: var(--text-primary); white-space: nowrap; }\n .filter-tag-dropdown-option:hover { background: #eff6ff; color: #0369a1; }\n .filter-tag-dropdown-empty { padding: 6px 10px; font-size: 12px; color: var(--text-muted); font-style: italic; }\n .filter-clear-btn { border: 1px solid var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 10px; font-size: 11px; font-weight: 600; cursor: pointer; color: var(--text-secondary); display: none; flex-shrink: 0; margin-left: auto; }\n .filter-clear-btn:hover { background: #fee2e2; border-color: #fca5a5; color: #dc2626; }\n .filter-clear-btn.visible { display: block; }\n .detail-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--border-color); flex-shrink: 0; padding: 0 20px; background: var(--bg-surface); }\n .detail-tab { padding: 8px 14px; font-size: 12px; font-weight: 600; color: var(--text-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; border-top: none; border-left: none; border-right: none; }\n .detail-tab:hover { color: var(--text-secondary); }\n .detail-tab.active { color: #3b82f6; border-bottom-color: #3b82f6; }\n .detail-tab-content { display: none; flex: 1; overflow-y: auto; min-height: 0; }\n .detail-tab-content.active { display: block; overflow-y: auto; }\n .detail-relations { font-size: 12px; color: var(--text-secondary); padding: 6px 0; border-bottom: 1px solid var(--border-color-subtle); margin-bottom: 12px; }\n .detail-relation-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }\n .detail-relation-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); width: 80px; flex-shrink: 0; letter-spacing: 0.05em; }\n .detail-relation-ids { display: flex; flex-wrap: wrap; gap: 4px; }\n .detail-relation-id { font-size: 11px; color: #3b82f6; background: #eff6ff; border-radius: 10px; padding: 1px 7px; font-weight: 600; }\n .detail-timestamp { font-size: 11px; color: var(--text-muted); margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border-color-subtle); }\n .detail-footer-timestamp { font-size: 11px; color: var(--text-muted); }\n .comment-item { position: relative; padding: 6px 0 6px 10px; border-left: 2px solid var(--border-color); margin-bottom: 10px; }\n .comment-item:hover { border-left-color: #3b82f6; }\n .comment-meta { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }\n .comment-author { font-size: 11px; font-weight: 600; color: var(--text-secondary); }\n .comment-date { font-size: 11px; color: var(--text-muted); }\n .comment-actions { display: none; margin-left: auto; gap: 4px; }\n .comment-item:hover .comment-actions { display: flex; }\n .comment-action-btn { background: none; border: none; padding: 1px 4px; cursor: pointer; color: var(--text-muted); font-size: 12px; border-radius: 3px; }\n .comment-action-btn:hover { color: var(--text-primary); background: var(--bg-surface-hover); }\n .comment-action-btn.danger:hover { color: #dc2626; background: #fef2f2; }\n .comment-content { font-size: 13px; color: var(--text-primary); line-height: 1.5; white-space: pre-wrap; }\n .comment-edit-area { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 60px; background: var(--input-bg); color: var(--text-primary); margin-top: 4px; }\n .comment-edit-area:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .comment-edit-actions { display: flex; gap: 6px; margin-top: 4px; }\n .comment-btn { background: none; border: 1px solid var(--border-color); border-radius: 4px; font-size: 11px; font-weight: 600; padding: 2px 8px; cursor: pointer; color: var(--text-secondary); }\n .comment-btn:hover { background: var(--bg-surface-hover); }\n .add-comment-trigger { background: none; border: 1px dashed var(--border-color); border-radius: 6px; padding: 8px 12px; font-size: 12px; color: var(--text-muted); cursor: pointer; width: 100%; text-align: left; margin-top: 4px; }\n .add-comment-trigger:hover { border-color: var(--text-muted); color: var(--text-secondary); background: var(--bg-surface-subtle); }\n .add-comment-form { margin-top: 4px; display: none; }\n .add-comment-form.open { display: block; }\n .add-comment-textarea { width: 100%; border: 1px solid var(--border-color); border-radius: 6px; padding: 7px 10px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 72px; background: var(--input-bg); color: var(--text-primary); }\n .add-comment-textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .add-comment-submit { margin-top: 6px; padding: 5px 14px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid #3b82f6; background: #3b82f6; color: white; }\n .add-comment-submit:hover { background: #2563eb; border-color: #2563eb; }\n .add-comment-cancel { margin-top: 6px; margin-left: 6px; padding: 5px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid var(--border-color); background: var(--bg-surface); color: var(--text-secondary); }\n .add-comment-cancel:hover { background: var(--bg-surface-hover); }\n .burger-menu-wrapper { position: relative; }\n .burger-menu-btn { background: none; border: none; color: white; cursor: pointer; padding: 4px 6px; border-radius: 4px; display: flex; flex-direction: column; gap: 4px; align-items: center; justify-content: center; opacity: 0.8; }\n .burger-menu-btn:hover { opacity: 1; background: rgba(255,255,255,0.1); }\n .burger-menu-btn span { display: block; width: 18px; height: 2px; background: white; border-radius: 1px; }\n .burger-menu-dropdown { position: absolute; right: 0; top: calc(100% + 6px); background: var(--burger-dropdown-bg); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 4px 0; z-index: 1000; display: none; min-width: 180px; }\n .burger-menu-dropdown.open { display: block; }\n .burger-menu-item { padding: 8px 14px; font-size: 13px; cursor: pointer; display: flex; align-items: center; gap: 8px; color: var(--text-primary); white-space: nowrap; }\n .burger-menu-item:hover { background: var(--bg-surface-hover); }\n .burger-menu-item.danger { color: #dc2626; }\n .burger-menu-item.danger:hover { background: #fef2f2; }\n .burger-menu-separator { height: 1px; background: var(--border-color); margin: 4px 0; }\n .add-metadata-row-btn { background: none; border: 1px dashed var(--border-color); border-radius: 6px; padding: 5px 10px; font-size: 12px; color: var(--text-secondary); cursor: pointer; width: 100%; text-align: left; margin-bottom: 12px; }\n .add-metadata-row-btn:hover { border-color: var(--text-muted); background: var(--bg-surface-subtle); }\n .metadata-row { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }\n .metadata-row-key { flex: 1; border: 1px solid var(--border-color); border-radius: 6px; padding: 6px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .metadata-row-key:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .metadata-row-value { flex: 2; border: 1px solid var(--border-color); border-radius: 6px; padding: 6px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }\n .metadata-row-value:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }\n .metadata-row-remove { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 16px; line-height: 1; padding: 2px 4px; border-radius: 4px; flex-shrink: 0; }\n .metadata-row-remove:hover { color: #dc2626; background: #fef2f2; }\n .dependency-toggle-btn { border: 1px solid var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 10px; font-size: 11px; font-weight: 600; cursor: pointer; color: var(--text-secondary); flex-shrink: 0; transition: all 0.2s ease; }\n .dependency-toggle-btn:hover { background: var(--bg-surface-hover); border-color: var(--text-muted); color: var(--text-primary); }\n .dependency-toggle-btn.active { background: #3b82f6; border-color: #3b82f6; color: white; }\n .dependency-toggle-btn.active:hover { background: #2563eb; border-color: #2563eb; }\n svg#dependency-svg { pointer-events: none; }\n .dependency-line { transition: stroke-width 0.1s ease; }";
|
|
2
2
|
//# sourceMappingURL=boardStyles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boardStyles.d.ts","sourceRoot":"","sources":["../../src/board/boardStyles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"boardStyles.d.ts","sourceRoot":"","sources":["../../src/board/boardStyles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,q+wBAkOoC,CAAC"}
|
|
@@ -90,16 +90,18 @@ exports.BOARD_STYLES = `
|
|
|
90
90
|
.modal-actions button:hover { background: var(--bg-surface-hover); }
|
|
91
91
|
.modal-actions button.primary { background: #3b82f6; color: white; border-color: #3b82f6; }
|
|
92
92
|
.modal-actions button.primary:hover { background: #2563eb; }
|
|
93
|
-
.toast { position: fixed; bottom: 20px; right: 20px; background: #ef4444; color: white; padding: 10px 16px; border-radius: 6px; font-size: 13px; opacity: 0; transition: opacity 0.3s; pointer-events: none; }
|
|
93
|
+
.toast { position: fixed; bottom: 20px; right: 20px; z-index: 100; background: #ef4444; color: white; padding: 10px 16px; border-radius: 6px; font-size: 13px; opacity: 0; transition: opacity 0.3s; pointer-events: none; }
|
|
94
94
|
.toast.show { opacity: 1; }
|
|
95
|
-
.detail-panel { position: relative; width: 0; height: calc(100vh - 92px); background: var(--bg-surface); box-shadow: none; border-left: 0 solid var(--border-color); display: flex; flex-direction: column; max-width: 800px; overflow: hidden; transition: width 0.25s ease; }
|
|
95
|
+
.detail-panel { position: relative; z-index: 6; width: 0; height: calc(100vh - 92px); background: var(--bg-surface); box-shadow: none; border-left: 0 solid var(--border-color); display: flex; flex-direction: column; max-width: 800px; overflow: hidden; transition: width 0.25s ease; }
|
|
96
96
|
.detail-panel-resize-handle { position: absolute; top: 0; left: 0; width: 6px; height: 100%; cursor: col-resize; z-index: 10; background: transparent; }
|
|
97
97
|
.detail-panel-resize-handle:hover, .detail-panel-resize-handle.dragging { background: rgba(59,130,246,0.3); }
|
|
98
98
|
.detail-panel.open { width: 400px; min-width: 280px; border-left-width: 1px; }
|
|
99
|
-
.detail-panel-header { display: flex; align-items: center;
|
|
100
|
-
.detail-panel-header h2 { font-size: 16px; font-weight: 700; color: var(--text-primary); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
101
|
-
.detail-panel-close { background: none; border: none; font-size: 20px; color: var(--text-secondary); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-shrink: 0; }
|
|
99
|
+
.detail-panel-header { display: flex; align-items: center; gap: 4px; padding: 16px 20px; border-bottom: 1px solid var(--border-color); flex-shrink: 0; }
|
|
100
|
+
.detail-panel-header h2 { font-size: 16px; font-weight: 700; color: var(--text-primary); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
|
|
101
|
+
.detail-panel-close { background: none; border: none; font-size: 20px; color: var(--text-secondary); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-shrink: 0; margin-left: auto; }
|
|
102
102
|
.detail-panel-close:hover { background: var(--bg-surface-hover); color: var(--text-primary); }
|
|
103
|
+
.detail-panel-copy-id { background: none; border: none; font-size: 20px; color: var(--text-secondary); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-shrink: 0; }
|
|
104
|
+
.detail-panel-copy-id:hover { background: var(--bg-surface-hover); color: var(--text-primary); }
|
|
103
105
|
.detail-panel-body { flex: 1; overflow: hidden; min-width: 0; display: flex; flex-direction: column; }
|
|
104
106
|
.detail-field { margin-bottom: 16px; word-wrap: break-word; }
|
|
105
107
|
.description-field-wrapper { display: flex; flex-direction: column; margin-bottom: 16px; }
|
|
@@ -219,5 +221,11 @@ exports.BOARD_STYLES = `
|
|
|
219
221
|
.metadata-row-value { flex: 2; border: 1px solid var(--border-color); border-radius: 6px; padding: 6px 8px; font-size: 12px; font-family: inherit; background: var(--input-bg); color: var(--text-primary); }
|
|
220
222
|
.metadata-row-value:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.2); }
|
|
221
223
|
.metadata-row-remove { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 16px; line-height: 1; padding: 2px 4px; border-radius: 4px; flex-shrink: 0; }
|
|
222
|
-
.metadata-row-remove:hover { color: #dc2626; background: #fef2f2; }
|
|
224
|
+
.metadata-row-remove:hover { color: #dc2626; background: #fef2f2; }
|
|
225
|
+
.dependency-toggle-btn { border: 1px solid var(--border-color); background: var(--bg-surface); border-radius: 4px; padding: 2px 10px; font-size: 11px; font-weight: 600; cursor: pointer; color: var(--text-secondary); flex-shrink: 0; transition: all 0.2s ease; }
|
|
226
|
+
.dependency-toggle-btn:hover { background: var(--bg-surface-hover); border-color: var(--text-muted); color: var(--text-primary); }
|
|
227
|
+
.dependency-toggle-btn.active { background: #3b82f6; border-color: #3b82f6; color: white; }
|
|
228
|
+
.dependency-toggle-btn.active:hover { background: #2563eb; border-color: #2563eb; }
|
|
229
|
+
svg#dependency-svg { pointer-events: none; }
|
|
230
|
+
.dependency-line { transition: stroke-width 0.1s ease; }`;
|
|
223
231
|
//# sourceMappingURL=boardStyles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boardStyles.js","sourceRoot":"","sources":["../../src/board/boardStyles.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"boardStyles.js","sourceRoot":"","sources":["../../src/board/boardStyles.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAkOiC,CAAC"}
|