@jant/core 0.3.31 → 0.3.33

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 (95) hide show
  1. package/dist/client/client.css +1 -1
  2. package/dist/client/client.js +1442 -989
  3. package/dist/index.js +1429 -1055
  4. package/package.json +2 -2
  5. package/src/__tests__/helpers/app.ts +6 -3
  6. package/src/__tests__/helpers/db.ts +3 -0
  7. package/src/client.ts +2 -1
  8. package/src/db/migrations/0011_add_path_registry.sql +23 -0
  9. package/src/db/schema.ts +12 -1
  10. package/src/i18n/locales/en.po +225 -91
  11. package/src/i18n/locales/en.ts +1 -1
  12. package/src/i18n/locales/zh-Hans.po +201 -152
  13. package/src/i18n/locales/zh-Hans.ts +1 -1
  14. package/src/i18n/locales/zh-Hant.po +201 -152
  15. package/src/i18n/locales/zh-Hant.ts +1 -1
  16. package/src/lib/__tests__/excerpt.test.ts +25 -0
  17. package/src/lib/__tests__/resolve-config.test.ts +26 -2
  18. package/src/lib/__tests__/timeline.test.ts +2 -1
  19. package/src/lib/compose-bridge.ts +30 -1
  20. package/src/lib/excerpt.ts +16 -7
  21. package/src/lib/nav-manager-bridge.ts +54 -0
  22. package/src/lib/navigation.ts +7 -4
  23. package/src/lib/render.tsx +5 -2
  24. package/src/lib/resolve-config.ts +7 -0
  25. package/src/lib/view.ts +42 -10
  26. package/src/middleware/error-handler.ts +16 -0
  27. package/src/routes/api/__tests__/posts.test.ts +80 -0
  28. package/src/routes/api/__tests__/settings.test.ts +1 -1
  29. package/src/routes/api/posts.ts +6 -29
  30. package/src/routes/api/upload.ts +2 -14
  31. package/src/routes/auth/__tests__/setup.test.ts +2 -1
  32. package/src/routes/compose.tsx +13 -5
  33. package/src/routes/dash/__tests__/pages.test.ts +2 -1
  34. package/src/routes/dash/__tests__/settings-avatar.test.ts +151 -33
  35. package/src/routes/dash/appearance.tsx +71 -4
  36. package/src/routes/dash/collections.tsx +15 -21
  37. package/src/routes/dash/media.tsx +1 -13
  38. package/src/routes/dash/pages.tsx +5 -150
  39. package/src/routes/dash/posts.tsx +25 -32
  40. package/src/routes/dash/redirects.tsx +9 -11
  41. package/src/routes/dash/settings.tsx +29 -111
  42. package/src/routes/feed/__tests__/rss.test.ts +5 -1
  43. package/src/routes/pages/__tests__/collections.test.ts +2 -1
  44. package/src/routes/pages/__tests__/featured.test.ts +2 -1
  45. package/src/routes/pages/page.tsx +20 -25
  46. package/src/services/__tests__/collection.test.ts +2 -1
  47. package/src/services/__tests__/media.test.ts +78 -1
  48. package/src/services/__tests__/navigation.test.ts +2 -1
  49. package/src/services/__tests__/page.test.ts +78 -1
  50. package/src/services/__tests__/path-registry.test.ts +165 -0
  51. package/src/services/__tests__/post-timeline.test.ts +2 -1
  52. package/src/services/__tests__/post.test.ts +103 -1
  53. package/src/services/__tests__/redirect.test.ts +53 -4
  54. package/src/services/__tests__/search.test.ts +2 -1
  55. package/src/services/__tests__/settings.test.ts +153 -0
  56. package/src/services/index.ts +12 -4
  57. package/src/services/media.ts +72 -4
  58. package/src/services/page.ts +64 -17
  59. package/src/services/path-registry.ts +160 -0
  60. package/src/services/post.ts +119 -24
  61. package/src/services/redirect.ts +23 -3
  62. package/src/services/settings.ts +181 -0
  63. package/src/styles/components.css +135 -0
  64. package/src/styles/tokens.css +6 -1
  65. package/src/styles/ui.css +70 -26
  66. package/src/types/bindings.ts +1 -0
  67. package/src/types/config.ts +7 -2
  68. package/src/types/constants.ts +9 -1
  69. package/src/types/sortablejs.d.ts +8 -2
  70. package/src/types/views.ts +1 -1
  71. package/src/ui/color-themes.ts +31 -31
  72. package/src/ui/components/__tests__/jant-settings-avatar.test.ts +0 -3
  73. package/src/ui/components/__tests__/jant-settings-general.test.ts +2 -6
  74. package/src/ui/components/jant-compose-dialog.ts +3 -2
  75. package/src/ui/components/jant-compose-editor.ts +17 -2
  76. package/src/ui/components/jant-nav-manager.ts +1067 -0
  77. package/src/ui/components/jant-settings-general.ts +2 -35
  78. package/src/ui/components/nav-manager-types.ts +72 -0
  79. package/src/ui/components/settings-types.ts +0 -3
  80. package/src/ui/compose/ComposePrompt.tsx +3 -11
  81. package/src/ui/dash/appearance/AdvancedContent.tsx +0 -3
  82. package/src/ui/dash/appearance/AppearanceNav.tsx +12 -8
  83. package/src/ui/dash/appearance/ColorThemeContent.tsx +1 -4
  84. package/src/ui/dash/appearance/FontThemeContent.tsx +0 -3
  85. package/src/ui/dash/appearance/NavigationContent.tsx +302 -0
  86. package/src/ui/dash/pages/PagesContent.tsx +74 -0
  87. package/src/ui/dash/settings/AccountContent.tsx +0 -3
  88. package/src/ui/dash/settings/GeneralContent.tsx +1 -19
  89. package/src/ui/dash/settings/SettingsNav.tsx +2 -6
  90. package/src/ui/feed/NoteCard.tsx +2 -2
  91. package/src/ui/layouts/DashLayout.tsx +83 -86
  92. package/src/ui/layouts/SiteLayout.tsx +82 -21
  93. package/src/lib/nav-reorder.ts +0 -26
  94. package/src/ui/dash/pages/LinkFormContent.tsx +0 -119
  95. package/src/ui/dash/pages/UnifiedPagesContent.tsx +0 -203
