@jant/core 0.3.22 → 0.3.24

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 (178) hide show
  1. package/dist/app.js +23 -5
  2. package/dist/db/schema.js +72 -47
  3. package/dist/i18n/locales/en.js +1 -1
  4. package/dist/i18n/locales/zh-Hans.js +1 -1
  5. package/dist/i18n/locales/zh-Hant.js +1 -1
  6. package/dist/index.js +5 -6
  7. package/dist/lib/constants.js +1 -4
  8. package/dist/lib/excerpt.js +76 -0
  9. package/dist/lib/feed.js +18 -7
  10. package/dist/lib/navigation.js +4 -5
  11. package/dist/lib/render.js +1 -1
  12. package/dist/lib/schemas.js +80 -38
  13. package/dist/lib/theme-components.js +8 -11
  14. package/dist/lib/time.js +56 -1
  15. package/dist/lib/timeline.js +119 -0
  16. package/dist/lib/view.js +62 -73
  17. package/dist/routes/api/posts.js +29 -35
  18. package/dist/routes/api/search.js +5 -6
  19. package/dist/routes/api/upload.js +13 -13
  20. package/dist/routes/dash/collections.js +22 -40
  21. package/dist/routes/dash/index.js +2 -2
  22. package/dist/routes/dash/navigation.js +25 -24
  23. package/dist/routes/dash/pages.js +42 -57
  24. package/dist/routes/dash/posts.js +27 -35
  25. package/dist/routes/feed/rss.js +2 -4
  26. package/dist/routes/feed/sitemap.js +10 -7
  27. package/dist/routes/pages/archive.js +12 -11
  28. package/dist/routes/pages/collection.js +11 -5
  29. package/dist/routes/pages/home.js +53 -61
  30. package/dist/routes/pages/page.js +60 -29
  31. package/dist/routes/pages/post.js +5 -12
  32. package/dist/routes/pages/search.js +3 -4
  33. package/dist/services/collection.js +52 -64
  34. package/dist/services/index.js +5 -3
  35. package/dist/services/navigation.js +29 -53
  36. package/dist/services/page.js +80 -0
  37. package/dist/services/post.js +68 -69
  38. package/dist/services/search.js +24 -18
  39. package/dist/theme/components/MediaGallery.js +19 -91
  40. package/dist/theme/components/PageForm.js +15 -15
  41. package/dist/theme/components/PostForm.js +136 -129
  42. package/dist/theme/components/PostList.js +13 -8
  43. package/dist/theme/components/ThreadView.js +3 -3
  44. package/dist/theme/components/TypeBadge.js +3 -14
  45. package/dist/theme/components/VisibilityBadge.js +33 -23
  46. package/dist/theme/components/index.js +0 -2
  47. package/dist/theme/index.js +10 -16
  48. package/dist/theme/layouts/index.js +0 -1
  49. package/dist/themes/threads/ThreadsSiteLayout.js +172 -0
  50. package/dist/themes/threads/index.js +81 -0
  51. package/dist/{theme → themes/threads}/pages/ArchivePage.js +31 -47
  52. package/dist/themes/threads/pages/CollectionPage.js +65 -0
  53. package/dist/{theme → themes/threads}/pages/HomePage.js +4 -5
  54. package/dist/{theme → themes/threads}/pages/PostPage.js +10 -8
  55. package/dist/{theme → themes/threads}/pages/SearchPage.js +8 -8
  56. package/dist/{theme → themes/threads}/pages/SinglePage.js +5 -6
  57. package/dist/{theme/components → themes/threads}/timeline/LinkCard.js +20 -11
  58. package/dist/themes/threads/timeline/NoteCard.js +53 -0
  59. package/dist/themes/threads/timeline/QuoteCard.js +59 -0
  60. package/dist/{theme/components → themes/threads}/timeline/ThreadPreview.js +5 -6
  61. package/dist/themes/threads/timeline/TimelineFeed.js +58 -0
  62. package/dist/{theme/components → themes/threads}/timeline/TimelineItem.js +8 -17
  63. package/dist/themes/threads/timeline/TimelineLoadMore.js +23 -0
  64. package/dist/themes/threads/timeline/groupByDate.js +22 -0
  65. package/dist/themes/threads/timeline/timelineMore.js +107 -0
  66. package/dist/types.js +24 -40
  67. package/package.json +2 -1
  68. package/src/__tests__/helpers/app.ts +4 -0
  69. package/src/__tests__/helpers/db.ts +51 -74
  70. package/src/app.tsx +27 -6
  71. package/src/db/migrations/0005_v2_schema_migration.sql +268 -0
  72. package/src/db/migrations/meta/_journal.json +7 -0
  73. package/src/db/schema.ts +63 -46
  74. package/src/i18n/locales/en.po +216 -164
  75. package/src/i18n/locales/en.ts +1 -1
  76. package/src/i18n/locales/zh-Hans.po +216 -164
  77. package/src/i18n/locales/zh-Hans.ts +1 -1
  78. package/src/i18n/locales/zh-Hant.po +216 -164
  79. package/src/i18n/locales/zh-Hant.ts +1 -1
  80. package/src/index.ts +30 -15
  81. package/src/lib/__tests__/excerpt.test.ts +125 -0
  82. package/src/lib/__tests__/schemas.test.ts +166 -105
  83. package/src/lib/__tests__/theme-components.test.ts +4 -25
  84. package/src/lib/__tests__/time.test.ts +62 -0
  85. package/src/{routes/api → lib}/__tests__/timeline.test.ts +108 -66
  86. package/src/lib/__tests__/view.test.ts +217 -67
  87. package/src/lib/constants.ts +1 -4
  88. package/src/lib/excerpt.ts +87 -0
  89. package/src/lib/feed.ts +22 -7
  90. package/src/lib/navigation.ts +6 -7
  91. package/src/lib/render.tsx +1 -1
  92. package/src/lib/schemas.ts +118 -52
  93. package/src/lib/theme-components.ts +10 -13
  94. package/src/lib/time.ts +64 -0
  95. package/src/lib/timeline.ts +170 -0
  96. package/src/lib/view.ts +81 -83
  97. package/src/preset.css +45 -0
  98. package/src/routes/api/__tests__/posts.test.ts +50 -108
  99. package/src/routes/api/__tests__/search.test.ts +2 -3
  100. package/src/routes/api/posts.ts +30 -30
  101. package/src/routes/api/search.ts +4 -4
  102. package/src/routes/api/upload.ts +16 -6
  103. package/src/routes/dash/collections.tsx +18 -40
  104. package/src/routes/dash/index.tsx +2 -2
  105. package/src/routes/dash/navigation.tsx +27 -26
  106. package/src/routes/dash/pages.tsx +45 -60
  107. package/src/routes/dash/posts.tsx +44 -52
  108. package/src/routes/feed/rss.ts +2 -1
  109. package/src/routes/feed/sitemap.ts +14 -4
  110. package/src/routes/pages/archive.tsx +14 -10
  111. package/src/routes/pages/collection.tsx +17 -6
  112. package/src/routes/pages/home.tsx +56 -81
  113. package/src/routes/pages/page.tsx +64 -27
  114. package/src/routes/pages/post.tsx +5 -14
  115. package/src/routes/pages/search.tsx +2 -2
  116. package/src/services/__tests__/collection.test.ts +257 -158
  117. package/src/services/__tests__/media.test.ts +18 -18
  118. package/src/services/__tests__/navigation.test.ts +161 -87
  119. package/src/services/__tests__/post-timeline.test.ts +92 -88
  120. package/src/services/__tests__/post.test.ts +342 -206
  121. package/src/services/__tests__/search.test.ts +19 -25
  122. package/src/services/collection.ts +71 -113
  123. package/src/services/index.ts +9 -8
  124. package/src/services/navigation.ts +38 -71
  125. package/src/services/page.ts +124 -0
  126. package/src/services/post.ts +93 -103
  127. package/src/services/search.ts +38 -27
  128. package/src/styles/components.css +0 -54
  129. package/src/theme/components/MediaGallery.tsx +27 -96
  130. package/src/theme/components/PageForm.tsx +21 -21
  131. package/src/theme/components/PostForm.tsx +122 -118
  132. package/src/theme/components/PostList.tsx +58 -49
  133. package/src/theme/components/ThreadView.tsx +6 -3
  134. package/src/theme/components/TypeBadge.tsx +9 -17
  135. package/src/theme/components/VisibilityBadge.tsx +40 -23
  136. package/src/theme/components/index.ts +0 -13
  137. package/src/theme/index.ts +10 -16
  138. package/src/theme/layouts/index.ts +0 -1
  139. package/src/themes/threads/ThreadsSiteLayout.tsx +194 -0
  140. package/src/themes/threads/index.ts +100 -0
  141. package/src/{theme → themes/threads}/pages/ArchivePage.tsx +52 -55
  142. package/src/themes/threads/pages/CollectionPage.tsx +61 -0
  143. package/src/{theme → themes/threads}/pages/HomePage.tsx +5 -6
  144. package/src/{theme → themes/threads}/pages/PostPage.tsx +11 -8
  145. package/src/{theme → themes/threads}/pages/SearchPage.tsx +9 -13
  146. package/src/themes/threads/pages/SinglePage.tsx +23 -0
  147. package/src/themes/threads/style.css +336 -0
  148. package/src/{theme/components → themes/threads}/timeline/LinkCard.tsx +21 -13
  149. package/src/themes/threads/timeline/NoteCard.tsx +58 -0
  150. package/src/themes/threads/timeline/QuoteCard.tsx +63 -0
  151. package/src/{theme/components → themes/threads}/timeline/ThreadPreview.tsx +6 -6
  152. package/src/themes/threads/timeline/TimelineFeed.tsx +62 -0
  153. package/src/{theme/components → themes/threads}/timeline/TimelineItem.tsx +9 -20
  154. package/src/themes/threads/timeline/TimelineLoadMore.tsx +35 -0
  155. package/src/themes/threads/timeline/groupByDate.ts +30 -0
  156. package/src/themes/threads/timeline/timelineMore.tsx +130 -0
  157. package/src/types.ts +242 -98
  158. package/dist/routes/api/timeline.js +0 -120
  159. package/dist/theme/components/timeline/ArticleCard.js +0 -46
  160. package/dist/theme/components/timeline/ImageCard.js +0 -83
  161. package/dist/theme/components/timeline/NoteCard.js +0 -34
  162. package/dist/theme/components/timeline/QuoteCard.js +0 -48
  163. package/dist/theme/components/timeline/TimelineFeed.js +0 -46
  164. package/dist/theme/components/timeline/index.js +0 -8
  165. package/dist/theme/layouts/SiteLayout.js +0 -131
  166. package/dist/theme/pages/CollectionPage.js +0 -63
  167. package/dist/theme/pages/index.js +0 -11
  168. package/src/routes/api/timeline.tsx +0 -159
  169. package/src/theme/components/timeline/ArticleCard.tsx +0 -45
  170. package/src/theme/components/timeline/ImageCard.tsx +0 -70
  171. package/src/theme/components/timeline/NoteCard.tsx +0 -34
  172. package/src/theme/components/timeline/QuoteCard.tsx +0 -48
  173. package/src/theme/components/timeline/TimelineFeed.tsx +0 -56
  174. package/src/theme/components/timeline/index.ts +0 -8
  175. package/src/theme/layouts/SiteLayout.tsx +0 -132
  176. package/src/theme/pages/CollectionPage.tsx +0 -60
  177. package/src/theme/pages/SinglePage.tsx +0 -24
  178. package/src/theme/pages/index.ts +0 -13
