@jant/core 0.3.24 → 0.3.26

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 (277) hide show
  1. package/dist/app.js +101 -571
  2. package/dist/client.js +1 -0
  3. package/dist/db/schema.js +1 -1
  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/index.js +3 -9
  8. package/dist/lib/avatar-upload.js +134 -0
  9. package/dist/lib/config.js +39 -0
  10. package/dist/lib/constants.js +10 -9
  11. package/dist/lib/favicon.js +102 -0
  12. package/dist/lib/image.js +13 -17
  13. package/dist/lib/media-helpers.js +2 -2
  14. package/dist/lib/nav-reorder.js +1 -1
  15. package/dist/lib/navigation.js +48 -3
  16. package/dist/lib/pagination.js +44 -0
  17. package/dist/lib/render.js +16 -11
  18. package/dist/lib/schemas.js +34 -3
  19. package/dist/lib/theme.js +4 -4
  20. package/dist/lib/timeline.js +24 -48
  21. package/dist/lib/timezones.js +388 -0
  22. package/dist/lib/view.js +3 -3
  23. package/dist/routes/api/collections.js +124 -0
  24. package/dist/routes/api/nav-items.js +104 -0
  25. package/dist/routes/api/pages.js +91 -0
  26. package/dist/routes/api/posts.js +3 -3
  27. package/dist/routes/api/search.js +2 -2
  28. package/dist/routes/api/settings.js +68 -0
  29. package/dist/routes/api/upload.js +3 -3
  30. package/dist/routes/auth/reset.js +221 -0
  31. package/dist/routes/auth/setup.js +194 -0
  32. package/dist/routes/auth/signin.js +176 -0
  33. package/dist/routes/compose.js +48 -0
  34. package/dist/routes/dash/collections.js +24 -416
  35. package/dist/routes/dash/index.js +1 -1
  36. package/dist/routes/dash/media.js +13 -393
  37. package/dist/routes/dash/pages.js +112 -86
  38. package/dist/routes/dash/posts.js +3 -5
  39. package/dist/routes/dash/redirects.js +20 -14
  40. package/dist/routes/dash/settings.js +213 -518
  41. package/dist/routes/feed/rss.js +4 -3
  42. package/dist/routes/feed/sitemap.js +5 -3
  43. package/dist/routes/pages/archive.js +3 -6
  44. package/dist/routes/pages/collection.js +3 -6
  45. package/dist/routes/pages/collections.js +28 -0
  46. package/dist/routes/pages/featured.js +36 -0
  47. package/dist/routes/pages/home.js +33 -49
  48. package/dist/routes/pages/latest.js +45 -0
  49. package/dist/routes/pages/page.js +29 -32
  50. package/dist/routes/pages/post.js +3 -6
  51. package/dist/routes/pages/search.js +3 -6
  52. package/dist/services/page.js +5 -1
  53. package/dist/services/post.js +45 -31
  54. package/dist/services/search.js +1 -1
  55. package/dist/types/bindings.js +3 -0
  56. package/dist/types/config.js +147 -0
  57. package/dist/types/constants.js +27 -0
  58. package/dist/types/entities.js +3 -0
  59. package/dist/types/operations.js +3 -0
  60. package/dist/types/props.js +3 -0
  61. package/dist/types/views.js +5 -0
  62. package/dist/types.js +8 -111
  63. package/dist/{theme → ui}/color-themes.js +33 -33
  64. package/dist/ui/compose/ComposeDialog.js +467 -0
  65. package/dist/ui/compose/ComposePrompt.js +55 -0
  66. package/dist/{theme/components/TypeBadge.js → ui/dash/FormatBadge.js} +1 -2
  67. package/dist/{theme/components → ui/dash}/PageForm.js +21 -15
  68. package/dist/{theme/components → ui/dash}/PostForm.js +22 -43
  69. package/dist/{theme/components → ui/dash}/PostList.js +6 -6
  70. package/dist/{theme/components/VisibilityBadge.js → ui/dash/StatusBadge.js} +1 -2
  71. package/dist/ui/dash/collections/CollectionForm.js +152 -0
  72. package/dist/ui/dash/collections/CollectionsListContent.js +68 -0
  73. package/dist/ui/dash/collections/ViewCollectionContent.js +96 -0
  74. package/dist/{theme/components → ui/dash}/index.js +3 -6
  75. package/dist/ui/dash/media/MediaListContent.js +166 -0
  76. package/dist/ui/dash/media/ViewMediaContent.js +212 -0
  77. package/dist/ui/dash/pages/LinkFormContent.js +130 -0
  78. package/dist/ui/dash/pages/UnifiedPagesContent.js +193 -0
  79. package/dist/ui/dash/settings/AccountContent.js +209 -0
  80. package/dist/ui/dash/settings/AppearanceContent.js +259 -0
  81. package/dist/ui/dash/settings/GeneralContent.js +536 -0
  82. package/dist/ui/dash/settings/SettingsNav.js +41 -0
  83. package/dist/{themes/threads/timeline → ui/feed}/LinkCard.js +6 -2
  84. package/dist/{themes/threads/timeline → ui/feed}/NoteCard.js +11 -6
  85. package/dist/{themes/threads/timeline → ui/feed}/QuoteCard.js +10 -6
  86. package/dist/{themes/threads/timeline → ui/feed}/ThreadPreview.js +7 -9
  87. package/dist/ui/feed/TimelineFeed.js +41 -0
  88. package/dist/ui/feed/TimelineItem.js +27 -0
  89. package/dist/ui/font-themes.js +36 -0
  90. package/dist/{theme → ui}/layouts/BaseLayout.js +34 -2
  91. package/dist/{theme → ui}/layouts/DashLayout.js +0 -8
  92. package/dist/ui/layouts/SiteLayout.js +169 -0
  93. package/dist/{themes/threads → ui}/pages/ArchivePage.js +16 -14
  94. package/dist/{themes/threads → ui}/pages/CollectionPage.js +6 -1
  95. package/dist/ui/pages/CollectionsPage.js +76 -0
  96. package/dist/ui/pages/FeaturedPage.js +24 -0
  97. package/dist/ui/pages/HomePage.js +24 -0
  98. package/dist/{themes/threads → ui}/pages/PostPage.js +13 -8
  99. package/dist/{themes/threads → ui}/pages/SearchPage.js +9 -7
  100. package/dist/{themes/threads → ui}/pages/SinglePage.js +3 -2
  101. package/dist/{theme/components → ui/shared}/MediaGallery.js +1 -1
  102. package/dist/{theme/components → ui/shared}/Pagination.js +41 -2
  103. package/dist/{theme/components → ui/shared}/ThreadView.js +2 -2
  104. package/dist/ui/shared/index.js +5 -0
  105. package/package.json +1 -9
  106. package/src/__tests__/helpers/db.ts +3 -0
  107. package/src/app.tsx +131 -561
  108. package/src/client.ts +1 -0
  109. package/src/db/migrations/0006_rename_slug_to_path.sql +5 -0
  110. package/src/db/migrations/meta/_journal.json +7 -0
  111. package/src/db/schema.ts +1 -1
  112. package/src/i18n/locales/en.po +477 -261
  113. package/src/i18n/locales/en.ts +1 -1
  114. package/src/i18n/locales/zh-Hans.po +477 -261
  115. package/src/i18n/locales/zh-Hans.ts +1 -1
  116. package/src/i18n/locales/zh-Hant.po +477 -261
  117. package/src/i18n/locales/zh-Hant.ts +1 -1
  118. package/src/index.ts +7 -36
  119. package/src/lib/__tests__/config.test.ts +192 -0
  120. package/src/lib/__tests__/favicon.test.ts +151 -0
  121. package/src/lib/__tests__/image.test.ts +2 -6
  122. package/src/lib/__tests__/schemas.test.ts +60 -19
  123. package/src/lib/__tests__/timeline.test.ts +45 -81
  124. package/src/lib/__tests__/timezones.test.ts +61 -0
  125. package/src/lib/__tests__/view.test.ts +15 -9
  126. package/src/lib/avatar-upload.ts +165 -0
  127. package/src/lib/config.ts +47 -0
  128. package/src/lib/constants.ts +19 -10
  129. package/src/lib/favicon.ts +115 -0
  130. package/src/lib/image.ts +13 -21
  131. package/src/lib/media-helpers.ts +2 -2
  132. package/src/lib/nav-reorder.ts +1 -1
  133. package/src/lib/navigation.ts +73 -4
  134. package/src/lib/pagination.ts +50 -0
  135. package/src/lib/render.tsx +22 -15
  136. package/src/lib/schemas.ts +47 -6
  137. package/src/lib/theme.ts +5 -5
  138. package/src/lib/timeline.ts +28 -57
  139. package/src/lib/timezones.ts +325 -0
  140. package/src/lib/view.ts +3 -3
  141. package/src/preset.css +2 -1
  142. package/src/routes/__tests__/compose.test.ts +199 -0
  143. package/src/routes/api/__tests__/collections.test.ts +249 -0
  144. package/src/routes/api/__tests__/nav-items.test.ts +222 -0
  145. package/src/routes/api/__tests__/pages.test.ts +218 -0
  146. package/src/routes/api/__tests__/settings.test.ts +132 -0
  147. package/src/routes/api/collections.ts +143 -0
  148. package/src/routes/api/nav-items.ts +115 -0
  149. package/src/routes/api/pages.ts +101 -0
  150. package/src/routes/api/posts.ts +3 -3
  151. package/src/routes/api/search.ts +2 -2
  152. package/src/routes/api/settings.ts +91 -0
  153. package/src/routes/api/upload.ts +2 -3
  154. package/src/routes/auth/reset.tsx +239 -0
  155. package/src/routes/auth/setup.tsx +189 -0
  156. package/src/routes/auth/signin.tsx +163 -0
  157. package/src/routes/compose.ts +63 -0
  158. package/src/routes/dash/__tests__/pages.test.ts +225 -0
  159. package/src/routes/dash/__tests__/settings-avatar.test.ts +89 -0
  160. package/src/routes/dash/collections.tsx +18 -367
  161. package/src/routes/dash/index.tsx +1 -1
  162. package/src/routes/dash/media.tsx +13 -415
  163. package/src/routes/dash/pages.tsx +131 -98
  164. package/src/routes/dash/posts.tsx +3 -7
  165. package/src/routes/dash/redirects.tsx +22 -16
  166. package/src/routes/dash/settings.tsx +265 -478
  167. package/src/routes/feed/__tests__/rss.test.ts +141 -0
  168. package/src/routes/feed/rss.ts +5 -3
  169. package/src/routes/feed/sitemap.ts +5 -3
  170. package/src/routes/pages/__tests__/collections.test.ts +94 -0
  171. package/src/routes/pages/__tests__/featured.test.ts +94 -0
  172. package/src/routes/pages/archive.tsx +2 -6
  173. package/src/routes/pages/collection.tsx +2 -6
  174. package/src/routes/pages/collections.tsx +36 -0
  175. package/src/routes/pages/featured.tsx +44 -0
  176. package/src/routes/pages/home.tsx +30 -53
  177. package/src/routes/pages/latest.tsx +59 -0
  178. package/src/routes/pages/page.tsx +28 -30
  179. package/src/routes/pages/post.tsx +2 -5
  180. package/src/routes/pages/search.tsx +2 -6
  181. package/src/services/__tests__/page.test.ts +106 -0
  182. package/src/services/__tests__/post.test.ts +114 -15
  183. package/src/services/page.ts +13 -1
  184. package/src/services/post.ts +58 -40
  185. package/src/services/search.ts +2 -2
  186. package/src/styles/components.css +0 -65
  187. package/src/styles/tokens.css +47 -0
  188. package/src/styles/ui.css +475 -0
  189. package/src/types/bindings.ts +30 -0
  190. package/src/types/config.ts +183 -0
  191. package/src/types/constants.ts +26 -0
  192. package/src/types/entities.ts +109 -0
  193. package/src/types/operations.ts +88 -0
  194. package/src/types/props.ts +115 -0
  195. package/src/types/views.ts +172 -0
  196. package/src/types.ts +8 -774
  197. package/src/ui/__tests__/font-themes.test.ts +34 -0
  198. package/src/{theme → ui}/color-themes.ts +34 -34
  199. package/src/ui/compose/ComposeDialog.tsx +414 -0
  200. package/src/ui/compose/ComposePrompt.tsx +55 -0
  201. package/src/{theme/components/TypeBadge.tsx → ui/dash/FormatBadge.tsx} +2 -3
  202. package/src/{theme/components → ui/dash}/PageForm.tsx +25 -19
  203. package/src/{theme/components → ui/dash}/PostForm.tsx +26 -45
  204. package/src/{theme/components → ui/dash}/PostList.tsx +7 -7
  205. package/src/{theme/components/VisibilityBadge.tsx → ui/dash/StatusBadge.tsx} +2 -3
  206. package/src/ui/dash/collections/CollectionForm.tsx +153 -0
  207. package/src/ui/dash/collections/CollectionsListContent.tsx +85 -0
  208. package/src/ui/dash/collections/ViewCollectionContent.tsx +92 -0
  209. package/src/ui/dash/index.ts +10 -0
  210. package/src/ui/dash/media/MediaListContent.tsx +201 -0
  211. package/src/ui/dash/media/ViewMediaContent.tsx +208 -0
  212. package/src/ui/dash/pages/LinkFormContent.tsx +119 -0
  213. package/src/ui/dash/pages/UnifiedPagesContent.tsx +203 -0
  214. package/src/ui/dash/settings/AccountContent.tsx +176 -0
  215. package/src/ui/dash/settings/AppearanceContent.tsx +254 -0
  216. package/src/ui/dash/settings/GeneralContent.tsx +533 -0
  217. package/src/ui/dash/settings/SettingsNav.tsx +56 -0
  218. package/src/{themes/threads/timeline → ui/feed}/LinkCard.tsx +9 -4
  219. package/src/{themes/threads/timeline → ui/feed}/NoteCard.tsx +13 -8
  220. package/src/{themes/threads/timeline → ui/feed}/QuoteCard.tsx +13 -8
  221. package/src/{themes/threads/timeline → ui/feed}/ThreadPreview.tsx +7 -8
  222. package/src/ui/feed/TimelineFeed.tsx +49 -0
  223. package/src/ui/feed/TimelineItem.tsx +45 -0
  224. package/src/ui/font-themes.ts +54 -0
  225. package/src/{theme → ui}/layouts/BaseLayout.tsx +28 -1
  226. package/src/{theme → ui}/layouts/DashLayout.tsx +0 -10
  227. package/src/ui/layouts/SiteLayout.tsx +164 -0
  228. package/src/{themes/threads → ui}/pages/ArchivePage.tsx +22 -17
  229. package/src/{themes/threads → ui}/pages/CollectionPage.tsx +14 -5
  230. package/src/ui/pages/CollectionsPage.tsx +73 -0
  231. package/src/ui/pages/FeaturedPage.tsx +31 -0
  232. package/src/{themes/threads → ui}/pages/HomePage.tsx +11 -15
  233. package/src/{themes/threads → ui}/pages/PostPage.tsx +23 -14
  234. package/src/{themes/threads → ui}/pages/SearchPage.tsx +13 -11
  235. package/src/{themes/threads → ui}/pages/SinglePage.tsx +4 -4
  236. package/src/{theme/components → ui/shared}/MediaGallery.tsx +1 -1
  237. package/src/{theme/components → ui/shared}/Pagination.tsx +67 -4
  238. package/src/{theme/components → ui/shared}/ThreadView.tsx +2 -2
  239. package/src/ui/shared/__tests__/pagination.test.ts +46 -0
  240. package/src/ui/shared/index.ts +12 -0
  241. package/bin/jant.js +0 -185
  242. package/dist/lib/theme-components.js +0 -46
  243. package/dist/routes/dash/navigation.js +0 -289
  244. package/dist/theme/index.js +0 -18
  245. package/dist/theme/layouts/index.js +0 -2
  246. package/dist/themes/threads/ThreadsSiteLayout.js +0 -172
  247. package/dist/themes/threads/index.js +0 -81
  248. package/dist/themes/threads/pages/HomePage.js +0 -25
  249. package/dist/themes/threads/timeline/TimelineFeed.js +0 -58
  250. package/dist/themes/threads/timeline/TimelineItem.js +0 -36
  251. package/dist/themes/threads/timeline/TimelineLoadMore.js +0 -23
  252. package/dist/themes/threads/timeline/groupByDate.js +0 -22
  253. package/dist/themes/threads/timeline/timelineMore.js +0 -107
  254. package/src/lib/__tests__/theme-components.test.ts +0 -105
  255. package/src/lib/theme-components.ts +0 -65
  256. package/src/routes/dash/navigation.tsx +0 -317
  257. package/src/theme/components/index.ts +0 -23
  258. package/src/theme/index.ts +0 -22
  259. package/src/theme/layouts/index.ts +0 -7
  260. package/src/themes/threads/ThreadsSiteLayout.tsx +0 -194
  261. package/src/themes/threads/index.ts +0 -100
  262. package/src/themes/threads/style.css +0 -336
  263. package/src/themes/threads/timeline/TimelineFeed.tsx +0 -62
  264. package/src/themes/threads/timeline/TimelineItem.tsx +0 -67
  265. package/src/themes/threads/timeline/TimelineLoadMore.tsx +0 -35
  266. package/src/themes/threads/timeline/groupByDate.ts +0 -30
  267. package/src/themes/threads/timeline/timelineMore.tsx +0 -130
  268. /package/dist/{theme/components → ui/dash}/ActionButtons.js +0 -0
  269. /package/dist/{theme/components → ui/dash}/CrudPageHeader.js +0 -0
  270. /package/dist/{theme/components → ui/dash}/DangerZone.js +0 -0
  271. /package/dist/{theme/components → ui/dash}/ListItemRow.js +0 -0
  272. /package/dist/{theme/components → ui/shared}/EmptyState.js +0 -0
  273. /package/src/{theme/components → ui/dash}/ActionButtons.tsx +0 -0
  274. /package/src/{theme/components → ui/dash}/CrudPageHeader.tsx +0 -0
  275. /package/src/{theme/components → ui/dash}/DangerZone.tsx +0 -0
  276. /package/src/{theme/components → ui/dash}/ListItemRow.tsx +0 -0
  277. /package/src/{theme/components → ui/shared}/EmptyState.tsx +0 -0
