@jant/core 0.3.39 → 0.3.42

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 (1163) hide show
  1. package/README.md +21 -33
  2. package/bin/commands/assets/upload.js +247 -0
  3. package/bin/commands/collections.js +268 -0
  4. package/bin/commands/import-site.js +1169 -343
  5. package/bin/commands/media.js +302 -0
  6. package/bin/commands/migrate-text-attachments.js +183 -0
  7. package/bin/commands/migrate.js +263 -2
  8. package/bin/commands/posts.js +262 -0
  9. package/bin/commands/search.js +53 -0
  10. package/bin/commands/settings.js +93 -0
  11. package/bin/commands/site/export.js +34 -33
  12. package/bin/commands/site/{localize-media.js → pull-media.js} +17 -17
  13. package/bin/lib/d1-query.js +15 -3
  14. package/bin/lib/http-api.js +223 -0
  15. package/bin/lib/media-upload.js +206 -0
  16. package/bin/lib/migration-runner.js +64 -0
  17. package/bin/lib/runtime-target.js +7 -2
  18. package/bin/lib/site-media-parser.js +71 -16
  19. package/bin/lib/site-pull-media.js +698 -0
  20. package/bin/lib/site-snapshot.js +0 -1
  21. package/dist/{app-BfoG98VD.js → app-Cu3lveYI.js} +24017 -23072
  22. package/dist/app-DzCB4yOp.js +5 -0
  23. package/dist/client/.vite/manifest.json +3485 -0
  24. package/dist/client/_assets/chunks/02611a045a7fe83a12014e3debc9f731-BqEDtwXC.woff2 +0 -0
  25. package/dist/client/_assets/chunks/033466ef683afe931f7f520cfb42d928-BluLHEh9.woff2 +0 -0
  26. package/dist/client/_assets/chunks/04b8bde59cff68eeee74fb1914eb09c7-D5j2CLTt.woff2 +0 -0
  27. package/dist/client/_assets/chunks/057a6a98bda7fe57105ddaa99ec82015-DY_AoijT.woff2 +0 -0
  28. package/dist/client/_assets/chunks/05ac821472e235943ed1435e4bb8ecad-CUm8GiH6.woff2 +0 -0
  29. package/dist/client/_assets/chunks/05da12edb9d52210581dc6ec4541031f-BXAOx2XP.woff2 +0 -0
  30. package/dist/client/_assets/chunks/074c1f8483d5a4d8c45c8c5f3e4cbb32-CDqdMQm8.woff2 +0 -0
  31. package/dist/client/_assets/chunks/0968e4861204b51f62a2f8e9f15dd5e0-D5tLgF_8.woff2 +0 -0
  32. package/dist/client/_assets/chunks/0acd1fe2b2ea1ad1bfee7ae1fa139d27-BKK1m412.woff2 +0 -0
  33. package/dist/client/_assets/chunks/0c2ab6b295e55f356f8020d4e7747522-CkCQjQw3.woff2 +0 -0
  34. package/dist/client/_assets/chunks/0c5f9492af03a4fa42c784de94649de1-CQlJqksa.woff2 +0 -0
  35. package/dist/client/_assets/chunks/0d5dec931dc885f07fe5cd5af8bed675-C74x-U_U.woff2 +0 -0
  36. package/dist/client/_assets/chunks/0d9a936885a4c39077438effd3779cbd-Bw0fYF4S.woff2 +0 -0
  37. package/dist/client/_assets/chunks/0e645da524f7cfc0e8c3c03fb2b08428-BVeI_5Th.woff2 +0 -0
  38. package/dist/client/_assets/chunks/0f5e1a18987dbc84ca05188c129e1936-B6_lZ6fE.woff2 +0 -0
  39. package/dist/client/_assets/chunks/1076f0f6f66d28d7a2f16427faad4413-ubiXnD1P.woff2 +0 -0
  40. package/dist/client/_assets/chunks/112743a4ab5fdd1498dfdf2b11336380-B5FzQxTK.woff2 +0 -0
  41. package/dist/client/_assets/chunks/1211f03d3ff5759a702631445793f60e-DDcSiyCt.woff2 +0 -0
  42. package/dist/client/_assets/chunks/12ef1ba76bd20b004b865266a1aa70b3-BwmaD87S.woff2 +0 -0
  43. package/dist/client/_assets/chunks/135e83b403475c5dc9e49b43501a5b84-C5mE_KZS.woff2 +0 -0
  44. package/dist/client/_assets/chunks/1380210a722ac9aeef54005ad7b015c9-CjA-MP82.woff2 +0 -0
  45. package/dist/client/_assets/chunks/13b2c53b30e6a3e4de7132dbc18dbdfc-B9WOB7kv.woff2 +0 -0
  46. package/dist/client/_assets/chunks/147b24c2f08d03bbed30887d4cb3311c-IeeFCJ13.woff2 +0 -0
  47. package/dist/client/_assets/chunks/152395634a207579552f8cb54db88599-C2y2JyNZ.woff2 +0 -0
  48. package/dist/client/_assets/chunks/15d95680dc31cc6ce20e0a5464106dc4-CpD8dqRm.woff2 +0 -0
  49. package/dist/client/_assets/chunks/16663e567f81f4725a1522f37e18f71f-BNoxS9pQ.woff2 +0 -0
  50. package/dist/client/_assets/chunks/1733f27476507ca68b68a803bc533cc2-DXL-14Ug.woff2 +0 -0
  51. package/dist/client/_assets/chunks/17c7f5d0a45e92ede0e5dec3a2c77efa-CNj3jQMl.woff2 +0 -0
  52. package/dist/client/_assets/chunks/1824321da801e6257b902f3d1d09054c-D4dgdyWB.woff2 +0 -0
  53. package/dist/client/_assets/chunks/188c2db794f3dd7a45889ddbc81da9bb-C9NbUBBO.woff2 +0 -0
  54. package/dist/client/_assets/chunks/1a08931435f885e707edb85978ea3bb6-BOiP2u7G.woff2 +0 -0
  55. package/dist/client/_assets/chunks/1a3a92c7c060a71a6c35819b9ebcdbb9-DFfonQfz.woff2 +0 -0
  56. package/dist/client/_assets/chunks/1be602ad456b0d75902d352116cb35fd-Bc-XQtQh.woff2 +0 -0
  57. package/dist/client/_assets/chunks/1cf737900dd49c2e88f1b3221a82a602-CfTmnns3.woff2 +0 -0
  58. package/dist/client/_assets/chunks/1fba7ec0e412e911bf31841de5a8a4e4-18ELMbFF.woff2 +0 -0
  59. package/dist/client/_assets/chunks/233d3a685ee18276b319363474599d47-BaFdJ0-G.woff2 +0 -0
  60. package/dist/client/_assets/chunks/2612c60f9dc5459ac42763591240a1d6-CTD69cq1.woff2 +0 -0
  61. package/dist/client/_assets/chunks/284b53bbefb06924cf236d24c8ed5641-CPDiuOv6.woff2 +0 -0
  62. package/dist/client/_assets/chunks/28a97af9ab9d38983d20f39ff09840e1-mFqcT3Jw.woff2 +0 -0
  63. package/dist/client/_assets/chunks/2a56eaf19d1d38a6b57e2a388f733676-CU52qBlE.woff2 +0 -0
  64. package/dist/client/_assets/chunks/2ab8cf1f23a5ac7939a7876054e711a7-B4T3dK7A.woff2 +0 -0
  65. package/dist/client/_assets/chunks/2abfbab82b6a7c04426afc054d2464da-D5PIIHde.woff2 +0 -0
  66. package/dist/client/_assets/chunks/2bfaadaf3479c72286248e6de0be0ec9-DEpU6O74.woff2 +0 -0
  67. package/dist/client/_assets/chunks/2c8c55e4cec85ce77e95cac9d330f5cf-BCTA96EZ.woff2 +0 -0
  68. package/dist/client/_assets/chunks/2e6f4bb71ef6b38765d51acc5a79f638-Mbs6PECD.woff2 +0 -0
  69. package/dist/client/_assets/chunks/2ed9981d2e8983365bd051159b976b6d-D8gg6NWM.woff2 +0 -0
  70. package/dist/client/_assets/chunks/2f4c633e923ba30c6ba376367379fc91-CIJCFztv.woff2 +0 -0
  71. package/dist/client/_assets/chunks/31194d303a67561926a544ed0e072aee-w3-eGYAi.woff2 +0 -0
  72. package/dist/client/_assets/chunks/31a197213ae61d7043c81013f52d10d6-DXZrrkJP.woff2 +0 -0
  73. package/dist/client/_assets/chunks/349965eee0a9b6c984a319ab96a4ece9-DByAVmXw.woff2 +0 -0
  74. package/dist/client/_assets/chunks/34e6750e00c3a911ef87dc66b336594d-DNbWesOu.woff2 +0 -0
  75. package/dist/client/_assets/chunks/3623d96698132c61e861f984ce11cc23-jqV9ErzX.woff2 +0 -0
  76. package/dist/client/_assets/chunks/36cda3eae13370b934bba4429fab9078-BPDcUlw9.woff2 +0 -0
  77. package/dist/client/_assets/chunks/36f3df4730cfca4fc77fe52b52e6a126-BwK10NC0.woff2 +0 -0
  78. package/dist/client/_assets/chunks/37887deb7a9c466cf2af6ee7ff372ea6-BrAerJB1.woff2 +0 -0
  79. package/dist/client/_assets/chunks/37dbd564820cce2f7b3331e442da0df3-Cql2kzIi.woff2 +0 -0
  80. package/dist/client/_assets/chunks/37dc8505b20b37a2477a9121b16d44a7-CoXw6XWV.woff2 +0 -0
  81. package/dist/client/_assets/chunks/39211b02f24c69cbd1b54f6d41b01933-4Xu7vvnq.woff2 +0 -0
  82. package/dist/client/_assets/chunks/3aa13f1843d7c8fa16109b6395a9a29d-BQFZUc3B.woff2 +0 -0
  83. package/dist/client/_assets/chunks/3aba89c4d4281553078de4622b498cbb-8QS1zDYk.woff2 +0 -0
  84. package/dist/client/_assets/chunks/3ac0a07878cacdc98bb889f40f5970d3-C-BaM6-y.woff2 +0 -0
  85. package/dist/client/_assets/chunks/3d88558097559d775231194d43745ba7-CR2aqGC7.woff2 +0 -0
  86. package/dist/client/_assets/chunks/3dc3e8c35524cad2d1236f3393104ccf-9sqBsF7B.woff2 +0 -0
  87. package/dist/client/_assets/chunks/3e24063b19abd2b051af986a6870046d-TlweM3SW.woff2 +0 -0
  88. package/dist/client/_assets/chunks/3e2c06bdd9dcab29aeaeb0cfb7fa608a-BaqU-dIt.woff2 +0 -0
  89. package/dist/client/_assets/chunks/424123f9371ba357087363263eeafcda-C8SVfEJi.woff2 +0 -0
  90. package/dist/client/_assets/chunks/43b3bbf43055c3e65db9cdf2c5b18c1c-CbHx6-Ki.woff2 +0 -0
  91. package/dist/client/_assets/chunks/4410f876d27c9821839474b6b1059fd7-ClYz91aY.woff2 +0 -0
  92. package/dist/client/_assets/chunks/44704471b60c18b3ecec5300a88f1102-DDmmy6-m.woff2 +0 -0
  93. package/dist/client/_assets/chunks/45140742dfa8686b58db2899ce89f89a-D5IMMzDM.woff2 +0 -0
  94. package/dist/client/_assets/chunks/46604090efbb99c2db1800928af0a239-JX2fpYX_.woff2 +0 -0
  95. package/dist/client/_assets/chunks/46998df85d31e629c0142f0556f5e7c5-BIkNG9Wh.woff2 +0 -0
  96. package/dist/client/_assets/chunks/469d2754e315e77270c12fa0ab28026c-D-y-vsfA.woff2 +0 -0
  97. package/dist/client/_assets/chunks/479329a39a3eb6c0047e6b0981919855-vZKCRx42.woff2 +0 -0
  98. package/dist/client/_assets/chunks/491bbba374093fff045f55803a22bfef-DSQXiDCd.woff2 +0 -0
  99. package/dist/client/_assets/chunks/49902f1c41b281f8eb3771abdd4dccb8-DxVxNg2W.woff2 +0 -0
  100. package/dist/client/_assets/chunks/4c0760284569b87d8f2290c324953973-Bqd-TKHH.woff2 +0 -0
  101. package/dist/client/_assets/chunks/4cba92c942694bdc479bc54101bb1aa4-BrfsrgrC.woff2 +0 -0
  102. package/dist/client/_assets/chunks/4d38e56738156625329d93bd5c8cc74a-DONkMP0y.woff2 +0 -0
  103. package/dist/client/_assets/chunks/4db4f31a16965baa42cb7dad667a8f04-Dt1Cy4gr.woff2 +0 -0
  104. package/dist/client/_assets/chunks/4e7d263c30bb48604069a3b4404d4eeb-DNPCkvKD.woff2 +0 -0
  105. package/dist/client/_assets/chunks/5279c7e465d9871edf51fd02e691eee7-CKhyhvVf.woff2 +0 -0
  106. package/dist/client/_assets/chunks/527ff336279465617aafbafe1a830632-CC3lv4pm.woff2 +0 -0
  107. package/dist/client/_assets/chunks/54bfdb6f21f9d6191e5100580239e14f-PGlqYvgl.woff2 +0 -0
  108. package/dist/client/_assets/chunks/56b40518ea0608e62826bd44ee27f5f9-BD9F9Oss.woff2 +0 -0
  109. package/dist/client/_assets/chunks/56be5e32fd01668fe5ba814d94905839-CSyFA-9l.woff2 +0 -0
  110. package/dist/client/_assets/chunks/572b9e28f1e6d89b765a16d809db84a1-BIYMjzEa.woff2 +0 -0
  111. package/dist/client/_assets/chunks/57e9a86651366c1ba299e47aa7e358c2-BHuZXB4W.woff2 +0 -0
  112. package/dist/client/_assets/chunks/57f89adeae55aa7fe2add3fc1801ce03-Cy3PNrfx.woff2 +0 -0
  113. package/dist/client/_assets/chunks/5921cef36750ff6092d94b83a802823b-hF-uymTh.woff2 +0 -0
  114. package/dist/client/_assets/chunks/59e95d8b5332dcdae894a19946ab767d-ClRfsjWZ.woff2 +0 -0
  115. package/dist/client/_assets/chunks/5acc7f736217259db79a42bf44241c48-FYQUuFOM.woff2 +0 -0
  116. package/dist/client/_assets/chunks/5c05f8b75c9d7f25b3c04ca711cf43b3-D-YWPkSq.woff2 +0 -0
  117. package/dist/client/_assets/chunks/5df9ce98c75f8c50fb4fff7f01a23925-DgoCENyW.woff2 +0 -0
  118. package/dist/client/_assets/chunks/5e0124c7265f1b4cf0fc797b94efbebc-BTBNHsSB.woff2 +0 -0
  119. package/dist/client/_assets/chunks/5ec349ff62b9ee5fe0c6dae867704dc4-B4dezhrz.woff2 +0 -0
  120. package/dist/client/_assets/chunks/60020a830d809c26970cf8e48ba1eeda-B6FDTSik.woff2 +0 -0
  121. package/dist/client/_assets/chunks/601f812e8b1eafecd5ba585a6a6d7962-gIVBlUU9.woff2 +0 -0
  122. package/dist/client/_assets/chunks/6025ddaf99d86cc8bfd781006b19fbd6-CS-ze337.woff2 +0 -0
  123. package/dist/client/_assets/chunks/60bcfa3ea7446eb42394aab02d28be40-C-PQfCu3.woff2 +0 -0
  124. package/dist/client/_assets/chunks/60f6e28b3f0400b0e8fe32c3c7116102-Dag9L2qU.woff2 +0 -0
  125. package/dist/client/_assets/chunks/615a7e0d63f257109d599b2a1977de68-D6Y93yoG.woff2 +0 -0
  126. package/dist/client/_assets/chunks/615b38e0b5bb3ea68426f44f47706e6f-B5yzIIer.woff2 +0 -0
  127. package/dist/client/_assets/chunks/61a2c80d0c924d5a6187c02e8d1d1642-BY3MmHbZ.woff2 +0 -0
  128. package/dist/client/_assets/chunks/62fc94f8d4c5a750b7f25e7387539910-3ql2_WDK.woff2 +0 -0
  129. package/dist/client/_assets/chunks/639c7c6b0b0c27c738702741cfa4b8c0-BCD3OGri.woff2 +0 -0
  130. package/dist/client/_assets/chunks/63fafcb069520613d0ea35ad3e6b1e42-DP0Rrj4o.woff2 +0 -0
  131. package/dist/client/_assets/chunks/64a404d675f1d726f0891b7a80794595-DU3L0I9s.woff2 +0 -0
  132. package/dist/client/_assets/chunks/65a60d87c64228d258a123cbe85f5f31-B4kbf-79.woff2 +0 -0
  133. package/dist/client/_assets/chunks/65e9c4585d71bf48a5c62f367010da16-CvzgzReN.woff2 +0 -0
  134. package/dist/client/_assets/chunks/68a3a4bf337f8a0722be76676e20b850-Dnaw8EPD.woff2 +0 -0
  135. package/dist/client/_assets/chunks/6968e889e18891d912809fe484c2e745-Bj1m5e0s.woff2 +0 -0
  136. package/dist/client/_assets/chunks/6abdd163d2c4b85698db8aa1ce149361-B5FVGJuo.woff2 +0 -0
  137. package/dist/client/_assets/chunks/6b75213eb0be40ce84241eb2bb438a2e-CqHmF-NR.woff2 +0 -0
  138. package/dist/client/_assets/chunks/70714891ad3fbfc3d5f10a8669dacc5a-BWk5nLFN.woff2 +0 -0
  139. package/dist/client/_assets/chunks/7158022889c6c177062ac85036e7af10-B3D4K22n.woff2 +0 -0
  140. package/dist/client/_assets/chunks/73b794d885b88f7befb7ea8ab1780a15-D0ZehnEI.woff2 +0 -0
  141. package/dist/client/_assets/chunks/743f290baf027d4626a86e22f3d44600-DDTDQdRC.woff2 +0 -0
  142. package/dist/client/_assets/chunks/7520ca6ca8c60eb1e62d50e71c8d30f1-CVRaGu2G.woff2 +0 -0
  143. package/dist/client/_assets/chunks/757019c01c5e2c2b0f54293cea3b5636-BTovUnoH.woff2 +0 -0
  144. package/dist/client/_assets/chunks/759a647b77791b1e98f99bc0ab5317a7-CrK6FIFz.woff2 +0 -0
  145. package/dist/client/_assets/chunks/761d84afca8d7f34eebefe538adba827-DRbiVuwX.woff2 +0 -0
  146. package/dist/client/_assets/chunks/76e07530323418ec723c5d7634c9bcca-DGtVJTTH.woff2 +0 -0
  147. package/dist/client/_assets/chunks/76e51630143b95b6322ef93ad330da7a-D-kV82C_.woff2 +0 -0
  148. package/dist/client/_assets/chunks/76f117a3baacda304a71965a17266a13-DFfvsFUm.woff2 +0 -0
  149. package/dist/client/_assets/chunks/773819b7b9b8fd404a929867c0fd677e-Bu1xCMZb.woff2 +0 -0
  150. package/dist/client/_assets/chunks/77747f17625a259fb405b7bbdd84ac4b-o_vNfh-6.woff2 +0 -0
  151. package/dist/client/_assets/chunks/7817dd16805145d8538ad57590f69f5a-DguSUP3O.woff2 +0 -0
  152. package/dist/client/_assets/chunks/788498548ddfb710d6ef3c7bff79fa97-3ffoQfRd.woff2 +0 -0
  153. package/dist/client/_assets/chunks/78ea6c40923ce95367e3517dd1e5a849-DvLDRhX9.woff2 +0 -0
  154. package/dist/client/_assets/chunks/79aa7c8c842c4a27cf57c0a3a1ffca5a-sDoCeoKI.woff2 +0 -0
  155. package/dist/client/_assets/chunks/7b59f0ec7792b18458dc5a361e37884c-DWvxkKmT.woff2 +0 -0
  156. package/dist/client/_assets/chunks/7c3945788a689a69356c1a622d69d48b-1JjIpss2.woff2 +0 -0
  157. package/dist/client/_assets/chunks/7cc72fd2c9105560422b6a67c6162945-Co3AF5_G.woff2 +0 -0
  158. package/dist/client/_assets/chunks/7d0ea0690e432462f4d05a23d720ec19-Dx7DK4C3.woff2 +0 -0
  159. package/dist/client/_assets/chunks/7dffa5c1bec57e0903fd62357401ff1a-DuQHmiiN.woff2 +0 -0
  160. package/dist/client/_assets/chunks/7e38ca789a9e76ac91d9256374e154f0-BtETgGRe.woff2 +0 -0
  161. package/dist/client/_assets/chunks/7f9a6c9286b68de9c72b0024f7beeb40-JpXdo4FC.woff2 +0 -0
  162. package/dist/client/_assets/chunks/815a0b797465190f60d8b1a04656c42e-Spzo94nU.woff2 +0 -0
  163. package/dist/client/_assets/chunks/823d1bb11097331238d103c7f72138dc-CGN6m2VF.woff2 +0 -0
  164. package/dist/client/_assets/chunks/82f6ccc063960eed1cdfd1d61ada8862-CsmAqx2a.woff2 +0 -0
  165. package/dist/client/_assets/chunks/835b6505bb9eea9678925a1fa885353d-C6mSBwUc.woff2 +0 -0
  166. package/dist/client/_assets/chunks/845b4b67564d62cf5cad242f7ac08ea5-DnvzrloJ.woff2 +0 -0
  167. package/dist/client/_assets/chunks/84c8e7bc0931008ed91f44ed12dfea94-C2Hvhh-b.woff2 +0 -0
  168. package/dist/client/_assets/chunks/8726558cf297cbda831cc19514897205-gSFV1vW0.woff2 +0 -0
  169. package/dist/client/_assets/chunks/8855472f3c02f6c7ebb3216617ebe4af-C1JsWVqq.woff2 +0 -0
  170. package/dist/client/_assets/chunks/887a11290ba78b1e66c6d2f67043005e-L_A1f5Fz.woff2 +0 -0
  171. package/dist/client/_assets/chunks/888ba53510213d5d1f6a7deb60e569b6-OP8E-ELN.woff2 +0 -0
  172. package/dist/client/_assets/chunks/88db1d042074fb6e66821ffc10941930-kZ6K3e62.woff2 +0 -0
  173. package/dist/client/_assets/chunks/892aa49b2529c89bb4076d4aa51fe30f-Bw0_Km2A.woff2 +0 -0
  174. package/dist/client/_assets/chunks/8b5c9ef81159f31d2ab35f45ca4373e0-Djw95sKC.woff2 +0 -0
  175. package/dist/client/_assets/chunks/8b91c7c2ed390f1278b9befa3aa87233-B2C3iFbQ.woff2 +0 -0
  176. package/dist/client/_assets/chunks/8dc18c0cebe6aa4bf4c45dbb831048ab-bUlANLit.woff2 +0 -0
  177. package/dist/client/_assets/chunks/8e231d707f0c4f8e3cde90a6b52a79aa-CvwbWlul.woff2 +0 -0
  178. package/dist/client/_assets/chunks/8fb45117a62d92dce44a80f0b729ead5-Djr4-o5-.woff2 +0 -0
  179. package/dist/client/_assets/chunks/9064c12fd72c7aba235d8c3881755b91-BnguxT-p.woff2 +0 -0
  180. package/dist/client/_assets/chunks/90b7848e9b1623b77bdcf155e90b839c-CFvPRnoM.woff2 +0 -0
  181. package/dist/client/_assets/chunks/911b9e53e9814de2998c60bf3115f560-DmPmj635.woff2 +0 -0
  182. package/dist/client/_assets/chunks/919a879bd2d580d8491a31a449390689-BY2w-8_Y.woff2 +0 -0
  183. package/dist/client/_assets/chunks/91da6cb174bebfb96976e2f1316be2fe-DztAJb6W.woff2 +0 -0
  184. package/dist/client/_assets/chunks/92fdc376bce277874e75db666f175b44-DJUnHEIN.woff2 +0 -0
  185. package/dist/client/_assets/chunks/930a23430f0eb64480d7fe5f82834e21-2VrDPT7E.woff2 +0 -0
  186. package/dist/client/_assets/chunks/934dfdbed2bb2c4b6129199d699a34fa-CtpHsjRD.woff2 +0 -0
  187. package/dist/client/_assets/chunks/93bed0e5f2dd5a21cf73304fcfbc149d-DJiaETX7.woff2 +0 -0
  188. package/dist/client/_assets/chunks/93f3ea6918533d96d9c252378b9a4af0-D-FJaGi-.woff2 +0 -0
  189. package/dist/client/_assets/chunks/95a0951d2a2722ff773a1a45e8c474d6-DuZg-BpP.woff2 +0 -0
  190. package/dist/client/_assets/chunks/95ff41191c76ef893ac70a1043e95e44-C08QDbJO.woff2 +0 -0
  191. package/dist/client/_assets/chunks/96c75862c8cec51a7c05ff025fea86cd-DBnRwCuW.woff2 +0 -0
  192. package/dist/client/_assets/chunks/97d7a17234f2b5030ae9697ae00aded2-CkUSaB-p.woff2 +0 -0
  193. package/dist/client/_assets/chunks/982cd1765ca6bbb3e6547e47834d5148-DkIybx1r.woff2 +0 -0
  194. package/dist/client/_assets/chunks/985d4d41afa0934a4eb2de35473fb9a2-CF7rgJMw.woff2 +0 -0
  195. package/dist/client/_assets/chunks/995c4fda62d25c3b79dd5987737df6ae-CY5ri8HW.woff2 +0 -0
  196. package/dist/client/_assets/chunks/9b0c3caac458c7bc9c9133e40405ddea-DhPrYOcz.woff2 +0 -0
  197. package/dist/client/_assets/chunks/9b21e8244f5930c48ad5073f83777b6c-CuE9-r-r.woff2 +0 -0
  198. package/dist/client/_assets/chunks/9bb38fd05201de666b88b82d56a386f7-nMl6lB8X.woff2 +0 -0
  199. package/dist/client/_assets/chunks/9d0afa53dc2f92ba42024f55f11f6779-Bozpx8bL.woff2 +0 -0
  200. package/dist/client/_assets/chunks/9e13a47242926f1cd7d68c08d9ef8889-DwKQjc8M.woff2 +0 -0
  201. package/dist/client/_assets/chunks/9eff2ab2a9d2ced47ab761bf6fdb11ec-D86-Zm1H.woff2 +0 -0
  202. package/dist/client/_assets/chunks/9f1963fe8d4d6878d717d872a8f3fdb5-DxjITUFq.woff2 +0 -0
  203. package/dist/client/_assets/chunks/9f3bdab4025dc7c5ba1a5871e62e8918-BqxDEFLJ.woff2 +0 -0
  204. package/dist/client/_assets/chunks/9fce02d1a09f464c36c9fcfb14a354c5-F2tMAB_j.woff2 +0 -0
  205. package/dist/client/_assets/chunks/a00e94d4f04df6aa659db9c4954c7efe-CRBKCj_3.woff2 +0 -0
  206. package/dist/client/_assets/chunks/a0a6755c7e3f9e4cf03387027dd9f16c-BAyRqF2w.woff2 +0 -0
  207. package/dist/client/_assets/chunks/a0d00fe4816c95a8c7dffd445ef00b03-CxcTiRLJ.woff2 +0 -0
  208. package/dist/client/_assets/chunks/a0f199077fa1a33bc2a1e01c64de7fe6-IdgVJmZD.woff2 +0 -0
  209. package/dist/client/_assets/chunks/a2b0597837e382aca19919c4b74e58c8-7iVOBjzI.woff2 +0 -0
  210. package/dist/client/_assets/chunks/a373e85c96aa0dc303092429fb837e51-Dvmw8mbX.woff2 +0 -0
  211. package/dist/client/_assets/chunks/a379ada89abd750c587ded29f77e731c-CgPBsEsv.woff2 +0 -0
  212. package/dist/client/_assets/chunks/a4475c442c6b259354c9eda62e64e7df-TZ0c8vK-.woff2 +0 -0
  213. package/dist/client/_assets/chunks/a48be56ce5d3a99dc8f8331398004412-BR_ixH1W.woff2 +0 -0
  214. package/dist/client/_assets/chunks/a4a39b5f048671aa37c2b2a9581ab08a-EDfDYsUd.woff2 +0 -0
  215. package/dist/client/_assets/chunks/a534449d67561ac9b06489f64e57ad98-C355TCrD.woff2 +0 -0
  216. package/dist/client/_assets/chunks/a6e044424780a57610833cc856c15bf5-x1b8FE4H.woff2 +0 -0
  217. package/dist/client/_assets/chunks/a7c35e42a659347e490c3cb7983b2e7f-BWpA0-oz.woff2 +0 -0
  218. package/dist/client/_assets/chunks/a7c58070d68dc1724e9d4e781afb78db-ql27pT-6.woff2 +0 -0
  219. package/dist/client/_assets/chunks/a806759e72987951d6d08b7cbdf36a1b-TvLDwB_u.woff2 +0 -0
  220. package/dist/client/_assets/chunks/a88481ec8bc7be11cb66e46781a79bb9-Ck-r_sGx.woff2 +0 -0
  221. package/dist/client/_assets/chunks/a919a8c6fec6d7e8bb21177965f2e9d7-CC5uWzwd.woff2 +0 -0
  222. package/dist/client/_assets/chunks/a9a016d4a93409f65278327e8a8bb38d-dylrNwF8.woff2 +0 -0
  223. package/dist/client/_assets/chunks/aa662092cf249707123ca4d575e2764b-CSxNsTUL.woff2 +0 -0
  224. package/dist/client/_assets/chunks/aae1eda193285ab817a2d1b408440326-CjyjBoRm.woff2 +0 -0
  225. package/dist/client/_assets/chunks/ab92d41062a7644faa45f50bf384454a-Cq0X8a9H.woff2 +0 -0
  226. package/dist/client/_assets/chunks/accc43762ad05edfbff66ba1380d192a-B5jIykaZ.woff2 +0 -0
  227. package/dist/client/_assets/chunks/ad47bcd6d4663026d648c132d969318d-BYdIbDge.woff2 +0 -0
  228. package/dist/client/_assets/chunks/ad67113f88b59582991cb0c5d33ea19f-DOH1vcIZ.woff2 +0 -0
  229. package/dist/client/_assets/chunks/adb6e613fb99c6dd660b727101f554a8-DJDw_ZZK.woff2 +0 -0
  230. package/dist/client/_assets/chunks/adc4a98a89870ef984ee8f4b57c8a3a5-D30vw26R.woff2 +0 -0
  231. package/dist/client/_assets/chunks/af57a2e8c72f9ba0efb1af771d32c124-D5Zwq9pS.woff2 +0 -0
  232. package/dist/client/_assets/chunks/b0ae5f374e43dac992a4a5d334cebc0b-Ccoi4dPt.woff2 +0 -0
  233. package/dist/client/_assets/chunks/b0cb664cb2e1371efda8943c0b7dcd1c-YzGFnelF.woff2 +0 -0
  234. package/dist/client/_assets/chunks/b0d1cdced482352cf0d3ae58638aacb9-IunWfc6R.woff2 +0 -0
  235. package/dist/client/_assets/chunks/b12379ab782468d725519cd07a7d15bc-IjbydKs2.woff2 +0 -0
  236. package/dist/client/_assets/chunks/b320f5d185b2cff933ac549c184031c5-IYnPrIz4.woff2 +0 -0
  237. package/dist/client/_assets/chunks/b326a8a9c33b554db570da94f60bc380-B6dzaCQg.woff2 +0 -0
  238. package/dist/client/_assets/chunks/b55486f8a459c838fe329d4e79a8c211-DW8q7oGV.woff2 +0 -0
  239. package/dist/client/_assets/chunks/b6117ff2993b11bb1fdc7ea3588a010c-JoMYL5W_.woff2 +0 -0
  240. package/dist/client/_assets/chunks/b61982951bd51b724143c30dfaaa9fe9-D3KhBKl6.woff2 +0 -0
  241. package/dist/client/_assets/chunks/b91234c10fd8b8c8abc88e03afe66a1f-BABNh2la.woff2 +0 -0
  242. package/dist/client/_assets/chunks/b9317198f118a1dfd8ddf2b82ec028f3-CiMecxeH.woff2 +0 -0
  243. package/dist/client/_assets/chunks/ba825ae79b1a6f7e0cce5215fcb5c96f-B6EWU_D5.woff2 +0 -0
  244. package/dist/client/_assets/chunks/ba9c59d7dfa4494db1bb764ada81467d-D0yPcC1m.woff2 +0 -0
  245. package/dist/client/_assets/chunks/bab547459d514f46206e340c4bb2dc88-YnBqlGhw.woff2 +0 -0
  246. package/dist/client/_assets/chunks/bb0b15492b8cdbbec57c0bcfa0aa9241-BjIFbEsN.woff2 +0 -0
  247. package/dist/client/_assets/chunks/bc6183ac08f0fac78c46f80c10cf7c92-B81nbRb3.woff2 +0 -0
  248. package/dist/client/_assets/chunks/bc8ccea5abf6598cf3cfa97eb59804bb-B_7IbluG.woff2 +0 -0
  249. package/dist/client/_assets/chunks/bc95a792cbca6639214c9b0da13392ff-CHQe0E-D.woff2 +0 -0
  250. package/dist/client/_assets/chunks/bcc39eda837bb7a7a3d37c8c60fffb81-CGd1Zk6S.woff2 +0 -0
  251. package/dist/client/_assets/chunks/bcfa62f35731856246c146d3a6932bf3-DMDq6w4v.woff2 +0 -0
  252. package/dist/client/_assets/chunks/bd73264d7f98776708d5d6f3c9b78fcc-d9QWWMym.woff2 +0 -0
  253. package/dist/client/_assets/chunks/bed610b217d500f5975cfc9fe6157570-B5t7s1bw.woff2 +0 -0
  254. package/dist/client/_assets/chunks/bedc74b423b7293b6ad0bdecc61c42cc-4Nnh7peP.woff2 +0 -0
  255. package/dist/client/_assets/chunks/bf8901f8f11d4f433ea17dabc9370ea6-B8dkfvGn.woff2 +0 -0
  256. package/dist/client/_assets/chunks/bfb00d4a4c48661bd0be99f300a0faae-OxsWZ7l-.woff2 +0 -0
  257. package/dist/client/_assets/chunks/c0098958e20db68cab90097b5e62516f-VpjQo3vV.woff2 +0 -0
  258. package/dist/client/_assets/chunks/c063897793f593eb26d6ff7b7baaba18-BWeJJ1sH.woff2 +0 -0
  259. package/dist/client/_assets/chunks/c1b0df29ae41d764904df84e9ac83d1e-D1N934vs.woff2 +0 -0
  260. package/dist/client/_assets/chunks/c4143bb9f2fe77b6ccf20088a8904650-nHfYM24e.woff2 +0 -0
  261. package/dist/client/_assets/chunks/c42c67070cfe99cf823df92d81c7fa6e-B_a405Ez.woff2 +0 -0
  262. package/dist/client/_assets/chunks/c4bfaa5e50798246e3770718b7a7c84a-B-r6Y_o0.woff2 +0 -0
  263. package/dist/client/_assets/chunks/c4d749e45ecd5a5aed5a0bb3ebfd355d-CkqE1fRi.woff2 +0 -0
  264. package/dist/client/_assets/chunks/c6c2971ad1f3221f6cf84028aa0f477e-D7BZGIcY.woff2 +0 -0
  265. package/dist/client/_assets/chunks/c7ff3f6bbdcd5f604b7343602ab904df-Bq7UjVrZ.woff2 +0 -0
  266. package/dist/client/_assets/chunks/c84598999133455503042e06f4ab79cb-DIXndJX3.woff2 +0 -0
  267. package/dist/client/_assets/chunks/c945c62368357d05a53206620460fb30-82gFEf6n.woff2 +0 -0
  268. package/dist/client/_assets/chunks/c96d83978add28b356c22c4c84916733-BL4VaPIE.woff2 +0 -0
  269. package/dist/client/_assets/chunks/c97f41eef722121d86f55d553c056a39-CjejgQO2.woff2 +0 -0
  270. package/dist/client/_assets/chunks/ca62704509932d3232d62918de97af3f-CKWF-3mX.woff2 +0 -0
  271. package/dist/client/_assets/chunks/ca9a533988d7019597a60d4e17127e0c-ClZ6ygZM.woff2 +0 -0
  272. package/dist/client/_assets/chunks/cb7ccd6494256f7a2977b7c2b0225592-Cxp8XObm.woff2 +0 -0
  273. package/dist/client/_assets/chunks/ce022e18a1377ac509443c3c3790b431-DpH0t6Tn.woff2 +0 -0
  274. package/dist/client/_assets/chunks/ce41d70ce6a069a498525c9e15c45cf2-DGtgv-_b.woff2 +0 -0
  275. package/dist/client/_assets/chunks/cf2b28f90f47276f7e2688a65e88a101-LVbNkXHj.woff2 +0 -0
  276. package/dist/client/_assets/chunks/cf9cffe56636322f62b40d61130fbc5e-DNCBMqAo.woff2 +0 -0
  277. package/dist/client/_assets/chunks/d1f064825fa5784b5c930652bd831cce-BU6qwjp8.woff2 +0 -0
  278. package/dist/client/_assets/chunks/d20d8944bc0b85f5b2aae4b24f343516-oY9l-NmC.woff2 +0 -0
  279. package/dist/client/_assets/chunks/d2faabcedd19f016e7b21bce073c0ec8-Dv6eFCf5.woff2 +0 -0
  280. package/dist/client/_assets/chunks/d320171e57480510f87dbbc7d5264b0a-CcCfjaFX.woff2 +0 -0
  281. package/dist/client/_assets/chunks/d36644d6502527e1fff205d0c7eca434-kVBj8zy_.woff2 +0 -0
  282. package/dist/client/_assets/chunks/d3a72a99d365dddfbca8d017a8011368-Bgdmhl3M.woff2 +0 -0
  283. package/dist/client/_assets/chunks/d40ab99c7a38026f411c8f112f742b48-D7Nm7fg6.woff2 +0 -0
  284. package/dist/client/_assets/chunks/d42aafa0f246ad3b4c16fe96d3a3a432-CRxTqZXU.woff2 +0 -0
  285. package/dist/client/_assets/chunks/d4aaf23c13ae808a4bed617afd13aa07-d_T1SKe9.woff2 +0 -0
  286. package/dist/client/_assets/chunks/d509ee5c8241bc7c3de2039d75564fa5-BpNFD9JE.woff2 +0 -0
  287. package/dist/client/_assets/chunks/d675d717cd329bfd4c0524f76ae1579c-Bd5_ctoQ.woff2 +0 -0
  288. package/dist/client/_assets/chunks/d689b1861d7e4377dd72ad3013482612-jPsVOU3F.woff2 +0 -0
  289. package/dist/client/_assets/chunks/d6bb686bddfbe8f38a36a68e609a8667-C_QduS-X.woff2 +0 -0
  290. package/dist/client/_assets/chunks/d9020ff69a83b2a6ee1f42ae480f7db0-DLBUPMCe.woff2 +0 -0
  291. package/dist/client/_assets/chunks/d9047070d72a816b3dba9d40c2d85e69-LTQ42vEp.woff2 +0 -0
  292. package/dist/client/_assets/chunks/da04549f3f4ed28076b01b8cd710d313-CDXOeduw.woff2 +0 -0
  293. package/dist/client/_assets/chunks/da7af303f8c645f9a9dbae0e6e32dd35-DCkS2jqi.woff2 +0 -0
  294. package/dist/client/_assets/chunks/da90a9012ab2d98f759e3fa0820ef502-D0D9d1zg.woff2 +0 -0
  295. package/dist/client/_assets/chunks/dc6e234ded795e91f76d6647f628fbf0-IkooXcRh.woff2 +0 -0
  296. package/dist/client/_assets/chunks/dc8f6256445e68199540be9ade33529f-umb5tWbZ.woff2 +0 -0
  297. package/dist/client/_assets/chunks/dd0cfdfdac0866e66d587e2b5a9e9961-bl4ozE0c.woff2 +0 -0
  298. package/dist/client/_assets/chunks/de304c8a02e45ded4f8dcc479d167198-ClRu89-4.woff2 +0 -0
  299. package/dist/client/_assets/chunks/df10d94bea357a43313e20da5d84bd30-CmAgh2oA.woff2 +0 -0
  300. package/dist/client/_assets/chunks/df9568257eb29b156449fdd4bec5ec76-BMz6aLRr.woff2 +0 -0
  301. package/dist/client/_assets/chunks/e067cd0ed76c90cd0a93c9339253f20b-6RxCQ4jy.woff2 +0 -0
  302. package/dist/client/_assets/chunks/e08b07772e7bed3cec2832d43f7fd339-CQCkeKsr.woff2 +0 -0
  303. package/dist/client/_assets/chunks/e12150d5a39b30be8f567968c7a527b0-DjdoWzeQ.woff2 +0 -0
  304. package/dist/client/_assets/chunks/e34b2b141e472dc776c86fdf8eea23b0-Cjk7H-Ev.woff2 +0 -0
  305. package/dist/client/_assets/chunks/e444fd88f1390636e603d0d681538ac8-Bx7CPOZh.woff2 +0 -0
  306. package/dist/client/_assets/chunks/e53fcb2381eee345db4f6f973dd95a3e-DmkkCUWz.woff2 +0 -0
  307. package/dist/client/_assets/chunks/e5bd313ef81f687d398aacb11cec3069-CwBEbcji.woff2 +0 -0
  308. package/dist/client/_assets/chunks/e79898628283edc27180fc39d0d769c1-By2pplQz.woff2 +0 -0
  309. package/dist/client/_assets/chunks/e8c15be62faf978d208925e79ea6a10d-Ct5M9lTP.woff2 +0 -0
  310. package/dist/client/_assets/chunks/e8c364c16daa04835bf32d293d2598db-3v4Tut_d.woff2 +0 -0
  311. package/dist/client/_assets/chunks/e91c4d941ed9f5c2f3e27f205a3a225e-BwOJ2Lst.woff2 +0 -0
  312. package/dist/client/_assets/chunks/e9c566be7a5d38a9085225f7372bc82b-BCtnCVML.woff2 +0 -0
  313. package/dist/client/_assets/chunks/e9ebc567a711eeb29019ddae3e0ce7fe-CnNhV49O.woff2 +0 -0
  314. package/dist/client/_assets/chunks/eaf332445a40942928e5f5750c1c3116-qZ5LSRrj.woff2 +0 -0
  315. package/dist/client/_assets/chunks/eb5afb3d952b8593782caec6026514b6-BXugZF2T.woff2 +0 -0
  316. package/dist/client/_assets/chunks/ec86e23683052da5cfdc3b77641bd15a-BeLcbcRc.woff2 +0 -0
  317. package/dist/client/_assets/chunks/ecb8875a56c7b038b35432fda41ae128-BVqgNf1o.woff2 +0 -0
  318. package/dist/client/_assets/chunks/eda1b0cb6d1719dd9bedcf3216a9e8de-BJTfLL5z.woff2 +0 -0
  319. package/dist/client/_assets/chunks/edd6a4f608d04fc0351d7688cfc321e4-d3V4U40c.woff2 +0 -0
  320. package/dist/client/_assets/chunks/ee6fce20b420a480714607c66d7f97e5-DEtC-G5G.woff2 +0 -0
  321. package/dist/client/_assets/chunks/eee3836d6ac17ebb2c450bbcbc9db121-C5a2TZjQ.woff2 +0 -0
  322. package/dist/client/_assets/chunks/et-book-bold-line-figures-BFJr2_zv.woff +0 -0
  323. package/dist/client/_assets/chunks/et-book-display-italic-old-style-figures-CoeRJAe8.woff +0 -0
  324. package/dist/client/_assets/chunks/et-book-roman-line-figures-CaA40oOf.woff +0 -0
  325. package/dist/client/_assets/chunks/f1661731474b78bdf81114daf10b254f-KnMKX_U3.woff2 +0 -0
  326. package/dist/client/_assets/chunks/f2c58dee206ba9355046fc23d05491f7-Cm4tCWav.woff2 +0 -0
  327. package/dist/client/_assets/chunks/f50ac27ea4358d67fdda403c2bb52467-WCfYHde1.woff2 +0 -0
  328. package/dist/client/_assets/chunks/f55334112f8e8be82d65db29887a663f-vDq1zH8k.woff2 +0 -0
  329. package/dist/client/_assets/chunks/f5738255e92d8dd34a46d1bcdf4c4074-tpghTzL1.woff2 +0 -0
  330. package/dist/client/_assets/chunks/f740e93f3c0277ecc616594103bca683-C4BgW_ko.woff2 +0 -0
  331. package/dist/client/_assets/chunks/f7633b5af033d76ff2fb3c3c266d77c5-BCkrZxwO.woff2 +0 -0
  332. package/dist/client/_assets/chunks/f7d8468cba2335a83ee414ea68291bab-CVnotkZU.woff2 +0 -0
  333. package/dist/client/_assets/chunks/f91cd722855f4269256eae1187df64ec-DJlAx1A_.woff2 +0 -0
  334. package/dist/client/_assets/chunks/f9695c6c4df2bf6bc03045ff79d4f01f-DDaYGYHT.woff2 +0 -0
  335. package/dist/client/_assets/chunks/fa6e58ce4b52695e7ae19bbea6336ec8-B30jEpze.woff2 +0 -0
  336. package/dist/client/_assets/chunks/fada6eaa68ff8816afe43d2a36c5423e-DlGAWNPb.woff2 +0 -0
  337. package/dist/client/_assets/chunks/fbcc4bf5367218951172bdee6f77d7a6-Dax2VSCd.woff2 +0 -0
  338. package/dist/client/_assets/chunks/fc895f5ce66b656f4a933097bf2a8775-DjjysNdf.woff2 +0 -0
  339. package/dist/client/_assets/chunks/fc9ae5b600fb711f2d67e93ce768cba4-D1lx7LBz.woff2 +0 -0
  340. package/dist/client/_assets/chunks/fca6720fd14c467d29a90f18ef3859b9-B3btrwq3.woff2 +0 -0
  341. package/dist/client/_assets/chunks/fd1bb507bcbf04856eeb7f7fd47ea579-NR1nGJTt.woff2 +0 -0
  342. package/dist/client/_assets/chunks/fd1bceb55d3e0183ac2454b8532fec7d-D3t-v6nn.woff2 +0 -0
  343. package/dist/client/_assets/chunks/fd2069e6e8588c70b4f11364093b81f2-BoXhYVgw.woff2 +0 -0
  344. package/dist/client/_assets/chunks/{url-CG0eolsk.js → url-pLre2DM_.js} +1 -1
  345. package/dist/client/_assets/client-C_kImWZj.css +2 -0
  346. package/dist/client/_assets/client-D95FNDg5.js +272 -0
  347. package/dist/client/_assets/client-auth-BRFl5zQA.js +4547 -0
  348. package/dist/client/_assets/client-cjk-jp-DZwrTzQC.css +1 -0
  349. package/dist/client/_assets/client-cjk-kr-_3ZNI2ZP.css +1 -0
  350. package/dist/env-wCpMcNXs.js +252 -0
  351. package/dist/github-api-CficQztC.js +176 -0
  352. package/dist/github-app-F4qZ05xk.js +275 -0
  353. package/dist/github-sync-zohnA9qv.js +4696 -0
  354. package/dist/index.js +88 -2
  355. package/dist/node.js +71 -30
  356. package/dist/url-FvvgARU9.js +305 -0
  357. package/package.json +16 -12
  358. package/src/__tests__/bin/content-cli.test.ts +179 -0
  359. package/src/__tests__/bin/media-cli.test.ts +192 -0
  360. package/src/__tests__/export-hugo-build.test.ts +178 -0
  361. package/src/__tests__/export-import-roundtrip.test.ts +265 -0
  362. package/src/__tests__/export-service.test.ts +763 -510
  363. package/src/__tests__/helpers/export-fixtures.ts +108 -0
  364. package/src/__tests__/import-site-command.test.ts +358 -350
  365. package/src/__tests__/site-pull-media.test.ts +256 -0
  366. package/src/app.tsx +65 -13
  367. package/src/client/__tests__/collection-form-bridge.test.ts +87 -7
  368. package/src/client/__tests__/collection-page-actions.test.ts +4 -4
  369. package/src/client/__tests__/collection-picker-order.test.ts +53 -0
  370. package/src/client/__tests__/collection-sort-menu.test.ts +2 -2
  371. package/src/client/__tests__/compose-bridge.test.ts +305 -13
  372. package/src/client/__tests__/compose-launch.test.ts +120 -0
  373. package/src/client/__tests__/compose-shortcuts.test.ts +141 -0
  374. package/src/client/__tests__/feed-video-player.test.ts +44 -0
  375. package/src/client/__tests__/site-header-nav.test.ts +250 -0
  376. package/src/client/__tests__/sortable-list.test.ts +6 -2
  377. package/src/client/__tests__/thread-context.test.ts +117 -0
  378. package/src/client/collection-form-bridge.ts +109 -4
  379. package/src/client/collection-page-actions.ts +3 -1
  380. package/src/client/collection-picker-order.ts +104 -0
  381. package/src/client/components/__tests__/{jant-collection-sidebar.test.ts → jant-collection-directory.test.ts} +145 -8
  382. package/src/client/components/__tests__/jant-collection-form.test.ts +40 -18
  383. package/src/client/components/__tests__/jant-compose-dialog.test.ts +1285 -66
  384. package/src/client/components/__tests__/jant-compose-editor.test.ts +254 -19
  385. package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +127 -1
  386. package/src/client/components/__tests__/jant-media-lightbox.test.ts +237 -0
  387. package/src/client/components/__tests__/jant-nav-manager.test.ts +326 -0
  388. package/src/client/components/__tests__/jant-post-menu.test.ts +372 -2
  389. package/src/client/components/__tests__/jant-settings-avatar.test.ts +61 -5
  390. package/src/client/components/__tests__/jant-settings-general.test.ts +29 -28
  391. package/src/client/components/__tests__/jant-text-preview.test.ts +206 -0
  392. package/src/client/components/collection-manager-types.ts +18 -1
  393. package/src/client/components/compose-types.ts +48 -0
  394. package/src/client/components/jant-collection-directory.ts +1448 -0
  395. package/src/client/components/jant-collection-form.ts +65 -15
  396. package/src/client/components/jant-command-palette.ts +544 -0
  397. package/src/client/components/jant-compose-dialog.ts +2490 -375
  398. package/src/client/components/jant-compose-editor.ts +420 -75
  399. package/src/client/components/jant-compose-fullscreen.ts +59 -8
  400. package/src/client/components/jant-media-lightbox.ts +373 -18
  401. package/src/client/components/jant-nav-manager.ts +624 -286
  402. package/src/client/components/jant-post-menu.ts +451 -126
  403. package/src/client/components/jant-repo-picker-types.ts +39 -0
  404. package/src/client/components/jant-repo-picker.ts +799 -0
  405. package/src/client/components/jant-settings-avatar.ts +16 -2
  406. package/src/client/components/jant-settings-general.ts +137 -35
  407. package/src/client/components/jant-text-preview.ts +239 -55
  408. package/src/client/components/nav-manager-types.ts +25 -9
  409. package/src/client/components/settings-types.ts +13 -2
  410. package/src/client/compose-bridge.ts +428 -68
  411. package/src/client/compose-launch.ts +41 -4
  412. package/src/client/compose-shortcuts.ts +77 -5
  413. package/src/client/feed-video-player.ts +374 -0
  414. package/src/client/image-processor.ts +53 -127
  415. package/src/client/media-lightbox-events.ts +1 -0
  416. package/src/client/media-scroll-hint.ts +66 -0
  417. package/src/client/multipart-upload.ts +4 -1
  418. package/src/client/palette-shortcuts.ts +35 -0
  419. package/src/client/search-rank.ts +74 -0
  420. package/src/client/settings-bridge.ts +7 -0
  421. package/src/client/site-header-nav.d.ts +1 -0
  422. package/src/client/site-header-nav.js +139 -51
  423. package/src/client/sortable-list.ts +2 -0
  424. package/src/client/thread-context.ts +54 -11
  425. package/src/client/tiptap/__tests__/block-insertion.test.ts +65 -0
  426. package/src/client/tiptap/__tests__/footnotes.test.ts +692 -0
  427. package/src/client/tiptap/__tests__/link-toolbar.test.ts +120 -4
  428. package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +48 -0
  429. package/src/client/tiptap/block-insertion.ts +36 -0
  430. package/src/client/tiptap/bubble-menu.ts +34 -4
  431. package/src/client/tiptap/create-editor.ts +49 -30
  432. package/src/client/tiptap/embed-dialog.ts +301 -0
  433. package/src/client/tiptap/embed-node.ts +373 -0
  434. package/src/client/tiptap/embed-paste.ts +91 -0
  435. package/src/client/tiptap/extensions.ts +77 -28
  436. package/src/client/tiptap/footnotes.ts +718 -0
  437. package/src/client/tiptap/html-block-node.ts +222 -0
  438. package/src/client/tiptap/image-node.ts +49 -6
  439. package/src/client/tiptap/inline-image-upload.ts +200 -40
  440. package/src/client/tiptap/link-input-rules.ts +50 -16
  441. package/src/client/tiptap/link-toolbar.ts +156 -133
  442. package/src/client/tiptap/markdown-clipboard.ts +120 -0
  443. package/src/client/tiptap/more-break.ts +36 -3
  444. package/src/client/tiptap/paste-media.ts +6 -0
  445. package/src/client/tiptap/slash-commands.ts +167 -14
  446. package/src/client/tiptap/tab-indent.ts +184 -0
  447. package/src/client/tiptap/toolbar-mode.ts +15 -2
  448. package/src/client/tiptap/wrapping-input-rules.ts +102 -0
  449. package/src/client/types/sortablejs.d.ts +9 -1
  450. package/src/client/upload-session.ts +2 -1
  451. package/src/client/video-processor.ts +177 -20
  452. package/src/client-auth.ts +9 -1
  453. package/src/client-site.ts +15 -0
  454. package/src/client.ts +2 -0
  455. package/src/db/__tests__/demo-canonical-snapshot.test.ts +1 -1
  456. package/src/db/__tests__/migration-rehearsal.test.ts +5 -1
  457. package/src/db/__tests__/migrations.test.ts +25 -2
  458. package/src/db/backfills/0001_strip_collection_path_c_prefix.sql +11 -0
  459. package/src/db/backfills/0002_strip_collection_path_c_prefix_fix.sql +12 -0
  460. package/src/db/backfills/0003_clear_system_nav_default_labels.sql +15 -0
  461. package/src/db/dialect.ts +40 -0
  462. package/src/db/migrations/0005_busy_the_phantom.sql +39 -0
  463. package/src/db/migrations/0006_adorable_magdalene.sql +3 -0
  464. package/src/db/migrations/0007_unusual_warstar.sql +1 -0
  465. package/src/db/migrations/0008_nasty_lockheed.sql +1 -0
  466. package/src/db/migrations/0009_clear_fixer.sql +31 -0
  467. package/src/db/migrations/0010_futuristic_preak.sql +31 -0
  468. package/src/db/migrations/0011_bizarre_smasher.sql +30 -0
  469. package/src/db/migrations/0012_furry_thena.sql +52 -0
  470. package/src/db/migrations/0013_mixed_lightspeed.sql +39 -0
  471. package/src/db/migrations/0014_high_the_santerians.sql +41 -0
  472. package/src/db/migrations/0015_skinny_shinobi_shaw.sql +1 -0
  473. package/src/db/migrations/0016_remarkable_nicolaos.sql +17 -0
  474. package/src/db/migrations/0017_powerful_moonstone.sql +14 -0
  475. package/src/db/migrations/meta/0005_snapshot.json +1904 -0
  476. package/src/db/migrations/meta/0006_snapshot.json +1925 -0
  477. package/src/db/migrations/meta/0007_snapshot.json +1933 -0
  478. package/src/db/migrations/meta/0008_snapshot.json +1940 -0
  479. package/src/db/migrations/meta/0009_snapshot.json +1952 -0
  480. package/src/db/migrations/meta/0010_snapshot.json +1952 -0
  481. package/src/db/migrations/meta/0011_snapshot.json +1948 -0
  482. package/src/db/migrations/meta/0012_snapshot.json +1955 -0
  483. package/src/db/migrations/meta/0013_snapshot.json +1977 -0
  484. package/src/db/migrations/meta/0014_snapshot.json +1988 -0
  485. package/src/db/migrations/meta/0015_snapshot.json +1995 -0
  486. package/src/db/migrations/meta/0016_snapshot.json +2104 -0
  487. package/src/db/migrations/meta/0017_snapshot.json +2188 -0
  488. package/src/db/migrations/meta/_journal.json +92 -1
  489. package/src/db/migrations/pg/0003_motionless_norrin_radd.sql +21 -0
  490. package/src/db/migrations/pg/0004_nervous_captain_midlands.sql +3 -0
  491. package/src/db/migrations/pg/0005_romantic_mesmero.sql +1 -0
  492. package/src/db/migrations/pg/0006_perpetual_bruce_banner.sql +1 -0
  493. package/src/db/migrations/pg/0007_nav_item_placement.sql +1 -0
  494. package/src/db/migrations/pg/0008_yielding_frightful_four.sql +3 -0
  495. package/src/db/migrations/pg/0009_outstanding_ogun.sql +1 -0
  496. package/src/db/migrations/pg/0010_overjoyed_gertrude_yorkes.sql +28 -0
  497. package/src/db/migrations/pg/0011_fixed_hulk.sql +19 -0
  498. package/src/db/migrations/pg/0012_cute_shockwave.sql +2 -0
  499. package/src/db/migrations/pg/0013_bizarre_obadiah_stane.sql +1 -0
  500. package/src/db/migrations/pg/0014_tearful_grim_reaper.sql +16 -0
  501. package/src/db/migrations/pg/0015_daffy_mikhail_rasputin.sql +14 -0
  502. package/src/db/migrations/pg/meta/0003_snapshot.json +2482 -0
  503. package/src/db/migrations/pg/meta/0004_snapshot.json +2500 -0
  504. package/src/db/migrations/pg/meta/0005_snapshot.json +2507 -0
  505. package/src/db/migrations/pg/meta/0006_snapshot.json +2513 -0
  506. package/src/db/migrations/pg/meta/0008_snapshot.json +2524 -0
  507. package/src/db/migrations/pg/meta/0009_snapshot.json +2520 -0
  508. package/src/db/migrations/pg/meta/0010_snapshot.json +2526 -0
  509. package/src/db/migrations/pg/meta/0011_snapshot.json +2563 -0
  510. package/src/db/migrations/pg/meta/0012_snapshot.json +2573 -0
  511. package/src/db/migrations/pg/meta/0013_snapshot.json +2579 -0
  512. package/src/db/migrations/pg/meta/0014_snapshot.json +2702 -0
  513. package/src/db/migrations/pg/meta/0015_snapshot.json +2803 -0
  514. package/src/db/migrations/pg/meta/_journal.json +92 -1
  515. package/src/db/pg/__tests__/node.test.ts +38 -0
  516. package/src/db/pg/node.ts +149 -0
  517. package/src/db/pg/schema.ts +130 -12
  518. package/src/db/rehearsal-fixtures/demo-current.sql +47 -3
  519. package/src/db/schema.ts +139 -12
  520. package/src/i18n/Trans.tsx +3 -3
  521. package/src/i18n/__tests__/context.test.tsx +9 -6
  522. package/src/i18n/__tests__/detect.test.ts +65 -48
  523. package/src/i18n/__tests__/fallback.test.ts +40 -0
  524. package/src/i18n/__tests__/message-placeholders.test.ts +43 -0
  525. package/src/i18n/__tests__/middleware.test.ts +83 -0
  526. package/src/i18n/context.tsx +9 -44
  527. package/src/i18n/detect.ts +95 -28
  528. package/src/i18n/i18n.ts +41 -17
  529. package/src/i18n/index.ts +7 -5
  530. package/src/i18n/locales/{en.po → public/en.po} +298 -1151
  531. package/src/i18n/locales/public/en.ts +1 -0
  532. package/src/i18n/locales/public/zh-Hans.po +2327 -0
  533. package/src/i18n/locales/public/zh-Hans.ts +1 -0
  534. package/src/i18n/locales/public/zh-Hant.po +2327 -0
  535. package/src/i18n/locales/public/zh-Hant.ts +1 -0
  536. package/src/i18n/locales/settings/en.po +1622 -0
  537. package/src/i18n/locales/settings/en.ts +1 -0
  538. package/src/i18n/locales/settings/zh-Hans.po +1622 -0
  539. package/src/i18n/locales/settings/zh-Hans.ts +1 -0
  540. package/src/i18n/locales/settings/zh-Hant.po +1622 -0
  541. package/src/i18n/locales/settings/zh-Hant.ts +1 -0
  542. package/src/i18n/middleware.ts +37 -24
  543. package/src/index.ts +4 -5
  544. package/src/lib/__tests__/collection-groups.test.ts +80 -0
  545. package/src/lib/__tests__/constants.test.ts +1 -1
  546. package/src/lib/__tests__/csp-builder.test.ts +68 -0
  547. package/src/lib/__tests__/display-text.test.ts +27 -0
  548. package/src/lib/__tests__/embed-providers.test.ts +104 -0
  549. package/src/lib/__tests__/embed-render.test.ts +60 -0
  550. package/src/lib/__tests__/feed.test.ts +125 -63
  551. package/src/lib/__tests__/hosted-signin.test.ts +11 -2
  552. package/src/lib/__tests__/markdown-roundtrip-embed.test.ts +88 -0
  553. package/src/lib/__tests__/markdown-to-tiptap.test.ts +59 -0
  554. package/src/lib/__tests__/markdown.test.ts +47 -5
  555. package/src/lib/__tests__/navigation.test.ts +148 -0
  556. package/src/lib/__tests__/post-display.test.ts +3 -2
  557. package/src/lib/__tests__/post-meta.test.ts +3 -0
  558. package/src/lib/__tests__/resolve-config.test.ts +30 -25
  559. package/src/lib/__tests__/schemas.test.ts +35 -0
  560. package/src/lib/__tests__/slug-format.test.ts +8 -0
  561. package/src/lib/__tests__/summary.test.ts +400 -1
  562. package/src/lib/__tests__/theme.test.ts +41 -2
  563. package/src/lib/__tests__/timeline.test.ts +114 -26
  564. package/src/lib/__tests__/tiptap-render.test.ts +224 -0
  565. package/src/lib/__tests__/tiptap-to-markdown.test.ts +51 -0
  566. package/src/lib/__tests__/video-playback.test.ts +48 -0
  567. package/src/lib/__tests__/view.test.ts +115 -8
  568. package/src/lib/__tests__/worker-response-cache.test.ts +311 -0
  569. package/src/lib/__tests__/youtube.test.ts +99 -0
  570. package/src/lib/api-media.ts +55 -0
  571. package/src/lib/api-posts.ts +99 -0
  572. package/src/lib/api-search.ts +47 -0
  573. package/src/lib/api-settings.ts +122 -0
  574. package/src/lib/asset-path.ts +20 -2
  575. package/src/lib/collection-groups.ts +70 -0
  576. package/src/lib/collection-paths.ts +40 -0
  577. package/src/lib/constants.ts +3 -4
  578. package/src/lib/csp-builder.ts +99 -0
  579. package/src/lib/decorative-quote-mark.ts +11 -0
  580. package/src/lib/display-text.ts +56 -0
  581. package/src/lib/embed-providers.ts +289 -0
  582. package/src/lib/embed-render.ts +151 -0
  583. package/src/lib/env.ts +70 -1
  584. package/src/lib/excerpt.ts +11 -2
  585. package/src/lib/feed.ts +89 -66
  586. package/src/lib/footnotes.ts +146 -0
  587. package/src/lib/github-api.ts +423 -0
  588. package/src/lib/github-app-state.ts +135 -0
  589. package/src/lib/github-app.ts +487 -0
  590. package/src/lib/github-sync-queue-handler.ts +69 -0
  591. package/src/lib/github-sync-site-config.ts +57 -0
  592. package/src/lib/github-sync-status.tsx +87 -0
  593. package/src/lib/github-sync-trigger.ts +199 -0
  594. package/src/lib/github-sync-worker.ts +72 -0
  595. package/src/lib/hosted-signin.ts +1 -1
  596. package/src/lib/hugo-markdown.ts +255 -0
  597. package/src/lib/job-queue-cf.ts +18 -0
  598. package/src/lib/job-queue-db.ts +149 -0
  599. package/src/lib/job-queue.ts +35 -0
  600. package/src/lib/markdown-manager.ts +864 -0
  601. package/src/lib/markdown-to-tiptap.ts +4 -323
  602. package/src/lib/markdown.ts +16 -24
  603. package/src/lib/media-helpers.ts +1 -0
  604. package/src/lib/navigation.ts +40 -8
  605. package/src/lib/post-display.ts +10 -22
  606. package/src/lib/public-storage.ts +6 -1
  607. package/src/lib/render.tsx +5 -2
  608. package/src/lib/resolve-config.ts +23 -11
  609. package/src/lib/rich-image.ts +89 -0
  610. package/src/lib/schemas.ts +186 -12
  611. package/src/lib/slug-format.ts +8 -0
  612. package/src/lib/summary.ts +125 -18
  613. package/src/lib/theme.ts +119 -0
  614. package/src/lib/timeline.ts +91 -63
  615. package/src/lib/tiptap-render.ts +265 -126
  616. package/src/lib/tiptap-to-markdown.ts +6 -329
  617. package/src/lib/upload.ts +97 -6
  618. package/src/lib/version.ts +18 -0
  619. package/src/lib/video-playback.ts +73 -0
  620. package/src/lib/view.ts +130 -90
  621. package/src/lib/webhook-signature.ts +65 -0
  622. package/src/lib/worker-response-cache.ts +220 -0
  623. package/src/lib/youtube.ts +119 -0
  624. package/src/middleware/__tests__/onboarding.test.ts +3 -3
  625. package/src/middleware/__tests__/secure-headers.test.ts +28 -1
  626. package/src/middleware/config.ts +7 -10
  627. package/src/middleware/cors.ts +49 -0
  628. package/src/middleware/secure-headers.ts +45 -55
  629. package/src/node/__tests__/cli-migrate.test.ts +111 -0
  630. package/src/node/__tests__/cli-runtime-target.test.ts +1 -1
  631. package/src/node/__tests__/cli-site-token-env.test.ts +2 -2
  632. package/src/preset.css +316 -12
  633. package/src/routes/__tests__/compose.test.ts +3 -1
  634. package/src/routes/api/__tests__/collections.test.ts +81 -27
  635. package/src/routes/api/__tests__/mcp.test.ts +389 -0
  636. package/src/routes/api/__tests__/nav-items.test.ts +163 -2
  637. package/src/routes/api/__tests__/posts.test.ts +190 -0
  638. package/src/routes/api/__tests__/settings.test.ts +99 -3
  639. package/src/routes/api/__tests__/upload-multipart.test.ts +10 -2
  640. package/src/routes/api/__tests__/upload.test.ts +132 -0
  641. package/src/routes/api/__tests__/uploads.test.ts +5 -3
  642. package/src/routes/api/collections.ts +67 -26
  643. package/src/routes/api/custom-urls.ts +1 -0
  644. package/src/routes/api/export.ts +8 -4
  645. package/src/routes/api/github-sync.tsx +380 -0
  646. package/src/routes/api/internal/__tests__/sites.test.ts +45 -2
  647. package/src/routes/api/internal/sites.ts +2 -0
  648. package/src/routes/api/internal/text-attachments.ts +60 -0
  649. package/src/routes/api/internal/uploads.ts +5 -1
  650. package/src/routes/api/mcp.ts +30 -0
  651. package/src/routes/api/nav-items.ts +30 -11
  652. package/src/routes/api/palette.ts +17 -0
  653. package/src/routes/api/posts.ts +37 -106
  654. package/src/routes/api/public/__tests__/posts.test.ts +372 -0
  655. package/src/routes/api/public/posts.ts +302 -0
  656. package/src/routes/api/search.ts +1 -47
  657. package/src/routes/api/settings.ts +44 -58
  658. package/src/routes/api/upload-multipart.ts +15 -5
  659. package/src/routes/api/upload.ts +62 -49
  660. package/src/routes/api/uploads.ts +1 -0
  661. package/src/routes/auth/__tests__/hosted-sso.test.ts +33 -0
  662. package/src/routes/auth/__tests__/setup.test.ts +29 -4
  663. package/src/routes/auth/hosted-sso-expired-page.tsx +89 -0
  664. package/src/routes/auth/hosted-sso.ts +42 -1
  665. package/src/routes/auth/reset.tsx +46 -32
  666. package/src/routes/auth/setup.tsx +53 -43
  667. package/src/routes/auth/signin.tsx +34 -24
  668. package/src/routes/compose.tsx +114 -1
  669. package/src/routes/dash/__tests__/font-theme.test.ts +6 -27
  670. package/src/routes/dash/__tests__/settings-avatar.test.ts +2 -3
  671. package/src/routes/dash/custom-urls.tsx +250 -112
  672. package/src/routes/dash/settings.tsx +1179 -70
  673. package/src/routes/feed/__tests__/{rss.test.ts → feed.test.ts} +62 -123
  674. package/src/routes/feed/feed.ts +386 -0
  675. package/src/routes/feed/manifest.ts +67 -0
  676. package/src/routes/feed/sitemap.ts +11 -2
  677. package/src/routes/pages/__tests__/collection-routing.test.ts +176 -0
  678. package/src/routes/pages/__tests__/collections.test.ts +2 -3
  679. package/src/routes/pages/__tests__/featured.test.ts +2 -3
  680. package/src/routes/pages/archive.tsx +523 -127
  681. package/src/routes/pages/collection.tsx +265 -59
  682. package/src/routes/pages/collections.tsx +5 -1
  683. package/src/routes/pages/home.tsx +2 -2
  684. package/src/routes/pages/latest.tsx +3 -3
  685. package/src/routes/pages/page.tsx +221 -3
  686. package/src/routes/pages/partials.tsx +5 -0
  687. package/src/routes/pages/search.tsx +17 -1
  688. package/src/routes/pages/theme-sample.tsx +1 -2
  689. package/src/runtime/__tests__/node.test.ts +1 -1
  690. package/src/runtime/__tests__/readiness.test.ts +89 -0
  691. package/src/runtime/readiness.ts +129 -0
  692. package/src/runtime/site.ts +9 -1
  693. package/src/services/__tests__/collection.test.ts +181 -53
  694. package/src/services/__tests__/github-app-installations.test.ts +181 -0
  695. package/src/services/__tests__/github-sync-classify.test.ts +189 -0
  696. package/src/services/__tests__/github-sync-push.test.ts +159 -0
  697. package/src/services/__tests__/media.test.ts +444 -7
  698. package/src/services/__tests__/navigation.test.ts +271 -14
  699. package/src/services/__tests__/post-timeline.test.ts +85 -17
  700. package/src/services/__tests__/post.test.ts +118 -10
  701. package/src/services/__tests__/settings.test.ts +43 -21
  702. package/src/services/auth.ts +2 -2
  703. package/src/services/bootstrap.ts +10 -7
  704. package/src/services/collection.ts +644 -191
  705. package/src/services/custom-url.ts +34 -7
  706. package/src/services/export-theme/assets/client-site.css +2 -0
  707. package/src/services/export-theme/assets/client-site.js +145 -0
  708. package/src/services/export-theme/layouts/_default/alias.html +49 -0
  709. package/src/services/export-theme/layouts/_default/baseof.html +21 -0
  710. package/src/services/export-theme/layouts/_default/list.html +104 -0
  711. package/src/services/export-theme/layouts/_default/rss.xml +160 -0
  712. package/src/services/export-theme/layouts/_default/single.html +15 -0
  713. package/src/services/export-theme/layouts/archive/list.html +31 -0
  714. package/src/services/export-theme/layouts/collection/single.html +19 -0
  715. package/src/services/export-theme/layouts/collections/list.html +111 -0
  716. package/src/services/export-theme/layouts/featured/list.html +28 -0
  717. package/src/services/export-theme/layouts/index.html +41 -0
  718. package/src/services/export-theme/layouts/partials/feed-post-content.xml +107 -0
  719. package/src/services/export-theme/layouts/partials/footer.html +32 -0
  720. package/src/services/export-theme/layouts/partials/head.html +52 -0
  721. package/src/services/export-theme/layouts/partials/header.html +115 -0
  722. package/src/services/export-theme/layouts/partials/media-gallery.html +246 -0
  723. package/src/services/export-theme/layouts/partials/pagination.html +55 -0
  724. package/src/services/export-theme/layouts/partials/post-card.html +127 -0
  725. package/src/services/export-theme/layouts/partials/reply.html +91 -0
  726. package/src/services/export-theme/layouts/partials/thread-preview.html +82 -0
  727. package/src/services/export-theme/layouts/post/list.html +129 -0
  728. package/src/services/export-theme/styles/main.css +1981 -0
  729. package/src/services/export-theme/theme.toml +12 -0
  730. package/src/services/export.ts +1365 -2412
  731. package/src/services/github-app-installations.ts +302 -0
  732. package/src/services/github-sync.ts +769 -0
  733. package/src/services/index.ts +15 -0
  734. package/src/services/mcp.ts +1324 -0
  735. package/src/services/media.ts +336 -25
  736. package/src/services/navigation.ts +115 -23
  737. package/src/services/path.ts +129 -28
  738. package/src/services/post.ts +779 -207
  739. package/src/services/search.ts +3 -0
  740. package/src/services/settings.ts +29 -15
  741. package/src/services/site-admin.ts +26 -6
  742. package/src/services/upload-session.ts +69 -34
  743. package/src/style-cjk-jp.css +3 -0
  744. package/src/style-cjk-kr.css +3 -0
  745. package/src/styles/components.css +160 -59
  746. package/src/styles/fonts/et-book/et-book-bold-line-figures.woff +0 -0
  747. package/src/styles/fonts/et-book/et-book-display-italic-old-style-figures.woff +0 -0
  748. package/src/styles/fonts/et-book/et-book-roman-line-figures.woff +0 -0
  749. package/src/styles/fonts/et-book.css +31 -0
  750. package/src/styles/fonts/latin.css +1 -0
  751. package/src/styles/fonts/noto-serif-jp/400/057a6a98bda7fe57105ddaa99ec82015.woff2 +0 -0
  752. package/src/styles/fonts/noto-serif-jp/400/0acd1fe2b2ea1ad1bfee7ae1fa139d27.woff2 +0 -0
  753. package/src/styles/fonts/noto-serif-jp/400/0c2ab6b295e55f356f8020d4e7747522.woff2 +0 -0
  754. package/src/styles/fonts/noto-serif-jp/400/0c5f9492af03a4fa42c784de94649de1.woff2 +0 -0
  755. package/src/styles/fonts/noto-serif-jp/400/0d9a936885a4c39077438effd3779cbd.woff2 +0 -0
  756. package/src/styles/fonts/noto-serif-jp/400/0e645da524f7cfc0e8c3c03fb2b08428.woff2 +0 -0
  757. package/src/styles/fonts/noto-serif-jp/400/135e83b403475c5dc9e49b43501a5b84.woff2 +0 -0
  758. package/src/styles/fonts/noto-serif-jp/400/13b2c53b30e6a3e4de7132dbc18dbdfc.woff2 +0 -0
  759. package/src/styles/fonts/noto-serif-jp/400/15d95680dc31cc6ce20e0a5464106dc4.woff2 +0 -0
  760. package/src/styles/fonts/noto-serif-jp/400/1733f27476507ca68b68a803bc533cc2.woff2 +0 -0
  761. package/src/styles/fonts/noto-serif-jp/400/188c2db794f3dd7a45889ddbc81da9bb.woff2 +0 -0
  762. package/src/styles/fonts/noto-serif-jp/400/1cf737900dd49c2e88f1b3221a82a602.woff2 +0 -0
  763. package/src/styles/fonts/noto-serif-jp/400/233d3a685ee18276b319363474599d47.woff2 +0 -0
  764. package/src/styles/fonts/noto-serif-jp/400/284b53bbefb06924cf236d24c8ed5641.woff2 +0 -0
  765. package/src/styles/fonts/noto-serif-jp/400/2a56eaf19d1d38a6b57e2a388f733676.woff2 +0 -0
  766. package/src/styles/fonts/noto-serif-jp/400/2abfbab82b6a7c04426afc054d2464da.woff2 +0 -0
  767. package/src/styles/fonts/noto-serif-jp/400/2e6f4bb71ef6b38765d51acc5a79f638.woff2 +0 -0
  768. package/src/styles/fonts/noto-serif-jp/400/31194d303a67561926a544ed0e072aee.woff2 +0 -0
  769. package/src/styles/fonts/noto-serif-jp/400/3623d96698132c61e861f984ce11cc23.woff2 +0 -0
  770. package/src/styles/fonts/noto-serif-jp/400/39211b02f24c69cbd1b54f6d41b01933.woff2 +0 -0
  771. package/src/styles/fonts/noto-serif-jp/400/3e24063b19abd2b051af986a6870046d.woff2 +0 -0
  772. package/src/styles/fonts/noto-serif-jp/400/4410f876d27c9821839474b6b1059fd7.woff2 +0 -0
  773. package/src/styles/fonts/noto-serif-jp/400/479329a39a3eb6c0047e6b0981919855.woff2 +0 -0
  774. package/src/styles/fonts/noto-serif-jp/400/527ff336279465617aafbafe1a830632.woff2 +0 -0
  775. package/src/styles/fonts/noto-serif-jp/400/56b40518ea0608e62826bd44ee27f5f9.woff2 +0 -0
  776. package/src/styles/fonts/noto-serif-jp/400/5acc7f736217259db79a42bf44241c48.woff2 +0 -0
  777. package/src/styles/fonts/noto-serif-jp/400/5c05f8b75c9d7f25b3c04ca711cf43b3.woff2 +0 -0
  778. package/src/styles/fonts/noto-serif-jp/400/5e0124c7265f1b4cf0fc797b94efbebc.woff2 +0 -0
  779. package/src/styles/fonts/noto-serif-jp/400/615a7e0d63f257109d599b2a1977de68.woff2 +0 -0
  780. package/src/styles/fonts/noto-serif-jp/400/61a2c80d0c924d5a6187c02e8d1d1642.woff2 +0 -0
  781. package/src/styles/fonts/noto-serif-jp/400/62fc94f8d4c5a750b7f25e7387539910.woff2 +0 -0
  782. package/src/styles/fonts/noto-serif-jp/400/639c7c6b0b0c27c738702741cfa4b8c0.woff2 +0 -0
  783. package/src/styles/fonts/noto-serif-jp/400/68a3a4bf337f8a0722be76676e20b850.woff2 +0 -0
  784. package/src/styles/fonts/noto-serif-jp/400/6abdd163d2c4b85698db8aa1ce149361.woff2 +0 -0
  785. package/src/styles/fonts/noto-serif-jp/400/73b794d885b88f7befb7ea8ab1780a15.woff2 +0 -0
  786. package/src/styles/fonts/noto-serif-jp/400/743f290baf027d4626a86e22f3d44600.woff2 +0 -0
  787. package/src/styles/fonts/noto-serif-jp/400/757019c01c5e2c2b0f54293cea3b5636.woff2 +0 -0
  788. package/src/styles/fonts/noto-serif-jp/400/76f117a3baacda304a71965a17266a13.woff2 +0 -0
  789. package/src/styles/fonts/noto-serif-jp/400/77747f17625a259fb405b7bbdd84ac4b.woff2 +0 -0
  790. package/src/styles/fonts/noto-serif-jp/400/788498548ddfb710d6ef3c7bff79fa97.woff2 +0 -0
  791. package/src/styles/fonts/noto-serif-jp/400/78ea6c40923ce95367e3517dd1e5a849.woff2 +0 -0
  792. package/src/styles/fonts/noto-serif-jp/400/7f9a6c9286b68de9c72b0024f7beeb40.woff2 +0 -0
  793. package/src/styles/fonts/noto-serif-jp/400/823d1bb11097331238d103c7f72138dc.woff2 +0 -0
  794. package/src/styles/fonts/noto-serif-jp/400/888ba53510213d5d1f6a7deb60e569b6.woff2 +0 -0
  795. package/src/styles/fonts/noto-serif-jp/400/892aa49b2529c89bb4076d4aa51fe30f.woff2 +0 -0
  796. package/src/styles/fonts/noto-serif-jp/400/95ff41191c76ef893ac70a1043e95e44.woff2 +0 -0
  797. package/src/styles/fonts/noto-serif-jp/400/96c75862c8cec51a7c05ff025fea86cd.woff2 +0 -0
  798. package/src/styles/fonts/noto-serif-jp/400/9b21e8244f5930c48ad5073f83777b6c.woff2 +0 -0
  799. package/src/styles/fonts/noto-serif-jp/400/9fce02d1a09f464c36c9fcfb14a354c5.woff2 +0 -0
  800. package/src/styles/fonts/noto-serif-jp/400/a0a6755c7e3f9e4cf03387027dd9f16c.woff2 +0 -0
  801. package/src/styles/fonts/noto-serif-jp/400/a4475c442c6b259354c9eda62e64e7df.woff2 +0 -0
  802. package/src/styles/fonts/noto-serif-jp/400/a4a39b5f048671aa37c2b2a9581ab08a.woff2 +0 -0
  803. package/src/styles/fonts/noto-serif-jp/400/a534449d67561ac9b06489f64e57ad98.woff2 +0 -0
  804. package/src/styles/fonts/noto-serif-jp/400/a919a8c6fec6d7e8bb21177965f2e9d7.woff2 +0 -0
  805. package/src/styles/fonts/noto-serif-jp/400/ad67113f88b59582991cb0c5d33ea19f.woff2 +0 -0
  806. package/src/styles/fonts/noto-serif-jp/400/adb6e613fb99c6dd660b727101f554a8.woff2 +0 -0
  807. package/src/styles/fonts/noto-serif-jp/400/adc4a98a89870ef984ee8f4b57c8a3a5.woff2 +0 -0
  808. package/src/styles/fonts/noto-serif-jp/400/b12379ab782468d725519cd07a7d15bc.woff2 +0 -0
  809. package/src/styles/fonts/noto-serif-jp/400/b55486f8a459c838fe329d4e79a8c211.woff2 +0 -0
  810. package/src/styles/fonts/noto-serif-jp/400/bb0b15492b8cdbbec57c0bcfa0aa9241.woff2 +0 -0
  811. package/src/styles/fonts/noto-serif-jp/400/bedc74b423b7293b6ad0bdecc61c42cc.woff2 +0 -0
  812. package/src/styles/fonts/noto-serif-jp/400/bfb00d4a4c48661bd0be99f300a0faae.woff2 +0 -0
  813. package/src/styles/fonts/noto-serif-jp/400/c1b0df29ae41d764904df84e9ac83d1e.woff2 +0 -0
  814. package/src/styles/fonts/noto-serif-jp/400/c42c67070cfe99cf823df92d81c7fa6e.woff2 +0 -0
  815. package/src/styles/fonts/noto-serif-jp/400/c4d749e45ecd5a5aed5a0bb3ebfd355d.woff2 +0 -0
  816. package/src/styles/fonts/noto-serif-jp/400/c96d83978add28b356c22c4c84916733.woff2 +0 -0
  817. package/src/styles/fonts/noto-serif-jp/400/cb7ccd6494256f7a2977b7c2b0225592.woff2 +0 -0
  818. package/src/styles/fonts/noto-serif-jp/400/ce41d70ce6a069a498525c9e15c45cf2.woff2 +0 -0
  819. package/src/styles/fonts/noto-serif-jp/400/d509ee5c8241bc7c3de2039d75564fa5.woff2 +0 -0
  820. package/src/styles/fonts/noto-serif-jp/400/d675d717cd329bfd4c0524f76ae1579c.woff2 +0 -0
  821. package/src/styles/fonts/noto-serif-jp/400/dc8f6256445e68199540be9ade33529f.woff2 +0 -0
  822. package/src/styles/fonts/noto-serif-jp/400/e8c15be62faf978d208925e79ea6a10d.woff2 +0 -0
  823. package/src/styles/fonts/noto-serif-jp/400/e91c4d941ed9f5c2f3e27f205a3a225e.woff2 +0 -0
  824. package/src/styles/fonts/noto-serif-jp/400/e9c566be7a5d38a9085225f7372bc82b.woff2 +0 -0
  825. package/src/styles/fonts/noto-serif-jp/400/e9ebc567a711eeb29019ddae3e0ce7fe.woff2 +0 -0
  826. package/src/styles/fonts/noto-serif-jp/400/ecb8875a56c7b038b35432fda41ae128.woff2 +0 -0
  827. package/src/styles/fonts/noto-serif-jp/400/f1661731474b78bdf81114daf10b254f.woff2 +0 -0
  828. package/src/styles/fonts/noto-serif-jp/400/f2c58dee206ba9355046fc23d05491f7.woff2 +0 -0
  829. package/src/styles/fonts/noto-serif-jp/400/f50ac27ea4358d67fdda403c2bb52467.woff2 +0 -0
  830. package/src/styles/fonts/noto-serif-jp/400/f55334112f8e8be82d65db29887a663f.woff2 +0 -0
  831. package/src/styles/fonts/noto-serif-jp/400/f740e93f3c0277ecc616594103bca683.woff2 +0 -0
  832. package/src/styles/fonts/noto-serif-jp/400/f7633b5af033d76ff2fb3c3c266d77c5.woff2 +0 -0
  833. package/src/styles/fonts/noto-serif-jp/400/f7d8468cba2335a83ee414ea68291bab.woff2 +0 -0
  834. package/src/styles/fonts/noto-serif-jp/400/fc9ae5b600fb711f2d67e93ce768cba4.woff2 +0 -0
  835. package/src/styles/fonts/noto-serif-jp/400/fd1bceb55d3e0183ac2454b8532fec7d.woff2 +0 -0
  836. package/src/styles/fonts/noto-serif-jp/700/02611a045a7fe83a12014e3debc9f731.woff2 +0 -0
  837. package/src/styles/fonts/noto-serif-jp/700/0f5e1a18987dbc84ca05188c129e1936.woff2 +0 -0
  838. package/src/styles/fonts/noto-serif-jp/700/112743a4ab5fdd1498dfdf2b11336380.woff2 +0 -0
  839. package/src/styles/fonts/noto-serif-jp/700/1211f03d3ff5759a702631445793f60e.woff2 +0 -0
  840. package/src/styles/fonts/noto-serif-jp/700/147b24c2f08d03bbed30887d4cb3311c.woff2 +0 -0
  841. package/src/styles/fonts/noto-serif-jp/700/16663e567f81f4725a1522f37e18f71f.woff2 +0 -0
  842. package/src/styles/fonts/noto-serif-jp/700/1824321da801e6257b902f3d1d09054c.woff2 +0 -0
  843. package/src/styles/fonts/noto-serif-jp/700/1a3a92c7c060a71a6c35819b9ebcdbb9.woff2 +0 -0
  844. package/src/styles/fonts/noto-serif-jp/700/1fba7ec0e412e911bf31841de5a8a4e4.woff2 +0 -0
  845. package/src/styles/fonts/noto-serif-jp/700/28a97af9ab9d38983d20f39ff09840e1.woff2 +0 -0
  846. package/src/styles/fonts/noto-serif-jp/700/2bfaadaf3479c72286248e6de0be0ec9.woff2 +0 -0
  847. package/src/styles/fonts/noto-serif-jp/700/2c8c55e4cec85ce77e95cac9d330f5cf.woff2 +0 -0
  848. package/src/styles/fonts/noto-serif-jp/700/2ed9981d2e8983365bd051159b976b6d.woff2 +0 -0
  849. package/src/styles/fonts/noto-serif-jp/700/2f4c633e923ba30c6ba376367379fc91.woff2 +0 -0
  850. package/src/styles/fonts/noto-serif-jp/700/349965eee0a9b6c984a319ab96a4ece9.woff2 +0 -0
  851. package/src/styles/fonts/noto-serif-jp/700/36cda3eae13370b934bba4429fab9078.woff2 +0 -0
  852. package/src/styles/fonts/noto-serif-jp/700/3aa13f1843d7c8fa16109b6395a9a29d.woff2 +0 -0
  853. package/src/styles/fonts/noto-serif-jp/700/3e2c06bdd9dcab29aeaeb0cfb7fa608a.woff2 +0 -0
  854. package/src/styles/fonts/noto-serif-jp/700/424123f9371ba357087363263eeafcda.woff2 +0 -0
  855. package/src/styles/fonts/noto-serif-jp/700/43b3bbf43055c3e65db9cdf2c5b18c1c.woff2 +0 -0
  856. package/src/styles/fonts/noto-serif-jp/700/44704471b60c18b3ecec5300a88f1102.woff2 +0 -0
  857. package/src/styles/fonts/noto-serif-jp/700/46604090efbb99c2db1800928af0a239.woff2 +0 -0
  858. package/src/styles/fonts/noto-serif-jp/700/46998df85d31e629c0142f0556f5e7c5.woff2 +0 -0
  859. package/src/styles/fonts/noto-serif-jp/700/49902f1c41b281f8eb3771abdd4dccb8.woff2 +0 -0
  860. package/src/styles/fonts/noto-serif-jp/700/4db4f31a16965baa42cb7dad667a8f04.woff2 +0 -0
  861. package/src/styles/fonts/noto-serif-jp/700/572b9e28f1e6d89b765a16d809db84a1.woff2 +0 -0
  862. package/src/styles/fonts/noto-serif-jp/700/5921cef36750ff6092d94b83a802823b.woff2 +0 -0
  863. package/src/styles/fonts/noto-serif-jp/700/59e95d8b5332dcdae894a19946ab767d.woff2 +0 -0
  864. package/src/styles/fonts/noto-serif-jp/700/5ec349ff62b9ee5fe0c6dae867704dc4.woff2 +0 -0
  865. package/src/styles/fonts/noto-serif-jp/700/601f812e8b1eafecd5ba585a6a6d7962.woff2 +0 -0
  866. package/src/styles/fonts/noto-serif-jp/700/6025ddaf99d86cc8bfd781006b19fbd6.woff2 +0 -0
  867. package/src/styles/fonts/noto-serif-jp/700/60f6e28b3f0400b0e8fe32c3c7116102.woff2 +0 -0
  868. package/src/styles/fonts/noto-serif-jp/700/64a404d675f1d726f0891b7a80794595.woff2 +0 -0
  869. package/src/styles/fonts/noto-serif-jp/700/7158022889c6c177062ac85036e7af10.woff2 +0 -0
  870. package/src/styles/fonts/noto-serif-jp/700/7e38ca789a9e76ac91d9256374e154f0.woff2 +0 -0
  871. package/src/styles/fonts/noto-serif-jp/700/815a0b797465190f60d8b1a04656c42e.woff2 +0 -0
  872. package/src/styles/fonts/noto-serif-jp/700/8726558cf297cbda831cc19514897205.woff2 +0 -0
  873. package/src/styles/fonts/noto-serif-jp/700/8855472f3c02f6c7ebb3216617ebe4af.woff2 +0 -0
  874. package/src/styles/fonts/noto-serif-jp/700/8e231d707f0c4f8e3cde90a6b52a79aa.woff2 +0 -0
  875. package/src/styles/fonts/noto-serif-jp/700/9064c12fd72c7aba235d8c3881755b91.woff2 +0 -0
  876. package/src/styles/fonts/noto-serif-jp/700/911b9e53e9814de2998c60bf3115f560.woff2 +0 -0
  877. package/src/styles/fonts/noto-serif-jp/700/92fdc376bce277874e75db666f175b44.woff2 +0 -0
  878. package/src/styles/fonts/noto-serif-jp/700/930a23430f0eb64480d7fe5f82834e21.woff2 +0 -0
  879. package/src/styles/fonts/noto-serif-jp/700/93bed0e5f2dd5a21cf73304fcfbc149d.woff2 +0 -0
  880. package/src/styles/fonts/noto-serif-jp/700/93f3ea6918533d96d9c252378b9a4af0.woff2 +0 -0
  881. package/src/styles/fonts/noto-serif-jp/700/95a0951d2a2722ff773a1a45e8c474d6.woff2 +0 -0
  882. package/src/styles/fonts/noto-serif-jp/700/982cd1765ca6bbb3e6547e47834d5148.woff2 +0 -0
  883. package/src/styles/fonts/noto-serif-jp/700/9b0c3caac458c7bc9c9133e40405ddea.woff2 +0 -0
  884. package/src/styles/fonts/noto-serif-jp/700/9f3bdab4025dc7c5ba1a5871e62e8918.woff2 +0 -0
  885. package/src/styles/fonts/noto-serif-jp/700/a00e94d4f04df6aa659db9c4954c7efe.woff2 +0 -0
  886. package/src/styles/fonts/noto-serif-jp/700/a2b0597837e382aca19919c4b74e58c8.woff2 +0 -0
  887. package/src/styles/fonts/noto-serif-jp/700/a373e85c96aa0dc303092429fb837e51.woff2 +0 -0
  888. package/src/styles/fonts/noto-serif-jp/700/a6e044424780a57610833cc856c15bf5.woff2 +0 -0
  889. package/src/styles/fonts/noto-serif-jp/700/a7c58070d68dc1724e9d4e781afb78db.woff2 +0 -0
  890. package/src/styles/fonts/noto-serif-jp/700/accc43762ad05edfbff66ba1380d192a.woff2 +0 -0
  891. package/src/styles/fonts/noto-serif-jp/700/ad47bcd6d4663026d648c132d969318d.woff2 +0 -0
  892. package/src/styles/fonts/noto-serif-jp/700/af57a2e8c72f9ba0efb1af771d32c124.woff2 +0 -0
  893. package/src/styles/fonts/noto-serif-jp/700/b0ae5f374e43dac992a4a5d334cebc0b.woff2 +0 -0
  894. package/src/styles/fonts/noto-serif-jp/700/b91234c10fd8b8c8abc88e03afe66a1f.woff2 +0 -0
  895. package/src/styles/fonts/noto-serif-jp/700/b9317198f118a1dfd8ddf2b82ec028f3.woff2 +0 -0
  896. package/src/styles/fonts/noto-serif-jp/700/ba825ae79b1a6f7e0cce5215fcb5c96f.woff2 +0 -0
  897. package/src/styles/fonts/noto-serif-jp/700/bc6183ac08f0fac78c46f80c10cf7c92.woff2 +0 -0
  898. package/src/styles/fonts/noto-serif-jp/700/bc8ccea5abf6598cf3cfa97eb59804bb.woff2 +0 -0
  899. package/src/styles/fonts/noto-serif-jp/700/bc95a792cbca6639214c9b0da13392ff.woff2 +0 -0
  900. package/src/styles/fonts/noto-serif-jp/700/bcfa62f35731856246c146d3a6932bf3.woff2 +0 -0
  901. package/src/styles/fonts/noto-serif-jp/700/c063897793f593eb26d6ff7b7baaba18.woff2 +0 -0
  902. package/src/styles/fonts/noto-serif-jp/700/c6c2971ad1f3221f6cf84028aa0f477e.woff2 +0 -0
  903. package/src/styles/fonts/noto-serif-jp/700/c97f41eef722121d86f55d553c056a39.woff2 +0 -0
  904. package/src/styles/fonts/noto-serif-jp/700/ca62704509932d3232d62918de97af3f.woff2 +0 -0
  905. package/src/styles/fonts/noto-serif-jp/700/d1f064825fa5784b5c930652bd831cce.woff2 +0 -0
  906. package/src/styles/fonts/noto-serif-jp/700/d2faabcedd19f016e7b21bce073c0ec8.woff2 +0 -0
  907. package/src/styles/fonts/noto-serif-jp/700/d320171e57480510f87dbbc7d5264b0a.woff2 +0 -0
  908. package/src/styles/fonts/noto-serif-jp/700/d3a72a99d365dddfbca8d017a8011368.woff2 +0 -0
  909. package/src/styles/fonts/noto-serif-jp/700/d42aafa0f246ad3b4c16fe96d3a3a432.woff2 +0 -0
  910. package/src/styles/fonts/noto-serif-jp/700/d4aaf23c13ae808a4bed617afd13aa07.woff2 +0 -0
  911. package/src/styles/fonts/noto-serif-jp/700/d6bb686bddfbe8f38a36a68e609a8667.woff2 +0 -0
  912. package/src/styles/fonts/noto-serif-jp/700/d9020ff69a83b2a6ee1f42ae480f7db0.woff2 +0 -0
  913. package/src/styles/fonts/noto-serif-jp/700/da90a9012ab2d98f759e3fa0820ef502.woff2 +0 -0
  914. package/src/styles/fonts/noto-serif-jp/700/df10d94bea357a43313e20da5d84bd30.woff2 +0 -0
  915. package/src/styles/fonts/noto-serif-jp/700/e34b2b141e472dc776c86fdf8eea23b0.woff2 +0 -0
  916. package/src/styles/fonts/noto-serif-jp/700/e444fd88f1390636e603d0d681538ac8.woff2 +0 -0
  917. package/src/styles/fonts/noto-serif-jp/700/e79898628283edc27180fc39d0d769c1.woff2 +0 -0
  918. package/src/styles/fonts/noto-serif-jp/700/eaf332445a40942928e5f5750c1c3116.woff2 +0 -0
  919. package/src/styles/fonts/noto-serif-jp/700/f91cd722855f4269256eae1187df64ec.woff2 +0 -0
  920. package/src/styles/fonts/noto-serif-jp/700/fc895f5ce66b656f4a933097bf2a8775.woff2 +0 -0
  921. package/src/styles/fonts/noto-serif-jp/700/fca6720fd14c467d29a90f18ef3859b9.woff2 +0 -0
  922. package/src/styles/fonts/noto-serif-jp/700/fd1bb507bcbf04856eeb7f7fd47ea579.woff2 +0 -0
  923. package/src/styles/fonts/noto-serif-jp/noto-serif-jp.css +3349 -0
  924. package/src/styles/fonts/noto-serif-kr/400/033466ef683afe931f7f520cfb42d928.woff2 +0 -0
  925. package/src/styles/fonts/noto-serif-kr/400/05da12edb9d52210581dc6ec4541031f.woff2 +0 -0
  926. package/src/styles/fonts/noto-serif-kr/400/0968e4861204b51f62a2f8e9f15dd5e0.woff2 +0 -0
  927. package/src/styles/fonts/noto-serif-kr/400/0d5dec931dc885f07fe5cd5af8bed675.woff2 +0 -0
  928. package/src/styles/fonts/noto-serif-kr/400/1076f0f6f66d28d7a2f16427faad4413.woff2 +0 -0
  929. package/src/styles/fonts/noto-serif-kr/400/12ef1ba76bd20b004b865266a1aa70b3.woff2 +0 -0
  930. package/src/styles/fonts/noto-serif-kr/400/152395634a207579552f8cb54db88599.woff2 +0 -0
  931. package/src/styles/fonts/noto-serif-kr/400/1a08931435f885e707edb85978ea3bb6.woff2 +0 -0
  932. package/src/styles/fonts/noto-serif-kr/400/31a197213ae61d7043c81013f52d10d6.woff2 +0 -0
  933. package/src/styles/fonts/noto-serif-kr/400/37dbd564820cce2f7b3331e442da0df3.woff2 +0 -0
  934. package/src/styles/fonts/noto-serif-kr/400/37dc8505b20b37a2477a9121b16d44a7.woff2 +0 -0
  935. package/src/styles/fonts/noto-serif-kr/400/3ac0a07878cacdc98bb889f40f5970d3.woff2 +0 -0
  936. package/src/styles/fonts/noto-serif-kr/400/491bbba374093fff045f55803a22bfef.woff2 +0 -0
  937. package/src/styles/fonts/noto-serif-kr/400/4d38e56738156625329d93bd5c8cc74a.woff2 +0 -0
  938. package/src/styles/fonts/noto-serif-kr/400/57e9a86651366c1ba299e47aa7e358c2.woff2 +0 -0
  939. package/src/styles/fonts/noto-serif-kr/400/57f89adeae55aa7fe2add3fc1801ce03.woff2 +0 -0
  940. package/src/styles/fonts/noto-serif-kr/400/5df9ce98c75f8c50fb4fff7f01a23925.woff2 +0 -0
  941. package/src/styles/fonts/noto-serif-kr/400/60020a830d809c26970cf8e48ba1eeda.woff2 +0 -0
  942. package/src/styles/fonts/noto-serif-kr/400/60bcfa3ea7446eb42394aab02d28be40.woff2 +0 -0
  943. package/src/styles/fonts/noto-serif-kr/400/63fafcb069520613d0ea35ad3e6b1e42.woff2 +0 -0
  944. package/src/styles/fonts/noto-serif-kr/400/65a60d87c64228d258a123cbe85f5f31.woff2 +0 -0
  945. package/src/styles/fonts/noto-serif-kr/400/6968e889e18891d912809fe484c2e745.woff2 +0 -0
  946. package/src/styles/fonts/noto-serif-kr/400/70714891ad3fbfc3d5f10a8669dacc5a.woff2 +0 -0
  947. package/src/styles/fonts/noto-serif-kr/400/761d84afca8d7f34eebefe538adba827.woff2 +0 -0
  948. package/src/styles/fonts/noto-serif-kr/400/76e07530323418ec723c5d7634c9bcca.woff2 +0 -0
  949. package/src/styles/fonts/noto-serif-kr/400/773819b7b9b8fd404a929867c0fd677e.woff2 +0 -0
  950. package/src/styles/fonts/noto-serif-kr/400/7817dd16805145d8538ad57590f69f5a.woff2 +0 -0
  951. package/src/styles/fonts/noto-serif-kr/400/7b59f0ec7792b18458dc5a361e37884c.woff2 +0 -0
  952. package/src/styles/fonts/noto-serif-kr/400/7c3945788a689a69356c1a622d69d48b.woff2 +0 -0
  953. package/src/styles/fonts/noto-serif-kr/400/835b6505bb9eea9678925a1fa885353d.woff2 +0 -0
  954. package/src/styles/fonts/noto-serif-kr/400/8b5c9ef81159f31d2ab35f45ca4373e0.woff2 +0 -0
  955. package/src/styles/fonts/noto-serif-kr/400/8b91c7c2ed390f1278b9befa3aa87233.woff2 +0 -0
  956. package/src/styles/fonts/noto-serif-kr/400/8fb45117a62d92dce44a80f0b729ead5.woff2 +0 -0
  957. package/src/styles/fonts/noto-serif-kr/400/90b7848e9b1623b77bdcf155e90b839c.woff2 +0 -0
  958. package/src/styles/fonts/noto-serif-kr/400/985d4d41afa0934a4eb2de35473fb9a2.woff2 +0 -0
  959. package/src/styles/fonts/noto-serif-kr/400/9bb38fd05201de666b88b82d56a386f7.woff2 +0 -0
  960. package/src/styles/fonts/noto-serif-kr/400/9eff2ab2a9d2ced47ab761bf6fdb11ec.woff2 +0 -0
  961. package/src/styles/fonts/noto-serif-kr/400/9f1963fe8d4d6878d717d872a8f3fdb5.woff2 +0 -0
  962. package/src/styles/fonts/noto-serif-kr/400/a0d00fe4816c95a8c7dffd445ef00b03.woff2 +0 -0
  963. package/src/styles/fonts/noto-serif-kr/400/a0f199077fa1a33bc2a1e01c64de7fe6.woff2 +0 -0
  964. package/src/styles/fonts/noto-serif-kr/400/a7c35e42a659347e490c3cb7983b2e7f.woff2 +0 -0
  965. package/src/styles/fonts/noto-serif-kr/400/aa662092cf249707123ca4d575e2764b.woff2 +0 -0
  966. package/src/styles/fonts/noto-serif-kr/400/aae1eda193285ab817a2d1b408440326.woff2 +0 -0
  967. package/src/styles/fonts/noto-serif-kr/400/b0cb664cb2e1371efda8943c0b7dcd1c.woff2 +0 -0
  968. package/src/styles/fonts/noto-serif-kr/400/b0d1cdced482352cf0d3ae58638aacb9.woff2 +0 -0
  969. package/src/styles/fonts/noto-serif-kr/400/b320f5d185b2cff933ac549c184031c5.woff2 +0 -0
  970. package/src/styles/fonts/noto-serif-kr/400/ba9c59d7dfa4494db1bb764ada81467d.woff2 +0 -0
  971. package/src/styles/fonts/noto-serif-kr/400/bab547459d514f46206e340c4bb2dc88.woff2 +0 -0
  972. package/src/styles/fonts/noto-serif-kr/400/bcc39eda837bb7a7a3d37c8c60fffb81.woff2 +0 -0
  973. package/src/styles/fonts/noto-serif-kr/400/bd73264d7f98776708d5d6f3c9b78fcc.woff2 +0 -0
  974. package/src/styles/fonts/noto-serif-kr/400/bed610b217d500f5975cfc9fe6157570.woff2 +0 -0
  975. package/src/styles/fonts/noto-serif-kr/400/bf8901f8f11d4f433ea17dabc9370ea6.woff2 +0 -0
  976. package/src/styles/fonts/noto-serif-kr/400/c4143bb9f2fe77b6ccf20088a8904650.woff2 +0 -0
  977. package/src/styles/fonts/noto-serif-kr/400/c7ff3f6bbdcd5f604b7343602ab904df.woff2 +0 -0
  978. package/src/styles/fonts/noto-serif-kr/400/c945c62368357d05a53206620460fb30.woff2 +0 -0
  979. package/src/styles/fonts/noto-serif-kr/400/ce022e18a1377ac509443c3c3790b431.woff2 +0 -0
  980. package/src/styles/fonts/noto-serif-kr/400/cf9cffe56636322f62b40d61130fbc5e.woff2 +0 -0
  981. package/src/styles/fonts/noto-serif-kr/400/d20d8944bc0b85f5b2aae4b24f343516.woff2 +0 -0
  982. package/src/styles/fonts/noto-serif-kr/400/d36644d6502527e1fff205d0c7eca434.woff2 +0 -0
  983. package/src/styles/fonts/noto-serif-kr/400/d40ab99c7a38026f411c8f112f742b48.woff2 +0 -0
  984. package/src/styles/fonts/noto-serif-kr/400/dc6e234ded795e91f76d6647f628fbf0.woff2 +0 -0
  985. package/src/styles/fonts/noto-serif-kr/400/dd0cfdfdac0866e66d587e2b5a9e9961.woff2 +0 -0
  986. package/src/styles/fonts/noto-serif-kr/400/de304c8a02e45ded4f8dcc479d167198.woff2 +0 -0
  987. package/src/styles/fonts/noto-serif-kr/400/e8c364c16daa04835bf32d293d2598db.woff2 +0 -0
  988. package/src/styles/fonts/noto-serif-kr/400/ec86e23683052da5cfdc3b77641bd15a.woff2 +0 -0
  989. package/src/styles/fonts/noto-serif-kr/400/eda1b0cb6d1719dd9bedcf3216a9e8de.woff2 +0 -0
  990. package/src/styles/fonts/noto-serif-kr/400/ee6fce20b420a480714607c66d7f97e5.woff2 +0 -0
  991. package/src/styles/fonts/noto-serif-kr/400/eee3836d6ac17ebb2c450bbcbc9db121.woff2 +0 -0
  992. package/src/styles/fonts/noto-serif-kr/400/f5738255e92d8dd34a46d1bcdf4c4074.woff2 +0 -0
  993. package/src/styles/fonts/noto-serif-kr/400/fa6e58ce4b52695e7ae19bbea6336ec8.woff2 +0 -0
  994. package/src/styles/fonts/noto-serif-kr/400/fd2069e6e8588c70b4f11364093b81f2.woff2 +0 -0
  995. package/src/styles/fonts/noto-serif-kr/700/04b8bde59cff68eeee74fb1914eb09c7.woff2 +0 -0
  996. package/src/styles/fonts/noto-serif-kr/700/05ac821472e235943ed1435e4bb8ecad.woff2 +0 -0
  997. package/src/styles/fonts/noto-serif-kr/700/074c1f8483d5a4d8c45c8c5f3e4cbb32.woff2 +0 -0
  998. package/src/styles/fonts/noto-serif-kr/700/1380210a722ac9aeef54005ad7b015c9.woff2 +0 -0
  999. package/src/styles/fonts/noto-serif-kr/700/17c7f5d0a45e92ede0e5dec3a2c77efa.woff2 +0 -0
  1000. package/src/styles/fonts/noto-serif-kr/700/1be602ad456b0d75902d352116cb35fd.woff2 +0 -0
  1001. package/src/styles/fonts/noto-serif-kr/700/2612c60f9dc5459ac42763591240a1d6.woff2 +0 -0
  1002. package/src/styles/fonts/noto-serif-kr/700/2ab8cf1f23a5ac7939a7876054e711a7.woff2 +0 -0
  1003. package/src/styles/fonts/noto-serif-kr/700/34e6750e00c3a911ef87dc66b336594d.woff2 +0 -0
  1004. package/src/styles/fonts/noto-serif-kr/700/36f3df4730cfca4fc77fe52b52e6a126.woff2 +0 -0
  1005. package/src/styles/fonts/noto-serif-kr/700/37887deb7a9c466cf2af6ee7ff372ea6.woff2 +0 -0
  1006. package/src/styles/fonts/noto-serif-kr/700/3aba89c4d4281553078de4622b498cbb.woff2 +0 -0
  1007. package/src/styles/fonts/noto-serif-kr/700/3d88558097559d775231194d43745ba7.woff2 +0 -0
  1008. package/src/styles/fonts/noto-serif-kr/700/3dc3e8c35524cad2d1236f3393104ccf.woff2 +0 -0
  1009. package/src/styles/fonts/noto-serif-kr/700/45140742dfa8686b58db2899ce89f89a.woff2 +0 -0
  1010. package/src/styles/fonts/noto-serif-kr/700/469d2754e315e77270c12fa0ab28026c.woff2 +0 -0
  1011. package/src/styles/fonts/noto-serif-kr/700/4c0760284569b87d8f2290c324953973.woff2 +0 -0
  1012. package/src/styles/fonts/noto-serif-kr/700/4cba92c942694bdc479bc54101bb1aa4.woff2 +0 -0
  1013. package/src/styles/fonts/noto-serif-kr/700/4e7d263c30bb48604069a3b4404d4eeb.woff2 +0 -0
  1014. package/src/styles/fonts/noto-serif-kr/700/5279c7e465d9871edf51fd02e691eee7.woff2 +0 -0
  1015. package/src/styles/fonts/noto-serif-kr/700/54bfdb6f21f9d6191e5100580239e14f.woff2 +0 -0
  1016. package/src/styles/fonts/noto-serif-kr/700/56be5e32fd01668fe5ba814d94905839.woff2 +0 -0
  1017. package/src/styles/fonts/noto-serif-kr/700/615b38e0b5bb3ea68426f44f47706e6f.woff2 +0 -0
  1018. package/src/styles/fonts/noto-serif-kr/700/65e9c4585d71bf48a5c62f367010da16.woff2 +0 -0
  1019. package/src/styles/fonts/noto-serif-kr/700/6b75213eb0be40ce84241eb2bb438a2e.woff2 +0 -0
  1020. package/src/styles/fonts/noto-serif-kr/700/7520ca6ca8c60eb1e62d50e71c8d30f1.woff2 +0 -0
  1021. package/src/styles/fonts/noto-serif-kr/700/759a647b77791b1e98f99bc0ab5317a7.woff2 +0 -0
  1022. package/src/styles/fonts/noto-serif-kr/700/76e51630143b95b6322ef93ad330da7a.woff2 +0 -0
  1023. package/src/styles/fonts/noto-serif-kr/700/79aa7c8c842c4a27cf57c0a3a1ffca5a.woff2 +0 -0
  1024. package/src/styles/fonts/noto-serif-kr/700/7cc72fd2c9105560422b6a67c6162945.woff2 +0 -0
  1025. package/src/styles/fonts/noto-serif-kr/700/7d0ea0690e432462f4d05a23d720ec19.woff2 +0 -0
  1026. package/src/styles/fonts/noto-serif-kr/700/7dffa5c1bec57e0903fd62357401ff1a.woff2 +0 -0
  1027. package/src/styles/fonts/noto-serif-kr/700/82f6ccc063960eed1cdfd1d61ada8862.woff2 +0 -0
  1028. package/src/styles/fonts/noto-serif-kr/700/845b4b67564d62cf5cad242f7ac08ea5.woff2 +0 -0
  1029. package/src/styles/fonts/noto-serif-kr/700/84c8e7bc0931008ed91f44ed12dfea94.woff2 +0 -0
  1030. package/src/styles/fonts/noto-serif-kr/700/887a11290ba78b1e66c6d2f67043005e.woff2 +0 -0
  1031. package/src/styles/fonts/noto-serif-kr/700/88db1d042074fb6e66821ffc10941930.woff2 +0 -0
  1032. package/src/styles/fonts/noto-serif-kr/700/8dc18c0cebe6aa4bf4c45dbb831048ab.woff2 +0 -0
  1033. package/src/styles/fonts/noto-serif-kr/700/919a879bd2d580d8491a31a449390689.woff2 +0 -0
  1034. package/src/styles/fonts/noto-serif-kr/700/91da6cb174bebfb96976e2f1316be2fe.woff2 +0 -0
  1035. package/src/styles/fonts/noto-serif-kr/700/934dfdbed2bb2c4b6129199d699a34fa.woff2 +0 -0
  1036. package/src/styles/fonts/noto-serif-kr/700/97d7a17234f2b5030ae9697ae00aded2.woff2 +0 -0
  1037. package/src/styles/fonts/noto-serif-kr/700/995c4fda62d25c3b79dd5987737df6ae.woff2 +0 -0
  1038. package/src/styles/fonts/noto-serif-kr/700/9d0afa53dc2f92ba42024f55f11f6779.woff2 +0 -0
  1039. package/src/styles/fonts/noto-serif-kr/700/9e13a47242926f1cd7d68c08d9ef8889.woff2 +0 -0
  1040. package/src/styles/fonts/noto-serif-kr/700/a379ada89abd750c587ded29f77e731c.woff2 +0 -0
  1041. package/src/styles/fonts/noto-serif-kr/700/a48be56ce5d3a99dc8f8331398004412.woff2 +0 -0
  1042. package/src/styles/fonts/noto-serif-kr/700/a806759e72987951d6d08b7cbdf36a1b.woff2 +0 -0
  1043. package/src/styles/fonts/noto-serif-kr/700/a88481ec8bc7be11cb66e46781a79bb9.woff2 +0 -0
  1044. package/src/styles/fonts/noto-serif-kr/700/a9a016d4a93409f65278327e8a8bb38d.woff2 +0 -0
  1045. package/src/styles/fonts/noto-serif-kr/700/ab92d41062a7644faa45f50bf384454a.woff2 +0 -0
  1046. package/src/styles/fonts/noto-serif-kr/700/b326a8a9c33b554db570da94f60bc380.woff2 +0 -0
  1047. package/src/styles/fonts/noto-serif-kr/700/b6117ff2993b11bb1fdc7ea3588a010c.woff2 +0 -0
  1048. package/src/styles/fonts/noto-serif-kr/700/b61982951bd51b724143c30dfaaa9fe9.woff2 +0 -0
  1049. package/src/styles/fonts/noto-serif-kr/700/c0098958e20db68cab90097b5e62516f.woff2 +0 -0
  1050. package/src/styles/fonts/noto-serif-kr/700/c4bfaa5e50798246e3770718b7a7c84a.woff2 +0 -0
  1051. package/src/styles/fonts/noto-serif-kr/700/c84598999133455503042e06f4ab79cb.woff2 +0 -0
  1052. package/src/styles/fonts/noto-serif-kr/700/ca9a533988d7019597a60d4e17127e0c.woff2 +0 -0
  1053. package/src/styles/fonts/noto-serif-kr/700/cf2b28f90f47276f7e2688a65e88a101.woff2 +0 -0
  1054. package/src/styles/fonts/noto-serif-kr/700/d689b1861d7e4377dd72ad3013482612.woff2 +0 -0
  1055. package/src/styles/fonts/noto-serif-kr/700/d9047070d72a816b3dba9d40c2d85e69.woff2 +0 -0
  1056. package/src/styles/fonts/noto-serif-kr/700/da04549f3f4ed28076b01b8cd710d313.woff2 +0 -0
  1057. package/src/styles/fonts/noto-serif-kr/700/da7af303f8c645f9a9dbae0e6e32dd35.woff2 +0 -0
  1058. package/src/styles/fonts/noto-serif-kr/700/df9568257eb29b156449fdd4bec5ec76.woff2 +0 -0
  1059. package/src/styles/fonts/noto-serif-kr/700/e067cd0ed76c90cd0a93c9339253f20b.woff2 +0 -0
  1060. package/src/styles/fonts/noto-serif-kr/700/e08b07772e7bed3cec2832d43f7fd339.woff2 +0 -0
  1061. package/src/styles/fonts/noto-serif-kr/700/e12150d5a39b30be8f567968c7a527b0.woff2 +0 -0
  1062. package/src/styles/fonts/noto-serif-kr/700/e53fcb2381eee345db4f6f973dd95a3e.woff2 +0 -0
  1063. package/src/styles/fonts/noto-serif-kr/700/e5bd313ef81f687d398aacb11cec3069.woff2 +0 -0
  1064. package/src/styles/fonts/noto-serif-kr/700/eb5afb3d952b8593782caec6026514b6.woff2 +0 -0
  1065. package/src/styles/fonts/noto-serif-kr/700/edd6a4f608d04fc0351d7688cfc321e4.woff2 +0 -0
  1066. package/src/styles/fonts/noto-serif-kr/700/f9695c6c4df2bf6bc03045ff79d4f01f.woff2 +0 -0
  1067. package/src/styles/fonts/noto-serif-kr/700/fada6eaa68ff8816afe43d2a36c5423e.woff2 +0 -0
  1068. package/src/styles/fonts/noto-serif-kr/700/fbcc4bf5367218951172bdee6f77d7a6.woff2 +0 -0
  1069. package/src/styles/fonts/noto-serif-kr/noto-serif-kr.css +2601 -0
  1070. package/src/styles/site-media.css +823 -0
  1071. package/src/styles/tokens.css +292 -21
  1072. package/src/styles/ui.css +4217 -1869
  1073. package/src/types/bindings.ts +3 -1
  1074. package/src/types/config.ts +139 -9
  1075. package/src/types/constants.ts +46 -11
  1076. package/src/types/entities.ts +24 -8
  1077. package/src/types/operations.ts +80 -1
  1078. package/src/types/props.ts +12 -3
  1079. package/src/types/raw-assets.d.ts +39 -0
  1080. package/src/types/views.ts +28 -7
  1081. package/src/ui/__tests__/color-themes.test.ts +7 -40
  1082. package/src/ui/__tests__/font-themes.test.ts +30 -11
  1083. package/src/ui/color-themes.ts +311 -270
  1084. package/src/ui/compose/ComposeDialog.tsx +712 -394
  1085. package/src/ui/compose/ComposePrompt.tsx +15 -10
  1086. package/src/ui/dash/ActionButtons.tsx +27 -18
  1087. package/src/ui/dash/DangerZone.tsx +15 -10
  1088. package/src/ui/dash/FormatBadge.tsx +21 -8
  1089. package/src/ui/dash/StatusBadge.tsx +33 -22
  1090. package/src/ui/dash/appearance/AdvancedContent.tsx +44 -30
  1091. package/src/ui/dash/appearance/CodeInjectionContent.tsx +164 -0
  1092. package/src/ui/dash/appearance/ColorThemeContent.tsx +127 -160
  1093. package/src/ui/dash/appearance/FontThemeContent.tsx +20 -15
  1094. package/src/ui/dash/appearance/NavigationContent.tsx +368 -225
  1095. package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +54 -0
  1096. package/src/ui/dash/settings/AccountContent.tsx +34 -23
  1097. package/src/ui/dash/settings/AccountMenuContent.tsx +226 -137
  1098. package/src/ui/dash/settings/ApiTokensContent.tsx +122 -79
  1099. package/src/ui/dash/settings/AvatarContent.tsx +73 -45
  1100. package/src/ui/dash/settings/DeleteAccountContent.tsx +106 -66
  1101. package/src/ui/dash/settings/GeneralContent.tsx +274 -157
  1102. package/src/ui/dash/settings/GitHubSyncContent.tsx +558 -0
  1103. package/src/ui/dash/settings/SessionsContent.tsx +79 -38
  1104. package/src/ui/dash/settings/SettingsRootContent.tsx +209 -109
  1105. package/src/ui/dash/settings/__tests__/AccountMenuContent.test.tsx +67 -0
  1106. package/src/ui/dash/settings/__tests__/GeneralContent.test.tsx +75 -0
  1107. package/src/ui/feed/CuratedThreadPreview.tsx +24 -14
  1108. package/src/ui/feed/LinkCard.tsx +116 -84
  1109. package/src/ui/feed/LinkPreview.tsx +75 -0
  1110. package/src/ui/feed/NoteCard.tsx +60 -16
  1111. package/src/ui/feed/PostStatusBadges.tsx +15 -0
  1112. package/src/ui/feed/QuoteCard.tsx +10 -3
  1113. package/src/ui/feed/ThreadPreview.tsx +62 -36
  1114. package/src/ui/feed/TimelineFeed.tsx +2 -1
  1115. package/src/ui/feed/__tests__/thread-preview.test.ts +220 -11
  1116. package/src/ui/feed/__tests__/timeline-cards.test.ts +186 -5
  1117. package/src/ui/feed/thread-preview-state.ts +23 -10
  1118. package/src/ui/font-themes.ts +57 -97
  1119. package/src/ui/layouts/BaseLayout.tsx +221 -136
  1120. package/src/ui/layouts/SiteLayout.tsx +431 -143
  1121. package/src/ui/layouts/__tests__/BaseLayout.test.tsx +76 -6
  1122. package/src/ui/layouts/__tests__/SiteLayout.test.tsx +76 -0
  1123. package/src/ui/pages/ArchivePage.tsx +320 -207
  1124. package/src/ui/pages/BrandPage.tsx +499 -341
  1125. package/src/ui/pages/CollectionEditorPage.tsx +50 -30
  1126. package/src/ui/pages/CollectionPage.tsx +201 -61
  1127. package/src/ui/pages/CollectionsPage.tsx +27 -18
  1128. package/src/ui/pages/ComposePage.tsx +15 -10
  1129. package/src/ui/pages/FeaturedPage.tsx +16 -11
  1130. package/src/ui/pages/HomePage.tsx +15 -10
  1131. package/src/ui/pages/PostPage.tsx +5 -1
  1132. package/src/ui/pages/SearchPage.tsx +93 -43
  1133. package/src/ui/pages/ThemeSamplePage.tsx +758 -520
  1134. package/src/ui/pages/__tests__/ArchivePage.test.tsx +72 -0
  1135. package/src/ui/shared/CollectionDirectory.tsx +232 -37
  1136. package/src/ui/shared/CollectionsManager.tsx +155 -75
  1137. package/src/ui/shared/DecorativeQuoteMark.tsx +12 -9
  1138. package/src/ui/shared/MediaGallery.tsx +350 -256
  1139. package/src/ui/shared/Pagination.tsx +36 -25
  1140. package/src/ui/shared/PostFooter.tsx +139 -96
  1141. package/src/ui/shared/__tests__/media-gallery.test.ts +27 -0
  1142. package/src/ui/shared/__tests__/navigation-labels.test.ts +79 -28
  1143. package/src/ui/shared/__tests__/post-footer.test.ts +42 -17
  1144. package/src/ui/shared/collection-management-labels.ts +109 -33
  1145. package/src/ui/shared/navigation-labels.ts +78 -8
  1146. package/bin/lib/site-localize-media.js +0 -427
  1147. package/dist/client/_assets/client-auth.js +0 -3251
  1148. package/dist/client/_assets/client.css +0 -2
  1149. package/dist/client/_assets/client.js +0 -380
  1150. package/src/__tests__/site-localize-media.test.ts +0 -150
  1151. package/src/client/components/jant-collection-sidebar.ts +0 -803
  1152. package/src/i18n/locales/en.ts +0 -1
  1153. package/src/i18n/locales/zh-Hans.po +0 -3183
  1154. package/src/i18n/locales/zh-Hans.ts +0 -1
  1155. package/src/i18n/locales/zh-Hant.po +0 -3183
  1156. package/src/i18n/locales/zh-Hant.ts +0 -1
  1157. package/src/routes/feed/rss.ts +0 -216
  1158. package/src/types/lingui-react-macro.d.ts +0 -34
  1159. /package/dist/client/_assets/chunks/{heic-to-XcUDQvtx.js → heic-to-DUUaO23q.js} +0 -0
  1160. /package/dist/client/_assets/chunks/{module-ChVQstFd.js → module-DcsAZQZ_.js} +0 -0
  1161. /package/dist/client/_assets/chunks/{native-CR5HLOyf.js → native-DpcrFAPh.js} +0 -0
  1162. /package/dist/client/_assets/{client-cjk.css → client-cjk-B7Z0snDu.css} +0 -0
  1163. /package/dist/client/_assets/{client-cjk-tc.css → client-cjk-tc-BesJYrb2.css} +0 -0