@@ -19,7 +19,7 @@ msgstr ""
19
19
  #~ msgstr "{count} replies"
20
20
 
21
21
  #. @context: Navigation link
22
- #: src/routes/dash/collections.tsx:282
22
+ #: src/routes/dash/collections.tsx:271
23
23
  msgid "← Back to Collections"
24
24
  msgstr "← Back to Collections"
25
25
 
@@ -51,12 +51,12 @@ msgid "Account"
51
51
  msgstr "Account"
52
52
 
53
53
  #. @context: Button to open media picker
54
- #: src/theme/components/PostForm.tsx:190
54
+ #: src/theme/components/PostForm.tsx:212
55
55
  msgid "Add Media"
56
56
  msgstr "Add Media"
57
57
 
58
- #. @context: Archive filter - all types
59
- #: src/theme/pages/ArchivePage.tsx:92
58
+ #. @context: Archive filter - all formats
59
+ #: src/themes/threads/pages/ArchivePage.tsx:71
60
60
  msgid "All"
61
61
  msgstr "All"
62
62
 
@@ -66,12 +66,12 @@ msgid "Appearance"
66
66
  msgstr "Appearance"
67
67
 
68
68
  #. @context: Archive page title
69
- #: src/theme/pages/ArchivePage.tsx:77
69
+ #: src/themes/threads/pages/ArchivePage.tsx:56
70
70
  msgid "Archive"
71
71
  msgstr "Archive"
72
72
 
73
73
  #. @context: Confirmation dialog when deleting a post from the list
74
- #: src/theme/components/PostList.tsx:56
74
+ #: src/theme/components/PostList.tsx:60
75
75
  msgid "Are you sure you want to delete this post? This cannot be undone."
