@industry-theme/backlogmd-kanban-panel 0.1.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.md +184 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/mocks/panelContext.d.ts +24 -0
- package/dist/mocks/panelContext.d.ts.map +1 -0
- package/dist/panels/KanbanPanel.d.ts +13 -0
- package/dist/panels/KanbanPanel.d.ts.map +1 -0
- package/dist/panels/KanbanPanel.stories.d.ts +15 -0
- package/dist/panels/KanbanPanel.stories.d.ts.map +1 -0
- package/dist/panels/kanban/backlog-types/index.d.ts +196 -0
- package/dist/panels/kanban/backlog-types/index.d.ts.map +1 -0
- package/dist/panels/kanban/backlog-utils/board.d.ts +13 -0
- package/dist/panels/kanban/backlog-utils/board.d.ts.map +1 -0
- package/dist/panels/kanban/components/KanbanColumn.d.ts +10 -0
- package/dist/panels/kanban/components/KanbanColumn.d.ts.map +1 -0
- package/dist/panels/kanban/hooks/useKanbanData.d.ts +16 -0
- package/dist/panels/kanban/hooks/useKanbanData.d.ts.map +1 -0
- package/dist/panels/kanban/mocks/mockData.d.ts +32 -0
- package/dist/panels/kanban/mocks/mockData.d.ts.map +1 -0
- package/dist/panels.bundle.js +939 -0
- package/dist/panels.bundle.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +89 -0
package/README.md
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Kanban Panel for Industry Theme Framework
|
|
2
|
+
|
|
3
|
+
A Kanban board panel extension for visualizing [Backlog.md](https://github.com/MrLesk/Backlog.md) tasks in the Principal ADE industry-themed panel framework.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- ๐ **Kanban Board View** - Visual task organization across status columns (To Do, In Progress, Done)
|
|
8
|
+
- ๐จ **Industry Theme Integration** - Fully styled with industry theme colors and typography
|
|
9
|
+
- ๐ท๏ธ **Task Metadata** - Display task labels, assignees, and priority indicators
|
|
10
|
+
- ๐ฏ **Priority Color Coding** - Visual priority indication with colored borders
|
|
11
|
+
- ๐ **Task Descriptions** - Truncated descriptions with full task details
|
|
12
|
+
- ๐งช **Mock Data Support** - Built-in mock data generator for testing
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Install dependencies
|
|
18
|
+
bun install
|
|
19
|
+
|
|
20
|
+
# Build the panel
|
|
21
|
+
bun run build
|
|
22
|
+
|
|
23
|
+
# Run in development mode with watch
|
|
24
|
+
bun run dev
|
|
25
|
+
|
|
26
|
+
# Run Storybook for component development
|
|
27
|
+
bun run storybook
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Project Structure
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
src/
|
|
34
|
+
โโโ panels/
|
|
35
|
+
โ โโโ KanbanPanel.tsx # Main panel component
|
|
36
|
+
โ โโโ kanban/
|
|
37
|
+
โ โโโ backlog-types/ # Copied from Backlog.md
|
|
38
|
+
โ โ โโโ index.ts # Task type definitions
|
|
39
|
+
โ โ โโโ README.md # Attribution
|
|
40
|
+
โ โโโ backlog-utils/ # Copied from Backlog.md
|
|
41
|
+
โ โ โโโ board.ts # Board utilities
|
|
42
|
+
โ โ โโโ README.md # Attribution
|
|
43
|
+
โ โโโ components/ # Copied from Backlog.md
|
|
44
|
+
โ โ โโโ Board.tsx # Board component
|
|
45
|
+
โ โ โโโ TaskCard.tsx # Task card component
|
|
46
|
+
โ โ โโโ TaskColumn.tsx # Column component
|
|
47
|
+
โ โ โโโ README.md # Attribution
|
|
48
|
+
โ โโโ hooks/ # Custom hooks (future)
|
|
49
|
+
โ โโโ mocks/
|
|
50
|
+
โ โโโ mockData.ts # Mock data generator
|
|
51
|
+
โโโ index.tsx # Panel registration
|
|
52
|
+
โโโ types/
|
|
53
|
+
โโโ index.ts # Type re-exports
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
### Registering the Panel
|
|
59
|
+
|
|
60
|
+
The panel is automatically registered when the package is loaded:
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
import { panels } from '@principal-ade/kanban-panel';
|
|
64
|
+
|
|
65
|
+
// Panel metadata
|
|
66
|
+
{
|
|
67
|
+
id: 'principal-ade.kanban-panel',
|
|
68
|
+
name: 'Kanban Board',
|
|
69
|
+
icon: '๐',
|
|
70
|
+
version: '0.1.0',
|
|
71
|
+
slices: ['fileTree']
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Mock Data
|
|
76
|
+
|
|
77
|
+
The panel currently uses mock data for testing. The mock data generator creates sample tasks with:
|
|
78
|
+
|
|
79
|
+
- Different statuses (To Do, In Progress, Done)
|
|
80
|
+
- Priority levels (high, medium, low)
|
|
81
|
+
- Labels and assignees
|
|
82
|
+
- Descriptions and acceptance criteria
|
|
83
|
+
- Task dependencies
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
import { generateMockTasks } from './panels/kanban/mocks/mockData';
|
|
87
|
+
|
|
88
|
+
const tasks = generateMockTasks();
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Attribution
|
|
92
|
+
|
|
93
|
+
This panel incorporates code from [Backlog.md](https://github.com/MrLesk/Backlog.md):
|
|
94
|
+
|
|
95
|
+
- **Source commit:** 9b2b4aa4ce7c9dc454215419413109f3efb04708
|
|
96
|
+
- **Source date:** 2025-11-15
|
|
97
|
+
- **License:** MIT
|
|
98
|
+
- **Author:** Alex Gavrilescu (@MrLesk)
|
|
99
|
+
|
|
100
|
+
See individual README files in each directory for specific attribution details.
|
|
101
|
+
|
|
102
|
+
### Migration Plan
|
|
103
|
+
|
|
104
|
+
The copied code is temporary. Once Backlog.md publishes `@backlog/core` or similar packages, we will migrate to using the official packages. See [KANBAN_PANEL_DESIGN.md](./KANBAN_PANEL_DESIGN.md) for details.
|
|
105
|
+
|
|
106
|
+
## Development Roadmap
|
|
107
|
+
|
|
108
|
+
### โ
Phase 1: Foundation (Complete)
|
|
109
|
+
- [x] Set up panel structure and basic layout
|
|
110
|
+
- [x] Create mock data generator for testing
|
|
111
|
+
- [x] Implement basic board component with static columns
|
|
112
|
+
- [x] Create task card component with basic styling
|
|
113
|
+
- [x] Adapt to industry theme colors and typography
|
|
114
|
+
|
|
115
|
+
### โ
Phase 2: Core Functionality (Complete)
|
|
116
|
+
- [x] Add data fetching hook (`useKanbanData`)
|
|
117
|
+
- [x] Implement task sorting and filtering (by priority, ordinal, date)
|
|
118
|
+
- [x] Create reusable `KanbanColumn` component
|
|
119
|
+
- [x] Integrate with industry theme system
|
|
120
|
+
- [x] Add error handling and loading states
|
|
121
|
+
- [x] Create Storybook stories for testing
|
|
122
|
+
- [ ] Implement Backlog.md markdown parser (Future)
|
|
123
|
+
- [ ] Add drag-and-drop functionality (Future)
|
|
124
|
+
- [ ] Handle status updates with file writes (Future)
|
|
125
|
+
|
|
126
|
+
### ๐ Phase 3: Advanced Features
|
|
127
|
+
- [ ] Task creation and editing
|
|
128
|
+
- [ ] Support for labels, assignees, priority
|
|
129
|
+
- [ ] Implement subtask relationships
|
|
130
|
+
- [ ] Add task detail modal/panel
|
|
131
|
+
- [ ] Handle dependencies visualization
|
|
132
|
+
|
|
133
|
+
### ๐จ Phase 4: Polish & Integration
|
|
134
|
+
- [ ] Responsive design improvements
|
|
135
|
+
- [ ] Error handling and loading states
|
|
136
|
+
- [ ] Data persistence (write back to markdown)
|
|
137
|
+
- [ ] Panel configuration options
|
|
138
|
+
- [ ] Testing and documentation
|
|
139
|
+
|
|
140
|
+
## Scripts
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Build
|
|
144
|
+
bun run build # Full build (clean + bundle + types)
|
|
145
|
+
bun run build:panel # Build panel bundle only
|
|
146
|
+
bun run build:types # Generate TypeScript declarations
|
|
147
|
+
|
|
148
|
+
# Development
|
|
149
|
+
bun run dev # Watch mode for development
|
|
150
|
+
bun run typecheck # Type checking without emit
|
|
151
|
+
bun run storybook # Component development environment
|
|
152
|
+
|
|
153
|
+
# Code Quality
|
|
154
|
+
bun run lint # Run ESLint
|
|
155
|
+
bun run lint:fix # Auto-fix ESLint issues
|
|
156
|
+
bun run format # Format with Prettier
|
|
157
|
+
bun run format:check # Check formatting
|
|
158
|
+
|
|
159
|
+
# Testing
|
|
160
|
+
bun run test # Run tests
|
|
161
|
+
bun run test:watch # Watch mode for tests
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Dependencies
|
|
165
|
+
|
|
166
|
+
- **@principal-ade/panel-framework-core** - Panel framework integration
|
|
167
|
+
- **@principal-ade/industry-theme** - Industry theme system
|
|
168
|
+
- **React 19** - UI library
|
|
169
|
+
- **TypeScript** - Type safety
|
|
170
|
+
- **lucide-react** - Icon library
|
|
171
|
+
|
|
172
|
+
## License
|
|
173
|
+
|
|
174
|
+
MIT - See LICENSE file for details
|
|
175
|
+
|
|
176
|
+
## Contributing
|
|
177
|
+
|
|
178
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development guidelines.
|
|
179
|
+
|
|
180
|
+
## Documentation
|
|
181
|
+
|
|
182
|
+
- [Design Document](./KANBAN_PANEL_DESIGN.md) - Detailed design and implementation plan
|
|
183
|
+
- [Quick Start](./QUICKSTART.md) - Get started quickly
|
|
184
|
+
- [Project Structure](./PROJECT_STRUCTURE.md) - Codebase organization
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PanelDefinition } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Export array of panel definitions.
|
|
4
|
+
* This is the required export for panel extensions.
|
|
5
|
+
*/
|
|
6
|
+
export declare const panels: PanelDefinition[];
|
|
7
|
+
/**
|
|
8
|
+
* Optional: Called once when the entire package is loaded.
|
|
9
|
+
* Use this for package-level initialization.
|
|
10
|
+
*/
|
|
11
|
+
export declare const onPackageLoad: () => Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Optional: Called once when the package is unloaded.
|
|
14
|
+
* Use this for package-level cleanup.
|
|
15
|
+
*/
|
|
16
|
+
export declare const onPackageUnload: () => Promise<void>;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EA4BnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Mock Panel Context for Storybook
|
|
5
|
+
*/
|
|
6
|
+
export declare const createMockContext: (overrides?: Partial<PanelContextValue>) => PanelContextValue;
|
|
7
|
+
/**
|
|
8
|
+
* Mock Panel Actions for Storybook
|
|
9
|
+
*/
|
|
10
|
+
export declare const createMockActions: (overrides?: Partial<PanelActions>) => PanelActions;
|
|
11
|
+
/**
|
|
12
|
+
* Mock Event Emitter for Storybook
|
|
13
|
+
*/
|
|
14
|
+
export declare const createMockEvents: () => PanelEventEmitter;
|
|
15
|
+
/**
|
|
16
|
+
* Mock Panel Props Provider
|
|
17
|
+
* Wraps components with mock context for Storybook
|
|
18
|
+
*/
|
|
19
|
+
export declare const MockPanelProvider: React.FC<{
|
|
20
|
+
children: (props: PanelComponentProps) => React.ReactNode;
|
|
21
|
+
contextOverrides?: Partial<PanelContextValue>;
|
|
22
|
+
actionsOverrides?: Partial<PanelActions>;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=panelContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EAIlB,MAAM,UAAU,CAAC;AA+BlB;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAiHF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,YAAY,CAAC,KAChC,YAkBD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1C,CAMA,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* KanbanPanel - A kanban board panel for visualizing Backlog.md tasks.
|
|
5
|
+
*
|
|
6
|
+
* This panel shows:
|
|
7
|
+
* - Kanban board with configurable status columns
|
|
8
|
+
* - Task cards with priority indicators
|
|
9
|
+
* - Labels and assignee information
|
|
10
|
+
* - Mock data for testing (to be replaced with real data)
|
|
11
|
+
*/
|
|
12
|
+
export declare const KanbanPanel: React.FC<PanelComponentProps>;
|
|
13
|
+
//# sourceMappingURL=KanbanPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanPanel.d.ts","sourceRoot":"","sources":["../../src/panels/KanbanPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAsIpD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMrD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("@principal-ade/panel-framework-core").PanelComponentProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
};
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|
|
13
|
+
export declare const WithRepository: Story;
|
|
14
|
+
export declare const Loading: Story;
|
|
15
|
+
//# sourceMappingURL=KanbanPanel.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/KanbanPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;;;CAO0B,CAAC;AAErC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAkB5B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAarB,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
export type TaskStatus = string;
|
|
2
|
+
export interface AcceptanceCriterion {
|
|
3
|
+
index: number;
|
|
4
|
+
text: string;
|
|
5
|
+
checked: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface AcceptanceCriterionInput {
|
|
8
|
+
text: string;
|
|
9
|
+
checked?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface Task {
|
|
12
|
+
id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
status: TaskStatus;
|
|
15
|
+
assignee: string[];
|
|
16
|
+
reporter?: string;
|
|
17
|
+
createdDate: string;
|
|
18
|
+
updatedDate?: string;
|
|
19
|
+
labels: string[];
|
|
20
|
+
milestone?: string;
|
|
21
|
+
dependencies: string[];
|
|
22
|
+
readonly rawContent?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
implementationPlan?: string;
|
|
25
|
+
implementationNotes?: string;
|
|
26
|
+
/** Structured acceptance criteria parsed from body (checked state + text + index) */
|
|
27
|
+
acceptanceCriteriaItems?: AcceptanceCriterion[];
|
|
28
|
+
parentTaskId?: string;
|
|
29
|
+
subtasks?: string[];
|
|
30
|
+
priority?: "high" | "medium" | "low";
|
|
31
|
+
branch?: string;
|
|
32
|
+
ordinal?: number;
|
|
33
|
+
filePath?: string;
|
|
34
|
+
lastModified?: Date;
|
|
35
|
+
source?: "local" | "remote" | "completed";
|
|
36
|
+
}
|
|
37
|
+
export interface TaskCreateInput {
|
|
38
|
+
title: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
status?: TaskStatus;
|
|
41
|
+
priority?: "high" | "medium" | "low";
|
|
42
|
+
labels?: string[];
|
|
43
|
+
assignee?: string[];
|
|
44
|
+
dependencies?: string[];
|
|
45
|
+
parentTaskId?: string;
|
|
46
|
+
implementationPlan?: string;
|
|
47
|
+
implementationNotes?: string;
|
|
48
|
+
acceptanceCriteria?: AcceptanceCriterionInput[];
|
|
49
|
+
rawContent?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface TaskUpdateInput {
|
|
52
|
+
title?: string;
|
|
53
|
+
description?: string;
|
|
54
|
+
status?: TaskStatus;
|
|
55
|
+
priority?: "high" | "medium" | "low";
|
|
56
|
+
labels?: string[];
|
|
57
|
+
addLabels?: string[];
|
|
58
|
+
removeLabels?: string[];
|
|
59
|
+
assignee?: string[];
|
|
60
|
+
ordinal?: number;
|
|
61
|
+
dependencies?: string[];
|
|
62
|
+
addDependencies?: string[];
|
|
63
|
+
removeDependencies?: string[];
|
|
64
|
+
implementationPlan?: string;
|
|
65
|
+
appendImplementationPlan?: string[];
|
|
66
|
+
clearImplementationPlan?: boolean;
|
|
67
|
+
implementationNotes?: string;
|
|
68
|
+
appendImplementationNotes?: string[];
|
|
69
|
+
clearImplementationNotes?: boolean;
|
|
70
|
+
acceptanceCriteria?: AcceptanceCriterionInput[];
|
|
71
|
+
addAcceptanceCriteria?: Array<AcceptanceCriterionInput | string>;
|
|
72
|
+
removeAcceptanceCriteria?: number[];
|
|
73
|
+
checkAcceptanceCriteria?: number[];
|
|
74
|
+
uncheckAcceptanceCriteria?: number[];
|
|
75
|
+
rawContent?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface TaskListFilter {
|
|
78
|
+
status?: string;
|
|
79
|
+
assignee?: string;
|
|
80
|
+
priority?: "high" | "medium" | "low";
|
|
81
|
+
parentTaskId?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface Decision {
|
|
84
|
+
id: string;
|
|
85
|
+
title: string;
|
|
86
|
+
date: string;
|
|
87
|
+
status: "proposed" | "accepted" | "rejected" | "superseded";
|
|
88
|
+
context: string;
|
|
89
|
+
decision: string;
|
|
90
|
+
consequences: string;
|
|
91
|
+
alternatives?: string;
|
|
92
|
+
readonly rawContent: string;
|
|
93
|
+
}
|
|
94
|
+
export interface Document {
|
|
95
|
+
id: string;
|
|
96
|
+
title: string;
|
|
97
|
+
type: "readme" | "guide" | "specification" | "other";
|
|
98
|
+
createdDate: string;
|
|
99
|
+
updatedDate?: string;
|
|
100
|
+
rawContent: string;
|
|
101
|
+
tags?: string[];
|
|
102
|
+
name?: string;
|
|
103
|
+
path?: string;
|
|
104
|
+
lastModified?: string;
|
|
105
|
+
}
|
|
106
|
+
export type SearchResultType = "task" | "document" | "decision";
|
|
107
|
+
export type SearchPriorityFilter = "high" | "medium" | "low";
|
|
108
|
+
export interface SearchMatch {
|
|
109
|
+
key?: string;
|
|
110
|
+
indices: Array<[number, number]>;
|
|
111
|
+
value?: unknown;
|
|
112
|
+
}
|
|
113
|
+
export interface SearchFilters {
|
|
114
|
+
status?: string | string[];
|
|
115
|
+
priority?: SearchPriorityFilter | SearchPriorityFilter[];
|
|
116
|
+
assignee?: string | string[];
|
|
117
|
+
labels?: string | string[];
|
|
118
|
+
}
|
|
119
|
+
export interface SearchOptions {
|
|
120
|
+
query?: string;
|
|
121
|
+
limit?: number;
|
|
122
|
+
types?: SearchResultType[];
|
|
123
|
+
filters?: SearchFilters;
|
|
124
|
+
}
|
|
125
|
+
export interface TaskSearchResult {
|
|
126
|
+
type: "task";
|
|
127
|
+
score: number | null;
|
|
128
|
+
task: Task;
|
|
129
|
+
matches?: SearchMatch[];
|
|
130
|
+
}
|
|
131
|
+
export interface DocumentSearchResult {
|
|
132
|
+
type: "document";
|
|
133
|
+
score: number | null;
|
|
134
|
+
document: Document;
|
|
135
|
+
matches?: SearchMatch[];
|
|
136
|
+
}
|
|
137
|
+
export interface DecisionSearchResult {
|
|
138
|
+
type: "decision";
|
|
139
|
+
score: number | null;
|
|
140
|
+
decision: Decision;
|
|
141
|
+
matches?: SearchMatch[];
|
|
142
|
+
}
|
|
143
|
+
export type SearchResult = TaskSearchResult | DocumentSearchResult | DecisionSearchResult;
|
|
144
|
+
export interface Sequence {
|
|
145
|
+
/** 1-based sequence index */
|
|
146
|
+
index: number;
|
|
147
|
+
/** Tasks that can be executed in parallel within this sequence */
|
|
148
|
+
tasks: Task[];
|
|
149
|
+
}
|
|
150
|
+
export interface BacklogConfig {
|
|
151
|
+
projectName: string;
|
|
152
|
+
defaultAssignee?: string;
|
|
153
|
+
defaultReporter?: string;
|
|
154
|
+
statuses: string[];
|
|
155
|
+
labels: string[];
|
|
156
|
+
milestones: string[];
|
|
157
|
+
defaultStatus?: string;
|
|
158
|
+
dateFormat: string;
|
|
159
|
+
maxColumnWidth?: number;
|
|
160
|
+
taskResolutionStrategy?: "most_recent" | "most_progressed";
|
|
161
|
+
defaultEditor?: string;
|
|
162
|
+
autoOpenBrowser?: boolean;
|
|
163
|
+
defaultPort?: number;
|
|
164
|
+
remoteOperations?: boolean;
|
|
165
|
+
autoCommit?: boolean;
|
|
166
|
+
zeroPaddedIds?: number;
|
|
167
|
+
timezonePreference?: string;
|
|
168
|
+
includeDateTimeInDates?: boolean;
|
|
169
|
+
bypassGitHooks?: boolean;
|
|
170
|
+
checkActiveBranches?: boolean;
|
|
171
|
+
activeBranchDays?: number;
|
|
172
|
+
mcp?: {
|
|
173
|
+
http?: {
|
|
174
|
+
host?: string;
|
|
175
|
+
port?: number;
|
|
176
|
+
auth?: {
|
|
177
|
+
type?: "bearer" | "basic" | "none";
|
|
178
|
+
token?: string;
|
|
179
|
+
username?: string;
|
|
180
|
+
password?: string;
|
|
181
|
+
};
|
|
182
|
+
cors?: {
|
|
183
|
+
origin?: string | string[];
|
|
184
|
+
credentials?: boolean;
|
|
185
|
+
};
|
|
186
|
+
enableDnsRebindingProtection?: boolean;
|
|
187
|
+
allowedHosts?: string[];
|
|
188
|
+
allowedOrigins?: string[];
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
export interface ParsedMarkdown {
|
|
193
|
+
frontmatter: Record<string, unknown>;
|
|
194
|
+
content: string;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/backlog-types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Task } from "../backlog-types/index";
|
|
2
|
+
export interface BoardOptions {
|
|
3
|
+
statuses?: string[];
|
|
4
|
+
}
|
|
5
|
+
export type BoardLayout = "horizontal" | "vertical";
|
|
6
|
+
export type BoardFormat = "terminal" | "markdown";
|
|
7
|
+
export declare function buildKanbanStatusGroups(tasks: Task[], statuses: string[]): {
|
|
8
|
+
orderedStatuses: string[];
|
|
9
|
+
groupedTasks: Map<string, Task[]>;
|
|
10
|
+
};
|
|
11
|
+
export declare function generateKanbanBoardWithMetadata(tasks: Task[], statuses: string[], projectName: string): string;
|
|
12
|
+
export declare function exportKanbanBoardToFile(tasks: Task[], statuses: string[], filePath: string, projectName: string, _overwrite?: boolean): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/backlog-utils/board.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;AAElD,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAAE,GAChB;IAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAkDlE;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA+G9G;AAED,wBAAsB,uBAAuB,CAC5C,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Task } from '../backlog-types';
|
|
3
|
+
interface KanbanColumnProps {
|
|
4
|
+
status: string;
|
|
5
|
+
tasks: Task[];
|
|
6
|
+
onTaskClick?: (task: Task) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const KanbanColumn: React.FC<KanbanColumnProps>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=KanbanColumn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/components/KanbanColumn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+LpD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Task } from '../backlog-types';
|
|
2
|
+
export interface UseKanbanDataResult {
|
|
3
|
+
tasks: Task[];
|
|
4
|
+
statuses: string[];
|
|
5
|
+
isLoading: boolean;
|
|
6
|
+
error: string | null;
|
|
7
|
+
tasksByStatus: Map<string, Task[]>;
|
|
8
|
+
refreshData: () => Promise<void>;
|
|
9
|
+
updateTaskStatus: (taskId: string, newStatus: string) => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Hook for managing kanban board data
|
|
13
|
+
* Currently uses mock data, will be extended to fetch from Backlog.md files
|
|
14
|
+
*/
|
|
15
|
+
export declare function useKanbanData(): UseKanbanDataResult;
|
|
16
|
+
//# sourceMappingURL=useKanbanData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKanbanData.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/hooks/useKanbanData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CA0GnD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Data Generator for Kanban Panel Testing
|
|
3
|
+
*
|
|
4
|
+
* Generates sample task data matching the Backlog.md Task interface
|
|
5
|
+
* for testing and development purposes.
|
|
6
|
+
*/
|
|
7
|
+
import type { Task } from '../backlog-types';
|
|
8
|
+
/**
|
|
9
|
+
* Generate mock tasks for testing the kanban board
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateMockTasks(): Task[];
|
|
12
|
+
/**
|
|
13
|
+
* Get default status columns for the kanban board
|
|
14
|
+
*/
|
|
15
|
+
export declare function getDefaultStatuses(): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Get mock configuration for the kanban panel
|
|
18
|
+
*/
|
|
19
|
+
export declare function getMockPanelConfig(): {
|
|
20
|
+
dataSource: "mock";
|
|
21
|
+
columns: string[];
|
|
22
|
+
defaultColumn: string;
|
|
23
|
+
showDescription: boolean;
|
|
24
|
+
truncateLength: number;
|
|
25
|
+
showLabels: boolean;
|
|
26
|
+
showAssignees: boolean;
|
|
27
|
+
showPriority: boolean;
|
|
28
|
+
enableDragDrop: boolean;
|
|
29
|
+
enableEdit: boolean;
|
|
30
|
+
enableCreate: boolean;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=mockData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockData.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/mocks/mockData.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,EAAE,CAuI1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB;;;;;;;;;;;;EAcjC"}
|