@jant/core 0.3.25 → 0.3.27

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.
Files changed (133) hide show
  1. package/dist/app.js +70 -563
  2. package/dist/auth.js +3 -0
  3. package/dist/client.js +1 -0
  4. package/dist/i18n/locales/en.js +1 -1
  5. package/dist/i18n/locales/zh-Hans.js +1 -1
  6. package/dist/i18n/locales/zh-Hant.js +1 -1
  7. package/dist/lib/avatar-upload.js +134 -0
  8. package/dist/lib/config.js +39 -0
  9. package/dist/lib/constants.js +10 -10
  10. package/dist/lib/favicon.js +102 -0
  11. package/dist/lib/image.js +13 -17
  12. package/dist/lib/media-helpers.js +2 -2
  13. package/dist/lib/navigation.js +23 -3
  14. package/dist/lib/render.js +10 -1
  15. package/dist/lib/schemas.js +31 -0
  16. package/dist/lib/timezones.js +388 -0
  17. package/dist/lib/view.js +1 -1
  18. package/dist/routes/api/posts.js +1 -1
  19. package/dist/routes/api/upload.js +3 -3
  20. package/dist/routes/auth/reset.js +221 -0
  21. package/dist/routes/auth/setup.js +194 -0
  22. package/dist/routes/auth/signin.js +176 -0
  23. package/dist/routes/dash/collections.js +23 -415
  24. package/dist/routes/dash/media.js +12 -392
  25. package/dist/routes/dash/pages.js +7 -330
  26. package/dist/routes/dash/redirects.js +18 -12
  27. package/dist/routes/dash/settings.js +198 -577
  28. package/dist/routes/feed/rss.js +2 -1
  29. package/dist/routes/feed/sitemap.js +4 -2
  30. package/dist/routes/pages/featured.js +5 -1
  31. package/dist/routes/pages/home.js +26 -1
  32. package/dist/routes/pages/latest.js +45 -0
  33. package/dist/services/post.js +30 -50
  34. package/dist/types/bindings.js +3 -0
  35. package/dist/types/config.js +147 -0
  36. package/dist/types/constants.js +27 -0
  37. package/dist/types/entities.js +3 -0
  38. package/dist/types/operations.js +3 -0
  39. package/dist/types/props.js +3 -0
  40. package/dist/types/views.js +5 -0
  41. package/dist/types.js +8 -111
  42. package/dist/ui/color-themes.js +33 -33
  43. package/dist/ui/compose/ComposeDialog.js +36 -21
  44. package/dist/ui/dash/PageForm.js +21 -15
  45. package/dist/ui/dash/PostForm.js +22 -16
  46. package/dist/ui/dash/collections/CollectionForm.js +152 -0
  47. package/dist/ui/dash/collections/CollectionsListContent.js +68 -0
  48. package/dist/ui/dash/collections/ViewCollectionContent.js +96 -0
  49. package/dist/ui/dash/media/MediaListContent.js +166 -0
  50. package/dist/ui/dash/media/ViewMediaContent.js +212 -0
  51. package/dist/ui/dash/pages/LinkFormContent.js +130 -0
  52. package/dist/ui/dash/pages/UnifiedPagesContent.js +193 -0
  53. package/dist/ui/dash/settings/AccountContent.js +209 -0
  54. package/dist/ui/dash/settings/AppearanceContent.js +259 -0
  55. package/dist/ui/dash/settings/GeneralContent.js +536 -0
  56. package/dist/ui/dash/settings/SettingsNav.js +41 -0
  57. package/dist/ui/font-themes.js +36 -0
  58. package/dist/ui/layouts/BaseLayout.js +24 -2
  59. package/dist/ui/layouts/SiteLayout.js +47 -19
  60. package/package.json +1 -1
  61. package/src/app.tsx +95 -553
  62. package/src/auth.ts +4 -1
  63. package/src/client.ts +1 -0
  64. package/src/i18n/locales/en.po +240 -175
  65. package/src/i18n/locales/en.ts +1 -1
  66. package/src/i18n/locales/zh-Hans.po +240 -175
  67. package/src/i18n/locales/zh-Hans.ts +1 -1
  68. package/src/i18n/locales/zh-Hant.po +240 -175
  69. package/src/i18n/locales/zh-Hant.ts +1 -1
  70. package/src/lib/__tests__/config.test.ts +192 -0
  71. package/src/lib/__tests__/favicon.test.ts +151 -0
  72. package/src/lib/__tests__/image.test.ts +2 -6
  73. package/src/lib/__tests__/timezones.test.ts +61 -0
  74. package/src/lib/__tests__/view.test.ts +2 -2
  75. package/src/lib/avatar-upload.ts +165 -0
  76. package/src/lib/config.ts +47 -0
  77. package/src/lib/constants.ts +19 -11
  78. package/src/lib/favicon.ts +115 -0
  79. package/src/lib/image.ts +13 -21
  80. package/src/lib/media-helpers.ts +2 -2
  81. package/src/lib/navigation.ts +33 -2
  82. package/src/lib/render.tsx +15 -1
  83. package/src/lib/schemas.ts +39 -0
  84. package/src/lib/timezones.ts +325 -0
  85. package/src/lib/view.ts +1 -1
  86. package/src/routes/api/posts.ts +1 -1
  87. package/src/routes/api/upload.ts +2 -3
  88. package/src/routes/auth/reset.tsx +239 -0
  89. package/src/routes/auth/setup.tsx +189 -0
  90. package/src/routes/auth/signin.tsx +163 -0
  91. package/src/routes/dash/__tests__/settings-avatar.test.ts +89 -0
  92. package/src/routes/dash/collections.tsx +17 -366
  93. package/src/routes/dash/media.tsx +12 -414
  94. package/src/routes/dash/pages.tsx +8 -348
  95. package/src/routes/dash/redirects.tsx +20 -14
  96. package/src/routes/dash/settings.tsx +243 -534
  97. package/src/routes/feed/__tests__/rss.test.ts +141 -0
  98. package/src/routes/feed/rss.ts +3 -1
  99. package/src/routes/feed/sitemap.ts +4 -2
  100. package/src/routes/pages/featured.tsx +7 -1
  101. package/src/routes/pages/home.tsx +25 -2
  102. package/src/routes/pages/latest.tsx +59 -0
  103. package/src/services/post.ts +34 -66
  104. package/src/styles/components.css +0 -65
  105. package/src/styles/tokens.css +1 -1
  106. package/src/styles/ui.css +24 -40
  107. package/src/types/bindings.ts +30 -0
  108. package/src/types/config.ts +183 -0
  109. package/src/types/constants.ts +26 -0
  110. package/src/types/entities.ts +109 -0
  111. package/src/types/operations.ts +88 -0
  112. package/src/types/props.ts +115 -0
  113. package/src/types/views.ts +172 -0
  114. package/src/types.ts +8 -644
  115. package/src/ui/__tests__/font-themes.test.ts +34 -0
  116. package/src/ui/color-themes.ts +34 -34
  117. package/src/ui/compose/ComposeDialog.tsx +40 -21
  118. package/src/ui/dash/PageForm.tsx +25 -19
  119. package/src/ui/dash/PostForm.tsx +26 -20
  120. package/src/ui/dash/collections/CollectionForm.tsx +153 -0
  121. package/src/ui/dash/collections/CollectionsListContent.tsx +85 -0
  122. package/src/ui/dash/collections/ViewCollectionContent.tsx +92 -0
  123. package/src/ui/dash/media/MediaListContent.tsx +201 -0
  124. package/src/ui/dash/media/ViewMediaContent.tsx +208 -0
  125. package/src/ui/dash/pages/LinkFormContent.tsx +119 -0
  126. package/src/ui/dash/pages/UnifiedPagesContent.tsx +203 -0
  127. package/src/ui/dash/settings/AccountContent.tsx +176 -0
  128. package/src/ui/dash/settings/AppearanceContent.tsx +254 -0
  129. package/src/ui/dash/settings/GeneralContent.tsx +533 -0
  130. package/src/ui/dash/settings/SettingsNav.tsx +56 -0
  131. package/src/ui/font-themes.ts +54 -0
  132. package/src/ui/layouts/BaseLayout.tsx +17 -0
  133. package/src/ui/layouts/SiteLayout.tsx +45 -31