@@ -55,6 +55,11 @@ msgstr "301 (Permanent)"
55
55
  msgid "302 (Temporary)"
56
56
  msgstr "302 (Temporary)"
57
57
 
58
+ #. @context: Help text for site description field
59
+ #: src/ui/dash/settings/GeneralContent.tsx
60
+ msgid "A short intro for search engines and feed readers. Plain text only."
61
+ msgstr "A short intro for search engines and feed readers. Plain text only."
62
+
58
63
  #. @context: Settings form field for site description
59
64
  #: src/ui/dash/settings/GeneralContent.tsx
60
65
  msgid "About this blog"
@@ -70,18 +75,33 @@ msgstr "Account"
70
75
  msgid "Add"
71
76
  msgstr "Add"
72
77
 
78
+ #. @context: Description in link popover form
79
+ #: src/ui/dash/appearance/NavigationContent.tsx
80
+ msgid "Add a custom link to any URL"
81
+ msgstr "Add a custom link to any URL"
82
+
73
83
  #. @context: Alt text panel title
74
84
  #: src/ui/compose/ComposeDialog.tsx
75
85
  msgid "Add alt text"
76
86
  msgstr "Add alt text"
77
87
 
88
+ #. @context: Card description for page picker
89
+ #: src/ui/dash/appearance/NavigationContent.tsx
90
+ #~ msgid "Add an existing page to your navigation"
91
+ #~ msgstr "Add an existing page to your navigation"
92
+
78
93
  #. @context: Custom CSS settings description
79
94
  #: src/ui/dash/appearance/AdvancedContent.tsx
80
95
  msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
81
96
  msgstr "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
82
97
 
83
- #. @context: Button to add a navigation link
84
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
98
+ #. @context: Section heading for adding custom link to nav
99
+ #: src/ui/dash/appearance/NavigationContent.tsx
100
+ msgid "Add custom link to navigation"
101
+ msgstr "Add custom link to navigation"
102
+
103
+ #. @context: Button and heading for adding custom link
104
+ #: src/ui/dash/appearance/NavigationContent.tsx
85
105
  msgid "Add Link"
86
106
  msgstr "Add Link"
87
107
 
@@ -90,10 +110,25 @@ msgstr "Add Link"
90
110
  msgid "Add Media"
91
111
  msgstr "Add Media"
92
112
 
113
+ #. @context: Card title for adding page to nav
114
+ #: src/ui/dash/appearance/NavigationContent.tsx
115
+ #~ msgid "Add Page"
116
+ #~ msgstr "Add Page"
117
+
118
+ #. @context: Section heading for adding page to nav
119
+ #: src/ui/dash/appearance/NavigationContent.tsx
120
+ msgid "Add page to navigation"
121
+ msgstr "Add page to navigation"
122
+
93
123
  #. @context: Button to add page to navigation
94
124
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
95
- msgid "Add to nav"
96
- msgstr "Add to nav"
125
+ #~ msgid "Add to nav"
126
+ #~ msgstr "Add to nav"
127
+
128
+ #. @context: Section heading for adding nav items
129
+ #: src/ui/dash/appearance/NavigationContent.tsx
130
+ #~ msgid "Add to navigation"
131
+ #~ msgstr "Add to navigation"
97
132
 
98
133
  #. @context: Appearance sub-navigation tab
99
134
  #: src/ui/dash/appearance/AppearanceNav.tsx
@@ -105,23 +140,27 @@ msgstr "Advanced"
105
140
  msgid "All"
106
141
  msgstr "All"
107
142
 
143
+ #. @context: Message when no pages available to add
144
+ #: src/ui/dash/appearance/NavigationContent.tsx
145
+ msgid "All pages are already in navigation."
146
+ msgstr "All pages are already in navigation."
147
+
148
+ #. @context: Message when no pages available to add
149
+ #: src/ui/dash/appearance/NavigationContent.tsx
150
+ #~ msgid "All pages are in navigation"
151
+ #~ msgstr "All pages are in navigation"
152
+
108
153
  #. @context: Empty state when all pages are in nav