@@ -18,8 +18,13 @@ msgstr ""
18
18
  #~ msgid "{count} replies"
19
19
  #~ msgstr "{count} replies"
20
20
 
21
+ #. @context: Custom CSS textarea placeholder
22
+ #: src/ui/dash/settings/AppearanceContent.tsx:218
23
+ msgid "/* Your custom CSS here */"
24
+ msgstr "/* Your custom CSS here */"
25
+
21
26
  #. @context: Navigation link
22
- #: src/routes/dash/collections.tsx:271
27
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:84
23
28
  msgid "← Back to Collections"
24
29
  msgstr "← Back to Collections"
25
30
 
@@ -45,33 +50,60 @@ msgstr "301 (Permanent)"
45
50
  msgid "302 (Temporary)"
46
51
  msgstr "302 (Temporary)"
47
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
+
48
58
  #. @context: Settings sub-navigation tab
49
- #: src/routes/dash/settings.tsx:63
59
+ #: src/ui/dash/settings/SettingsNav.tsx:31
50
60
  msgid "Account"
51
61
  msgstr "Account"
52
62
 
63
+ #. @context: Custom CSS settings description
64
+ #: src/ui/dash/settings/AppearanceContent.tsx:208
65
+ msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
66
+ msgstr "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
67
+
68
+ #. @context: Button to add a navigation link
69
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:28
70
+ msgid "Add Link"
71
+ msgstr "Add Link"
72
+
53
73
  #. @context: Button to open media picker
54
- #: src/theme/components/PostForm.tsx:212
74
+ #. @context: Compose toolbar - add media
75
+ #: src/ui/compose/ComposeDialog.tsx:219
76
+ #: src/ui/dash/PostForm.tsx:211
55
77
  msgid "Add Media"
56
78
  msgstr "Add Media"
57
79
 
80
+ #. @context: Button to add page to navigation
81
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:163
82
+ msgid "Add to nav"
83
+ msgstr "Add to nav"
84
+
58
85
  #. @context: Archive filter - all formats
59
- #: src/themes/threads/pages/ArchivePage.tsx:71
86
+ #: src/ui/pages/ArchivePage.tsx:71
60
87
  msgid "All"