@@ -19,12 +19,12 @@ msgstr ""
19
19
  #~ msgstr "{count} replies"
20
20
 
21
21
  #. @context: Custom CSS textarea placeholder
22
- #: src/routes/dash/settings.tsx:364
22
+ #: src/ui/dash/settings/AppearanceContent.tsx:218
23
23
  msgid "/* Your custom CSS here */"
24
24
  msgstr "/* Your custom CSS here */"
25
25
 
26
26
  #. @context: Navigation link
27
- #: src/routes/dash/collections.tsx:271
27
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:84
28
28
  msgid "← Back to Collections"
29
29
  msgstr "← Back to Collections"
30
30
 
@@ -50,18 +50,23 @@ msgstr "301 (Permanent)"
50
50
  msgid "302 (Temporary)"
51
51
  msgstr "302 (Temporary)"
52
52
 
53
+ #. @context: Settings form field for site description
54
+ #: src/ui/dash/settings/GeneralContent.tsx:324
55
+ msgid "About this blog"
56
+ msgstr "About this blog"
57
+
53
58
  #. @context: Settings sub-navigation tab
54
- #: src/routes/dash/settings.tsx:63
59
+ #: src/ui/dash/settings/SettingsNav.tsx:31
55
60
  msgid "Account"
56
61
  msgstr "Account"
57
62
 
58
63
  #. @context: Custom CSS settings description
59
- #: src/routes/dash/settings.tsx:354
64
+ #: src/ui/dash/settings/AppearanceContent.tsx:208
60
65
  msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
61
66
  msgstr "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
62
67
 
63
68
  #. @context: Button to add a navigation link
64
- #: src/routes/dash/pages.tsx:50
69
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:28
65
70
  msgid "Add Link"
66
71
  msgstr "Add Link"
67
72
 
@@ -73,7 +78,7 @@ msgid "Add Media"
73
78
  msgstr "Add Media"
74
79
 
75
80
  #. @context: Button to add page to navigation
76
- #: src/routes/dash/pages.tsx:185
81
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:163
77
82
  msgid "Add to nav"
78
83
  msgstr "Add to nav"
79
84
 
@@ -83,12 +88,12 @@ msgid "All"
83
88
  msgstr "All"
84
89
 
85
90
  #. @context: Empty state when all pages are in nav
86
- #: src/routes/dash/pages.tsx:168
91
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:146
87
92
  msgid "All pages are in your navigation."
88
93
  msgstr "All pages are in your navigation."
89
94
 
90
95
  #. @context: Settings sub-navigation tab
91
- #: src/routes/dash/settings.tsx:55
96
+ #: src/ui/dash/settings/SettingsNav.tsx:23
92
97
  msgid "Appearance"
93
98
  msgstr "Appearance"
94
99
 
@@ -122,7 +127,7 @@ msgstr "Are you sure you want to delete this post? This cannot be undone."
122
127
  #~ msgstr "At least 1 image required for image posts."
123
128
 
124
129
  #. @context: Button to go back to media list
125
- #: src/routes/dash/media.tsx:266
130
+ #: src/ui/dash/media/ViewMediaContent.tsx:57
126
131
  msgid "Back"
127
132
  msgstr "Back"
128
133
 
@@ -135,30 +140,40 @@ msgstr "Back"
135
140
  #~ msgid "Back to home"
136
141
  #~ msgstr "Back to home"
137
142
 
143
+ #. @context: Settings section heading for avatar
144
+ #: src/ui/dash/settings/GeneralContent.tsx:160
145
+ msgid "Blog Avatar"
146
+ msgstr "Blog Avatar"
147
+
138
148
  #. @context: Button to cancel and go back
139
149
  #. @context: Button to cancel form
140
150
  #. @context: Button to cancel form
141
151
  #. @context: Button to cancel form
142
152
  #. @context: Button to cancel form
143
- #. @context: Button to cancel form
144
- #: src/routes/dash/collections.tsx:186
145
- #: src/routes/dash/collections.tsx:354
146
- #: src/routes/dash/pages.tsx:400
147
- #: src/routes/dash/redirects.tsx:177
148
- #: src/ui/dash/PageForm.tsx:171
149
- #: src/ui/dash/PostForm.tsx:312
153
+ #. @context: Button to cancel unsaved changes and revert to original values
154
+ #: src/routes/dash/redirects.tsx:183
155
+ #: src/ui/dash/collections/CollectionForm.tsx:144
156
+ #: src/ui/dash/PageForm.tsx:177
157
+ #: src/ui/dash/pages/LinkFormContent.tsx:110
158
+ #: src/ui/dash/PostForm.tsx:318
159
+ #: src/ui/dash/settings/GeneralContent.tsx:86
150
160
  msgid "Cancel"
151
161
  msgstr "Cancel"
152
162
 
153
163
  #. @context: Button to change password
154
164
  #. @context: Settings section heading
155
- #: src/routes/dash/settings.tsx:474
156
- #: src/routes/dash/settings.tsx:539
165
+ #: src/ui/dash/settings/AccountContent.tsx:88
166
+ #: src/ui/dash/settings/AccountContent.tsx:167
157
167
  msgid "Change Password"
158
168
  msgstr "Change Password"
159
169
 
170
+ #. @context: Font theme settings description
171
+ #: src/ui/dash/settings/AppearanceContent.tsx:153
172
+ msgid "Choose a font for your site. All options use system fonts for fast loading."
173
+ msgstr "Choose a font for your site. All options use system fonts for fast loading."
174
+
160
175
  #. @context: Hint to click image for lightbox
161
- #: src/routes/dash/media.tsx:299
176
+ #: src/ui/dash/media/ViewMediaContent.tsx:90
162
177
  msgid "Click image to view full size"
163
178
  msgstr "Click image to view full size"
164
179
 
@@ -177,7 +192,7 @@ msgstr "Collection (optional)"
177
192
  #. @context: Collections page heading
178
193
  #. @context: Dashboard heading