109
154
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
110
- msgid "All pages are in your navigation."
111
- msgstr "All pages are in your navigation."
155
+ #~ msgid "All pages are in your navigation."
156
+ #~ msgstr "All pages are in your navigation."
112
157
 
113
158
  #. @context: Hint text in alt text panel
114
159
  #: src/ui/compose/ComposeDialog.tsx
115
160
  msgid "Alt text improves accessibility"
116
161
  msgstr "Alt text improves accessibility"
117
162
 
118
- #. @context: Dashboard heading
119
- #. @context: Dashboard heading
120
- #. @context: Dashboard heading
121
163
  #. @context: Dashboard navigation - appearance settings
122
- #: src/ui/dash/appearance/AdvancedContent.tsx
123
- #: src/ui/dash/appearance/ColorThemeContent.tsx
124
- #: src/ui/dash/appearance/FontThemeContent.tsx
125
164
  #: src/ui/layouts/DashLayout.tsx
126
165
  msgid "Appearance"
127
166
  msgstr "Appearance"
@@ -210,14 +249,12 @@ msgstr "Blog Avatar"
210
249
  #. @context: Button to cancel form
211
250
  #. @context: Button to cancel form
212
251
  #. @context: Button to cancel form
213
- #. @context: Button to cancel form
214
252
  #. @context: Button to cancel unsaved changes and revert to original values
215
253
  #. @context: Close compose dialog
216
254
  #: src/routes/dash/redirects.tsx
217
255
  #: src/ui/compose/ComposeDialog.tsx
218
256
  #: src/ui/dash/collections/CollectionForm.tsx
219
257
  #: src/ui/dash/PageForm.tsx
220
- #: src/ui/dash/pages/LinkFormContent.tsx
221
258
  #: src/ui/dash/posts/PostForm.tsx
222
259
  #: src/ui/dash/settings/GeneralContent.tsx
223
260
  msgid "Cancel"
@@ -240,6 +277,11 @@ msgstr "Change Password"
240
277
  msgid "Choose a font pairing for your site. All options use system fonts for fast loading."
241
278
  msgstr "Choose a font pairing for your site. All options use system fonts for fast loading."
242
279
 
280
+ #. @context: Placeholder for page select combobox trigger
281
+ #: src/ui/dash/appearance/NavigationContent.tsx
282
+ msgid "Choose a page…"
283
+ msgstr "Choose a page…"
284
+
243
285
  #. @context: Button to open icon picker
244
286
  #. @context: Icon picker dialog title
245
287
  #: src/ui/dash/collections/CollectionForm.tsx
@@ -269,10 +311,8 @@ msgstr "Collection"
269
311
 
270
312
  #. @context: Collections page heading
271
313
  #. @context: Dashboard heading
272
- #. @context: Dashboard navigation - collections management
273
314
  #. @context: Sidebar heading for collections nav
274
315
  #: src/ui/dash/collections/CollectionsListContent.tsx
275
- #: src/ui/layouts/DashLayout.tsx
276
316
  #: src/ui/pages/CollectionsPage.tsx
277
317
  #: src/ui/shared/CollectionsSidebar.tsx
278
318
  msgid "Collections"
@@ -329,8 +369,8 @@ msgstr "Create Collection"
329
369
 
330
370
  #. @context: Button to save new navigation link
331
371
  #: src/ui/dash/pages/LinkFormContent.tsx
332
- msgid "Create Link"
333
- msgstr "Create Link"
372
+ #~ msgid "Create Link"
373
+ #~ msgstr "Create Link"
334
374
 
335
375
  #. @context: Button to create new page
336
376
  #: src/ui/dash/PageForm.tsx
@@ -398,23 +438,21 @@ msgid "Danger Zone"
398
438
  msgstr "Danger Zone"
399
439
 
400
440
  #. @context: Dashboard main heading
401
- #. @context: Dashboard navigation - main dashboard page
402
441
  #: src/routes/dash/index.tsx
403
- #: src/ui/layouts/DashLayout.tsx
404
442
  msgid "Dashboard"
405
443
  msgstr "Dashboard"
406
444
 
407
445
  #. @context: Settings form field
408
446
  #: src/ui/dash/settings/GeneralContent.tsx
409
- msgid "Default Homepage View"
410
- msgstr "Default Homepage View"
447
+ #~ msgid "Default Homepage View"
448
+ #~ msgstr "Default Homepage View"
411
449
 
412
450
  #. @context: Button to delete item
413
- #. @context: Button to delete link
414
451
  #. @context: Button to delete redirect
452
+ #. @context: Delete nav item
415
453
  #: src/routes/dash/redirects.tsx
416
454
  #: src/ui/dash/ActionButtons.tsx
417
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
455
+ #: src/ui/dash/appearance/NavigationContent.tsx
418
456
  msgid "Delete"
419
457
  msgstr "Delete"
420
458
 
@@ -465,13 +503,13 @@ msgstr "Display avatar in my site header"
465
503
 
466
504
  #. @context: Navigation label help text
467
505
  #: src/ui/dash/pages/LinkFormContent.tsx
468
- msgid "Display text for the link"
469
- msgstr "Display text for the link"
506
+ #~ msgid "Display text for the link"
507
+ #~ msgstr "Display text for the link"
470
508
 