76
76
  msgstr "Are you sure you want to delete this post? This cannot be undone."
77
77
 
@@ -80,19 +80,19 @@ msgstr "Are you sure you want to delete this post? This cannot be undone."
80
80
  #. @context: Post type option
81
81
  #: src/theme/components/PostForm.tsx:74
82
82
  #: src/theme/components/TypeBadge.tsx:20
83
- #: src/theme/pages/ArchivePage.tsx:18
84
- msgid "Article"
85
- msgstr "Article"
83
+ #: src/themes/threads/pages/ArchivePage.tsx:17
84
+ #~ msgid "Article"
85
+ #~ msgstr "Article"
86
86
 
87
87
  #. @context: Post type label plural - articles
88
- #: src/theme/pages/ArchivePage.tsx:43
89
- msgid "Articles"
90
- msgstr "Articles"
88
+ #: src/themes/threads/pages/ArchivePage.tsx:42
89
+ #~ msgid "Articles"
90
+ #~ msgstr "Articles"
91
91
 
92
92
  #. @context: Hint for image post type media requirement
93
93
  #: src/theme/components/PostForm.tsx:137
94
- msgid "At least 1 image required for image posts."
95
- msgstr "At least 1 image required for image posts."
94
+ #~ msgid "At least 1 image required for image posts."
95
+ #~ msgstr "At least 1 image required for image posts."
96
96
 
97
97
  #. @context: Button to go back to media list
98
98
  #: src/routes/dash/media.tsx:266
@@ -115,11 +115,11 @@ msgstr "Back"
115
115
  #. @context: Button to cancel form
116
116
  #. @context: Button to cancel form
117
117
  #: src/routes/dash/collections.tsx:186
118
- #: src/routes/dash/collections.tsx:365
118
+ #: src/routes/dash/collections.tsx:354
119
119
  #: src/routes/dash/navigation.tsx:192
120
120
  #: src/routes/dash/redirects.tsx:177
121
121
  #: src/theme/components/PageForm.tsx:171
122
- #: src/theme/components/PostForm.tsx:333
122
+ #: src/theme/components/PostForm.tsx:337
123
123
  msgid "Cancel"
124
124
  msgstr "Cancel"
125
125
 
@@ -135,6 +135,11 @@ msgstr "Change Password"
135
135
  msgid "Click image to view full size"
136
136
  msgstr "Click image to view full size"
137
137
 
138
+ #. @context: Post form field - assign to collection
139
+ #: src/theme/components/PostForm.tsx:265
140
+ msgid "Collection (optional)"
141
+ msgstr "Collection (optional)"
142
+
138
143
  #. @context: Dashboard heading
139
144
  #. @context: Dashboard navigation - collections management
140
145
  #: src/routes/dash/collections.tsx:35
@@ -144,8 +149,8 @@ msgstr "Collections"
144
149
 
145
150
  #. @context: Post form field - assign to collections
146
151
  #: src/theme/components/PostForm.tsx:273
147
- msgid "Collections (optional)"
148
- msgstr "Collections (optional)"
152
+ #~ msgid "Collections (optional)"
153
+ #~ msgstr "Collections (optional)"
149
154
 
150
155
  #. @context: Appearance settings heading
151
156
  #: src/routes/dash/settings.tsx:311
@@ -153,7 +158,7 @@ msgid "Color theme"
153
158
  msgstr "Color theme"
154
159
 
155
160
  #. @context: Setup form submit button
156
- #: src/app.tsx:254
161
+ #: src/app.tsx:275
157
162
  msgid "Complete Setup"
158
163
  msgstr "Complete Setup"
159
164
 
@@ -163,14 +168,14 @@ msgid "Confirm New Password"
163
168
  msgstr "Confirm New Password"
164
169
 
165
170
  #. @context: Password reset form field
166
- #: src/app.tsx:515
171
+ #: src/app.tsx:536
167
172
  msgid "Confirm Password"
168
173
  msgstr "Confirm Password"
169
174
 
170
175
  #. @context: Page form field label - content
171
176
  #. @context: Post form field
172
177
  #: src/theme/components/PageForm.tsx:96
173
- #: src/theme/components/PostForm.tsx:110
178
+ #: src/theme/components/PostForm.tsx:105
174
179
  msgid "Content"
175
180
  msgstr "Content"
176
181
 
@@ -202,12 +207,12 @@ msgid "Create Redirect"
202
207
  msgstr "Create Redirect"
203
208
 
204
209
  #. @context: Setup page description
205
- #: src/app.tsx:194
210
+ #: src/app.tsx:215
206
211
  msgid "Create your admin account."
207
212
  msgstr "Create your admin account."
208
213
 
209
214
  #. @context: Button in empty state to create first page
210
- #: src/routes/dash/pages.tsx:50
215
+ #: src/routes/dash/pages.tsx:48
211
216
  msgid "Create your first page"
212
217
  msgstr "Create your first page"
213
218
 
@@ -223,8 +228,18 @@ msgstr "Current Password"
223
228
 
224
229
  #. @context: Post form field
225
230
  #: src/theme/components/PostForm.tsx:297
226
- msgid "Custom Path (optional)"
227
- msgstr "Custom Path (optional)"
231
+ #~ msgid "Custom Path (optional)"
232
+ #~ msgstr "Custom Path (optional)"
233
+
234
+ #. @context: Post form field
235
+ #: src/theme/components/PostForm.tsx:293
236
+ msgid "Custom Slug (optional)"
237
+ msgstr "Custom Slug (optional)"
238
+
239
+ #. @context: Slug help text
240
+ #: src/theme/components/PostForm.tsx:306
241
+ msgid "Custom URL path. Leave empty to use default /p/ID format."
242
+ msgstr "Custom URL path. Leave empty to use default /p/ID format."
228
243
 
229
244
  #. @context: Section heading for dangerous/destructive actions
230
245
  #: src/theme/components/DangerZone.tsx:55
@@ -248,7 +263,7 @@ msgid "Delete"
248
263
  msgstr "Delete"
249
264
 
250
265
  #. @context: Button to delete collection
251
- #: src/routes/dash/collections.tsx:374
266
+ #: src/routes/dash/collections.tsx:363
252
267
  msgid "Delete Collection"
253
268
  msgstr "Delete Collection"
254
269
 
@@ -258,7 +273,7 @@ msgid "Delete Media"
258
273
  msgstr "Delete Media"
259
274
 
260
275
  #. @context: Button to delete page
261
- #: src/routes/dash/pages.tsx:160
276
+ #: src/routes/dash/pages.tsx:151
262
277
  msgid "Delete Page"
263
278
  msgstr "Delete Page"
264
279
 
@@ -268,14 +283,14 @@ msgid "Deleting this media will remove it permanently from storage."
268
283
  msgstr "Deleting this media will remove it permanently from storage."