179
194
  #. @context: Dashboard navigation - collections management
180
- #: src/routes/dash/collections.tsx:35
195
+ #: src/ui/dash/collections/CollectionsListContent.tsx:24
181
196
  #: src/ui/layouts/DashLayout.tsx:114
182
197
  #: src/ui/pages/CollectionsPage.tsx:18
183
198
  msgid "Collections"
@@ -189,22 +204,22 @@ msgstr "Collections"
189
204
  #~ msgstr "Collections (optional)"
190
205
 
191
206
  #. @context: Appearance settings heading
192
- #: src/routes/dash/settings.tsx:315
207
+ #: src/ui/dash/settings/AppearanceContent.tsx:112
193
208
  msgid "Color theme"
194
209
  msgstr "Color theme"
195
210
 
196
211
  #. @context: Setup form submit button
197
- #: src/app.tsx:289
212
+ #: src/routes/auth/setup.tsx:108
198
213
  msgid "Complete Setup"
199
214
  msgstr "Complete Setup"
200
215
 
201
216
  #. @context: Password form field
202
- #: src/routes/dash/settings.tsx:516
217
+ #: src/ui/dash/settings/AccountContent.tsx:130
203
218
  msgid "Confirm New Password"
204
219
  msgstr "Confirm New Password"
205
220
 
206
221
  #. @context: Password reset form field
207
- #: src/app.tsx:562
222
+ #: src/routes/auth/reset.tsx:70
208
223
  msgid "Confirm Password"
209
224
  msgstr "Confirm Password"
210
225
 
@@ -217,33 +232,33 @@ msgstr "Content"
217
232
 
218
233
  #. @context: Button to copy Markdown to clipboard
219
234
  #. @context: Button to copy URL to clipboard
220
- #: src/routes/dash/media.tsx:337
221
- #: src/routes/dash/media.tsx:374
235
+ #: src/ui/dash/media/ViewMediaContent.tsx:128
236
+ #: src/ui/dash/media/ViewMediaContent.tsx:165
222
237
  msgid "Copy"
223
238
  msgstr "Copy"
224
239
 
225
240
  #. @context: Button to save new collection
226
- #: src/routes/dash/collections.tsx:172
241
+ #: src/ui/dash/collections/CollectionForm.tsx:36
227
242
  msgid "Create Collection"
228
243
  msgstr "Create Collection"
229
244
 
230
245
  #. @context: Button to save new navigation link
231
- #: src/routes/dash/pages.tsx:386
246
+ #: src/ui/dash/pages/LinkFormContent.tsx:104
232
247
  msgid "Create Link"
233
248
  msgstr "Create Link"
234
249
 
235
250
  #. @context: Button to create new page
236
- #: src/ui/dash/PageForm.tsx:157
251
+ #: src/ui/dash/PageForm.tsx:171
237
252
  msgid "Create Page"
238
253
  msgstr "Create Page"
239
254
 
240
255
  #. @context: Button to save new redirect
241
- #: src/routes/dash/redirects.tsx:163
256
+ #: src/routes/dash/redirects.tsx:177
242
257
  msgid "Create Redirect"
243
258
  msgstr "Create Redirect"
244
259
 
245
260
  #. @context: Setup page description
246
- #: src/app.tsx:229
261
+ #: src/routes/auth/setup.tsx:33
247
262
  msgid "Create your admin account."
248
263
  msgstr "Create your admin account."
249
264
 
@@ -258,12 +273,12 @@ msgid "Create your first post"
258
273
  msgstr "Create your first post"
259
274
 
260
275
  #. @context: Password form field
261
- #: src/routes/dash/settings.tsx:483
276
+ #: src/ui/dash/settings/AccountContent.tsx:97
262
277
  msgid "Current Password"
263
278
  msgstr "Current Password"
264
279
 
265
280
  #. @context: Appearance settings heading for custom CSS
266
- #: src/routes/dash/settings.tsx:348
281
+ #: src/ui/dash/settings/AppearanceContent.tsx:202
267
282
  msgid "Custom CSS"
268
283
  msgstr "Custom CSS"
269
284
 
@@ -294,56 +309,64 @@ msgstr "Danger Zone"
294
309
  msgid "Dashboard"
295
310
  msgstr "Dashboard"
296
311
 
312
+ #. @context: Settings form field
313
+ #: src/ui/dash/settings/GeneralContent.tsx:374
314
+ msgid "Default Homepage View"
315
+ msgstr "Default Homepage View"
316
+
297
317
  #. @context: Button to delete item
298
318
  #. @context: Button to delete link
299
319
  #. @context: Button to delete redirect
300
- #: src/routes/dash/pages.tsx:120
301
320
  #: src/routes/dash/redirects.tsx:60
302
321
  #: src/ui/dash/ActionButtons.tsx:80
322
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:98
303
323
  msgid "Delete"
304
324
  msgstr "Delete"
305
325
 
306
326
  #. @context: Button to delete collection
307
327
  #: src/routes/dash/collections.tsx:363
308
- msgid "Delete Collection"
309
- msgstr "Delete Collection"
328
+ #~ msgid "Delete Collection"
329
+ #~ msgstr "Delete Collection"
310
330
 
311
331
  #. @context: Button to delete media
312
- #: src/routes/dash/media.tsx:385
332
+ #: src/ui/dash/media/ViewMediaContent.tsx:176
313
333
  msgid "Delete Media"
314
334
  msgstr "Delete Media"
315
335
 
316
336
  #. @context: Button to delete page
317
- #: src/routes/dash/pages.tsx:278
337
+ #: src/routes/dash/pages.tsx:77
318
338
  msgid "Delete Page"
319
339
  msgstr "Delete Page"
320
340
 
321
341
  #. @context: Warning message before deleting media
322
- #: src/routes/dash/media.tsx:391
342
+ #: src/ui/dash/media/ViewMediaContent.tsx:182
323
343
  msgid "Deleting this media will remove it permanently from storage."
324
344
  msgstr "Deleting this media will remove it permanently from storage."
325
345
 
326
346
  #. @context: Hint shown on signin page when demo credentials are pre-filled
327
- #: src/app.tsx:400
347
+ #: src/routes/auth/signin.tsx:40
328
348
  msgid "Demo account pre-filled. Just click Sign In."
329
349
  msgstr "Demo account pre-filled. Just click Sign In."
330
350
 
331
351
  #. @context: Collection form field
332
- #. @context: Collection form field
333
- #: src/routes/dash/collections.tsx:153
334
- #: src/routes/dash/collections.tsx:327
352
+ #: src/ui/dash/collections/CollectionForm.tsx:102
335
353
  msgid "Description (optional)"
336
354
  msgstr "Description (optional)"
337
355
 
356
+ #. @context: Checkbox to show avatar in the site header
357
+ #: src/ui/dash/settings/GeneralContent.tsx:274
358
+ msgid "Display avatar in my site header"
359
+ msgstr "Display avatar in my site header"
360
+
338
361
  #. @context: Navigation label help text
339
- #: src/routes/dash/pages.tsx:348
362
+ #: src/ui/dash/pages/LinkFormContent.tsx:52
340
363
  msgid "Display text for the link"