471
509
  #. @context: Help text for site description field
472
510
  #: src/ui/dash/settings/GeneralContent.tsx
473
- msgid "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
474
- msgstr "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
511
+ #~ msgid "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
512
+ #~ msgstr "Displayed above your blog posts on the home page. Also used as the meta description. Markdown supported."
475
513
 
476
514
  #. @context: Help text for site footer field
477
515
  #: src/ui/dash/settings/GeneralContent.tsx
@@ -514,8 +552,6 @@ msgstr "Drafts"
514
552
  #. @context: Button to edit collection
515
553
  #. @context: Button to edit collection
516
554
  #. @context: Button to edit item
517
- #. @context: Button to edit link
518
- #. @context: Button to edit page
519
555
  #. @context: Button to edit page
520
556
  #. @context: Button to edit page
521
557
  #. @context: Button to edit post
@@ -525,9 +561,7 @@ msgstr "Drafts"
525
561
  #: src/ui/dash/ActionButtons.tsx
526
562
  #: src/ui/dash/collections/CollectionsListContent.tsx
527
563
  #: src/ui/dash/collections/ViewCollectionContent.tsx
528
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
529
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
530
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
564
+ #: src/ui/dash/pages/PagesContent.tsx
531
565
  #: src/ui/dash/PostList.tsx
532
566
  msgid "Edit"
533
567
  msgstr "Edit"
@@ -539,11 +573,13 @@ msgstr "Edit Collection"
539
573
 
540
574
  #. @context: Page heading
541
575
  #: src/ui/dash/pages/LinkFormContent.tsx
542
- msgid "Edit Link"
543
- msgstr "Edit Link"
576
+ #~ msgid "Edit Link"
577
+ #~ msgstr "Edit Link"
544
578
 
545
579
  #. @context: Edit page main heading
580
+ #. @context: Link to edit the page
546
581
  #: src/routes/dash/pages.tsx
582
+ #: src/ui/dash/appearance/NavigationContent.tsx
547
583
  msgid "Edit Page"
548
584
  msgstr "Edit Page"
549
585
 
@@ -595,11 +631,21 @@ msgstr "entry"
595
631
  msgid "Failed to create account"
596
632
  msgstr "Failed to create account"
597
633
 
634
+ #. @context: Error toast when nav delete fails
635
+ #: src/ui/dash/appearance/NavigationContent.tsx
636
+ msgid "Failed to delete. Please try again."
637
+ msgstr "Failed to delete. Please try again."
638
+
598
639
  #. @context: Toast when post save fails
599
640
  #: src/ui/dash/posts/PostForm.tsx
600
641
  msgid "Failed to save post. Please try again."
601
642
  msgstr "Failed to save post. Please try again."
602
643
 
644
+ #. @context: Error toast when nav save fails
645
+ #: src/ui/dash/appearance/NavigationContent.tsx
646
+ msgid "Failed to save. Please try again."
647
+ msgstr "Failed to save. Please try again."
648
+
603
649
  #. @context: Error toast when profile update fails
604
650
  #: src/routes/dash/settings.tsx
605
651
  msgid "Failed to update profile."
@@ -607,11 +653,15 @@ msgstr "Failed to update profile."
607
653
 
608
654
  #. @context: Archive filter - featured posts
609
655
  #. @context: Browse filter for featured posts
610
- #. @context: Homepage view option - show featured posts
656
+ #. @context: Browse filter label
657
+ #. @context: Browse filter label
658
+ #. @context: Browse filter label for featured posts
611
659
  #. @context: Post badge - featured
612
660
  #. @context: Post form checkbox - mark as featured
661
+ #: src/ui/dash/appearance/NavigationContent.tsx
662
+ #: src/ui/dash/appearance/NavigationContent.tsx
663
+ #: src/ui/dash/appearance/NavigationContent.tsx
613
664
  #: src/ui/dash/posts/PostForm.tsx
614
- #: src/ui/dash/settings/GeneralContent.tsx
615
665
  #: src/ui/dash/StatusBadge.tsx
616
666
  #: src/ui/layouts/SiteLayout.tsx
617
667
  #: src/ui/pages/ArchivePage.tsx
@@ -673,11 +723,21 @@ msgstr "General"
673
723
  msgid "Give it a title..."
674
724
  msgstr "Give it a title..."
675
725
 
726
+ #. @context: Settings form field for max visible nav links in header
727
+ #: src/ui/dash/settings/GeneralContent.tsx
728
+ #~ msgid "Header Nav Links"
729
+ #~ msgstr "Header Nav Links"
730
+
676
731
  #. @context: Collection sort order option
677
732
  #: src/ui/dash/collections/CollectionForm.tsx
678
733
  msgid "Highest rated"
679
734
  msgstr "Highest rated"
680
735
 
736
+ #. @context: Toast after saving home default view setting
737
+ #: src/ui/dash/appearance/NavigationContent.tsx
738
+ msgid "Home view saved"
739
+ msgstr "Home view saved"
740
+
681
741
  #. @context: Collection form field
682
742
  #: src/ui/dash/collections/CollectionForm.tsx
683
743
  msgid "Icon (optional)"