269
284
 
270
285
  #. @context: Hint shown on signin page when demo credentials are pre-filled
271
- #: src/app.tsx:353
286
+ #: src/app.tsx:374
272
287
  msgid "Demo account pre-filled. Just click Sign In."
273
288
  msgstr "Demo account pre-filled. Just click Sign In."
274
289
 
275
290
  #. @context: Collection form field
276
291
  #. @context: Collection form field
277
292
  #: src/routes/dash/collections.tsx:153
278
- #: src/routes/dash/collections.tsx:338
293
+ #: src/routes/dash/collections.tsx:327
279
294
  msgid "Description (optional)"
280
295
  msgstr "Description (optional)"
281
296
 
@@ -285,16 +300,16 @@ msgid "Display text for the link"
285
300
  msgstr "Display text for the link"
286
301
 
287
302
  #. @context: Close media picker button
288
- #: src/theme/components/PostForm.tsx:355
303
+ #: src/theme/components/PostForm.tsx:359
289
304
  msgid "Done"
290
305
  msgstr "Done"
291
306
 
292
307
  #. @context: Page status option - draft
293
- #. @context: Post visibility badge - draft
294
- #. @context: Post visibility option
308
+ #. @context: Post status badge - draft
309
+ #. @context: Post status option
295
310
  #: src/theme/components/PageForm.tsx:133
296
- #: src/theme/components/PostForm.tsx:261
297
- #: src/theme/components/VisibilityBadge.tsx:38
311
+ #: src/theme/components/PostForm.tsx:235
312
+ #: src/theme/components/VisibilityBadge.tsx:35
298
313
  msgid "Draft"
299
314
  msgstr "Draft"
300
315
 
@@ -305,8 +320,8 @@ msgstr "Drafts"
305
320
 
306
321
  #. @context: Source name placeholder
307
322
  #: src/theme/components/PostForm.tsx:226
308
- msgid "e.g. The Verge, John Doe"
309
- msgstr "e.g. The Verge, John Doe"
323
+ #~ msgid "e.g. The Verge, John Doe"
324
+ #~ msgstr "e.g. The Verge, John Doe"
310
325
 
311
326
  #. @context: Button to edit collection
312
327
  #. @context: Button to edit collection
@@ -319,16 +334,16 @@ msgstr "e.g. The Verge, John Doe"
319
334
  #: src/routes/dash/collections.tsx:66
320
335
  #: src/routes/dash/collections.tsx:220
321
336
  #: src/routes/dash/navigation.tsx:61
322
- #: src/routes/dash/pages.tsx:64
323
- #: src/routes/dash/pages.tsx:134
337
+ #: src/routes/dash/pages.tsx:62
338
+ #: src/routes/dash/pages.tsx:129
324
339
  #: src/routes/dash/posts.tsx:142
325
340
  #: src/theme/components/ActionButtons.tsx:72
326
- #: src/theme/components/PostList.tsx:46
341
+ #: src/theme/components/PostList.tsx:50
327
342
  msgid "Edit"
328
343
  msgstr "Edit"
329
344
 
330
345
  #. @context: Page heading
331
- #: src/routes/dash/collections.tsx:304
346
+ #: src/routes/dash/collections.tsx:293
332
347
  msgid "Edit Collection"
333
348
  msgstr "Edit Collection"
334
349
 
@@ -338,12 +353,12 @@ msgid "Edit Link"
338
353
  msgstr "Edit Link"
339
354
 
340
355
  #. @context: Edit page main heading
341
- #: src/routes/dash/pages.tsx:176
356
+ #: src/routes/dash/pages.tsx:167
342
357
  msgid "Edit Page"
343
358
  msgstr "Edit Page"
344
359
 
345
360
  #. @context: Page heading
346
- #: src/routes/dash/posts.tsx:187
361
+ #: src/routes/dash/posts.tsx:185
347
362
  msgid "Edit Post"
348
363
  msgstr "Edit Post"
349
364
 
@@ -358,30 +373,37 @@ msgstr "Edit Post"
358
373
 
359
374
  #. @context: Setup/signin form field - email
360
375
  #. @context: Setup/signin form field - email
361
- #: src/app.tsx:224
362
- #: src/app.tsx:368
376
+ #: src/app.tsx:245
377
+ #: src/app.tsx:389
363
378
  msgid "Email"
364
379
  msgstr "Email"
365
380
 
366
381
  #. @context: Password reset page description
367
- #: src/app.tsx:484
382
+ #: src/app.tsx:505
368
383
  msgid "Enter your new password."
369
384
  msgstr "Enter your new password."
370
385
 
371
- #. @context: Post visibility badge - featured
372
- #. @context: Post visibility option
373
- #: src/theme/components/PostForm.tsx:249
374
- #: src/theme/components/VisibilityBadge.tsx:26
386
+ #. @context: Archive filter - featured posts
387
+ #. @context: Post badge - featured
388
+ #. @context: Post form checkbox - mark as featured
389
+ #: src/theme/components/PostForm.tsx:247
390
+ #: src/theme/components/VisibilityBadge.tsx:46
391
+ #: src/themes/threads/pages/ArchivePage.tsx:89
375
392
  msgid "Featured"
376
393
  msgstr "Featured"
377
394
 
395
+ #. @context: Post form field - post format
396
+ #: src/theme/components/PostForm.tsx:65
397
+ msgid "Format"
398
+ msgstr "Format"
399
+
378
400
  #. @context: Search results count - multiple
379
- #: src/theme/pages/SearchPage.tsx:77
401
+ #: src/themes/threads/pages/SearchPage.tsx:76
380
402
  msgid "Found {count} results"
381
403
  msgstr "Found {count} results"
382
404
 
383
405
  #. @context: Search results count - single
384
- #: src/theme/pages/SearchPage.tsx:73
406
+ #: src/themes/threads/pages/SearchPage.tsx:72
385
407
  msgid "Found 1 result"
386
408
  msgstr "Found 1 result"
387
409
 
@@ -402,14 +424,14 @@ msgstr "General"
402
424
  #. @context: Post type option
403
425
  #: src/theme/components/PostForm.tsx:83
404
426
  #: src/theme/components/TypeBadge.tsx:29
405
- #: src/theme/pages/ArchivePage.tsx:27
406
- msgid "Image"
407
- msgstr "Image"
427
+ #: src/themes/threads/pages/ArchivePage.tsx:26
428
+ #~ msgid "Image"
429
+ #~ msgstr "Image"
408
430
 
409
431
  #. @context: Post type label plural - images