@@ -1,10 +1,10 @@
1
1
  msgid ""
2
2
  msgstr ""
3
- "POT-Creation-Date: 2026-02-01 08:44:08+0000\n"
3
+ "POT-Creation-Date: 2026-04-15 21:58+0800\n"
4
4
  "MIME-Version: 1.0\n"
5
5
  "Content-Type: text/plain; charset=utf-8\n"
6
6
  "Content-Transfer-Encoding: 8bit\n"
7
- "X-Generator: jant-extract\n"
7
+ "X-Generator: @lingui/cli\n"
8
8
  "Language: en\n"
9
9
  "Project-Id-Version: \n"
10
10
  "Report-Msgid-Bugs-To: \n"
@@ -13,23 +13,30 @@ msgstr ""
13
13
  "Language-Team: \n"
14
14
  "Plural-Forms: \n"
15
15
 
16
+ #. @context: Hosted SSO expired link message segment shown after the hosted control-plane link
17
+ #: src/routes/auth/hosted-sso-expired-page.tsx
18
+ msgid " and try again."
19
+ msgstr " and try again."
20
+
16
21
  #. @context: Link showing count of hidden thread posts between curated posts
17
- #. placeholder {0}: segment.hiddenBeforeCount
18
- #. placeholder {1}: segment.hiddenBeforeCount === 1 ? "post" : "posts"
19
22
  #: src/ui/feed/CuratedThreadPreview.tsx