61
88
  msgstr "All"
62
89
 
90
+ #. @context: Empty state when all pages are in nav
91
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:146
92
+ msgid "All pages are in your navigation."
93
+ msgstr "All pages are in your navigation."
94
+
63
95
  #. @context: Settings sub-navigation tab
64
- #: src/routes/dash/settings.tsx:55
96
+ #: src/ui/dash/settings/SettingsNav.tsx:23
65
97
  msgid "Appearance"
66
98
  msgstr "Appearance"
67
99
 
68
100
  #. @context: Archive page title
69
- #: src/themes/threads/pages/ArchivePage.tsx:56
101
+ #: src/ui/pages/ArchivePage.tsx:55
70
102
  msgid "Archive"
71
103
  msgstr "Archive"
72
104
 
73
105
  #. @context: Confirmation dialog when deleting a post from the list
74
- #: src/theme/components/PostList.tsx:60
106
+ #: src/ui/dash/PostList.tsx:60
75
107
  msgid "Are you sure you want to delete this post? This cannot be undone."
76
108
  msgstr "Are you sure you want to delete this post? This cannot be undone."
77
109
 
@@ -95,7 +127,7 @@ msgstr "Are you sure you want to delete this post? This cannot be undone."
95
127
  #~ msgstr "At least 1 image required for image posts."
96
128
 
97
129
  #. @context: Button to go back to media list
98
- #: src/routes/dash/media.tsx:266
130
+ #: src/ui/dash/media/ViewMediaContent.tsx:57
99
131
  msgid "Back"
100
132
  msgstr "Back"
101
133
 
@@ -108,42 +140,61 @@ msgstr "Back"
108
140
  #~ msgid "Back to home"
109
141
  #~ msgstr "Back to home"
110
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
+
111
148
  #. @context: Button to cancel and go back
112
149
  #. @context: Button to cancel form
113
150
  #. @context: Button to cancel form
114
151
  #. @context: Button to cancel form
115
152
  #. @context: Button to cancel form
116
- #. @context: Button to cancel form
117
- #: src/routes/dash/collections.tsx:186
118
- #: src/routes/dash/collections.tsx:354
119
- #: src/routes/dash/navigation.tsx:192
120
- #: src/routes/dash/redirects.tsx:177
121
- #: src/theme/components/PageForm.tsx:171
122
- #: src/theme/components/PostForm.tsx:337
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
123
160
  msgid "Cancel"
124
161
  msgstr "Cancel"
125
162
 
126
163
  #. @context: Button to change password
127
164
  #. @context: Settings section heading
128
- #: src/routes/dash/settings.tsx:417
129
- #: src/routes/dash/settings.tsx:482
165
+ #: src/ui/dash/settings/AccountContent.tsx:88
166
+ #: src/ui/dash/settings/AccountContent.tsx:167
130
167
  msgid "Change Password"
131
168
  msgstr "Change Password"
132
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
+
133
175
  #. @context: Hint to click image for lightbox
134
- #: src/routes/dash/media.tsx:299
176
+ #: src/ui/dash/media/ViewMediaContent.tsx:90
135
177
  msgid "Click image to view full size"
136
178
  msgstr "Click image to view full size"
137
179
 
180
+ #. @context: Compose collection field
181
+ #. @context: Compose toolbar - toggle collection
182
+ #: src/ui/compose/ComposeDialog.tsx:191
183
+ #: src/ui/compose/ComposeDialog.tsx:272
184
+ msgid "Collection"
185
+ msgstr "Collection"
186
+
138
187
  #. @context: Post form field - assign to collection
139
- #: src/theme/components/PostForm.tsx:265
188
+ #: src/ui/dash/PostForm.tsx:264
140
189
  msgid "Collection (optional)"
141
190
  msgstr "Collection (optional)"
142
191
 
192
+ #. @context: Collections page heading
143
193
  #. @context: Dashboard heading
144
194
  #. @context: Dashboard navigation - collections management
145
- #: src/routes/dash/collections.tsx:35
146
- #: src/theme/layouts/DashLayout.tsx:114
195
+ #: src/ui/dash/collections/CollectionsListContent.tsx:24
196
+ #: src/ui/layouts/DashLayout.tsx:114
197
+ #: src/ui/pages/CollectionsPage.tsx:18
147
198
  msgid "Collections"
148
199
  msgstr "Collections"
149
200
 
@@ -153,79 +204,84 @@ msgstr "Collections"
153
204
  #~ msgstr "Collections (optional)"
154
205
 
155
206
  #. @context: Appearance settings heading
156
- #: src/routes/dash/settings.tsx:311
207
+ #: src/ui/dash/settings/AppearanceContent.tsx:112
157
208
  msgid "Color theme"
158
209
  msgstr "Color theme"
159
210
 
160
211
  #. @context: Setup form submit button
161
- #: src/app.tsx:275
212
+ #: src/routes/auth/setup.tsx:108
162
213
  msgid "Complete Setup"
163
214
  msgstr "Complete Setup"
164
215
 
165
216
  #. @context: Password form field
166
- #: src/routes/dash/settings.tsx:459
217
+ #: src/ui/dash/settings/AccountContent.tsx:130
167
218
  msgid "Confirm New Password"
168
219
  msgstr "Confirm New Password"
169
220
 
170
221
  #. @context: Password reset form field
171
- #: src/app.tsx:536
222
+ #: src/routes/auth/reset.tsx:70
172
223
  msgid "Confirm Password"
173
224
  msgstr "Confirm Password"
174
225
 
175
226
  #. @context: Page form field label - content
176
227
  #. @context: Post form field
177
- #: src/theme/components/PageForm.tsx:96
178
- #: src/theme/components/PostForm.tsx:105
228
+ #: src/ui/dash/PageForm.tsx:96
229
+ #: src/ui/dash/PostForm.tsx:104
179
230
  msgid "Content"
180
231
  msgstr "Content"
181
232
 
182
233
  #. @context: Button to copy Markdown to clipboard
183
234
  #. @context: Button to copy URL to clipboard
184
- #: src/routes/dash/media.tsx:337
185
- #: src/routes/dash/media.tsx:374
235
+ #: src/ui/dash/media/ViewMediaContent.tsx:128
236
+ #: src/ui/dash/media/ViewMediaContent.tsx:165
186
237
  msgid "Copy"
187
238
  msgstr "Copy"
188
239
 
189
240
  #. @context: Button to save new collection
190
- #: src/routes/dash/collections.tsx:172
241
+ #: src/ui/dash/collections/CollectionForm.tsx:36
191
242
  msgid "Create Collection"
192
243
  msgstr "Create Collection"
193
244
 
194
245
  #. @context: Button to save new navigation link
195
- #: src/routes/dash/navigation.tsx:178
246
+ #: src/ui/dash/pages/LinkFormContent.tsx:104
196
247
  msgid "Create Link"
197
248
  msgstr "Create Link"
198
249
 
199
250
  #. @context: Button to create new page
200
- #: src/theme/components/PageForm.tsx:157
251
+ #: src/ui/dash/PageForm.tsx:171
201
252
  msgid "Create Page"
202
253
  msgstr "Create Page"
203
254
 
204
255
  #. @context: Button to save new redirect
205
- #: src/routes/dash/redirects.tsx:163
256
+ #: src/routes/dash/redirects.tsx:177
206
257
  msgid "Create Redirect"
207
258
  msgstr "Create Redirect"
208
259
 
209
260
  #. @context: Setup page description
210
- #: src/app.tsx:215
261
+ #: src/routes/auth/setup.tsx:33
211
262
  msgid "Create your admin account."
212
263
  msgstr "Create your admin account."
213
264
 
214
265
  #. @context: Button in empty state to create first page
215
266
  #: src/routes/dash/pages.tsx:48
216
- msgid "Create your first page"
217
- msgstr "Create your first page"
267
+ #~ msgid "Create your first page"
268
+ #~ msgstr "Create your first page"
218
269
 
219
270
  #. @context: Button in empty state to create first post
220
- #: src/theme/components/PostList.tsx:29
271
+ #: src/ui/dash/PostList.tsx:29
221
272
  msgid "Create your first post"
222
273
  msgstr "Create your first post"
223
274
 
224
275
  #. @context: Password form field
225
- #: src/routes/dash/settings.tsx:426
276
+ #: src/ui/dash/settings/AccountContent.tsx:97
226
277
  msgid "Current Password"
227
278
  msgstr "Current Password"
228
279
 
280
+ #. @context: Appearance settings heading for custom CSS
281
+ #: src/ui/dash/settings/AppearanceContent.tsx:202
282
+ msgid "Custom CSS"
283
+ msgstr "Custom CSS"
284
+
229
285
  #. @context: Post form field
230
286
  #: src/theme/components/PostForm.tsx:297
231
287
  #~ msgid "Custom Path (optional)"
@@ -233,83 +289,95 @@ msgstr "Current Password"
233
289
 
234
290
  #. @context: Post form field
235
291
  #: src/theme/components/PostForm.tsx:293
236
- msgid "Custom Slug (optional)"
237
- msgstr "Custom Slug (optional)"
292
+ #~ msgid "Custom Slug (optional)"
293
+ #~ msgstr "Custom Slug (optional)"
238
294
 
239
295
  #. @context: Slug help text
240
296
  #: 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."
297
+ #~ msgid "Custom URL path. Leave empty to use default /p/ID format."
298
+ #~ msgstr "Custom URL path. Leave empty to use default /p/ID format."
243
299
 
244
300
  #. @context: Section heading for dangerous/destructive actions
245
- #: src/theme/components/DangerZone.tsx:55
301
+ #: src/ui/dash/DangerZone.tsx:55
246
302
  msgid "Danger Zone"
247
303
  msgstr "Danger Zone"
248
304
 
249
305
  #. @context: Dashboard main heading
250
306
  #. @context: Dashboard navigation - main dashboard page
251
307
  #: src/routes/dash/index.tsx:36
252
- #: src/theme/layouts/DashLayout.tsx:78
308
+ #: src/ui/layouts/DashLayout.tsx:78
253
309
  msgid "Dashboard"
254
310
  msgstr "Dashboard"
255
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
+
256
317
  #. @context: Button to delete item