410
- #: src/theme/pages/ArchivePage.tsx:55
411
- msgid "Images"
412
- msgstr "Images"
432
+ #: src/themes/threads/pages/ArchivePage.tsx:54
433
+ #~ msgid "Images"
434
+ #~ msgstr "Images"
413
435
 
414
436
  #. @context: Media upload instructions - auto optimization
415
437
  #: src/routes/dash/media.tsx:171
@@ -417,7 +439,7 @@ msgid "Images are automatically optimized: resized to max 1920px, converted to W
417
439
  msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
418
440
 
419
441
  #. @context: Password reset error heading
420
- #: src/app.tsx:559
442
+ #: src/app.tsx:580
421
443
  msgid "Invalid or Expired Link"
422
444
  msgstr "Invalid or Expired Link"
423
445
 
@@ -436,33 +458,33 @@ msgstr "Language"
436
458
  #~ msgid "Let's set up your site."
437
459
  #~ msgstr "Let's set up your site."
438
460
 
439
- #. @context: Post type badge - link
440
- #. @context: Post type label - link
441
- #. @context: Post type option
442
- #: src/theme/components/PostForm.tsx:77
443
- #: src/theme/components/TypeBadge.tsx:24
444
- #: src/theme/pages/ArchivePage.tsx:22
461
+ #. @context: Post format badge - link
462
+ #. @context: Post format label - link
463
+ #. @context: Post format option
464
+ #: src/theme/components/PostForm.tsx:75
465
+ #: src/theme/components/TypeBadge.tsx:21
466
+ #: src/themes/threads/pages/ArchivePage.tsx:17
445
467
  msgid "Link"
446
468
  msgstr "Link"
447
469
 
448
- #. @context: Post type label plural - links
449
- #: src/theme/pages/ArchivePage.tsx:47
470
+ #. @context: Post format label plural - links
471
+ #: src/themes/threads/pages/ArchivePage.tsx:33
450
472
  msgid "Links"
451
473
  msgstr "Links"
452
474
 
453
- #. @context: Button to load more posts in timeline
454
475
  #. @context: Pagination button - load more items
455
476
  #: src/theme/components/Pagination.tsx:103
456
- #: src/theme/components/timeline/TimelineFeed.tsx:47
457
477
  msgid "Load more"
458
478
  msgstr "Load more"
459
479
 
480
+ #. @context: Loading indicator while fetching more posts
460
481
  #. @context: Loading state for media picker
461
- #: src/theme/components/PostForm.tsx:366
482
+ #: src/theme/components/PostForm.tsx:370
483
+ #: src/themes/threads/timeline/TimelineLoadMore.tsx:28
462
484
  msgid "Loading..."
463
485
  msgstr "Loading..."
464
486
 
465
- #. @context: Page path validation message
487
+ #. @context: Page slug validation message
466
488
  #: src/theme/components/PageForm.tsx:77
467
489
  msgid "Lowercase letters, numbers, and hyphens only"
468
490
  msgstr "Lowercase letters, numbers, and hyphens only"
@@ -476,7 +498,7 @@ msgstr "Markdown"
476
498
  #. @context: Media main heading
477
499
  #. @context: Post form field - media attachments
478
500
  #: src/routes/dash/media.tsx:151
479
- #: src/theme/components/PostForm.tsx:128
501
+ #: src/theme/components/PostForm.tsx:159
480
502
  #: src/theme/layouts/DashLayout.tsx:105
481
503
  msgid "Media"
482
504
  msgstr "Media"
@@ -528,14 +550,14 @@ msgstr "New Link"
528
550
 
529
551
  #. @context: Button to create new page
530
552
  #. @context: New page main heading
531
- #: src/routes/dash/pages.tsx:37
532
- #: src/routes/dash/pages.tsx:110
553
+ #: src/routes/dash/pages.tsx:35
554
+ #: src/routes/dash/pages.tsx:105
533
555
  msgid "New Page"
534
556
  msgstr "New Page"
535
557
 
536
558
  #. @context: Password form field
537
559
  #. @context: Password reset form field
538
- #: src/app.tsx:499
560
+ #: src/app.tsx:520
539
561
  #: src/routes/dash/settings.tsx:442
540
562
  msgid "New Password"
541
563
  msgstr "New Password"
@@ -581,26 +603,26 @@ msgid "No navigation links configured."
581
603
  msgstr "No navigation links configured."
582
604
 
583
605
  #. @context: Empty state message when no pages exist
584
- #: src/routes/dash/pages.tsx:46
606
+ #: src/routes/dash/pages.tsx:44
585
607
  msgid "No pages yet."
586
608
  msgstr "No pages yet."
587
609
 
588
610
  #. @context: Archive empty state
589
- #: src/theme/pages/ArchivePage.tsx:112
611
+ #: src/themes/threads/pages/ArchivePage.tsx:100
590
612
  msgid "No posts found."
591
613
  msgstr "No posts found."
592
614
 
593
615
  #. @context: Empty state message
594
616
  #. @context: Empty state message
595
617
  #: src/routes/dash/collections.tsx:243
596
- #: src/theme/pages/CollectionPage.tsx:30
618
+ #: src/themes/threads/pages/CollectionPage.tsx:29
597
619
  msgid "No posts in this collection."
598
620
  msgstr "No posts in this collection."
599
621
 
600
622
  #. @context: Empty state message on home page
601
623
  #. @context: Empty state message when no posts exist
602
624
  #: src/theme/components/PostList.tsx:25
603
- #: src/theme/pages/HomePage.tsx:27
625
+ #: src/themes/threads/pages/HomePage.tsx:26
604
626
  msgid "No posts yet."
605
627
  msgstr "No posts yet."
606
628
 
@@ -610,30 +632,31 @@ msgid "No redirects configured."
610
632
  msgstr "No redirects configured."
611
633
 
612
634
  #. @context: Search empty results
613
- #: src/theme/pages/SearchPage.tsx:68
635
+ #: src/themes/threads/pages/SearchPage.tsx:67
614
636
  msgid "No results found."
615
637
  msgstr "No results found."
616
638
 
617
- #. @context: Post type badge - note
618
- #. @context: Post type label - note
619
- #. @context: Post type option
620
- #: src/theme/components/PostForm.tsx:71
621
- #: src/theme/components/TypeBadge.tsx:19
622
- #: src/theme/pages/ArchivePage.tsx:17
639
+ #. @context: No collection selected
640
+ #: src/theme/components/PostForm.tsx:272
641
+ msgid "None"
642
+ msgstr "None"
643
+
644
+ #. @context: Post format badge - note
645
+ #. @context: Post format label - note
646
+ #. @context: Post format option
647
+ #: src/theme/components/PostForm.tsx:72
648
+ #: src/theme/components/TypeBadge.tsx:20
649
+ #: src/themes/threads/pages/ArchivePage.tsx:16
623
650
  msgid "Note"