20
- msgid "{0} hidden {1}"
21
- msgstr "{0} hidden {1}"
23
+ msgid "{count, plural, one {# hidden post} other {# hidden posts}}"
24
+ msgstr "{count, plural, one {# hidden post} other {# hidden posts}}"
22
25
 
23
26
  #. @context: Link showing count of hidden thread posts between root and latest
24
- #. placeholder {0}: hiddenCount === 1 ? "post" : "posts"
25
27
  #: src/ui/feed/ThreadPreview.tsx
26
- msgid "{hiddenCount} more {0}"
27
- msgstr "{hiddenCount} more {0}"
28
+ msgid "{count, plural, one {# more post} other {# more posts}}"
29
+ msgstr "{count, plural, one {# more post} other {# more posts}}"
28
30
 
29
- #. @context: Custom CSS textarea placeholder
30
- #: src/ui/dash/appearance/AdvancedContent.tsx
31
- msgid "/* Your custom CSS here */"
32
- msgstr "/* Your custom CSS here */"
31
+ #. @context: Search results count - multiple
32
+ #: src/ui/pages/SearchPage.tsx
33
+ msgid "{count, plural, one {Found # result} other {Found # results}}"
34
+ msgstr "{count, plural, one {Found # result} other {Found # results}}"
35
+
36
+ #. @context: Placeholder for the custom collections link URL
37
+ #: src/ui/shared/collection-management-labels.ts
38
+ msgid "/archive?format=quote or https://example.com"
39
+ msgstr "/archive?format=quote or https://example.com"
33
40
 
