floq 0.1.0 → 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 +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 +237 -0
- package/dist/i18n/en.js +127 -3
- package/dist/i18n/ja.js +127 -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 +280 -25
- 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 +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/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,20 @@ 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
|
+
tabHint: string;
|
|
89
111
|
navigation: string;
|
|
90
112
|
tabSwitch: string;
|
|
91
113
|
prevNextTab: string;
|
|
@@ -95,6 +117,7 @@ export declare const en: {
|
|
|
95
117
|
completeTask: string;
|
|
96
118
|
moveToNext: string;
|
|
97
119
|
moveToSomeday: string;
|
|
120
|
+
moveToWaiting: string;
|
|
98
121
|
moveToInbox: string;
|
|
99
122
|
refresh: string;
|
|
100
123
|
projects: string;
|
|
@@ -102,15 +125,114 @@ export declare const en: {
|
|
|
102
125
|
linkToProject: string;
|
|
103
126
|
openProject: string;
|
|
104
127
|
backFromProject: string;
|
|
128
|
+
taskDetail: string;
|
|
129
|
+
addComment: string;
|
|
130
|
+
searchTasks: string;
|
|
131
|
+
other: string;
|
|
132
|
+
showHelp: string;
|
|
133
|
+
quit: string;
|
|
134
|
+
closeHint: string;
|
|
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;
|
|
105
158
|
other: string;
|
|
106
159
|
showHelp: string;
|
|
107
160
|
quit: string;
|
|
108
161
|
closeHint: string;
|
|
109
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
|
+
};
|
|
110
229
|
};
|
|
111
230
|
};
|
|
112
231
|
export type HelpTranslations = {
|
|
113
232
|
title: string;
|
|
233
|
+
whatsNewTab: string;
|
|
234
|
+
keybindingsTab: string;
|
|
235
|
+
tabHint: string;
|
|
114
236
|
navigation: string;
|
|
115
237
|
tabSwitch: string;
|
|
116
238
|
prevNextTab: string;
|
|
@@ -120,6 +242,7 @@ export type HelpTranslations = {
|
|
|
120
242
|
completeTask: string;
|
|
121
243
|
moveToNext: string;
|
|
122
244
|
moveToSomeday: string;
|
|
245
|
+
moveToWaiting: string;
|
|
123
246
|
moveToInbox: string;
|
|
124
247
|
refresh: string;
|
|
125
248
|
projects: string;
|
|
@@ -127,20 +250,67 @@ export type HelpTranslations = {
|
|
|
127
250
|
linkToProject: string;
|
|
128
251
|
openProject: string;
|
|
129
252
|
backFromProject: string;
|
|
253
|
+
taskDetail: string;
|
|
254
|
+
addComment: string;
|
|
255
|
+
searchTasks: string;
|
|
130
256
|
other: string;
|
|
131
257
|
showHelp: string;
|
|
132
258
|
quit: string;
|
|
133
259
|
closeHint: string;
|
|
134
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
|
+
};
|
|
135
293
|
export type KeyBarTranslations = {
|
|
136
294
|
add: string;
|
|
137
295
|
done: string;
|
|
138
296
|
next: string;
|
|
139
297
|
someday: string;
|
|
298
|
+
waiting: string;
|
|
140
299
|
inbox: string;
|
|
141
300
|
project: string;
|
|
142
301
|
help: string;
|
|
143
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;
|
|
144
314
|
};
|
|
145
315
|
export type TuiTranslations = {
|
|
146
316
|
title: string;
|
|
@@ -151,6 +321,8 @@ export type TuiTranslations = {
|
|
|
151
321
|
added: string;
|
|
152
322
|
completed: string;
|
|
153
323
|
movedTo: string;
|
|
324
|
+
movedToWaiting: string;
|
|
325
|
+
waitingFor: string;
|
|
154
326
|
refreshed: string;
|
|
155
327
|
footer: string;
|
|
156
328
|
noTasks: string;
|
|
@@ -159,6 +331,7 @@ export type TuiTranslations = {
|
|
|
159
331
|
tabWaiting: string;
|
|
160
332
|
tabSomeday: string;
|
|
161
333
|
tabProjects: string;
|
|
334
|
+
tabDone: string;
|
|
162
335
|
madeProject: string;
|
|
163
336
|
linkedToProject: string;
|
|
164
337
|
selectProject: string;
|
|
@@ -166,9 +339,71 @@ export type TuiTranslations = {
|
|
|
166
339
|
back: string;
|
|
167
340
|
keyBar: KeyBarTranslations;
|
|
168
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
|
+
};
|
|
169
403
|
};
|
|
170
404
|
export type Translations = {
|
|
171
405
|
status: Record<string, string>;
|
|
406
|
+
kanban: KanbanTranslations;
|
|
172
407
|
projectStatus: Record<string, string>;
|
|
173
408
|
commands: {
|
|
174
409
|
add: Record<string, string>;
|
|
@@ -176,6 +411,8 @@ export type Translations = {
|
|
|
176
411
|
move: Record<string, string>;
|
|
177
412
|
done: Record<string, string>;
|
|
178
413
|
project: Record<string, string>;
|
|
414
|
+
comment: Record<string, string>;
|
|
179
415
|
};
|
|
180
416
|
tui: TuiTranslations;
|
|
417
|
+
setup: SetupTranslations;
|
|
181
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,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,23 @@ 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
|
+
tabHint: 'Tab: switch view',
|
|
97
120
|
navigation: 'Navigation',
|
|
98
|
-
tabSwitch: 'Switch tab (5=Projects)',
|
|
121
|
+
tabSwitch: 'Switch tab (5=Projects, 6=Done)',
|
|
99
122
|
prevNextTab: 'Previous/Next tab',
|
|
100
123
|
taskSelect: 'Select task',
|
|
101
124
|
actions: 'Actions',
|
|
@@ -103,6 +126,7 @@ export const en = {
|
|
|
103
126
|
completeTask: 'Complete selected task',
|
|
104
127
|
moveToNext: 'Move to Next Actions',
|
|
105
128
|
moveToSomeday: 'Move to Someday/Maybe',
|
|
129
|
+
moveToWaiting: 'Move to Waiting For',
|
|
106
130
|
moveToInbox: 'Move to Inbox',
|
|
107
131
|
refresh: 'Refresh list',
|
|
108
132
|
projects: 'Projects',
|
|
@@ -110,10 +134,110 @@ export const en = {
|
|
|
110
134
|
linkToProject: 'Link task to project',
|
|
111
135
|
openProject: 'Open project (on Projects tab)',
|
|
112
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',
|
|
113
169
|
other: 'Other',
|
|
114
170
|
showHelp: 'Show this help',
|
|
115
171
|
quit: 'Quit',
|
|
116
|
-
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...',
|
|
117
241
|
},
|
|
118
242
|
},
|
|
119
243
|
};
|