341
364
  msgstr "Display text for the link"
342
365
 
343
366
  #. @context: Close media picker button
344
367
  #. @context: Close media picker button
345
- #: src/ui/compose/ComposeDialog.tsx:375
346
- #: src/ui/dash/PostForm.tsx:334
368
+ #: src/ui/compose/ComposeDialog.tsx:394
369
+ #: src/ui/dash/PostForm.tsx:340
347
370
  msgid "Done"
348
371
  msgstr "Done"
349
372
 
@@ -351,7 +374,7 @@ msgstr "Done"
351
374
  #. @context: Page status option - draft
352
375
  #. @context: Post status badge - draft
353
376
  #. @context: Post status option
354
- #: src/ui/compose/ComposeDialog.tsx:326
377
+ #: src/ui/compose/ComposeDialog.tsx:340
355
378
  #: src/ui/dash/PageForm.tsx:133
356
379
  #: src/ui/dash/PostForm.tsx:234
357
380
  #: src/ui/dash/StatusBadge.tsx:34
@@ -377,30 +400,30 @@ msgstr "Drafts"
377
400
  #. @context: Button to edit page
378
401
  #. @context: Button to edit post
379
402
  #. @context: Button to edit post
380
- #: src/routes/dash/collections.tsx:66
381
- #: src/routes/dash/collections.tsx:220
382
- #: src/routes/dash/pages.tsx:94
383
- #: src/routes/dash/pages.tsx:115
384
- #: src/routes/dash/pages.tsx:192
385
- #: src/routes/dash/pages.tsx:256
403
+ #: src/routes/dash/pages.tsx:55
386
404
  #: src/routes/dash/posts.tsx:140
387
405
  #: src/ui/dash/ActionButtons.tsx:72
406
+ #: src/ui/dash/collections/CollectionsListContent.tsx:55
407
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:33
408
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:72
409
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:93
410
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:170
388
411
  #: src/ui/dash/PostList.tsx:50
389
412
  msgid "Edit"
390
413
  msgstr "Edit"
391
414
 
392
415
  #. @context: Page heading
393
- #: src/routes/dash/collections.tsx:293
416
+ #: src/ui/dash/collections/CollectionForm.tsx:28
394
417
  msgid "Edit Collection"
395
418
  msgstr "Edit Collection"
396
419
 
397
420
  #. @context: Page heading
398
- #: src/routes/dash/pages.tsx:313
421
+ #: src/ui/dash/pages/LinkFormContent.tsx:17
399
422
  msgid "Edit Link"
400
423
  msgstr "Edit Link"
401
424
 
402
425
  #. @context: Edit page main heading
403
- #: src/routes/dash/pages.tsx:294
426
+ #: src/routes/dash/pages.tsx:93
404
427
  msgid "Edit Page"
405
428
  msgstr "Edit Page"
406
429
 
@@ -420,29 +443,36 @@ msgstr "Edit Post"
420
443
 
421
444
  #. @context: Setup/signin form field - email
422
445
  #. @context: Setup/signin form field - email
423
- #: src/app.tsx:259
424
- #: src/app.tsx:415
446
+ #: src/routes/auth/setup.tsx:64
447
+ #: src/routes/auth/signin.tsx:55
425
448
  msgid "Email"
426
449
  msgstr "Email"
427
450
 
428
451
  #. @context: Password reset page description
429
- #: src/app.tsx:531
452
+ #: src/routes/auth/reset.tsx:39
430
453
  msgid "Enter your new password."
431
454
  msgstr "Enter your new password."
432
455
 
433
456
  #. @context: Archive filter - featured posts
434
457
  #. @context: Browse filter for featured posts
435
458
  #. @context: Compose checkbox - mark as featured
459
+ #. @context: Homepage view option - show featured posts
436
460
  #. @context: Post badge - featured
437
461
  #. @context: Post form checkbox - mark as featured
438
462
  #: src/ui/compose/ComposeDialog.tsx:305
439
463
  #: src/ui/dash/PostForm.tsx:246
464
+ #: src/ui/dash/settings/GeneralContent.tsx:398
440
465
  #: src/ui/dash/StatusBadge.tsx:45
441
- #: src/ui/layouts/SiteLayout.tsx:49
466
+ #: src/ui/layouts/SiteLayout.tsx:55
442
467
  #: src/ui/pages/ArchivePage.tsx:92
443
468
  msgid "Featured"
444
469
  msgstr "Featured"
445
470
 
471
+ #. @context: Appearance settings heading for font theme
472
+ #: src/ui/dash/settings/AppearanceContent.tsx:147
473
+ msgid "Font theme"
474
+ msgstr "Font theme"
475
+
446
476
  #. @context: Post form field - post format
447
477
  #: src/ui/dash/PostForm.tsx:64
448
478
  msgid "Format"
@@ -465,8 +495,8 @@ msgstr "From Path"
465
495
 
466
496
  #. @context: Settings section heading
467
497
  #. @context: Settings sub-navigation tab
468
- #: src/routes/dash/settings.tsx:47
469
- #: src/routes/dash/settings.tsx:131
498
+ #: src/ui/dash/settings/GeneralContent.tsx:299
499
+ #: src/ui/dash/settings/SettingsNav.tsx:15
470
500
  msgid "General"
471
501
  msgstr "General"
472
502
 
@@ -485,27 +515,34 @@ msgstr "General"
485
515
  #~ msgstr "Images"
486
516
 
487
517
  #. @context: Media upload instructions - auto optimization
488
- #: src/routes/dash/media.tsx:171
518
+ #: src/ui/dash/media/MediaListContent.tsx:147
489
519
  msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
490
520
  msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
491
521
 
492
522
  #. @context: Password reset error heading
493
- #: src/app.tsx:606
523
+ #: src/routes/auth/reset.tsx:120
494
524
  msgid "Invalid or Expired Link"
495
525
  msgstr "Invalid or Expired Link"
496
526
 
527
+ #. @context: Checkbox for allowing search engine indexing
528
+ #: src/ui/dash/settings/GeneralContent.tsx:515
529
+ msgid "It's OK for search engines to index my site"
530
+ msgstr "It's OK for search engines to index my site"
531
+
497
532
  #. @context: Navigation link form field
498
- #: src/routes/dash/pages.tsx:335
533
+ #: src/ui/dash/pages/LinkFormContent.tsx:39
499
534
  msgid "Label"
500
535
  msgstr "Label"
501
536
 
502
537
  #. @context: Settings form field
503
- #: src/routes/dash/settings.tsx:172
538
+ #: src/ui/dash/settings/GeneralContent.tsx:350
504
539
  msgid "Language"
505
540
  msgstr "Language"
506
541
 
507
542
  #. @context: Browse filter for latest posts
508
- #: src/ui/layouts/SiteLayout.tsx:42
543
+ #. @context: Homepage view option - show latest posts
544
+ #: src/ui/dash/settings/GeneralContent.tsx:388
545
+ #: src/ui/layouts/SiteLayout.tsx:48
509
546
  msgid "Latest"
510
547
  msgstr "Latest"