34
41
  #. @context: Compose collection trigger label when multiple collections selected. %name% is the first collection name, %count% is how many more
35
42
  #: src/ui/compose/ComposeDialog.tsx
@@ -41,16 +48,6 @@ msgstr "%name% + %count% more"
41
48
  msgid "+ ALT"
42
49
  msgstr "+ ALT"
43
50
 
44
- #. @context: Redirect type option
45
- #: src/routes/dash/custom-urls.tsx
46
- msgid "301 (Permanent)"
47
- msgstr "301 (Permanent)"
48
-
49
- #. @context: Redirect type option
50
- #: src/routes/dash/custom-urls.tsx
51
- msgid "302 (Temporary)"
52
- msgstr "302 (Temporary)"
53
-
54
51
  #. @context: Search snippet prefix on sample page
55
52
  #: src/ui/pages/ThemeSamplePage.tsx
56
53
  msgid "A calmer accent makes"
@@ -106,11 +103,6 @@ msgstr "A ready-made 1:1 PNG for decks, mockups, directories, and other square p
106
103
  msgid "A reference link for checking whether the accent feels editorial instead of promotional."
107
104
  msgstr "A reference link for checking whether the accent feels editorial instead of promotional."
108
105
 
109
- #. @context: Help text for site description field
110
- #: src/ui/dash/settings/GeneralContent.tsx
111
- msgid "A short intro for search engines and feed readers. Plain text only."
112
- msgstr "A short intro for search engines and feed readers. Plain text only."
113
-
114
106
  #. @context: Description for the brand pack card