257
- #. @context: Button to delete navigation link
318
+ #. @context: Button to delete link
258
319
  #. @context: Button to delete redirect
259
- #: src/routes/dash/navigation.tsx:66
260
320
  #: src/routes/dash/redirects.tsx:60
261
- #: src/theme/components/ActionButtons.tsx:80
321
+ #: src/ui/dash/ActionButtons.tsx:80
322
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:98
262
323
  msgid "Delete"
263
324
  msgstr "Delete"
264
325
 
265
326
  #. @context: Button to delete collection
266
327
  #: src/routes/dash/collections.tsx:363
267
- msgid "Delete Collection"
268
- msgstr "Delete Collection"
328
+ #~ msgid "Delete Collection"
329
+ #~ msgstr "Delete Collection"
269
330
 
270
331
  #. @context: Button to delete media
271
- #: src/routes/dash/media.tsx:385
332
+ #: src/ui/dash/media/ViewMediaContent.tsx:176
272
333
  msgid "Delete Media"
273
334
  msgstr "Delete Media"
274
335
 
275
336
  #. @context: Button to delete page
276
- #: src/routes/dash/pages.tsx:151
337
+ #: src/routes/dash/pages.tsx:77
277
338
  msgid "Delete Page"
278
339
  msgstr "Delete Page"
279
340
 
280
341
  #. @context: Warning message before deleting media
281
- #: src/routes/dash/media.tsx:391
342
+ #: src/ui/dash/media/ViewMediaContent.tsx:182
282
343
  msgid "Deleting this media will remove it permanently from storage."
283
344
  msgstr "Deleting this media will remove it permanently from storage."
284
345
 
285
346
  #. @context: Hint shown on signin page when demo credentials are pre-filled
286
- #: src/app.tsx:374
347
+ #: src/routes/auth/signin.tsx:40
287
348
  msgid "Demo account pre-filled. Just click Sign In."
288
349
  msgstr "Demo account pre-filled. Just click Sign In."
289
350
 
290
351
  #. @context: Collection form field
291
- #. @context: Collection form field
292
- #: src/routes/dash/collections.tsx:153
293
- #: src/routes/dash/collections.tsx:327
352
+ #: src/ui/dash/collections/CollectionForm.tsx:102
294
353
  msgid "Description (optional)"
295
354
  msgstr "Description (optional)"
296
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
+
297
361
  #. @context: Navigation label help text
298
- #: src/routes/dash/navigation.tsx:140
362
+ #: src/ui/dash/pages/LinkFormContent.tsx:52
299
363
  msgid "Display text for the link"
300
364
  msgstr "Display text for the link"
301
365
 
302
366
  #. @context: Close media picker button
303
- #: src/theme/components/PostForm.tsx:359
367
+ #. @context: Close media picker button
368
+ #: src/ui/compose/ComposeDialog.tsx:394
369
+ #: src/ui/dash/PostForm.tsx:340
304
370
  msgid "Done"
305
371
  msgstr "Done"
306
372
 
373
+ #. @context: Compose button - save as draft
307
374
  #. @context: Page status option - draft
308
375
  #. @context: Post status badge - draft
309
376
  #. @context: Post status option
310
- #: src/theme/components/PageForm.tsx:133
311
- #: src/theme/components/PostForm.tsx:235
312
- #: src/theme/components/VisibilityBadge.tsx:35
377
+ #: src/ui/compose/ComposeDialog.tsx:340
378
+ #: src/ui/dash/PageForm.tsx:133
379
+ #: src/ui/dash/PostForm.tsx:234
380
+ #: src/ui/dash/StatusBadge.tsx:34
313
381
  msgid "Draft"
314
382
  msgstr "Draft"
315
383
 
@@ -326,39 +394,41 @@ msgstr "Drafts"
326
394
  #. @context: Button to edit collection
327
395
  #. @context: Button to edit collection
328
396
  #. @context: Button to edit item
329
- #. @context: Button to edit navigation link
397
+ #. @context: Button to edit link
398
+ #. @context: Button to edit page
330
399
  #. @context: Button to edit page
331
400
  #. @context: Button to edit page
332
401
  #. @context: Button to edit post
333
402
  #. @context: Button to edit post
334
- #: src/routes/dash/collections.tsx:66
335
- #: src/routes/dash/collections.tsx:220
336
- #: src/routes/dash/navigation.tsx:61
337
- #: src/routes/dash/pages.tsx:62
338
- #: src/routes/dash/pages.tsx:129
339
- #: src/routes/dash/posts.tsx:142
340
- #: src/theme/components/ActionButtons.tsx:72
341
- #: src/theme/components/PostList.tsx:50
403
+ #: src/routes/dash/pages.tsx:55
404
+ #: src/routes/dash/posts.tsx:140
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
411
+ #: src/ui/dash/PostList.tsx:50
342
412
  msgid "Edit"
343
413
  msgstr "Edit"
344
414
 
345
415
  #. @context: Page heading
346
- #: src/routes/dash/collections.tsx:293
416
+ #: src/ui/dash/collections/CollectionForm.tsx:28
347
417
  msgid "Edit Collection"
348
418
  msgstr "Edit Collection"
349
419
 
350
420
  #. @context: Page heading
351
- #: src/routes/dash/navigation.tsx:105
421
+ #: src/ui/dash/pages/LinkFormContent.tsx:17
352
422
  msgid "Edit Link"
353
423
  msgstr "Edit Link"
354
424
 
355
425
  #. @context: Edit page main heading
356
- #: src/routes/dash/pages.tsx:167
426
+ #: src/routes/dash/pages.tsx:93
357
427
  msgid "Edit Page"
358
428
  msgstr "Edit Page"
359
429
 
360
430
  #. @context: Page heading
361
- #: src/routes/dash/posts.tsx:185
431
+ #: src/routes/dash/posts.tsx:183
362
432
  msgid "Edit Post"
363
433
  msgstr "Edit Post"
364
434
 
@@ -373,37 +443,48 @@ msgstr "Edit Post"
373
443
 
374
444
  #. @context: Setup/signin form field - email
375
445
  #. @context: Setup/signin form field - email
376
- #: src/app.tsx:245
377
- #: src/app.tsx:389
446
+ #: src/routes/auth/setup.tsx:64
447
+ #: src/routes/auth/signin.tsx:55
378
448
  msgid "Email"
379
449
  msgstr "Email"
380
450
 
381
451
  #. @context: Password reset page description
382
- #: src/app.tsx:505
452
+ #: src/routes/auth/reset.tsx:39
383
453
  msgid "Enter your new password."
384
454
  msgstr "Enter your new password."
385
455
 
386
456
  #. @context: Archive filter - featured posts
457
+ #. @context: Browse filter for featured posts
458
+ #. @context: Compose checkbox - mark as featured
459
+ #. @context: Homepage view option - show featured posts
387
460
  #. @context: Post badge - featured
388
461
  #. @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
462
+ #: src/ui/compose/ComposeDialog.tsx:305
463
+ #: src/ui/dash/PostForm.tsx:246
464
+ #: src/ui/dash/settings/GeneralContent.tsx:398
465
+ #: src/ui/dash/StatusBadge.tsx:45
466
+ #: src/ui/layouts/SiteLayout.tsx:55
467
+ #: src/ui/pages/ArchivePage.tsx:92
392
468
  msgid "Featured"
393
469
  msgstr "Featured"
394
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
+
395
476
  #. @context: Post form field - post format
396
- #: src/theme/components/PostForm.tsx:65
477
+ #: src/ui/dash/PostForm.tsx:64
397
478
  msgid "Format"
398
479
  msgstr "Format"
399
480
 
400
481
  #. @context: Search results count - multiple
401
- #: src/themes/threads/pages/SearchPage.tsx:76
482
+ #: src/ui/pages/SearchPage.tsx:73
402
483
  msgid "Found {count} results"
403
484
  msgstr "Found {count} results"
404
485
 
405
486
  #. @context: Search results count - single
406
- #: src/themes/threads/pages/SearchPage.tsx:72
487
+ #: src/ui/pages/SearchPage.tsx:69
407
488
  msgid "Found 1 result"
408
489
  msgstr "Found 1 result"
409
490
 
@@ -414,8 +495,8 @@ msgstr "From Path"
414
495
 
415
496
  #. @context: Settings section heading
416
497
  #. @context: Settings sub-navigation tab
417
- #: src/routes/dash/settings.tsx:47
418
- #: src/routes/dash/settings.tsx:131
498
+ #: src/ui/dash/settings/GeneralContent.tsx:299
499
+ #: src/ui/dash/settings/SettingsNav.tsx:15
419
500
  msgid "General"
420
501
  msgstr "General"
421
502
 
@@ -434,72 +515,96 @@ msgstr "General"
434
515
  #~ msgstr "Images"
435
516
 
436
517
  #. @context: Media upload instructions - auto optimization
437
- #: src/routes/dash/media.tsx:171
518
+ #: src/ui/dash/media/MediaListContent.tsx:147
438
519
  msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
439
520
  msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
440
521
 
441
522
  #. @context: Password reset error heading
442
- #: src/app.tsx:580
523
+ #: src/routes/auth/reset.tsx:120
443
524
  msgid "Invalid or Expired Link"
444
525
  msgstr "Invalid or Expired Link"
445
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
+
446
532
  #. @context: Navigation link form field
447
- #: src/routes/dash/navigation.tsx:127
533
+ #: src/ui/dash/pages/LinkFormContent.tsx:39
448
534
  msgid "Label"
449
535
  msgstr "Label"
450
536
 
451
537
  #. @context: Settings form field
452
- #: src/routes/dash/settings.tsx:172
538
+ #: src/ui/dash/settings/GeneralContent.tsx:350
453
539
  msgid "Language"
454
540
  msgstr "Language"
455
541
 
542
+ #. @context: Browse filter for latest posts
543
+ #. @context: Homepage view option - show latest posts
544
+ #: src/ui/dash/settings/GeneralContent.tsx:388
545
+ #: src/ui/layouts/SiteLayout.tsx:48
546
+ msgid "Latest"
547
+ msgstr "Latest"
548
+
456
549
  #. @context: Setup page description
457
550
  #: src/app.tsx:130
458
551
  #~ msgid "Let's set up your site."
459
552
  #~ msgstr "Let's set up your site."
460
553
 