511
548
 
@@ -515,7 +552,7 @@ msgstr "Latest"
515
552
  #~ msgstr "Let's set up your site."
516
553
 
517
554
  #. @context: Nav item type badge
518
- #: src/routes/dash/pages.tsx:145
555
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:123
519
556
  msgid "link"
520
557
  msgstr "link"
521
558
 
@@ -542,8 +579,8 @@ msgstr "Load more"
542
579
 
543
580
  #. @context: Loading state for media picker
544
581
  #. @context: Loading state for media picker
545
- #: src/ui/compose/ComposeDialog.tsx:386
546
- #: src/ui/dash/PostForm.tsx:345
582
+ #: src/ui/compose/ComposeDialog.tsx:405
583
+ #: src/ui/dash/PostForm.tsx:351
547
584
  msgid "Loading..."
548
585
  msgstr "Loading..."
549
586
 
@@ -553,14 +590,19 @@ msgid "Lowercase letters, numbers, and hyphens only"
553
590
  msgstr "Lowercase letters, numbers, and hyphens only"
554
591
 
555
592
  #. @context: Media detail section - Markdown snippet
556
- #: src/routes/dash/media.tsx:355
593
+ #: src/ui/dash/media/ViewMediaContent.tsx:146
557
594
  msgid "Markdown"
558
595
  msgstr "Markdown"
559
596
 
597
+ #. @context: Placeholder for footer textarea
598
+ #: src/ui/dash/settings/GeneralContent.tsx:466
599
+ msgid "Markdown supported"
600
+ msgstr "Markdown supported"
601
+
560
602
  #. @context: Dashboard navigation - media library
561
603
  #. @context: Media main heading
562
604
  #. @context: Post form field - media attachments
563
- #: src/routes/dash/media.tsx:151
605
+ #: src/ui/dash/media/MediaListContent.tsx:127
564
606
  #: src/ui/dash/PostForm.tsx:158
565
607
  #: src/ui/layouts/DashLayout.tsx:105
566
608
  msgid "Media"
@@ -572,12 +614,12 @@ msgstr "Media"
572
614
  #~ msgstr "My Blog"
573
615
 
574
616
  #. @context: Collection title placeholder
575
- #: src/routes/dash/collections.tsx:124
617
+ #: src/ui/dash/collections/CollectionForm.tsx:70
576
618
  msgid "My Collection"
577
619
  msgstr "My Collection"
578
620
 
579
621
  #. @context: Account settings form field
580
- #: src/routes/dash/settings.tsx:430
622
+ #: src/ui/dash/settings/AccountContent.tsx:38
581
623
  msgid "Name"
582
624
  msgstr "Name"
583
625
 
@@ -596,28 +638,28 @@ msgstr "Need help? Visit the <0>documentation</0>"
596
638
  #. @context: Button to create new collection
597
639
  #. @context: Button to create new collection
598
640
  #. @context: Page heading
599
- #: src/routes/dash/collections.tsx:39
600
- #: src/routes/dash/collections.tsx:52
601
- #: src/routes/dash/collections.tsx:103
641
+ #: src/ui/dash/collections/CollectionForm.tsx:29
642
+ #: src/ui/dash/collections/CollectionsListContent.tsx:28
643
+ #: src/ui/dash/collections/CollectionsListContent.tsx:41
602
644
  msgid "New Collection"
603
645
  msgstr "New Collection"
604
646
 
605
647
  #. @context: Page heading
606
- #: src/routes/dash/pages.tsx:314
648
+ #: src/ui/dash/pages/LinkFormContent.tsx:18
607
649
  msgid "New Link"
608
650
  msgstr "New Link"
609
651
 
610
652
  #. @context: Button to create new page
611
653
  #. @context: New page main heading
612
- #: src/routes/dash/pages.tsx:56
613
- #: src/routes/dash/pages.tsx:232
654
+ #: src/routes/dash/pages.tsx:31
655
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:34
614
656
  msgid "New Page"
615
657
  msgstr "New Page"
616
658
 
617
659
  #. @context: Password form field
618
660
  #. @context: Password reset form field
619
- #: src/app.tsx:546
620
- #: src/routes/dash/settings.tsx:499
661
+ #: src/routes/auth/reset.tsx:54
662
+ #: src/ui/dash/settings/AccountContent.tsx:113
621
663
  msgid "New Password"
622
664
  msgstr "New Password"
623
665
 
@@ -650,7 +692,7 @@ msgstr "Next"
650
692
 
651
693
  #. @context: Empty state message
652
694
  #. @context: Empty state message on collections page
653
- #: src/routes/dash/collections.tsx:48
695
+ #: src/ui/dash/collections/CollectionsListContent.tsx:37
654
696
  #: src/ui/pages/CollectionsPage.tsx:28
655
697
  msgid "No collections yet."
656
698
  msgstr "No collections yet."
@@ -661,7 +703,7 @@ msgid "No featured posts yet."
661
703
  msgstr "No featured posts yet."
662
704
 
663
705
  #. @context: Empty state message when no media exists
664
- #: src/routes/dash/media.tsx:186
706
+ #: src/ui/dash/media/MediaListContent.tsx:162
665
707
  msgid "No media uploaded yet."
666
708
  msgstr "No media uploaded yet."
667
709
 
@@ -671,7 +713,7 @@ msgstr "No media uploaded yet."
671
713
  #~ msgstr "No navigation links configured."
672
714
 
673
715
  #. @context: Empty state for navigation section
674
- #: src/routes/dash/pages.tsx:74
716
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:52
675
717
  msgid "No navigation links yet. Add pages to navigation or create links."
676
718
  msgstr "No navigation links yet. Add pages to navigation or create links."
677
719
 
@@ -687,7 +729,7 @@ msgstr "No posts found."
687
729
 
688
730
  #. @context: Empty state message
689
731
  #. @context: Empty state message
690
- #: src/routes/dash/collections.tsx:243
732
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:56
691
733
  #: src/ui/pages/CollectionPage.tsx:29
692
734
  msgid "No posts in this collection."
693
735
  msgstr "No posts in this collection."
@@ -735,17 +777,17 @@ msgid "Notes"
735
777
  msgstr "Notes"
736
778
 
737
779
  #. @context: Section heading for pages not in navigation
738
- #: src/routes/dash/pages.tsx:161
780
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:139
739
781
  msgid "Other pages"
740
782
  msgstr "Other pages"
741
783
 
742
784
  #. @context: Nav item type badge
743
- #: src/routes/dash/pages.tsx:141
785
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:119
744
786
  msgid "page"
745
787
  msgstr "page"
746
788
 
747
789
  #. @context: Default page heading when untitled
748
- #: src/routes/dash/pages.tsx:247
790
+ #: src/routes/dash/pages.tsx:46
749
791
  msgid "Page"
750
792
  msgstr "Page"
751
793
 
@@ -766,15 +808,15 @@ msgstr "Page title..."
766
808
 
767
809
  #. @context: Dashboard navigation - pages management
768
810
  #. @context: Pages main heading
769
- #: src/routes/dash/pages.tsx:43
811
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:21
770
812
  #: src/ui/layouts/DashLayout.tsx:96