115
107
  #: src/ui/pages/BrandPage.tsx
116
108
  msgid "A single ZIP with the main logo, reverse logo, square PNG, rounded, square, and circle tiles, plus favicon, Apple touch icon, and social preview image."
@@ -121,49 +113,25 @@ msgstr "A single ZIP with the main logo, reverse logo, square PNG, rounded, squa
121
113
  msgid "A softer blue feels more like ink than product chrome."
122
114
  msgstr "A softer blue feels more like ink than product chrome."
123
115
 
124
- #. @context: Settings form field for site description
125
- #: src/ui/dash/settings/GeneralContent.tsx
126
- msgid "About this blog"
127
- msgstr "About this blog"
128
-
129
116
  #. @context: Thread helper text on sample page
130
117
  #: src/ui/pages/ThemeSamplePage.tsx
131
118
  msgid "Accent should feel present, not loud."
132
119
  msgstr "Accent should feel present, not loud."
133
120
 
134
- #. @context: Page title for the account settings menu
135
- #. @context: Settings group label for account settings
136
- #. @context: Settings item — account settings
137
- #: src/ui/dash/settings/AccountMenuContent.tsx
138
- #: src/ui/dash/settings/SettingsRootContent.tsx
139
- #: src/ui/dash/settings/SettingsRootContent.tsx
140
- msgid "Account"
141
- msgstr "Account"
142
-
143
- #. @context: Error shown when account deletion is blocked in demo mode
144
- #: src/routes/dash/settings.tsx
145
- msgid "Account deletion is off in demo mode. The shared demo resets separately."
146
- msgstr "Account deletion is off in demo mode. The shared demo resets separately."
147
-
148
- #. @context: Settings section heading for active sessions
149
- #: src/ui/dash/settings/SessionsContent.tsx
150
- msgid "Active Sessions"
151
- msgstr "Active Sessions"
152
-
153
- #. @context: Heading for list of active API tokens
154
- #: src/ui/dash/settings/ApiTokensContent.tsx
155
- msgid "Active Tokens"
156
- msgstr "Active Tokens"
157
-
158
121
  #. @context: Add more attachments button
159
122
  #: src/ui/compose/ComposeDialog.tsx
160
123
  msgid "Add"
161
124
  msgstr "Add"
162
125
 
163
- #. @context: Description in link popover form
164
- #: src/ui/dash/appearance/NavigationContent.tsx
165
- msgid "Add a custom link to any URL"
166
- msgstr "Add a custom link to any URL"
126
+ #. @context: Helper text for the custom collections link form on collections page
127
+ #: src/ui/shared/collection-management-labels.ts
128
+ msgid "Add a custom shortcut to any page or site."
129
+ msgstr "Add a custom shortcut to any page or site."
130
+
131
+ #. @context: Validation message when creating or editing a custom collections link
132
+ #: src/ui/shared/collection-management-labels.ts
133
+ msgid "Add a label and URL."
134
+ msgstr "Add a label and URL."
167
135
 
168
136
  #. @context: Description for the RSS system navigation toggle
169
137
  #: src/ui/shared/navigation-labels.ts
@@ -190,31 +158,11 @@ msgstr "Add alt text"
190
158
  msgid "Add Collection"
191
159
  msgstr "Add Collection"
192
160
 
193
- #. @context: Custom CSS settings description
194
- #: src/ui/dash/appearance/AdvancedContent.tsx
195
- msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
196
- msgstr "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
197
-
198
- #. @context: Section heading for adding custom link to nav
199
- #: src/ui/dash/appearance/NavigationContent.tsx
200
- msgid "Add custom link to navigation"
201
- msgstr "Add custom link to navigation"
202
-
203
- #. @context: Button and heading for adding custom link
204
- #: src/ui/dash/appearance/NavigationContent.tsx
161
+ #. @context: Primary action to add a custom link on collections page
162
+ #: src/ui/shared/collection-management-labels.ts
205
163
  msgid "Add Link"
206
164
  msgstr "Add Link"
207
165
 
208
- #. @context: Settings group label for advanced settings
209
- #: src/ui/dash/settings/SettingsRootContent.tsx
210
- msgid "Advanced"
211
- msgstr "Advanced"
212
-
213
- #. @context: Description after API reference link
214
- #: src/ui/dash/settings/ApiTokensContent.tsx
215
- msgid "all available endpoints and request formats."
216
- msgstr "all available endpoints and request formats."
217
-
218
166
  #. @context: Archive filter - collection dropdown default
219
167
  #: src/ui/pages/ArchivePage.tsx
220
168
  msgid "All collections"
@@ -235,53 +183,16 @@ msgstr "All visibility"
235
183
  msgid "All years"
236
184
  msgstr "All years"
237
185
 
238
- #. @context: Checkbox for allowing search engine indexing
239
- #: src/ui/dash/settings/GeneralContent.tsx
240
- msgid "Allow search engines to index my site"
241
- msgstr "Allow search engines to index my site"
242
-
243
- #. @context: Theme mode option description
244
- #: src/ui/dash/appearance/ColorThemeContent.tsx
245
- msgid "Always show the dark version of the theme."
246
- msgstr "Always show the dark version of the theme."
247
-
248
- #. @context: Theme mode option description
249
- #: src/ui/dash/appearance/ColorThemeContent.tsx
250
- msgid "Always show the light version of the theme."
251
- msgstr "Always show the light version of the theme."
252
-
253
186
  #. @context: Alt text for the sample detail article image
254
187
  #: src/ui/pages/ThemeSamplePage.tsx
255
188
  msgid "An abstract editorial layout in warm paper colors"
256
189
  msgstr "An abstract editorial layout in warm paper colors"
257
190
 
258
- #. @context: Button label for opening the hidden collection list in the post footer
259
- #: src/ui/shared/PostFooter.tsx
260
- msgid "and {count} more"
261
- msgstr "and {count} more"
262
-
263
191
  #. @context: Sample link post body suffix on the theme sample page
264
192
  #: src/ui/pages/ThemeSamplePage.tsx
265
193
  msgid "and checking whether the accent is guiding attention or pulling too hard."
266
194
  msgstr "and checking whether the accent is guiding attention or pulling too hard."
267
195
 
268
- #. @context: Link to API documentation
269
- #: src/ui/dash/settings/ApiTokensContent.tsx
270
- msgid "API reference"
271
- msgstr "API reference"
272
-
273
- #. @context: Settings item — API token settings
274
- #. @context: Settings section heading
275
- #: src/ui/dash/settings/ApiTokensContent.tsx
276
- #: src/ui/dash/settings/SettingsRootContent.tsx
277
- msgid "API Tokens"
278
- msgstr "API Tokens"
279
-
280
- #. @context: Settings group label for design settings
281
- #: src/ui/dash/settings/SettingsRootContent.tsx
282
- msgid "Appearance"
283
- msgstr "Appearance"
284
-
285
196
  #. @context: Compose publish settings help text for public visibility
286
197
  #: src/ui/compose/ComposeDialog.tsx
287
198
  msgid "Appears in Latest."
@@ -292,17 +203,18 @@ msgstr "Appears in Latest."
292
203
  msgid "Apple touch icon"
293
204
  msgstr "Apple touch icon"
294
205
 
295
- #. @context: Appearance settings description
296
- #: src/ui/dash/appearance/ColorThemeContent.tsx
297
- msgid "Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed."
298
- msgstr "Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed."
299
-
206
+ #. @context: Archive feed title prefix
300
207
  #. @context: Archive page title
301
- #. @context: Built-in navigation label for the archive page
302
208
  #. @context: Inactive nav link label on sample page
209
+ #: src/routes/pages/archive.tsx
303
210
  #: src/ui/pages/ArchivePage.tsx
304
211
  #: src/ui/pages/ThemeSamplePage.tsx
212
+ msgid "Archive"
213
+ msgstr "Archive"
214
+
215
+ #. @context: Built-in navigation label for the archive page
305
216
  #: src/ui/shared/navigation-labels.ts
217
+ msgctxt "nav"
306
218
  msgid "Archive"
307
219
  msgstr "Archive"
308
220
 
@@ -331,29 +243,15 @@ msgstr "Authentication isn't set up. Check your server config."
331
243
  msgid "Author (optional)"
332
244
  msgstr "Author (optional)"
333
245
 
334
- #. @context: Theme mode option label
335
246
  #. @context: Theme mode option on sample page
336
- #: src/ui/dash/appearance/ColorThemeContent.tsx
337
247
  #: src/ui/pages/ThemeSamplePage.tsx
338
248
  msgid "Auto"
339
249
  msgstr "Auto"
340
250
 
341
- #. @context: Description after theming guide link on Custom CSS page
342
- #: src/ui/dash/appearance/AdvancedContent.tsx
343
- msgid "available CSS variables, data attributes, and examples."
344
- msgstr "available CSS variables, data attributes, and examples."
345
-
346
- #. @context: Settings item — avatar settings
347
- #: src/ui/dash/settings/SettingsRootContent.tsx
348
- msgid "Avatar"
349
- msgstr "Avatar"
350
-
351
- #. @context: Toast after saving avatar display preference
352
- #. @context: Toast after saving avatar display preference
353
- #: src/routes/dash/settings.tsx
354
- #: src/routes/dash/settings.tsx
355
- msgid "Avatar display updated."
356
- msgstr "Avatar display updated."
251
+ #. @context: Compose summary shown near the submit controls when a manual custom link is cleared
252
+ #: src/ui/compose/ComposeDialog.tsx
253
+ msgid "Auto link"
254
+ msgstr "Auto link"
357
255
 
358
256
  #. @context: Usage label for the circle tile asset card
359
257
  #: src/ui/pages/BrandPage.tsx
@@ -365,31 +263,11 @@ msgstr "Avatar-ready"
365
263
  msgid "Back"
366
264
  msgstr "Back"
367
265
 
368
- #. @context: Link to backup and restore documentation from account settings
369
- #: src/ui/dash/settings/AccountMenuContent.tsx
370
- msgid "Backup & Restore Guide"
371
- msgstr "Backup & Restore Guide"
372
-
373
- #. @context: Settings item description for API tokens
374
- #: src/ui/dash/settings/SettingsRootContent.tsx
375
- msgid "Bearer tokens for scripts and automation"
376
- msgstr "Bearer tokens for scripts and automation"
377
-
378
266
  #. @context: Sample note post body suffix on the theme sample page
379
267
  #: src/ui/pages/ThemeSamplePage.tsx
380
268
  msgid "before deciding whether the accent is carrying too much product energy."
381
269
  msgstr "before deciding whether the accent is carrying too much product energy."
382
270
 
383
- #. @context: Step 1 description for site export before account deletion
384
- #: src/ui/dash/settings/DeleteAccountContent.tsx
385
- msgid "Before deleting, download a site export. You won't be able to recover this account after deletion."
386
- msgstr "Before deleting, download a site export. You won't be able to recover this account after deletion."
387
-
388
- #. @context: Settings section heading for avatar
389
- #: src/ui/dash/settings/AvatarContent.tsx
390
- msgid "Blog Avatar"
391
- msgstr "Blog Avatar"
392
-
393
271
  #. @context: Browser page title for the public brand asset page
394
272
  #. @context: Eyebrow on the public brand asset page
395
273
  #: src/routes/pages/brand.tsx
@@ -438,43 +316,17 @@ msgstr "Built-in background"
438
316
  msgid "Buttons can stay steady, but links, thread markers, and subtle emphasis should feel closer to ink on paper than dashboard chrome."
439
317
  msgstr "Buttons can stay steady, but links, thread markers, and subtle emphasis should feel closer to ink on paper than dashboard chrome."
440
318
 
441
- #. @context: Button label to dismiss a dialog or action
442
- #. @context: Button label to dismiss a dialog or action
443
- #. @context: Button label to dismiss a dialog or action
444
- #. @context: Button label to dismiss a dialog or action
445
319
  #. @context: Button label to dismiss a dialog or action
446
320
  #. @context: Button to cancel form
447
- #. @context: Button to cancel form
448
- #. @context: Button to cancel settings changes
449
- #. @context: Button to cancel unsaved changes and revert to original values
450
321
  #. @context: Close compose dialog
451
322
  #. @context: Confirm close action sheet - cancel and return to editor
452
- #: src/routes/dash/custom-urls.tsx
453
323
  #: src/ui/compose/ComposeDialog.tsx
454
324
  #: src/ui/compose/ComposeDialog.tsx
455
- #: src/ui/dash/ActionButtons.tsx
456
- #: src/ui/dash/DangerZone.tsx
457
- #: src/ui/dash/settings/ApiTokensContent.tsx
458
- #: src/ui/dash/settings/AvatarContent.tsx
459
- #: src/ui/dash/settings/DeleteAccountContent.tsx
460
- #: src/ui/dash/settings/GeneralContent.tsx
461
325
  #: src/ui/shared/collection-management-labels.ts
462
326
  #: src/ui/shared/collection-management-labels.ts
463
327
  msgid "Cancel"
464
328
  msgstr "Cancel"
465
329
 
466
- #. @context: Button to change password
467
- #. @context: Settings section heading
468
- #: src/ui/dash/settings/AccountContent.tsx
469
- #: src/ui/dash/settings/AccountContent.tsx
470
- msgid "Change Password"
471
- msgstr "Change Password"
472
-
473
- #. @context: Warning shown when changing the canonical RSS feed selection
474
- #: src/ui/dash/settings/GeneralContent.tsx
475
- msgid "Changing this updates what subscribers get from /feed."
476
- msgstr "Changing this updates what subscribers get from /feed."
477
-
478
330
  #. @context: Compose custom slug helper while checking whether a manual slug is available
479
331
  #: src/ui/compose/ComposeDialog.tsx
480
332
  msgid "Checking link..."
@@ -485,11 +337,6 @@ msgstr "Checking link..."
485
337
  msgid "Choose a new password."
486
338
  msgstr "Choose a new password."
487
339
 
488
- #. @context: Font theme settings description
489
- #: src/ui/dash/appearance/FontThemeContent.tsx
490
- msgid "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
491
- msgstr "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
492
-
493
340
  #. @context: Body copy for the logo downloads section
494
341
  #: src/ui/pages/BrandPage.tsx
495
342
  msgid "Choose the standard logo for most placements and the reverse logo when you need more contrast."
@@ -500,6 +347,11 @@ msgstr "Choose the standard logo for most placements and the reverse logo when y
500
347
  msgid "Choose the standard logo for websites, docs, directories, and editorial layouts."
501
348
  msgstr "Choose the standard logo for websites, docs, directories, and editorial layouts."
502
349
 
350
+ #. @context: Compose publish settings validation error when a future publish date is selected
351
+ #: src/ui/compose/ComposeDialog.tsx
352
+ msgid "Choose today or an earlier date, or leave it blank to publish now."
353
+ msgstr "Choose today or an earlier date, or leave it blank to publish now."
354
+
503
355
  #. @context: Asset keyword on the public brand asset page
504
356
  #. @context: Title for the circle tile asset card
505
357
  #: src/ui/pages/BrandPage.tsx
@@ -514,9 +366,16 @@ msgstr "Circle tile"
514
366
  msgid "Clear filter"
515
367
  msgstr "Clear filter"
516
368
 
369
+ #. @context: Close drawer button label
370
+ #: src/ui/layouts/SiteLayout.tsx
371
+ msgid "Close menu"
372
+ msgstr "Close menu"
373
+
517
374
  #. @context: Singular collection count label
518
375
  #. @context: Singular collection count label
519
376
  #. @context: Singular collection count label
377
+ #. @context: Singular collection count label on an aggregate collection page
378
+ #: src/ui/pages/CollectionPage.tsx
520
379
  #: src/ui/pages/CollectionsPage.tsx
521
380
  #: src/ui/shared/CollectionsManager.tsx
522
381
  #: src/ui/shared/CollectionsManager.tsx
@@ -524,10 +383,6 @@ msgid "collection"
524
383
  msgstr "collection"
525
384
 
526
385
  #. @context: Compose collection selector trigger label
527
- #. @context: Custom URL target type badge for a collection
528
- #. @context: Custom URL type option
529
- #: src/routes/dash/custom-urls.tsx
530
- #: src/routes/dash/custom-urls.tsx
531
386
  #: src/ui/compose/ComposeDialog.tsx
532
387
  msgid "Collection"
533
388
  msgstr "Collection"
@@ -560,6 +415,8 @@ msgstr "Collection saved."
560
415
  #. @context: Plural collection count label
561
416
  #. @context: Plural collection count label
562
417
  #. @context: Plural collection count label
418
+ #. @context: Plural collection count label on an aggregate collection page
419
+ #: src/ui/pages/CollectionPage.tsx
563
420
  #: src/ui/pages/CollectionsPage.tsx
564
421
  #: src/ui/shared/CollectionsManager.tsx
565
422
  #: src/ui/shared/CollectionsManager.tsx
@@ -568,7 +425,6 @@ msgstr "collections"
568
425
 
569
426
  #. @context: Breadcrumb link to collections page
570
427
  #. @context: Breadcrumb link to collections page
571
- #. @context: Built-in navigation label for the collections page
572
428
  #. @context: Collections page heading
573
429
  #. @context: Collections page heading
574
430
  #. @context: Inactive nav link label on sample page
@@ -577,7 +433,12 @@ msgstr "collections"
577
433
  #: src/ui/pages/CollectionsPage.tsx
578
434
  #: src/ui/pages/ThemeSamplePage.tsx
579
435
  #: src/ui/shared/CollectionsManager.tsx
436
+ msgid "Collections"
437
+ msgstr "Collections"
438
+
439
+ #. @context: Built-in navigation label for the collections page
580
440
  #: src/ui/shared/navigation-labels.ts
441
+ msgctxt "nav"
581
442
  msgid "Collections"
582
443
  msgstr "Collections"
583
444
 
@@ -586,15 +447,12 @@ msgstr "Collections"
586
447
  msgid "Color check"
587
448
  msgstr "Color check"
588
449
 
589
- #. @context: Appearance settings heading
590
- #: src/ui/dash/appearance/ColorThemeContent.tsx
591
- msgid "Color theme"
592
- msgstr "Color theme"
593
-
594
- #. @context: Settings item — color theme settings
595
- #: src/ui/dash/settings/SettingsRootContent.tsx
596
- msgid "Color Theme"
597
- msgstr "Color Theme"
450
+ #. @context: Page heading when viewing multiple collections together
451
+ #. @context: Page title when viewing multiple collections together
452
+ #: src/routes/pages/collection.tsx
453
+ #: src/ui/pages/CollectionPage.tsx
454
+ msgid "Combined Collections"
455
+ msgstr "Combined Collections"
598
456
 
599
457
  #. @context: Inline link label in the sample detail article
600
458
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -606,16 +464,6 @@ msgstr "Compare it against the theme controls"
606
464
  msgid "Complete Setup"
607
465
  msgstr "Complete Setup"
608
466
 
609
- #. @context: Step 2 heading — user must type confirmation phrase
610
- #: src/ui/dash/settings/DeleteAccountContent.tsx
611
- msgid "Confirm account deletion"
612
- msgstr "Confirm account deletion"
613
-
614
- #. @context: Password form field
615
- #: src/ui/dash/settings/AccountContent.tsx
616
- msgid "Confirm New Password"
617
- msgstr "Confirm New Password"
618
-
619
467
  #. @context: Password reset form field
620
468
  #: src/routes/auth/reset.tsx
621
469
  msgid "Confirm Password"
@@ -626,33 +474,6 @@ msgstr "Confirm Password"
626
474
  msgid "Controls"
627
475
  msgstr "Controls"
628
476
 
629
- #. @context: Feedback after copying API token
630
- #: src/ui/dash/settings/ApiTokensContent.tsx
631
- msgid "Copied"
632
- msgstr "Copied"
633
-
634
- #. @context: Button to copy a URL to the clipboard
635
- #: src/ui/dash/settings/GeneralContent.tsx
636
- msgid "Copy"
637
- msgstr "Copy"
638
-
639
- #. @context: Button to copy API token to clipboard
640
- #. @context: Button to copy API token to clipboard
641
- #: src/ui/dash/settings/ApiTokensContent.tsx
642
- #: src/ui/dash/settings/ApiTokensContent.tsx
643
- msgid "Copy Token"
644
- msgstr "Copy Token"
645
-
646
- #. @context: Warning to copy newly created API token
647
- #: src/ui/dash/settings/ApiTokensContent.tsx
648
- msgid "Copy your token now — it won't be shown again."
649
- msgstr "Copy your token now — it won't be shown again."
650
-
651
- #. @context: Error toast when copying text to the clipboard fails
652
- #: src/ui/dash/settings/GeneralContent.tsx
653
- msgid "Could not copy. Try again."
654
- msgstr "Could not copy. Try again."
655
-
656
477
  #. @context: Error toast when account creation fails
657
478
  #. @context: Error toast when account creation fails
658
479
  #. @context: Error toast when account creation fails
@@ -662,19 +483,17 @@ msgstr "Could not copy. Try again."
662
483
  msgid "Couldn't create your account. Check the details and try again."
663
484
  msgstr "Couldn't create your account. Check the details and try again."
664
485
 
665
- #. @context: Error toast when nav delete fails
666
- #: src/ui/dash/appearance/NavigationContent.tsx
667
- msgid "Couldn't delete. Try again in a moment."
668
- msgstr "Couldn't delete. Try again in a moment."
486
+ #. @context: Toast shown when edit mode fails to load a post
487
+ #: src/ui/compose/ComposeDialog.tsx
488
+ msgid "Couldn't load this post. Try again."
489
+ msgstr "Couldn't load this post. Try again."
669
490
 
670
491
  #. @context: Toast when publish fails and post is auto-saved as draft
671
492
  #: src/ui/compose/ComposeDialog.tsx
672
493
  msgid "Couldn't publish. Saved as draft."
673
494
  msgstr "Couldn't publish. Saved as draft."
674
495
 
675
- #. @context: Error toast when nav save fails
676
496
  #. @context: Toast when save fails
677
- #: src/ui/dash/appearance/NavigationContent.tsx
678
497
  #: src/ui/shared/collection-management-labels.ts
679
498
  msgid "Couldn't save. Try again in a moment."
680
499
  msgstr "Couldn't save. Try again in a moment."
@@ -684,90 +503,27 @@ msgstr "Couldn't save. Try again in a moment."
684
503
  msgid "Create a collection to get started."
685
504
  msgstr "Create a collection to get started."
686
505
 
687
- #. @context: Label for curl example
688
- #: src/ui/dash/settings/ApiTokensContent.tsx
689
- msgid "Create a post with curl:"
690
- msgstr "Create a post with curl:"
691
-
692
- #. @context: Button to save new custom URL
693
- #: src/routes/dash/custom-urls.tsx
694
- msgid "Create Custom URL"
695
- msgstr "Create Custom URL"
696
-
697
506
  #. @context: Setup page description
698
507
  #: src/routes/auth/setup.tsx
699
508
  msgid "Create your admin account."
700
509
  msgstr "Create your admin account."
701
510
 
702
- #. @context: Token creation date
703
- #. placeholder {0}: formatDate(token.createdAt)
704
- #: src/ui/dash/settings/ApiTokensContent.tsx
705
- msgid "Created {0}"
706
- msgstr "Created {0}"
707
-
708
- #. @context: Badge indicating the current active session
709
- #: src/ui/dash/settings/SessionsContent.tsx
710
- msgid "Current"
711
- msgstr "Current"
712
-
713
- #. @context: Password form field
714
- #: src/ui/dash/settings/AccountContent.tsx
715
- msgid "Current Password"
716
- msgstr "Current Password"
717
-
718
- #. @context: Error toast when current password verification fails
719
- #: src/routes/dash/settings.tsx
720
- msgid "Current password doesn't match. Try again."
721
- msgstr "Current password doesn't match. Try again."
722
-
723
511
  #. @context: Thread item label on sample page
724
512
  #: src/ui/pages/ThemeSamplePage.tsx
725
513
  msgid "Current post"
726
514
  msgstr "Current post"
727
515
 
728
- #. @context: Appearance settings heading for custom CSS
729
- #. @context: Link to Custom CSS settings from color theme page
730
- #. @context: Settings item — custom CSS settings
731
- #: src/ui/dash/appearance/AdvancedContent.tsx
732
- #: src/ui/dash/appearance/ColorThemeContent.tsx
733
- #: src/ui/dash/settings/SettingsRootContent.tsx
734
- msgid "Custom CSS"
735
- msgstr "Custom CSS"
736
-
737
- #. @context: Toast after saving custom CSS
738
- #: src/routes/dash/settings.tsx
739
- msgid "Custom CSS updated."
740
- msgstr "Custom CSS updated."
741
-
742
516
  #. @context: Compose publish settings slug section label
743
517
  #: src/ui/compose/ComposeDialog.tsx
744
518
  msgid "Custom link"
745
519
  msgstr "Custom link"
746
520
 
747
- #. @context: Settings item — custom URL settings
748
- #. @context: Settings section heading
749
- #: src/routes/dash/custom-urls.tsx
750
- #: src/ui/dash/settings/SettingsRootContent.tsx
751
- msgid "Custom URLs"
752
- msgstr "Custom URLs"
753
-
754
521
  #. @context: Destructive badge label on sample page
755
522
  #: src/ui/pages/ThemeSamplePage.tsx
756
523
  msgid "Danger"
757
524
  msgstr "Danger"
758
525
 
759
- #. @context: Section heading for dangerous/destructive actions
760
- #. @context: Settings group label for destructive account actions
761
- #. @context: Settings group label for destructive account actions
762
- #: src/ui/dash/DangerZone.tsx
763
- #: src/ui/dash/settings/AccountMenuContent.tsx
764
- #: src/ui/dash/settings/AccountMenuContent.tsx
765
- msgid "Danger Zone"
766
- msgstr "Danger Zone"
767
-
768
- #. @context: Theme mode option label
769
526
  #. @context: Theme mode option on sample page
770
- #: src/ui/dash/appearance/ColorThemeContent.tsx
771
527
  #: src/ui/pages/ThemeSamplePage.tsx
772
528
  msgid "Dark"
773
529
  msgstr "Dark"
