floq 0.1.0 → 0.2.1
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 +89 -9
- package/README.md +89 -9
- package/dist/changelog.d.ts +13 -0
- package/dist/changelog.js +95 -0
- package/dist/cli.js +44 -1
- package/dist/commands/comment.d.ts +2 -0
- package/dist/commands/comment.js +67 -0
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.js +123 -1
- package/dist/commands/setup.d.ts +1 -0
- package/dist/commands/setup.js +13 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +40 -3
- package/dist/db/index.js +20 -0
- package/dist/db/schema.d.ts +83 -0
- package/dist/db/schema.js +6 -0
- package/dist/i18n/en.d.ts +278 -0
- package/dist/i18n/en.js +148 -3
- package/dist/i18n/ja.js +148 -3
- package/dist/index.js +14 -4
- package/dist/paths.d.ts +4 -0
- package/dist/paths.js +63 -5
- package/dist/ui/App.js +320 -37
- 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/components/HelpModal.d.ts +2 -1
- package/dist/ui/components/HelpModal.js +155 -4
- package/dist/ui/components/KanbanBoard.d.ts +6 -0
- package/dist/ui/components/KanbanBoard.js +498 -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/package.json +1 -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,6 +83,7 @@ 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;
|
|
@@ -79,13 +94,21 @@ export declare const en: {
|
|
|
79
94
|
done: string;
|
|
80
95
|
next: string;
|
|
81
96
|
someday: string;
|
|
97
|
+
waiting: string;
|
|
82
98
|
inbox: string;
|
|
83
99
|
project: string;
|
|
84
100
|
help: string;
|
|
85
101
|
quit: string;
|
|
102
|
+
comment: string;
|
|
103
|
+
back: string;
|
|
104
|
+
delete: string;
|
|
86
105
|
};
|
|
87
106
|
help: {
|
|
88
107
|
title: string;
|
|
108
|
+
whatsNewTab: string;
|
|
109
|
+
keybindingsTab: string;
|
|
110
|
+
infoTab: string;
|
|
111
|
+
tabHint: string;
|
|
89
112
|
navigation: string;
|
|
90
113
|
tabSwitch: string;
|
|
91
114
|
prevNextTab: string;
|
|
@@ -95,6 +118,7 @@ export declare const en: {
|
|
|
95
118
|
completeTask: string;
|
|
96
119
|
moveToNext: string;
|
|
97
120
|
moveToSomeday: string;
|
|
121
|
+
moveToWaiting: string;
|
|
98
122
|
moveToInbox: string;
|
|
99
123
|
refresh: string;
|
|
100
124
|
projects: string;
|
|
@@ -102,15 +126,134 @@ export declare const en: {
|
|
|
102
126
|
linkToProject: string;
|
|
103
127
|
openProject: string;
|
|
104
128
|
backFromProject: string;
|
|
129
|
+
taskDetail: string;
|
|
130
|
+
addComment: string;
|
|
131
|
+
searchTasks: string;
|
|
132
|
+
other: string;
|
|
133
|
+
showHelp: string;
|
|
134
|
+
quit: string;
|
|
135
|
+
closeHint: string;
|
|
136
|
+
};
|
|
137
|
+
whatsNew: {
|
|
138
|
+
title: string;
|
|
139
|
+
noChanges: string;
|
|
140
|
+
added: string;
|
|
141
|
+
changed: string;
|
|
142
|
+
deprecated: string;
|
|
143
|
+
removed: string;
|
|
144
|
+
fixed: string;
|
|
145
|
+
security: string;
|
|
146
|
+
};
|
|
147
|
+
kanbanHelp: {
|
|
148
|
+
title: string;
|
|
149
|
+
navigation: string;
|
|
150
|
+
columnSwitch: string;
|
|
151
|
+
columnDirect: string;
|
|
152
|
+
taskSelect: string;
|
|
153
|
+
actions: string;
|
|
154
|
+
addTask: string;
|
|
155
|
+
completeTask: string;
|
|
156
|
+
moveRight: string;
|
|
157
|
+
moveLeft: string;
|
|
158
|
+
searchTasks: string;
|
|
105
159
|
other: string;
|
|
106
160
|
showHelp: string;
|
|
107
161
|
quit: string;
|
|
108
162
|
closeHint: string;
|
|
109
163
|
};
|
|
164
|
+
addComment: string;
|
|
165
|
+
noComments: string;
|
|
166
|
+
commentHint: string;
|
|
167
|
+
linkHint: string;
|
|
168
|
+
commentAdded: string;
|
|
169
|
+
commentDeleted: string;
|
|
170
|
+
taskDetailTitle: string;
|
|
171
|
+
taskDetailFooter: string;
|
|
172
|
+
taskDetailStatus: string;
|
|
173
|
+
deleteConfirm: string;
|
|
174
|
+
deleted: string;
|
|
175
|
+
deleteCancelled: string;
|
|
176
|
+
comments: string;
|
|
177
|
+
projectTasks: string;
|
|
178
|
+
search: {
|
|
179
|
+
prefix: string;
|
|
180
|
+
placeholder: string;
|
|
181
|
+
help: string;
|
|
182
|
+
noResults: string;
|
|
183
|
+
resultsTitle: string;
|
|
184
|
+
searchTasks: string;
|
|
185
|
+
};
|
|
186
|
+
info: {
|
|
187
|
+
settings: string;
|
|
188
|
+
database: string;
|
|
189
|
+
paths: string;
|
|
190
|
+
theme: string;
|
|
191
|
+
language: string;
|
|
192
|
+
viewMode: string;
|
|
193
|
+
dbType: string;
|
|
194
|
+
dbPath: string;
|
|
195
|
+
tursoUrl: string;
|
|
196
|
+
configFile: string;
|
|
197
|
+
dataDir: string;
|
|
198
|
+
local: string;
|
|
199
|
+
turso: string;
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
setup: {
|
|
203
|
+
welcome: {
|
|
204
|
+
title: string;
|
|
205
|
+
subtitle: string;
|
|
206
|
+
instruction: string;
|
|
207
|
+
};
|
|
208
|
+
language: {
|
|
209
|
+
title: string;
|
|
210
|
+
hint: string;
|
|
211
|
+
};
|
|
212
|
+
theme: {
|
|
213
|
+
title: string;
|
|
214
|
+
hint: string;
|
|
215
|
+
};
|
|
216
|
+
viewMode: {
|
|
217
|
+
title: string;
|
|
218
|
+
hint: string;
|
|
219
|
+
gtd: string;
|
|
220
|
+
gtdDesc: string;
|
|
221
|
+
kanban: string;
|
|
222
|
+
kanbanDesc: string;
|
|
223
|
+
};
|
|
224
|
+
database: {
|
|
225
|
+
title: string;
|
|
226
|
+
local: string;
|
|
227
|
+
localDesc: string;
|
|
228
|
+
turso: string;
|
|
229
|
+
tursoDesc: string;
|
|
230
|
+
hint: string;
|
|
231
|
+
};
|
|
232
|
+
turso: {
|
|
233
|
+
urlPrompt: string;
|
|
234
|
+
urlPlaceholder: string;
|
|
235
|
+
urlError: string;
|
|
236
|
+
tokenPrompt: string;
|
|
237
|
+
tokenError: string;
|
|
238
|
+
inputHint: string;
|
|
239
|
+
};
|
|
240
|
+
complete: {
|
|
241
|
+
title: string;
|
|
242
|
+
summary: string;
|
|
243
|
+
language: string;
|
|
244
|
+
theme: string;
|
|
245
|
+
viewMode: string;
|
|
246
|
+
database: string;
|
|
247
|
+
confirm: string;
|
|
248
|
+
};
|
|
110
249
|
};
|
|
111
250
|
};
|
|
112
251
|
export type HelpTranslations = {
|
|
113
252
|
title: string;
|
|
253
|
+
whatsNewTab: string;
|
|
254
|
+
keybindingsTab: string;
|
|
255
|
+
infoTab: string;
|
|
256
|
+
tabHint: string;
|
|
114
257
|
navigation: string;
|
|
115
258
|
tabSwitch: string;
|
|
116
259
|
prevNextTab: string;
|
|
@@ -120,6 +263,7 @@ export type HelpTranslations = {
|
|
|
120
263
|
completeTask: string;
|
|
121
264
|
moveToNext: string;
|
|
122
265
|
moveToSomeday: string;
|
|
266
|
+
moveToWaiting: string;
|
|
123
267
|
moveToInbox: string;
|
|
124
268
|
refresh: string;
|
|
125
269
|
projects: string;
|
|
@@ -127,20 +271,82 @@ export type HelpTranslations = {
|
|
|
127
271
|
linkToProject: string;
|
|
128
272
|
openProject: string;
|
|
129
273
|
backFromProject: string;
|
|
274
|
+
taskDetail: string;
|
|
275
|
+
addComment: string;
|
|
276
|
+
searchTasks: string;
|
|
130
277
|
other: string;
|
|
131
278
|
showHelp: string;
|
|
132
279
|
quit: string;
|
|
133
280
|
closeHint: string;
|
|
134
281
|
};
|
|
282
|
+
export type WhatsNewTranslations = {
|
|
283
|
+
title: string;
|
|
284
|
+
noChanges: string;
|
|
285
|
+
added: string;
|
|
286
|
+
changed: string;
|
|
287
|
+
deprecated: string;
|
|
288
|
+
removed: string;
|
|
289
|
+
fixed: string;
|
|
290
|
+
security: string;
|
|
291
|
+
};
|
|
292
|
+
export type KanbanHelpTranslations = {
|
|
293
|
+
title: string;
|
|
294
|
+
navigation: string;
|
|
295
|
+
columnSwitch: string;
|
|
296
|
+
columnDirect: string;
|
|
297
|
+
taskSelect: string;
|
|
298
|
+
actions: string;
|
|
299
|
+
addTask: string;
|
|
300
|
+
completeTask: string;
|
|
301
|
+
moveRight: string;
|
|
302
|
+
moveLeft: string;
|
|
303
|
+
searchTasks: string;
|
|
304
|
+
other: string;
|
|
305
|
+
showHelp: string;
|
|
306
|
+
quit: string;
|
|
307
|
+
closeHint: string;
|
|
308
|
+
};
|
|
309
|
+
export type KanbanTranslations = {
|
|
310
|
+
todo: string;
|
|
311
|
+
doing: string;
|
|
312
|
+
done: string;
|
|
313
|
+
};
|
|
135
314
|
export type KeyBarTranslations = {
|
|
136
315
|
add: string;
|
|
137
316
|
done: string;
|
|
138
317
|
next: string;
|
|
139
318
|
someday: string;
|
|
319
|
+
waiting: string;
|
|
140
320
|
inbox: string;
|
|
141
321
|
project: string;
|
|
142
322
|
help: string;
|
|
143
323
|
quit: string;
|
|
324
|
+
comment: string;
|
|
325
|
+
back: string;
|
|
326
|
+
delete: string;
|
|
327
|
+
};
|
|
328
|
+
export type SearchTranslations = {
|
|
329
|
+
prefix: string;
|
|
330
|
+
placeholder: string;
|
|
331
|
+
help: string;
|
|
332
|
+
noResults: string;
|
|
333
|
+
resultsTitle: string;
|
|
334
|
+
searchTasks: string;
|
|
335
|
+
};
|
|
336
|
+
export type InfoTranslations = {
|
|
337
|
+
settings: string;
|
|
338
|
+
database: string;
|
|
339
|
+
paths: string;
|
|
340
|
+
theme: string;
|
|
341
|
+
language: string;
|
|
342
|
+
viewMode: string;
|
|
343
|
+
dbType: string;
|
|
344
|
+
dbPath: string;
|
|
345
|
+
tursoUrl: string;
|
|
346
|
+
configFile: string;
|
|
347
|
+
dataDir: string;
|
|
348
|
+
local: string;
|
|
349
|
+
turso: string;
|
|
144
350
|
};
|
|
145
351
|
export type TuiTranslations = {
|
|
146
352
|
title: string;
|
|
@@ -151,6 +357,8 @@ export type TuiTranslations = {
|
|
|
151
357
|
added: string;
|
|
152
358
|
completed: string;
|
|
153
359
|
movedTo: string;
|
|
360
|
+
movedToWaiting: string;
|
|
361
|
+
waitingFor: string;
|
|
154
362
|
refreshed: string;
|
|
155
363
|
footer: string;
|
|
156
364
|
noTasks: string;
|
|
@@ -159,6 +367,7 @@ export type TuiTranslations = {
|
|
|
159
367
|
tabWaiting: string;
|
|
160
368
|
tabSomeday: string;
|
|
161
369
|
tabProjects: string;
|
|
370
|
+
tabDone: string;
|
|
162
371
|
madeProject: string;
|
|
163
372
|
linkedToProject: string;
|
|
164
373
|
selectProject: string;
|
|
@@ -166,9 +375,76 @@ export type TuiTranslations = {
|
|
|
166
375
|
back: string;
|
|
167
376
|
keyBar: KeyBarTranslations;
|
|
168
377
|
help: HelpTranslations;
|
|
378
|
+
whatsNew: WhatsNewTranslations;
|
|
379
|
+
kanbanHelp: KanbanHelpTranslations;
|
|
380
|
+
search: SearchTranslations;
|
|
381
|
+
info: InfoTranslations;
|
|
382
|
+
addComment: string;
|
|
383
|
+
noComments: string;
|
|
384
|
+
commentHint: string;
|
|
385
|
+
linkHint: string;
|
|
386
|
+
commentAdded: string;
|
|
387
|
+
commentDeleted: string;
|
|
388
|
+
taskDetailTitle: string;
|
|
389
|
+
taskDetailFooter: string;
|
|
390
|
+
taskDetailStatus: string;
|
|
391
|
+
deleteConfirm: string;
|
|
392
|
+
deleted: string;
|
|
393
|
+
deleteCancelled: string;
|
|
394
|
+
comments: string;
|
|
395
|
+
projectTasks: string;
|
|
396
|
+
};
|
|
397
|
+
export type SetupTranslations = {
|
|
398
|
+
welcome: {
|
|
399
|
+
title: string;
|
|
400
|
+
subtitle: string;
|
|
401
|
+
instruction: string;
|
|
402
|
+
};
|
|
403
|
+
language: {
|
|
404
|
+
title: string;
|
|
405
|
+
hint: string;
|
|
406
|
+
};
|
|
407
|
+
theme: {
|
|
408
|
+
title: string;
|
|
409
|
+
hint: string;
|
|
410
|
+
};
|
|
411
|
+
viewMode: {
|
|
412
|
+
title: string;
|
|
413
|
+
hint: string;
|
|
414
|
+
gtd: string;
|
|
415
|
+
gtdDesc: string;
|
|
416
|
+
kanban: string;
|
|
417
|
+
kanbanDesc: string;
|
|
418
|
+
};
|
|
419
|
+
database: {
|
|
420
|
+
title: string;
|
|
421
|
+
local: string;
|
|
422
|
+
localDesc: string;
|
|
423
|
+
turso: string;
|
|
424
|
+
tursoDesc: string;
|
|
425
|
+
hint: string;
|
|
426
|
+
};
|
|
427
|
+
turso: {
|
|
428
|
+
urlPrompt: string;
|
|
429
|
+
urlPlaceholder: string;
|
|
430
|
+
urlError: string;
|
|
431
|
+
tokenPrompt: string;
|
|
432
|
+
tokenError: string;
|
|
433
|
+
inputHint: string;
|
|
434
|
+
};
|
|
435
|
+
complete: {
|
|
436
|
+
title: string;
|
|
437
|
+
summary: string;
|
|
438
|
+
language: string;
|
|
439
|
+
theme: string;
|
|
440
|
+
viewMode: string;
|
|
441
|
+
database: string;
|
|
442
|
+
confirm: string;
|
|
443
|
+
};
|
|
169
444
|
};
|
|
170
445
|
export type Translations = {
|
|
171
446
|
status: Record<string, string>;
|
|
447
|
+
kanban: KanbanTranslations;
|
|
172
448
|
projectStatus: Record<string, string>;
|
|
173
449
|
commands: {
|
|
174
450
|
add: Record<string, string>;
|
|
@@ -176,6 +452,8 @@ export type Translations = {
|
|
|
176
452
|
move: Record<string, string>;
|
|
177
453
|
done: Record<string, string>;
|
|
178
454
|
project: Record<string, string>;
|
|
455
|
+
comment: Record<string, string>;
|
|
179
456
|
};
|
|
180
457
|
tui: TuiTranslations;
|
|
458
|
+
setup: SetupTranslations;
|
|
181
459
|
};
|
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 D=delete 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,6 +89,7 @@ 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}',
|
|
@@ -86,16 +102,24 @@ export const en = {
|
|
|
86
102
|
done: 'Done',
|
|
87
103
|
next: 'Next',
|
|
88
104
|
someday: 'Someday',
|
|
105
|
+
waiting: 'Waiting',
|
|
89
106
|
inbox: 'Inbox',
|
|
90
107
|
project: 'Project',
|
|
91
108
|
help: 'Help',
|
|
92
109
|
quit: 'Quit',
|
|
110
|
+
comment: 'Comment',
|
|
111
|
+
back: 'Back',
|
|
112
|
+
delete: 'Delete',
|
|
93
113
|
},
|
|
94
114
|
// Help modal
|
|
95
115
|
help: {
|
|
96
116
|
title: 'Keyboard Shortcuts',
|
|
117
|
+
whatsNewTab: "What's New",
|
|
118
|
+
keybindingsTab: 'Keybindings',
|
|
119
|
+
infoTab: 'Info',
|
|
120
|
+
tabHint: 'Tab: switch view',
|
|
97
121
|
navigation: 'Navigation',
|
|
98
|
-
tabSwitch: 'Switch tab (5=Projects)',
|
|
122
|
+
tabSwitch: 'Switch tab (5=Projects, 6=Done)',
|
|
99
123
|
prevNextTab: 'Previous/Next tab',
|
|
100
124
|
taskSelect: 'Select task',
|
|
101
125
|
actions: 'Actions',
|
|
@@ -103,6 +127,7 @@ export const en = {
|
|
|
103
127
|
completeTask: 'Complete selected task',
|
|
104
128
|
moveToNext: 'Move to Next Actions',
|
|
105
129
|
moveToSomeday: 'Move to Someday/Maybe',
|
|
130
|
+
moveToWaiting: 'Move to Waiting For',
|
|
106
131
|
moveToInbox: 'Move to Inbox',
|
|
107
132
|
refresh: 'Refresh list',
|
|
108
133
|
projects: 'Projects',
|
|
@@ -110,10 +135,130 @@ export const en = {
|
|
|
110
135
|
linkToProject: 'Link task to project',
|
|
111
136
|
openProject: 'Open project (on Projects tab)',
|
|
112
137
|
backFromProject: 'Back from project detail',
|
|
138
|
+
taskDetail: 'View task details',
|
|
139
|
+
addComment: 'Add comment',
|
|
140
|
+
searchTasks: 'Search tasks',
|
|
113
141
|
other: 'Other',
|
|
114
142
|
showHelp: 'Show this help',
|
|
115
143
|
quit: 'Quit',
|
|
116
|
-
closeHint: '
|
|
144
|
+
closeHint: 'Esc/q: close',
|
|
145
|
+
},
|
|
146
|
+
// What's New / Changelog
|
|
147
|
+
whatsNew: {
|
|
148
|
+
title: "What's New",
|
|
149
|
+
noChanges: 'No changelog available',
|
|
150
|
+
added: 'Added',
|
|
151
|
+
changed: 'Changed',
|
|
152
|
+
deprecated: 'Deprecated',
|
|
153
|
+
removed: 'Removed',
|
|
154
|
+
fixed: 'Fixed',
|
|
155
|
+
security: 'Security',
|
|
156
|
+
},
|
|
157
|
+
// Kanban mode help
|
|
158
|
+
kanbanHelp: {
|
|
159
|
+
title: 'Kanban Shortcuts',
|
|
160
|
+
navigation: 'Navigation',
|
|
161
|
+
columnSwitch: 'Switch column',
|
|
162
|
+
columnDirect: 'Jump to column directly',
|
|
163
|
+
taskSelect: 'Select task',
|
|
164
|
+
actions: 'Actions',
|
|
165
|
+
addTask: 'Add new task (to TODO)',
|
|
166
|
+
completeTask: 'Move to Done',
|
|
167
|
+
moveRight: 'Move task to next column',
|
|
168
|
+
moveLeft: 'Move task to previous column',
|
|
169
|
+
searchTasks: 'Search tasks',
|
|
170
|
+
other: 'Other',
|
|
171
|
+
showHelp: 'Show this help',
|
|
172
|
+
quit: 'Quit',
|
|
173
|
+
closeHint: 'Esc/q: close',
|
|
174
|
+
},
|
|
175
|
+
addComment: 'New comment: ',
|
|
176
|
+
noComments: 'No comments yet',
|
|
177
|
+
commentHint: 'i: add comment',
|
|
178
|
+
linkHint: 'P: link to project',
|
|
179
|
+
commentAdded: 'Comment added',
|
|
180
|
+
commentDeleted: 'Comment deleted',
|
|
181
|
+
taskDetailTitle: 'Task Details',
|
|
182
|
+
taskDetailFooter: 'j/k=select i=comment d=delete P=link b/Esc=back',
|
|
183
|
+
taskDetailStatus: 'Status',
|
|
184
|
+
deleteConfirm: 'Delete "{title}"? (y/n)',
|
|
185
|
+
deleted: 'Deleted: "{title}"',
|
|
186
|
+
deleteCancelled: 'Delete cancelled',
|
|
187
|
+
comments: 'Comments',
|
|
188
|
+
projectTasks: 'Tasks',
|
|
189
|
+
// Search
|
|
190
|
+
search: {
|
|
191
|
+
prefix: '/',
|
|
192
|
+
placeholder: 'Search tasks...',
|
|
193
|
+
help: '(Enter to select, Ctrl+j/k to navigate, Esc to cancel)',
|
|
194
|
+
noResults: 'No matching tasks',
|
|
195
|
+
resultsTitle: 'Search Results',
|
|
196
|
+
searchTasks: 'Search tasks',
|
|
197
|
+
},
|
|
198
|
+
// Info tab
|
|
199
|
+
info: {
|
|
200
|
+
settings: 'Settings',
|
|
201
|
+
database: 'Database',
|
|
202
|
+
paths: 'Paths',
|
|
203
|
+
theme: 'Theme',
|
|
204
|
+
language: 'Language',
|
|
205
|
+
viewMode: 'View Mode',
|
|
206
|
+
dbType: 'Type',
|
|
207
|
+
dbPath: 'Path',
|
|
208
|
+
tursoUrl: 'Turso URL',
|
|
209
|
+
configFile: 'Config File',
|
|
210
|
+
dataDir: 'Data Directory',
|
|
211
|
+
local: 'local',
|
|
212
|
+
turso: 'turso',
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
// Setup wizard
|
|
216
|
+
setup: {
|
|
217
|
+
welcome: {
|
|
218
|
+
title: 'Welcome to Floq!',
|
|
219
|
+
subtitle: 'Let\'s configure your task manager',
|
|
220
|
+
instruction: 'Press any key to start setup...',
|
|
221
|
+
},
|
|
222
|
+
language: {
|
|
223
|
+
title: 'Select Language',
|
|
224
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
225
|
+
},
|
|
226
|
+
theme: {
|
|
227
|
+
title: 'Select Theme',
|
|
228
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
229
|
+
},
|
|
230
|
+
viewMode: {
|
|
231
|
+
title: 'Select View Mode',
|
|
232
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
233
|
+
gtd: 'GTD (Getting Things Done)',
|
|
234
|
+
gtdDesc: 'Classic GTD workflow with Inbox, Next, Waiting, Someday lists',
|
|
235
|
+
kanban: 'Kanban Board',
|
|
236
|
+
kanbanDesc: '3-column kanban board view',
|
|
237
|
+
},
|
|
238
|
+
database: {
|
|
239
|
+
title: 'Select Database Mode',
|
|
240
|
+
local: 'Local',
|
|
241
|
+
localDesc: 'Store data locally on this device',
|
|
242
|
+
turso: 'Turso Cloud',
|
|
243
|
+
tursoDesc: 'Sync data across devices via Turso',
|
|
244
|
+
hint: 'j/k: select, Enter: confirm, Esc: back',
|
|
245
|
+
},
|
|
246
|
+
turso: {
|
|
247
|
+
urlPrompt: 'Turso Database URL',
|
|
248
|
+
urlPlaceholder: 'libsql://your-db.turso.io',
|
|
249
|
+
urlError: 'URL must start with libsql://',
|
|
250
|
+
tokenPrompt: 'Turso Auth Token',
|
|
251
|
+
tokenError: 'Token cannot be empty',
|
|
252
|
+
inputHint: 'Enter: confirm, Esc: back',
|
|
253
|
+
},
|
|
254
|
+
complete: {
|
|
255
|
+
title: 'Setup Complete!',
|
|
256
|
+
summary: 'Your settings:',
|
|
257
|
+
language: 'Language',
|
|
258
|
+
theme: 'Theme',
|
|
259
|
+
viewMode: 'View Mode',
|
|
260
|
+
database: 'Database',
|
|
261
|
+
confirm: 'Press Enter to save and start Floq...',
|
|
117
262
|
},
|
|
118
263
|
},
|
|
119
264
|
};
|