554
+ #. @context: Nav item type badge
555
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:123
556
+ msgid "link"
557
+ msgstr "link"
558
+
559
+ #. @context: Compose format tab
461
560
  #. @context: Post format badge - link
462
561
  #. @context: Post format label - link
463
562
  #. @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
563
+ #: src/ui/compose/ComposeDialog.tsx:101
564
+ #: src/ui/dash/FormatBadge.tsx:20
565
+ #: src/ui/dash/PostForm.tsx:74
566
+ #: src/ui/pages/ArchivePage.tsx:17
467
567
  msgid "Link"
468
568
  msgstr "Link"
469
569
 
470
570
  #. @context: Post format label plural - links
471
- #: src/themes/threads/pages/ArchivePage.tsx:33
571
+ #: src/ui/pages/ArchivePage.tsx:33
472
572
  msgid "Links"
473
573
  msgstr "Links"
474
574
 
475
575
  #. @context: Pagination button - load more items
476
- #: src/theme/components/Pagination.tsx:103
576
+ #: src/ui/shared/Pagination.tsx:104
477
577
  msgid "Load more"
478
578
  msgstr "Load more"
479
579
 
480
- #. @context: Loading indicator while fetching more posts
481
580
  #. @context: Loading state for media picker
482
- #: src/theme/components/PostForm.tsx:370
483
- #: src/themes/threads/timeline/TimelineLoadMore.tsx:28
581
+ #. @context: Loading state for media picker
582
+ #: src/ui/compose/ComposeDialog.tsx:405
583
+ #: src/ui/dash/PostForm.tsx:351
484
584
  msgid "Loading..."
485
585
  msgstr "Loading..."
486
586
 
487
587
  #. @context: Page slug validation message
488
- #: src/theme/components/PageForm.tsx:77
588
+ #: src/ui/dash/PageForm.tsx:77
489
589
  msgid "Lowercase letters, numbers, and hyphens only"
490
590
  msgstr "Lowercase letters, numbers, and hyphens only"
491
591
 
492
592
  #. @context: Media detail section - Markdown snippet
493
- #: src/routes/dash/media.tsx:355
593
+ #: src/ui/dash/media/ViewMediaContent.tsx:146
494
594
  msgid "Markdown"
495
595
  msgstr "Markdown"
496
596
 
597
+ #. @context: Placeholder for footer textarea
598
+ #: src/ui/dash/settings/GeneralContent.tsx:466
599
+ msgid "Markdown supported"
600
+ msgstr "Markdown supported"
601
+
497
602
  #. @context: Dashboard navigation - media library
498
603
  #. @context: Media main heading
499
604
  #. @context: Post form field - media attachments
500
- #: src/routes/dash/media.tsx:151
501
- #: src/theme/components/PostForm.tsx:159
502
- #: src/theme/layouts/DashLayout.tsx:105
605
+ #: src/ui/dash/media/MediaListContent.tsx:127
606
+ #: src/ui/dash/PostForm.tsx:158
607
+ #: src/ui/layouts/DashLayout.tsx:105
503
608
  msgid "Media"
504
609
  msgstr "Media"
505
610
 
@@ -509,12 +614,12 @@ msgstr "Media"
509
614
  #~ msgstr "My Blog"
510
615
 
511
616
  #. @context: Collection title placeholder
512
- #: src/routes/dash/collections.tsx:124
617
+ #: src/ui/dash/collections/CollectionForm.tsx:70
513
618
  msgid "My Collection"
514
619
  msgstr "My Collection"
515
620
 
516
621
  #. @context: Account settings form field
517
- #: src/routes/dash/settings.tsx:373
622
+ #: src/ui/dash/settings/AccountContent.tsx:38
518
623
  msgid "Name"
519
624
  msgstr "Name"
520
625
 
@@ -522,8 +627,8 @@ msgstr "Name"
522
627
  #. @context: Dashboard navigation - navigation links management
523
628
  #: src/routes/dash/navigation.tsx:29
524
629
  #: src/theme/layouts/DashLayout.tsx:133
525
- msgid "Navigation"
526
- msgstr "Navigation"
630
+ #~ msgid "Navigation"
631
+ #~ msgstr "Navigation"
527
632
 
528
633
  #. @context: Help text with link
529
634
  #: src/routes/dash/index.tsx:78
@@ -533,41 +638,39 @@ msgstr "Need help? Visit the <0>documentation</0>"
533
638
  #. @context: Button to create new collection
534
639
  #. @context: Button to create new collection
535
640
  #. @context: Page heading
536
- #: src/routes/dash/collections.tsx:39
537
- #: src/routes/dash/collections.tsx:52
538
- #: 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
539
644
  msgid "New Collection"
540
645
  msgstr "New Collection"
541
646
 
542
- #. @context: Button to create new navigation link
543
- #. @context: Button to create new navigation link
544
647
  #. @context: Page heading
545
- #: src/routes/dash/navigation.tsx:33
546
- #: src/routes/dash/navigation.tsx:46
547
- #: src/routes/dash/navigation.tsx:106
648
+ #: src/ui/dash/pages/LinkFormContent.tsx:18
548
649
  msgid "New Link"
549
650
  msgstr "New Link"
550
651
 
551
652
  #. @context: Button to create new page
552
653
  #. @context: New page main heading
553
- #: src/routes/dash/pages.tsx:35
554
- #: src/routes/dash/pages.tsx:105
654
+ #: src/routes/dash/pages.tsx:31
655
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:34
555
656
  msgid "New Page"
556
657
  msgstr "New Page"
557
658
 
558
659
  #. @context: Password form field
559
660
  #. @context: Password reset form field
560
- #: src/app.tsx:520
561
- #: src/routes/dash/settings.tsx:442
661
+ #: src/routes/auth/reset.tsx:54
662
+ #: src/ui/dash/settings/AccountContent.tsx:113
562
663
  msgid "New Password"
563
664
  msgstr "New Password"
564
665
 
565
666
  #. @context: Button to create new post
566
667
  #. @context: Button to create new post
668
+ #. @context: Compose dialog title
567
669
  #. @context: Page heading
568
670
  #: src/routes/dash/index.tsx:68
569
671
  #: src/routes/dash/posts.tsx:30
570
672
  #: src/routes/dash/posts.tsx:46
673
+ #: src/ui/compose/ComposeDialog.tsx:66
571
674
  msgid "New Post"
572
675
  msgstr "New Post"
573
676
 
@@ -582,47 +685,59 @@ msgstr "New Redirect"
582
685
 
583
686
  #. @context: Pagination button - next page
584
687
  #. @context: Pagination button - next page
585
- #: src/theme/components/Pagination.tsx:49
586
- #: src/theme/components/Pagination.tsx:160
688
+ #: src/ui/shared/Pagination.tsx:50
689
+ #: src/ui/shared/Pagination.tsx:167
587
690
  msgid "Next"
588
691
  msgstr "Next"
589
692
 
590
693
  #. @context: Empty state message
591
- #: src/routes/dash/collections.tsx:48
694
+ #. @context: Empty state message on collections page
695
+ #: src/ui/dash/collections/CollectionsListContent.tsx:37
696
+ #: src/ui/pages/CollectionsPage.tsx:28
592
697
  msgid "No collections yet."
593
698
  msgstr "No collections yet."
594
699
 
700
+ #. @context: Empty state message on featured page
701
+ #: src/ui/pages/FeaturedPage.tsx:20
702
+ msgid "No featured posts yet."
703
+ msgstr "No featured posts yet."
704
+
595
705
  #. @context: Empty state message when no media exists
596
- #: src/routes/dash/media.tsx:186
706
+ #: src/ui/dash/media/MediaListContent.tsx:162
597
707
  msgid "No media uploaded yet."
598
708
  msgstr "No media uploaded yet."
599
709
 
600
710
  #. @context: Empty state message
601
711
  #: src/routes/dash/navigation.tsx:42
602
- msgid "No navigation links configured."
603
- msgstr "No navigation links configured."
712
+ #~ msgid "No navigation links configured."
713
+ #~ msgstr "No navigation links configured."
714
+
715
+ #. @context: Empty state for navigation section
716
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:52
717
+ msgid "No navigation links yet. Add pages to navigation or create links."
718
+ msgstr "No navigation links yet. Add pages to navigation or create links."
604
719
 
605
720
  #. @context: Empty state message when no pages exist
606
721
  #: src/routes/dash/pages.tsx:44
607
- msgid "No pages yet."
608
- msgstr "No pages yet."
722
+ #~ msgid "No pages yet."
723
+ #~ msgstr "No pages yet."
609
724
 
610
725
  #. @context: Archive empty state
611
- #: src/themes/threads/pages/ArchivePage.tsx:100
726
+ #: src/ui/pages/ArchivePage.tsx:103
612
727
  msgid "No posts found."
613
728
  msgstr "No posts found."
614
729
 
615
730
  #. @context: Empty state message
616
731
  #. @context: Empty state message
617
- #: src/routes/dash/collections.tsx:243
618
- #: src/themes/threads/pages/CollectionPage.tsx:29
732
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:56
733
+ #: src/ui/pages/CollectionPage.tsx:29
619
734
  msgid "No posts in this collection."
620
735
  msgstr "No posts in this collection."
621
736
 
622
737
  #. @context: Empty state message on home page
623
738
  #. @context: Empty state message when no posts exist
624
- #: src/theme/components/PostList.tsx:25
625
- #: src/themes/threads/pages/HomePage.tsx:26
739
+ #: src/ui/dash/PostList.tsx:25
740
+ #: src/ui/pages/HomePage.tsx:23
626
741
  msgid "No posts yet."
627
742
  msgstr "No posts yet."
628
743
 
@@ -632,60 +747,76 @@ msgid "No redirects configured."
632
747
  msgstr "No redirects configured."
633
748
 
634
749
  #. @context: Search empty results
635
- #: src/themes/threads/pages/SearchPage.tsx:67
750
+ #: src/ui/pages/SearchPage.tsx:64
636
751
  msgid "No results found."
637
752
  msgstr "No results found."
638
753
 
639
754
  #. @context: No collection selected
640
- #: src/theme/components/PostForm.tsx:272
755
+ #. @context: No collection selected
756
+ #. @context: No rating selected
757
+ #: src/ui/compose/ComposeDialog.tsx:174
758
+ #: src/ui/compose/ComposeDialog.tsx:198
759
+ #: src/ui/dash/PostForm.tsx:271
641
760
  msgid "None"