@@ -779,11 +535,6 @@ msgstr "Dark"
779
535
  msgid "Dark backgrounds"
780
536
  msgstr "Dark backgrounds"
781
537
 
782
- #. @context: Settings group label for data export/import
783
- #: src/ui/dash/settings/AccountMenuContent.tsx
784
- msgid "Data"
785
- msgstr "Data"
786
-
787
538
  #. @context: Badge label on sample page
788
539
  #. @context: Usage label for the default logo asset card
789
540
  #: src/ui/pages/BrandPage.tsx
@@ -806,44 +557,16 @@ msgstr "default note sample"
806
557
  msgid "Default preview image for social shares and link unfurls."
807
558
  msgstr "Default preview image for social shares and link unfurls."
808
559
 
809
- #. @context: Button to delete custom URL
810
- #. @context: Button to delete item
811
560
  #. @context: Delete collection action
812
- #. @context: Delete nav item
813
- #: src/routes/dash/custom-urls.tsx
814
- #: src/ui/dash/ActionButtons.tsx
815
- #: src/ui/dash/appearance/NavigationContent.tsx
816
561
  #: src/ui/shared/collection-management-labels.ts
817
562
  msgid "Delete"
818
563
  msgstr "Delete"
819
564
 
820
- #. @context: Page title for account deletion
821
- #. @context: Settings item — delete account and all data
822
- #: src/ui/dash/settings/AccountMenuContent.tsx
823
- #: src/ui/dash/settings/DeleteAccountContent.tsx
824
- msgid "Delete Account"
825
- msgstr "Delete Account"
826
-
827
- #. @context: Final destructive button to delete account and all data
828
- #: src/ui/dash/settings/DeleteAccountContent.tsx
829
- msgid "Delete Account Permanently"
830
- msgstr "Delete Account Permanently"
831
-
832
565
  #. @context: Draft item action
833
566
  #: src/ui/compose/ComposeDialog.tsx
834
567
  msgid "Delete Draft"
835
568
  msgstr "Delete Draft"
836
569
 
837
- #. @context: Settings item — open the hosted site danger zone in the control plane
838
- #: src/ui/dash/settings/AccountMenuContent.tsx
839
- msgid "Delete Hosted Site"
840
- msgstr "Delete Hosted Site"
841
-
842
- #. @context: Final browser confirm dialog before account deletion
843
- #: src/ui/dash/settings/DeleteAccountContent.tsx
844
- msgid "Delete this blog permanently? This cannot be undone."
845
- msgstr "Delete this blog permanently? This cannot be undone."
846
-
847
570
  #. @context: Confirm dialog for deleting a collection
848
571
  #: src/ui/shared/collection-management-labels.ts
849
572
  msgid "Delete this collection permanently? Posts inside won't be removed."
@@ -854,22 +577,14 @@ msgstr "Delete this collection permanently? Posts inside won't be removed."
854
577
  msgid "Demo credentials are pre-filled — hit Sign In to continue."
855
578
  msgstr "Demo credentials are pre-filled — hit Sign In to continue."
856
579
 
857
- #. @context: Notice shown on the account page when demo restrictions are enabled
858
- #: src/ui/dash/settings/AccountMenuContent.tsx
859
- msgid "Demo mode hides sessions, password changes, and account deletion. Export still works."
860
- msgstr "Demo mode hides sessions, password changes, and account deletion. Export still works."
861
-
862
- #. @context: Help text explaining that SEO indexing is locked in demo mode
863
- #: src/ui/dash/settings/GeneralContent.tsx
864
- msgid "Demo sites always stay hidden from search engines."
865
- msgstr "Demo sites always stay hidden from search engines."
866
-
867
580
  #. @context: Alt text textarea placeholder
868
581
  #: src/ui/compose/ComposeDialog.tsx
869
582
  msgid "Describe this for people with visual impairments..."
870
583
  msgstr "Describe this for people with visual impairments..."
871
584
 
872
585
  #. @context: Collection form field
586
+ #. @context: Field label for a custom collections link description
587
+ #: src/ui/shared/collection-management-labels.ts
873
588
  #: src/ui/shared/collection-management-labels.ts
874
589
  msgid "Description (optional)"
875
590
  msgstr "Description (optional)"
@@ -877,8 +592,6 @@ msgstr "Description (optional)"
877
592
  #. @context: Collection label on theme sample content card
878
593
  #. @context: Collection tag on sample note post
879
594
  #. @context: Collection tag on the sample detail article
880
- #. @context: Color theme preview collection label
881
- #: src/ui/dash/appearance/ColorThemeContent.tsx
882
595
  #: src/ui/pages/ThemeSamplePage.tsx
883
596
  #: src/ui/pages/ThemeSamplePage.tsx
884
597
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -890,11 +603,6 @@ msgstr "Design"
890
603
  msgid "Designing a calmer default accent for Jant"
891
604
  msgstr "Designing a calmer default accent for Jant"
892
605
 
893
- #. @context: Redirect destination field
894
- #: src/routes/dash/custom-urls.tsx
895
- msgid "Destination"
896
- msgstr "Destination"
897
-
898
606
  #. @context: Confirm close action sheet - discard changes button for editing published post
899
607
  #. @context: More menu - discard post
900
608
  #: src/ui/compose/ComposeDialog.tsx
@@ -907,21 +615,6 @@ msgstr "Discard"
907
615
  msgid "Discard changes?"
908
616
  msgstr "Discard changes?"
909
617
 
910
- #. @context: Checkbox to show avatar in the site header
911
- #: src/ui/dash/settings/AvatarContent.tsx
912
- msgid "Display avatar in my site header"
913
- msgstr "Display avatar in my site header"
914
-
915
- #. @context: Help text for site footer field
916
- #: src/ui/dash/settings/GeneralContent.tsx
917
- msgid "Displayed at the bottom of all posts and pages. Markdown supported."
918
- msgstr "Displayed at the bottom of all posts and pages. Markdown supported."
919
-
920
- #. @context: Theme group heading on color theme settings page
921
- #: src/ui/dash/appearance/ColorThemeContent.tsx
922
- msgid "Distinctive Mood"
923
- msgstr "Distinctive Mood"
924
-
925
618
  #. @context: Label for a divider item while organizing collections
926
619
  #: src/ui/shared/CollectionsManager.tsx
927
620
  msgid "Divider"
@@ -960,31 +653,11 @@ msgstr "Don't save"
960
653
  msgid "Done"
961
654
  msgstr "Done"
962
655
 
963
- #. @context: Step 1 heading — user must download a site export before deleting
964
- #: src/ui/dash/settings/DeleteAccountContent.tsx
965
- msgid "Download a site export"
966
- msgstr "Download a site export"
967
-
968
- #. @context: Settings item description for static site export
969
- #: src/ui/dash/settings/AccountMenuContent.tsx
970
- msgid "Download a Zola site ZIP for static publishing or import into another Jant."
971
- msgstr "Download a Zola site ZIP for static publishing or import into another Jant."
972
-
973
656
  #. @context: Primary hero button label for the brand pack ZIP
974
657
  #: src/ui/pages/BrandPage.tsx
975
658
  msgid "Download Brand Pack"
976
659
  msgstr "Download Brand Pack"
977
660
 
978
- #. @context: Button to download the site export ZIP before deletion
979
- #: src/ui/dash/settings/DeleteAccountContent.tsx
980
- msgid "Download Export ZIP"
981
- msgstr "Download Export ZIP"
982
-
983
- #. @context: Alert when site export download fails during account deletion
984
- #: src/ui/dash/settings/DeleteAccountContent.tsx
985
- msgid "Download failed. Please try again."
986
- msgstr "Download failed. Please try again."
987
-
988
661
  #. @context: Download button label for a non-SVG brand asset
989
662
  #: src/ui/pages/BrandPage.tsx
990
663
  msgid "Download file"
@@ -1010,11 +683,6 @@ msgstr "Download SVG"
1010
683
  msgid "Download the official Jant logo, icons, and preview files."
1011
684
  msgstr "Download the official Jant logo, icons, and preview files."
1012
685
 
1013
- #. @context: Post status badge - draft
1014
- #: src/ui/dash/StatusBadge.tsx
1015
- msgid "Draft"
1016
- msgstr "Draft"
1017
-
1018
686
  #. @context: Toast after draft deletion
1019
687
  #: src/ui/compose/ComposeDialog.tsx
1020
688
  msgid "Draft deleted."
@@ -1025,10 +693,12 @@ msgstr "Draft deleted."
1025
693
  msgid "Draft restored."
1026
694
  msgstr "Draft restored."
1027
695
 
696
+ #. @context: Toast after saving a draft post
1028
697
  #. @context: Toast after saving a draft post
1029
698
  #. @context: Toast after saving a draft post
1030
699
  #: src/routes/compose.tsx
1031
700
  #: src/routes/compose.tsx
701
+ #: src/routes/compose.tsx
1032
702
  msgid "Draft saved."
1033
703
  msgstr "Draft saved."
1034
704
 
@@ -1039,25 +709,23 @@ msgstr "Drafts"
1039
709
 
1040
710
  #. @context: Helper text shown while organizing collections
1041
711
  #: src/ui/shared/CollectionsManager.tsx
1042
- msgid "Drag collections and dividers into the order you want."
1043
- msgstr "Drag collections and dividers into the order you want."
1044
-
1045
- #. @context: Placeholder for API token name input
1046
- #: src/ui/dash/settings/ApiTokensContent.tsx
1047
- msgid "e.g. iOS Shortcuts"
1048
- msgstr "e.g. iOS Shortcuts"
712
+ msgid "Drag collections, links, and dividers into the order you want."
713
+ msgstr "Drag collections, links, and dividers into the order you want."
1049
714
 
1050
- #. @context: Button to edit item
1051
715
  #. @context: Per-collection edit action
1052
716
  #. @context: Per-collection edit action
1053
717
  #. @context: Per-collection edit action
1054
- #: src/ui/dash/ActionButtons.tsx
1055
718
  #: src/ui/pages/CollectionEditorPage.tsx
1056
719
  #: src/ui/pages/CollectionEditorPage.tsx
1057
720
  #: src/ui/shared/collection-management-labels.ts
1058
721
  msgid "Edit"
1059
722
  msgstr "Edit"
1060
723
 
724
+ #. @context: Compose action to reopen the custom link field from the action row summary
725
+ #: src/ui/compose/ComposeDialog.tsx
726
+ msgid "Edit custom link"
727
+ msgstr "Edit custom link"
728
+
1061
729
  #. @context: Button to manually edit the collection link
1062
730
  #: src/ui/shared/collection-management-labels.ts
1063
731
  msgid "Edit link"
@@ -1068,6 +736,11 @@ msgstr "Edit link"
1068
736
  msgid "Edit post"
1069
737
  msgstr "Edit post"
1070
738
 
739
+ #. @context: Compose action to reopen the publish date field from the action row summary
740
+ #: src/ui/compose/ComposeDialog.tsx
741
+ msgid "Edit publish date"
742
+ msgstr "Edit publish date"
743
+
1071
744
  #. @context: Sample link post title on the theme sample page
1072
745
  #: src/ui/pages/ThemeSamplePage.tsx
1073
746
  msgid "Editorial interfaces worth borrowing from"
@@ -1085,6 +758,11 @@ msgstr "Email"
1085
758
  msgid "Emoji"
1086
759
  msgstr "Emoji"
1087
760
 
761
+ #. @context: Compose publish settings validation error for an invalid publish date
762
+ #: src/ui/compose/ComposeDialog.tsx
763
+ msgid "Enter a valid date."
764
+ msgstr "Enter a valid date."
765
+
1088
766
  #. @context: Compose URL field error message
1089
767
  #: src/ui/compose/ComposeDialog.tsx
1090
768
  msgid "Enter a valid URL starting with http://, https://, or mailto:."
@@ -1119,51 +797,24 @@ msgstr "Everything most people need is in one ZIP."
1119
797
  msgid "Everything on this page is ready to use for articles, launch posts, directories, and product coverage."
1120
798
  msgstr "Everything on this page is ready to use for articles, launch posts, directories, and product coverage."
1121
799
 
1122
- #. @context: Settings item description for account settings on the settings home page when demo restrictions are enabled
1123
- #: src/ui/dash/settings/SettingsRootContent.tsx
1124
- msgid "Export and demo limits"
1125
- msgstr "Export and demo limits"
1126
-
1127
- #. @context: Confirmation text after downloading the site export in delete flow
1128
- #: src/ui/dash/settings/DeleteAccountContent.tsx
1129
- msgid "Export downloaded."
1130
- msgstr "Export downloaded."
1131
-
1132
- #. @context: Settings item — export a Zola static site ZIP
1133
- #: src/ui/dash/settings/AccountMenuContent.tsx
1134
- msgid "Export Static Site"
1135
- msgstr "Export Static Site"
800
+ #. @context: Compose fullscreen - button tooltip to collapse back to normal editor
801
+ #: src/ui/compose/ComposeDialog.tsx
802
+ msgid "Exit fullscreen"
803
+ msgstr "Exit fullscreen"
1136
804
 
1137
805
  #. @context: Title for the favicon asset card
1138
806
  #: src/ui/pages/BrandPage.tsx
1139
807
  msgid "Favicon"
1140
808
  msgstr "Favicon"
1141
809
 
1142
- #. @context: Settings item description for avatar
1143
- #: src/ui/dash/settings/SettingsRootContent.tsx
1144
- msgid "Favicon and the profile mark in your header"
1145
- msgstr "Favicon and the profile mark in your header"
1146
-
1147
810
  #. @context: Archive visibility filter - featured posts
1148
- #. @context: Browse filter for featured posts
1149
- #. @context: Browse filter label
1150
- #. @context: Browse filter label
1151
- #. @context: Browse filter label for featured posts
1152
811
  #. @context: Browser page title for the featured feed
1153
812
  #. @context: Browser page title for the featured feed
1154
813
  #. @context: Inactive browse tab label on sample page
1155
814
  #. @context: Page heading for the featured posts feed
1156
- #. @context: Post badge - featured
1157
- #. @context: Select option for using featured posts as the main RSS feed
1158
815
  #. @context: Tooltip and screen reader label for the featured-post icon in the post footer when no featured date is available
1159
816
  #: src/routes/pages/featured.tsx
1160
817
  #: src/routes/pages/home.tsx
1161
- #: src/ui/dash/appearance/NavigationContent.tsx
1162
- #: src/ui/dash/appearance/NavigationContent.tsx
1163
- #: src/ui/dash/appearance/NavigationContent.tsx
1164
- #: src/ui/dash/settings/GeneralContent.tsx
1165
- #: src/ui/dash/StatusBadge.tsx
1166
- #: src/ui/layouts/SiteLayout.tsx
1167
818
  #: src/ui/pages/ArchivePage.tsx
1168
819
  #: src/ui/pages/FeaturedPage.tsx
1169
820
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1171,37 +822,29 @@ msgstr "Favicon and the profile mark in your header"
1171
822
  msgid "Featured"
1172
823
  msgstr "Featured"
1173
824
 
1174
- #. @context: Label for the explicit featured RSS feed URL
1175
- #: src/ui/dash/settings/GeneralContent.tsx
1176
- msgid "Featured feed"
1177
- msgstr "Featured feed"
825
+ #. @context: Built-in navigation label for the featured feed
826
+ #: src/ui/shared/navigation-labels.ts
827
+ msgctxt "nav"
828
+ msgid "Featured"
829
+ msgstr "Featured"
1178
830
 
1179
831
  #. @context: Tooltip and screen reader label for the featured-post icon in the post footer
1180
832
  #: src/ui/shared/PostFooter.tsx
1181
833
  msgid "Featured on {date} at {time}"
1182
834
  msgstr "Featured on {date} at {time}"
1183
835
 
1184
- #. @context: RSS and Atom feed title suffix for the featured posts feed
1185
- #. @context: RSS autodiscovery title for the featured posts feed
1186
- #: src/routes/feed/rss.ts
836
+ #. @context: Atom feed title suffix for the featured posts feed
837
+ #. @context: Feed autodiscovery title for the featured posts feed
838
+ #: src/routes/feed/feed.ts
1187
839
  #: src/ui/layouts/BaseLayout.tsx
1188
840
  msgid "Featured posts"
1189
841
  msgstr "Featured posts"
1190
842
 
1191
- #. @context: Toast after saving feed settings
1192
- #: src/routes/dash/settings.tsx
1193
- msgid "Feed settings updated."
1194
- msgstr "Feed settings updated."
1195
-
1196
- #. @context: Toast after copying a feed URL to the clipboard
1197
- #: src/ui/dash/settings/GeneralContent.tsx
1198
- msgid "Feed URL copied."
1199
- msgstr "Feed URL copied."
1200
-
1201
- #. @context: Settings section heading for RSS feed configuration
1202
- #: src/ui/dash/settings/GeneralContent.tsx
1203
- msgid "Feeds"
1204
- msgstr "Feeds"
843
+ #. @context: Built-in navigation label for feed
844
+ #: src/ui/shared/navigation-labels.ts
845
+ msgctxt "nav"
846
+ msgid "Feed"
847
+ msgstr "Feed"
1205
848
 
1206
849
  #. @context: Search snippet suffix on sample page
1207
850
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1218,17 +861,13 @@ msgstr "Feel editorial and slightly quieter."
1218
861
  msgid "Field Notes on Interface Tone"
1219
862
  msgstr "Field Notes on Interface Tone"
1220
863
 
1221
- #. @context: Color theme preview card title
1222
864
  #. @context: Input value on sample page
1223
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1224
865
  #: src/ui/pages/ThemeSamplePage.tsx
1225
866
  msgid "Field notes on quiet design"
1226
867
  msgstr "Field notes on quiet design"
1227
868
 
1228
- #. @context: Error toast when file storage is not set up
1229
869
  #. @context: Error when file storage is not set up
1230
870
  #: src/routes/api/upload.ts
1231
- #: src/routes/dash/settings.tsx
1232
871
  msgid "File storage isn't set up. Check your server config."
1233
872
  msgstr "File storage isn't set up. Check your server config."
1234
873
 
@@ -1242,69 +881,21 @@ msgstr "File uploaded."
1242
881
  msgid "Files"
1243
882
  msgstr "Files"
1244
883
 
1245
- #. @context: Settings item description for custom CSS
1246
- #: src/ui/dash/settings/SettingsRootContent.tsx
1247
- msgid "Fine-grained styling overrides"
1248
- msgstr "Fine-grained styling overrides"
1249
-
1250
- #. @context: Label for the list of stable RSS feed URLs
1251
- #: src/ui/dash/settings/GeneralContent.tsx
1252
- msgid "Fixed feed URLs"
1253
- msgstr "Fixed feed URLs"
1254
-
1255
- #. @context: Theme mode option description
1256
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1257
- msgid "Follow each visitor's system preference."
1258
- msgstr "Follow each visitor's system preference."
1259
-
1260
- #. @context: Appearance settings heading for font theme
1261
- #: src/ui/dash/appearance/FontThemeContent.tsx
1262
- msgid "Font theme"
1263
- msgstr "Font theme"
1264
-
1265
- #. @context: Settings item — font theme settings
1266
- #: src/ui/dash/settings/SettingsRootContent.tsx
1267
- msgid "Font Theme"
1268
- msgstr "Font Theme"
1269
-
1270
884
  #. @context: Paragraph mentioning code on the sample detail article
1271
885
  #: src/ui/pages/ThemeSamplePage.tsx
1272
886
  msgid "For the same reason, inline code should stay neutral. Something like theme.siteAccent = soften(green, 12%) should not suddenly become the loudest thing on the page."
1273
887
  msgstr "For the same reason, inline code should stay neutral. Something like theme.siteAccent = soften(green, 12%) should not suddenly become the loudest thing on the page."
1274
888
 
1275
- #. @context: Search results count - multiple
1276
- #. placeholder {0}: String(results.length)
1277
- #: src/ui/pages/SearchPage.tsx
1278
- msgid "Found {0} results"
1279
- msgstr "Found {0} results"
1280
-
1281
- #. @context: Search results count - single
1282
- #: src/ui/pages/SearchPage.tsx
1283
- msgid "Found 1 result"
1284
- msgstr "Found 1 result"
1285
-
1286
889
  #. @context: Compose dialog - open fullscreen editor
1287
890
  #: src/ui/compose/ComposeDialog.tsx
1288
891
  msgid "Fullscreen"
1289
892
  msgstr "Fullscreen"
1290
893
 
1291
- #. @context: Settings item — general settings
1292
- #. @context: Settings section heading
1293
- #: src/ui/dash/settings/GeneralContent.tsx
1294
- #: src/ui/dash/settings/SettingsRootContent.tsx
1295
- msgid "General"
1296
- msgstr "General"
1297
-
1298
894
  #. @context: Compose publish settings slug summary when no custom slug is set
1299
895
  #: src/ui/compose/ComposeDialog.tsx
1300
896
  msgid "Generate automatically"
1301
897
  msgstr "Generate automatically"
1302
898
 
1303
- #. @context: Button to create new API token
1304
- #: src/ui/dash/settings/ApiTokensContent.tsx
1305
- msgid "Generate Token"
1306
- msgstr "Generate Token"
1307
-
1308
899
  #. @context: Compose custom slug helper while generating a suggested slug
1309
900
  #: src/ui/compose/ComposeDialog.tsx
1310
901
  msgid "Generating a link..."
@@ -1330,21 +921,6 @@ msgstr "Guidelines"
1330
921
  msgid "Hard edge"
1331
922
  msgstr "Hard edge"
1332
923
 
1333
- #. @context: Toast after saving max visible nav links setting
1334
- #: src/ui/dash/appearance/NavigationContent.tsx
1335
- msgid "Header link limit updated."
1336
- msgstr "Header link limit updated."
1337
-
1338
- #. @context: Settings item description for navigation
1339
- #: src/ui/dash/settings/SettingsRootContent.tsx
1340
- msgid "Header links, home feed, and overflow menu"
1341
- msgstr "Header links, home feed, and overflow menu"
1342
-
1343
- #. @context: Description for the RSS system navigation toggle. %feed% is either Latest or Featured.
1344
- #: src/ui/dash/appearance/NavigationContent.tsx
1345
- msgid "Header RSS points to your %feed% feed (/feed). Change what /feed returns in General."
1346
- msgstr "Header RSS points to your %feed% feed (/feed). Change what /feed returns in General."
1347
-
1348
924
  #. @context: Bullet item in the sample detail article
1349
925
  #: src/ui/pages/ThemeSamplePage.tsx
1350
926
  msgid "Headings should keep their hierarchy even when the accent gets softer."
@@ -1357,9 +933,7 @@ msgstr "Helps screen readers describe the image"
1357
933
 
1358
934
  #. @context: Archive visibility filter for posts hidden from Latest
1359
935
  #. @context: Compose publish settings visibility option
1360
- #. @context: Post badge for posts hidden from Latest
1361
936
  #: src/ui/compose/ComposeDialog.tsx
1362
- #: src/ui/dash/StatusBadge.tsx
1363
937
  #: src/ui/pages/ArchivePage.tsx
1364
938
  msgid "Hidden from Latest"
1365
939
  msgstr "Hidden from Latest"
@@ -1376,36 +950,11 @@ msgstr "Hide from Latest"
1376
950
  msgid "Highest rated"
1377
951
  msgstr "Highest rated"
1378
952
 
1379
- #. @context: Settings subsection heading for home page settings
1380
- #: src/ui/dash/settings/GeneralContent.tsx
1381
- msgid "Home"
1382
- msgstr "Home"
1383
-
1384
- #. @context: Toast after saving home default view setting
1385
- #: src/ui/dash/appearance/NavigationContent.tsx
1386
- msgid "Home feed updated."
1387
- msgstr "Home feed updated."
1388
-
1389
953
  #. @context: Description for the apple touch icon asset card
1390
954
  #: src/ui/pages/BrandPage.tsx
1391
955
  msgid "Home screen icon for iPhone and iPad shortcuts."
1392
956
  msgstr "Home screen icon for iPhone and iPad shortcuts."
1393
957
 
1394
- #. @context: Toast after auto-saving home settings
1395
- #: src/routes/dash/settings.tsx
1396
- msgid "Home settings updated."
1397
- msgstr "Home settings updated."
1398
-
1399
- #. @context: Generic hosted auth provider label when no explicit provider name is configured
1400
- #: src/ui/dash/settings/AccountMenuContent.tsx
1401
- msgid "Hosted account"
1402
- msgstr "Hosted account"
1403
-
1404
- #. @context: Confirmation phrase the user must type to delete their account. {siteName} is the blog name.
1405
- #: src/ui/dash/settings/DeleteAccountContent.tsx
1406
- msgid "I want to delete {siteName}"
1407
- msgstr "I want to delete {siteName}"
1408
-
1409
958
  #. @context: Section kicker for the icon and preview downloads section
1410
959
  #: src/ui/pages/BrandPage.tsx
1411
960
  msgid "Icons and previews"
@@ -1426,16 +975,16 @@ msgstr "If this page feels too branded, the first place to soften is the default
1426
975
  msgid "Images"
1427
976
  msgstr "Images"
1428
977
 
1429
- #. @context: Link to the thread root from a post footer
1430
- #: src/ui/shared/PostFooter.tsx
1431
- msgid "In thread →"
1432
- msgstr "In thread →"
1433
-
1434
978
  #. @context: Accessible label for the asset keyword list on the public brand page
1435
979
  #: src/ui/pages/BrandPage.tsx
1436
980
  msgid "Included assets"
1437
981
  msgstr "Included assets"
1438
982
 
983
+ #. @context: Label above the included collections list on an aggregate collection page
984
+ #: src/ui/pages/CollectionPage.tsx
985
+ msgid "Includes"
986
+ msgstr "Includes"
987
+
1439
988
  #. @context: Site accent sample badge
1440
989
  #: src/ui/pages/ThemeSamplePage.tsx
1441
990
  msgid "Inline emphasis"
@@ -1461,6 +1010,13 @@ msgstr "Interfaces for reading should guide the eye, not keep asking for attenti
1461
1010
  msgid "iOS home screen"
1462
1011
  msgstr "iOS home screen"
1463
1012
 
1013
+ #. @context: test fixture — not shipped anywhere
1014
+ #. @context: test fixture — not shipped anywhere
1015
+ #: src/i18n/__tests__/fallback.test.ts
1016
+ #: src/i18n/__tests__/fallback.test.ts
1017
+ msgid "Jant fallback canary string"
1018
+ msgstr "Jant fallback canary string"
1019
+
1464
1020
  #. @context: Accessible label for the Jant logo mark
1465
1021
  #: src/ui/pages/BrandPage.tsx
1466
1022
  msgid "Jant logo"
@@ -1486,8 +1042,8 @@ msgstr "Keep the artwork unchanged."
1486
1042
  msgid "Keep this link under 200 characters."
1487
1043
  msgstr "Keep this link under 200 characters."
1488
1044
 
1489
- #. @context: Nav item label field
1490
- #: src/ui/dash/appearance/NavigationContent.tsx
1045
+ #. @context: Field label for a custom collections link
1046
+ #: src/ui/shared/collection-management-labels.ts
1491
1047
  msgid "Label"
1492
1048
  msgstr "Label"
1493
1049
 
@@ -1496,66 +1052,26 @@ msgstr "Label"
1496
1052
  msgid "Label (optional)"
1497
1053
  msgstr "Label (optional)"
1498
1054
 
1499
- #. @context: Error toast when nav link fields are empty
1500
- #: src/ui/dash/appearance/NavigationContent.tsx
1501
- msgid "Label and URL are required"
1502
- msgstr "Label and URL are required"
1503
-
1504
- #. @context: Error toast when nav label is empty
1505
- #: src/ui/dash/appearance/NavigationContent.tsx
1506
- msgid "Label is required"
1507
- msgstr "Label is required"
1508
-
1509
- #. @context: Settings form field
1510
- #: src/ui/dash/settings/GeneralContent.tsx
1511
- msgid "Language"
1512
- msgstr "Language"
1513
-
1514
- #. @context: Settings subsection heading for language and time zone fields
1515
- #: src/ui/dash/settings/GeneralContent.tsx
1516
- msgid "Language & Time"
1517
- msgstr "Language & Time"
1518
-
1519
- #. @context: Toast after saving language and time settings
1520
- #: src/routes/dash/settings.tsx
1521
- msgid "Language and time updated."
1522
- msgstr "Language and time updated."
1523
-
1524
- #. @context: Token last used date
1525
- #. placeholder {0}: formatDate(token.lastUsedAt)
1526
- #: src/ui/dash/settings/ApiTokensContent.tsx
1527
- msgid "Last used {0}"
1528
- msgstr "Last used {0}"
1529
-
1530
1055
  #. @context: Active browse tab label on sample page
1531
- #. @context: Browse filter for latest posts
1532
- #. @context: Browse filter label
1533
- #. @context: Browse filter label
1534
- #. @context: Browse filter label for latest posts
1535
1056
  #. @context: Browser page title for the latest feed
1536
1057
  #. @context: Browser page title for the latest feed
1537
1058
  #. @context: Page heading for the latest posts feed
1538
- #. @context: Select option for using latest posts as the main RSS feed
1539
1059
  #: src/routes/pages/home.tsx
1540
1060
  #: src/routes/pages/latest.tsx
1541
- #: src/ui/dash/appearance/NavigationContent.tsx
1542
- #: src/ui/dash/appearance/NavigationContent.tsx
1543
- #: src/ui/dash/appearance/NavigationContent.tsx
1544
- #: src/ui/dash/settings/GeneralContent.tsx
1545
- #: src/ui/layouts/SiteLayout.tsx
1546
1061
  #: src/ui/pages/HomePage.tsx
1547
1062
  #: src/ui/pages/ThemeSamplePage.tsx
1548
1063
  msgid "Latest"
1549
1064
  msgstr "Latest"
1550
1065
 
1551
- #. @context: Label for the explicit latest RSS feed URL
1552
- #: src/ui/dash/settings/GeneralContent.tsx
1553
- msgid "Latest feed"
1554
- msgstr "Latest feed"
1066
+ #. @context: Built-in navigation label for the latest feed
1067
+ #: src/ui/shared/navigation-labels.ts
1068
+ msgctxt "nav"
1069
+ msgid "Latest"
1070
+ msgstr "Latest"
1555
1071
 
1556
- #. @context: RSS and Atom feed title suffix for the latest public posts feed
1557
- #. @context: RSS autodiscovery title for the latest public posts feed
1558
- #: src/routes/feed/rss.ts
1072
+ #. @context: Atom feed title suffix for the latest public posts feed
1073
+ #. @context: Feed autodiscovery title for the latest public posts feed
1074
+ #: src/routes/feed/feed.ts
1559
1075
  #: src/ui/layouts/BaseLayout.tsx
1560
1076
  msgid "Latest posts"
1561
1077
  msgstr "Latest posts"
@@ -1565,32 +1081,37 @@ msgstr "Latest posts"
1565
1081
  msgid "Leave blank to generate one automatically."
1566
1082
  msgstr "Leave blank to generate one automatically."
1567
1083
 
1568
- #. @context: Suffix after Custom CSS link on color theme page
1569
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1570
- msgid "lets you override any theme variable."
1571
- msgstr "lets you override any theme variable."
1084
+ #. @context: Compose publish settings help text for publish date
1085
+ #: src/ui/compose/ComposeDialog.tsx
1086
+ msgid "Leave blank to publish now. Use an earlier date when importing older posts."
1087
+ msgstr "Leave blank to publish now. Use an earlier date when importing older posts."
1572
1088
 