624
651
  msgstr "Note"
625
652
 
626
- #. @context: Post type label plural - notes
627
- #: src/theme/pages/ArchivePage.tsx:39
653
+ #. @context: Post format label plural - notes
654
+ #: src/themes/threads/pages/ArchivePage.tsx:29
628
655
  msgid "Notes"
629
656
  msgstr "Notes"
630
657
 
631
658
  #. @context: Default page heading when untitled
632
- #. @context: Post type badge - page
633
- #. @context: Post type label - page
634
- #: src/routes/dash/pages.tsx:125
635
- #: src/theme/components/TypeBadge.tsx:33
636
- #: src/theme/pages/ArchivePage.tsx:31
659
+ #: src/routes/dash/pages.tsx:120
637
660
  msgid "Page"
638
661
  msgstr "Page"
639
662
 
@@ -654,24 +677,22 @@ msgstr "Page title..."
654
677
 
655
678
  #. @context: Dashboard navigation - pages management
656
679
  #. @context: Pages main heading
657
- #. @context: Post type label plural - pages
658
- #: src/routes/dash/pages.tsx:36
680
+ #: src/routes/dash/pages.tsx:34
659
681
  #: src/theme/layouts/DashLayout.tsx:96
660
- #: src/theme/pages/ArchivePage.tsx:59
661
682
  msgid "Pages"
662
683
  msgstr "Pages"
663
684
 
664
685
  #. @context: Setup/signin form field - password
665
686
  #. @context: Setup/signin form field - password
666
- #: src/app.tsx:239
667
- #: src/app.tsx:377
687
+ #: src/app.tsx:260
688
+ #: src/app.tsx:398
668
689
  msgid "Password"
669
690
  msgstr "Password"
670
691
 
671
692
  #. @context: Page form field label - URL path
672
693
  #: src/theme/components/PageForm.tsx:64
673
- msgid "Path"
674
- msgstr "Path"
694
+ #~ msgid "Path"
695
+ #~ msgstr "Path"
675
696
 
676
697
  #. @context: Navigation URL help text
677
698
  #: src/routes/dash/navigation.tsx:162
@@ -680,18 +701,25 @@ msgstr "Path (e.g. /archive) or full URL (e.g. https://example.com)"
680
701
 
681
702
  #. @context: Link to individual post in thread
682
703
  #. @context: Link to permanent URL of post
683
- #: src/theme/components/ThreadView.tsx:68
684
- #: src/theme/pages/PostPage.tsx:36
704
+ #: src/theme/components/ThreadView.tsx:71
705
+ #: src/themes/threads/pages/PostPage.tsx:39
685
706
  msgid "Permalink"
686
707
  msgstr "Permalink"
687
708
 
709
+ #. @context: Post badge - pinned
710
+ #. @context: Post form checkbox - pin to top
711
+ #: src/theme/components/PostForm.tsx:254
712
+ #: src/theme/components/VisibilityBadge.tsx:54
713
+ msgid "Pinned"
714
+ msgstr "Pinned"
715
+
688
716
  #. @context: Default post title
689
- #: src/routes/dash/posts.tsx:131
717
+ #: src/routes/dash/posts.tsx:130
690
718
  msgid "Post"
691
719
  msgstr "Post"
692
720
 
693
721
  #. @context: Post title placeholder
694
- #: src/theme/components/PostForm.tsx:100
722
+ #: src/theme/components/PostForm.tsx:95
695
723
  msgid "Post title..."
696
724
  msgstr "Post title..."
697
725
 
@@ -732,11 +760,11 @@ msgstr "Previous"
732
760
  #. @context: Loading text shown on submit button while request is in progress
733
761
  #. @context: Loading text shown on submit button while request is in progress
734
762
  #. @context: Upload status - processing
735
- #: src/app.tsx:260
736
- #: src/app.tsx:397
737
- #: src/app.tsx:537
763
+ #: src/app.tsx:281
764
+ #: src/app.tsx:418
765
+ #: src/app.tsx:558
738
766
  #: src/routes/dash/collections.tsx:178
739
- #: src/routes/dash/collections.tsx:357
767
+ #: src/routes/dash/collections.tsx:346
740
768
  #: src/routes/dash/media.tsx:119
741
769
  #: src/routes/dash/navigation.tsx:184
742
770
  #: src/routes/dash/redirects.tsx:169
@@ -744,7 +772,7 @@ msgstr "Previous"
744
772
  #: src/routes/dash/settings.tsx:400
745
773
  #: src/routes/dash/settings.tsx:488
746
774
  #: src/theme/components/PageForm.tsx:163
747
- #: src/theme/components/PostForm.tsx:325
775
+ #: src/theme/components/PostForm.tsx:329
748
776
  msgid "Processing..."
749
777
  msgstr "Processing..."
750
778
 
@@ -754,21 +782,30 @@ msgid "Profile"
754
782
  msgstr "Profile"
755
783
 
756
784
  #. @context: Button to publish new post
757
- #: src/theme/components/PostForm.tsx:319
785
+ #: src/theme/components/PostForm.tsx:323
758
786
  msgid "Publish"
759
787
  msgstr "Publish"
760
788
 
761
789
  #. @context: Page status option - published
790
+ #. @context: Post status badge - published
762
791
  #. @context: Post status label
792
+ #. @context: Post status option
763
793
  #: src/routes/dash/index.tsx:45
764
794
  #: src/theme/components/PageForm.tsx:127
795
+ #: src/theme/components/PostForm.tsx:229
796
+ #: src/theme/components/VisibilityBadge.tsx:31
765
797
  msgid "Published"
766
798
  msgstr "Published"
767
799
 
768
800
  #. @context: Page status helper text
769
801
  #: src/theme/components/PageForm.tsx:140
770
- msgid "Published pages are accessible via their path. Drafts are not visible."
771
- msgstr "Published pages are accessible via their path. Drafts are not visible."
802
+ #~ msgid "Published pages are accessible via their path. Drafts are not visible."
803
+ #~ msgstr "Published pages are accessible via their path. Drafts are not visible."
804
+
805
+ #. @context: Page status helper text
806
+ #: src/theme/components/PageForm.tsx:140
807
+ msgid "Published pages are accessible via their slug. Drafts are not visible."
808
+ msgstr "Published pages are accessible via their slug. Drafts are not visible."
772
809
 
773
810
  #. @context: Dashboard section title
774
811
  #: src/routes/dash/index.tsx:62
@@ -777,25 +814,30 @@ msgstr "Quick Actions"
777
814
 
778
815
  #. @context: Post visibility badge - normal
779
816
  #: src/theme/components/VisibilityBadge.tsx:30