@@ -733,9 +793,9 @@ msgid "Invalid or Expired Link"
733
793
  msgstr "Invalid or Expired Link"
734
794
 
735
795
  #. @context: Error toast when reorder request is malformed
736
- #: src/routes/dash/pages.tsx
737
- msgid "Invalid request"
738
- msgstr "Invalid request"
796
+ #: src/routes/dash/appearance.tsx
797
+ #~ msgid "Invalid request"
798
+ #~ msgstr "Invalid request"
739
799
 
740
800
  #. @context: Error toast when selected theme is not valid
741
801
  #: src/routes/dash/appearance.tsx
@@ -747,26 +807,33 @@ msgstr "Invalid theme selected."
747
807
  msgid "It's OK for search engines to index my site"
748
808
  msgstr "It's OK for search engines to index my site"
749
809
 
750
- #. @context: Navigation link form field
751
- #: src/ui/dash/pages/LinkFormContent.tsx
810
+ #. @context: Nav item label field
811
+ #: src/ui/dash/appearance/NavigationContent.tsx
752
812
  msgid "Label"
753
813
  msgstr "Label"
754
814
 
755
815
  #. @context: Error toast when nav link fields are empty
756
- #. @context: Error toast when nav link fields are empty
757
- #: src/routes/dash/pages.tsx
758
- #: src/routes/dash/pages.tsx
816
+ #: src/ui/dash/appearance/NavigationContent.tsx
759
817
  msgid "Label and URL are required"
760
818
  msgstr "Label and URL are required"
761
819
 
820
+ #. @context: Error toast when nav label is empty
821
+ #: src/ui/dash/appearance/NavigationContent.tsx
822
+ msgid "Label is required"
823
+ msgstr "Label is required"
824
+
762
825
  #. @context: Settings form field
763
826
  #: src/ui/dash/settings/GeneralContent.tsx
764
827
  msgid "Language"
765
828
  msgstr "Language"
766
829
 
767
830
  #. @context: Browse filter for latest posts
768
- #. @context: Homepage view option - show latest posts
769
- #: src/ui/dash/settings/GeneralContent.tsx
831
+ #. @context: Browse filter label
832
+ #. @context: Browse filter label
833
+ #. @context: Browse filter label for latest posts
834
+ #: src/ui/dash/appearance/NavigationContent.tsx
835
+ #: src/ui/dash/appearance/NavigationContent.tsx
836
+ #: src/ui/dash/appearance/NavigationContent.tsx
770
837
  #: src/ui/layouts/SiteLayout.tsx
771
838
  msgid "Latest"
772
839
  msgstr "Latest"
@@ -777,7 +844,7 @@ msgstr "Latest"
777
844
  #~ msgstr "Let's set up your site."
778
845
 
779
846
  #. @context: Nav item type badge
780
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
847
+ #: src/ui/dash/appearance/NavigationContent.tsx
781
848
  msgid "link"
782
849
  msgstr "link"
783
850
 
@@ -827,17 +894,40 @@ msgstr "Markdown"
827
894
  msgid "Markdown supported"
828
895
  msgstr "Markdown supported"
829
896
 
897
+ #. @context: Label for max visible nav links number input
898
+ #: src/ui/dash/appearance/NavigationContent.tsx
899
+ msgid "Max visible links"
900
+ msgstr "Max visible links"
901
+
902
+ #. @context: Toast after saving max visible nav links setting
903
+ #: src/ui/dash/appearance/NavigationContent.tsx
904
+ msgid "Max visible links saved"
905
+ msgstr "Max visible links saved"
906
+
907
+ #. @context: Settings form field for max visible nav links in header before overflow menu
908
+ #: src/ui/dash/settings/GeneralContent.tsx
909
+ #~ msgid "Max Visible Nav Links"
910
+ #~ msgstr "Max Visible Nav Links"
911
+
830
912
  #. @context: Compose toolbar - media tooltip
831
- #. @context: Dashboard navigation - media library
832
913
  #. @context: Media main heading
833
914
  #. @context: Post form field - media attachments
834
915
  #: src/ui/compose/ComposeDialog.tsx
835
916
  #: src/ui/dash/media/MediaListContent.tsx
836
917
  #: src/ui/dash/posts/PostForm.tsx
837
- #: src/ui/layouts/DashLayout.tsx
838
918
  msgid "Media"
839
919
  msgstr "Media"
840
920
 
921
+ #. @context: Dashboard header menu button
922
+ #: src/ui/layouts/DashLayout.tsx
923
+ msgid "Menu"
924
+ msgstr "Menu"
925
+
926
+ #. @context: Button to show overflow nav links
927
+ #: src/ui/layouts/SiteLayout.tsx
928
+ msgid "More links"
929
+ msgstr "More links"
930
+
841
931
  #. @context: Header more button tooltip
842
932
  #: src/ui/compose/ComposeDialog.tsx
843
933
  #~ msgid "More options"
@@ -863,12 +953,15 @@ msgstr "Name"
863
953
  msgid "Name is required."
864
954
  msgstr "Name is required."
865
955
 