771
813
  msgid "Pages"
772
814
  msgstr "Pages"
773
815
 
774
816
  #. @context: Setup/signin form field - password
775
817
  #. @context: Setup/signin form field - password
776
- #: src/app.tsx:274
777
- #: src/app.tsx:424
818
+ #: src/routes/auth/setup.tsx:79
819
+ #: src/routes/auth/signin.tsx:64
778
820
  msgid "Password"
779
821
  msgstr "Password"
780
822
 
@@ -784,7 +826,7 @@ msgstr "Password"
784
826
  #~ msgstr "Path"
785
827
 
786
828
  #. @context: Navigation URL help text
787
- #: src/routes/dash/pages.tsx:370
829
+ #: src/ui/dash/pages/LinkFormContent.tsx:74
788
830
  msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
789
831
  msgstr "Path (e.g. /archive) or full URL (e.g. https://example.com)"
790
832
 
@@ -813,7 +855,7 @@ msgstr "post"
813
855
  #. @context: Compose prompt post button
814
856
  #. @context: Default post title
815
857
  #: src/routes/dash/posts.tsx:128
816
- #: src/ui/compose/ComposeDialog.tsx:339
858
+ #: src/ui/compose/ComposeDialog.tsx:365
817
859
  #: src/ui/compose/ComposePrompt.tsx:48
818
860
  msgid "Post"
819
861
  msgstr "Post"
@@ -825,8 +867,8 @@ msgstr "Post title..."
825
867
 
826
868
  #. @context: Compose loading text while posting
827
869
  #: src/ui/compose/ComposeDialog.tsx:345
828
- msgid "Posting..."
829
- msgstr "Posting..."
870
+ #~ msgid "Posting..."
871
+ #~ msgstr "Posting..."
830
872
 
831
873
  #. @context: Plural post count label
832
874
  #: src/ui/pages/CollectionsPage.tsx:60
@@ -841,12 +883,12 @@ msgid "Posts"
841
883
  msgstr "Posts"
842
884
 
843
885
  #. @context: Collection posts section heading
844
- #: src/routes/dash/collections.tsx:205
886
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:18
845
887
  msgid "Posts in Collection ({count})"
846
888
  msgstr "Posts in Collection ({count})"
847
889
 
848
890
  #. @context: Media detail section - preview
849
- #: src/routes/dash/media.tsx:278
891
+ #: src/ui/dash/media/ViewMediaContent.tsx:69
850
892
  msgid "Preview"
851
893
  msgstr "Preview"
852
894
 
@@ -857,44 +899,20 @@ msgstr "Preview"
857
899
  msgid "Previous"
858
900
  msgstr "Previous"
859
901
 
860
- #. @context: Loading text shown on submit button while request is in progress
861
- #. @context: Loading text shown on submit button while request is in progress
862
- #. @context: Loading text shown on submit button while request is in progress
863
- #. @context: Loading text shown on submit button while request is in progress
864
- #. @context: Loading text shown on submit button while request is in progress
865
- #. @context: Loading text shown on submit button while request is in progress
866
- #. @context: Loading text shown on submit button while request is in progress
867
- #. @context: Loading text shown on submit button while request is in progress
868
- #. @context: Loading text shown on submit button while request is in progress
869
- #. @context: Loading text shown on submit button while request is in progress
870
- #. @context: Loading text shown on submit button while request is in progress
871
- #. @context: Loading text shown on submit button while request is in progress
872
- #. @context: Loading text shown on submit button while request is in progress
902
+ #. @context: Avatar upload button text while generating favicon variants
873
903
  #. @context: Upload status - processing
874
- #: src/app.tsx:295
875
- #: src/app.tsx:444
876
- #: src/app.tsx:584
877
- #: src/routes/dash/collections.tsx:178
878
- #: src/routes/dash/collections.tsx:346
879
- #: src/routes/dash/media.tsx:119
880
- #: src/routes/dash/pages.tsx:392
881
- #: src/routes/dash/redirects.tsx:169
882
- #: src/routes/dash/settings.tsx:200
883
- #: src/routes/dash/settings.tsx:384
884
- #: src/routes/dash/settings.tsx:457
885
- #: src/routes/dash/settings.tsx:545
886
- #: src/ui/dash/PageForm.tsx:163
887
- #: src/ui/dash/PostForm.tsx:304
904
+ #: src/ui/dash/media/MediaListContent.tsx:95
905
+ #: src/ui/dash/settings/GeneralContent.tsx:215
888
906
  msgid "Processing..."
889
907
  msgstr "Processing..."
890
908
 
891
909
  #. @context: Account settings section heading
892
- #: src/routes/dash/settings.tsx:421
910
+ #: src/ui/dash/settings/AccountContent.tsx:29
893
911
  msgid "Profile"
894
912
  msgstr "Profile"
895
913
 
896
914
  #. @context: Button to publish new post
897
- #: src/ui/dash/PostForm.tsx:298
915
+ #: src/ui/dash/PostForm.tsx:312
898
916
  msgid "Publish"
899
917
  msgstr "Publish"
900
918
 
@@ -969,42 +987,49 @@ msgstr "Rating"
969
987
  msgid "Redirects"
970
988
  msgstr "Redirects"
971
989
 
990
+ #. @context: Button to remove the blog avatar
972
991
  #. @context: Remove media attachment button
973
992
  #: src/ui/dash/PostForm.tsx:194
993
+ #: src/ui/dash/settings/GeneralContent.tsx:243
974
994
  msgid "Remove"
975
995
  msgstr "Remove"
976
996
 
977
997
  #. @context: Password reset form submit button
978
998
  #. @context: Password reset page heading
979
- #: src/app.tsx:525
980
- #: src/app.tsx:578
999
+ #: src/routes/auth/reset.tsx:33
1000
+ #: src/routes/auth/reset.tsx:100
981
1001
  msgid "Reset Password"
982
1002
  msgstr "Reset Password"
983
1003
 
1004
+ #. @context: Button to save settings
1005
+ #: src/ui/dash/settings/GeneralContent.tsx:74
1006
+ msgid "Save"
1007
+ msgstr "Save"
1008
+
984
1009
  #. @context: Button to save edited navigation link
985
- #: src/routes/dash/pages.tsx:382
1010
+ #: src/ui/dash/pages/LinkFormContent.tsx:100
986
1011
  msgid "Save Changes"
987
1012
  msgstr "Save Changes"
988
1013
 
989
1014
  #. @context: Button to save custom CSS
990
- #: src/routes/dash/settings.tsx:378
1015
+ #: src/ui/dash/settings/AppearanceContent.tsx:246
991
1016
  msgid "Save CSS"
992
1017
  msgstr "Save CSS"
993
1018
 
994
1019
  #. @context: Button to save profile
995
- #: src/routes/dash/settings.tsx:451
1020
+ #: src/ui/dash/settings/AccountContent.tsx:73
996
1021
  msgid "Save Profile"
997
1022
  msgstr "Save Profile"
998
1023
 
999
1024
  #. @context: Button to save settings