1573
- #. @context: Theme mode option label
1574
1089
  #. @context: Theme mode option on sample page
1575
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1576
1090
  #: src/ui/pages/ThemeSamplePage.tsx
1577
1091
  msgid "Light"
1578
1092
  msgstr "Light"
1579
1093
 
1580
- #. @context: Nav item type badge
1581
- #: src/ui/dash/appearance/NavigationContent.tsx
1582
- msgid "link"
1583
- msgstr "link"
1584
-
1585
1094
  #. @context: Compose format tab
1586
- #. @context: Post format badge - link
1095
+ #. @context: Default type label for a custom link on the collections directory when no description is provided
1096
+ #. @context: Placeholder for the custom collections link description editor, shown on the directory when no description is provided
1587
1097
  #. @context: Post format label - link
1588
1098
  #: src/ui/compose/ComposeDialog.tsx
1589
- #: src/ui/dash/FormatBadge.tsx
1590
1099
  #: src/ui/pages/ArchivePage.tsx
1100
+ #: src/ui/shared/collection-management-labels.ts
1101
+ #: src/ui/shared/CollectionDirectory.tsx
1591
1102
  msgid "Link"
1592
1103
  msgstr "Link"
1593
1104
 
1105
+ #. @context: Toast after creating a custom collections link
1106
+ #: src/ui/shared/collection-management-labels.ts
1107
+ msgid "Link added."
1108
+ msgstr "Link added."
1109
+
1110
+ #. @context: Toast after deleting a custom collections link
1111
+ #: src/ui/shared/collection-management-labels.ts
1112
+ msgid "Link removed."
1113
+ msgstr "Link removed."
1114
+
1594
1115
  #. @context: Description for the archive system navigation toggle
1595
1116
  #: src/ui/shared/navigation-labels.ts
1596
1117
  msgid "Link to the post archive"
@@ -1601,7 +1122,24 @@ msgstr "Link to the post archive"
1601
1122
  msgid "Link to your collections page"
1602
1123
  msgstr "Link to your collections page"
1603
1124
 
1125
+ #. @context: Description for the featured system navigation toggle
1126
+ #: src/ui/shared/navigation-labels.ts
1127
+ msgid "Link to your featured posts. If it comes before Latest, the homepage opens here."
1128
+ msgstr "Link to your featured posts. If it comes before Latest, the homepage opens here."
1129
+
1130
+ #. @context: Description for the latest system navigation toggle
1131
+ #: src/ui/shared/navigation-labels.ts
1132
+ msgid "Link to your latest posts. If it comes before Featured, the homepage opens here."
1133
+ msgstr "Link to your latest posts. If it comes before Featured, the homepage opens here."
1134
+
1135
+ #. @context: Toast after saving a custom collections link
1136
+ #: src/ui/shared/collection-management-labels.ts
1137
+ msgid "Link updated."
1138
+ msgstr "Link updated."
1139
+
1140
+ #. @context: Archive feed title segment for link format filter
1604
1141
  #. @context: Post format label plural - links
1142
+ #: src/routes/pages/archive.tsx
1605
1143
  #: src/ui/pages/ArchivePage.tsx
1606
1144
  msgid "Links"
1607
1145
  msgstr "Links"
@@ -1611,16 +1149,6 @@ msgstr "Links"
1611
1149
  msgid "Links should read clearly without glowing against the page."
1612
1150
  msgstr "Links should read clearly without glowing against the page."
1613
1151
 
1614
- #. @context: Label for max visible nav links number input
1615
- #: src/ui/dash/appearance/NavigationContent.tsx
1616
- msgid "Links shown in header"
1617
- msgstr "Links shown in header"
1618
-
1619
- #. @context: Label for list posts curl example
1620
- #: src/ui/dash/settings/ApiTokensContent.tsx
1621
- msgid "List posts:"
1622
- msgstr "List posts:"
1623
-
1624
1152
  #. @context: Inline link label in the sample note post body
1625
1153
  #. @context: Inline link label in the sample note summary
1626
1154
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1633,6 +1161,11 @@ msgstr "live theme controls"
1633
1161
  msgid "Load more"
1634
1162
  msgstr "Load more"
1635
1163
 
1164
+ #. @context: Status text while opening the post editor
1165
+ #: src/ui/compose/ComposeDialog.tsx
1166
+ msgid "Loading post..."
1167
+ msgstr "Loading post..."
1168
+
1636
1169
  #. @context: Asset keyword on the public brand asset page
1637
1170
  #. @context: Asset keyword on the public brand asset page
1638
1171
  #. @context: Title for the default logo asset card
@@ -1654,87 +1187,44 @@ msgstr "Logos"
1654
1187
  msgid "Look at the footer metadata last, to make sure the accent is not fighting the typography."
1655
1188
  msgstr "Look at the footer metadata last, to make sure the accent is not fighting the typography."
1656
1189
 
1657
- #. @context: Theme group description on color theme settings page
1658
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1659
- msgid "Low-distraction palettes for a cleaner, calmer reading rhythm."
1660
- msgstr "Low-distraction palettes for a cleaner, calmer reading rhythm."
1661
-
1662
- #. @context: Label for the canonical /feed URL
1663
- #. @context: RSS autodiscovery title for the site's main feed
1664
- #: src/ui/dash/settings/GeneralContent.tsx
1190
+ #. @context: Feed autodiscovery title for the site's main feed
1665
1191
  #: src/ui/layouts/BaseLayout.tsx
1666
1192
  msgid "Main feed"
1667
1193
  msgstr "Main feed"
1668
1194
 
1669
- #. @context: Settings field label for the canonical /feed output
1670
- #: src/ui/dash/settings/GeneralContent.tsx
1671
- msgid "Main RSS feed"
1672
- msgstr "Main RSS feed"
1673
-
1674
- #. @context: Settings item description for hosted account management in the connected provider
1675
- #: src/ui/dash/settings/AccountMenuContent.tsx
1676
- msgid "Manage password and hosted access in {providerLabel}"
1677
- msgstr "Manage password and hosted access in {providerLabel}"
1678
-
1679
- #. @context: Intro text on the account settings menu page below the title
1680
- #: src/ui/dash/settings/AccountMenuContent.tsx
1681
- msgid "Manage sign-in security, exports, and irreversible actions."
1682
- msgstr "Manage sign-in security, exports, and irreversible actions."
1683
-
1684
- #. @context: Intro text on the hosted account settings menu page below the title
1685
- #: src/ui/dash/settings/AccountMenuContent.tsx
1686
- msgid "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
1687
- msgstr "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
1688
-
1689
- #. @context: Color theme preview date label
1690
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1691
- msgid "March 14"
1692
- msgstr "March 14"
1693
-
1694
1195
  #. @context: Date label on theme sample content card
1695
1196
  #: src/ui/pages/ThemeSamplePage.tsx
1696
1197
  msgid "March 15"
1697
1198
  msgstr "March 15"
1698
1199
 
1699
- #. @context: Placeholder hint for markdown-enabled textareas
1700
- #: src/ui/dash/settings/GeneralContent.tsx
1701
- msgid "Markdown supported"
1702
- msgstr "Markdown supported"
1703
-
1704
1200
  #. @context: Compose toolbar - media tooltip
1705
1201
  #: src/ui/compose/ComposeDialog.tsx
1706
1202
  msgid "Media"
1707
1203
  msgstr "Media"
1708
1204
 
1205
+ #. @context: Hamburger menu button label
1206
+ #: src/ui/layouts/SiteLayout.tsx
1207
+ msgid "Menu"
1208
+ msgstr "Menu"
1209
+
1210
+ #. @context: Built-in navigation label for the More dropdown
1211
+ #: src/ui/shared/navigation-labels.ts
1212
+ msgctxt "nav"
1213
+ msgid "More"
1214
+ msgstr "More"
1215
+
1709
1216
  #. @context: Aria-label for collections page more button
1710
- #. @context: Button label for a menu with more actions
1711
- #. @context: Post menu trigger label in the post footer
1712
- #: src/routes/dash/custom-urls.tsx
1217
+ #. @context: Post menu trigger label in post actions
1713
1218
  #: src/ui/shared/collection-management-labels.ts
1714
1219
  #: src/ui/shared/PostFooter.tsx
1715
1220
  msgid "More actions"
1716
1221
  msgstr "More actions"
1717
1222
 
1718
- #. @context: Theme group description on color theme settings page
1719
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1720
- msgid "More atmospheric palettes with a stronger sense of time, place, or tone."
1721
- msgstr "More atmospheric palettes with a stronger sense of time, place, or tone."
1722
-
1723
- #. @context: Button to show overflow nav links
1724
- #: src/ui/layouts/SiteLayout.tsx
1725
- msgid "More links"
1726
- msgstr "More links"
1727
-
1728
1223
  #. @context: Helper text in the quick-create collection dialog
1729
1224
  #: src/ui/shared/collection-management-labels.ts
1730
1225
  msgid "More options are available after you create it."
1731
1226
  msgstr "More options are available after you create it."
1732
1227
 
1733
- #. @context: Fallback theme group heading on color theme page
1734
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1735
- msgid "More Palettes"
1736
- msgstr "More Palettes"
1737
-
1738
1228
  #. @context: Secondary badge label on sample page
1739
1229
  #. @context: Token label on sample page
1740
1230
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1747,38 +1237,11 @@ msgstr "Muted"
1747
1237
  msgid "My Collection"
1748
1238
  msgstr "My Collection"
1749
1239
 
1750
- #. @context: Settings item description for general
1751
- #: src/ui/dash/settings/SettingsRootContent.tsx
1752
- msgid "Name, metadata, language, and search defaults"
1753
- msgstr "Name, metadata, language, and search defaults"
1754
-
1755
- #. @context: Settings item — navigation settings
1756
- #: src/ui/dash/settings/SettingsRootContent.tsx
1757
- msgid "Navigation"
1758
- msgstr "Navigation"
1759
-
1760
1240
  #. @context: Navigation section heading on sample page
1761
1241
  #: src/ui/pages/ThemeSamplePage.tsx
1762
1242
  msgid "Navigation and reading states"
1763
1243
  msgstr "Navigation and reading states"
1764
1244
 
1765
- #. @context: Section heading for nav items
1766
- #: src/ui/dash/appearance/NavigationContent.tsx
1767
- msgid "Navigation items"
1768
- msgstr "Navigation items"
1769
-
1770
- #. @context: Toast after saving navigation item order
1771
- #: src/ui/dash/appearance/NavigationContent.tsx
1772
- msgid "Navigation order updated."
1773
- msgstr "Navigation order updated."
1774
-
1775
- #. @context: Label for nav preview section
1776
- #. @context: Label for nav preview section
1777
- #: src/ui/dash/appearance/NavigationContent.tsx
1778
- #: src/ui/dash/appearance/NavigationContent.tsx
1779
- msgid "Navigation Preview"
1780
- msgstr "Navigation Preview"
1781
-
1782
1245
  #. @context: Button to create a collection from collections page
1783
1246
  #. @context: Page title for new collection
1784
1247
  #. @context: Page title for new collection
@@ -1788,36 +1251,37 @@ msgstr "Navigation Preview"
1788
1251
  msgid "New Collection"
1789
1252
  msgstr "New Collection"
1790
1253
 
1791
- #. @context: Button to create new custom URL
1792
- #. @context: Button to create new custom URL
1793
- #. @context: Page heading
1794
- #: src/routes/dash/custom-urls.tsx
1795
- #: src/routes/dash/custom-urls.tsx
1796
- #: src/routes/dash/custom-urls.tsx
1797
- msgid "New Custom URL"
1798
- msgstr "New Custom URL"
1799
-
1800
1254
  #. @context: Menu action to create a divider on collections page
1801
1255
  #: src/ui/shared/CollectionsManager.tsx
1802
1256
  msgid "New Divider"
1803
1257
  msgstr "New Divider"
1804
1258
 
1805
- #. @context: Password form field
1259
+ #. @context: Menu action to create a custom link on collections page
1260
+ #: src/ui/shared/CollectionsManager.tsx
1261
+ msgid "New Link"
1262
+ msgstr "New Link"
1263
+
1806
1264
  #. @context: Password reset form field
1807
1265
  #: src/routes/auth/reset.tsx
1808
- #: src/ui/dash/settings/AccountContent.tsx
1809
1266
  msgid "New Password"
1810
1267
  msgstr "New Password"
1811
1268
 
1812
1269
  #. @context: Browser page title for the new post page
1813
1270
  #. @context: Collection page quick compose button aria label
1271
+ #. @context: Mobile floating action button label to open the compose dialog
1814
1272
  #. @context: Page title for the new post page
1815
1273
  #: src/routes/pages/new.tsx
1274
+ #: src/ui/layouts/SiteLayout.tsx
1816
1275
  #: src/ui/pages/CollectionPage.tsx
1817
1276
  #: src/ui/pages/ComposePage.tsx
1818
1277
  msgid "New post"
1819
1278
  msgstr "New post"
1820
1279
 
1280
+ #. @context: Compose dialog header title when composing a thread
1281
+ #: src/ui/compose/ComposeDialog.tsx
1282
+ msgid "New Thread"
1283
+ msgstr "New Thread"
1284
+
1821
1285
  #. @context: Collection sort order option
1822
1286
  #. @context: Collection sort order option
1823
1287
  #: src/ui/pages/CollectionPage.tsx
@@ -1834,11 +1298,6 @@ msgstr "Newest first"
1834
1298
  msgid "Next"
1835
1299
  msgstr "Next"
1836
1300
 
1837
- #. @context: Empty state when no sessions exist (shouldn't normally appear)
1838
- #: src/ui/dash/settings/SessionsContent.tsx
1839
- msgid "No active sessions right now. Signed-in devices show up here."
1840
- msgstr "No active sessions right now. Signed-in devices show up here."
1841
-
1842
1301
  #. @context: Compose collection combobox empty state when search has no results
1843
1302
  #: src/ui/compose/ComposeDialog.tsx
1844
1303
  msgid "No collections match that search. Try a different name."
@@ -1853,28 +1312,16 @@ msgstr "No collections match that search. Try a different name."
1853
1312
  msgid "No collections yet. Start one to organize posts by topic."
1854
1313
  msgstr "No collections yet. Start one to organize posts by topic."
1855
1314
 
1856
- #. @context: Empty state message
1857
- #: src/routes/dash/custom-urls.tsx
1858
- msgid "No custom URLs yet. Create one to add redirects or custom paths for posts."
1859
- msgstr "No custom URLs yet. Create one to add redirects or custom paths for posts."
1860
-
1861
1315
  #. @context: Drafts panel empty state
1862
1316
  #: src/ui/compose/ComposeDialog.tsx
1863
1317
  msgid "No drafts yet. Save a draft to find it here."
1864
1318
  msgstr "No drafts yet. Save a draft to find it here."
1865
1319
 
1866
- #. @context: Error toast when no file was selected for upload
1867
1320
  #. @context: Error when no file was selected for upload
1868
1321
  #: src/routes/api/upload.ts
1869
- #: src/routes/dash/settings.tsx
1870
1322
  msgid "No file selected. Choose a file to upload."
1871
1323
  msgstr "No file selected. Choose a file to upload."
1872
1324
 
1873
- #. @context: Empty state for navigation items
1874
- #: src/ui/dash/appearance/NavigationContent.tsx
1875
- msgid "No navigation items yet. Add links or enable system items below."
1876
- msgstr "No navigation items yet. Add links or enable system items below."
1877
-
1878
1325
  #. @context: Search empty results
1879
1326
  #: src/ui/pages/SearchPage.tsx
1880
1327
  msgid "No results. Try different keywords."
@@ -1885,14 +1332,10 @@ msgstr "No results. Try different keywords."
1885
1332
  msgid "No threads match these filters. Try adjusting your selection or clear all filters."
1886
1333
  msgstr "No threads match these filters. Try adjusting your selection or clear all filters."
1887
1334
 
1888
- #. @context: Color theme preview format label
1889
1335
  #. @context: Compose format tab
1890
- #. @context: Post format badge - note
1891
1336
  #. @context: Post format label - note
1892
1337
  #. @context: Post format label on theme sample content card
1893
1338
  #: src/ui/compose/ComposeDialog.tsx
1894
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1895
- #: src/ui/dash/FormatBadge.tsx
1896
1339
  #: src/ui/pages/ArchivePage.tsx
1897
1340
  #: src/ui/pages/ThemeSamplePage.tsx
1898
1341
  msgid "Note"
@@ -1903,7 +1346,9 @@ msgstr "Note"
1903
1346
  msgid "note treatment"
1904
1347
  msgstr "note treatment"
1905
1348
 
1349
+ #. @context: Archive feed title segment for note format filter
1906
1350
  #. @context: Post format label plural - notes
1351
+ #: src/routes/pages/archive.tsx
1907
1352
  #: src/ui/pages/ArchivePage.tsx
1908
1353
  msgid "Notes"
1909
1354
  msgstr "Notes"
@@ -1913,6 +1358,11 @@ msgstr "Notes"
1913
1358
  msgid "Nothing here yet."
1914
1359
  msgstr "Nothing here yet."
1915
1360
 
1361
+ #. @context: Empty state message on an aggregate collection page
1362
+ #: src/ui/pages/CollectionPage.tsx
1363
+ msgid "Nothing here yet. Add posts to one of these collections to fill this view."
1364
+ msgstr "Nothing here yet. Add posts to one of these collections to fill this view."
1365
+
1916
1366
  #. @context: Empty state message on featured page
1917
1367
  #: src/ui/pages/FeaturedPage.tsx
1918
1368
  msgid "Nothing in Featured yet. Mark a post as featured to show it here."
@@ -1955,11 +1405,6 @@ msgstr "Open raw PNG"
1955
1405
  msgid "Open raw SVG"
1956
1406
  msgstr "Open raw SVG"
1957
1407
 
1958
- #. @context: Settings item description for the hosted delete-site entry in the account menu
1959
- #: src/ui/dash/settings/AccountMenuContent.tsx
1960
- msgid "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1961
- msgstr "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1962
-
1963
1408
  #. @context: Menu action to organize collections
1964
1409
  #: src/ui/shared/CollectionsManager.tsx
1965
1410
  msgid "Organize"
@@ -1970,42 +1415,18 @@ msgstr "Organize"
1970
1415
  msgid "Outline"
1971
1416
  msgstr "Outline"
1972
1417
 
1973
- #. @context: Settings item description for color theme
1974
- #: src/ui/dash/settings/SettingsRootContent.tsx
1975
- msgid "Palette, surface tone, and overall mood"
1976
- msgstr "Palette, surface tone, and overall mood"
1977
-
1978
- #. @context: Theme group description on color theme settings page
1979
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1980
- msgid "Paper-first palettes with warmer surfaces and a softer, handwritten feel."
1981
- msgstr "Paper-first palettes with warmer surfaces and a softer, handwritten feel."
1982
-
1983
- #. @context: Settings item — password settings
1984
1418
  #. @context: Setup/signin form field - password
1985
1419
  #. @context: Setup/signin form field - password
1986
1420
  #: src/routes/auth/setup.tsx
1987
1421
  #: src/routes/auth/signin.tsx
1988
- #: src/ui/dash/settings/AccountMenuContent.tsx
1989
1422
  msgid "Password"
1990
1423
  msgstr "Password"
1991
1424
 
1992
- #. @context: Toast after changing account password
1993
- #: src/routes/dash/settings.tsx
1994
- msgid "Password changed."
1995
- msgstr "Password changed."
1996
-
1997
- #. @context: Error shown when password changes are blocked in demo mode
1998
1425
  #. @context: Error shown when password reset is blocked in demo mode
1999
1426
  #: src/routes/auth/reset.tsx
2000
- #: src/routes/dash/settings.tsx
2001
1427
  msgid "Password changes are off in demo mode. Sign in with the shared demo credentials."
2002
1428
  msgstr "Password changes are off in demo mode. Sign in with the shared demo credentials."
2003
1429
 
2004
- #. @context: Error toast when new password and confirmation differ
2005
- #: src/routes/dash/settings.tsx
2006
- msgid "Passwords don't match. Make sure both fields are identical."
2007
- msgstr "Passwords don't match. Make sure both fields are identical."
2008
-
2009
1430
  #. @context: Attached text placeholder
2010
1431
  #: src/ui/compose/ComposeDialog.tsx
2011
1432
  msgid ""
@@ -2022,26 +1443,7 @@ msgstr ""
2022
1443
  msgid "Paste a URL..."
2023
1444
  msgstr "Paste a URL..."
2024
1445
 
2025
- #. @context: Custom URL form field
2026
- #: src/routes/dash/custom-urls.tsx
2027
- msgid "Path"
2028
- msgstr "Path"
2029
-
2030
- #. @context: Settings item description for account deletion
2031
- #: src/ui/dash/settings/AccountMenuContent.tsx
2032
- msgid "Permanently delete all data and reset the blog"
2033
- msgstr "Permanently delete all data and reset the blog"
2034
-
2035
- #. @context: Post badge - pinned
2036
- #: src/ui/dash/StatusBadge.tsx
2037
- msgid "Pinned"
2038
- msgstr "Pinned"
2039
-
2040
1446
  #. @context: Compose button - publish post
2041
- #. @context: Custom URL target type badge for a post
2042
- #. @context: Custom URL type option
2043
- #: src/routes/dash/custom-urls.tsx
2044
- #: src/routes/dash/custom-urls.tsx
2045
1447
  #: src/ui/compose/ComposeDialog.tsx
2046
1448
  msgid "Post"
2047
1449
  msgstr "Post"
@@ -2107,11 +1509,6 @@ msgstr "Primary logo files"
2107
1509
  msgid "Private"
2108
1510
  msgstr "Private"
2109
1511
 
2110
- #. @context: Avatar upload button text while generating favicon variants
2111
- #: src/ui/dash/settings/AvatarContent.tsx
2112
- msgid "Processing..."
2113
- msgstr "Processing..."
2114
-
2115
1512
  #. @context: Archive visibility filter - public posts
2116
1513
  #. @context: Compose publish settings visibility option
2117
1514
  #: src/ui/compose/ComposeDialog.tsx
@@ -2126,18 +1523,23 @@ msgstr "Public"
2126
1523
  msgid "Publish"
2127
1524
  msgstr "Publish"
2128
1525
 
1526
+ #. @context: Compose summary shown near the submit controls when an edited post no longer has a custom publish date
1527
+ #: src/ui/compose/ComposeDialog.tsx
1528
+ msgid "Publish now"
1529
+ msgstr "Publish now"
1530
+
2129
1531
  #. @context: Compose publish settings panel title
2130
1532
  #: src/ui/compose/ComposeDialog.tsx
2131
1533
  msgid "Publish settings"
2132
1534
  msgstr "Publish settings"
2133
1535
 
2134
- #. @context: Post status badge - published
2135
- #: src/ui/dash/StatusBadge.tsx
2136
- msgid "Published"
2137
- msgstr "Published"
1536
+ #. @context: Compose publish settings publish date section label
1537
+ #: src/ui/compose/ComposeDialog.tsx
1538
+ msgid "Published on"
1539
+ msgstr "Published on"
2138
1540
 
2139
1541
  #. @context: Tooltip text for the archive tile published timestamp
2140
- #. @context: Tooltip text for the published timestamp in the post footer
1542
+ #. @context: Tooltip text for the published timestamp in post metadata
2141
1543
  #: src/ui/pages/ArchivePage.tsx
2142
1544
  #: src/ui/shared/PostFooter.tsx
2143
1545
  msgid "Published on {date} at {time}"
@@ -2158,21 +1560,9 @@ msgstr "quiet design"
2158
1560
  msgid "Quiet metadata"
2159
1561
  msgstr "Quiet metadata"
2160
1562
 
2161
- #. @context: Theme group heading on color theme settings page
2162
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2163
- msgid "Quiet Neutral"
2164
- msgstr "Quiet Neutral"
2165
-
2166
- #. @context: Color theme preview card secondary sentence
2167
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2168
- msgid "Quiet surfaces let writing lead."
2169
- msgstr "Quiet surfaces let writing lead."
2170
-
2171
1563
  #. @context: Compose format tab
2172
- #. @context: Post format badge - quote
2173
1564
  #. @context: Post format label - quote
2174
1565
  #: src/ui/compose/ComposeDialog.tsx
2175
- #: src/ui/dash/FormatBadge.tsx
2176
1566
  #: src/ui/pages/ArchivePage.tsx
2177
1567
  msgid "Quote"
2178
1568
  msgstr "Quote"
@@ -2182,8 +1572,12 @@ msgstr "Quote"
2182
1572
  msgid "Quoted or highlighted passages should feel like annotations, not warnings."
2183
1573
  msgstr "Quoted or highlighted passages should feel like annotations, not warnings."
2184
1574
 
1575
+ #. @context: Archive feed title segment for quote format filter
1576
+ #. @context: Placeholder for the custom collections link label
2185
1577
  #. @context: Post format label plural - quotes
1578
+ #: src/routes/pages/archive.tsx
2186
1579
  #: src/ui/pages/ArchivePage.tsx
1580
+ #: src/ui/shared/collection-management-labels.ts
2187
1581
  msgid "Quotes"
2188
1582
  msgstr "Quotes"
2189
1583
 
@@ -2202,11 +1596,6 @@ msgstr "Read the page from top to bottom without looking at the swatches."
2202
1596
  msgid "Read the palette as content first"
2203
1597
  msgstr "Read the palette as content first"
2204
1598
 
2205
- #. @context: Color theme preview inline link label
2206
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2207
- msgid "Read why"
2208
- msgstr "Read why"
2209
-
2210
1599
  #. @context: Collection tag on sample quote post
2211
1600
  #: src/ui/pages/ThemeSamplePage.tsx
2212
1601
  msgid "Reading"
@@ -2217,35 +1606,11 @@ msgstr "Reading"
2217
1606
  msgid "Real post components"
2218
1607
  msgstr "Real post components"
2219
1608
 
2220
- #. @context: Custom URL target type badge for a redirect
2221
- #. @context: Custom URL type option
2222
- #: src/routes/dash/custom-urls.tsx
2223
- #: src/routes/dash/custom-urls.tsx
2224
- msgid "Redirect"
2225
- msgstr "Redirect"
2226
-
2227
- #. @context: Redirect type field
2228
- #: src/routes/dash/custom-urls.tsx
2229
- msgid "Redirect Type"
2230
- msgstr "Redirect Type"
2231
-
2232
- #. @context: Settings item description for custom URLs
2233
- #: src/ui/dash/settings/SettingsRootContent.tsx
2234
- msgid "Redirects, vanity paths, and URL control"
2235
- msgstr "Redirects, vanity paths, and URL control"
2236
-
2237
1609
  #. @context: Collection tag on sample link post
2238
1610
  #: src/ui/pages/ThemeSamplePage.tsx
2239
1611
  msgid "References"
2240
1612
  msgstr "References"
2241
1613
 
2242
- #. @context: Button to remove the blog avatar
2243
- #. @context: Remove system item from navigation
2244
- #: src/ui/dash/appearance/NavigationContent.tsx
2245
- #: src/ui/dash/settings/AvatarContent.tsx
2246
- msgid "Remove"
2247
- msgstr "Remove"
2248
-
2249
1614
  #. @context: Button to remove an uploaded attachment in compose
2250
1615
  #: src/ui/compose/ComposeDialog.tsx
2251
1616
  msgid "Remove attachment"
@@ -2256,6 +1621,16 @@ msgstr "Remove attachment"
2256
1621
  msgid "Remove Divider"
2257
1622
  msgstr "Remove Divider"
2258
1623
 
1624
+ #. @context: Delete custom link action on collections page
1625
+ #: src/ui/shared/collection-management-labels.ts
1626
+ msgid "Remove Link"
1627
+ msgstr "Remove Link"
1628
+
1629
+ #. @context: Confirm dialog for deleting a custom collections link
1630
+ #: src/ui/shared/collection-management-labels.ts
1631
+ msgid "Remove this link from Collections? The destination won't change."
1632
+ msgstr "Remove this link from Collections? The destination won't change."
1633
+
2259
1634
  #. @context: Archive tile label for multiple thread replies
2260
1635
  #: src/ui/pages/ArchivePage.tsx
2261
1636
  msgid "Replies"
@@ -2270,6 +1645,11 @@ msgstr "Replies"
2270
1645
  msgid "Reply"
2271
1646
  msgstr "Reply"
2272
1647
 
1648
+ #. @context: Compose publish settings switch label — reply without bumping thread to top of timeline
1649
+ #: src/ui/compose/ComposeDialog.tsx
1650
+ msgid "Reply quietly"
1651
+ msgstr "Reply quietly"
1652
+
2273
1653
  #. @context: Button to restore the automatically generated collection link from the title
2274
1654
  #. @context: Compose custom slug action that clears the manual slug and falls back to automatic generation
2275
1655
  #: src/ui/compose/ComposeDialog.tsx
@@ -2295,29 +1675,21 @@ msgstr "Reset Password"
2295
1675
  msgid "Reverse logo"
2296
1676
  msgstr "Reverse logo"
2297
1677
 
2298
- #. @context: Button to revoke API token
2299
- #. @context: Button to revoke a session
2300
- #: src/ui/dash/settings/ApiTokensContent.tsx
2301
- #: src/ui/dash/settings/SessionsContent.tsx
2302
- msgid "Revoke"
2303
- msgstr "Revoke"
1678
+ #. @context: Tooltip for the RSS feed link on a collection page
1679
+ #: src/ui/pages/CollectionPage.tsx
1680
+ msgid "RSS feed"
1681
+ msgstr "RSS feed"
2304
1682
 
2305
- #. @context: Confirm dialog for revoking API token
2306
- #: src/ui/dash/settings/ApiTokensContent.tsx
2307
- msgid "Revoke this token? Any scripts using it will stop working."
2308
- msgstr "Revoke this token? Any scripts using it will stop working."
1683
+ #. @context: Tooltip for the RSS feed button on the archive page
1684
+ #: src/ui/pages/ArchivePage.tsx
1685
+ msgid "RSS feed for this view"
1686
+ msgstr "RSS feed for this view"
2309
1687
 
2310
1688
  #. @context: Button to save collection
2311
- #. @context: Button to save settings
2312
- #. @context: Button to save settings changes
2313
1689
  #. @context: Confirm action sheet - save text attachment changes button
2314
1690
  #. @context: Confirm close action sheet - save draft button
2315
- #. @context: Save nav item changes
2316
1691
  #: src/ui/compose/ComposeDialog.tsx
2317
1692
  #: src/ui/compose/ComposeDialog.tsx
2318
- #: src/ui/dash/appearance/NavigationContent.tsx
2319
- #: src/ui/dash/settings/AvatarContent.tsx
2320
- #: src/ui/dash/settings/GeneralContent.tsx
2321
1693
  #: src/ui/shared/collection-management-labels.ts
2322
1694
  msgid "Save"
2323
1695
  msgstr "Save"
@@ -2332,11 +1704,6 @@ msgstr "Save as draft"
2332
1704
  msgid "Save as Draft"
2333
1705
  msgstr "Save as Draft"
2334
1706
 
2335
- #. @context: Button to save custom CSS
2336
- #: src/ui/dash/appearance/AdvancedContent.tsx
2337
- msgid "Save CSS"
2338
- msgstr "Save CSS"
2339
-
2340
1707
  #. @context: Secondary button label on sample page
