floq 0.0.1 → 0.2.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 +157 -29
- package/README.md +157 -29
- package/dist/changelog.d.ts +13 -0
- package/dist/changelog.js +95 -0
- package/dist/cli.js +70 -1
- package/dist/commands/add.js +5 -6
- package/dist/commands/comment.d.ts +2 -0
- package/dist/commands/comment.js +67 -0
- package/dist/commands/config.d.ts +7 -0
- package/dist/commands/config.js +163 -14
- package/dist/commands/done.js +4 -6
- package/dist/commands/list.js +9 -13
- package/dist/commands/move.js +4 -6
- package/dist/commands/project.js +18 -26
- package/dist/commands/setup.d.ts +1 -0
- package/dist/commands/setup.js +13 -0
- package/dist/config.d.ts +15 -1
- package/dist/config.js +53 -2
- package/dist/db/index.d.ts +5 -4
- package/dist/db/index.js +127 -32
- package/dist/db/schema.d.ts +83 -0
- package/dist/db/schema.js +6 -0
- package/dist/i18n/en.d.ts +258 -0
- package/dist/i18n/en.js +138 -3
- package/dist/i18n/ja.js +138 -3
- package/dist/index.js +33 -1
- package/dist/paths.d.ts +4 -0
- package/dist/paths.js +63 -5
- package/dist/ui/App.js +384 -136
- package/dist/ui/ModeSelector.d.ts +7 -0
- package/dist/ui/ModeSelector.js +37 -0
- package/dist/ui/SetupWizard.d.ts +6 -0
- package/dist/ui/SetupWizard.js +321 -0
- package/dist/ui/ThemeSelector.d.ts +1 -1
- package/dist/ui/ThemeSelector.js +23 -10
- package/dist/ui/components/FunctionKeyBar.d.ts +5 -4
- package/dist/ui/components/FunctionKeyBar.js +19 -15
- package/dist/ui/components/HelpModal.d.ts +2 -1
- package/dist/ui/components/HelpModal.js +118 -4
- package/dist/ui/components/KanbanBoard.d.ts +6 -0
- package/dist/ui/components/KanbanBoard.js +508 -0
- package/dist/ui/components/KanbanColumn.d.ts +12 -0
- package/dist/ui/components/KanbanColumn.js +11 -0
- package/dist/ui/components/ProgressBar.d.ts +7 -0
- package/dist/ui/components/ProgressBar.js +13 -0
- package/dist/ui/components/SearchBar.d.ts +8 -0
- package/dist/ui/components/SearchBar.js +11 -0
- package/dist/ui/components/SearchResults.d.ts +9 -0
- package/dist/ui/components/SearchResults.js +18 -0
- package/dist/ui/components/TaskItem.d.ts +6 -1
- package/dist/ui/components/TaskItem.js +3 -2
- package/dist/ui/theme/themes.d.ts +12 -0
- package/dist/ui/theme/themes.js +495 -3
- package/dist/ui/theme/types.d.ts +1 -1
- package/package.json +2 -1
package/dist/i18n/en.d.ts
CHANGED
|
@@ -6,6 +6,11 @@ export declare const en: {
|
|
|
6
6
|
someday: string;
|
|
7
7
|
done: string;
|
|
8
8
|
};
|
|
9
|
+
kanban: {
|
|
10
|
+
todo: string;
|
|
11
|
+
doing: string;
|
|
12
|
+
done: string;
|
|
13
|
+
};
|
|
9
14
|
projectStatus: {
|
|
10
15
|
active: string;
|
|
11
16
|
someday: string;
|
|
@@ -51,6 +56,13 @@ export declare const en: {
|
|
|
51
56
|
statusLabel: string;
|
|
52
57
|
tasksCount: string;
|
|
53
58
|
};
|
|
59
|
+
comment: {
|
|
60
|
+
added: string;
|
|
61
|
+
notFound: string;
|
|
62
|
+
multipleMatch: string;
|
|
63
|
+
noComments: string;
|
|
64
|
+
listHeader: string;
|
|
65
|
+
};
|
|
54
66
|
};
|
|
55
67
|
tui: {
|
|
56
68
|
title: string;
|
|
@@ -61,6 +73,8 @@ export declare const en: {
|
|
|
61
73
|
added: string;
|
|
62
74
|
completed: string;
|
|
63
75
|
movedTo: string;
|
|
76
|
+
movedToWaiting: string;
|
|
77
|
+
waitingFor: string;
|
|
64
78
|
refreshed: string;
|
|
65
79
|
footer: string;
|
|
66
80
|
noTasks: string;
|
|
@@ -69,13 +83,31 @@ export declare const en: {
|
|
|
69
83
|
tabWaiting: string;
|
|
70
84
|
tabSomeday: string;
|
|
71
85
|
tabProjects: string;
|
|
86
|
+
tabDone: string;
|
|
72
87
|
madeProject: string;
|
|
73
88
|
linkedToProject: string;
|
|
74
89
|
selectProject: string;
|
|
75
90
|
selectProjectHelp: string;
|
|
76
91
|
back: string;
|
|
92
|
+
keyBar: {
|
|
93
|
+
add: string;
|
|
94
|
+
done: string;
|
|
95
|
+
next: string;
|
|
96
|
+
someday: string;
|
|
97
|
+
waiting: string;
|
|
98
|
+
inbox: string;
|
|
99
|
+
project: string;
|
|
100
|
+
help: string;
|
|
101
|
+
quit: string;
|
|
102
|
+
comment: string;
|
|
103
|
+
back: string;
|
|
104
|
+
delete: string;
|
|
105
|
+
};
|
|
77
106
|
help: {
|
|
78
107
|
title: string;
|
|
108
|
+
whatsNewTab: string;
|
|
109
|
+
keybindingsTab: string;
|
|
110
|
+
tabHint: string;
|
|
79
111
|
navigation: string;
|
|
80
112
|
tabSwitch: string;
|
|
81
113
|
prevNextTab: string;
|
|
@@ -85,6 +117,7 @@ export declare const en: {
|
|
|
85
117
|
completeTask: string;
|
|
86
118
|
moveToNext: string;
|
|
87
119
|
moveToSomeday: string;
|
|
120
|
+
moveToWaiting: string;
|
|
88
121
|
moveToInbox: string;
|
|
89
122
|
refresh: string;
|
|
90
123
|
projects: string;
|
|
@@ -92,15 +125,114 @@ export declare const en: {
|
|
|
92
125
|
linkToProject: string;
|
|
93
126
|
openProject: string;
|
|
94
127
|
backFromProject: string;
|
|
128
|
+
taskDetail: string;
|
|
129
|
+
addComment: string;
|
|
130
|
+
searchTasks: string;
|
|
95
131
|
other: string;
|
|
96
132
|
showHelp: string;
|
|
97
133
|
quit: string;
|
|
98
134
|
closeHint: string;
|
|
99
135
|
};
|
|
136
|
+
whatsNew: {
|
|
137
|
+
title: string;
|
|
138
|
+
noChanges: string;
|
|
139
|
+
added: string;
|
|
140
|
+
changed: string;
|
|
141
|
+
deprecated: string;
|
|
142
|
+
removed: string;
|
|
143
|
+
fixed: string;
|
|
144
|
+
security: string;
|
|
145
|
+
};
|
|
146
|
+
kanbanHelp: {
|
|
147
|
+
title: string;
|
|
148
|
+
navigation: string;
|
|
149
|
+
columnSwitch: string;
|
|
150
|
+
columnDirect: string;
|
|
151
|
+
taskSelect: string;
|
|
152
|
+
actions: string;
|
|
153
|
+
addTask: string;
|
|
154
|
+
completeTask: string;
|
|
155
|
+
moveRight: string;
|
|
156
|
+
moveLeft: string;
|
|
157
|
+
searchTasks: string;
|
|
158
|
+
other: string;
|
|
159
|
+
showHelp: string;
|
|
160
|
+
quit: string;
|
|
161
|
+
closeHint: string;
|
|
162
|
+
};
|
|
163
|
+
addComment: string;
|
|
164
|
+
noComments: string;
|
|
165
|
+
commentHint: string;
|
|
166
|
+
linkHint: string;
|
|
167
|
+
commentAdded: string;
|
|
168
|
+
commentDeleted: string;
|
|
169
|
+
taskDetailTitle: string;
|
|
170
|
+
taskDetailFooter: string;
|
|
171
|
+
comments: string;
|
|
172
|
+
projectTasks: string;
|
|
173
|
+
search: {
|
|
174
|
+
prefix: string;
|
|
175
|
+
placeholder: string;
|
|
176
|
+
help: string;
|
|
177
|
+
noResults: string;
|
|
178
|
+
resultsTitle: string;
|
|
179
|
+
searchTasks: string;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
setup: {
|
|
183
|
+
welcome: {
|
|
184
|
+
title: string;
|
|
185
|
+
subtitle: string;
|
|
186
|
+
instruction: string;
|
|
187
|
+
};
|
|
188
|
+
language: {
|
|
189
|
+
title: string;
|
|
190
|
+
hint: string;
|
|
191
|
+
};
|
|
192
|
+
theme: {
|
|
193
|
+
title: string;
|
|
194
|
+
hint: string;
|
|
195
|
+
};
|
|
196
|
+
viewMode: {
|
|
197
|
+
title: string;
|
|
198
|
+
hint: string;
|
|
199
|
+
gtd: string;
|
|
200
|
+
gtdDesc: string;
|
|
201
|
+
kanban: string;
|
|
202
|
+
kanbanDesc: string;
|
|
203
|
+
};
|
|
204
|
+
database: {
|
|
205
|
+
title: string;
|
|
206
|
+
local: string;
|
|
207
|
+
localDesc: string;
|
|
208
|
+
turso: string;
|
|
209
|
+
tursoDesc: string;
|
|
210
|
+
hint: string;
|
|
211
|
+
};
|
|
212
|
+
turso: {
|
|
213
|
+
urlPrompt: string;
|
|
214
|
+
urlPlaceholder: string;
|
|
215
|
+
urlError: string;
|
|
216
|
+
tokenPrompt: string;
|
|
217
|
+
tokenError: string;
|
|
218
|
+
inputHint: string;
|
|
219
|
+
};
|
|
220
|
+
complete: {
|
|
221
|
+
title: string;
|
|
222
|
+
summary: string;
|
|
223
|
+
language: string;
|
|
224
|
+
theme: string;
|
|
225
|
+
viewMode: string;
|
|
226
|
+
database: string;
|
|
227
|
+
confirm: string;
|
|
228
|
+
};
|
|
100
229
|
};
|
|
101
230
|
};
|
|
102
231
|
export type HelpTranslations = {
|
|
103
232
|
title: string;
|
|
233
|
+
whatsNewTab: string;
|
|
234
|
+
keybindingsTab: string;
|
|
235
|
+
tabHint: string;
|
|
104
236
|
navigation: string;
|
|
105
237
|
tabSwitch: string;
|
|
106
238
|
prevNextTab: string;
|
|
@@ -110,6 +242,7 @@ export type HelpTranslations = {
|
|
|
110
242
|
completeTask: string;
|
|
111
243
|
moveToNext: string;
|
|
112
244
|
moveToSomeday: string;
|
|
245
|
+
moveToWaiting: string;
|
|
113
246
|
moveToInbox: string;
|
|
114
247
|
refresh: string;
|
|
115
248
|
projects: string;
|
|
@@ -117,11 +250,68 @@ export type HelpTranslations = {
|
|
|
117
250
|
linkToProject: string;
|
|
118
251
|
openProject: string;
|
|
119
252
|
backFromProject: string;
|
|
253
|
+
taskDetail: string;
|
|
254
|
+
addComment: string;
|
|
255
|
+
searchTasks: string;
|
|
120
256
|
other: string;
|
|
121
257
|
showHelp: string;
|
|
122
258
|
quit: string;
|
|
123
259
|
closeHint: string;
|
|
124
260
|
};
|
|
261
|
+
export type WhatsNewTranslations = {
|
|
262
|
+
title: string;
|
|
263
|
+
noChanges: string;
|
|
264
|
+
added: string;
|
|
265
|
+
changed: string;
|
|
266
|
+
deprecated: string;
|
|
267
|
+
removed: string;
|
|
268
|
+
fixed: string;
|
|
269
|
+
security: string;
|
|
270
|
+
};
|
|
271
|
+
export type KanbanHelpTranslations = {
|
|
272
|
+
title: string;
|
|
273
|
+
navigation: string;
|
|
274
|
+
columnSwitch: string;
|
|
275
|
+
columnDirect: string;
|
|
276
|
+
taskSelect: string;
|
|
277
|
+
actions: string;
|
|
278
|
+
addTask: string;
|
|
279
|
+
completeTask: string;
|
|
280
|
+
moveRight: string;
|
|
281
|
+
moveLeft: string;
|
|
282
|
+
searchTasks: string;
|
|
283
|
+
other: string;
|
|
284
|
+
showHelp: string;
|
|
285
|
+
quit: string;
|
|
286
|
+
closeHint: string;
|
|
287
|
+
};
|
|
288
|
+
export type KanbanTranslations = {
|
|
289
|
+
todo: string;
|
|
290
|
+
doing: string;
|
|
291
|
+
done: string;
|
|
292
|
+
};
|
|
293
|
+
export type KeyBarTranslations = {
|
|
294
|
+
add: string;
|
|
295
|
+
done: string;
|
|
296
|
+
next: string;
|
|
297
|
+
someday: string;
|
|
298
|
+
waiting: string;
|
|
299
|
+
inbox: string;
|
|
300
|
+
project: string;
|
|
301
|
+
help: string;
|
|
302
|
+
quit: string;
|
|
303
|
+
comment: string;
|
|
304
|
+
back: string;
|
|
305
|
+
delete: string;
|
|
306
|
+
};
|
|
307
|
+
export type SearchTranslations = {
|
|
308
|
+
prefix: string;
|
|
309
|
+
placeholder: string;
|
|
310
|
+
help: string;
|
|
311
|
+
noResults: string;
|
|
312
|
+
resultsTitle: string;
|
|
313
|
+
searchTasks: string;
|
|
314
|
+
};
|
|
125
315
|
export type TuiTranslations = {
|
|
126
316
|
title: string;
|
|
127
317
|
helpHint: string;
|
|
@@ -131,6 +321,8 @@ export type TuiTranslations = {
|
|
|
131
321
|
added: string;
|
|
132
322
|
completed: string;
|
|
133
323
|
movedTo: string;
|
|
324
|
+
movedToWaiting: string;
|
|
325
|
+
waitingFor: string;
|
|
134
326
|
refreshed: string;
|
|
135
327
|
footer: string;
|
|
136
328
|
noTasks: string;
|
|
@@ -139,15 +331,79 @@ export type TuiTranslations = {
|
|
|
139
331
|
tabWaiting: string;
|
|
140
332
|
tabSomeday: string;
|
|
141
333
|
tabProjects: string;
|
|
334
|
+
tabDone: string;
|
|
142
335
|
madeProject: string;
|
|
143
336
|
linkedToProject: string;
|
|
144
337
|
selectProject: string;
|
|
145
338
|
selectProjectHelp: string;
|
|
146
339
|
back: string;
|
|
340
|
+
keyBar: KeyBarTranslations;
|
|
147
341
|
help: HelpTranslations;
|
|
342
|
+
whatsNew: WhatsNewTranslations;
|
|
343
|
+
kanbanHelp: KanbanHelpTranslations;
|
|
344
|
+
search: SearchTranslations;
|
|
345
|
+
addComment: string;
|
|
346
|
+
noComments: string;
|
|
347
|
+
commentHint: string;
|
|
348
|
+
linkHint: string;
|
|
349
|
+
commentAdded: string;
|
|
350
|
+
commentDeleted: string;
|
|
351
|
+
taskDetailTitle: string;
|
|
352
|
+
taskDetailFooter: string;
|
|
353
|
+
comments: string;
|
|
354
|
+
projectTasks: string;
|
|
355
|
+
};
|
|
356
|
+
export type SetupTranslations = {
|
|
357
|
+
welcome: {
|
|
358
|
+
title: string;
|
|
359
|
+
subtitle: string;
|
|
360
|
+
instruction: string;
|
|
361
|
+
};
|
|
362
|
+
language: {
|
|
363
|
+
title: string;
|
|
364
|
+
hint: string;
|
|
365
|
+
};
|
|
366
|
+
theme: {
|
|
367
|
+
title: string;
|
|
368
|
+
hint: string;
|
|
369
|
+
};
|
|
370
|
+
viewMode: {
|
|
371
|
+
title: string;
|
|
372
|
+
hint: string;
|
|
373
|
+
gtd: string;
|
|
374
|
+
gtdDesc: string;
|
|
375
|
+
kanban: string;
|
|
376
|
+
kanbanDesc: string;
|
|
377
|
+
};
|
|
378
|
+
database: {
|
|
379
|
+
title: string;
|
|
380
|
+
local: string;
|
|
381
|
+
localDesc: string;
|
|
382
|
+
turso: string;
|
|
383
|
+
tursoDesc: string;
|
|
384
|
+
hint: string;
|
|
385
|
+
};
|
|
386
|
+
turso: {
|
|
387
|
+
urlPrompt: string;
|
|
388
|
+
urlPlaceholder: string;
|
|
389
|
+
urlError: string;
|
|
390
|
+
tokenPrompt: string;
|
|
391
|
+
tokenError: string;
|
|
392
|
+
inputHint: string;
|
|
393
|
+
};
|
|
394
|
+
complete: {
|
|
395
|
+
title: string;
|
|
396
|
+
summary: string;
|
|
397
|
+
language: string;
|
|
398
|
+
theme: string;
|
|
399
|
+
viewMode: string;
|
|
400
|
+
database: string;
|
|
401
|
+
confirm: string;
|
|
402
|
+
};
|
|
148
403
|
};
|
|
149
404
|
export type Translations = {
|
|
150
405
|
status: Record<string, string>;
|
|
406
|
+
kanban: KanbanTranslations;
|
|
151
407
|
projectStatus: Record<string, string>;
|
|
152
408
|
commands: {
|
|
153
409
|
add: Record<string, string>;
|
|
@@ -155,6 +411,8 @@ export type Translations = {
|
|
|
155
411
|
move: Record<string, string>;
|
|
156
412
|
done: Record<string, string>;
|
|
157
413
|
project: Record<string, string>;
|
|
414
|
+
comment: Record<string, string>;
|
|
158
415
|
};
|
|
159
416
|
tui: TuiTranslations;
|
|
417
|
+
setup: SetupTranslations;
|
|
160
418
|
};
|
package/dist/i18n/en.js
CHANGED
|
@@ -7,6 +7,12 @@ export const en = {
|
|
|
7
7
|
someday: 'Someday/Maybe',
|
|
8
8
|
done: 'Done',
|
|
9
9
|
},
|
|
10
|
+
// Kanban mode labels
|
|
11
|
+
kanban: {
|
|
12
|
+
todo: 'TODO',
|
|
13
|
+
doing: 'Doing',
|
|
14
|
+
done: 'Done',
|
|
15
|
+
},
|
|
10
16
|
// Project status
|
|
11
17
|
projectStatus: {
|
|
12
18
|
active: 'Active Projects',
|
|
@@ -54,6 +60,13 @@ export const en = {
|
|
|
54
60
|
statusLabel: 'Status: {status}',
|
|
55
61
|
tasksCount: 'Tasks: {count}',
|
|
56
62
|
},
|
|
63
|
+
comment: {
|
|
64
|
+
added: 'Comment added to "{title}"',
|
|
65
|
+
notFound: 'Task not found: {id}',
|
|
66
|
+
multipleMatch: 'Multiple tasks match "{id}". Please be more specific:',
|
|
67
|
+
noComments: 'No comments',
|
|
68
|
+
listHeader: 'Comments for "{title}":',
|
|
69
|
+
},
|
|
57
70
|
},
|
|
58
71
|
// TUI
|
|
59
72
|
tui: {
|
|
@@ -65,8 +78,10 @@ export const en = {
|
|
|
65
78
|
added: 'Added: "{title}"',
|
|
66
79
|
completed: 'Completed: "{title}"',
|
|
67
80
|
movedTo: 'Moved "{title}" to {status}',
|
|
81
|
+
movedToWaiting: 'Moved "{title}" to Waiting (for {person})',
|
|
82
|
+
waitingFor: 'Waiting for: ',
|
|
68
83
|
refreshed: 'Refreshed',
|
|
69
|
-
footer: 'a=add d=done n=next s=someday i=inbox p=project P=link',
|
|
84
|
+
footer: 'a=add d=done n=next s=someday w=waiting i=inbox p=project P=link',
|
|
70
85
|
noTasks: 'No tasks',
|
|
71
86
|
// Tab labels
|
|
72
87
|
tabInbox: 'Inbox',
|
|
@@ -74,17 +89,36 @@ export const en = {
|
|
|
74
89
|
tabWaiting: 'Waiting',
|
|
75
90
|
tabSomeday: 'Someday',
|
|
76
91
|
tabProjects: 'Projects',
|
|
92
|
+
tabDone: 'Done',
|
|
77
93
|
// Project actions
|
|
78
94
|
madeProject: 'Made project: "{title}"',
|
|
79
95
|
linkedToProject: 'Linked "{title}" to {project}',
|
|
80
96
|
selectProject: 'Select project for',
|
|
81
97
|
selectProjectHelp: 'j/k: select, Enter: confirm, Esc: cancel',
|
|
82
98
|
back: 'back',
|
|
99
|
+
// Action key bar labels
|
|
100
|
+
keyBar: {
|
|
101
|
+
add: 'Add',
|
|
102
|
+
done: 'Done',
|
|
103
|
+
next: 'Next',
|
|
104
|
+
someday: 'Someday',
|
|
105
|
+
waiting: 'Waiting',
|
|
106
|
+
inbox: 'Inbox',
|
|
107
|
+
project: 'Project',
|
|
108
|
+
help: 'Help',
|
|
109
|
+
quit: 'Quit',
|
|
110
|
+
comment: 'Comment',
|
|
111
|
+
back: 'Back',
|
|
112
|
+
delete: 'Delete',
|
|
113
|
+
},
|
|
83
114
|
// Help modal
|
|
84
115
|
help: {
|
|
85
116
|
title: 'Keyboard Shortcuts',
|
|
117
|
+
whatsNewTab: "What's New",
|
|
118
|
+
keybindingsTab: 'Keybindings',
|
|
119
|
+
tabHint: 'Tab: switch view',
|
|
86
120
|
navigation: 'Navigation',
|
|
87
|
-
tabSwitch: 'Switch tab (5=Projects)',
|
|
121
|
+
tabSwitch: 'Switch tab (5=Projects, 6=Done)',
|
|
88
122
|
prevNextTab: 'Previous/Next tab',
|
|
89
123
|
taskSelect: 'Select task',
|
|
90
124
|
actions: 'Actions',
|
|
@@ -92,6 +126,7 @@ export const en = {
|
|
|
92
126
|
completeTask: 'Complete selected task',
|
|
93
127
|
moveToNext: 'Move to Next Actions',
|
|
94
128
|
moveToSomeday: 'Move to Someday/Maybe',
|
|
129
|
+
moveToWaiting: 'Move to Waiting For',
|
|
95
130
|
moveToInbox: 'Move to Inbox',
|
|
96
131
|
refresh: 'Refresh list',
|
|
97
132
|
projects: 'Projects',
|
|
@@ -99,10 +134,110 @@ export const en = {
|
|
|
99
134
|
linkToProject: 'Link task to project',
|
|
100
135
|
openProject: 'Open project (on Projects tab)',
|
|
101
136
|
backFromProject: 'Back from project detail',
|
|
137
|
+
taskDetail: 'View task details',
|
|
138
|
+
addComment: 'Add comment',
|
|
139
|
+
searchTasks: 'Search tasks',
|
|
140
|
+
other: 'Other',
|
|
141
|
+
showHelp: 'Show this help',
|
|
142
|
+
quit: 'Quit',
|
|
143
|
+
closeHint: 'Esc/q: close',
|
|
144
|
+
},
|
|
145
|
+
// What's New / Changelog
|
|
146
|
+
whatsNew: {
|
|
147
|
+
title: "What's New",
|
|
148
|
+
noChanges: 'No changelog available',
|
|
149
|
+
added: 'Added',
|
|
150
|
+
changed: 'Changed',
|
|
151
|
+
deprecated: 'Deprecated',
|
|
152
|
+
removed: 'Removed',
|
|
153
|
+
fixed: 'Fixed',
|
|
154
|
+
security: 'Security',
|
|
155
|
+
},
|
|
156
|
+
// Kanban mode help
|
|
157
|
+
kanbanHelp: {
|
|
158
|
+
title: 'Kanban Shortcuts',
|
|
159
|
+
navigation: 'Navigation',
|
|
160
|
+
columnSwitch: 'Switch column',
|
|
161
|
+
columnDirect: 'Jump to column directly',
|
|
162
|
+
taskSelect: 'Select task',
|
|
163
|
+
actions: 'Actions',
|
|
164
|
+
addTask: 'Add new task (to TODO)',
|
|
165
|
+
completeTask: 'Move to Done',
|
|
166
|
+
moveRight: 'Move task to next column',
|
|
167
|
+
moveLeft: 'Move task to previous column',
|
|
168
|
+
searchTasks: 'Search tasks',
|
|
102
169
|
other: 'Other',
|
|
103
170
|
showHelp: 'Show this help',
|
|
104
171
|
quit: 'Quit',
|
|
105
|
-
closeHint: '
|
|
172
|
+
closeHint: 'Esc/q: close',
|
|
173
|
+
},
|
|
174
|
+
addComment: 'New comment: ',
|
|
175
|
+
noComments: 'No comments yet',
|
|
176
|
+
commentHint: 'i: add comment',
|
|
177
|
+
linkHint: 'P: link to project',
|
|
178
|
+
commentAdded: 'Comment added',
|
|
179
|
+
commentDeleted: 'Comment deleted',
|
|
180
|
+
taskDetailTitle: 'Task Details',
|
|
181
|
+
taskDetailFooter: 'j/k=select i=comment d=delete P=link b/Esc=back',
|
|
182
|
+
comments: 'Comments',
|
|
183
|
+
projectTasks: 'Tasks',
|
|
184
|
+
// Search
|
|
185
|
+
search: {
|
|
186
|
+
prefix: '/',
|
|
187
|
+
placeholder: 'Search tasks...',
|
|
188
|
+
help: '(Enter to select, Ctrl+j/k to navigate, Esc to cancel)',
|
|
189
|
+
noResults: 'No matching tasks',
|
|
190
|
+
resultsTitle: 'Search Results',
|
|
191
|
+
searchTasks: 'Search tasks',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
// Setup wizard
|
|
195
|
+
setup: {
|
|
196
|
+
welcome: {
|
|
197
|
+
title: 'Welcome to Floq!',
|
|
198
|
+
subtitle: 'Let\'s configure your task manager',
|
|
199
|
+
instruction: 'Press any key to start setup...',
|
|
200
|
+
},
|
|
201
|
+
language: {
|
|
202
|
+
title: 'Select Language',
|
|
203
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
204
|
+
},
|
|
205
|
+
theme: {
|
|
206
|
+
title: 'Select Theme',
|
|
207
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
208
|
+
},
|
|
209
|
+
viewMode: {
|
|
210
|
+
title: 'Select View Mode',
|
|
211
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
212
|
+
gtd: 'GTD (Getting Things Done)',
|
|
213
|
+
gtdDesc: 'Classic GTD workflow with Inbox, Next, Waiting, Someday lists',
|
|
214
|
+
kanban: 'Kanban Board',
|
|
215
|
+
kanbanDesc: '3-column kanban board view',
|
|
216
|
+
},
|
|
217
|
+
database: {
|
|
218
|
+
title: 'Select Database Mode',
|
|
219
|
+
local: 'Local',
|
|
220
|
+
localDesc: 'Store data locally on this device',
|
|
221
|
+
turso: 'Turso Cloud',
|
|
222
|
+
tursoDesc: 'Sync data across devices via Turso',
|
|
223
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
224
|
+
},
|
|
225
|
+
turso: {
|
|
226
|
+
urlPrompt: 'Turso Database URL',
|
|
227
|
+
urlPlaceholder: 'libsql://your-db.turso.io',
|
|
228
|
+
urlError: 'URL must start with libsql://',
|
|
229
|
+
tokenPrompt: 'Turso Auth Token',
|
|
230
|
+
tokenError: 'Token cannot be empty',
|
|
231
|
+
inputHint: 'Enter: confirm, Esc: back',
|
|
232
|
+
},
|
|
233
|
+
complete: {
|
|
234
|
+
title: 'Setup Complete!',
|
|
235
|
+
summary: 'Your settings:',
|
|
236
|
+
language: 'Language',
|
|
237
|
+
theme: 'Theme',
|
|
238
|
+
viewMode: 'View Mode',
|
|
239
|
+
database: 'Database',
|
|
240
|
+
confirm: 'Press Enter to save and start Floq...',
|
|
106
241
|
},
|
|
107
242
|
},
|
|
108
243
|
};
|