866
- #. @context: Dashboard heading
867
- #. @context: Dashboard navigation - navigation links management
868
- #: src/routes/dash/navigation.tsx
869
- #: src/theme/layouts/DashLayout.tsx
870
- #~ msgid "Navigation"
871
- #~ msgstr "Navigation"
956
+ #. @context: Appearance sub-navigation tab
957
+ #: src/ui/dash/appearance/AppearanceNav.tsx
958
+ msgid "Navigation"
959
+ msgstr "Navigation"
960
+
961
+ #. @context: Section heading for nav items
962
+ #: src/ui/dash/appearance/NavigationContent.tsx
963
+ msgid "Navigation items"
964
+ msgstr "Navigation items"
872
965
 
873
966
  #. @context: Help text with link
874
967
  #: src/routes/dash/index.tsx
@@ -891,13 +984,13 @@ msgstr "New Divider"
891
984
 
892
985
  #. @context: Page heading
893
986
  #: src/ui/dash/pages/LinkFormContent.tsx
894
- msgid "New Link"
895
- msgstr "New Link"
987
+ #~ msgid "New Link"
988
+ #~ msgstr "New Link"
896
989
 
897
990
  #. @context: Button to create new page
898
991
  #. @context: New page main heading
899
992
  #: src/routes/dash/pages.tsx
900
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
993
+ #: src/ui/dash/pages/PagesContent.tsx
901
994
  msgid "New Page"
902
995
  msgstr "New Page"
903
996
 
@@ -975,6 +1068,11 @@ msgstr "No media selected yet."
975
1068
  msgid "No media uploaded yet."
976
1069
  msgstr "No media uploaded yet."
977
1070
 
1071
+ #. @context: Empty state for navigation items
1072
+ #: src/ui/dash/appearance/NavigationContent.tsx
1073
+ msgid "No navigation items yet. Add pages, links, or enable system items below."
1074
+ msgstr "No navigation items yet. Add pages, links, or enable system items below."
1075
+
978
1076
  #. @context: Empty state message
979
1077
  #: src/routes/dash/navigation.tsx
980
1078
  #~ msgid "No navigation links configured."
@@ -982,14 +1080,24 @@ msgstr "No media uploaded yet."
982
1080
 
983
1081
  #. @context: Empty state for navigation section
984
1082
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
985
- msgid "No navigation links yet. Add pages to navigation or create links."
986
- msgstr "No navigation links yet. Add pages to navigation or create links."
1083
+ #~ msgid "No navigation links yet. Add pages to navigation or create links."
1084
+ #~ msgstr "No navigation links yet. Add pages to navigation or create links."
1085
+
1086
+ #. @context: Empty state when page search has no results
1087
+ #: src/ui/dash/appearance/NavigationContent.tsx
1088
+ msgid "No pages found."
1089
+ msgstr "No pages found."
987
1090
 
988
1091
  #. @context: Empty state message when no pages exist
989
1092
  #: src/routes/dash/pages.tsx
990
1093
  #~ msgid "No pages yet."
991
1094
  #~ msgstr "No pages yet."
992
1095
 
1096
+ #. @context: Empty state for pages list
1097
+ #: src/ui/dash/pages/PagesContent.tsx
1098
+ msgid "No pages yet. Create your first page to get started."
1099
+ msgstr "No pages yet. Create your first page to get started."
1100
+
993
1101
  #. @context: Archive empty state
994
1102
  #: src/ui/pages/ArchivePage.tsx
995
1103
  msgid "No posts found."
@@ -1046,17 +1154,17 @@ msgid "Oldest first"
1046
1154
  msgstr "Oldest first"
1047
1155
 
1048
1156
  #. @context: Toast after saving navigation item order
1049
- #: src/routes/dash/pages.tsx
1157
+ #: src/ui/dash/appearance/NavigationContent.tsx
1050
1158
  msgid "Order saved"
1051
1159
  msgstr "Order saved"
1052
1160
 
1053
1161
  #. @context: Section heading for pages not in navigation
1054
1162
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
1055
- msgid "Other pages"
1056
- msgstr "Other pages"
1163
+ #~ msgid "Other pages"
1164
+ #~ msgstr "Other pages"
1057
1165
 
1058
1166
  #. @context: Nav item type badge
1059
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1167
+ #: src/ui/dash/appearance/NavigationContent.tsx
1060
1168
  msgid "page"
1061
1169
  msgstr "page"
1062
1170
 
@@ -1082,7 +1190,7 @@ msgstr "Page title..."
1082
1190
 
1083
1191
  #. @context: Dashboard navigation - pages management
1084
1192
  #. @context: Pages main heading
1085
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1193
+ #: src/ui/dash/pages/PagesContent.tsx
1086
1194
  #: src/ui/layouts/DashLayout.tsx
1087
1195
  msgid "Pages"
1088
1196
  msgstr "Pages"
@@ -1127,8 +1235,8 @@ msgstr "Paste a URL..."
1127
1235
 
1128
1236
  #. @context: Navigation URL help text
1129
1237
  #: src/ui/dash/pages/LinkFormContent.tsx
1130
- msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
1131
- msgstr "Path (e.g. /archive) or full URL (e.g. https://example.com)"
1238
+ #~ msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
1239
+ #~ msgstr "Path (e.g. /archive) or full URL (e.g. https://example.com)"
1132
1240
 