642
761
  msgstr "None"
643
762
 
763
+ #. @context: Compose format tab
644
764
  #. @context: Post format badge - note
645
765
  #. @context: Post format label - note
646
766
  #. @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
767
+ #: src/ui/compose/ComposeDialog.tsx:90
768
+ #: src/ui/dash/FormatBadge.tsx:19
769
+ #: src/ui/dash/PostForm.tsx:71
770
+ #: src/ui/pages/ArchivePage.tsx:16
650
771
  msgid "Note"
651
772
  msgstr "Note"
652
773
 
653
774
  #. @context: Post format label plural - notes
654
- #: src/themes/threads/pages/ArchivePage.tsx:29
775
+ #: src/ui/pages/ArchivePage.tsx:29
655
776
  msgid "Notes"
656
777
  msgstr "Notes"
657
778
 
779
+ #. @context: Section heading for pages not in navigation
780
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:139
781
+ msgid "Other pages"
782
+ msgstr "Other pages"
783
+
784
+ #. @context: Nav item type badge
785
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:119
786
+ msgid "page"
787
+ msgstr "page"
788
+
658
789
  #. @context: Default page heading when untitled
659
- #: src/routes/dash/pages.tsx:120
790
+ #: src/routes/dash/pages.tsx:46
660
791
  msgid "Page"
661
792
  msgstr "Page"
662
793
 
663
794
  #. @context: Pagination - current page indicator
664
- #: src/theme/components/Pagination.tsx:164
795
+ #: src/ui/shared/Pagination.tsx:227
665
796
  msgid "Page {page}"
666
797
  msgstr "Page {page}"
667
798
 
668
799
  #. @context: Page content placeholder
669
- #: src/theme/components/PageForm.tsx:104
800
+ #: src/ui/dash/PageForm.tsx:104
670
801
  msgid "Page content (Markdown supported)..."
671
802
  msgstr "Page content (Markdown supported)..."
672
803
 
673
804
  #. @context: Page title placeholder
674
- #: src/theme/components/PageForm.tsx:53
805
+ #: src/ui/dash/PageForm.tsx:53
675
806
  msgid "Page title..."
676
807
  msgstr "Page title..."
677
808
 
678
809
  #. @context: Dashboard navigation - pages management
679
810
  #. @context: Pages main heading
680
- #: src/routes/dash/pages.tsx:34
681
- #: src/theme/layouts/DashLayout.tsx:96
811
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:21
812
+ #: src/ui/layouts/DashLayout.tsx:96
682
813
  msgid "Pages"
683
814
  msgstr "Pages"
684
815
 
685
816
  #. @context: Setup/signin form field - password
686
817
  #. @context: Setup/signin form field - password
687
- #: src/app.tsx:260
688
- #: src/app.tsx:398
818
+ #: src/routes/auth/setup.tsx:79
819
+ #: src/routes/auth/signin.tsx:64
689
820
  msgid "Password"
690
821
  msgstr "Password"
691
822
 
@@ -695,94 +826,93 @@ msgstr "Password"
695
826
  #~ msgstr "Path"
696
827
 
697
828
  #. @context: Navigation URL help text
698
- #: src/routes/dash/navigation.tsx:162
829
+ #: src/ui/dash/pages/LinkFormContent.tsx:74
699
830
  msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
700
831
  msgstr "Path (e.g. /archive) or full URL (e.g. https://example.com)"
701
832
 
702
833
  #. @context: Link to individual post in thread
703
834
  #. @context: Link to permanent URL of post
704
- #: src/theme/components/ThreadView.tsx:71
705
- #: src/themes/threads/pages/PostPage.tsx:39
835
+ #: src/ui/pages/PostPage.tsx:48
836
+ #: src/ui/shared/ThreadView.tsx:71
706
837
  msgid "Permalink"
707
838
  msgstr "Permalink"
708
839
 
840
+ #. @context: Compose checkbox - pin to top
709
841
  #. @context: Post badge - pinned
710
842
  #. @context: Post form checkbox - pin to top
711
- #: src/theme/components/PostForm.tsx:254
712
- #: src/theme/components/VisibilityBadge.tsx:54
843
+ #: src/ui/compose/ComposeDialog.tsx:312
844
+ #: src/ui/dash/PostForm.tsx:253
845
+ #: src/ui/dash/StatusBadge.tsx:53
713
846
  msgid "Pinned"
714
847
  msgstr "Pinned"
715
848
 
849
+ #. @context: Singular post count label
850
+ #: src/ui/pages/CollectionsPage.tsx:56
851
+ msgid "post"
852
+ msgstr "post"
853
+
854
+ #. @context: Compose button - publish post
855
+ #. @context: Compose prompt post button
716
856
  #. @context: Default post title
717
- #: src/routes/dash/posts.tsx:130
857
+ #: src/routes/dash/posts.tsx:128
858
+ #: src/ui/compose/ComposeDialog.tsx:365
859
+ #: src/ui/compose/ComposePrompt.tsx:48
718
860
  msgid "Post"
719
861
  msgstr "Post"
720
862
 
721
863
  #. @context: Post title placeholder
722
- #: src/theme/components/PostForm.tsx:95
864
+ #: src/ui/dash/PostForm.tsx:94
723
865
  msgid "Post title..."
724
866
  msgstr "Post title..."
725
867
 
868
+ #. @context: Compose loading text while posting
869
+ #: src/ui/compose/ComposeDialog.tsx:345
870
+ #~ msgid "Posting..."
871
+ #~ msgstr "Posting..."
872
+
873
+ #. @context: Plural post count label
874
+ #: src/ui/pages/CollectionsPage.tsx:60
875
+ msgid "posts"
876
+ msgstr "posts"
877
+
726
878
  #. @context: Dashboard heading
727
879
  #. @context: Dashboard navigation - posts management
728
880
  #: src/routes/dash/posts.tsx:29
729
- #: src/theme/layouts/DashLayout.tsx:87
881
+ #: src/ui/layouts/DashLayout.tsx:87
730
882
  msgid "Posts"
731
883
  msgstr "Posts"
732
884
 
733
885
  #. @context: Collection posts section heading
734
- #: src/routes/dash/collections.tsx:205
886
+ #: src/ui/dash/collections/ViewCollectionContent.tsx:18
735
887
  msgid "Posts in Collection ({count})"
736
888
  msgstr "Posts in Collection ({count})"
737
889
 
738
890
  #. @context: Media detail section - preview
739
- #: src/routes/dash/media.tsx:278
891
+ #: src/ui/dash/media/ViewMediaContent.tsx:69
740
892
  msgid "Preview"
741
893
  msgstr "Preview"
742
894
 
743
895
  #. @context: Pagination button - previous page
744
896
  #. @context: Pagination button - previous page
745
- #: src/theme/components/Pagination.tsx:45
746
- #: src/theme/components/Pagination.tsx:156
897
+ #: src/ui/shared/Pagination.tsx:46
898
+ #: src/ui/shared/Pagination.tsx:163
747
899
  msgid "Previous"
748
900
  msgstr "Previous"
749
901
 
750
- #. @context: Loading text shown on submit button while request is in progress
751
- #. @context: Loading text shown on submit button while request is in progress
752
- #. @context: Loading text shown on submit button while request is in progress
753
- #. @context: Loading text shown on submit button while request is in progress
754
- #. @context: Loading text shown on submit button while request is in progress
755
- #. @context: Loading text shown on submit button while request is in progress
756
- #. @context: Loading text shown on submit button while request is in progress
757
- #. @context: Loading text shown on submit button while request is in progress
758
- #. @context: Loading text shown on submit button while request is in progress
759
- #. @context: Loading text shown on submit button while request is in progress
760
- #. @context: Loading text shown on submit button while request is in progress
761
- #. @context: Loading text shown on submit button while request is in progress
902
+ #. @context: Avatar upload button text while generating favicon variants
762
903
  #. @context: Upload status - processing
763
- #: src/app.tsx:281
764
- #: src/app.tsx:418
765
- #: src/app.tsx:558
766
- #: src/routes/dash/collections.tsx:178
767
- #: src/routes/dash/collections.tsx:346
768
- #: src/routes/dash/media.tsx:119
769
- #: src/routes/dash/navigation.tsx:184
770
- #: src/routes/dash/redirects.tsx:169
771
- #: src/routes/dash/settings.tsx:200
772
- #: src/routes/dash/settings.tsx:400
773
- #: src/routes/dash/settings.tsx:488
774
- #: src/theme/components/PageForm.tsx:163
775
- #: src/theme/components/PostForm.tsx:329
904
+ #: src/ui/dash/media/MediaListContent.tsx:95
905
+ #: src/ui/dash/settings/GeneralContent.tsx:215
776
906
  msgid "Processing..."
777
907
  msgstr "Processing..."
778
908
 
779
909
  #. @context: Account settings section heading
780
- #: src/routes/dash/settings.tsx:364
910
+ #: src/ui/dash/settings/AccountContent.tsx:29
781
911
  msgid "Profile"
782
912
  msgstr "Profile"
783
913
 
784
914
  #. @context: Button to publish new post
785
- #: src/theme/components/PostForm.tsx:323
915
+ #: src/ui/dash/PostForm.tsx:312
786
916
  msgid "Publish"
787
917
  msgstr "Publish"
788
918
 
@@ -791,9 +921,9 @@ msgstr "Publish"
791
921
  #. @context: Post status label
792
922
  #. @context: Post status option
793
923
  #: src/routes/dash/index.tsx:45
794
- #: src/theme/components/PageForm.tsx:127
795
- #: src/theme/components/PostForm.tsx:229
796
- #: src/theme/components/VisibilityBadge.tsx:31
924
+ #: src/ui/dash/PageForm.tsx:127
925
+ #: src/ui/dash/PostForm.tsx:228
926
+ #: src/ui/dash/StatusBadge.tsx:30
797
927
  msgid "Published"
798
928
  msgstr "Published"
799
929
 
@@ -803,7 +933,7 @@ msgstr "Published"
803
933
  #~ msgstr "Published pages are accessible via their path. Drafts are not visible."
804
934
 
805
935
  #. @context: Page status helper text
806
- #: src/theme/components/PageForm.tsx:140
936
+ #: src/ui/dash/PageForm.tsx:140
807
937
  msgid "Published pages are accessible via their slug. Drafts are not visible."