780
- msgid "Quiet"
781
- msgstr "Quiet"
817
+ #~ msgid "Quiet"
818
+ #~ msgstr "Quiet"
782
819
 
783
820
  #. @context: Post visibility option
784
821
  #: src/theme/components/PostForm.tsx:243
785
- msgid "Quiet (normal)"
786
- msgstr "Quiet (normal)"
787
-
788
- #. @context: Post type badge - quote
789
- #. @context: Post type label - quote
790
- #. @context: Post type option
791
- #: src/theme/components/PostForm.tsx:80
792
- #: src/theme/components/TypeBadge.tsx:25
793
- #: src/theme/pages/ArchivePage.tsx:23
822
+ #~ msgid "Quiet (normal)"
823
+ #~ msgstr "Quiet (normal)"
824
+
825
+ #. @context: Post format badge - quote
826
+ #. @context: Post format label - quote
827
+ #. @context: Post format option
828
+ #: src/theme/components/PostForm.tsx:78
829
+ #: src/theme/components/TypeBadge.tsx:22
830
+ #: src/themes/threads/pages/ArchivePage.tsx:18
794
831
  msgid "Quote"
795
832
  msgstr "Quote"
796
833
 
797
- #. @context: Post type label plural - quotes
798
- #: src/theme/pages/ArchivePage.tsx:51
834
+ #. @context: Post form field - quoted text
835
+ #: src/theme/components/PostForm.tsx:138
836
+ msgid "Quote Text"
837
+ msgstr "Quote Text"
838
+
839
+ #. @context: Post format label plural - quotes
840
+ #: src/themes/threads/pages/ArchivePage.tsx:37
799
841
  msgid "Quotes"
800
842
  msgstr "Quotes"
801
843
 
@@ -806,17 +848,15 @@ msgstr "Quotes"
806
848
  msgid "Redirects"
807
849
  msgstr "Redirects"
808
850
 
809
- #. @context: Button to remove post from collection
810
851
  #. @context: Remove media attachment button
811
- #: src/routes/dash/collections.tsx:267
812
- #: src/theme/components/PostForm.tsx:173
852
+ #: src/theme/components/PostForm.tsx:195
813
853
  msgid "Remove"
814
854
  msgstr "Remove"
815
855
 
816
856
  #. @context: Password reset form submit button
817
857
  #. @context: Password reset page heading
818
- #: src/app.tsx:478
819
- #: src/app.tsx:531
858
+ #: src/app.tsx:499
859
+ #: src/app.tsx:552
820
860
  msgid "Reset Password"
821
861
  msgstr "Reset Password"
822
862
 
@@ -837,8 +877,8 @@ msgstr "Save Settings"
837
877
 
838
878
  #. @context: Search page title
839
879
  #. @context: Search submit button
840
- #: src/theme/pages/SearchPage.tsx:22
841
- #: src/theme/pages/SearchPage.tsx:48
880
+ #: src/themes/threads/pages/SearchPage.tsx:21
881
+ #: src/themes/threads/pages/SearchPage.tsx:47
842
882
  msgid "Search"
843
883
  msgstr "Search"
844
884
 
@@ -848,12 +888,12 @@ msgstr "Search"
848
888
  #~ msgstr "Search failed. Please try again."
849
889
 
850
890
  #. @context: Search input placeholder
851
- #: src/theme/pages/SearchPage.tsx:40
891
+ #: src/themes/threads/pages/SearchPage.tsx:39
852
892
  msgid "Search posts..."
853
893
  msgstr "Search posts..."
854
894
 
855
895
  #. @context: Media picker dialog title
856
- #: src/theme/components/PostForm.tsx:345
896
+ #: src/theme/components/PostForm.tsx:349
857
897
  msgid "Select Media"
858
898
  msgstr "Select Media"
859
899
 
@@ -875,14 +915,14 @@ msgstr "Settings"
875
915
 
876
916
  #. @context: Link to show remaining thread replies
877
917
  #. placeholder {0}: remainingCount === 1 ? "reply" : "replies"
878
- #: src/theme/components/timeline/ThreadPreview.tsx:38
918
+ #: src/themes/threads/timeline/ThreadPreview.tsx:38
879
919
  msgid "Show {remainingCount} more {0}"
880
920
  msgstr "Show {remainingCount} more {0}"
881
921
 
882
922
  #. @context: Sign in form submit button
883
923
  #. @context: Sign in page heading
884
- #: src/app.tsx:344
885
- #: src/app.tsx:391
924
+ #: src/app.tsx:365
925
+ #: src/app.tsx:412
886
926
  msgid "Sign In"
887
927
  msgstr "Sign In"
888
928
 
@@ -903,23 +943,27 @@ msgstr "Site Name"
903
943
 
904
944
  #. @context: Collection form field
905
945
  #. @context: Collection form field
946
+ #. @context: Page form field label - URL slug
906
947
  #: src/routes/dash/collections.tsx:133
907
- #: src/routes/dash/collections.tsx:325
948
+ #: src/routes/dash/collections.tsx:314
949
+ #: src/theme/components/PageForm.tsx:64
908
950
  msgid "Slug"
909
951
  msgstr "Slug"
910
952
 
911
953
  #. @context: Post form field - name of the source website or author
912
954
  #: src/theme/components/PostForm.tsx:216
913
- msgid "Source Name (optional)"
914
- msgstr "Source Name (optional)"
955
+ #~ msgid "Source Name (optional)"
956
+ #~ msgstr "Source Name (optional)"
915
957
 
916
958
  #. @context: Post form field
917
959
  #: src/theme/components/PostForm.tsx:200
918
- msgid "Source URL (optional)"
919
- msgstr "Source URL (optional)"
960
+ #~ msgid "Source URL (optional)"
961
+ #~ msgstr "Source URL (optional)"
920
962
 
921
963
  #. @context: Page form field label - publish status
964
+ #. @context: Post form field
922
965
  #: src/theme/components/PageForm.tsx:117
966
+ #: src/theme/components/PostForm.tsx:222
923
967
  msgid "Status"
924
968
  msgstr "Status"
925
969
 
@@ -938,13 +982,18 @@ msgstr "The destination path or URL"
938
982
  msgid "The path to redirect from"
939
983
  msgstr "The path to redirect from"
940
984
 
941
- #. @context: Page path helper text
985
+ #. @context: Quote text placeholder
986
+ #: src/theme/components/PostForm.tsx:146
987
+ msgid "The text being quoted..."
988
+ msgstr "The text being quoted..."
989
+
990
+ #. @context: Page slug helper text
942
991
  #: src/theme/components/PageForm.tsx:85
943
992
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
944
993
  msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
945
994
 
946
995
  #. @context: Password reset error description
947
- #: src/app.tsx:567
996
+ #: src/app.tsx:588
948
997
  msgid "This password reset link is invalid or has expired. Please generate a new one."