1000
- #: src/routes/dash/settings.tsx:194
1001
- msgid "Save Settings"
1002
- msgstr "Save Settings"
1025
+ #: src/ui/dash/settings/GeneralContent.tsx:142
1026
+ #~ msgid "Save Settings"
1027
+ #~ msgstr "Save Settings"
1003
1028
 
1004
1029
  #. @context: Search icon link in browse nav
1005
1030
  #. @context: Search page title
1006
1031
  #. @context: Search submit button
1007
- #: src/ui/layouts/SiteLayout.tsx:70
1032
+ #: src/ui/layouts/SiteLayout.tsx:67
1008
1033
  #: src/ui/pages/SearchPage.tsx:20
1009
1034
  #: src/ui/pages/SearchPage.tsx:44
1010
1035
  msgid "Search"
@@ -1022,18 +1047,23 @@ msgstr "Search posts..."
1022
1047
 
1023
1048
  #. @context: Media picker dialog title
1024
1049
  #. @context: Media picker dialog title
1025
- #: src/ui/compose/ComposeDialog.tsx:365
1026
- #: src/ui/dash/PostForm.tsx:324
1050
+ #: src/ui/compose/ComposeDialog.tsx:384
1051
+ #: src/ui/dash/PostForm.tsx:330
1027
1052
  msgid "Select Media"
1028
1053
  msgstr "Select Media"
1029
1054
 
1055
+ #. @context: Settings section heading for SEO
1056
+ #: src/ui/dash/settings/GeneralContent.tsx:498
1057
+ msgid "SEO"
1058
+ msgstr "SEO"
1059
+
1030
1060
  #. @context: Dashboard heading
1031
1061
  #. @context: Dashboard heading
1032
1062
  #. @context: Dashboard heading
1033
1063
  #. @context: Dashboard navigation - site settings
1034
- #: src/routes/dash/settings.tsx:118
1035
- #: src/routes/dash/settings.tsx:304
1036
- #: src/routes/dash/settings.tsx:408
1064
+ #: src/ui/dash/settings/AccountContent.tsx:16
1065
+ #: src/ui/dash/settings/AppearanceContent.tsx:101
1066
+ #: src/ui/dash/settings/GeneralContent.tsx:151
1037
1067
  #: src/ui/layouts/DashLayout.tsx:133
1038
1068
  msgid "Settings"
1039
1069
  msgstr "Settings"
@@ -1051,8 +1081,8 @@ msgstr "Show {remainingCount} more {0}"
1051
1081
 
1052
1082
  #. @context: Sign in form submit button
1053
1083
  #. @context: Sign in page heading
1054
- #: src/app.tsx:391
1055
- #: src/app.tsx:438
1084
+ #: src/routes/auth/signin.tsx:31
1085
+ #: src/routes/auth/signin.tsx:92
1056
1086
  msgid "Sign In"
1057
1087
  msgstr "Sign In"
1058
1088
 
@@ -1062,20 +1092,23 @@ msgid "Sign Out"
1062
1092
  msgstr "Sign Out"
1063
1093
 
1064
1094
  #. @context: Settings form field
1065
- #: src/routes/dash/settings.tsx:155
1066
- msgid "Site Description"
1067
- msgstr "Site Description"
1095
+ #: src/ui/dash/settings/GeneralContent.tsx:72
1096
+ #~ msgid "Site Description"
1097
+ #~ msgstr "Site Description"
1098
+
1099
+ #. @context: Settings section heading for site footer
1100
+ #: src/ui/dash/settings/GeneralContent.tsx:454
1101
+ msgid "Site Footer"
1102
+ msgstr "Site Footer"
1068
1103
 
1069
1104
  #. @context: Settings form field
1070
- #: src/routes/dash/settings.tsx:140
1105
+ #: src/ui/dash/settings/GeneralContent.tsx:308
1071
1106
  msgid "Site Name"
1072
1107
  msgstr "Site Name"
1073
1108
 
1074
- #. @context: Collection form field
1075
1109
  #. @context: Collection form field
1076
1110
  #. @context: Page form field label - URL slug
1077
- #: src/routes/dash/collections.tsx:133
1078
- #: src/routes/dash/collections.tsx:314
1111
+ #: src/ui/dash/collections/CollectionForm.tsx:80
1079
1112
  #: src/ui/dash/PageForm.tsx:64
1080
1113
  msgid "Slug"
1081
1114
  msgstr "Slug"
@@ -1124,13 +1157,33 @@ msgstr "The text being quoted..."
1124
1157
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1125
1158
  msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
1126
1159
 
1160
+ #. @context: Help text for site description field
1161
+ #: src/ui/dash/settings/GeneralContent.tsx:340
1162
+ msgid "This is displayed above your blog posts on your default home page. This is also used for the meta description on your home page."
1163
+ msgstr "This is displayed above your blog posts on your default home page. This is also used for the meta description on your home page."
1164
+
1165
+ #. @context: Help text for site footer field
1166
+ #: src/ui/dash/settings/GeneralContent.tsx:474
1167
+ msgid "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
1168
+ msgstr "This is displayed at the bottom of all of your posts and pages. Markdown is supported."
1169
+
1170
+ #. @context: Help text for avatar upload
1171
+ #: src/ui/dash/settings/GeneralContent.tsx:253
1172
+ msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
1173
+ msgstr "This is used for your favicon and apple-touch-icon. For best results, upload a square image at least 180x180 pixels."
1174
+
1175
+ #. @context: Help text for avatar upload
1176
+ #: src/ui/dash/settings/GeneralContent.tsx:238
1177
+ #~ msgid "This is used for your favicon."
1178
+ #~ msgstr "This is used for your favicon."
1179
+
1127
1180
  #. @context: Password reset error description
1128
- #: src/app.tsx:614
1181
+ #: src/routes/auth/reset.tsx:128
1129
1182
  msgid "This password reset link is invalid or has expired. Please generate a new one."
1130
1183
  msgstr "This password reset link is invalid or has expired. Please generate a new one."
1131
1184
 
1132
1185
  #. @context: Appearance settings description
1133
- #: src/routes/dash/settings.tsx:321
1186
+ #: src/ui/dash/settings/AppearanceContent.tsx:118
1134
1187
  msgid "This will theme both your site and your dashboard. All color themes support dark mode."
1135
1188
  msgstr "This will theme both your site and your dashboard. All color themes support dark mode."
1136
1189
 
@@ -1149,11 +1202,14 @@ msgstr "Thread with {count} posts"
1149
1202
  msgid "Thread with 1 post"
1150
1203
  msgstr "Thread with 1 post"
1151
1204
 
1152
- #. @context: Collection form field
1205
+ #. @context: Settings form field
1206
+ #: src/ui/dash/settings/GeneralContent.tsx:409
1207
+ msgid "Time Zone"
1208
+ msgstr "Time Zone"
1209
+
1153
1210
  #. @context: Collection form field
1154
1211
  #. @context: Page form field label - title
1155
- #: src/routes/dash/collections.tsx:114
1156
- #: src/routes/dash/collections.tsx:304
1212
+ #: src/ui/dash/collections/CollectionForm.tsx:57
1157
1213
  #: src/ui/dash/PageForm.tsx:44