1133
1241
  #. @context: Link to individual post in thread
1134
1242
  #. @context: Link to permanent URL of post
@@ -1150,11 +1258,9 @@ msgstr "Pinned"
1150
1258
  #~ msgstr "post"
1151
1259
 
1152
1260
  #. @context: Compose button - publish post
1153
- #. @context: Compose prompt post button
1154
1261
  #. @context: Default post title
1155
1262
  #: src/routes/dash/posts.tsx
1156
1263
  #: src/ui/compose/ComposeDialog.tsx
1157
- #: src/ui/compose/ComposePrompt.tsx
1158
1264
  msgid "Post"
1159
1265
  msgstr "Post"
1160
1266
 
@@ -1184,9 +1290,7 @@ msgstr "Post updated successfully."
1184
1290
  #~ msgstr "posts"
1185
1291
 
1186
1292
  #. @context: Dashboard heading
1187
- #. @context: Dashboard navigation - posts management
1188
1293
  #: src/routes/dash/posts.tsx
1189
- #: src/ui/layouts/DashLayout.tsx
1190
1294
  msgid "Posts"
1191
1295
  msgstr "Posts"
1192
1296
 
@@ -1195,7 +1299,11 @@ msgstr "Posts"
1195
1299
  msgid "Posts in Collection ({count})"
1196
1300
  msgstr "Posts in Collection ({count})"
1197
1301
 
1302
+ #. @context: Label for nav preview section
1303
+ #. @context: Label for nav preview section
1198
1304
  #. @context: Media detail section - preview
1305
+ #: src/ui/dash/appearance/NavigationContent.tsx
1306
+ #: src/ui/dash/appearance/NavigationContent.tsx
1199
1307
  #: src/ui/dash/media/ViewMediaContent.tsx
1200
1308
  msgid "Preview"
1201
1309
  msgstr "Preview"
@@ -1308,6 +1416,8 @@ msgstr "Redirects"
1308
1416
  #. @context: Button to remove icon
1309
1417
  #. @context: Button to remove the blog avatar
1310
1418
  #. @context: Remove media attachment button
1419
+ #. @context: Remove page from navigation
1420
+ #: src/ui/dash/appearance/NavigationContent.tsx
1311
1421
  #: src/ui/dash/collections/CollectionForm.tsx
1312
1422
  #: src/ui/dash/posts/PostForm.tsx
1313
1423
  #: src/ui/dash/settings/GeneralContent.tsx
@@ -1327,6 +1437,8 @@ msgid "Reset Password"
1327
1437
  msgstr "Reset Password"
1328
1438
 
1329
1439
  #. @context: Button to save settings
1440
+ #. @context: Save nav item changes
1441
+ #: src/ui/dash/appearance/NavigationContent.tsx
1330
1442
  #: src/ui/dash/settings/GeneralContent.tsx
1331
1443
  msgid "Save"
1332
1444
  msgstr "Save"
@@ -1343,8 +1455,8 @@ msgstr "Save as Draft"
1343
1455
 
1344
1456
  #. @context: Button to save edited navigation link
1345
1457
  #: src/ui/dash/pages/LinkFormContent.tsx
1346
- msgid "Save Changes"
1347
- msgstr "Save Changes"
1458
+ #~ msgid "Save Changes"
1459
+ #~ msgstr "Save Changes"
1348
1460
 
1349
1461
  #. @context: Button to save custom CSS
1350
1462
  #: src/ui/dash/appearance/AdvancedContent.tsx
@@ -1385,6 +1497,11 @@ msgstr "Search"
1385
1497
  msgid "Search icons..."
1386
1498
  msgstr "Search icons..."
1387
1499
 
1500
+ #. @context: Placeholder for page search input in combobox
1501
+ #: src/ui/dash/appearance/NavigationContent.tsx
1502
+ msgid "Search pages…"
1503
+ msgstr "Search pages…"
1504
+
1388
1505
  #. @context: Search input placeholder
1389
1506
  #: src/ui/pages/SearchPage.tsx
1390
1507
  msgid "Search posts..."
@@ -1412,15 +1529,7 @@ msgstr "SEO"
1412
1529
  msgid "SEO settings saved successfully."
1413
1530
  msgstr "SEO settings saved successfully."
1414
1531
 
1415
- #. @context: Dashboard heading
1416
- #. @context: Dashboard heading
1417
- #. @context: Dashboard heading
1418
- #. @context: Dashboard heading
1419
1532
  #. @context: Dashboard navigation - site settings
1420
- #: src/routes/dash/redirects.tsx
1421
- #: src/routes/dash/redirects.tsx
1422
- #: src/ui/dash/settings/AccountContent.tsx
1423
- #: src/ui/dash/settings/GeneralContent.tsx
1424
1533
  #: src/ui/layouts/DashLayout.tsx
1425
1534
  msgid "Settings"
1426
1535
  msgstr "Settings"
@@ -1450,7 +1559,7 @@ msgstr "Show {remainingCount} more {0}"
1450
1559
  msgid "Sign In"
1451
1560
  msgstr "Sign In"
1452
1561
 
1453
- #. @context: Dashboard header link to sign out
1562
+ #. @context: Dashboard menu item to sign out
1454
1563
  #: src/ui/layouts/DashLayout.tsx