2341
1708
  #: src/ui/pages/ThemeSamplePage.tsx
2342
1709
  msgid "Save draft"
@@ -2367,29 +1734,24 @@ msgstr "Save to drafts to edit and post at a later time."
2367
1734
  msgid "Save to drafts?"
2368
1735
  msgstr "Save to drafts?"
2369
1736
 
2370
- #. @context: Search icon link in browse nav
2371
1737
  #. @context: Search page title
2372
1738
  #. @context: Search submit button
2373
- #. @context: Settings section heading for search engine indexing settings
2374
- #: src/ui/dash/settings/GeneralContent.tsx
2375
- #: src/ui/layouts/SiteLayout.tsx
2376
1739
  #: src/ui/pages/SearchPage.tsx
2377
1740
  #: src/ui/pages/SearchPage.tsx
2378
1741
  msgid "Search"
2379
1742
  msgstr "Search"
2380
1743
 
1744
+ #. @context: Search icon link in browse nav
1745
+ #: src/ui/layouts/SiteLayout.tsx
1746
+ msgctxt "nav"
1747
+ msgid "Search"
1748
+ msgstr "Search"
1749
+
2381
1750
  #. @context: Search input placeholder
2382
1751
  #: src/ui/pages/SearchPage.tsx
2383
1752
  msgid "Search posts..."
2384
1753
  msgstr "Search posts..."
2385
1754
 
2386
- #. @context: Toast after saving search settings
2387
- #. @context: Toast after saving search settings
2388
- #: src/routes/dash/settings.tsx
2389
- #: src/routes/dash/settings.tsx
2390
- msgid "Search settings updated."
2391
- msgstr "Search settings updated."
2392
-
2393
1755
  #. @context: Search snippet label on sample page
2394
1756
  #: src/ui/pages/ThemeSamplePage.tsx
2395
1757
  msgid "Search snippet"
@@ -2400,45 +1762,9 @@ msgstr "Search snippet"
2400
1762
  msgid "Search..."
2401
1763
  msgstr "Search..."
2402
1764
 
2403
- #. @context: Settings group label for account security settings
2404
- #: src/ui/dash/settings/AccountMenuContent.tsx
2405
- msgid "Security"
2406
- msgstr "Security"
2407
-
2408
- #. @context: Error toast when CSRF token is invalid or expired
2409
- #: src/routes/dash/settings.tsx
2410
- msgid "Security token expired. Refresh the page and try again."
2411
- msgstr "Security token expired. Refresh the page and try again."
2412
-
2413
- #. @context: Error toast when CSRF token is missing from delete request
2414
- #: src/routes/dash/settings.tsx
2415
- msgid "Security token missing. Refresh the page and try again."
2416
- msgstr "Security token missing. Refresh the page and try again."
2417
-
2418
- #. @context: Settings item description for sessions
2419
- #: src/ui/dash/settings/AccountMenuContent.tsx
2420
- msgid "See where you're signed in and revoke old sessions"
2421
- msgstr "See where you're signed in and revoke old sessions"
2422
-
2423
- #. @context: Error shown when session management is blocked in demo mode
2424
- #: src/routes/dash/settings.tsx
2425
- msgid "Session management is off in demo mode. Use the shared demo session instead."
2426
- msgstr "Session management is off in demo mode. Use the shared demo session instead."
2427
-
2428
- #. @context: Settings item — session management
2429
- #: src/ui/dash/settings/AccountMenuContent.tsx
2430
- msgid "Sessions"
2431
- msgstr "Sessions"
2432
-
2433
- #. @context: Settings item description for account settings on the settings home page
2434
- #: src/ui/dash/settings/SettingsRootContent.tsx
2435
- msgid "Sessions, password, export"
2436
- msgstr "Sessions, password, export"
2437
-
2438
1765
  #. @context: Built-in navigation label for settings
2439
- #. @context: Page title for the settings home page
2440
- #: src/ui/dash/settings/SettingsRootContent.tsx
2441
1766
  #: src/ui/shared/navigation-labels.ts
1767
+ msgctxt "nav"
2442
1768
  msgid "Settings"
2443
1769
  msgstr "Settings"
2444
1770
 
@@ -2447,11 +1773,6 @@ msgstr "Settings"
2447
1773
  msgid "Shared links"
2448
1774
  msgstr "Shared links"
2449
1775
 
2450
- #. @context: Checkbox for showing the optional Jant credit link on the home page
2451
- #: src/ui/dash/settings/GeneralContent.tsx
2452
- msgid "Show \"Build with Jant\" at the bottom of the home page"
2453
- msgstr "Show \"Build with Jant\" at the bottom of the home page"
2454
-
2455
1776
  #. @context: Button to collapse expanded thread context
2456
1777
  #. @context: Collapse reply context
2457
1778
  #: src/ui/compose/ComposeDialog.tsx
@@ -2473,6 +1794,7 @@ msgstr "Shows 'Settings' when logged in, 'Sign in' when logged out"
2473
1794
 
2474
1795
  #. @context: Built-in navigation label shown when auth is required
2475
1796
  #: src/ui/shared/navigation-labels.ts
1797
+ msgctxt "nav"
2476
1798
  msgid "Sign in"
2477
1799
  msgstr "Sign in"
2478
1800
 
@@ -2485,46 +1807,16 @@ msgstr "Sign in"
2485
1807
  msgid "Sign In"
2486
1808
  msgstr "Sign In"
2487
1809
 
2488
- #. @context: Settings link — sign out action
2489
- #: src/ui/dash/settings/SettingsRootContent.tsx
2490
- msgid "Sign Out"
2491
- msgstr "Sign Out"
2492
-
2493
- #. @context: Session creation date
2494
- #. placeholder {0}: formatDate(session.createdAt)
2495
- #: src/ui/dash/settings/SessionsContent.tsx
2496
- msgid "Signed in {0}"
2497
- msgstr "Signed in {0}"
2498
-
2499
- #. @context: Settings group label for site settings
2500
- #. @context: Settings subsection heading for basic site fields
2501
- #: src/ui/dash/settings/GeneralContent.tsx
2502
- #: src/ui/dash/settings/SettingsRootContent.tsx
2503
- msgid "Site"
2504
- msgstr "Site"
2505
-
2506
1810
  #. @context: Token label on sample page
2507
1811
  #: src/ui/pages/ThemeSamplePage.tsx
2508
1812
  msgid "Site accent"
2509
1813
  msgstr "Site accent"
2510
1814
 
2511
- #. @context: Settings section heading for site footer
2512
- #: src/ui/dash/settings/GeneralContent.tsx
2513
- msgid "Site Footer"
2514
- msgstr "Site Footer"
2515
-
2516
- #. @context: Settings form field
2517
1815
  #. @context: Setup form field - site name
2518
1816
  #: src/routes/auth/setup.tsx
2519
- #: src/ui/dash/settings/GeneralContent.tsx
2520
1817
  msgid "Site Name"
2521
1818
  msgstr "Site Name"
2522
1819
 
2523
- #. @context: Toast after saving site settings
2524
- #: src/routes/dash/settings.tsx
2525
- msgid "Site settings updated."
2526
- msgstr "Site settings updated."
2527
-
2528
1820
  #. @context: Description for the favicon asset card
2529
1821
  #: src/ui/pages/BrandPage.tsx
2530
1822
  msgid "Small browser icon used in tabs and bookmarks."
@@ -2540,11 +1832,6 @@ msgstr "Social preview"
2540
1832
  msgid "Social preview image"
2541
1833
  msgstr "Social preview image"
2542
1834
 
2543
- #. @context: Color theme preview card body sentence
2544
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2545
- msgid "Soft color should still carry a clear reading rhythm."
2546
- msgstr "Soft color should still carry a clear reading rhythm."
2547
-
2548
1835
  #. @context: Toast when uploads fail and post is auto-saved as draft
2549
1836
  #: src/ui/compose/ComposeDialog.tsx
2550
1837
  msgid "Some uploads failed. Saved as draft."
@@ -2554,10 +1841,12 @@ msgstr "Some uploads failed. Saved as draft."
2554
1841
  #. @context: Fallback validation error for password reset form
2555
1842
  #. @context: Fallback validation error for setup form
2556
1843
  #. @context: Fallback validation error for sign-in form
1844
+ #. @context: Fallback validation error for thread compose form
2557
1845
  #: src/routes/auth/reset.tsx
2558
1846
  #: src/routes/auth/setup.tsx
2559
1847
  #: src/routes/auth/signin.tsx
2560
1848
  #: src/routes/compose.tsx
1849
+ #: src/routes/compose.tsx
2561
1850
  msgid "Something doesn't look right. Check the form and try again."
2562
1851
  msgstr "Something doesn't look right. Check the form and try again."
2563
1852
 
@@ -2636,26 +1925,11 @@ msgstr "Switch the palette and mode without opening settings or changing the act
2636
1925
  msgid "Switch to the white logo when the standard green version would lose contrast."
2637
1926
  msgstr "Switch to the white logo when the standard green version would lose contrast."
2638
1927
 
2639
- #. @context: Nav item type badge
2640
- #: src/ui/dash/appearance/NavigationContent.tsx
2641
- msgid "system"
2642
- msgstr "system"
2643
-
2644
- #. @context: Section heading for system nav items
2645
- #: src/ui/dash/appearance/NavigationContent.tsx
2646
- msgid "System links"
2647
- msgstr "System links"
2648
-
2649
1928
  #. @context: Label on failed upload overlay button, tells user tapping retries the upload
2650
1929
  #: src/ui/compose/ComposeDialog.tsx
2651
1930
  msgid "Tap to retry"
2652
1931
  msgstr "Tap to retry"
2653
1932
 
2654
- #. @context: Custom URL target slug field
2655
- #: src/routes/dash/custom-urls.tsx
2656
- msgid "Target Slug"
2657
- msgstr "Target Slug"
2658
-
2659
1933
  #. @context: Archive media filter - posts without any media attachments
2660
1934
  #. @context: Archive media filter - posts without any media attachments
2661
1935
  #: src/ui/pages/ArchivePage.tsx
@@ -2670,16 +1944,6 @@ msgstr "Text"
2670
1944
  msgid "Text attachment"
2671
1945
  msgstr "Text attachment"
2672
1946
 
2673
- #. @context: Error toast when selected font theme is not valid
2674
- #: src/routes/dash/settings.tsx
2675
- msgid "That font theme isn't available. Pick another one."
2676
- msgstr "That font theme isn't available. Pick another one."
2677
-
2678
- #. @context: Error toast when selected theme is not valid
2679
- #: src/routes/dash/settings.tsx
2680
- msgid "That theme isn't available. Pick another one."
2681
- msgstr "That theme isn't available. Pick another one."
2682
-
2683
1947
  #. @context: Blockquote in the sample detail article
2684
1948
  #: src/ui/pages/ThemeSamplePage.tsx
2685
1949
  msgid "The best default color is the one you notice only after reading for a while."
@@ -2690,11 +1954,6 @@ msgstr "The best default color is the one you notice only after reading for a wh
2690
1954
  msgid "The brand pack includes SVG logos, a transparent square PNG, rounded, square, and circle tiles, plus favicon, Apple touch icon, and the default social preview image."
2691
1955
  msgstr "The brand pack includes SVG logos, a transparent square PNG, rounded, square, and circle tiles, plus favicon, Apple touch icon, and the default social preview image."
2692
1956
 
2693
- #. @context: Custom URL path help text
2694
- #: src/routes/dash/custom-urls.tsx
2695
- msgid "The custom URL path (without leading slash)"
2696
- msgstr "The custom URL path (without leading slash)"
2697
-
2698
1957
  #. @context: Plain-text body fallback for the sample note post
2699
1958
  #: src/ui/pages/ThemeSamplePage.tsx
2700
1959
  msgid "The default accent should feel written, not branded."
@@ -2715,21 +1974,11 @@ msgstr "The default accent works best when it reads like a fountain-pen underlin
2715
1974
  msgid "The image should sit quietly inside the article instead of feeling like a card preview."
2716
1975
  msgstr "The image should sit quietly inside the article instead of feeling like a card preview."
2717
1976
 
2718
- #. @context: Description for max visible nav links, explains overflow behavior
2719
- #: src/ui/dash/appearance/NavigationContent.tsx
2720
- msgid "The rest will be tucked into a ··· menu"
2721
- msgstr "The rest will be tucked into a ··· menu"
2722
-
2723
1977
  #. @context: Blockquote on the theme sample page
2724
1978
  #: src/ui/pages/ThemeSamplePage.tsx
2725
1979
  msgid "The right accent should disappear into the writing until you need it."
2726
1980
  msgstr "The right accent should disappear into the writing until you need it."
2727
1981
 
2728
- #. @context: Custom URL target slug help text
2729
- #: src/routes/dash/custom-urls.tsx
2730
- msgid "The slug of the target post or collection"
2731
- msgstr "The slug of the target post or collection"
2732
-
2733
1982
  #. @context: Section heading for theme picker pills
2734
1983
  #: src/ui/pages/ThemeSamplePage.tsx
2735
1984
  msgid "Theme"
@@ -2742,26 +1991,11 @@ msgstr "Theme"
2742
1991
  msgid "Theme sample"
2743
1992
  msgstr "Theme sample"
2744
1993
 
2745
- #. @context: Fallback theme group description on color theme page
2746
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2747
- msgid "Themes that have not been assigned to a named group yet."
2748
- msgstr "Themes that have not been assigned to a named group yet."
2749
-
2750
- #. @context: Link to theming documentation on Custom CSS page
2751
- #: src/ui/dash/appearance/AdvancedContent.tsx
2752
- msgid "Theming guide"
2753
- msgstr "Theming guide"
2754
-
2755
1994
  #. @context: Helper text for the real post component section on the theme sample page
2756
1995
  #: src/ui/pages/ThemeSamplePage.tsx
2757
1996
  msgid "These are actual feed components with real footers, summaries, and inline links. Use this section to judge whether the theme still feels calm once it is applied to realistic content."
2758
1997
  msgstr "These are actual feed components with real footers, summaries, and inline links. Use this section to judge whether the theme still feels calm once it is applied to realistic content."
2759
1998
 
2760
- #. @context: Description for session management
2761
- #: src/ui/dash/settings/SessionsContent.tsx
2762
- msgid "These devices are currently signed in to your account. Revoke any session you don't recognize."
2763
- msgstr "These devices are currently signed in to your account. Revoke any session you don't recognize."
2764
-
2765
1999
  #. @context: Opening paragraph on the sample detail article
2766
2000
  #: src/ui/pages/ThemeSamplePage.tsx
2767
2001
  msgid "This article is here to answer a specific question: does the default accent still feel calm once it has to carry a full reading experience?"
@@ -2772,32 +2006,21 @@ msgstr "This article is here to answer a specific question: does the default acc
2772
2006
  msgid "This collection is empty. Add posts from the editor."
2773
2007
  msgstr "This collection is empty. Add posts from the editor."
2774
2008
 
2775
- #. @context: Help text for choosing whether /feed points to latest or featured posts
2776
- #: src/ui/dash/settings/GeneralContent.tsx
2777
- msgid "This controls what /feed returns."
2778
- msgstr "This controls what /feed returns."
2779
-
2780
- #. @context: Notice shown on hosted account settings explaining that password and hosted account controls live in the connected hosted auth provider
2781
- #: src/ui/dash/settings/AccountMenuContent.tsx
2782
- msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
2783
- msgstr "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
2784
-
2785
2009
  #. @context: Collection link help text
2786
2010
  #: src/ui/shared/collection-management-labels.ts
2787
2011
  msgid "This is the last part of the collection link."
2788
2012
  msgstr "This is the last part of the collection link."
2789
2013
 
2790
- #. @context: Help text for avatar upload
2791
- #: src/ui/dash/settings/AvatarContent.tsx
2792
- msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels."
2793
- msgstr "This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels."
2794
-
2795
2014
  #. @context: Sample quote commentary prefix on the theme sample page
2796
2015
  #: src/ui/pages/ThemeSamplePage.tsx
2797
2016
  msgid "This is useful as a color check because it puts the accent next to quotation styling, metadata, and a quieter explanatory paragraph. Compare it back to the"
2798
2017
  msgstr "This is useful as a color check because it puts the accent next to quotation styling, metadata, and a quieter explanatory paragraph. Compare it back to the"
2799
2018
 
2019
+ #. @context: Hosted SSO expired link page heading
2020
+ #. @context: Hosted SSO expired link page title
2800
2021
  #. @context: Password reset error heading
2022
+ #: src/routes/auth/hosted-sso-expired-page.tsx
2023
+ #: src/routes/auth/hosted-sso-expired-page.tsx
2801
2024
  #: src/routes/auth/reset.tsx
2802
2025
  msgid "This Link Has Expired"
2803
2026
  msgstr "This Link Has Expired"
@@ -2824,6 +2047,11 @@ msgstr "This reference is useful because it treats links and citations as part o
2824
2047
  msgid "This reset link is no longer valid. Request a new one to continue."
2825
2048
  msgstr "This reset link is no longer valid. Request a new one to continue."
2826
2049
 
2050
+ #. @context: Hosted SSO expired link message segment shown before the hosted control-plane link
2051
+ #: src/routes/auth/hosted-sso-expired-page.tsx
2052
+ msgid "This sign-in link has expired. Return to "
2053
+ msgstr "This sign-in link has expired. Return to "
2054
+
2827
2055
  #. @context: Error shown when a hosted upload would exceed the shared account media limit
2828
2056
  #. @context: Error shown when a hosted upload would exceed the shared account media limit
2829
2057
  #: src/routes/api/upload-multipart.ts
@@ -2836,11 +2064,6 @@ msgstr "This upload would exceed your shared hosted media limit. Remove files or
2836
2064
  msgid "This uses the real single-post detail rendering with a longer article, inline image, tables, lists, quotes, and code. The content column stays at the same width as the live site."
2837
2065
  msgstr "This uses the real single-post detail rendering with a longer article, inline image, tables, lists, quotes, and code. The content column stays at the same width as the live site."
2838
2066
 
2839
- #. @context: Warning text on account deletion page
2840
- #: src/ui/dash/settings/DeleteAccountContent.tsx
2841
- msgid "This will permanently delete all your data — posts, media, collections, settings, and your account. Your blog will be reset to its initial setup state. This cannot be undone."
2842
- msgstr "This will permanently delete all your data — posts, media, collections, settings, and your account. Your blog will be reset to its initial setup state. This cannot be undone."
2843
-
2844
2067
  #. @context: Archive month header count unit for a single thread
2845
2068
  #. @context: Archive page summary unit for a single matching thread
2846
2069
  #. @context: Singular thread count label on collection detail page
@@ -2869,10 +2092,10 @@ msgstr "Thread accents"
2869
2092
  msgid "threads"
2870
2093
  msgstr "threads"
2871
2094
 
2872
- #. @context: Settings form field
2873
- #: src/ui/dash/settings/GeneralContent.tsx
2874
- msgid "Time Zone"
2875
- msgstr "Time Zone"
2095
+ #. @context: Toast shown when compose reaches the maximum allowed thread length
2096
+ #: src/ui/compose/ComposeDialog.tsx
2097
+ msgid "Threads can include up to {count} posts."
2098
+ msgstr "Threads can include up to {count} posts."
2876
2099
 
2877
2100
  #. @context: Collection form field
2878
2101
  #. @context: Compose note title placeholder
@@ -2897,26 +2120,6 @@ msgstr "Titled"
2897
2120
  msgid "to make sure both still feel like they belong to the same product."
2898
2121
  msgstr "to make sure both still feel like they belong to the same product."
2899
2122
 
2900
- #. @context: Description for system nav toggles
2901
- #: src/ui/dash/appearance/NavigationContent.tsx
2902
- msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
2903
- msgstr "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
2904
-
2905
- #. @context: Button to expand/collapse nav item edit
2906
- #: src/ui/dash/appearance/NavigationContent.tsx
2907
- msgid "Toggle edit panel"
2908
- msgstr "Toggle edit panel"
2909
-
2910
- #. @context: API token name field label
2911
- #: src/ui/dash/settings/ApiTokensContent.tsx
2912
- msgid "Token name"
2913
- msgstr "Token name"
2914
-
2915
- #. @context: API tokens description
2916
- #: src/ui/dash/settings/ApiTokensContent.tsx
2917
- msgid "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
2918
- msgstr "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
2919
-
2920
2123
  #. @context: Usage label for the square logo PNG asset card
2921
2124
  #: src/ui/pages/BrandPage.tsx
2922
2125
  msgid "Transparent square"
@@ -2927,36 +2130,11 @@ msgstr "Transparent square"
2927
2130
  msgid "Tune color in a real reading context"
2928
2131
  msgstr "Tune color in a real reading context"
2929
2132
 
2930
- #. @context: Intro text on the settings home page below the title
2931
- #: src/ui/dash/settings/SettingsRootContent.tsx
2932
- msgid "Tune how your site looks, reads, and runs."
2933
- msgstr "Tune how your site looks, reads, and runs."
2934
-
2935
- #. @context: Custom URL form field
2936
- #: src/routes/dash/custom-urls.tsx
2937
- msgid "Type"
2938
- msgstr "Type"
2939
-
2940
- #. @context: Instruction to type confirmation phrase before deletion
2941
- #: src/ui/dash/settings/DeleteAccountContent.tsx
2942
- msgid "Type the following phrase to confirm:"
2943
- msgstr "Type the following phrase to confirm:"
2944
-
2945
2133
  #. @context: Compose quote text placeholder
2946
2134
  #: src/ui/compose/ComposeDialog.tsx
2947
2135
  msgid "Type the quote..."
2948
2136
  msgstr "Type the quote..."
2949
2137
 
2950
- #. @context: Settings item description for font theme
2951
- #: src/ui/dash/settings/SettingsRootContent.tsx
2952
- msgid "Typography choices and reading texture"
2953
- msgstr "Typography choices and reading texture"
2954
-
2955
- #. @context: Fallback label when session device can't be identified
2956
- #: src/ui/dash/settings/SessionsContent.tsx
2957
- msgid "Unknown device"
2958
- msgstr "Unknown device"
2959
-
2960
2138
  #. @context: Archive filter - notes without a title
2961
2139
  #. @context: Archive filter - notes without a title
2962
2140
  #: src/ui/pages/ArchivePage.tsx
@@ -2964,49 +2142,30 @@ msgstr "Unknown device"
2964
2142
  msgid "Untitled"
2965
2143
  msgstr "Untitled"
2966
2144
 
2967
- #. @context: Settings item description for password change
2968
- #: src/ui/dash/settings/AccountMenuContent.tsx
2969
- msgid "Update the password you use to sign in"
2970
- msgstr "Update the password you use to sign in"
2971
-
2972
- #. @context: Button to upload avatar image
2973
- #: src/ui/dash/settings/AvatarContent.tsx
2974
- msgid "Upload Avatar"
2975
- msgstr "Upload Avatar"
2976
-
2977
- #. @context: Error toast when avatar upload fails
2978
2145
  #. @context: Error when file upload fails
2979
2146
  #: src/routes/api/upload.ts
2980
- #: src/routes/dash/settings.tsx
2981
2147
  msgid "Upload didn't go through. Try again in a moment."
2982
2148
  msgstr "Upload didn't go through. Try again in a moment."
2983
2149
 
2984
- #. @context: Error message when avatar upload fails
2985
- #: src/ui/dash/settings/AvatarContent.tsx
2986
- msgid "Upload failed. Please try again."
2987
- msgstr "Upload failed. Please try again."
2988
-
2989
- #. @context: Avatar upload button text while uploading
2990
2150
  #. @context: Toast shown during background upload
2991
2151
  #: src/ui/compose/ComposeDialog.tsx
2992
- #: src/ui/dash/settings/AvatarContent.tsx
2993
2152
  msgid "Uploading..."
2994
2153
  msgstr "Uploading..."
2995
2154
 
2996
- #. @context: Nav item URL field
2997
- #: src/ui/dash/appearance/NavigationContent.tsx
2155
+ #. @context: Field label for a custom collections link URL
2156
+ #: src/ui/shared/collection-management-labels.ts
2998
2157
  msgid "URL"
2999
2158
  msgstr "URL"
3000
2159
 
3001
- #. @context: Heading for API token usage examples
3002
- #: src/ui/dash/settings/ApiTokensContent.tsx
3003
- msgid "Usage"
3004
- msgstr "Usage"
2160
+ #. @context: Test string for Lingui interpolation support
2161
+ #: src/i18n/__tests__/context.test.tsx
2162
+ msgid "Use {brandColorName}"
2163
+ msgstr "Use {brandColorName}"
3005
2164
 
3006
- #. @context: Switch label for setting featured posts as default homepage
3007
- #: src/ui/dash/appearance/NavigationContent.tsx
3008
- msgid "Use Featured as the home feed"
3009
- msgstr "Use Featured as the home feed"
2165
+ #. @context: Compose publish settings action to reset the publish date to the current date
2166
+ #: src/ui/compose/ComposeDialog.tsx
2167
+ msgid "Use current date"
2168
+ msgstr "Use current date"
3010
2169
 
3011
2170
  #. @context: Collection slug validation error for invalid characters
3012
2171
  #. @context: Compose custom slug validation error for invalid characters
@@ -3030,11 +2189,6 @@ msgstr "Use the reverse logo on dark backgrounds."
3030
2189
  msgid "Use these when you need a transparent square logo, a shaped tile with a built-in background, a browser icon, or a default preview image."
3031
2190
  msgstr "Use these when you need a transparent square logo, a shaped tile with a built-in background, a browser icon, or a default preview image."
3032
2191
 
3033
- #. @context: Help text for the explicit latest and featured feed URLs
3034
- #: src/ui/dash/settings/GeneralContent.tsx
3035
- msgid "Use these when you want a feed URL that never changes."
3036
- msgstr "Use these when you want a feed URL that never changes."
3037
-
3038
2192
  #. @context: Description for the default logo card
3039
2193
  #: src/ui/pages/BrandPage.tsx
3040
2194
  msgid "Use this for websites, docs, articles, and other light or neutral surfaces."
@@ -3050,25 +2204,13 @@ msgstr "Use this on dark backgrounds, image-backed surfaces, and any placement w
3050
2204
  msgid "Use this page to judge buttons, links, cards, forms, thread accents, and quiet surfaces before changing a theme globally."
3051
2205
  msgstr "Use this page to judge buttons, links, cards, forms, thread accents, and quiet surfaces before changing a theme globally."
3052
2206
 
3053
- #. @context: Description for choosing featured posts as the main RSS feed
3054
- #: src/ui/dash/settings/GeneralContent.tsx
3055
- msgid "Uses featured posts for /feed."
3056
- msgstr "Uses featured posts for /feed."
3057
-
3058
- #. @context: Description for choosing the latest posts as the main RSS feed
3059
- #: src/ui/dash/settings/GeneralContent.tsx
3060
- msgid "Uses the latest public posts for /feed."
3061
- msgstr "Uses the latest public posts for /feed."
3062
-
3063
2207
  #. @context: Archive media filter - video
3064
2208
  #: src/ui/pages/ArchivePage.tsx
3065
2209
  msgid "Video"
3066
2210
  msgstr "Video"
3067
2211
 
3068
- #. @context: Button to view item on public site
3069
2212
  #. @context: Toast action button to view the published post
3070
2213
  #: src/ui/compose/ComposeDialog.tsx
3071
- #: src/ui/dash/ActionButtons.tsx
3072
2214
  msgid "View"
3073
2215
  msgstr "View"
3074
2216
 
@@ -3082,16 +2224,6 @@ msgstr "View earlier notes in this thread"
3082
2224
  msgid "Visibility"
3083
2225
  msgstr "Visibility"
3084
2226
 
3085
- #. @context: Prefix before Custom CSS link on color theme page
3086
- #: src/ui/dash/appearance/ColorThemeContent.tsx
3087
- msgid "Want more control?"
3088
- msgstr "Want more control?"
3089
-
3090
- #. @context: Theme group heading on color theme settings page
3091
- #: src/ui/dash/appearance/ColorThemeContent.tsx
3092
- msgid "Warm Editorial"
3093
- msgstr "Warm Editorial"
3094
-
3095
2227
  #. @context: Setup page welcome heading
3096
2228
  #: src/routes/auth/setup.tsx
3097
2229
  msgid "Welcome to Jant"
@@ -3122,11 +2254,6 @@ msgstr "What's on your mind..."
3122
2254
  msgid "What's this collection about?"
3123
2255
  msgstr "What's this collection about?"
3124
2256
 
3125
- #. @context: Description for featured default toggle, explains what happens when off
3126
- #: src/ui/dash/appearance/NavigationContent.tsx
3127
- msgid "When off, the homepage opens with your latest posts."
3128
- msgstr "When off, the homepage opens with your latest posts."
3129
-
3130
2257
  #. @context: Textarea value on sample page
3131
2258
  #: src/ui/pages/ThemeSamplePage.tsx
3132
2259
  msgid "When primary is too rigid, the whole page starts reading like product UI instead of writing space."
@@ -3137,11 +2264,6 @@ msgstr "When primary is too rigid, the whole page starts reading like product UI
3137
2264
  msgid "When the accent is slightly warmer and less literal, the whole page feels more like a writing space and less like product UI."
3138
2265
  msgstr "When the accent is slightly warmer and less literal, the whole page feels more like a writing space and less like product UI."
3139
2266
 
3140
- #. @context: Description for backup and restore documentation link in account settings
3141
- #: src/ui/dash/settings/AccountMenuContent.tsx
3142
- msgid "When to use site export, database backups, and recovery drills."
3143
- msgstr "When to use site export, database backups, and recovery drills."
3144
-
3145
2267
  #. @context: Description for the circle tile asset card
3146
2268
  #: src/ui/pages/BrandPage.tsx
3147
2269
  msgid "White logo on the Jant green circle for profile images, badges, and other round placements where you want a ready-made asset."
@@ -3162,6 +2284,31 @@ msgstr "White logo on the Jant green square tile for platforms and layouts that
3162
2284
  msgid "Why the default accent should feel written, not branded"
3163
2285
  msgstr "Why the default accent should feel written, not branded"
3164
2286
 
2287
+ #. @context: Archive feed title segment for hasMedia=1 filter
2288
+ #: src/routes/pages/archive.tsx
2289
+ msgid "with media"
2290
+ msgstr "with media"
2291
+
2292
+ #. @context: Archive feed title segment for hasTitle=1 filter
2293
+ #: src/routes/pages/archive.tsx
2294
+ msgid "with title"
2295
+ msgstr "with title"
2296
+
2297
+ #. @context: Archive feed title segment for hasMedia=0 filter
2298
+ #: src/routes/pages/archive.tsx
2299
+ msgid "without media"
2300
+ msgstr "without media"
2301
+
2302
+ #. @context: Archive feed title segment for hasTitle=0 filter
2303
+ #: src/routes/pages/archive.tsx
2304
+ msgid "without title"
2305
+ msgstr "without title"
2306
+
2307
+ #. @context: Compose publish settings hint for quiet reply switch
2308
+ #: src/ui/compose/ComposeDialog.tsx
2309
+ msgid "Won't move the thread to the top of latest."
2310
+ msgstr "Won't move the thread to the top of latest."
2311
+
3165
2312
  #. @context: Error toast when sign-in credentials are wrong
3166
2313
  #: src/routes/auth/signin.tsx
3167
2314
  msgid "Wrong email or password. Check your credentials and try again."