1158
1214
  msgid "Title"
1159
1215
  msgstr "Title"
@@ -1176,7 +1232,7 @@ msgid "Type"
1176
1232
  msgstr "Type"
1177
1233
 
1178
1234
  #. @context: Button to remove page from navigation
1179
- #: src/routes/dash/pages.tsx:104
1235
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:82
1180
1236
  msgid "Un-nav"
1181
1237
  msgstr "Un-nav"
1182
1238
 
@@ -1189,33 +1245,40 @@ msgstr "Un-nav"
1189
1245
 
1190
1246
  #. @context: Default title for untitled page
1191
1247
  #. @context: Default title for untitled post
1192
- #: src/routes/dash/pages.tsx:212
1248
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:190
1193
1249
  #: src/ui/dash/PostList.tsx:86
1194
1250
  msgid "Untitled"
1195
1251
  msgstr "Untitled"
1196
1252
 
1197
1253
  #. @context: Button to update existing post
1198
- #: src/ui/dash/PostForm.tsx:294
1254
+ #: src/ui/dash/PostForm.tsx:308
1199
1255
  msgid "Update"
1200
1256
  msgstr "Update"
1201
1257
 
1202
1258
  #. @context: Button to save collection changes
1203
- #: src/routes/dash/collections.tsx:340
1259
+ #: src/ui/dash/collections/CollectionForm.tsx:32
1204
1260
  msgid "Update Collection"
1205
1261
  msgstr "Update Collection"
1206
1262
 
1207
1263
  #. @context: Button to update existing page
1208
- #: src/ui/dash/PageForm.tsx:153
1264
+ #: src/ui/dash/PageForm.tsx:167
1209
1265
  msgid "Update Page"
1210
1266
  msgstr "Update Page"
1211
1267
 
1212
1268
  #. @context: Button to upload media file
1213
- #: src/routes/dash/media.tsx:127
1269
+ #: src/ui/dash/media/MediaListContent.tsx:103
1214
1270
  msgid "Upload"
1215
1271
  msgstr "Upload"
1216
1272
 
1273
+ #. @context: Button to upload avatar image
1274
+ #: src/ui/dash/settings/GeneralContent.tsx:205
1275
+ msgid "Upload Avatar"
1276
+ msgstr "Upload Avatar"
1277
+
1278
+ #. @context: Error message when avatar upload fails
1217
1279
  #. @context: Upload error message
1218
- #: src/routes/dash/media.tsx:131
1280
+ #: src/ui/dash/media/MediaListContent.tsx:107
1281
+ #: src/ui/dash/settings/GeneralContent.tsx:225
1219
1282
  msgid "Upload failed. Please try again."
1220
1283
  msgstr "Upload failed. Please try again."
1221
1284
 
@@ -1224,15 +1287,17 @@ msgstr "Upload failed. Please try again."
1224
1287
  #~ msgid "Upload images via the API: POST /api/upload with a file form field."
1225
1288
  #~ msgstr "Upload images via the API: POST /api/upload with a file form field."
1226
1289
 
1290
+ #. @context: Avatar upload button text while uploading
1227
1291
  #. @context: Upload status - uploading
1228
- #: src/routes/dash/media.tsx:123
1292
+ #: src/ui/dash/media/MediaListContent.tsx:99
1293
+ #: src/ui/dash/settings/GeneralContent.tsx:220
1229
1294
  msgid "Uploading..."
1230
1295
  msgstr "Uploading..."
1231
1296
 
1232
1297
  #. @context: Media detail section - URL
1233
1298
  #. @context: Navigation link form field
1234
- #: src/routes/dash/media.tsx:318
1235
- #: src/routes/dash/pages.tsx:357
1299
+ #: src/ui/dash/media/ViewMediaContent.tsx:109
1300
+ #: src/ui/dash/pages/LinkFormContent.tsx:61
1236
1301
  msgid "URL"
1237
1302
  msgstr "URL"
1238
1303
 
@@ -1242,12 +1307,12 @@ msgid "URL (optional)"
1242
1307
  msgstr "URL (optional)"
1243
1308
 
1244
1309
  #. @context: Collection path help text
1245
- #: src/routes/dash/collections.tsx:144
1310
+ #: src/ui/dash/collections/CollectionForm.tsx:92
1246
1311
  msgid "URL-safe identifier (lowercase, numbers, hyphens)"
1247
1312
  msgstr "URL-safe identifier (lowercase, numbers, hyphens)"
1248
1313
 
1249
1314
  #. @context: Media URL helper text
1250
- #: src/routes/dash/media.tsx:344
1315
+ #: src/ui/dash/media/ViewMediaContent.tsx:135
1251
1316
  msgid "Use this URL to embed the media in your posts."
1252
1317
  msgstr "Use this URL to embed the media in your posts."
1253
1318
 
@@ -1258,12 +1323,12 @@ msgstr "Use this URL to embed the media in your posts."
1258
1323
  #. @context: Button to view page on public site
1259
1324
  #. @context: Button to view post
1260
1325
  #. @context: Button to view post on public site
1261
- #: src/routes/dash/collections.tsx:71
1262
- #: src/routes/dash/collections.tsx:225
1263
- #: src/routes/dash/pages.tsx:199
1264
- #: src/routes/dash/pages.tsx:261
1326
+ #: src/routes/dash/pages.tsx:60
1265
1327
  #: src/routes/dash/posts.tsx:145
1266
1328
  #: src/ui/dash/ActionButtons.tsx:76
1329
+ #: src/ui/dash/collections/CollectionsListContent.tsx:60
1330
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:38
1331
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:177
1267
1332
  #: src/ui/dash/PostList.tsx:55
1268
1333
  msgid "View"
1269
1334
  msgstr "View"
@@ -1284,7 +1349,7 @@ msgstr "View Site"
1284
1349
  #~ msgstr "Visibility"
1285
1350
 
1286
1351
  #. @context: Setup page welcome heading
1287
- #: src/app.tsx:223
1352
+ #: src/routes/auth/setup.tsx:27
1288
1353
  msgid "Welcome to Jant"
1289
1354
  msgstr "Welcome to Jant"
1290
1355
 
@@ -1301,16 +1366,16 @@ msgid "What's on your mind?"
1301
1366
  msgstr "What's on your mind?"
1302
1367
 
1303
1368
  #. @context: Collection description placeholder
1304
- #: src/routes/dash/collections.tsx:162
1369
+ #: src/ui/dash/collections/CollectionForm.tsx:114
1305
1370
  msgid "What's this collection about?"
1306
1371
  msgstr "What's this collection about?"
1307
1372
 
1308
1373
  #. @context: Setup form field - user name
1309
- #: src/app.tsx:244
1374
+ #: src/routes/auth/setup.tsx:49
1310
1375
  msgid "Your Name"
1311
1376
  msgstr "Your Name"
1312
1377
 
1313
1378
  #. @context: Section heading for navigation items
1314
- #: src/routes/dash/pages.tsx:67
1379
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:45
1315
1380
  msgid "Your site navigation"
1316
1381
  msgstr "Your site navigation"