create-auto-app 0.11.11 → 0.11.13
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/package.json +2 -2
- package/templates/kanban-todo/auto.config.ts +16 -4
- package/templates/kanban-todo/narratives/todo-list.narrative.ts +0 -2
- package/templates/kanban-todo/package.json +1 -0
- package/templates/kanban-todo/.context/auto-ia-scheme.json +0 -403
- package/templates/kanban-todo/.context/schema.graphql +0 -61
- package/templates/kanban-todo/.context/schema.json +0 -1148
- package/templates/kanban-todo/client/.gitignore +0 -24
- package/templates/kanban-todo/client2/.gitignore +0 -24
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-auto-app",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.13",
|
|
4
4
|
"description": "Create Auto Engineer apps with no configuration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"fs-extra": "^11.2.0",
|
|
34
34
|
"inquirer": "^9.2.15",
|
|
35
35
|
"ora": "^8.0.1",
|
|
36
|
-
"@auto-engineer/id": "0.11.
|
|
36
|
+
"@auto-engineer/id": "0.11.13"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -23,6 +23,7 @@ import type {
|
|
|
23
23
|
ComponentImplementedEvent,
|
|
24
24
|
ComponentImplementationFailedEvent,
|
|
25
25
|
} from '@auto-engineer/component-implementer';
|
|
26
|
+
import type { StartServerCommand, StartClientCommand } from '@auto-engineer/dev-server';
|
|
26
27
|
import * as path from 'path';
|
|
27
28
|
import createDebug from 'debug';
|
|
28
29
|
|
|
@@ -68,6 +69,7 @@ export default autoConfig({
|
|
|
68
69
|
'@auto-engineer/information-architect',
|
|
69
70
|
'@auto-engineer/frontend-generator-react-graphql',
|
|
70
71
|
'@auto-engineer/server-implementer',
|
|
72
|
+
'@auto-engineer/dev-server',
|
|
71
73
|
],
|
|
72
74
|
aliases: {
|
|
73
75
|
// Resolve command name conflicts between packages
|
|
@@ -194,12 +196,15 @@ export default autoConfig({
|
|
|
194
196
|
}),
|
|
195
197
|
);
|
|
196
198
|
|
|
197
|
-
on<GenerateServerEvents>('ServerGenerated', () =>
|
|
199
|
+
on<GenerateServerEvents>('ServerGenerated', () => [
|
|
198
200
|
dispatch<GenerateIACommand>('GenerateIA', {
|
|
199
201
|
modelPath: './.context/schema.json',
|
|
200
202
|
outputDir: './.context',
|
|
201
203
|
}),
|
|
202
|
-
|
|
204
|
+
dispatch<StartServerCommand>('StartServer', {
|
|
205
|
+
serverDirectory: './server',
|
|
206
|
+
}),
|
|
207
|
+
]);
|
|
203
208
|
|
|
204
209
|
on<GenerateIAEvents>('IAGenerated', () =>
|
|
205
210
|
dispatch<GenerateClientCommand>('GenerateClient', {
|
|
@@ -223,6 +228,9 @@ export default autoConfig({
|
|
|
223
228
|
filePath: 'client/src/components/molecules/Example.tsx',
|
|
224
229
|
componentName: 'Example.tsx',
|
|
225
230
|
}),
|
|
231
|
+
dispatch<StartClientCommand>('StartClient', {
|
|
232
|
+
clientDirectory: './client',
|
|
233
|
+
}),
|
|
226
234
|
];
|
|
227
235
|
}
|
|
228
236
|
|
|
@@ -248,7 +256,7 @@ export default autoConfig({
|
|
|
248
256
|
|
|
249
257
|
dispatchedPhases.add('molecule');
|
|
250
258
|
|
|
251
|
-
const
|
|
259
|
+
const componentCommands = molecules.map((component) => {
|
|
252
260
|
const componentName = path.basename(component.filePath).replace('.tsx', '');
|
|
253
261
|
return dispatch<ImplementComponentCommand>('ImplementComponent', {
|
|
254
262
|
projectDir: clientTargetDir,
|
|
@@ -260,7 +268,11 @@ export default autoConfig({
|
|
|
260
268
|
});
|
|
261
269
|
});
|
|
262
270
|
|
|
263
|
-
|
|
271
|
+
const startClientCommand = dispatch<StartClientCommand>('StartClient', {
|
|
272
|
+
clientDirectory: './client',
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
return dispatch.parallel([...componentCommands, startClientCommand]);
|
|
264
276
|
});
|
|
265
277
|
|
|
266
278
|
const handleComponentProcessed = (e: ComponentImplementedEvent | ComponentImplementationFailedEvent) => {
|
|
@@ -247,7 +247,6 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
|
|
|
247
247
|
})
|
|
248
248
|
.and<TodoMarkedInProgress>({ todoId: 'todo-001', markedAt: new Date('2030-01-01T10:00:00.000Z') })
|
|
249
249
|
.and<TodoMarkedComplete>({ todoId: 'todo-002', completedAt: new Date('2030-01-01T11:00:00.000Z') })
|
|
250
|
-
.when({})
|
|
251
250
|
.then<TodoState>({
|
|
252
251
|
todoId: 'todo-001',
|
|
253
252
|
description: 'Buy groceries',
|
|
@@ -305,7 +304,6 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
|
|
|
305
304
|
})
|
|
306
305
|
.and<TodoMarkedInProgress>({ todoId: 'todo-001', markedAt: new Date('2030-01-01T10:00:00.000Z') })
|
|
307
306
|
.and<TodoMarkedComplete>({ todoId: 'todo-002', completedAt: new Date('2030-01-01T11:00:00.000Z') })
|
|
308
|
-
.when({})
|
|
309
307
|
.then<TodoListSummary>({
|
|
310
308
|
summaryId: 'main-summary',
|
|
311
309
|
totalTodos: 3,
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"@auto-engineer/cli": "workspace:*",
|
|
12
12
|
"@auto-engineer/component-implementer": "workspace:*",
|
|
13
13
|
"@auto-engineer/design-system-importer": "workspace:*",
|
|
14
|
+
"@auto-engineer/dev-server": "workspace:*",
|
|
14
15
|
"@auto-engineer/narrative": "workspace:*",
|
|
15
16
|
"@auto-engineer/frontend-checks": "workspace:*",
|
|
16
17
|
"@auto-engineer/frontend-generator-react-graphql": "workspace:*",
|
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema_description": "Kanban-style todo application with drag-and-drop task management, real-time statistics, and celebration animations",
|
|
3
|
-
"atoms": {
|
|
4
|
-
"description": "Atomic UI primitives for the todo application",
|
|
5
|
-
"items": {}
|
|
6
|
-
},
|
|
7
|
-
"molecules": {
|
|
8
|
-
"description": "Reusable UI components composed from atoms",
|
|
9
|
-
"items": {
|
|
10
|
-
"TaskCard": {
|
|
11
|
-
"description": "Individual task card displaying task information with drag-and-drop support",
|
|
12
|
-
"composition": {
|
|
13
|
-
"atoms": ["card", "badge"]
|
|
14
|
-
},
|
|
15
|
-
"specs": [
|
|
16
|
-
"display task description with clear readable typography",
|
|
17
|
-
"show status indicator with color-coded dot or icon",
|
|
18
|
-
"display creation timestamp in subtle text",
|
|
19
|
-
"show completion timestamp for completed tasks",
|
|
20
|
-
"include quick action buttons appearing on hover",
|
|
21
|
-
"support click to expand for future task details",
|
|
22
|
-
"apply strike-through animation for completed tasks",
|
|
23
|
-
"use gradient borders matching task status"
|
|
24
|
-
]
|
|
25
|
-
},
|
|
26
|
-
"ColumnHeader": {
|
|
27
|
-
"description": "Header for Kanban columns with title and count badge",
|
|
28
|
-
"composition": {
|
|
29
|
-
"atoms": ["badge"]
|
|
30
|
-
},
|
|
31
|
-
"specs": [
|
|
32
|
-
"display column title with clear typography",
|
|
33
|
-
"show task count badge with colored background",
|
|
34
|
-
"use gradient or accent colors per column type",
|
|
35
|
-
"apply sticky positioning within scrollable columns",
|
|
36
|
-
"include subtle shadow for depth",
|
|
37
|
-
"maintain consistent height across all columns"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
"ProgressRing": {
|
|
41
|
-
"description": "Circular progress indicator showing completion percentage",
|
|
42
|
-
"composition": {
|
|
43
|
-
"atoms": ["progress"]
|
|
44
|
-
},
|
|
45
|
-
"specs": [
|
|
46
|
-
"display circular progress ring with gradient stroke",
|
|
47
|
-
"show completion percentage prominently in center",
|
|
48
|
-
"animate progress changes with smooth easing",
|
|
49
|
-
"display total task count below percentage",
|
|
50
|
-
"use vibrant colors for high completion rates",
|
|
51
|
-
"show subtle pulse animation on milestone achievements",
|
|
52
|
-
"position prominently at top of dashboard or sidebar"
|
|
53
|
-
]
|
|
54
|
-
},
|
|
55
|
-
"StatCard": {
|
|
56
|
-
"description": "Card displaying a single statistic with icon and value",
|
|
57
|
-
"composition": {
|
|
58
|
-
"atoms": ["card"]
|
|
59
|
-
},
|
|
60
|
-
"specs": [
|
|
61
|
-
"show total tasks count with large prominent number",
|
|
62
|
-
"display tasks completed today with celebration icon",
|
|
63
|
-
"show breakdown: pending, in-progress, completed counts",
|
|
64
|
-
"display completion percentage with visual indicator",
|
|
65
|
-
"use card-based layout with glass morphism styling",
|
|
66
|
-
"include subtle icons for each statistic",
|
|
67
|
-
"update in real-time when tasks change status",
|
|
68
|
-
"animate number changes with counting effect"
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
"ActivityItem": {
|
|
72
|
-
"description": "Single item in the recent activity feed",
|
|
73
|
-
"composition": {
|
|
74
|
-
"atoms": []
|
|
75
|
-
},
|
|
76
|
-
"specs": [
|
|
77
|
-
"display recent task completions in chronological order",
|
|
78
|
-
"show completion timestamp in relative format",
|
|
79
|
-
"include task description with completed styling",
|
|
80
|
-
"show subtle celebration icon for each completion",
|
|
81
|
-
"use minimalist list design with dividers",
|
|
82
|
-
"support click to view task details"
|
|
83
|
-
]
|
|
84
|
-
},
|
|
85
|
-
"QuickAddInput": {
|
|
86
|
-
"description": "Input field for quickly adding new tasks",
|
|
87
|
-
"composition": {
|
|
88
|
-
"atoms": ["button"]
|
|
89
|
-
},
|
|
90
|
-
"specs": [
|
|
91
|
-
"display floating action button with plus icon",
|
|
92
|
-
"expand into input form with smooth scale animation on click",
|
|
93
|
-
"include elegant input field with placeholder text",
|
|
94
|
-
"show submit button with icon when text is entered",
|
|
95
|
-
"support keyboard shortcut (Ctrl/Cmd + K) to focus input",
|
|
96
|
-
"auto-focus input when opened",
|
|
97
|
-
"clear and collapse after successful task addition",
|
|
98
|
-
"show loading state during task submission"
|
|
99
|
-
]
|
|
100
|
-
},
|
|
101
|
-
"ViewToggle": {
|
|
102
|
-
"description": "Toggle control for switching between Kanban and List views",
|
|
103
|
-
"composition": {
|
|
104
|
-
"atoms": ["toggle-group", "button"]
|
|
105
|
-
},
|
|
106
|
-
"specs": [
|
|
107
|
-
"provide toggle between Kanban and List views",
|
|
108
|
-
"use segmented control or tab-style switcher",
|
|
109
|
-
"position in top toolbar for easy access",
|
|
110
|
-
"highlight active view with accent color",
|
|
111
|
-
"animate view transitions with fade and slide effects",
|
|
112
|
-
"preserve scroll position when switching views",
|
|
113
|
-
"remember user preference in local storage"
|
|
114
|
-
]
|
|
115
|
-
},
|
|
116
|
-
"ThemeToggle": {
|
|
117
|
-
"description": "Toggle button for switching between light and dark themes",
|
|
118
|
-
"composition": {
|
|
119
|
-
"atoms": ["button"]
|
|
120
|
-
},
|
|
121
|
-
"specs": [
|
|
122
|
-
"support light and dark theme modes",
|
|
123
|
-
"display sun/moon icon toggle in top bar",
|
|
124
|
-
"transition smoothly between themes with fade animation",
|
|
125
|
-
"adjust all colors including gradients for theme",
|
|
126
|
-
"maintain high contrast and readability in both modes",
|
|
127
|
-
"remember user preference in local storage",
|
|
128
|
-
"use system preference as default"
|
|
129
|
-
]
|
|
130
|
-
},
|
|
131
|
-
"EmptyState": {
|
|
132
|
-
"description": "Display component for empty columns or lists",
|
|
133
|
-
"composition": {
|
|
134
|
-
"atoms": ["button"]
|
|
135
|
-
},
|
|
136
|
-
"specs": [
|
|
137
|
-
"display welcoming illustration when no tasks exist",
|
|
138
|
-
"show encouraging message to add first task",
|
|
139
|
-
"provide quick-add button directly in empty state",
|
|
140
|
-
"show column-specific empty states with relevant illustrations",
|
|
141
|
-
"use consistent visual style matching overall design system",
|
|
142
|
-
"include helpful tips for new users"
|
|
143
|
-
]
|
|
144
|
-
},
|
|
145
|
-
"TopNavBar": {
|
|
146
|
-
"description": "Top navigation bar with app branding and controls",
|
|
147
|
-
"composition": {
|
|
148
|
-
"atoms": ["button"]
|
|
149
|
-
},
|
|
150
|
-
"specs": [
|
|
151
|
-
"display clean top navigation bar spanning full width",
|
|
152
|
-
"include app logo or name on left side of top bar",
|
|
153
|
-
"show view toggle controls in center of top bar",
|
|
154
|
-
"display theme toggle, search, and profile menu on right side",
|
|
155
|
-
"use gradient or glass morphism effect for top bar",
|
|
156
|
-
"maintain top bar fixed position during scroll",
|
|
157
|
-
"apply subtle shadow to separate top bar from content"
|
|
158
|
-
]
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
"organisms": {
|
|
163
|
-
"description": "Smart UI components with data-fetching and business logic",
|
|
164
|
-
"items": {
|
|
165
|
-
"KanbanBoard": {
|
|
166
|
-
"description": "Main Kanban board with three columns for task management",
|
|
167
|
-
"composition": {
|
|
168
|
-
"molecules": ["ColumnHeader", "TaskCard", "EmptyState"]
|
|
169
|
-
},
|
|
170
|
-
"data_requirements": [
|
|
171
|
-
{
|
|
172
|
-
"type": "query",
|
|
173
|
-
"description": "Fetch all todos to display in Kanban columns",
|
|
174
|
-
"trigger": "on page load",
|
|
175
|
-
"details": {
|
|
176
|
-
"source": "AllTodos query",
|
|
177
|
-
"gql": "query AllTodos {\n todos {\n todoId\n description\n status\n addedAt\n completedAt\n }\n}",
|
|
178
|
-
"payload_schema": {}
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"type": "mutation",
|
|
183
|
-
"description": "Move task to in progress column",
|
|
184
|
-
"trigger": "on drag to in progress column",
|
|
185
|
-
"details": {
|
|
186
|
-
"source": "MarkTodoInProgress mutation",
|
|
187
|
-
"gql": "mutation MarkTodoInProgress($input: MarkTodoInProgressInput!) {\n markTodoInProgress(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
|
|
188
|
-
"payload_schema": {
|
|
189
|
-
"todoId": "string"
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
"type": "mutation",
|
|
195
|
-
"description": "Mark task as complete",
|
|
196
|
-
"trigger": "on drag to done column",
|
|
197
|
-
"details": {
|
|
198
|
-
"source": "MarkTodoComplete mutation",
|
|
199
|
-
"gql": "mutation MarkTodoComplete($input: MarkTodoCompleteInput!) {\n markTodoComplete(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
|
|
200
|
-
"payload_schema": {
|
|
201
|
-
"todoId": "string"
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
],
|
|
206
|
-
"specs": [
|
|
207
|
-
"display three distinct columns: To Do, In Progress, and Done",
|
|
208
|
-
"show elegant column headers with gradient backgrounds",
|
|
209
|
-
"display count badges on each column showing number of tasks",
|
|
210
|
-
"support drag-and-drop of task cards between columns",
|
|
211
|
-
"animate smooth transitions when tasks move between columns",
|
|
212
|
-
"show visual feedback during drag operations with shadow elevation",
|
|
213
|
-
"display task cards with glass morphism effect and subtle backdrop blur",
|
|
214
|
-
"add hover effects with gentle scale and shadow transitions",
|
|
215
|
-
"show empty state with beautiful illustrations when columns are empty",
|
|
216
|
-
"maintain consistent card spacing and grid alignment",
|
|
217
|
-
"allow reordering tasks within same column via drag-and-drop",
|
|
218
|
-
"auto-scroll columns when dragging near edges",
|
|
219
|
-
"show drop zones with visual indicators",
|
|
220
|
-
"prevent invalid drops with visual feedback",
|
|
221
|
-
"support keyboard-based task movement for accessibility",
|
|
222
|
-
"show task count updates immediately on column changes",
|
|
223
|
-
"maintain smooth 60fps animations during all interactions"
|
|
224
|
-
]
|
|
225
|
-
},
|
|
226
|
-
"QuickAddWidget": {
|
|
227
|
-
"description": "Floating action button that expands into task input form",
|
|
228
|
-
"composition": {
|
|
229
|
-
"molecules": ["QuickAddInput"]
|
|
230
|
-
},
|
|
231
|
-
"data_requirements": [
|
|
232
|
-
{
|
|
233
|
-
"type": "mutation",
|
|
234
|
-
"description": "Add a new todo to the list",
|
|
235
|
-
"trigger": "on form submit",
|
|
236
|
-
"details": {
|
|
237
|
-
"source": "AddTodo mutation",
|
|
238
|
-
"gql": "mutation AddTodo($input: AddTodoInput!) {\n addTodo(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
|
|
239
|
-
"payload_schema": {
|
|
240
|
-
"todoId": "string",
|
|
241
|
-
"description": "string"
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
],
|
|
246
|
-
"specs": [
|
|
247
|
-
"display floating action button with plus icon",
|
|
248
|
-
"position fixed in bottom-right corner for easy access",
|
|
249
|
-
"expand into input form with smooth scale animation on click",
|
|
250
|
-
"include elegant input field with placeholder text",
|
|
251
|
-
"show submit button with icon when text is entered",
|
|
252
|
-
"support keyboard shortcut (Ctrl/Cmd + K) to focus input",
|
|
253
|
-
"auto-focus input when opened",
|
|
254
|
-
"clear and collapse after successful task addition",
|
|
255
|
-
"show loading state during task submission"
|
|
256
|
-
]
|
|
257
|
-
},
|
|
258
|
-
"StatisticsDashboard": {
|
|
259
|
-
"description": "Dashboard showing task statistics and completion metrics",
|
|
260
|
-
"composition": {
|
|
261
|
-
"molecules": ["ProgressRing", "StatCard"]
|
|
262
|
-
},
|
|
263
|
-
"data_requirements": [
|
|
264
|
-
{
|
|
265
|
-
"type": "query",
|
|
266
|
-
"description": "Fetch summary statistics for all todos",
|
|
267
|
-
"trigger": "on page load and when tasks change",
|
|
268
|
-
"details": {
|
|
269
|
-
"source": "TodoListSummary query",
|
|
270
|
-
"gql": "query TodoListSummary {\n todoListSummary {\n totalTodos\n pendingCount\n inProgressCount\n completedCount\n completionPercentage\n }\n}",
|
|
271
|
-
"payload_schema": {}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
],
|
|
275
|
-
"specs": [
|
|
276
|
-
"show total tasks count with large prominent number",
|
|
277
|
-
"display tasks completed today with celebration icon",
|
|
278
|
-
"show breakdown: pending, in-progress, completed counts",
|
|
279
|
-
"display completion percentage with visual indicator",
|
|
280
|
-
"use card-based layout with glass morphism styling",
|
|
281
|
-
"include subtle icons for each statistic",
|
|
282
|
-
"update in real-time when tasks change status",
|
|
283
|
-
"animate number changes with counting effect"
|
|
284
|
-
]
|
|
285
|
-
},
|
|
286
|
-
"RecentActivityFeed": {
|
|
287
|
-
"description": "Feed showing recent task completions",
|
|
288
|
-
"composition": {
|
|
289
|
-
"molecules": ["ActivityItem"]
|
|
290
|
-
},
|
|
291
|
-
"data_requirements": [
|
|
292
|
-
{
|
|
293
|
-
"type": "query",
|
|
294
|
-
"description": "Fetch recently completed todos",
|
|
295
|
-
"trigger": "on page load and when tasks are completed",
|
|
296
|
-
"details": {
|
|
297
|
-
"source": "AllTodos query filtered for completed",
|
|
298
|
-
"gql": "query AllTodos {\n todos {\n todoId\n description\n status\n addedAt\n completedAt\n }\n}",
|
|
299
|
-
"payload_schema": {}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
],
|
|
303
|
-
"specs": [
|
|
304
|
-
"display recent task completions in chronological order",
|
|
305
|
-
"show completion timestamp in relative format",
|
|
306
|
-
"limit to last 5 completed tasks",
|
|
307
|
-
"include task description with completed styling",
|
|
308
|
-
"show subtle celebration icon for each completion",
|
|
309
|
-
"use minimalist list design with dividers",
|
|
310
|
-
"support click to view task details",
|
|
311
|
-
"auto-scroll new completions into view with smooth animation"
|
|
312
|
-
]
|
|
313
|
-
},
|
|
314
|
-
"CelebrationOverlay": {
|
|
315
|
-
"description": "Overlay component for celebration animations",
|
|
316
|
-
"composition": {
|
|
317
|
-
"molecules": []
|
|
318
|
-
},
|
|
319
|
-
"specs": [
|
|
320
|
-
"trigger confetti animation when task is completed",
|
|
321
|
-
"show satisfying checkmark animation",
|
|
322
|
-
"play subtle success sound effect (optional, user configurable)",
|
|
323
|
-
"display special animation for completing all tasks",
|
|
324
|
-
"show streak celebration for consecutive daily completions",
|
|
325
|
-
"use particle effects that do not obstruct UI",
|
|
326
|
-
"respect reduced motion preferences for accessibility"
|
|
327
|
-
]
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
},
|
|
331
|
-
"pages": {
|
|
332
|
-
"description": "Top-level views composed of organisms",
|
|
333
|
-
"items": {
|
|
334
|
-
"TodoDashboardPage": {
|
|
335
|
-
"route": "/",
|
|
336
|
-
"description": "Main dashboard page with Kanban board, statistics, and quick add functionality",
|
|
337
|
-
"layout": {
|
|
338
|
-
"organisms": [
|
|
339
|
-
"KanbanBoard",
|
|
340
|
-
"QuickAddWidget",
|
|
341
|
-
"StatisticsDashboard",
|
|
342
|
-
"RecentActivityFeed",
|
|
343
|
-
"CelebrationOverlay"
|
|
344
|
-
]
|
|
345
|
-
},
|
|
346
|
-
"navigation": [],
|
|
347
|
-
"specs": [
|
|
348
|
-
"occupy full viewport height below top bar",
|
|
349
|
-
"apply subtle gradient or textured background",
|
|
350
|
-
"center Kanban board with max-width container for large screens",
|
|
351
|
-
"provide adequate padding around content on all sides",
|
|
352
|
-
"support smooth transitions when switching between views",
|
|
353
|
-
"maintain responsive layout for tablet and mobile devices",
|
|
354
|
-
"use CSS Grid for Kanban column layout",
|
|
355
|
-
"display three equal-width columns in desktop view",
|
|
356
|
-
"apply consistent gap spacing between columns",
|
|
357
|
-
"stack columns vertically on mobile devices",
|
|
358
|
-
"support horizontal scrolling on smaller screens if needed",
|
|
359
|
-
"maintain minimum column width for readability",
|
|
360
|
-
"apply max-height with scroll for columns with many tasks",
|
|
361
|
-
"show subtle scrollbar styling matching theme",
|
|
362
|
-
"display on right side of screen in desktop view",
|
|
363
|
-
"show progress ring at top of sidebar",
|
|
364
|
-
"include statistics cards in vertical stack",
|
|
365
|
-
"display recent activity feed below statistics",
|
|
366
|
-
"apply glass morphism or card-based design",
|
|
367
|
-
"collapse into expandable panel on tablet devices",
|
|
368
|
-
"move to bottom sheet on mobile devices",
|
|
369
|
-
"support toggle to show/hide for more workspace",
|
|
370
|
-
"support desktop layout for screens 1024px and wider",
|
|
371
|
-
"adapt to tablet layout for screens 768px to 1023px",
|
|
372
|
-
"optimize for mobile devices below 768px",
|
|
373
|
-
"stack Kanban columns vertically on screens below 640px",
|
|
374
|
-
"adjust font sizes and spacing for each breakpoint",
|
|
375
|
-
"maintain touch-friendly tap targets on all devices",
|
|
376
|
-
"test on common device dimensions for consistency",
|
|
377
|
-
"show skeleton loaders for initial page load",
|
|
378
|
-
"display shimmer effect on loading cards",
|
|
379
|
-
"include spinner for async operations",
|
|
380
|
-
"maintain layout stability during loading",
|
|
381
|
-
"show optimistic UI updates for immediate feedback",
|
|
382
|
-
"handle slow network conditions gracefully",
|
|
383
|
-
"provide timeout fallback with retry option",
|
|
384
|
-
"display inline error messages near relevant fields",
|
|
385
|
-
"show toast notifications for global errors",
|
|
386
|
-
"include helpful error messages with suggested actions",
|
|
387
|
-
"use consistent error styling with red accent color",
|
|
388
|
-
"provide retry buttons for failed operations",
|
|
389
|
-
"log errors to console for debugging",
|
|
390
|
-
"support error boundary for graceful failure recovery",
|
|
391
|
-
"support full keyboard navigation throughout app",
|
|
392
|
-
"provide ARIA labels for all interactive elements",
|
|
393
|
-
"include skip links for main content areas",
|
|
394
|
-
"maintain focus indicators with high contrast",
|
|
395
|
-
"support screen reader announcements for dynamic changes",
|
|
396
|
-
"respect prefers-reduced-motion for animations",
|
|
397
|
-
"ensure color contrast meets WCAG AA standards",
|
|
398
|
-
"provide alt text for all decorative images and icons"
|
|
399
|
-
]
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
type Query {
|
|
2
|
-
todos: [TodoState!]!
|
|
3
|
-
todoListSummary: [TodoListSummary!]!
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
type TodoState {
|
|
7
|
-
todoId: String!
|
|
8
|
-
description: String!
|
|
9
|
-
status: TodoStateStatus!
|
|
10
|
-
addedAt: DateTimeISO!
|
|
11
|
-
completedAt: DateTimeISO
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
enum TodoStateStatus {
|
|
15
|
-
PENDING
|
|
16
|
-
IN_PROGRESS
|
|
17
|
-
COMPLETED
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
"""
|
|
21
|
-
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.This scalar is serialized to a string in ISO 8601 format and parsed from a string in ISO 8601 format.
|
|
22
|
-
"""
|
|
23
|
-
scalar DateTimeISO
|
|
24
|
-
|
|
25
|
-
type TodoListSummary {
|
|
26
|
-
summaryId: String!
|
|
27
|
-
totalTodos: Float!
|
|
28
|
-
pendingCount: Float!
|
|
29
|
-
inProgressCount: Float!
|
|
30
|
-
completedCount: Float!
|
|
31
|
-
completionPercentage: Float!
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
type Mutation {
|
|
35
|
-
addTodo(input: AddTodoInput!): MutationResponse!
|
|
36
|
-
markTodoComplete(input: MarkTodoCompleteInput!): MutationResponse!
|
|
37
|
-
markTodoInProgress(input: MarkTodoInProgressInput!): MutationResponse!
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
type MutationResponse {
|
|
41
|
-
success: Boolean!
|
|
42
|
-
error: MutationError
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
type MutationError {
|
|
46
|
-
type: String!
|
|
47
|
-
message: String
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
input AddTodoInput {
|
|
51
|
-
todoId: String!
|
|
52
|
-
description: String!
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
input MarkTodoCompleteInput {
|
|
56
|
-
todoId: String!
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
input MarkTodoInProgressInput {
|
|
60
|
-
todoId: String!
|
|
61
|
-
}
|