1455
1564
  msgid "Sign Out"
1456
1565
  msgstr "Sign Out"
@@ -1524,6 +1633,16 @@ msgstr "Supplementary content attached to your post"
1524
1633
  #~ msgid "Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB."
1525
1634
  #~ msgstr "Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB."
1526
1635
 
1636
+ #. @context: Nav item type badge
1637
+ #: src/ui/dash/appearance/NavigationContent.tsx
1638
+ msgid "system"
1639
+ msgstr "system"
1640
+
1641
+ #. @context: Section heading for system nav items
1642
+ #: src/ui/dash/appearance/NavigationContent.tsx
1643
+ msgid "System links"
1644
+ msgstr "System links"
1645
+
1527
1646
  #. @context: Redirect to path help text
1528
1647
  #: src/routes/dash/redirects.tsx
1529
1648
  msgid "The destination path or URL"
@@ -1622,6 +1741,16 @@ msgstr "Title (optional)"
1622
1741
  msgid "To Path"
1623
1742
  msgstr "To Path"
1624
1743
 
1744
+ #. @context: Description for system nav toggles
1745
+ #: src/ui/dash/appearance/NavigationContent.tsx
1746
+ msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside pages and links."
1747
+ msgstr "Toggle built-in navigation items. Enabled items appear in your navigation alongside pages and links."
1748
+
1749
+ #. @context: Button to expand/collapse nav item edit
1750
+ #: src/ui/dash/appearance/NavigationContent.tsx
1751
+ msgid "Toggle edit panel"
1752
+ msgstr "Toggle edit panel"
1753
+
1625
1754
  #. @context: Redirect form field
1626
1755
  #: src/routes/dash/redirects.tsx
1627
1756
  msgid "Type"
@@ -1634,8 +1763,8 @@ msgstr "Type the quote..."
1634
1763
 
1635
1764
  #. @context: Button to remove page from navigation
1636
1765
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
1637
- msgid "Un-nav"
1638
- msgstr "Un-nav"
1766
+ #~ msgid "Un-nav"
1767
+ #~ msgstr "Un-nav"
1639
1768
 
1640
1769
  #. @context: Post visibility badge - unlisted
1641
1770
  #. @context: Post visibility option
@@ -1646,7 +1775,7 @@ msgstr "Un-nav"
1646
1775
 
1647
1776
  #. @context: Default title for untitled page
1648
1777
  #. @context: Default title for untitled post
1649
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1778
+ #: src/ui/dash/pages/PagesContent.tsx
1650
1779
  #: src/ui/dash/PostList.tsx
1651
1780
  msgid "Untitled"
1652
1781
  msgstr "Untitled"
@@ -1707,9 +1836,9 @@ msgid "Uploading..."
1707
1836
  msgstr "Uploading..."
1708
1837
 
1709
1838
  #. @context: Media detail section - URL
1710
- #. @context: Navigation link form field
1839
+ #. @context: Nav item URL field
1840
+ #: src/ui/dash/appearance/NavigationContent.tsx
1711
1841
  #: src/ui/dash/media/ViewMediaContent.tsx
1712
- #: src/ui/dash/pages/LinkFormContent.tsx
1713
1842
  msgid "URL"
1714
1843
  msgstr "URL"
1715
1844
 
@@ -1728,6 +1857,11 @@ msgstr "URL (optional)"
1728
1857
  msgid "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
1729
1858
  msgstr "URL-safe identifier (lowercase, numbers, hyphens). For CJK titles, slug will be auto-generated on the server."
1730
1859
 
1860
+ #. @context: Switch label for setting featured posts as default homepage
1861
+ #: src/ui/dash/appearance/NavigationContent.tsx
1862
+ msgid "Use Featured as default home view"
1863
+ msgstr "Use Featured as default home view"
1864
+
1731
1865
  #. @context: Media URL helper text
1732
1866
  #: src/ui/dash/media/ViewMediaContent.tsx
1733
1867
  msgid "Use this URL to embed the media in your posts."
@@ -1743,7 +1877,7 @@ msgstr "Use this URL to embed the media in your posts."
1743
1877
  #: src/routes/dash/posts.tsx
1744
1878
  #: src/ui/dash/ActionButtons.tsx
1745
1879
  #: src/ui/dash/collections/ViewCollectionContent.tsx
1746
- #: src/ui/dash/pages/UnifiedPagesContent.tsx
1880
+ #: src/ui/dash/pages/PagesContent.tsx
1747
1881
  #: src/ui/dash/PostList.tsx
1748
1882
  msgid "View"
1749
1883
  msgstr "View"
@@ -1797,8 +1931,8 @@ msgstr "Your Name"
1797
1931
 
1798
1932
  #. @context: Section heading for navigation items
1799
1933
  #: src/ui/dash/pages/UnifiedPagesContent.tsx
1800
- msgid "Your site navigation"
1801
- msgstr "Your site navigation"
1934
+ #~ msgid "Your site navigation"
1935
+ #~ msgstr "Your site navigation"
1802
1936
 
1803
1937
  #. @context: Compose thoughts placeholder
1804
1938
  #: src/ui/compose/ComposeDialog.tsx