808
938
  msgstr "Published pages are accessible via their slug. Drafts are not visible."
809
939
 
@@ -822,63 +952,86 @@ msgstr "Quick Actions"
822
952
  #~ msgid "Quiet (normal)"
823
953
  #~ msgstr "Quiet (normal)"
824
954
 
955
+ #. @context: Compose format tab
825
956
  #. @context: Post format badge - quote
826
957
  #. @context: Post format label - quote
827
958
  #. @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
959
+ #: src/ui/compose/ComposeDialog.tsx:112
960
+ #: src/ui/dash/FormatBadge.tsx:21
961
+ #: src/ui/dash/PostForm.tsx:77
962
+ #: src/ui/pages/ArchivePage.tsx:18
831
963
  msgid "Quote"
832
964
  msgstr "Quote"
833
965
 
834
966
  #. @context: Post form field - quoted text
835
- #: src/theme/components/PostForm.tsx:138
967
+ #: src/ui/dash/PostForm.tsx:137
836
968
  msgid "Quote Text"
837
969
  msgstr "Quote Text"
838
970
 
839
971
  #. @context: Post format label plural - quotes
840
- #: src/themes/threads/pages/ArchivePage.tsx:37
972
+ #: src/ui/pages/ArchivePage.tsx:37
841
973
  msgid "Quotes"
842
974
  msgstr "Quotes"
843
975
 
976
+ #. @context: Compose rating field
977
+ #. @context: Compose toolbar - toggle rating
978
+ #: src/ui/compose/ComposeDialog.tsx:167
979
+ #: src/ui/compose/ComposeDialog.tsx:246
980
+ msgid "Rating"
981
+ msgstr "Rating"
982
+
844
983
  #. @context: Dashboard heading
845
984
  #. @context: Dashboard navigation - URL redirects
846
985
  #: src/routes/dash/redirects.tsx:29
847
- #: src/theme/layouts/DashLayout.tsx:124
986
+ #: src/ui/layouts/DashLayout.tsx:124
848
987
  msgid "Redirects"
849
988
  msgstr "Redirects"
850
989
 
990
+ #. @context: Button to remove the blog avatar
851
991
  #. @context: Remove media attachment button
852
- #: src/theme/components/PostForm.tsx:195
992
+ #: src/ui/dash/PostForm.tsx:194
993
+ #: src/ui/dash/settings/GeneralContent.tsx:243
853
994
  msgid "Remove"
854
995
  msgstr "Remove"
855
996
 
856
997
  #. @context: Password reset form submit button
857
998
  #. @context: Password reset page heading
858
- #: src/app.tsx:499
859
- #: src/app.tsx:552
999
+ #: src/routes/auth/reset.tsx:33
1000
+ #: src/routes/auth/reset.tsx:100
860
1001
  msgid "Reset Password"
861
1002
  msgstr "Reset Password"
862
1003
 
1004
+ #. @context: Button to save settings
1005
+ #: src/ui/dash/settings/GeneralContent.tsx:74
1006
+ msgid "Save"
1007
+ msgstr "Save"
1008
+
863
1009
  #. @context: Button to save edited navigation link
864
- #: src/routes/dash/navigation.tsx:174
1010
+ #: src/ui/dash/pages/LinkFormContent.tsx:100
865
1011
  msgid "Save Changes"
866
1012
  msgstr "Save Changes"
867
1013
 
1014
+ #. @context: Button to save custom CSS
1015
+ #: src/ui/dash/settings/AppearanceContent.tsx:246
1016
+ msgid "Save CSS"
1017
+ msgstr "Save CSS"
1018
+
868
1019
  #. @context: Button to save profile
869
- #: src/routes/dash/settings.tsx:394
1020
+ #: src/ui/dash/settings/AccountContent.tsx:73
870
1021
  msgid "Save Profile"
871
1022
  msgstr "Save Profile"
872
1023
 
873
1024
  #. @context: Button to save settings
874
- #: src/routes/dash/settings.tsx:194
875
- msgid "Save Settings"
876
- msgstr "Save Settings"
1025
+ #: src/ui/dash/settings/GeneralContent.tsx:142
1026
+ #~ msgid "Save Settings"
1027
+ #~ msgstr "Save Settings"
877
1028
 
1029
+ #. @context: Search icon link in browse nav
878
1030
  #. @context: Search page title
879
1031
  #. @context: Search submit button
880
- #: src/themes/threads/pages/SearchPage.tsx:21
881
- #: src/themes/threads/pages/SearchPage.tsx:47
1032
+ #: src/ui/layouts/SiteLayout.tsx:67
1033
+ #: src/ui/pages/SearchPage.tsx:20
1034
+ #: src/ui/pages/SearchPage.tsx:44
882
1035
  msgid "Search"
883
1036
  msgstr "Search"
884
1037
 
@@ -888,23 +1041,30 @@ msgstr "Search"
888
1041
  #~ msgstr "Search failed. Please try again."
889
1042
 
890
1043
  #. @context: Search input placeholder
891
- #: src/themes/threads/pages/SearchPage.tsx:39
1044
+ #: src/ui/pages/SearchPage.tsx:36
892
1045
  msgid "Search posts..."
893
1046
  msgstr "Search posts..."
894
1047
 
895
1048
  #. @context: Media picker dialog title
896
- #: src/theme/components/PostForm.tsx:349
1049
+ #. @context: Media picker dialog title
1050
+ #: src/ui/compose/ComposeDialog.tsx:384
1051
+ #: src/ui/dash/PostForm.tsx:330
897
1052
  msgid "Select Media"
898
1053
  msgstr "Select Media"
899
1054
 
1055
+ #. @context: Settings section heading for SEO
1056
+ #: src/ui/dash/settings/GeneralContent.tsx:498
1057
+ msgid "SEO"
1058
+ msgstr "SEO"
1059
+
900
1060
  #. @context: Dashboard heading
901
1061
  #. @context: Dashboard heading
902
1062
  #. @context: Dashboard heading
903
1063
  #. @context: Dashboard navigation - site settings
904
- #: src/routes/dash/settings.tsx:118
905
- #: src/routes/dash/settings.tsx:300
906
- #: src/routes/dash/settings.tsx:351
907
- #: src/theme/layouts/DashLayout.tsx:143
1064
+ #: src/ui/dash/settings/AccountContent.tsx:16
1065
+ #: src/ui/dash/settings/AppearanceContent.tsx:101
1066
+ #: src/ui/dash/settings/GeneralContent.tsx:151
1067
+ #: src/ui/layouts/DashLayout.tsx:133
908
1068
  msgid "Settings"
909
1069
  msgstr "Settings"
910
1070
 
@@ -915,38 +1075,41 @@ msgstr "Settings"
915
1075
 
916
1076
  #. @context: Link to show remaining thread replies
917
1077
  #. placeholder {0}: remainingCount === 1 ? "reply" : "replies"
918
- #: src/themes/threads/timeline/ThreadPreview.tsx:38
1078
+ #: src/ui/feed/ThreadPreview.tsx:37
919
1079
  msgid "Show {remainingCount} more {0}"
920
1080
  msgstr "Show {remainingCount} more {0}"
921
1081
 
922
1082
  #. @context: Sign in form submit button
923
1083
  #. @context: Sign in page heading
924
- #: src/app.tsx:365
925
- #: src/app.tsx:412
1084
+ #: src/routes/auth/signin.tsx:31
1085
+ #: src/routes/auth/signin.tsx:92
926
1086
  msgid "Sign In"
927
1087
  msgstr "Sign In"
928
1088
 
929
1089
  #. @context: Dashboard header link to sign out
930
- #: src/theme/layouts/DashLayout.tsx:63
1090
+ #: src/ui/layouts/DashLayout.tsx:63
931
1091
  msgid "Sign Out"
932
1092
  msgstr "Sign Out"
933
1093
 
934
1094
  #. @context: Settings form field
935
- #: src/routes/dash/settings.tsx:155
936
- msgid "Site Description"
937
- 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"
938
1103
 
939
1104
  #. @context: Settings form field
940
- #: src/routes/dash/settings.tsx:140
1105
+ #: src/ui/dash/settings/GeneralContent.tsx:308
941
1106
  msgid "Site Name"
942
1107
  msgstr "Site Name"
943
1108
 
944
- #. @context: Collection form field
945
1109
  #. @context: Collection form field
946
1110
  #. @context: Page form field label - URL slug
947
- #: src/routes/dash/collections.tsx:133
948
- #: src/routes/dash/collections.tsx:314
949
- #: src/theme/components/PageForm.tsx:64
1111
+ #: src/ui/dash/collections/CollectionForm.tsx:80
1112
+ #: src/ui/dash/PageForm.tsx:64
950
1113
  msgid "Slug"
951
1114
  msgstr "Slug"
952
1115
 
@@ -962,8 +1125,8 @@ msgstr "Slug"
962
1125
 
963
1126
  #. @context: Page form field label - publish status
964
1127
  #. @context: Post form field
965
- #: src/theme/components/PageForm.tsx:117
966
- #: src/theme/components/PostForm.tsx:222
1128
+ #: src/ui/dash/PageForm.tsx:117
1129
+ #: src/ui/dash/PostForm.tsx:221
967
1130
  msgid "Status"
968
1131
  msgstr "Status"
969
1132
 
@@ -982,52 +1145,79 @@ msgstr "The destination path or URL"
982
1145
  msgid "The path to redirect from"
983
1146
  msgstr "The path to redirect from"
984
1147
 
1148
+ #. @context: Compose quote text placeholder
985
1149
  #. @context: Quote text placeholder
986
- #: src/theme/components/PostForm.tsx:146
1150
+ #: src/ui/compose/ComposeDialog.tsx:156
1151
+ #: src/ui/dash/PostForm.tsx:145
987
1152
  msgid "The text being quoted..."
988
1153
  msgstr "The text being quoted..."
989
1154
 
990
1155
  #. @context: Page slug helper text
991
- #: src/theme/components/PageForm.tsx:85
1156
+ #: src/ui/dash/PageForm.tsx:85
992
1157
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
993
1158
  msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
994
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
+
995
1180
  #. @context: Password reset error description
996
- #: src/app.tsx:588
1181
+ #: src/routes/auth/reset.tsx:128
997
1182
  msgid "This password reset link is invalid or has expired. Please generate a new one."