949
998
  msgstr "This password reset link is invalid or has expired. Please generate a new one."
950
999
 
@@ -954,17 +1003,17 @@ msgid "This will theme both your site and your dashboard. All color themes suppo
954
1003
  msgstr "This will theme both your site and your dashboard. All color themes support dark mode."
955
1004
 
956
1005
  #. @context: Thread view indicator - first post in thread
957
- #: src/theme/components/ThreadView.tsx:57
1006
+ #: src/theme/components/ThreadView.tsx:60
958
1007
  msgid "Thread start"
959
1008
  msgstr "Thread start"
960
1009
 
961
1010
  #. @context: Thread view header - multiple posts
962
- #: src/theme/components/ThreadView.tsx:102
1011
+ #: src/theme/components/ThreadView.tsx:105
963
1012
  msgid "Thread with {count} posts"
964
1013
  msgstr "Thread with {count} posts"
965
1014
 
966
1015
  #. @context: Thread view header - single post
967
- #: src/theme/components/ThreadView.tsx:98
1016
+ #: src/theme/components/ThreadView.tsx:101
968
1017
  msgid "Thread with 1 post"
969
1018
  msgstr "Thread with 1 post"
970
1019
 
@@ -972,13 +1021,13 @@ msgstr "Thread with 1 post"
972
1021
  #. @context: Collection form field
973
1022
  #. @context: Page form field label - title
974
1023
  #: src/routes/dash/collections.tsx:114
975
- #: src/routes/dash/collections.tsx:315
1024
+ #: src/routes/dash/collections.tsx:304
976
1025
  #: src/theme/components/PageForm.tsx:44
977
1026
  msgid "Title"
978
1027
  msgstr "Title"
979
1028
 
980
1029
  #. @context: Post form field
981
- #: src/theme/components/PostForm.tsx:91
1030
+ #: src/theme/components/PostForm.tsx:86
982
1031
  msgid "Title (optional)"
983
1032
  msgstr "Title (optional)"
984
1033
 
@@ -987,10 +1036,8 @@ msgstr "Title (optional)"
987
1036
  msgid "To Path"
988
1037
  msgstr "To Path"
989
1038
 
990
- #. @context: Post form field - post type
991
1039
  #. @context: Redirect form field
992
1040
  #: src/routes/dash/redirects.tsx:142
993
- #: src/theme/components/PostForm.tsx:64
994
1041
  msgid "Type"
995
1042
  msgstr "Type"
996
1043
 
@@ -998,23 +1045,23 @@ msgstr "Type"
998
1045
  #. @context: Post visibility option
999
1046
  #: src/theme/components/PostForm.tsx:255
1000
1047
  #: src/theme/components/VisibilityBadge.tsx:34
1001
- msgid "Unlisted"
1002
- msgstr "Unlisted"
1048
+ #~ msgid "Unlisted"
1049
+ #~ msgstr "Unlisted"
1003
1050
 
1004
1051
  #. @context: Default title for untitled page
1005
1052
  #. @context: Default title for untitled post
1006
- #: src/routes/dash/pages.tsx:91
1007
- #: src/theme/components/PostList.tsx:78
1053
+ #: src/routes/dash/pages.tsx:86
1054
+ #: src/theme/components/PostList.tsx:86
1008
1055
  msgid "Untitled"
1009
1056
  msgstr "Untitled"
1010
1057
 
1011
1058
  #. @context: Button to update existing post
1012
- #: src/theme/components/PostForm.tsx:315
1059
+ #: src/theme/components/PostForm.tsx:319
1013
1060
  msgid "Update"
1014
1061
  msgstr "Update"
1015
1062
 
1016
1063
  #. @context: Button to save collection changes
1017
- #: src/routes/dash/collections.tsx:351
1064
+ #: src/routes/dash/collections.tsx:340
1018
1065
  msgid "Update Collection"
1019
1066
  msgstr "Update Collection"
1020
1067
 
@@ -1050,6 +1097,11 @@ msgstr "Uploading..."
1050
1097
  msgid "URL"
1051
1098
  msgstr "URL"
1052
1099
 
1100
+ #. @context: Post form field - source URL
1101
+ #: src/theme/components/PostForm.tsx:122
1102
+ msgid "URL (optional)"
1103
+ msgstr "URL (optional)"
1104
+
1053
1105
  #. @context: Collection path help text
1054
1106
  #: src/routes/dash/collections.tsx:144
1055
1107
  msgid "URL-safe identifier (lowercase, numbers, hyphens)"
@@ -1069,11 +1121,11 @@ msgstr "Use this URL to embed the media in your posts."
1069
1121
  #. @context: Button to view post on public site
1070
1122
  #: src/routes/dash/collections.tsx:71
1071
1123
  #: src/routes/dash/collections.tsx:225
1072
- #: src/routes/dash/pages.tsx:73
1073
- #: src/routes/dash/pages.tsx:143
1124
+ #: src/routes/dash/pages.tsx:69
1125
+ #: src/routes/dash/pages.tsx:134
1074
1126
  #: src/routes/dash/posts.tsx:147
1075
1127
  #: src/theme/components/ActionButtons.tsx:76
1076
- #: src/theme/components/PostList.tsx:51
1128
+ #: src/theme/components/PostList.tsx:55
1077
1129
  msgid "View"
1078
1130
  msgstr "View"
1079
1131
 
@@ -1089,16 +1141,16 @@ msgstr "View Site"
1089
1141
 
1090
1142
  #. @context: Post form field
1091
1143
  #: src/theme/components/PostForm.tsx:236
1092
- msgid "Visibility"
1093
- msgstr "Visibility"
1144
+ #~ msgid "Visibility"
1145
+ #~ msgstr "Visibility"
1094
1146
 
1095
1147
  #. @context: Setup page welcome heading
1096
- #: src/app.tsx:188
1148
+ #: src/app.tsx:209
1097
1149
  msgid "Welcome to Jant"
1098
1150
  msgstr "Welcome to Jant"
1099
1151
 
1100
1152
  #. @context: Post content placeholder
1101
- #: src/theme/components/PostForm.tsx:115
1153
+ #: src/theme/components/PostForm.tsx:110
1102
1154
  msgid "What's on your mind?"
1103
1155
  msgstr "What's on your mind?"
1104
1156
 
@@ -1108,6 +1160,6 @@ msgid "What's this collection about?"
1108
1160
  msgstr "What's this collection about?"
1109
1161
 
1110
1162
  #. @context: Setup form field - user name
1111
- #: src/app.tsx:209
1163
+ #: src/app.tsx:230
1112
1164
  msgid "Your Name"
1113
1165
  msgstr "Your Name"