998
1183
  msgstr "This password reset link is invalid or has expired. Please generate a new one."
999
1184
 
1000
1185
  #. @context: Appearance settings description
1001
- #: src/routes/dash/settings.tsx:317
1186
+ #: src/ui/dash/settings/AppearanceContent.tsx:118
1002
1187
  msgid "This will theme both your site and your dashboard. All color themes support dark mode."
1003
1188
  msgstr "This will theme both your site and your dashboard. All color themes support dark mode."
1004
1189
 
1005
1190
  #. @context: Thread view indicator - first post in thread
1006
- #: src/theme/components/ThreadView.tsx:60
1191
+ #: src/ui/shared/ThreadView.tsx:60
1007
1192
  msgid "Thread start"
1008
1193
  msgstr "Thread start"
1009
1194
 
1010
1195
  #. @context: Thread view header - multiple posts
1011
- #: src/theme/components/ThreadView.tsx:105
1196
+ #: src/ui/shared/ThreadView.tsx:105
1012
1197
  msgid "Thread with {count} posts"
1013
1198
  msgstr "Thread with {count} posts"
1014
1199
 
1015
1200
  #. @context: Thread view header - single post
1016
- #: src/theme/components/ThreadView.tsx:101
1201
+ #: src/ui/shared/ThreadView.tsx:101
1017
1202
  msgid "Thread with 1 post"
1018
1203
  msgstr "Thread with 1 post"
1019
1204
 
1020
- #. @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
+
1021
1210
  #. @context: Collection form field
1022
1211
  #. @context: Page form field label - title
1023
- #: src/routes/dash/collections.tsx:114
1024
- #: src/routes/dash/collections.tsx:304
1025
- #: src/theme/components/PageForm.tsx:44
1212
+ #: src/ui/dash/collections/CollectionForm.tsx:57
1213
+ #: src/ui/dash/PageForm.tsx:44
1026
1214
  msgid "Title"
1027
1215
  msgstr "Title"
1028
1216
 
1217
+ #. @context: Compose title placeholder
1029
1218
  #. @context: Post form field
1030
- #: src/theme/components/PostForm.tsx:86
1219
+ #: src/ui/compose/ComposeDialog.tsx:124
1220
+ #: src/ui/dash/PostForm.tsx:85
1031
1221
  msgid "Title (optional)"
1032
1222
  msgstr "Title (optional)"
1033
1223
 
@@ -1041,6 +1231,11 @@ msgstr "To Path"
1041
1231
  msgid "Type"
1042
1232
  msgstr "Type"
1043
1233
 
1234
+ #. @context: Button to remove page from navigation
1235
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:82
1236
+ msgid "Un-nav"
1237
+ msgstr "Un-nav"
1238
+
1044
1239
  #. @context: Post visibility badge - unlisted
1045
1240
  #. @context: Post visibility option
1046
1241
  #: src/theme/components/PostForm.tsx:255
@@ -1050,33 +1245,40 @@ msgstr "Type"
1050
1245
 
1051
1246
  #. @context: Default title for untitled page
1052
1247
  #. @context: Default title for untitled post
1053
- #: src/routes/dash/pages.tsx:86
1054
- #: src/theme/components/PostList.tsx:86
1248
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:190
1249
+ #: src/ui/dash/PostList.tsx:86
1055
1250
  msgid "Untitled"
1056
1251
  msgstr "Untitled"
1057
1252
 
1058
1253
  #. @context: Button to update existing post
1059
- #: src/theme/components/PostForm.tsx:319
1254
+ #: src/ui/dash/PostForm.tsx:308
1060
1255
  msgid "Update"
1061
1256
  msgstr "Update"
1062
1257
 
1063
1258
  #. @context: Button to save collection changes
1064
- #: src/routes/dash/collections.tsx:340
1259
+ #: src/ui/dash/collections/CollectionForm.tsx:32
1065
1260
  msgid "Update Collection"
1066
1261
  msgstr "Update Collection"
1067
1262
 
1068
1263
  #. @context: Button to update existing page
1069
- #: src/theme/components/PageForm.tsx:153
1264
+ #: src/ui/dash/PageForm.tsx:167
1070
1265
  msgid "Update Page"
1071
1266
  msgstr "Update Page"
1072
1267
 
1073
1268
  #. @context: Button to upload media file
1074
- #: src/routes/dash/media.tsx:127
1269
+ #: src/ui/dash/media/MediaListContent.tsx:103
1075
1270
  msgid "Upload"
1076
1271
  msgstr "Upload"
1077
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
1078
1279
  #. @context: Upload error message
1079
- #: src/routes/dash/media.tsx:131
1280
+ #: src/ui/dash/media/MediaListContent.tsx:107
1281
+ #: src/ui/dash/settings/GeneralContent.tsx:225
1080
1282
  msgid "Upload failed. Please try again."
1081
1283
  msgstr "Upload failed. Please try again."
1082
1284
 
@@ -1085,30 +1287,32 @@ msgstr "Upload failed. Please try again."
1085
1287
  #~ msgid "Upload images via the API: POST /api/upload with a file form field."
1086
1288
  #~ msgstr "Upload images via the API: POST /api/upload with a file form field."
1087
1289
 
1290
+ #. @context: Avatar upload button text while uploading
1088
1291
  #. @context: Upload status - uploading
1089
- #: src/routes/dash/media.tsx:123
1292
+ #: src/ui/dash/media/MediaListContent.tsx:99
1293
+ #: src/ui/dash/settings/GeneralContent.tsx:220
1090
1294
  msgid "Uploading..."
1091
1295
  msgstr "Uploading..."
1092
1296
 
1093
1297
  #. @context: Media detail section - URL
1094
1298
  #. @context: Navigation link form field
1095
- #: src/routes/dash/media.tsx:318
1096
- #: src/routes/dash/navigation.tsx:149
1299
+ #: src/ui/dash/media/ViewMediaContent.tsx:109
1300
+ #: src/ui/dash/pages/LinkFormContent.tsx:61
1097
1301
  msgid "URL"
1098
1302
  msgstr "URL"
1099
1303
 
1100
1304
  #. @context: Post form field - source URL
1101
- #: src/theme/components/PostForm.tsx:122
1305
+ #: src/ui/dash/PostForm.tsx:121
1102
1306
  msgid "URL (optional)"
1103
1307
  msgstr "URL (optional)"
1104
1308
 
1105
1309
  #. @context: Collection path help text
1106
- #: src/routes/dash/collections.tsx:144
1310
+ #: src/ui/dash/collections/CollectionForm.tsx:92
1107
1311
  msgid "URL-safe identifier (lowercase, numbers, hyphens)"
1108
1312
  msgstr "URL-safe identifier (lowercase, numbers, hyphens)"
1109
1313
 
1110
1314
  #. @context: Media URL helper text
1111
- #: src/routes/dash/media.tsx:344
1315
+ #: src/ui/dash/media/ViewMediaContent.tsx:135
1112
1316
  msgid "Use this URL to embed the media in your posts."
1113
1317
  msgstr "Use this URL to embed the media in your posts."
1114
1318
 
@@ -1119,13 +1323,13 @@ msgstr "Use this URL to embed the media in your posts."
1119
1323
  #. @context: Button to view page on public site
1120
1324
  #. @context: Button to view post
1121
1325
  #. @context: Button to view post on public site
1122
- #: src/routes/dash/collections.tsx:71
1123
- #: src/routes/dash/collections.tsx:225
1124
- #: src/routes/dash/pages.tsx:69
1125
- #: src/routes/dash/pages.tsx:134
1126
- #: src/routes/dash/posts.tsx:147
1127
- #: src/theme/components/ActionButtons.tsx:76
1128
- #: src/theme/components/PostList.tsx:55
1326
+ #: src/routes/dash/pages.tsx:60
1327
+ #: src/routes/dash/posts.tsx:145
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
1332
+ #: src/ui/dash/PostList.tsx:55
1129
1333
  msgid "View"
1130
1334
  msgstr "View"
1131
1335
 
@@ -1135,7 +1339,7 @@ msgstr "View"
1135
1339
  #~ msgstr "View all posts →"
1136
1340
 
1137
1341
  #. @context: Dashboard header link to view the public site
1138
- #: src/theme/layouts/DashLayout.tsx:53
1342
+ #: src/ui/layouts/DashLayout.tsx:53
1139
1343
  msgid "View Site"
1140
1344
  msgstr "View Site"
1141
1345
 
@@ -1145,21 +1349,33 @@ msgstr "View Site"
1145
1349
  #~ msgstr "Visibility"
1146
1350
 
1147
1351
  #. @context: Setup page welcome heading
1148
- #: src/app.tsx:209
1352
+ #: src/routes/auth/setup.tsx:27
1149
1353
  msgid "Welcome to Jant"
1150
1354
  msgstr "Welcome to Jant"
1151
1355
 
1356
+ #. @context: Compose prompt placeholder text
1357
+ #: src/ui/compose/ComposePrompt.tsx:37
1358
+ msgid "What's new?"
1359
+ msgstr "What's new?"
1360
+
1361
+ #. @context: Compose body placeholder
1152
1362
  #. @context: Post content placeholder
1153
- #: src/theme/components/PostForm.tsx:110
1363
+ #: src/ui/compose/ComposeDialog.tsx:134
1364
+ #: src/ui/dash/PostForm.tsx:109
1154
1365
  msgid "What's on your mind?"
1155
1366
  msgstr "What's on your mind?"
1156
1367
 
1157
1368
  #. @context: Collection description placeholder
1158
- #: src/routes/dash/collections.tsx:162
1369
+ #: src/ui/dash/collections/CollectionForm.tsx:114
1159
1370
  msgid "What's this collection about?"
1160
1371
  msgstr "What's this collection about?"
1161
1372
 
1162
1373
  #. @context: Setup form field - user name
1163
- #: src/app.tsx:230
1374
+ #: src/routes/auth/setup.tsx:49
1164
1375
  msgid "Your Name"
1165
1376
  msgstr "Your Name"
1377
+
1378
+ #. @context: Section heading for navigation items
1379
+ #: src/ui/dash/pages/UnifiedPagesContent.tsx:45
1380
+ msgid "Your site navigation"
1381
+ msgstr "Your site navigation"