@jant/core 0.3.40 → 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 (1160) hide show
  1. package/README.md +21 -34
  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-CAtsuLLh.js → app-Cu3lveYI.js} +23768 -23057
  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 +60 -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} +91 -10
  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 -17
  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} +284 -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 +17 -0
  545. package/src/lib/__tests__/constants.test.ts +2 -24
  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 +20 -3
  560. package/src/lib/__tests__/summary.test.ts +400 -1
  561. package/src/lib/__tests__/theme.test.ts +41 -2
  562. package/src/lib/__tests__/timeline.test.ts +33 -27
  563. package/src/lib/__tests__/tiptap-render.test.ts +224 -0
  564. package/src/lib/__tests__/tiptap-to-markdown.test.ts +51 -0
  565. package/src/lib/__tests__/video-playback.test.ts +48 -0
  566. package/src/lib/__tests__/view.test.ts +115 -8
  567. package/src/lib/__tests__/worker-response-cache.test.ts +311 -0
  568. package/src/lib/__tests__/youtube.test.ts +99 -0
  569. package/src/lib/api-media.ts +55 -0
  570. package/src/lib/api-posts.ts +99 -0
  571. package/src/lib/api-search.ts +47 -0
  572. package/src/lib/api-settings.ts +122 -0
  573. package/src/lib/asset-path.ts +20 -2
  574. package/src/lib/collection-groups.ts +2 -1
  575. package/src/lib/collection-paths.ts +40 -0
  576. package/src/lib/constants.ts +3 -24
  577. package/src/lib/csp-builder.ts +99 -0
  578. package/src/lib/decorative-quote-mark.ts +11 -0
  579. package/src/lib/display-text.ts +56 -0
  580. package/src/lib/embed-providers.ts +289 -0
  581. package/src/lib/embed-render.ts +151 -0
  582. package/src/lib/env.ts +70 -1
  583. package/src/lib/excerpt.ts +11 -2
  584. package/src/lib/feed.ts +89 -66
  585. package/src/lib/footnotes.ts +146 -0
  586. package/src/lib/github-api.ts +423 -0
  587. package/src/lib/github-app-state.ts +135 -0
  588. package/src/lib/github-app.ts +487 -0
  589. package/src/lib/github-sync-queue-handler.ts +69 -0
  590. package/src/lib/github-sync-site-config.ts +57 -0
  591. package/src/lib/github-sync-status.tsx +87 -0
  592. package/src/lib/github-sync-trigger.ts +199 -0
  593. package/src/lib/github-sync-worker.ts +72 -0
  594. package/src/lib/hosted-signin.ts +1 -1
  595. package/src/lib/hugo-markdown.ts +255 -0
  596. package/src/lib/job-queue-cf.ts +18 -0
  597. package/src/lib/job-queue-db.ts +149 -0
  598. package/src/lib/job-queue.ts +35 -0
  599. package/src/lib/markdown-manager.ts +864 -0
  600. package/src/lib/markdown-to-tiptap.ts +4 -323
  601. package/src/lib/markdown.ts +16 -24
  602. package/src/lib/media-helpers.ts +1 -0
  603. package/src/lib/navigation.ts +40 -8
  604. package/src/lib/post-display.ts +10 -22
  605. package/src/lib/public-storage.ts +6 -1
  606. package/src/lib/render.tsx +5 -2
  607. package/src/lib/resolve-config.ts +23 -11
  608. package/src/lib/rich-image.ts +89 -0
  609. package/src/lib/schemas.ts +180 -13
  610. package/src/lib/summary.ts +125 -18
  611. package/src/lib/theme.ts +119 -0
  612. package/src/lib/timeline.ts +63 -42
  613. package/src/lib/tiptap-render.ts +265 -126
  614. package/src/lib/tiptap-to-markdown.ts +6 -329
  615. package/src/lib/upload.ts +97 -6
  616. package/src/lib/version.ts +18 -0
  617. package/src/lib/video-playback.ts +73 -0
  618. package/src/lib/view.ts +130 -90
  619. package/src/lib/webhook-signature.ts +65 -0
  620. package/src/lib/worker-response-cache.ts +220 -0
  621. package/src/lib/youtube.ts +119 -0
  622. package/src/middleware/__tests__/onboarding.test.ts +3 -3
  623. package/src/middleware/__tests__/secure-headers.test.ts +28 -1
  624. package/src/middleware/config.ts +7 -10
  625. package/src/middleware/cors.ts +49 -0
  626. package/src/middleware/secure-headers.ts +45 -55
  627. package/src/node/__tests__/cli-migrate.test.ts +111 -0
  628. package/src/node/__tests__/cli-runtime-target.test.ts +1 -1
  629. package/src/node/__tests__/cli-site-token-env.test.ts +2 -2
  630. package/src/preset.css +316 -12
  631. package/src/routes/__tests__/compose.test.ts +3 -1
  632. package/src/routes/api/__tests__/collections.test.ts +81 -27
  633. package/src/routes/api/__tests__/mcp.test.ts +389 -0
  634. package/src/routes/api/__tests__/nav-items.test.ts +163 -2
  635. package/src/routes/api/__tests__/posts.test.ts +190 -0
  636. package/src/routes/api/__tests__/settings.test.ts +99 -3
  637. package/src/routes/api/__tests__/upload-multipart.test.ts +10 -2
  638. package/src/routes/api/__tests__/upload.test.ts +132 -0
  639. package/src/routes/api/__tests__/uploads.test.ts +5 -3
  640. package/src/routes/api/collections.ts +67 -26
  641. package/src/routes/api/custom-urls.ts +1 -0
  642. package/src/routes/api/export.ts +8 -4
  643. package/src/routes/api/github-sync.tsx +380 -0
  644. package/src/routes/api/internal/__tests__/sites.test.ts +45 -2
  645. package/src/routes/api/internal/sites.ts +2 -0
  646. package/src/routes/api/internal/text-attachments.ts +60 -0
  647. package/src/routes/api/internal/uploads.ts +5 -1
  648. package/src/routes/api/mcp.ts +30 -0
  649. package/src/routes/api/nav-items.ts +30 -11
  650. package/src/routes/api/palette.ts +17 -0
  651. package/src/routes/api/posts.ts +37 -106
  652. package/src/routes/api/public/__tests__/posts.test.ts +372 -0
  653. package/src/routes/api/public/posts.ts +302 -0
  654. package/src/routes/api/search.ts +1 -47
  655. package/src/routes/api/settings.ts +44 -58
  656. package/src/routes/api/upload-multipart.ts +15 -5
  657. package/src/routes/api/upload.ts +62 -49
  658. package/src/routes/api/uploads.ts +1 -0
  659. package/src/routes/auth/__tests__/hosted-sso.test.ts +33 -0
  660. package/src/routes/auth/__tests__/setup.test.ts +29 -4
  661. package/src/routes/auth/hosted-sso-expired-page.tsx +89 -0
  662. package/src/routes/auth/hosted-sso.ts +42 -1
  663. package/src/routes/auth/reset.tsx +46 -32
  664. package/src/routes/auth/setup.tsx +53 -43
  665. package/src/routes/auth/signin.tsx +34 -24
  666. package/src/routes/compose.tsx +114 -1
  667. package/src/routes/dash/__tests__/font-theme.test.ts +6 -27
  668. package/src/routes/dash/__tests__/settings-avatar.test.ts +2 -3
  669. package/src/routes/dash/custom-urls.tsx +250 -112
  670. package/src/routes/dash/settings.tsx +1179 -70
  671. package/src/routes/feed/__tests__/{rss.test.ts → feed.test.ts} +62 -123
  672. package/src/routes/feed/feed.ts +386 -0
  673. package/src/routes/feed/manifest.ts +67 -0
  674. package/src/routes/feed/sitemap.ts +11 -2
  675. package/src/routes/pages/__tests__/collection-routing.test.ts +176 -0
  676. package/src/routes/pages/__tests__/collections.test.ts +2 -3
  677. package/src/routes/pages/__tests__/featured.test.ts +2 -3
  678. package/src/routes/pages/archive.tsx +523 -127
  679. package/src/routes/pages/collection.tsx +197 -43
  680. package/src/routes/pages/collections.tsx +5 -1
  681. package/src/routes/pages/home.tsx +2 -2
  682. package/src/routes/pages/latest.tsx +3 -3
  683. package/src/routes/pages/page.tsx +221 -3
  684. package/src/routes/pages/partials.tsx +5 -0
  685. package/src/routes/pages/search.tsx +17 -1
  686. package/src/routes/pages/theme-sample.tsx +1 -2
  687. package/src/runtime/__tests__/node.test.ts +1 -1
  688. package/src/runtime/readiness.ts +1 -1
  689. package/src/runtime/site.ts +9 -1
  690. package/src/services/__tests__/collection.test.ts +137 -54
  691. package/src/services/__tests__/github-app-installations.test.ts +181 -0
  692. package/src/services/__tests__/github-sync-classify.test.ts +189 -0
  693. package/src/services/__tests__/github-sync-push.test.ts +159 -0
  694. package/src/services/__tests__/media.test.ts +444 -7
  695. package/src/services/__tests__/navigation.test.ts +271 -14
  696. package/src/services/__tests__/post-timeline.test.ts +31 -21
  697. package/src/services/__tests__/post.test.ts +83 -9
  698. package/src/services/__tests__/settings.test.ts +43 -21
  699. package/src/services/auth.ts +2 -2
  700. package/src/services/bootstrap.ts +10 -7
  701. package/src/services/collection.ts +591 -193
  702. package/src/services/custom-url.ts +34 -7
  703. package/src/services/export-theme/assets/client-site.css +2 -0
  704. package/src/services/export-theme/assets/client-site.js +145 -0
  705. package/src/services/export-theme/layouts/_default/alias.html +49 -0
  706. package/src/services/export-theme/layouts/_default/baseof.html +21 -0
  707. package/src/services/export-theme/layouts/_default/list.html +104 -0
  708. package/src/services/export-theme/layouts/_default/rss.xml +160 -0
  709. package/src/services/export-theme/layouts/_default/single.html +15 -0
  710. package/src/services/export-theme/layouts/archive/list.html +31 -0
  711. package/src/services/export-theme/layouts/collection/single.html +19 -0
  712. package/src/services/export-theme/layouts/collections/list.html +111 -0
  713. package/src/services/export-theme/layouts/featured/list.html +28 -0
  714. package/src/services/export-theme/layouts/index.html +41 -0
  715. package/src/services/export-theme/layouts/partials/feed-post-content.xml +107 -0
  716. package/src/services/export-theme/layouts/partials/footer.html +32 -0
  717. package/src/services/export-theme/layouts/partials/head.html +52 -0
  718. package/src/services/export-theme/layouts/partials/header.html +115 -0
  719. package/src/services/export-theme/layouts/partials/media-gallery.html +246 -0
  720. package/src/services/export-theme/layouts/partials/pagination.html +55 -0
  721. package/src/services/export-theme/layouts/partials/post-card.html +127 -0
  722. package/src/services/export-theme/layouts/partials/reply.html +91 -0
  723. package/src/services/export-theme/layouts/partials/thread-preview.html +82 -0
  724. package/src/services/export-theme/layouts/post/list.html +129 -0
  725. package/src/services/export-theme/styles/main.css +1981 -0
  726. package/src/services/export-theme/theme.toml +12 -0
  727. package/src/services/export.ts +1365 -2412
  728. package/src/services/github-app-installations.ts +302 -0
  729. package/src/services/github-sync.ts +769 -0
  730. package/src/services/index.ts +15 -0
  731. package/src/services/mcp.ts +1324 -0
  732. package/src/services/media.ts +336 -25
  733. package/src/services/navigation.ts +115 -23
  734. package/src/services/path.ts +129 -28
  735. package/src/services/post.ts +658 -195
  736. package/src/services/search.ts +3 -0
  737. package/src/services/settings.ts +29 -15
  738. package/src/services/site-admin.ts +26 -6
  739. package/src/services/upload-session.ts +69 -34
  740. package/src/style-cjk-jp.css +3 -0
  741. package/src/style-cjk-kr.css +3 -0
  742. package/src/styles/components.css +160 -59
  743. package/src/styles/fonts/et-book/et-book-bold-line-figures.woff +0 -0
  744. package/src/styles/fonts/et-book/et-book-display-italic-old-style-figures.woff +0 -0
  745. package/src/styles/fonts/et-book/et-book-roman-line-figures.woff +0 -0
  746. package/src/styles/fonts/et-book.css +31 -0
  747. package/src/styles/fonts/latin.css +1 -0
  748. package/src/styles/fonts/noto-serif-jp/400/057a6a98bda7fe57105ddaa99ec82015.woff2 +0 -0
  749. package/src/styles/fonts/noto-serif-jp/400/0acd1fe2b2ea1ad1bfee7ae1fa139d27.woff2 +0 -0
  750. package/src/styles/fonts/noto-serif-jp/400/0c2ab6b295e55f356f8020d4e7747522.woff2 +0 -0
  751. package/src/styles/fonts/noto-serif-jp/400/0c5f9492af03a4fa42c784de94649de1.woff2 +0 -0
  752. package/src/styles/fonts/noto-serif-jp/400/0d9a936885a4c39077438effd3779cbd.woff2 +0 -0
  753. package/src/styles/fonts/noto-serif-jp/400/0e645da524f7cfc0e8c3c03fb2b08428.woff2 +0 -0
  754. package/src/styles/fonts/noto-serif-jp/400/135e83b403475c5dc9e49b43501a5b84.woff2 +0 -0
  755. package/src/styles/fonts/noto-serif-jp/400/13b2c53b30e6a3e4de7132dbc18dbdfc.woff2 +0 -0
  756. package/src/styles/fonts/noto-serif-jp/400/15d95680dc31cc6ce20e0a5464106dc4.woff2 +0 -0
  757. package/src/styles/fonts/noto-serif-jp/400/1733f27476507ca68b68a803bc533cc2.woff2 +0 -0
  758. package/src/styles/fonts/noto-serif-jp/400/188c2db794f3dd7a45889ddbc81da9bb.woff2 +0 -0
  759. package/src/styles/fonts/noto-serif-jp/400/1cf737900dd49c2e88f1b3221a82a602.woff2 +0 -0
  760. package/src/styles/fonts/noto-serif-jp/400/233d3a685ee18276b319363474599d47.woff2 +0 -0
  761. package/src/styles/fonts/noto-serif-jp/400/284b53bbefb06924cf236d24c8ed5641.woff2 +0 -0
  762. package/src/styles/fonts/noto-serif-jp/400/2a56eaf19d1d38a6b57e2a388f733676.woff2 +0 -0
  763. package/src/styles/fonts/noto-serif-jp/400/2abfbab82b6a7c04426afc054d2464da.woff2 +0 -0
  764. package/src/styles/fonts/noto-serif-jp/400/2e6f4bb71ef6b38765d51acc5a79f638.woff2 +0 -0
  765. package/src/styles/fonts/noto-serif-jp/400/31194d303a67561926a544ed0e072aee.woff2 +0 -0
  766. package/src/styles/fonts/noto-serif-jp/400/3623d96698132c61e861f984ce11cc23.woff2 +0 -0
  767. package/src/styles/fonts/noto-serif-jp/400/39211b02f24c69cbd1b54f6d41b01933.woff2 +0 -0
  768. package/src/styles/fonts/noto-serif-jp/400/3e24063b19abd2b051af986a6870046d.woff2 +0 -0
  769. package/src/styles/fonts/noto-serif-jp/400/4410f876d27c9821839474b6b1059fd7.woff2 +0 -0
  770. package/src/styles/fonts/noto-serif-jp/400/479329a39a3eb6c0047e6b0981919855.woff2 +0 -0
  771. package/src/styles/fonts/noto-serif-jp/400/527ff336279465617aafbafe1a830632.woff2 +0 -0
  772. package/src/styles/fonts/noto-serif-jp/400/56b40518ea0608e62826bd44ee27f5f9.woff2 +0 -0
  773. package/src/styles/fonts/noto-serif-jp/400/5acc7f736217259db79a42bf44241c48.woff2 +0 -0
  774. package/src/styles/fonts/noto-serif-jp/400/5c05f8b75c9d7f25b3c04ca711cf43b3.woff2 +0 -0
  775. package/src/styles/fonts/noto-serif-jp/400/5e0124c7265f1b4cf0fc797b94efbebc.woff2 +0 -0
  776. package/src/styles/fonts/noto-serif-jp/400/615a7e0d63f257109d599b2a1977de68.woff2 +0 -0
  777. package/src/styles/fonts/noto-serif-jp/400/61a2c80d0c924d5a6187c02e8d1d1642.woff2 +0 -0
  778. package/src/styles/fonts/noto-serif-jp/400/62fc94f8d4c5a750b7f25e7387539910.woff2 +0 -0
  779. package/src/styles/fonts/noto-serif-jp/400/639c7c6b0b0c27c738702741cfa4b8c0.woff2 +0 -0
  780. package/src/styles/fonts/noto-serif-jp/400/68a3a4bf337f8a0722be76676e20b850.woff2 +0 -0
  781. package/src/styles/fonts/noto-serif-jp/400/6abdd163d2c4b85698db8aa1ce149361.woff2 +0 -0
  782. package/src/styles/fonts/noto-serif-jp/400/73b794d885b88f7befb7ea8ab1780a15.woff2 +0 -0
  783. package/src/styles/fonts/noto-serif-jp/400/743f290baf027d4626a86e22f3d44600.woff2 +0 -0
  784. package/src/styles/fonts/noto-serif-jp/400/757019c01c5e2c2b0f54293cea3b5636.woff2 +0 -0
  785. package/src/styles/fonts/noto-serif-jp/400/76f117a3baacda304a71965a17266a13.woff2 +0 -0
  786. package/src/styles/fonts/noto-serif-jp/400/77747f17625a259fb405b7bbdd84ac4b.woff2 +0 -0
  787. package/src/styles/fonts/noto-serif-jp/400/788498548ddfb710d6ef3c7bff79fa97.woff2 +0 -0
  788. package/src/styles/fonts/noto-serif-jp/400/78ea6c40923ce95367e3517dd1e5a849.woff2 +0 -0
  789. package/src/styles/fonts/noto-serif-jp/400/7f9a6c9286b68de9c72b0024f7beeb40.woff2 +0 -0
  790. package/src/styles/fonts/noto-serif-jp/400/823d1bb11097331238d103c7f72138dc.woff2 +0 -0
  791. package/src/styles/fonts/noto-serif-jp/400/888ba53510213d5d1f6a7deb60e569b6.woff2 +0 -0
  792. package/src/styles/fonts/noto-serif-jp/400/892aa49b2529c89bb4076d4aa51fe30f.woff2 +0 -0
  793. package/src/styles/fonts/noto-serif-jp/400/95ff41191c76ef893ac70a1043e95e44.woff2 +0 -0
  794. package/src/styles/fonts/noto-serif-jp/400/96c75862c8cec51a7c05ff025fea86cd.woff2 +0 -0
  795. package/src/styles/fonts/noto-serif-jp/400/9b21e8244f5930c48ad5073f83777b6c.woff2 +0 -0
  796. package/src/styles/fonts/noto-serif-jp/400/9fce02d1a09f464c36c9fcfb14a354c5.woff2 +0 -0
  797. package/src/styles/fonts/noto-serif-jp/400/a0a6755c7e3f9e4cf03387027dd9f16c.woff2 +0 -0
  798. package/src/styles/fonts/noto-serif-jp/400/a4475c442c6b259354c9eda62e64e7df.woff2 +0 -0
  799. package/src/styles/fonts/noto-serif-jp/400/a4a39b5f048671aa37c2b2a9581ab08a.woff2 +0 -0
  800. package/src/styles/fonts/noto-serif-jp/400/a534449d67561ac9b06489f64e57ad98.woff2 +0 -0
  801. package/src/styles/fonts/noto-serif-jp/400/a919a8c6fec6d7e8bb21177965f2e9d7.woff2 +0 -0
  802. package/src/styles/fonts/noto-serif-jp/400/ad67113f88b59582991cb0c5d33ea19f.woff2 +0 -0
  803. package/src/styles/fonts/noto-serif-jp/400/adb6e613fb99c6dd660b727101f554a8.woff2 +0 -0
  804. package/src/styles/fonts/noto-serif-jp/400/adc4a98a89870ef984ee8f4b57c8a3a5.woff2 +0 -0
  805. package/src/styles/fonts/noto-serif-jp/400/b12379ab782468d725519cd07a7d15bc.woff2 +0 -0
  806. package/src/styles/fonts/noto-serif-jp/400/b55486f8a459c838fe329d4e79a8c211.woff2 +0 -0
  807. package/src/styles/fonts/noto-serif-jp/400/bb0b15492b8cdbbec57c0bcfa0aa9241.woff2 +0 -0
  808. package/src/styles/fonts/noto-serif-jp/400/bedc74b423b7293b6ad0bdecc61c42cc.woff2 +0 -0
  809. package/src/styles/fonts/noto-serif-jp/400/bfb00d4a4c48661bd0be99f300a0faae.woff2 +0 -0
  810. package/src/styles/fonts/noto-serif-jp/400/c1b0df29ae41d764904df84e9ac83d1e.woff2 +0 -0
  811. package/src/styles/fonts/noto-serif-jp/400/c42c67070cfe99cf823df92d81c7fa6e.woff2 +0 -0
  812. package/src/styles/fonts/noto-serif-jp/400/c4d749e45ecd5a5aed5a0bb3ebfd355d.woff2 +0 -0
  813. package/src/styles/fonts/noto-serif-jp/400/c96d83978add28b356c22c4c84916733.woff2 +0 -0
  814. package/src/styles/fonts/noto-serif-jp/400/cb7ccd6494256f7a2977b7c2b0225592.woff2 +0 -0
  815. package/src/styles/fonts/noto-serif-jp/400/ce41d70ce6a069a498525c9e15c45cf2.woff2 +0 -0
  816. package/src/styles/fonts/noto-serif-jp/400/d509ee5c8241bc7c3de2039d75564fa5.woff2 +0 -0
  817. package/src/styles/fonts/noto-serif-jp/400/d675d717cd329bfd4c0524f76ae1579c.woff2 +0 -0
  818. package/src/styles/fonts/noto-serif-jp/400/dc8f6256445e68199540be9ade33529f.woff2 +0 -0
  819. package/src/styles/fonts/noto-serif-jp/400/e8c15be62faf978d208925e79ea6a10d.woff2 +0 -0
  820. package/src/styles/fonts/noto-serif-jp/400/e91c4d941ed9f5c2f3e27f205a3a225e.woff2 +0 -0
  821. package/src/styles/fonts/noto-serif-jp/400/e9c566be7a5d38a9085225f7372bc82b.woff2 +0 -0
  822. package/src/styles/fonts/noto-serif-jp/400/e9ebc567a711eeb29019ddae3e0ce7fe.woff2 +0 -0
  823. package/src/styles/fonts/noto-serif-jp/400/ecb8875a56c7b038b35432fda41ae128.woff2 +0 -0
  824. package/src/styles/fonts/noto-serif-jp/400/f1661731474b78bdf81114daf10b254f.woff2 +0 -0
  825. package/src/styles/fonts/noto-serif-jp/400/f2c58dee206ba9355046fc23d05491f7.woff2 +0 -0
  826. package/src/styles/fonts/noto-serif-jp/400/f50ac27ea4358d67fdda403c2bb52467.woff2 +0 -0
  827. package/src/styles/fonts/noto-serif-jp/400/f55334112f8e8be82d65db29887a663f.woff2 +0 -0
  828. package/src/styles/fonts/noto-serif-jp/400/f740e93f3c0277ecc616594103bca683.woff2 +0 -0
  829. package/src/styles/fonts/noto-serif-jp/400/f7633b5af033d76ff2fb3c3c266d77c5.woff2 +0 -0
  830. package/src/styles/fonts/noto-serif-jp/400/f7d8468cba2335a83ee414ea68291bab.woff2 +0 -0
  831. package/src/styles/fonts/noto-serif-jp/400/fc9ae5b600fb711f2d67e93ce768cba4.woff2 +0 -0
  832. package/src/styles/fonts/noto-serif-jp/400/fd1bceb55d3e0183ac2454b8532fec7d.woff2 +0 -0
  833. package/src/styles/fonts/noto-serif-jp/700/02611a045a7fe83a12014e3debc9f731.woff2 +0 -0
  834. package/src/styles/fonts/noto-serif-jp/700/0f5e1a18987dbc84ca05188c129e1936.woff2 +0 -0
  835. package/src/styles/fonts/noto-serif-jp/700/112743a4ab5fdd1498dfdf2b11336380.woff2 +0 -0
  836. package/src/styles/fonts/noto-serif-jp/700/1211f03d3ff5759a702631445793f60e.woff2 +0 -0
  837. package/src/styles/fonts/noto-serif-jp/700/147b24c2f08d03bbed30887d4cb3311c.woff2 +0 -0
  838. package/src/styles/fonts/noto-serif-jp/700/16663e567f81f4725a1522f37e18f71f.woff2 +0 -0
  839. package/src/styles/fonts/noto-serif-jp/700/1824321da801e6257b902f3d1d09054c.woff2 +0 -0
  840. package/src/styles/fonts/noto-serif-jp/700/1a3a92c7c060a71a6c35819b9ebcdbb9.woff2 +0 -0
  841. package/src/styles/fonts/noto-serif-jp/700/1fba7ec0e412e911bf31841de5a8a4e4.woff2 +0 -0
  842. package/src/styles/fonts/noto-serif-jp/700/28a97af9ab9d38983d20f39ff09840e1.woff2 +0 -0
  843. package/src/styles/fonts/noto-serif-jp/700/2bfaadaf3479c72286248e6de0be0ec9.woff2 +0 -0
  844. package/src/styles/fonts/noto-serif-jp/700/2c8c55e4cec85ce77e95cac9d330f5cf.woff2 +0 -0
  845. package/src/styles/fonts/noto-serif-jp/700/2ed9981d2e8983365bd051159b976b6d.woff2 +0 -0
  846. package/src/styles/fonts/noto-serif-jp/700/2f4c633e923ba30c6ba376367379fc91.woff2 +0 -0
  847. package/src/styles/fonts/noto-serif-jp/700/349965eee0a9b6c984a319ab96a4ece9.woff2 +0 -0
  848. package/src/styles/fonts/noto-serif-jp/700/36cda3eae13370b934bba4429fab9078.woff2 +0 -0
  849. package/src/styles/fonts/noto-serif-jp/700/3aa13f1843d7c8fa16109b6395a9a29d.woff2 +0 -0
  850. package/src/styles/fonts/noto-serif-jp/700/3e2c06bdd9dcab29aeaeb0cfb7fa608a.woff2 +0 -0
  851. package/src/styles/fonts/noto-serif-jp/700/424123f9371ba357087363263eeafcda.woff2 +0 -0
  852. package/src/styles/fonts/noto-serif-jp/700/43b3bbf43055c3e65db9cdf2c5b18c1c.woff2 +0 -0
  853. package/src/styles/fonts/noto-serif-jp/700/44704471b60c18b3ecec5300a88f1102.woff2 +0 -0
  854. package/src/styles/fonts/noto-serif-jp/700/46604090efbb99c2db1800928af0a239.woff2 +0 -0
  855. package/src/styles/fonts/noto-serif-jp/700/46998df85d31e629c0142f0556f5e7c5.woff2 +0 -0
  856. package/src/styles/fonts/noto-serif-jp/700/49902f1c41b281f8eb3771abdd4dccb8.woff2 +0 -0
  857. package/src/styles/fonts/noto-serif-jp/700/4db4f31a16965baa42cb7dad667a8f04.woff2 +0 -0
  858. package/src/styles/fonts/noto-serif-jp/700/572b9e28f1e6d89b765a16d809db84a1.woff2 +0 -0
  859. package/src/styles/fonts/noto-serif-jp/700/5921cef36750ff6092d94b83a802823b.woff2 +0 -0
  860. package/src/styles/fonts/noto-serif-jp/700/59e95d8b5332dcdae894a19946ab767d.woff2 +0 -0
  861. package/src/styles/fonts/noto-serif-jp/700/5ec349ff62b9ee5fe0c6dae867704dc4.woff2 +0 -0
  862. package/src/styles/fonts/noto-serif-jp/700/601f812e8b1eafecd5ba585a6a6d7962.woff2 +0 -0
  863. package/src/styles/fonts/noto-serif-jp/700/6025ddaf99d86cc8bfd781006b19fbd6.woff2 +0 -0
  864. package/src/styles/fonts/noto-serif-jp/700/60f6e28b3f0400b0e8fe32c3c7116102.woff2 +0 -0
  865. package/src/styles/fonts/noto-serif-jp/700/64a404d675f1d726f0891b7a80794595.woff2 +0 -0
  866. package/src/styles/fonts/noto-serif-jp/700/7158022889c6c177062ac85036e7af10.woff2 +0 -0
  867. package/src/styles/fonts/noto-serif-jp/700/7e38ca789a9e76ac91d9256374e154f0.woff2 +0 -0
  868. package/src/styles/fonts/noto-serif-jp/700/815a0b797465190f60d8b1a04656c42e.woff2 +0 -0
  869. package/src/styles/fonts/noto-serif-jp/700/8726558cf297cbda831cc19514897205.woff2 +0 -0
  870. package/src/styles/fonts/noto-serif-jp/700/8855472f3c02f6c7ebb3216617ebe4af.woff2 +0 -0
  871. package/src/styles/fonts/noto-serif-jp/700/8e231d707f0c4f8e3cde90a6b52a79aa.woff2 +0 -0
  872. package/src/styles/fonts/noto-serif-jp/700/9064c12fd72c7aba235d8c3881755b91.woff2 +0 -0
  873. package/src/styles/fonts/noto-serif-jp/700/911b9e53e9814de2998c60bf3115f560.woff2 +0 -0
  874. package/src/styles/fonts/noto-serif-jp/700/92fdc376bce277874e75db666f175b44.woff2 +0 -0
  875. package/src/styles/fonts/noto-serif-jp/700/930a23430f0eb64480d7fe5f82834e21.woff2 +0 -0
  876. package/src/styles/fonts/noto-serif-jp/700/93bed0e5f2dd5a21cf73304fcfbc149d.woff2 +0 -0
  877. package/src/styles/fonts/noto-serif-jp/700/93f3ea6918533d96d9c252378b9a4af0.woff2 +0 -0
  878. package/src/styles/fonts/noto-serif-jp/700/95a0951d2a2722ff773a1a45e8c474d6.woff2 +0 -0
  879. package/src/styles/fonts/noto-serif-jp/700/982cd1765ca6bbb3e6547e47834d5148.woff2 +0 -0
  880. package/src/styles/fonts/noto-serif-jp/700/9b0c3caac458c7bc9c9133e40405ddea.woff2 +0 -0
  881. package/src/styles/fonts/noto-serif-jp/700/9f3bdab4025dc7c5ba1a5871e62e8918.woff2 +0 -0
  882. package/src/styles/fonts/noto-serif-jp/700/a00e94d4f04df6aa659db9c4954c7efe.woff2 +0 -0
  883. package/src/styles/fonts/noto-serif-jp/700/a2b0597837e382aca19919c4b74e58c8.woff2 +0 -0
  884. package/src/styles/fonts/noto-serif-jp/700/a373e85c96aa0dc303092429fb837e51.woff2 +0 -0
  885. package/src/styles/fonts/noto-serif-jp/700/a6e044424780a57610833cc856c15bf5.woff2 +0 -0
  886. package/src/styles/fonts/noto-serif-jp/700/a7c58070d68dc1724e9d4e781afb78db.woff2 +0 -0
  887. package/src/styles/fonts/noto-serif-jp/700/accc43762ad05edfbff66ba1380d192a.woff2 +0 -0
  888. package/src/styles/fonts/noto-serif-jp/700/ad47bcd6d4663026d648c132d969318d.woff2 +0 -0
  889. package/src/styles/fonts/noto-serif-jp/700/af57a2e8c72f9ba0efb1af771d32c124.woff2 +0 -0
  890. package/src/styles/fonts/noto-serif-jp/700/b0ae5f374e43dac992a4a5d334cebc0b.woff2 +0 -0
  891. package/src/styles/fonts/noto-serif-jp/700/b91234c10fd8b8c8abc88e03afe66a1f.woff2 +0 -0
  892. package/src/styles/fonts/noto-serif-jp/700/b9317198f118a1dfd8ddf2b82ec028f3.woff2 +0 -0
  893. package/src/styles/fonts/noto-serif-jp/700/ba825ae79b1a6f7e0cce5215fcb5c96f.woff2 +0 -0
  894. package/src/styles/fonts/noto-serif-jp/700/bc6183ac08f0fac78c46f80c10cf7c92.woff2 +0 -0
  895. package/src/styles/fonts/noto-serif-jp/700/bc8ccea5abf6598cf3cfa97eb59804bb.woff2 +0 -0
  896. package/src/styles/fonts/noto-serif-jp/700/bc95a792cbca6639214c9b0da13392ff.woff2 +0 -0
  897. package/src/styles/fonts/noto-serif-jp/700/bcfa62f35731856246c146d3a6932bf3.woff2 +0 -0
  898. package/src/styles/fonts/noto-serif-jp/700/c063897793f593eb26d6ff7b7baaba18.woff2 +0 -0
  899. package/src/styles/fonts/noto-serif-jp/700/c6c2971ad1f3221f6cf84028aa0f477e.woff2 +0 -0
  900. package/src/styles/fonts/noto-serif-jp/700/c97f41eef722121d86f55d553c056a39.woff2 +0 -0
  901. package/src/styles/fonts/noto-serif-jp/700/ca62704509932d3232d62918de97af3f.woff2 +0 -0
  902. package/src/styles/fonts/noto-serif-jp/700/d1f064825fa5784b5c930652bd831cce.woff2 +0 -0
  903. package/src/styles/fonts/noto-serif-jp/700/d2faabcedd19f016e7b21bce073c0ec8.woff2 +0 -0
  904. package/src/styles/fonts/noto-serif-jp/700/d320171e57480510f87dbbc7d5264b0a.woff2 +0 -0
  905. package/src/styles/fonts/noto-serif-jp/700/d3a72a99d365dddfbca8d017a8011368.woff2 +0 -0
  906. package/src/styles/fonts/noto-serif-jp/700/d42aafa0f246ad3b4c16fe96d3a3a432.woff2 +0 -0
  907. package/src/styles/fonts/noto-serif-jp/700/d4aaf23c13ae808a4bed617afd13aa07.woff2 +0 -0
  908. package/src/styles/fonts/noto-serif-jp/700/d6bb686bddfbe8f38a36a68e609a8667.woff2 +0 -0
  909. package/src/styles/fonts/noto-serif-jp/700/d9020ff69a83b2a6ee1f42ae480f7db0.woff2 +0 -0
  910. package/src/styles/fonts/noto-serif-jp/700/da90a9012ab2d98f759e3fa0820ef502.woff2 +0 -0
  911. package/src/styles/fonts/noto-serif-jp/700/df10d94bea357a43313e20da5d84bd30.woff2 +0 -0
  912. package/src/styles/fonts/noto-serif-jp/700/e34b2b141e472dc776c86fdf8eea23b0.woff2 +0 -0
  913. package/src/styles/fonts/noto-serif-jp/700/e444fd88f1390636e603d0d681538ac8.woff2 +0 -0
  914. package/src/styles/fonts/noto-serif-jp/700/e79898628283edc27180fc39d0d769c1.woff2 +0 -0
  915. package/src/styles/fonts/noto-serif-jp/700/eaf332445a40942928e5f5750c1c3116.woff2 +0 -0
  916. package/src/styles/fonts/noto-serif-jp/700/f91cd722855f4269256eae1187df64ec.woff2 +0 -0
  917. package/src/styles/fonts/noto-serif-jp/700/fc895f5ce66b656f4a933097bf2a8775.woff2 +0 -0
  918. package/src/styles/fonts/noto-serif-jp/700/fca6720fd14c467d29a90f18ef3859b9.woff2 +0 -0
  919. package/src/styles/fonts/noto-serif-jp/700/fd1bb507bcbf04856eeb7f7fd47ea579.woff2 +0 -0
  920. package/src/styles/fonts/noto-serif-jp/noto-serif-jp.css +3349 -0
  921. package/src/styles/fonts/noto-serif-kr/400/033466ef683afe931f7f520cfb42d928.woff2 +0 -0
  922. package/src/styles/fonts/noto-serif-kr/400/05da12edb9d52210581dc6ec4541031f.woff2 +0 -0
  923. package/src/styles/fonts/noto-serif-kr/400/0968e4861204b51f62a2f8e9f15dd5e0.woff2 +0 -0
  924. package/src/styles/fonts/noto-serif-kr/400/0d5dec931dc885f07fe5cd5af8bed675.woff2 +0 -0
  925. package/src/styles/fonts/noto-serif-kr/400/1076f0f6f66d28d7a2f16427faad4413.woff2 +0 -0
  926. package/src/styles/fonts/noto-serif-kr/400/12ef1ba76bd20b004b865266a1aa70b3.woff2 +0 -0
  927. package/src/styles/fonts/noto-serif-kr/400/152395634a207579552f8cb54db88599.woff2 +0 -0
  928. package/src/styles/fonts/noto-serif-kr/400/1a08931435f885e707edb85978ea3bb6.woff2 +0 -0
  929. package/src/styles/fonts/noto-serif-kr/400/31a197213ae61d7043c81013f52d10d6.woff2 +0 -0
  930. package/src/styles/fonts/noto-serif-kr/400/37dbd564820cce2f7b3331e442da0df3.woff2 +0 -0
  931. package/src/styles/fonts/noto-serif-kr/400/37dc8505b20b37a2477a9121b16d44a7.woff2 +0 -0
  932. package/src/styles/fonts/noto-serif-kr/400/3ac0a07878cacdc98bb889f40f5970d3.woff2 +0 -0
  933. package/src/styles/fonts/noto-serif-kr/400/491bbba374093fff045f55803a22bfef.woff2 +0 -0
  934. package/src/styles/fonts/noto-serif-kr/400/4d38e56738156625329d93bd5c8cc74a.woff2 +0 -0
  935. package/src/styles/fonts/noto-serif-kr/400/57e9a86651366c1ba299e47aa7e358c2.woff2 +0 -0
  936. package/src/styles/fonts/noto-serif-kr/400/57f89adeae55aa7fe2add3fc1801ce03.woff2 +0 -0
  937. package/src/styles/fonts/noto-serif-kr/400/5df9ce98c75f8c50fb4fff7f01a23925.woff2 +0 -0
  938. package/src/styles/fonts/noto-serif-kr/400/60020a830d809c26970cf8e48ba1eeda.woff2 +0 -0
  939. package/src/styles/fonts/noto-serif-kr/400/60bcfa3ea7446eb42394aab02d28be40.woff2 +0 -0
  940. package/src/styles/fonts/noto-serif-kr/400/63fafcb069520613d0ea35ad3e6b1e42.woff2 +0 -0
  941. package/src/styles/fonts/noto-serif-kr/400/65a60d87c64228d258a123cbe85f5f31.woff2 +0 -0
  942. package/src/styles/fonts/noto-serif-kr/400/6968e889e18891d912809fe484c2e745.woff2 +0 -0
  943. package/src/styles/fonts/noto-serif-kr/400/70714891ad3fbfc3d5f10a8669dacc5a.woff2 +0 -0
  944. package/src/styles/fonts/noto-serif-kr/400/761d84afca8d7f34eebefe538adba827.woff2 +0 -0
  945. package/src/styles/fonts/noto-serif-kr/400/76e07530323418ec723c5d7634c9bcca.woff2 +0 -0
  946. package/src/styles/fonts/noto-serif-kr/400/773819b7b9b8fd404a929867c0fd677e.woff2 +0 -0
  947. package/src/styles/fonts/noto-serif-kr/400/7817dd16805145d8538ad57590f69f5a.woff2 +0 -0
  948. package/src/styles/fonts/noto-serif-kr/400/7b59f0ec7792b18458dc5a361e37884c.woff2 +0 -0
  949. package/src/styles/fonts/noto-serif-kr/400/7c3945788a689a69356c1a622d69d48b.woff2 +0 -0
  950. package/src/styles/fonts/noto-serif-kr/400/835b6505bb9eea9678925a1fa885353d.woff2 +0 -0
  951. package/src/styles/fonts/noto-serif-kr/400/8b5c9ef81159f31d2ab35f45ca4373e0.woff2 +0 -0
  952. package/src/styles/fonts/noto-serif-kr/400/8b91c7c2ed390f1278b9befa3aa87233.woff2 +0 -0
  953. package/src/styles/fonts/noto-serif-kr/400/8fb45117a62d92dce44a80f0b729ead5.woff2 +0 -0
  954. package/src/styles/fonts/noto-serif-kr/400/90b7848e9b1623b77bdcf155e90b839c.woff2 +0 -0
  955. package/src/styles/fonts/noto-serif-kr/400/985d4d41afa0934a4eb2de35473fb9a2.woff2 +0 -0
  956. package/src/styles/fonts/noto-serif-kr/400/9bb38fd05201de666b88b82d56a386f7.woff2 +0 -0
  957. package/src/styles/fonts/noto-serif-kr/400/9eff2ab2a9d2ced47ab761bf6fdb11ec.woff2 +0 -0
  958. package/src/styles/fonts/noto-serif-kr/400/9f1963fe8d4d6878d717d872a8f3fdb5.woff2 +0 -0
  959. package/src/styles/fonts/noto-serif-kr/400/a0d00fe4816c95a8c7dffd445ef00b03.woff2 +0 -0
  960. package/src/styles/fonts/noto-serif-kr/400/a0f199077fa1a33bc2a1e01c64de7fe6.woff2 +0 -0
  961. package/src/styles/fonts/noto-serif-kr/400/a7c35e42a659347e490c3cb7983b2e7f.woff2 +0 -0
  962. package/src/styles/fonts/noto-serif-kr/400/aa662092cf249707123ca4d575e2764b.woff2 +0 -0
  963. package/src/styles/fonts/noto-serif-kr/400/aae1eda193285ab817a2d1b408440326.woff2 +0 -0
  964. package/src/styles/fonts/noto-serif-kr/400/b0cb664cb2e1371efda8943c0b7dcd1c.woff2 +0 -0
  965. package/src/styles/fonts/noto-serif-kr/400/b0d1cdced482352cf0d3ae58638aacb9.woff2 +0 -0
  966. package/src/styles/fonts/noto-serif-kr/400/b320f5d185b2cff933ac549c184031c5.woff2 +0 -0
  967. package/src/styles/fonts/noto-serif-kr/400/ba9c59d7dfa4494db1bb764ada81467d.woff2 +0 -0
  968. package/src/styles/fonts/noto-serif-kr/400/bab547459d514f46206e340c4bb2dc88.woff2 +0 -0
  969. package/src/styles/fonts/noto-serif-kr/400/bcc39eda837bb7a7a3d37c8c60fffb81.woff2 +0 -0
  970. package/src/styles/fonts/noto-serif-kr/400/bd73264d7f98776708d5d6f3c9b78fcc.woff2 +0 -0
  971. package/src/styles/fonts/noto-serif-kr/400/bed610b217d500f5975cfc9fe6157570.woff2 +0 -0
  972. package/src/styles/fonts/noto-serif-kr/400/bf8901f8f11d4f433ea17dabc9370ea6.woff2 +0 -0
  973. package/src/styles/fonts/noto-serif-kr/400/c4143bb9f2fe77b6ccf20088a8904650.woff2 +0 -0
  974. package/src/styles/fonts/noto-serif-kr/400/c7ff3f6bbdcd5f604b7343602ab904df.woff2 +0 -0
  975. package/src/styles/fonts/noto-serif-kr/400/c945c62368357d05a53206620460fb30.woff2 +0 -0
  976. package/src/styles/fonts/noto-serif-kr/400/ce022e18a1377ac509443c3c3790b431.woff2 +0 -0
  977. package/src/styles/fonts/noto-serif-kr/400/cf9cffe56636322f62b40d61130fbc5e.woff2 +0 -0
  978. package/src/styles/fonts/noto-serif-kr/400/d20d8944bc0b85f5b2aae4b24f343516.woff2 +0 -0
  979. package/src/styles/fonts/noto-serif-kr/400/d36644d6502527e1fff205d0c7eca434.woff2 +0 -0
  980. package/src/styles/fonts/noto-serif-kr/400/d40ab99c7a38026f411c8f112f742b48.woff2 +0 -0
  981. package/src/styles/fonts/noto-serif-kr/400/dc6e234ded795e91f76d6647f628fbf0.woff2 +0 -0
  982. package/src/styles/fonts/noto-serif-kr/400/dd0cfdfdac0866e66d587e2b5a9e9961.woff2 +0 -0
  983. package/src/styles/fonts/noto-serif-kr/400/de304c8a02e45ded4f8dcc479d167198.woff2 +0 -0
  984. package/src/styles/fonts/noto-serif-kr/400/e8c364c16daa04835bf32d293d2598db.woff2 +0 -0
  985. package/src/styles/fonts/noto-serif-kr/400/ec86e23683052da5cfdc3b77641bd15a.woff2 +0 -0
  986. package/src/styles/fonts/noto-serif-kr/400/eda1b0cb6d1719dd9bedcf3216a9e8de.woff2 +0 -0
  987. package/src/styles/fonts/noto-serif-kr/400/ee6fce20b420a480714607c66d7f97e5.woff2 +0 -0
  988. package/src/styles/fonts/noto-serif-kr/400/eee3836d6ac17ebb2c450bbcbc9db121.woff2 +0 -0
  989. package/src/styles/fonts/noto-serif-kr/400/f5738255e92d8dd34a46d1bcdf4c4074.woff2 +0 -0
  990. package/src/styles/fonts/noto-serif-kr/400/fa6e58ce4b52695e7ae19bbea6336ec8.woff2 +0 -0
  991. package/src/styles/fonts/noto-serif-kr/400/fd2069e6e8588c70b4f11364093b81f2.woff2 +0 -0
  992. package/src/styles/fonts/noto-serif-kr/700/04b8bde59cff68eeee74fb1914eb09c7.woff2 +0 -0
  993. package/src/styles/fonts/noto-serif-kr/700/05ac821472e235943ed1435e4bb8ecad.woff2 +0 -0
  994. package/src/styles/fonts/noto-serif-kr/700/074c1f8483d5a4d8c45c8c5f3e4cbb32.woff2 +0 -0
  995. package/src/styles/fonts/noto-serif-kr/700/1380210a722ac9aeef54005ad7b015c9.woff2 +0 -0
  996. package/src/styles/fonts/noto-serif-kr/700/17c7f5d0a45e92ede0e5dec3a2c77efa.woff2 +0 -0
  997. package/src/styles/fonts/noto-serif-kr/700/1be602ad456b0d75902d352116cb35fd.woff2 +0 -0
  998. package/src/styles/fonts/noto-serif-kr/700/2612c60f9dc5459ac42763591240a1d6.woff2 +0 -0
  999. package/src/styles/fonts/noto-serif-kr/700/2ab8cf1f23a5ac7939a7876054e711a7.woff2 +0 -0
  1000. package/src/styles/fonts/noto-serif-kr/700/34e6750e00c3a911ef87dc66b336594d.woff2 +0 -0
  1001. package/src/styles/fonts/noto-serif-kr/700/36f3df4730cfca4fc77fe52b52e6a126.woff2 +0 -0
  1002. package/src/styles/fonts/noto-serif-kr/700/37887deb7a9c466cf2af6ee7ff372ea6.woff2 +0 -0
  1003. package/src/styles/fonts/noto-serif-kr/700/3aba89c4d4281553078de4622b498cbb.woff2 +0 -0
  1004. package/src/styles/fonts/noto-serif-kr/700/3d88558097559d775231194d43745ba7.woff2 +0 -0
  1005. package/src/styles/fonts/noto-serif-kr/700/3dc3e8c35524cad2d1236f3393104ccf.woff2 +0 -0
  1006. package/src/styles/fonts/noto-serif-kr/700/45140742dfa8686b58db2899ce89f89a.woff2 +0 -0
  1007. package/src/styles/fonts/noto-serif-kr/700/469d2754e315e77270c12fa0ab28026c.woff2 +0 -0
  1008. package/src/styles/fonts/noto-serif-kr/700/4c0760284569b87d8f2290c324953973.woff2 +0 -0
  1009. package/src/styles/fonts/noto-serif-kr/700/4cba92c942694bdc479bc54101bb1aa4.woff2 +0 -0
  1010. package/src/styles/fonts/noto-serif-kr/700/4e7d263c30bb48604069a3b4404d4eeb.woff2 +0 -0
  1011. package/src/styles/fonts/noto-serif-kr/700/5279c7e465d9871edf51fd02e691eee7.woff2 +0 -0
  1012. package/src/styles/fonts/noto-serif-kr/700/54bfdb6f21f9d6191e5100580239e14f.woff2 +0 -0
  1013. package/src/styles/fonts/noto-serif-kr/700/56be5e32fd01668fe5ba814d94905839.woff2 +0 -0
  1014. package/src/styles/fonts/noto-serif-kr/700/615b38e0b5bb3ea68426f44f47706e6f.woff2 +0 -0
  1015. package/src/styles/fonts/noto-serif-kr/700/65e9c4585d71bf48a5c62f367010da16.woff2 +0 -0
  1016. package/src/styles/fonts/noto-serif-kr/700/6b75213eb0be40ce84241eb2bb438a2e.woff2 +0 -0
  1017. package/src/styles/fonts/noto-serif-kr/700/7520ca6ca8c60eb1e62d50e71c8d30f1.woff2 +0 -0
  1018. package/src/styles/fonts/noto-serif-kr/700/759a647b77791b1e98f99bc0ab5317a7.woff2 +0 -0
  1019. package/src/styles/fonts/noto-serif-kr/700/76e51630143b95b6322ef93ad330da7a.woff2 +0 -0
  1020. package/src/styles/fonts/noto-serif-kr/700/79aa7c8c842c4a27cf57c0a3a1ffca5a.woff2 +0 -0
  1021. package/src/styles/fonts/noto-serif-kr/700/7cc72fd2c9105560422b6a67c6162945.woff2 +0 -0
  1022. package/src/styles/fonts/noto-serif-kr/700/7d0ea0690e432462f4d05a23d720ec19.woff2 +0 -0
  1023. package/src/styles/fonts/noto-serif-kr/700/7dffa5c1bec57e0903fd62357401ff1a.woff2 +0 -0
  1024. package/src/styles/fonts/noto-serif-kr/700/82f6ccc063960eed1cdfd1d61ada8862.woff2 +0 -0
  1025. package/src/styles/fonts/noto-serif-kr/700/845b4b67564d62cf5cad242f7ac08ea5.woff2 +0 -0
  1026. package/src/styles/fonts/noto-serif-kr/700/84c8e7bc0931008ed91f44ed12dfea94.woff2 +0 -0
  1027. package/src/styles/fonts/noto-serif-kr/700/887a11290ba78b1e66c6d2f67043005e.woff2 +0 -0
  1028. package/src/styles/fonts/noto-serif-kr/700/88db1d042074fb6e66821ffc10941930.woff2 +0 -0
  1029. package/src/styles/fonts/noto-serif-kr/700/8dc18c0cebe6aa4bf4c45dbb831048ab.woff2 +0 -0
  1030. package/src/styles/fonts/noto-serif-kr/700/919a879bd2d580d8491a31a449390689.woff2 +0 -0
  1031. package/src/styles/fonts/noto-serif-kr/700/91da6cb174bebfb96976e2f1316be2fe.woff2 +0 -0
  1032. package/src/styles/fonts/noto-serif-kr/700/934dfdbed2bb2c4b6129199d699a34fa.woff2 +0 -0
  1033. package/src/styles/fonts/noto-serif-kr/700/97d7a17234f2b5030ae9697ae00aded2.woff2 +0 -0
  1034. package/src/styles/fonts/noto-serif-kr/700/995c4fda62d25c3b79dd5987737df6ae.woff2 +0 -0
  1035. package/src/styles/fonts/noto-serif-kr/700/9d0afa53dc2f92ba42024f55f11f6779.woff2 +0 -0
  1036. package/src/styles/fonts/noto-serif-kr/700/9e13a47242926f1cd7d68c08d9ef8889.woff2 +0 -0
  1037. package/src/styles/fonts/noto-serif-kr/700/a379ada89abd750c587ded29f77e731c.woff2 +0 -0
  1038. package/src/styles/fonts/noto-serif-kr/700/a48be56ce5d3a99dc8f8331398004412.woff2 +0 -0
  1039. package/src/styles/fonts/noto-serif-kr/700/a806759e72987951d6d08b7cbdf36a1b.woff2 +0 -0
  1040. package/src/styles/fonts/noto-serif-kr/700/a88481ec8bc7be11cb66e46781a79bb9.woff2 +0 -0
  1041. package/src/styles/fonts/noto-serif-kr/700/a9a016d4a93409f65278327e8a8bb38d.woff2 +0 -0
  1042. package/src/styles/fonts/noto-serif-kr/700/ab92d41062a7644faa45f50bf384454a.woff2 +0 -0
  1043. package/src/styles/fonts/noto-serif-kr/700/b326a8a9c33b554db570da94f60bc380.woff2 +0 -0
  1044. package/src/styles/fonts/noto-serif-kr/700/b6117ff2993b11bb1fdc7ea3588a010c.woff2 +0 -0
  1045. package/src/styles/fonts/noto-serif-kr/700/b61982951bd51b724143c30dfaaa9fe9.woff2 +0 -0
  1046. package/src/styles/fonts/noto-serif-kr/700/c0098958e20db68cab90097b5e62516f.woff2 +0 -0
  1047. package/src/styles/fonts/noto-serif-kr/700/c4bfaa5e50798246e3770718b7a7c84a.woff2 +0 -0
  1048. package/src/styles/fonts/noto-serif-kr/700/c84598999133455503042e06f4ab79cb.woff2 +0 -0
  1049. package/src/styles/fonts/noto-serif-kr/700/ca9a533988d7019597a60d4e17127e0c.woff2 +0 -0
  1050. package/src/styles/fonts/noto-serif-kr/700/cf2b28f90f47276f7e2688a65e88a101.woff2 +0 -0
  1051. package/src/styles/fonts/noto-serif-kr/700/d689b1861d7e4377dd72ad3013482612.woff2 +0 -0
  1052. package/src/styles/fonts/noto-serif-kr/700/d9047070d72a816b3dba9d40c2d85e69.woff2 +0 -0
  1053. package/src/styles/fonts/noto-serif-kr/700/da04549f3f4ed28076b01b8cd710d313.woff2 +0 -0
  1054. package/src/styles/fonts/noto-serif-kr/700/da7af303f8c645f9a9dbae0e6e32dd35.woff2 +0 -0
  1055. package/src/styles/fonts/noto-serif-kr/700/df9568257eb29b156449fdd4bec5ec76.woff2 +0 -0
  1056. package/src/styles/fonts/noto-serif-kr/700/e067cd0ed76c90cd0a93c9339253f20b.woff2 +0 -0
  1057. package/src/styles/fonts/noto-serif-kr/700/e08b07772e7bed3cec2832d43f7fd339.woff2 +0 -0
  1058. package/src/styles/fonts/noto-serif-kr/700/e12150d5a39b30be8f567968c7a527b0.woff2 +0 -0
  1059. package/src/styles/fonts/noto-serif-kr/700/e53fcb2381eee345db4f6f973dd95a3e.woff2 +0 -0
  1060. package/src/styles/fonts/noto-serif-kr/700/e5bd313ef81f687d398aacb11cec3069.woff2 +0 -0
  1061. package/src/styles/fonts/noto-serif-kr/700/eb5afb3d952b8593782caec6026514b6.woff2 +0 -0
  1062. package/src/styles/fonts/noto-serif-kr/700/edd6a4f608d04fc0351d7688cfc321e4.woff2 +0 -0
  1063. package/src/styles/fonts/noto-serif-kr/700/f9695c6c4df2bf6bc03045ff79d4f01f.woff2 +0 -0
  1064. package/src/styles/fonts/noto-serif-kr/700/fada6eaa68ff8816afe43d2a36c5423e.woff2 +0 -0
  1065. package/src/styles/fonts/noto-serif-kr/700/fbcc4bf5367218951172bdee6f77d7a6.woff2 +0 -0
  1066. package/src/styles/fonts/noto-serif-kr/noto-serif-kr.css +2601 -0
  1067. package/src/styles/site-media.css +823 -0
  1068. package/src/styles/tokens.css +292 -21
  1069. package/src/styles/ui.css +4188 -1857
  1070. package/src/types/bindings.ts +3 -1
  1071. package/src/types/config.ts +139 -9
  1072. package/src/types/constants.ts +46 -11
  1073. package/src/types/entities.ts +24 -8
  1074. package/src/types/operations.ts +80 -1
  1075. package/src/types/props.ts +10 -2
  1076. package/src/types/raw-assets.d.ts +39 -0
  1077. package/src/types/views.ts +28 -7
  1078. package/src/ui/__tests__/color-themes.test.ts +7 -40
  1079. package/src/ui/__tests__/font-themes.test.ts +30 -11
  1080. package/src/ui/color-themes.ts +311 -270
  1081. package/src/ui/compose/ComposeDialog.tsx +712 -394
  1082. package/src/ui/compose/ComposePrompt.tsx +15 -10
  1083. package/src/ui/dash/ActionButtons.tsx +27 -18
  1084. package/src/ui/dash/DangerZone.tsx +15 -10
  1085. package/src/ui/dash/FormatBadge.tsx +21 -8
  1086. package/src/ui/dash/StatusBadge.tsx +33 -22
  1087. package/src/ui/dash/appearance/AdvancedContent.tsx +44 -30
  1088. package/src/ui/dash/appearance/CodeInjectionContent.tsx +164 -0
  1089. package/src/ui/dash/appearance/ColorThemeContent.tsx +127 -160
  1090. package/src/ui/dash/appearance/FontThemeContent.tsx +20 -15
  1091. package/src/ui/dash/appearance/NavigationContent.tsx +368 -225
  1092. package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +54 -0
  1093. package/src/ui/dash/settings/AccountContent.tsx +34 -23
  1094. package/src/ui/dash/settings/AccountMenuContent.tsx +226 -137
  1095. package/src/ui/dash/settings/ApiTokensContent.tsx +122 -79
  1096. package/src/ui/dash/settings/AvatarContent.tsx +73 -45
  1097. package/src/ui/dash/settings/DeleteAccountContent.tsx +106 -66
  1098. package/src/ui/dash/settings/GeneralContent.tsx +274 -157
  1099. package/src/ui/dash/settings/GitHubSyncContent.tsx +558 -0
  1100. package/src/ui/dash/settings/SessionsContent.tsx +79 -38
  1101. package/src/ui/dash/settings/SettingsRootContent.tsx +209 -109
  1102. package/src/ui/dash/settings/__tests__/AccountMenuContent.test.tsx +67 -0
  1103. package/src/ui/dash/settings/__tests__/GeneralContent.test.tsx +75 -0
  1104. package/src/ui/feed/CuratedThreadPreview.tsx +24 -14
  1105. package/src/ui/feed/LinkCard.tsx +116 -84
  1106. package/src/ui/feed/LinkPreview.tsx +75 -0
  1107. package/src/ui/feed/NoteCard.tsx +60 -16
  1108. package/src/ui/feed/PostStatusBadges.tsx +15 -0
  1109. package/src/ui/feed/QuoteCard.tsx +10 -3
  1110. package/src/ui/feed/ThreadPreview.tsx +62 -36
  1111. package/src/ui/feed/TimelineFeed.tsx +2 -1
  1112. package/src/ui/feed/__tests__/thread-preview.test.ts +220 -11
  1113. package/src/ui/feed/__tests__/timeline-cards.test.ts +186 -5
  1114. package/src/ui/feed/thread-preview-state.ts +23 -10
  1115. package/src/ui/font-themes.ts +57 -97
  1116. package/src/ui/layouts/BaseLayout.tsx +221 -136
  1117. package/src/ui/layouts/SiteLayout.tsx +431 -143
  1118. package/src/ui/layouts/__tests__/BaseLayout.test.tsx +76 -6
  1119. package/src/ui/layouts/__tests__/SiteLayout.test.tsx +76 -0
  1120. package/src/ui/pages/ArchivePage.tsx +320 -207
  1121. package/src/ui/pages/BrandPage.tsx +499 -341
  1122. package/src/ui/pages/CollectionEditorPage.tsx +50 -30
  1123. package/src/ui/pages/CollectionPage.tsx +151 -78
  1124. package/src/ui/pages/CollectionsPage.tsx +27 -18
  1125. package/src/ui/pages/ComposePage.tsx +15 -10
  1126. package/src/ui/pages/FeaturedPage.tsx +16 -11
  1127. package/src/ui/pages/HomePage.tsx +15 -10
  1128. package/src/ui/pages/PostPage.tsx +5 -1
  1129. package/src/ui/pages/SearchPage.tsx +93 -43
  1130. package/src/ui/pages/ThemeSamplePage.tsx +758 -520
  1131. package/src/ui/pages/__tests__/ArchivePage.test.tsx +72 -0
  1132. package/src/ui/shared/CollectionDirectory.tsx +215 -34
  1133. package/src/ui/shared/CollectionsManager.tsx +155 -75
  1134. package/src/ui/shared/DecorativeQuoteMark.tsx +12 -9
  1135. package/src/ui/shared/MediaGallery.tsx +350 -256
  1136. package/src/ui/shared/Pagination.tsx +36 -25
  1137. package/src/ui/shared/PostFooter.tsx +139 -96
  1138. package/src/ui/shared/__tests__/media-gallery.test.ts +27 -0
  1139. package/src/ui/shared/__tests__/navigation-labels.test.ts +79 -28
  1140. package/src/ui/shared/__tests__/post-footer.test.ts +42 -17
  1141. package/src/ui/shared/collection-management-labels.ts +109 -33
  1142. package/src/ui/shared/navigation-labels.ts +78 -8
  1143. package/bin/lib/site-localize-media.js +0 -427
  1144. package/dist/client/_assets/client-auth.js +0 -3260
  1145. package/dist/client/_assets/client.css +0 -2
  1146. package/dist/client/_assets/client.js +0 -380
  1147. package/src/__tests__/site-localize-media.test.ts +0 -150
  1148. package/src/client/components/jant-collection-sidebar.ts +0 -816
  1149. package/src/i18n/locales/en.ts +0 -1
  1150. package/src/i18n/locales/zh-Hans.po +0 -3197
  1151. package/src/i18n/locales/zh-Hans.ts +0 -1
  1152. package/src/i18n/locales/zh-Hant.po +0 -3197
  1153. package/src/i18n/locales/zh-Hant.ts +0 -1
  1154. package/src/routes/feed/rss.ts +0 -216
  1155. package/src/types/lingui-react-macro.d.ts +0 -34
  1156. /package/dist/client/_assets/chunks/{heic-to-XcUDQvtx.js → heic-to-DUUaO23q.js} +0 -0
  1157. /package/dist/client/_assets/chunks/{module-ChVQstFd.js → module-DcsAZQZ_.js} +0 -0
  1158. /package/dist/client/_assets/chunks/{native-CR5HLOyf.js → native-DpcrFAPh.js} +0 -0
  1159. /package/dist/client/_assets/{client-cjk.css → client-cjk-B7Z0snDu.css} +0 -0
  1160. /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
@@ -439,42 +317,16 @@ msgid "Buttons can stay steady, but links, thread markers, and subtle emphasis s
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
319
  #. @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
- #. @context: Button label to dismiss a dialog or action
446
- #. @context: Button to cancel form
447
320
  #. @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,6 +366,11 @@ 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
@@ -526,10 +383,6 @@ msgid "collection"
526
383
  msgstr "collection"
527
384
 
528
385
  #. @context: Compose collection selector trigger label
529
- #. @context: Custom URL target type badge for a collection
530
- #. @context: Custom URL type option
531
- #: src/routes/dash/custom-urls.tsx
532
- #: src/routes/dash/custom-urls.tsx
533
386
  #: src/ui/compose/ComposeDialog.tsx
534
387
  msgid "Collection"
535
388
  msgstr "Collection"
@@ -572,7 +425,6 @@ msgstr "collections"
572
425
 
573
426
  #. @context: Breadcrumb link to collections page
574
427
  #. @context: Breadcrumb link to collections page
575
- #. @context: Built-in navigation label for the collections page
576
428
  #. @context: Collections page heading
577
429
  #. @context: Collections page heading
578
430
  #. @context: Inactive nav link label on sample page
@@ -581,7 +433,12 @@ msgstr "collections"
581
433
  #: src/ui/pages/CollectionsPage.tsx
582
434
  #: src/ui/pages/ThemeSamplePage.tsx
583
435
  #: src/ui/shared/CollectionsManager.tsx
436
+ msgid "Collections"
437
+ msgstr "Collections"
438
+
439
+ #. @context: Built-in navigation label for the collections page
584
440
  #: src/ui/shared/navigation-labels.ts
441
+ msgctxt "nav"
585
442
  msgid "Collections"
586
443
  msgstr "Collections"
587
444
 
@@ -590,15 +447,12 @@ msgstr "Collections"
590
447
  msgid "Color check"
591
448
  msgstr "Color check"
592
449
 
593
- #. @context: Appearance settings heading
594
- #: src/ui/dash/appearance/ColorThemeContent.tsx
595
- msgid "Color theme"
596
- msgstr "Color theme"
597
-
598
- #. @context: Settings item — color theme settings
599
- #: src/ui/dash/settings/SettingsRootContent.tsx
600
- msgid "Color Theme"
601
- 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"
602
456
 
603
457
  #. @context: Inline link label in the sample detail article
604
458
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -610,16 +464,6 @@ msgstr "Compare it against the theme controls"
610
464
  msgid "Complete Setup"
611
465
  msgstr "Complete Setup"
612
466
 
613
- #. @context: Step 2 heading — user must type confirmation phrase
614
- #: src/ui/dash/settings/DeleteAccountContent.tsx
615
- msgid "Confirm account deletion"
616
- msgstr "Confirm account deletion"
617
-
618
- #. @context: Password form field
619
- #: src/ui/dash/settings/AccountContent.tsx
620
- msgid "Confirm New Password"
621
- msgstr "Confirm New Password"
622
-
623
467
  #. @context: Password reset form field
624
468
  #: src/routes/auth/reset.tsx
625
469
  msgid "Confirm Password"
@@ -630,33 +474,6 @@ msgstr "Confirm Password"
630
474
  msgid "Controls"
631
475
  msgstr "Controls"
632
476
 
633
- #. @context: Feedback after copying API token
634
- #: src/ui/dash/settings/ApiTokensContent.tsx
635
- msgid "Copied"
636
- msgstr "Copied"
637
-
638
- #. @context: Button to copy a URL to the clipboard
639
- #: src/ui/dash/settings/GeneralContent.tsx
640
- msgid "Copy"
641
- msgstr "Copy"
642
-
643
- #. @context: Button to copy API token to clipboard
644
- #. @context: Button to copy API token to clipboard
645
- #: src/ui/dash/settings/ApiTokensContent.tsx
646
- #: src/ui/dash/settings/ApiTokensContent.tsx
647
- msgid "Copy Token"
648
- msgstr "Copy Token"
649
-
650
- #. @context: Warning to copy newly created API token
651
- #: src/ui/dash/settings/ApiTokensContent.tsx
652
- msgid "Copy your token now — it won't be shown again."
653
- msgstr "Copy your token now — it won't be shown again."
654
-
655
- #. @context: Error toast when copying text to the clipboard fails
656
- #: src/ui/dash/settings/GeneralContent.tsx
657
- msgid "Could not copy. Try again."
658
- msgstr "Could not copy. Try again."
659
-
660
477
  #. @context: Error toast when account creation fails
661
478
  #. @context: Error toast when account creation fails
662
479
  #. @context: Error toast when account creation fails
@@ -666,19 +483,17 @@ msgstr "Could not copy. Try again."
666
483
  msgid "Couldn't create your account. Check the details and try again."
667
484
  msgstr "Couldn't create your account. Check the details and try again."
668
485
 
669
- #. @context: Error toast when nav delete fails
670
- #: src/ui/dash/appearance/NavigationContent.tsx
671
- msgid "Couldn't delete. Try again in a moment."
672
- 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."
673
490
 
674
491
  #. @context: Toast when publish fails and post is auto-saved as draft
675
492
  #: src/ui/compose/ComposeDialog.tsx
676
493
  msgid "Couldn't publish. Saved as draft."
677
494
  msgstr "Couldn't publish. Saved as draft."
678
495
 
679
- #. @context: Error toast when nav save fails
680
496
  #. @context: Toast when save fails
681
- #: src/ui/dash/appearance/NavigationContent.tsx
682
497
  #: src/ui/shared/collection-management-labels.ts
683
498
  msgid "Couldn't save. Try again in a moment."
684
499
  msgstr "Couldn't save. Try again in a moment."
@@ -688,90 +503,27 @@ msgstr "Couldn't save. Try again in a moment."
688
503
  msgid "Create a collection to get started."
689
504
  msgstr "Create a collection to get started."
690
505
 
691
- #. @context: Label for curl example
692
- #: src/ui/dash/settings/ApiTokensContent.tsx
693
- msgid "Create a post with curl:"
694
- msgstr "Create a post with curl:"
695
-
696
- #. @context: Button to save new custom URL
697
- #: src/routes/dash/custom-urls.tsx
698
- msgid "Create Custom URL"
699
- msgstr "Create Custom URL"
700
-
701
506
  #. @context: Setup page description
702
507
  #: src/routes/auth/setup.tsx
703
508
  msgid "Create your admin account."
704
509
  msgstr "Create your admin account."
705
510
 
706
- #. @context: Token creation date
707
- #. placeholder {0}: formatDate(token.createdAt)
708
- #: src/ui/dash/settings/ApiTokensContent.tsx
709
- msgid "Created {0}"
710
- msgstr "Created {0}"
711
-
712
- #. @context: Badge indicating the current active session
713
- #: src/ui/dash/settings/SessionsContent.tsx
714
- msgid "Current"
715
- msgstr "Current"
716
-
717
- #. @context: Password form field
718
- #: src/ui/dash/settings/AccountContent.tsx
719
- msgid "Current Password"
720
- msgstr "Current Password"
721
-
722
- #. @context: Error toast when current password verification fails
723
- #: src/routes/dash/settings.tsx
724
- msgid "Current password doesn't match. Try again."
725
- msgstr "Current password doesn't match. Try again."
726
-
727
511
  #. @context: Thread item label on sample page
728
512
  #: src/ui/pages/ThemeSamplePage.tsx
729
513
  msgid "Current post"
730
514
  msgstr "Current post"
731
515
 
732
- #. @context: Appearance settings heading for custom CSS
733
- #. @context: Link to Custom CSS settings from color theme page
734
- #. @context: Settings item — custom CSS settings
735
- #: src/ui/dash/appearance/AdvancedContent.tsx
736
- #: src/ui/dash/appearance/ColorThemeContent.tsx
737
- #: src/ui/dash/settings/SettingsRootContent.tsx
738
- msgid "Custom CSS"
739
- msgstr "Custom CSS"
740
-
741
- #. @context: Toast after saving custom CSS
742
- #: src/routes/dash/settings.tsx
743
- msgid "Custom CSS updated."
744
- msgstr "Custom CSS updated."
745
-
746
516
  #. @context: Compose publish settings slug section label
747
517
  #: src/ui/compose/ComposeDialog.tsx
748
518
  msgid "Custom link"
749
519
  msgstr "Custom link"
750
520
 
751
- #. @context: Settings item — custom URL settings
752
- #. @context: Settings section heading
753
- #: src/routes/dash/custom-urls.tsx
754
- #: src/ui/dash/settings/SettingsRootContent.tsx
755
- msgid "Custom URLs"
756
- msgstr "Custom URLs"
757
-
758
521
  #. @context: Destructive badge label on sample page
759
522
  #: src/ui/pages/ThemeSamplePage.tsx
760
523
  msgid "Danger"
761
524
  msgstr "Danger"
762
525
 
763
- #. @context: Section heading for dangerous/destructive actions
764
- #. @context: Settings group label for destructive account actions
765
- #. @context: Settings group label for destructive account actions
766
- #: src/ui/dash/DangerZone.tsx
767
- #: src/ui/dash/settings/AccountMenuContent.tsx
768
- #: src/ui/dash/settings/AccountMenuContent.tsx
769
- msgid "Danger Zone"
770
- msgstr "Danger Zone"
771
-
772
- #. @context: Theme mode option label
773
526
  #. @context: Theme mode option on sample page
774
- #: src/ui/dash/appearance/ColorThemeContent.tsx
775
527
  #: src/ui/pages/ThemeSamplePage.tsx
776
528
  msgid "Dark"
777
529
  msgstr "Dark"
@@ -783,11 +535,6 @@ msgstr "Dark"
783
535
  msgid "Dark backgrounds"
784
536
  msgstr "Dark backgrounds"
785
537
 
786
- #. @context: Settings group label for data export/import
787
- #: src/ui/dash/settings/AccountMenuContent.tsx
788
- msgid "Data"
789
- msgstr "Data"
790
-
791
538
  #. @context: Badge label on sample page
792
539
  #. @context: Usage label for the default logo asset card
793
540
  #: src/ui/pages/BrandPage.tsx
@@ -810,44 +557,16 @@ msgstr "default note sample"
810
557
  msgid "Default preview image for social shares and link unfurls."
811
558
  msgstr "Default preview image for social shares and link unfurls."
812
559
 
813
- #. @context: Button to delete custom URL
814
- #. @context: Button to delete item
815
560
  #. @context: Delete collection action
816
- #. @context: Delete nav item
817
- #: src/routes/dash/custom-urls.tsx
818
- #: src/ui/dash/ActionButtons.tsx
819
- #: src/ui/dash/appearance/NavigationContent.tsx
820
561
  #: src/ui/shared/collection-management-labels.ts
821
562
  msgid "Delete"
822
563
  msgstr "Delete"
823
564
 
824
- #. @context: Page title for account deletion
825
- #. @context: Settings item — delete account and all data
826
- #: src/ui/dash/settings/AccountMenuContent.tsx
827
- #: src/ui/dash/settings/DeleteAccountContent.tsx
828
- msgid "Delete Account"
829
- msgstr "Delete Account"
830
-
831
- #. @context: Final destructive button to delete account and all data
832
- #: src/ui/dash/settings/DeleteAccountContent.tsx
833
- msgid "Delete Account Permanently"
834
- msgstr "Delete Account Permanently"
835
-
836
565
  #. @context: Draft item action
837
566
  #: src/ui/compose/ComposeDialog.tsx
838
567
  msgid "Delete Draft"
839
568
  msgstr "Delete Draft"
840
569
 
841
- #. @context: Settings item — open the hosted site danger zone in the control plane
842
- #: src/ui/dash/settings/AccountMenuContent.tsx
843
- msgid "Delete Hosted Site"
844
- msgstr "Delete Hosted Site"
845
-
846
- #. @context: Final browser confirm dialog before account deletion
847
- #: src/ui/dash/settings/DeleteAccountContent.tsx
848
- msgid "Delete this blog permanently? This cannot be undone."
849
- msgstr "Delete this blog permanently? This cannot be undone."
850
-
851
570
  #. @context: Confirm dialog for deleting a collection
852
571
  #: src/ui/shared/collection-management-labels.ts
853
572
  msgid "Delete this collection permanently? Posts inside won't be removed."
@@ -858,22 +577,14 @@ msgstr "Delete this collection permanently? Posts inside won't be removed."
858
577
  msgid "Demo credentials are pre-filled — hit Sign In to continue."
859
578
  msgstr "Demo credentials are pre-filled — hit Sign In to continue."
860
579
 
861
- #. @context: Notice shown on the account page when demo restrictions are enabled
862
- #: src/ui/dash/settings/AccountMenuContent.tsx
863
- msgid "Demo mode hides sessions, password changes, and account deletion. Export still works."
864
- msgstr "Demo mode hides sessions, password changes, and account deletion. Export still works."
865
-
866
- #. @context: Help text explaining that SEO indexing is locked in demo mode
867
- #: src/ui/dash/settings/GeneralContent.tsx
868
- msgid "Demo sites always stay hidden from search engines."
869
- msgstr "Demo sites always stay hidden from search engines."
870
-
871
580
  #. @context: Alt text textarea placeholder
872
581
  #: src/ui/compose/ComposeDialog.tsx
873
582
  msgid "Describe this for people with visual impairments..."
874
583
  msgstr "Describe this for people with visual impairments..."
875
584
 
876
585
  #. @context: Collection form field
586
+ #. @context: Field label for a custom collections link description
587
+ #: src/ui/shared/collection-management-labels.ts
877
588
  #: src/ui/shared/collection-management-labels.ts
878
589
  msgid "Description (optional)"
879
590
  msgstr "Description (optional)"
@@ -881,8 +592,6 @@ msgstr "Description (optional)"
881
592
  #. @context: Collection label on theme sample content card
882
593
  #. @context: Collection tag on sample note post
883
594
  #. @context: Collection tag on the sample detail article
884
- #. @context: Color theme preview collection label
885
- #: src/ui/dash/appearance/ColorThemeContent.tsx
886
595
  #: src/ui/pages/ThemeSamplePage.tsx
887
596
  #: src/ui/pages/ThemeSamplePage.tsx
888
597
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -894,11 +603,6 @@ msgstr "Design"
894
603
  msgid "Designing a calmer default accent for Jant"
895
604
  msgstr "Designing a calmer default accent for Jant"
896
605
 
897
- #. @context: Redirect destination field
898
- #: src/routes/dash/custom-urls.tsx
899
- msgid "Destination"
900
- msgstr "Destination"
901
-
902
606
  #. @context: Confirm close action sheet - discard changes button for editing published post
903
607
  #. @context: More menu - discard post
904
608
  #: src/ui/compose/ComposeDialog.tsx
@@ -911,21 +615,6 @@ msgstr "Discard"
911
615
  msgid "Discard changes?"
912
616
  msgstr "Discard changes?"
913
617
 
914
- #. @context: Checkbox to show avatar in the site header
915
- #: src/ui/dash/settings/AvatarContent.tsx
916
- msgid "Display avatar in my site header"
917
- msgstr "Display avatar in my site header"
918
-
919
- #. @context: Help text for site footer field
920
- #: src/ui/dash/settings/GeneralContent.tsx
921
- msgid "Displayed at the bottom of all posts and pages. Markdown supported."
922
- msgstr "Displayed at the bottom of all posts and pages. Markdown supported."
923
-
924
- #. @context: Theme group heading on color theme settings page
925
- #: src/ui/dash/appearance/ColorThemeContent.tsx
926
- msgid "Distinctive Mood"
927
- msgstr "Distinctive Mood"
928
-
929
618
  #. @context: Label for a divider item while organizing collections
930
619
  #: src/ui/shared/CollectionsManager.tsx
931
620
  msgid "Divider"
@@ -964,31 +653,11 @@ msgstr "Don't save"
964
653
  msgid "Done"
965
654
  msgstr "Done"
966
655
 
967
- #. @context: Step 1 heading — user must download a site export before deleting
968
- #: src/ui/dash/settings/DeleteAccountContent.tsx
969
- msgid "Download a site export"
970
- msgstr "Download a site export"
971
-
972
- #. @context: Settings item description for static site export
973
- #: src/ui/dash/settings/AccountMenuContent.tsx
974
- msgid "Download a Zola site ZIP for static publishing or import into another Jant."
975
- msgstr "Download a Zola site ZIP for static publishing or import into another Jant."
976
-
977
656
  #. @context: Primary hero button label for the brand pack ZIP
978
657
  #: src/ui/pages/BrandPage.tsx
979
658
  msgid "Download Brand Pack"
980
659
  msgstr "Download Brand Pack"
981
660
 
982
- #. @context: Button to download the site export ZIP before deletion
983
- #: src/ui/dash/settings/DeleteAccountContent.tsx
984
- msgid "Download Export ZIP"
985
- msgstr "Download Export ZIP"
986
-
987
- #. @context: Alert when site export download fails during account deletion
988
- #: src/ui/dash/settings/DeleteAccountContent.tsx
989
- msgid "Download failed. Please try again."
990
- msgstr "Download failed. Please try again."
991
-
992
661
  #. @context: Download button label for a non-SVG brand asset
993
662
  #: src/ui/pages/BrandPage.tsx
994
663
  msgid "Download file"
@@ -1014,11 +683,6 @@ msgstr "Download SVG"
1014
683
  msgid "Download the official Jant logo, icons, and preview files."
1015
684
  msgstr "Download the official Jant logo, icons, and preview files."
1016
685
 
1017
- #. @context: Post status badge - draft
1018
- #: src/ui/dash/StatusBadge.tsx
1019
- msgid "Draft"
1020
- msgstr "Draft"
1021
-
1022
686
  #. @context: Toast after draft deletion
1023
687
  #: src/ui/compose/ComposeDialog.tsx
1024
688
  msgid "Draft deleted."
@@ -1029,10 +693,12 @@ msgstr "Draft deleted."
1029
693
  msgid "Draft restored."
1030
694
  msgstr "Draft restored."
1031
695
 
696
+ #. @context: Toast after saving a draft post
1032
697
  #. @context: Toast after saving a draft post
1033
698
  #. @context: Toast after saving a draft post
1034
699
  #: src/routes/compose.tsx
1035
700
  #: src/routes/compose.tsx
701
+ #: src/routes/compose.tsx
1036
702
  msgid "Draft saved."
1037
703
  msgstr "Draft saved."
1038
704
 
@@ -1043,25 +709,23 @@ msgstr "Drafts"
1043
709
 
1044
710
  #. @context: Helper text shown while organizing collections
1045
711
  #: src/ui/shared/CollectionsManager.tsx
1046
- msgid "Drag collections and dividers into the order you want."
1047
- msgstr "Drag collections and dividers into the order you want."
1048
-
1049
- #. @context: Placeholder for API token name input
1050
- #: src/ui/dash/settings/ApiTokensContent.tsx
1051
- msgid "e.g. iOS Shortcuts"
1052
- 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."
1053
714
 
1054
- #. @context: Button to edit item
1055
715
  #. @context: Per-collection edit action
1056
716
  #. @context: Per-collection edit action
1057
717
  #. @context: Per-collection edit action
1058
- #: src/ui/dash/ActionButtons.tsx
1059
718
  #: src/ui/pages/CollectionEditorPage.tsx
1060
719
  #: src/ui/pages/CollectionEditorPage.tsx
1061
720
  #: src/ui/shared/collection-management-labels.ts
1062
721
  msgid "Edit"
1063
722
  msgstr "Edit"
1064
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
+
1065
729
  #. @context: Button to manually edit the collection link
1066
730
  #: src/ui/shared/collection-management-labels.ts
1067
731
  msgid "Edit link"
@@ -1072,6 +736,11 @@ msgstr "Edit link"
1072
736
  msgid "Edit post"
1073
737
  msgstr "Edit post"
1074
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
+
1075
744
  #. @context: Sample link post title on the theme sample page
1076
745
  #: src/ui/pages/ThemeSamplePage.tsx
1077
746
  msgid "Editorial interfaces worth borrowing from"
@@ -1089,6 +758,11 @@ msgstr "Email"
1089
758
  msgid "Emoji"
1090
759
  msgstr "Emoji"
1091
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
+
1092
766
  #. @context: Compose URL field error message
1093
767
  #: src/ui/compose/ComposeDialog.tsx
1094
768
  msgid "Enter a valid URL starting with http://, https://, or mailto:."
@@ -1123,51 +797,24 @@ msgstr "Everything most people need is in one ZIP."
1123
797
  msgid "Everything on this page is ready to use for articles, launch posts, directories, and product coverage."
1124
798
  msgstr "Everything on this page is ready to use for articles, launch posts, directories, and product coverage."
1125
799
 
1126
- #. @context: Settings item description for account settings on the settings home page when demo restrictions are enabled
1127
- #: src/ui/dash/settings/SettingsRootContent.tsx
1128
- msgid "Export and demo limits"
1129
- msgstr "Export and demo limits"
1130
-
1131
- #. @context: Confirmation text after downloading the site export in delete flow
1132
- #: src/ui/dash/settings/DeleteAccountContent.tsx
1133
- msgid "Export downloaded."
1134
- msgstr "Export downloaded."
1135
-
1136
- #. @context: Settings item — export a Zola static site ZIP
1137
- #: src/ui/dash/settings/AccountMenuContent.tsx
1138
- msgid "Export Static Site"
1139
- 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"
1140
804
 
1141
805
  #. @context: Title for the favicon asset card
1142
806
  #: src/ui/pages/BrandPage.tsx
1143
807
  msgid "Favicon"
1144
808
  msgstr "Favicon"
1145
809
 
1146
- #. @context: Settings item description for avatar
1147
- #: src/ui/dash/settings/SettingsRootContent.tsx
1148
- msgid "Favicon and the profile mark in your header"
1149
- msgstr "Favicon and the profile mark in your header"
1150
-
1151
810
  #. @context: Archive visibility filter - featured posts
1152
- #. @context: Browse filter for featured posts
1153
- #. @context: Browse filter label
1154
- #. @context: Browse filter label
1155
- #. @context: Browse filter label for featured posts
1156
811
  #. @context: Browser page title for the featured feed
1157
812
  #. @context: Browser page title for the featured feed
1158
813
  #. @context: Inactive browse tab label on sample page
1159
814
  #. @context: Page heading for the featured posts feed
1160
- #. @context: Post badge - featured
1161
- #. @context: Select option for using featured posts as the main RSS feed
1162
815
  #. @context: Tooltip and screen reader label for the featured-post icon in the post footer when no featured date is available
1163
816
  #: src/routes/pages/featured.tsx
1164
817
  #: src/routes/pages/home.tsx
1165
- #: src/ui/dash/appearance/NavigationContent.tsx
1166
- #: src/ui/dash/appearance/NavigationContent.tsx
1167
- #: src/ui/dash/appearance/NavigationContent.tsx
1168
- #: src/ui/dash/settings/GeneralContent.tsx
1169
- #: src/ui/dash/StatusBadge.tsx
1170
- #: src/ui/layouts/SiteLayout.tsx
1171
818
  #: src/ui/pages/ArchivePage.tsx
1172
819
  #: src/ui/pages/FeaturedPage.tsx
1173
820
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1175,37 +822,29 @@ msgstr "Favicon and the profile mark in your header"
1175
822
  msgid "Featured"
1176
823
  msgstr "Featured"
1177
824
 
1178
- #. @context: Label for the explicit featured RSS feed URL
1179
- #: src/ui/dash/settings/GeneralContent.tsx
1180
- msgid "Featured feed"
1181
- 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"
1182
830
 
1183
831
  #. @context: Tooltip and screen reader label for the featured-post icon in the post footer
1184
832
  #: src/ui/shared/PostFooter.tsx
1185
833
  msgid "Featured on {date} at {time}"
1186
834
  msgstr "Featured on {date} at {time}"
1187
835
 
1188
- #. @context: RSS and Atom feed title suffix for the featured posts feed
1189
- #. @context: RSS autodiscovery title for the featured posts feed
1190
- #: 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
1191
839
  #: src/ui/layouts/BaseLayout.tsx
1192
840
  msgid "Featured posts"
1193
841
  msgstr "Featured posts"
1194
842
 
1195
- #. @context: Toast after saving feed settings
1196
- #: src/routes/dash/settings.tsx
1197
- msgid "Feed settings updated."
1198
- msgstr "Feed settings updated."
1199
-
1200
- #. @context: Toast after copying a feed URL to the clipboard
1201
- #: src/ui/dash/settings/GeneralContent.tsx
1202
- msgid "Feed URL copied."
1203
- msgstr "Feed URL copied."
1204
-
1205
- #. @context: Settings section heading for RSS feed configuration
1206
- #: src/ui/dash/settings/GeneralContent.tsx
1207
- msgid "Feeds"
1208
- 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"
1209
848
 
1210
849
  #. @context: Search snippet suffix on sample page
1211
850
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1222,17 +861,13 @@ msgstr "Feel editorial and slightly quieter."
1222
861
  msgid "Field Notes on Interface Tone"
1223
862
  msgstr "Field Notes on Interface Tone"
1224
863
 
1225
- #. @context: Color theme preview card title
1226
864
  #. @context: Input value on sample page
1227
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1228
865
  #: src/ui/pages/ThemeSamplePage.tsx
1229
866
  msgid "Field notes on quiet design"
1230
867
  msgstr "Field notes on quiet design"
1231
868
 
1232
- #. @context: Error toast when file storage is not set up
1233
869
  #. @context: Error when file storage is not set up
1234
870
  #: src/routes/api/upload.ts
1235
- #: src/routes/dash/settings.tsx
1236
871
  msgid "File storage isn't set up. Check your server config."
1237
872
  msgstr "File storage isn't set up. Check your server config."
1238
873
 
@@ -1246,69 +881,21 @@ msgstr "File uploaded."
1246
881
  msgid "Files"
1247
882
  msgstr "Files"
1248
883
 
1249
- #. @context: Settings item description for custom CSS
1250
- #: src/ui/dash/settings/SettingsRootContent.tsx
1251
- msgid "Fine-grained styling overrides"
1252
- msgstr "Fine-grained styling overrides"
1253
-
1254
- #. @context: Label for the list of stable RSS feed URLs
1255
- #: src/ui/dash/settings/GeneralContent.tsx
1256
- msgid "Fixed feed URLs"
1257
- msgstr "Fixed feed URLs"
1258
-
1259
- #. @context: Theme mode option description
1260
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1261
- msgid "Follow each visitor's system preference."
1262
- msgstr "Follow each visitor's system preference."
1263
-
1264
- #. @context: Appearance settings heading for font theme
1265
- #: src/ui/dash/appearance/FontThemeContent.tsx
1266
- msgid "Font theme"
1267
- msgstr "Font theme"
1268
-
1269
- #. @context: Settings item — font theme settings
1270
- #: src/ui/dash/settings/SettingsRootContent.tsx
1271
- msgid "Font Theme"
1272
- msgstr "Font Theme"
1273
-
1274
884
  #. @context: Paragraph mentioning code on the sample detail article
1275
885
  #: src/ui/pages/ThemeSamplePage.tsx
1276
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."
1277
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."
1278
888
 
1279
- #. @context: Search results count - multiple
1280
- #. placeholder {0}: String(results.length)
1281
- #: src/ui/pages/SearchPage.tsx
1282
- msgid "Found {0} results"
1283
- msgstr "Found {0} results"
1284
-
1285
- #. @context: Search results count - single
1286
- #: src/ui/pages/SearchPage.tsx
1287
- msgid "Found 1 result"
1288
- msgstr "Found 1 result"
1289
-
1290
889
  #. @context: Compose dialog - open fullscreen editor
1291
890
  #: src/ui/compose/ComposeDialog.tsx
1292
891
  msgid "Fullscreen"
1293
892
  msgstr "Fullscreen"
1294
893
 
1295
- #. @context: Settings item — general settings
1296
- #. @context: Settings section heading
1297
- #: src/ui/dash/settings/GeneralContent.tsx
1298
- #: src/ui/dash/settings/SettingsRootContent.tsx
1299
- msgid "General"
1300
- msgstr "General"
1301
-
1302
894
  #. @context: Compose publish settings slug summary when no custom slug is set
1303
895
  #: src/ui/compose/ComposeDialog.tsx
1304
896
  msgid "Generate automatically"
1305
897
  msgstr "Generate automatically"
1306
898
 
1307
- #. @context: Button to create new API token
1308
- #: src/ui/dash/settings/ApiTokensContent.tsx
1309
- msgid "Generate Token"
1310
- msgstr "Generate Token"
1311
-
1312
899
  #. @context: Compose custom slug helper while generating a suggested slug
1313
900
  #: src/ui/compose/ComposeDialog.tsx
1314
901
  msgid "Generating a link..."
@@ -1334,21 +921,6 @@ msgstr "Guidelines"
1334
921
  msgid "Hard edge"
1335
922
  msgstr "Hard edge"
1336
923
 
1337
- #. @context: Toast after saving max visible nav links setting
1338
- #: src/ui/dash/appearance/NavigationContent.tsx
1339
- msgid "Header link limit updated."
1340
- msgstr "Header link limit updated."
1341
-
1342
- #. @context: Settings item description for navigation
1343
- #: src/ui/dash/settings/SettingsRootContent.tsx
1344
- msgid "Header links, home feed, and overflow menu"
1345
- msgstr "Header links, home feed, and overflow menu"
1346
-
1347
- #. @context: Description for the RSS system navigation toggle. %feed% is either Latest or Featured.
1348
- #: src/ui/dash/appearance/NavigationContent.tsx
1349
- msgid "Header RSS points to your %feed% feed (/feed). Change what /feed returns in General."
1350
- msgstr "Header RSS points to your %feed% feed (/feed). Change what /feed returns in General."
1351
-
1352
924
  #. @context: Bullet item in the sample detail article
1353
925
  #: src/ui/pages/ThemeSamplePage.tsx
1354
926
  msgid "Headings should keep their hierarchy even when the accent gets softer."
@@ -1361,9 +933,7 @@ msgstr "Helps screen readers describe the image"
1361
933
 
1362
934
  #. @context: Archive visibility filter for posts hidden from Latest
1363
935
  #. @context: Compose publish settings visibility option
1364
- #. @context: Post badge for posts hidden from Latest
1365
936
  #: src/ui/compose/ComposeDialog.tsx
1366
- #: src/ui/dash/StatusBadge.tsx
1367
937
  #: src/ui/pages/ArchivePage.tsx
1368
938
  msgid "Hidden from Latest"
1369
939
  msgstr "Hidden from Latest"
@@ -1380,36 +950,11 @@ msgstr "Hide from Latest"
1380
950
  msgid "Highest rated"
1381
951
  msgstr "Highest rated"
1382
952
 
1383
- #. @context: Settings subsection heading for home page settings
1384
- #: src/ui/dash/settings/GeneralContent.tsx
1385
- msgid "Home"
1386
- msgstr "Home"
1387
-
1388
- #. @context: Toast after saving home default view setting
1389
- #: src/ui/dash/appearance/NavigationContent.tsx
1390
- msgid "Home feed updated."
1391
- msgstr "Home feed updated."
1392
-
1393
953
  #. @context: Description for the apple touch icon asset card
1394
954
  #: src/ui/pages/BrandPage.tsx
1395
955
  msgid "Home screen icon for iPhone and iPad shortcuts."
1396
956
  msgstr "Home screen icon for iPhone and iPad shortcuts."
1397
957
 
1398
- #. @context: Toast after auto-saving home settings
1399
- #: src/routes/dash/settings.tsx
1400
- msgid "Home settings updated."
1401
- msgstr "Home settings updated."
1402
-
1403
- #. @context: Generic hosted auth provider label when no explicit provider name is configured
1404
- #: src/ui/dash/settings/AccountMenuContent.tsx
1405
- msgid "Hosted account"
1406
- msgstr "Hosted account"
1407
-
1408
- #. @context: Confirmation phrase the user must type to delete their account. {siteName} is the blog name.
1409
- #: src/ui/dash/settings/DeleteAccountContent.tsx
1410
- msgid "I want to delete {siteName}"
1411
- msgstr "I want to delete {siteName}"
1412
-
1413
958
  #. @context: Section kicker for the icon and preview downloads section
1414
959
  #: src/ui/pages/BrandPage.tsx
1415
960
  msgid "Icons and previews"
@@ -1430,11 +975,6 @@ msgstr "If this page feels too branded, the first place to soften is the default
1430
975
  msgid "Images"
1431
976
  msgstr "Images"
1432
977
 
1433
- #. @context: Link to the thread root from a post footer
1434
- #: src/ui/shared/PostFooter.tsx
1435
- msgid "In thread →"
1436
- msgstr "In thread →"
1437
-
1438
978
  #. @context: Accessible label for the asset keyword list on the public brand page
1439
979
  #: src/ui/pages/BrandPage.tsx
1440
980
  msgid "Included assets"
@@ -1470,6 +1010,13 @@ msgstr "Interfaces for reading should guide the eye, not keep asking for attenti
1470
1010
  msgid "iOS home screen"
1471
1011
  msgstr "iOS home screen"
1472
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
+
1473
1020
  #. @context: Accessible label for the Jant logo mark
1474
1021
  #: src/ui/pages/BrandPage.tsx
1475
1022
  msgid "Jant logo"
@@ -1495,8 +1042,8 @@ msgstr "Keep the artwork unchanged."
1495
1042
  msgid "Keep this link under 200 characters."
1496
1043
  msgstr "Keep this link under 200 characters."
1497
1044
 
1498
- #. @context: Nav item label field
1499
- #: src/ui/dash/appearance/NavigationContent.tsx
1045
+ #. @context: Field label for a custom collections link
1046
+ #: src/ui/shared/collection-management-labels.ts
1500
1047
  msgid "Label"
1501
1048
  msgstr "Label"
1502
1049
 
@@ -1505,66 +1052,26 @@ msgstr "Label"
1505
1052
  msgid "Label (optional)"
1506
1053
  msgstr "Label (optional)"
1507
1054
 
1508
- #. @context: Error toast when nav link fields are empty
1509
- #: src/ui/dash/appearance/NavigationContent.tsx
1510
- msgid "Label and URL are required"
1511
- msgstr "Label and URL are required"
1512
-
1513
- #. @context: Error toast when nav label is empty
1514
- #: src/ui/dash/appearance/NavigationContent.tsx
1515
- msgid "Label is required"
1516
- msgstr "Label is required"
1517
-
1518
- #. @context: Settings form field
1519
- #: src/ui/dash/settings/GeneralContent.tsx
1520
- msgid "Language"
1521
- msgstr "Language"
1522
-
1523
- #. @context: Settings subsection heading for language and time zone fields
1524
- #: src/ui/dash/settings/GeneralContent.tsx
1525
- msgid "Language & Time"
1526
- msgstr "Language & Time"
1527
-
1528
- #. @context: Toast after saving language and time settings
1529
- #: src/routes/dash/settings.tsx
1530
- msgid "Language and time updated."
1531
- msgstr "Language and time updated."
1532
-
1533
- #. @context: Token last used date
1534
- #. placeholder {0}: formatDate(token.lastUsedAt)
1535
- #: src/ui/dash/settings/ApiTokensContent.tsx
1536
- msgid "Last used {0}"
1537
- msgstr "Last used {0}"
1538
-
1539
1055
  #. @context: Active browse tab label on sample page
1540
- #. @context: Browse filter for latest posts
1541
- #. @context: Browse filter label
1542
- #. @context: Browse filter label
1543
- #. @context: Browse filter label for latest posts
1544
1056
  #. @context: Browser page title for the latest feed
1545
1057
  #. @context: Browser page title for the latest feed
1546
1058
  #. @context: Page heading for the latest posts feed
1547
- #. @context: Select option for using latest posts as the main RSS feed
1548
1059
  #: src/routes/pages/home.tsx
1549
1060
  #: src/routes/pages/latest.tsx
1550
- #: src/ui/dash/appearance/NavigationContent.tsx
1551
- #: src/ui/dash/appearance/NavigationContent.tsx
1552
- #: src/ui/dash/appearance/NavigationContent.tsx
1553
- #: src/ui/dash/settings/GeneralContent.tsx
1554
- #: src/ui/layouts/SiteLayout.tsx
1555
1061
  #: src/ui/pages/HomePage.tsx
1556
1062
  #: src/ui/pages/ThemeSamplePage.tsx
1557
1063
  msgid "Latest"
1558
1064
  msgstr "Latest"
1559
1065
 
1560
- #. @context: Label for the explicit latest RSS feed URL
1561
- #: src/ui/dash/settings/GeneralContent.tsx
1562
- msgid "Latest feed"
1563
- 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"
1564
1071
 
1565
- #. @context: RSS and Atom feed title suffix for the latest public posts feed
1566
- #. @context: RSS autodiscovery title for the latest public posts feed
1567
- #: 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
1568
1075
  #: src/ui/layouts/BaseLayout.tsx
1569
1076
  msgid "Latest posts"
1570
1077
  msgstr "Latest posts"
@@ -1574,32 +1081,37 @@ msgstr "Latest posts"
1574
1081
  msgid "Leave blank to generate one automatically."
1575
1082
  msgstr "Leave blank to generate one automatically."
1576
1083
 
1577
- #. @context: Suffix after Custom CSS link on color theme page
1578
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1579
- msgid "lets you override any theme variable."
1580
- 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."
1581
1088
 
1582
- #. @context: Theme mode option label
1583
1089
  #. @context: Theme mode option on sample page
1584
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1585
1090
  #: src/ui/pages/ThemeSamplePage.tsx
1586
1091
  msgid "Light"
1587
1092
  msgstr "Light"
1588
1093
 
1589
- #. @context: Nav item type badge
1590
- #: src/ui/dash/appearance/NavigationContent.tsx
1591
- msgid "link"
1592
- msgstr "link"
1593
-
1594
1094
  #. @context: Compose format tab
1595
- #. @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
1596
1097
  #. @context: Post format label - link
1597
1098
  #: src/ui/compose/ComposeDialog.tsx
1598
- #: src/ui/dash/FormatBadge.tsx
1599
1099
  #: src/ui/pages/ArchivePage.tsx
1100
+ #: src/ui/shared/collection-management-labels.ts
1101
+ #: src/ui/shared/CollectionDirectory.tsx
1600
1102
  msgid "Link"
1601
1103
  msgstr "Link"
1602
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
+
1603
1115
  #. @context: Description for the archive system navigation toggle
1604
1116
  #: src/ui/shared/navigation-labels.ts
1605
1117
  msgid "Link to the post archive"
@@ -1610,7 +1122,24 @@ msgstr "Link to the post archive"
1610
1122
  msgid "Link to your collections page"
1611
1123
  msgstr "Link to your collections page"
1612
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
1613
1141
  #. @context: Post format label plural - links
1142
+ #: src/routes/pages/archive.tsx
1614
1143
  #: src/ui/pages/ArchivePage.tsx
1615
1144
  msgid "Links"
1616
1145
  msgstr "Links"
@@ -1620,16 +1149,6 @@ msgstr "Links"
1620
1149
  msgid "Links should read clearly without glowing against the page."
1621
1150
  msgstr "Links should read clearly without glowing against the page."
1622
1151
 
1623
- #. @context: Label for max visible nav links number input
1624
- #: src/ui/dash/appearance/NavigationContent.tsx
1625
- msgid "Links shown in header"
1626
- msgstr "Links shown in header"
1627
-
1628
- #. @context: Label for list posts curl example
1629
- #: src/ui/dash/settings/ApiTokensContent.tsx
1630
- msgid "List posts:"
1631
- msgstr "List posts:"
1632
-
1633
1152
  #. @context: Inline link label in the sample note post body
1634
1153
  #. @context: Inline link label in the sample note summary
1635
1154
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1642,6 +1161,11 @@ msgstr "live theme controls"
1642
1161
  msgid "Load more"
1643
1162
  msgstr "Load more"
1644
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
+
1645
1169
  #. @context: Asset keyword on the public brand asset page
1646
1170
  #. @context: Asset keyword on the public brand asset page
1647
1171
  #. @context: Title for the default logo asset card
@@ -1663,87 +1187,44 @@ msgstr "Logos"
1663
1187
  msgid "Look at the footer metadata last, to make sure the accent is not fighting the typography."
1664
1188
  msgstr "Look at the footer metadata last, to make sure the accent is not fighting the typography."
1665
1189
 
1666
- #. @context: Theme group description on color theme settings page
1667
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1668
- msgid "Low-distraction palettes for a cleaner, calmer reading rhythm."
1669
- msgstr "Low-distraction palettes for a cleaner, calmer reading rhythm."
1670
-
1671
- #. @context: Label for the canonical /feed URL
1672
- #. @context: RSS autodiscovery title for the site's main feed
1673
- #: src/ui/dash/settings/GeneralContent.tsx
1190
+ #. @context: Feed autodiscovery title for the site's main feed
1674
1191
  #: src/ui/layouts/BaseLayout.tsx
1675
1192
  msgid "Main feed"
1676
1193
  msgstr "Main feed"
1677
1194
 
1678
- #. @context: Settings field label for the canonical /feed output
1679
- #: src/ui/dash/settings/GeneralContent.tsx
1680
- msgid "Main RSS feed"
1681
- msgstr "Main RSS feed"
1682
-
1683
- #. @context: Settings item description for hosted account management in the connected provider
1684
- #: src/ui/dash/settings/AccountMenuContent.tsx
1685
- msgid "Manage password and hosted access in {providerLabel}"
1686
- msgstr "Manage password and hosted access in {providerLabel}"
1687
-
1688
- #. @context: Intro text on the account settings menu page below the title
1689
- #: src/ui/dash/settings/AccountMenuContent.tsx
1690
- msgid "Manage sign-in security, exports, and irreversible actions."
1691
- msgstr "Manage sign-in security, exports, and irreversible actions."
1692
-
1693
- #. @context: Intro text on the hosted account settings menu page below the title
1694
- #: src/ui/dash/settings/AccountMenuContent.tsx
1695
- msgid "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
1696
- msgstr "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
1697
-
1698
- #. @context: Color theme preview date label
1699
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1700
- msgid "March 14"
1701
- msgstr "March 14"
1702
-
1703
1195
  #. @context: Date label on theme sample content card
1704
1196
  #: src/ui/pages/ThemeSamplePage.tsx
1705
1197
  msgid "March 15"
1706
1198
  msgstr "March 15"
1707
1199
 
1708
- #. @context: Placeholder hint for markdown-enabled textareas
1709
- #: src/ui/dash/settings/GeneralContent.tsx
1710
- msgid "Markdown supported"
1711
- msgstr "Markdown supported"
1712
-
1713
1200
  #. @context: Compose toolbar - media tooltip
1714
1201
  #: src/ui/compose/ComposeDialog.tsx
1715
1202
  msgid "Media"
1716
1203
  msgstr "Media"
1717
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
+
1718
1216
  #. @context: Aria-label for collections page more button
1719
- #. @context: Button label for a menu with more actions
1720
- #. @context: Post menu trigger label in the post footer
1721
- #: src/routes/dash/custom-urls.tsx
1217
+ #. @context: Post menu trigger label in post actions
1722
1218
  #: src/ui/shared/collection-management-labels.ts
1723
1219
  #: src/ui/shared/PostFooter.tsx
1724
1220
  msgid "More actions"
1725
1221
  msgstr "More actions"
1726
1222
 
1727
- #. @context: Theme group description on color theme settings page
1728
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1729
- msgid "More atmospheric palettes with a stronger sense of time, place, or tone."
1730
- msgstr "More atmospheric palettes with a stronger sense of time, place, or tone."
1731
-
1732
- #. @context: Button to show overflow nav links
1733
- #: src/ui/layouts/SiteLayout.tsx
1734
- msgid "More links"
1735
- msgstr "More links"
1736
-
1737
1223
  #. @context: Helper text in the quick-create collection dialog
1738
1224
  #: src/ui/shared/collection-management-labels.ts
1739
1225
  msgid "More options are available after you create it."
1740
1226
  msgstr "More options are available after you create it."
1741
1227
 
1742
- #. @context: Fallback theme group heading on color theme page
1743
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1744
- msgid "More Palettes"
1745
- msgstr "More Palettes"
1746
-
1747
1228
  #. @context: Secondary badge label on sample page
1748
1229
  #. @context: Token label on sample page
1749
1230
  #: src/ui/pages/ThemeSamplePage.tsx
@@ -1756,38 +1237,11 @@ msgstr "Muted"
1756
1237
  msgid "My Collection"
1757
1238
  msgstr "My Collection"
1758
1239
 
1759
- #. @context: Settings item description for general
1760
- #: src/ui/dash/settings/SettingsRootContent.tsx
1761
- msgid "Name, metadata, language, and search defaults"
1762
- msgstr "Name, metadata, language, and search defaults"
1763
-
1764
- #. @context: Settings item — navigation settings
1765
- #: src/ui/dash/settings/SettingsRootContent.tsx
1766
- msgid "Navigation"
1767
- msgstr "Navigation"
1768
-
1769
1240
  #. @context: Navigation section heading on sample page
1770
1241
  #: src/ui/pages/ThemeSamplePage.tsx
1771
1242
  msgid "Navigation and reading states"
1772
1243
  msgstr "Navigation and reading states"
1773
1244
 
1774
- #. @context: Section heading for nav items
1775
- #: src/ui/dash/appearance/NavigationContent.tsx
1776
- msgid "Navigation items"
1777
- msgstr "Navigation items"
1778
-
1779
- #. @context: Toast after saving navigation item order
1780
- #: src/ui/dash/appearance/NavigationContent.tsx
1781
- msgid "Navigation order updated."
1782
- msgstr "Navigation order updated."
1783
-
1784
- #. @context: Label for nav preview section
1785
- #. @context: Label for nav preview section
1786
- #: src/ui/dash/appearance/NavigationContent.tsx
1787
- #: src/ui/dash/appearance/NavigationContent.tsx
1788
- msgid "Navigation Preview"
1789
- msgstr "Navigation Preview"
1790
-
1791
1245
  #. @context: Button to create a collection from collections page
1792
1246
  #. @context: Page title for new collection
1793
1247
  #. @context: Page title for new collection
@@ -1797,36 +1251,37 @@ msgstr "Navigation Preview"
1797
1251
  msgid "New Collection"
1798
1252
  msgstr "New Collection"
1799
1253
 
1800
- #. @context: Button to create new custom URL
1801
- #. @context: Button to create new custom URL
1802
- #. @context: Page heading
1803
- #: src/routes/dash/custom-urls.tsx
1804
- #: src/routes/dash/custom-urls.tsx
1805
- #: src/routes/dash/custom-urls.tsx
1806
- msgid "New Custom URL"
1807
- msgstr "New Custom URL"
1808
-
1809
1254
  #. @context: Menu action to create a divider on collections page
1810
1255
  #: src/ui/shared/CollectionsManager.tsx
1811
1256
  msgid "New Divider"
1812
1257
  msgstr "New Divider"
1813
1258
 
1814
- #. @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
+
1815
1264
  #. @context: Password reset form field
1816
1265
  #: src/routes/auth/reset.tsx
1817
- #: src/ui/dash/settings/AccountContent.tsx
1818
1266
  msgid "New Password"
1819
1267
  msgstr "New Password"
1820
1268
 
1821
1269
  #. @context: Browser page title for the new post page
1822
1270
  #. @context: Collection page quick compose button aria label
1271
+ #. @context: Mobile floating action button label to open the compose dialog
1823
1272
  #. @context: Page title for the new post page
1824
1273
  #: src/routes/pages/new.tsx
1274
+ #: src/ui/layouts/SiteLayout.tsx
1825
1275
  #: src/ui/pages/CollectionPage.tsx
1826
1276
  #: src/ui/pages/ComposePage.tsx
1827
1277
  msgid "New post"
1828
1278
  msgstr "New post"
1829
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
+
1830
1285
  #. @context: Collection sort order option
1831
1286
  #. @context: Collection sort order option
1832
1287
  #: src/ui/pages/CollectionPage.tsx
@@ -1843,11 +1298,6 @@ msgstr "Newest first"
1843
1298
  msgid "Next"
1844
1299
  msgstr "Next"
1845
1300
 
1846
- #. @context: Empty state when no sessions exist (shouldn't normally appear)
1847
- #: src/ui/dash/settings/SessionsContent.tsx
1848
- msgid "No active sessions right now. Signed-in devices show up here."
1849
- msgstr "No active sessions right now. Signed-in devices show up here."
1850
-
1851
1301
  #. @context: Compose collection combobox empty state when search has no results
1852
1302
  #: src/ui/compose/ComposeDialog.tsx
1853
1303
  msgid "No collections match that search. Try a different name."
@@ -1862,28 +1312,16 @@ msgstr "No collections match that search. Try a different name."
1862
1312
  msgid "No collections yet. Start one to organize posts by topic."
1863
1313
  msgstr "No collections yet. Start one to organize posts by topic."
1864
1314
 
1865
- #. @context: Empty state message
1866
- #: src/routes/dash/custom-urls.tsx
1867
- msgid "No custom URLs yet. Create one to add redirects or custom paths for posts."
1868
- msgstr "No custom URLs yet. Create one to add redirects or custom paths for posts."
1869
-
1870
1315
  #. @context: Drafts panel empty state
1871
1316
  #: src/ui/compose/ComposeDialog.tsx
1872
1317
  msgid "No drafts yet. Save a draft to find it here."
1873
1318
  msgstr "No drafts yet. Save a draft to find it here."
1874
1319
 
1875
- #. @context: Error toast when no file was selected for upload
1876
1320
  #. @context: Error when no file was selected for upload
1877
1321
  #: src/routes/api/upload.ts
1878
- #: src/routes/dash/settings.tsx
1879
1322
  msgid "No file selected. Choose a file to upload."
1880
1323
  msgstr "No file selected. Choose a file to upload."
1881
1324
 
1882
- #. @context: Empty state for navigation items
1883
- #: src/ui/dash/appearance/NavigationContent.tsx
1884
- msgid "No navigation items yet. Add links or enable system items below."
1885
- msgstr "No navigation items yet. Add links or enable system items below."
1886
-
1887
1325
  #. @context: Search empty results
1888
1326
  #: src/ui/pages/SearchPage.tsx
1889
1327
  msgid "No results. Try different keywords."
@@ -1894,14 +1332,10 @@ msgstr "No results. Try different keywords."
1894
1332
  msgid "No threads match these filters. Try adjusting your selection or clear all filters."
1895
1333
  msgstr "No threads match these filters. Try adjusting your selection or clear all filters."
1896
1334
 
1897
- #. @context: Color theme preview format label
1898
1335
  #. @context: Compose format tab
1899
- #. @context: Post format badge - note
1900
1336
  #. @context: Post format label - note
1901
1337
  #. @context: Post format label on theme sample content card
1902
1338
  #: src/ui/compose/ComposeDialog.tsx
1903
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1904
- #: src/ui/dash/FormatBadge.tsx
1905
1339
  #: src/ui/pages/ArchivePage.tsx
1906
1340
  #: src/ui/pages/ThemeSamplePage.tsx
1907
1341
  msgid "Note"
@@ -1912,7 +1346,9 @@ msgstr "Note"
1912
1346
  msgid "note treatment"
1913
1347
  msgstr "note treatment"
1914
1348
 
1349
+ #. @context: Archive feed title segment for note format filter
1915
1350
  #. @context: Post format label plural - notes
1351
+ #: src/routes/pages/archive.tsx
1916
1352
  #: src/ui/pages/ArchivePage.tsx
1917
1353
  msgid "Notes"
1918
1354
  msgstr "Notes"
@@ -1969,11 +1405,6 @@ msgstr "Open raw PNG"
1969
1405
  msgid "Open raw SVG"
1970
1406
  msgstr "Open raw SVG"
1971
1407
 
1972
- #. @context: Settings item description for the hosted delete-site entry in the account menu
1973
- #: src/ui/dash/settings/AccountMenuContent.tsx
1974
- msgid "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1975
- msgstr "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1976
-
1977
1408
  #. @context: Menu action to organize collections
1978
1409
  #: src/ui/shared/CollectionsManager.tsx
1979
1410
  msgid "Organize"
@@ -1984,42 +1415,18 @@ msgstr "Organize"
1984
1415
  msgid "Outline"
1985
1416
  msgstr "Outline"
1986
1417
 
1987
- #. @context: Settings item description for color theme
1988
- #: src/ui/dash/settings/SettingsRootContent.tsx
1989
- msgid "Palette, surface tone, and overall mood"
1990
- msgstr "Palette, surface tone, and overall mood"
1991
-
1992
- #. @context: Theme group description on color theme settings page
1993
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1994
- msgid "Paper-first palettes with warmer surfaces and a softer, handwritten feel."
1995
- msgstr "Paper-first palettes with warmer surfaces and a softer, handwritten feel."
1996
-
1997
- #. @context: Settings item — password settings
1998
1418
  #. @context: Setup/signin form field - password
1999
1419
  #. @context: Setup/signin form field - password
2000
1420
  #: src/routes/auth/setup.tsx
2001
1421
  #: src/routes/auth/signin.tsx
2002
- #: src/ui/dash/settings/AccountMenuContent.tsx
2003
1422
  msgid "Password"
2004
1423
  msgstr "Password"
2005
1424
 
2006
- #. @context: Toast after changing account password
2007
- #: src/routes/dash/settings.tsx
2008
- msgid "Password changed."
2009
- msgstr "Password changed."
2010
-
2011
- #. @context: Error shown when password changes are blocked in demo mode
2012
1425
  #. @context: Error shown when password reset is blocked in demo mode
2013
1426
  #: src/routes/auth/reset.tsx
2014
- #: src/routes/dash/settings.tsx
2015
1427
  msgid "Password changes are off in demo mode. Sign in with the shared demo credentials."
2016
1428
  msgstr "Password changes are off in demo mode. Sign in with the shared demo credentials."
2017
1429
 
2018
- #. @context: Error toast when new password and confirmation differ
2019
- #: src/routes/dash/settings.tsx
2020
- msgid "Passwords don't match. Make sure both fields are identical."
2021
- msgstr "Passwords don't match. Make sure both fields are identical."
2022
-
2023
1430
  #. @context: Attached text placeholder
2024
1431
  #: src/ui/compose/ComposeDialog.tsx
2025
1432
  msgid ""
@@ -2036,26 +1443,7 @@ msgstr ""
2036
1443
  msgid "Paste a URL..."
2037
1444
  msgstr "Paste a URL..."
2038
1445
 
2039
- #. @context: Custom URL form field
2040
- #: src/routes/dash/custom-urls.tsx
2041
- msgid "Path"
2042
- msgstr "Path"
2043
-
2044
- #. @context: Settings item description for account deletion
2045
- #: src/ui/dash/settings/AccountMenuContent.tsx
2046
- msgid "Permanently delete all data and reset the blog"
2047
- msgstr "Permanently delete all data and reset the blog"
2048
-
2049
- #. @context: Post badge - pinned
2050
- #: src/ui/dash/StatusBadge.tsx
2051
- msgid "Pinned"
2052
- msgstr "Pinned"
2053
-
2054
1446
  #. @context: Compose button - publish post
2055
- #. @context: Custom URL target type badge for a post
2056
- #. @context: Custom URL type option
2057
- #: src/routes/dash/custom-urls.tsx
2058
- #: src/routes/dash/custom-urls.tsx
2059
1447
  #: src/ui/compose/ComposeDialog.tsx
2060
1448
  msgid "Post"
2061
1449
  msgstr "Post"
@@ -2121,11 +1509,6 @@ msgstr "Primary logo files"
2121
1509
  msgid "Private"
2122
1510
  msgstr "Private"
2123
1511
 
2124
- #. @context: Avatar upload button text while generating favicon variants
2125
- #: src/ui/dash/settings/AvatarContent.tsx
2126
- msgid "Processing..."
2127
- msgstr "Processing..."
2128
-
2129
1512
  #. @context: Archive visibility filter - public posts
2130
1513
  #. @context: Compose publish settings visibility option
2131
1514
  #: src/ui/compose/ComposeDialog.tsx
@@ -2140,18 +1523,23 @@ msgstr "Public"
2140
1523
  msgid "Publish"
2141
1524
  msgstr "Publish"
2142
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
+
2143
1531
  #. @context: Compose publish settings panel title
2144
1532
  #: src/ui/compose/ComposeDialog.tsx
2145
1533
  msgid "Publish settings"
2146
1534
  msgstr "Publish settings"
2147
1535
 
2148
- #. @context: Post status badge - published
2149
- #: src/ui/dash/StatusBadge.tsx
2150
- msgid "Published"
2151
- 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"
2152
1540
 
2153
1541
  #. @context: Tooltip text for the archive tile published timestamp
2154
- #. @context: Tooltip text for the published timestamp in the post footer
1542
+ #. @context: Tooltip text for the published timestamp in post metadata
2155
1543
  #: src/ui/pages/ArchivePage.tsx
2156
1544
  #: src/ui/shared/PostFooter.tsx
2157
1545
  msgid "Published on {date} at {time}"
@@ -2172,21 +1560,9 @@ msgstr "quiet design"
2172
1560
  msgid "Quiet metadata"
2173
1561
  msgstr "Quiet metadata"
2174
1562
 
2175
- #. @context: Theme group heading on color theme settings page
2176
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2177
- msgid "Quiet Neutral"
2178
- msgstr "Quiet Neutral"
2179
-
2180
- #. @context: Color theme preview card secondary sentence
2181
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2182
- msgid "Quiet surfaces let writing lead."
2183
- msgstr "Quiet surfaces let writing lead."
2184
-
2185
1563
  #. @context: Compose format tab
2186
- #. @context: Post format badge - quote
2187
1564
  #. @context: Post format label - quote
2188
1565
  #: src/ui/compose/ComposeDialog.tsx
2189
- #: src/ui/dash/FormatBadge.tsx
2190
1566
  #: src/ui/pages/ArchivePage.tsx
2191
1567
  msgid "Quote"
2192
1568
  msgstr "Quote"
@@ -2196,8 +1572,12 @@ msgstr "Quote"
2196
1572
  msgid "Quoted or highlighted passages should feel like annotations, not warnings."
2197
1573
  msgstr "Quoted or highlighted passages should feel like annotations, not warnings."
2198
1574
 
1575
+ #. @context: Archive feed title segment for quote format filter
1576
+ #. @context: Placeholder for the custom collections link label
2199
1577
  #. @context: Post format label plural - quotes
1578
+ #: src/routes/pages/archive.tsx
2200
1579
  #: src/ui/pages/ArchivePage.tsx
1580
+ #: src/ui/shared/collection-management-labels.ts
2201
1581
  msgid "Quotes"
2202
1582
  msgstr "Quotes"
2203
1583
 
@@ -2216,11 +1596,6 @@ msgstr "Read the page from top to bottom without looking at the swatches."
2216
1596
  msgid "Read the palette as content first"
2217
1597
  msgstr "Read the palette as content first"
2218
1598
 
2219
- #. @context: Color theme preview inline link label
2220
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2221
- msgid "Read why"
2222
- msgstr "Read why"
2223
-
2224
1599
  #. @context: Collection tag on sample quote post
2225
1600
  #: src/ui/pages/ThemeSamplePage.tsx
2226
1601
  msgid "Reading"
@@ -2231,35 +1606,11 @@ msgstr "Reading"
2231
1606
  msgid "Real post components"
2232
1607
  msgstr "Real post components"
2233
1608
 
2234
- #. @context: Custom URL target type badge for a redirect
2235
- #. @context: Custom URL type option
2236
- #: src/routes/dash/custom-urls.tsx
2237
- #: src/routes/dash/custom-urls.tsx
2238
- msgid "Redirect"
2239
- msgstr "Redirect"
2240
-
2241
- #. @context: Redirect type field
2242
- #: src/routes/dash/custom-urls.tsx
2243
- msgid "Redirect Type"
2244
- msgstr "Redirect Type"
2245
-
2246
- #. @context: Settings item description for custom URLs
2247
- #: src/ui/dash/settings/SettingsRootContent.tsx
2248
- msgid "Redirects, vanity paths, and URL control"
2249
- msgstr "Redirects, vanity paths, and URL control"
2250
-
2251
1609
  #. @context: Collection tag on sample link post
2252
1610
  #: src/ui/pages/ThemeSamplePage.tsx
2253
1611
  msgid "References"
2254
1612
  msgstr "References"
2255
1613
 
2256
- #. @context: Button to remove the blog avatar
2257
- #. @context: Remove system item from navigation
2258
- #: src/ui/dash/appearance/NavigationContent.tsx
2259
- #: src/ui/dash/settings/AvatarContent.tsx
2260
- msgid "Remove"
2261
- msgstr "Remove"
2262
-
2263
1614
  #. @context: Button to remove an uploaded attachment in compose
2264
1615
  #: src/ui/compose/ComposeDialog.tsx
2265
1616
  msgid "Remove attachment"
@@ -2270,6 +1621,16 @@ msgstr "Remove attachment"
2270
1621
  msgid "Remove Divider"
2271
1622
  msgstr "Remove Divider"
2272
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
+
2273
1634
  #. @context: Archive tile label for multiple thread replies
2274
1635
  #: src/ui/pages/ArchivePage.tsx
2275
1636
  msgid "Replies"
@@ -2284,6 +1645,11 @@ msgstr "Replies"
2284
1645
  msgid "Reply"
2285
1646
  msgstr "Reply"
2286
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
+
2287
1653
  #. @context: Button to restore the automatically generated collection link from the title
2288
1654
  #. @context: Compose custom slug action that clears the manual slug and falls back to automatic generation
2289
1655
  #: src/ui/compose/ComposeDialog.tsx
@@ -2309,29 +1675,21 @@ msgstr "Reset Password"
2309
1675
  msgid "Reverse logo"
2310
1676
  msgstr "Reverse logo"
2311
1677
 
2312
- #. @context: Button to revoke API token
2313
- #. @context: Button to revoke a session
2314
- #: src/ui/dash/settings/ApiTokensContent.tsx
2315
- #: src/ui/dash/settings/SessionsContent.tsx
2316
- msgid "Revoke"
2317
- 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"
2318
1682
 
2319
- #. @context: Confirm dialog for revoking API token
2320
- #: src/ui/dash/settings/ApiTokensContent.tsx
2321
- msgid "Revoke this token? Any scripts using it will stop working."
2322
- 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"
2323
1687
 
2324
1688
  #. @context: Button to save collection
2325
- #. @context: Button to save settings
2326
- #. @context: Button to save settings changes
2327
1689
  #. @context: Confirm action sheet - save text attachment changes button
2328
1690
  #. @context: Confirm close action sheet - save draft button
2329
- #. @context: Save nav item changes
2330
1691
  #: src/ui/compose/ComposeDialog.tsx
2331
1692
  #: src/ui/compose/ComposeDialog.tsx
2332
- #: src/ui/dash/appearance/NavigationContent.tsx
2333
- #: src/ui/dash/settings/AvatarContent.tsx
2334
- #: src/ui/dash/settings/GeneralContent.tsx
2335
1693
  #: src/ui/shared/collection-management-labels.ts
2336
1694
  msgid "Save"
2337
1695
  msgstr "Save"
@@ -2346,11 +1704,6 @@ msgstr "Save as draft"
2346
1704
  msgid "Save as Draft"
2347
1705
  msgstr "Save as Draft"
2348
1706
 
2349
- #. @context: Button to save custom CSS
2350
- #: src/ui/dash/appearance/AdvancedContent.tsx
2351
- msgid "Save CSS"
2352
- msgstr "Save CSS"
2353
-
2354
1707
  #. @context: Secondary button label on sample page
2355
1708
  #: src/ui/pages/ThemeSamplePage.tsx
2356
1709
  msgid "Save draft"
@@ -2381,29 +1734,24 @@ msgstr "Save to drafts to edit and post at a later time."
2381
1734
  msgid "Save to drafts?"
2382
1735
  msgstr "Save to drafts?"
2383
1736
 
2384
- #. @context: Search icon link in browse nav
2385
1737
  #. @context: Search page title
2386
1738
  #. @context: Search submit button
2387
- #. @context: Settings section heading for search engine indexing settings
2388
- #: src/ui/dash/settings/GeneralContent.tsx
2389
- #: src/ui/layouts/SiteLayout.tsx
2390
1739
  #: src/ui/pages/SearchPage.tsx
2391
1740
  #: src/ui/pages/SearchPage.tsx
2392
1741
  msgid "Search"
2393
1742
  msgstr "Search"
2394
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
+
2395
1750
  #. @context: Search input placeholder
2396
1751
  #: src/ui/pages/SearchPage.tsx
2397
1752
  msgid "Search posts..."
2398
1753
  msgstr "Search posts..."
2399
1754
 
2400
- #. @context: Toast after saving search settings
2401
- #. @context: Toast after saving search settings
2402
- #: src/routes/dash/settings.tsx
2403
- #: src/routes/dash/settings.tsx
2404
- msgid "Search settings updated."
2405
- msgstr "Search settings updated."
2406
-
2407
1755
  #. @context: Search snippet label on sample page
2408
1756
  #: src/ui/pages/ThemeSamplePage.tsx
2409
1757
  msgid "Search snippet"
@@ -2414,45 +1762,9 @@ msgstr "Search snippet"
2414
1762
  msgid "Search..."
2415
1763
  msgstr "Search..."
2416
1764
 
2417
- #. @context: Settings group label for account security settings
2418
- #: src/ui/dash/settings/AccountMenuContent.tsx
2419
- msgid "Security"
2420
- msgstr "Security"
2421
-
2422
- #. @context: Error toast when CSRF token is invalid or expired
2423
- #: src/routes/dash/settings.tsx
2424
- msgid "Security token expired. Refresh the page and try again."
2425
- msgstr "Security token expired. Refresh the page and try again."
2426
-
2427
- #. @context: Error toast when CSRF token is missing from delete request
2428
- #: src/routes/dash/settings.tsx
2429
- msgid "Security token missing. Refresh the page and try again."
2430
- msgstr "Security token missing. Refresh the page and try again."
2431
-
2432
- #. @context: Settings item description for sessions
2433
- #: src/ui/dash/settings/AccountMenuContent.tsx
2434
- msgid "See where you're signed in and revoke old sessions"
2435
- msgstr "See where you're signed in and revoke old sessions"
2436
-
2437
- #. @context: Error shown when session management is blocked in demo mode
2438
- #: src/routes/dash/settings.tsx
2439
- msgid "Session management is off in demo mode. Use the shared demo session instead."
2440
- msgstr "Session management is off in demo mode. Use the shared demo session instead."
2441
-
2442
- #. @context: Settings item — session management
2443
- #: src/ui/dash/settings/AccountMenuContent.tsx
2444
- msgid "Sessions"
2445
- msgstr "Sessions"
2446
-
2447
- #. @context: Settings item description for account settings on the settings home page
2448
- #: src/ui/dash/settings/SettingsRootContent.tsx
2449
- msgid "Sessions, password, export"
2450
- msgstr "Sessions, password, export"
2451
-
2452
1765
  #. @context: Built-in navigation label for settings
2453
- #. @context: Page title for the settings home page
2454
- #: src/ui/dash/settings/SettingsRootContent.tsx
2455
1766
  #: src/ui/shared/navigation-labels.ts
1767
+ msgctxt "nav"
2456
1768
  msgid "Settings"
2457
1769
  msgstr "Settings"
2458
1770
 
@@ -2461,11 +1773,6 @@ msgstr "Settings"
2461
1773
  msgid "Shared links"
2462
1774
  msgstr "Shared links"
2463
1775
 
2464
- #. @context: Checkbox for showing the optional Jant credit link on the home page
2465
- #: src/ui/dash/settings/GeneralContent.tsx
2466
- msgid "Show \"Build with Jant\" at the bottom of the home page"
2467
- msgstr "Show \"Build with Jant\" at the bottom of the home page"
2468
-
2469
1776
  #. @context: Button to collapse expanded thread context
2470
1777
  #. @context: Collapse reply context
2471
1778
  #: src/ui/compose/ComposeDialog.tsx
@@ -2487,6 +1794,7 @@ msgstr "Shows 'Settings' when logged in, 'Sign in' when logged out"
2487
1794
 
2488
1795
  #. @context: Built-in navigation label shown when auth is required
2489
1796
  #: src/ui/shared/navigation-labels.ts
1797
+ msgctxt "nav"
2490
1798
  msgid "Sign in"
2491
1799
  msgstr "Sign in"
2492
1800
 
@@ -2499,46 +1807,16 @@ msgstr "Sign in"
2499
1807
  msgid "Sign In"
2500
1808
  msgstr "Sign In"
2501
1809
 
2502
- #. @context: Settings link — sign out action
2503
- #: src/ui/dash/settings/SettingsRootContent.tsx
2504
- msgid "Sign Out"
2505
- msgstr "Sign Out"
2506
-
2507
- #. @context: Session creation date
2508
- #. placeholder {0}: formatDate(session.createdAt)
2509
- #: src/ui/dash/settings/SessionsContent.tsx
2510
- msgid "Signed in {0}"
2511
- msgstr "Signed in {0}"
2512
-
2513
- #. @context: Settings group label for site settings
2514
- #. @context: Settings subsection heading for basic site fields
2515
- #: src/ui/dash/settings/GeneralContent.tsx
2516
- #: src/ui/dash/settings/SettingsRootContent.tsx
2517
- msgid "Site"
2518
- msgstr "Site"
2519
-
2520
1810
  #. @context: Token label on sample page
2521
1811
  #: src/ui/pages/ThemeSamplePage.tsx
2522
1812
  msgid "Site accent"
2523
1813
  msgstr "Site accent"
2524
1814
 
2525
- #. @context: Settings section heading for site footer
2526
- #: src/ui/dash/settings/GeneralContent.tsx
2527
- msgid "Site Footer"
2528
- msgstr "Site Footer"
2529
-
2530
- #. @context: Settings form field
2531
1815
  #. @context: Setup form field - site name
2532
1816
  #: src/routes/auth/setup.tsx
2533
- #: src/ui/dash/settings/GeneralContent.tsx
2534
1817
  msgid "Site Name"
2535
1818
  msgstr "Site Name"
2536
1819
 
2537
- #. @context: Toast after saving site settings
2538
- #: src/routes/dash/settings.tsx
2539
- msgid "Site settings updated."
2540
- msgstr "Site settings updated."
2541
-
2542
1820
  #. @context: Description for the favicon asset card
2543
1821
  #: src/ui/pages/BrandPage.tsx
2544
1822
  msgid "Small browser icon used in tabs and bookmarks."
@@ -2554,11 +1832,6 @@ msgstr "Social preview"
2554
1832
  msgid "Social preview image"
2555
1833
  msgstr "Social preview image"
2556
1834
 
2557
- #. @context: Color theme preview card body sentence
2558
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2559
- msgid "Soft color should still carry a clear reading rhythm."
2560
- msgstr "Soft color should still carry a clear reading rhythm."
2561
-
2562
1835
  #. @context: Toast when uploads fail and post is auto-saved as draft
2563
1836
  #: src/ui/compose/ComposeDialog.tsx
2564
1837
  msgid "Some uploads failed. Saved as draft."
@@ -2568,10 +1841,12 @@ msgstr "Some uploads failed. Saved as draft."
2568
1841
  #. @context: Fallback validation error for password reset form
2569
1842
  #. @context: Fallback validation error for setup form
2570
1843
  #. @context: Fallback validation error for sign-in form
1844
+ #. @context: Fallback validation error for thread compose form
2571
1845
  #: src/routes/auth/reset.tsx
2572
1846
  #: src/routes/auth/setup.tsx
2573
1847
  #: src/routes/auth/signin.tsx
2574
1848
  #: src/routes/compose.tsx
1849
+ #: src/routes/compose.tsx
2575
1850
  msgid "Something doesn't look right. Check the form and try again."
2576
1851
  msgstr "Something doesn't look right. Check the form and try again."
2577
1852
 
@@ -2650,26 +1925,11 @@ msgstr "Switch the palette and mode without opening settings or changing the act
2650
1925
  msgid "Switch to the white logo when the standard green version would lose contrast."
2651
1926
  msgstr "Switch to the white logo when the standard green version would lose contrast."
2652
1927
 
2653
- #. @context: Nav item type badge
2654
- #: src/ui/dash/appearance/NavigationContent.tsx
2655
- msgid "system"
2656
- msgstr "system"
2657
-
2658
- #. @context: Section heading for system nav items
2659
- #: src/ui/dash/appearance/NavigationContent.tsx
2660
- msgid "System links"
2661
- msgstr "System links"
2662
-
2663
1928
  #. @context: Label on failed upload overlay button, tells user tapping retries the upload
2664
1929
  #: src/ui/compose/ComposeDialog.tsx
2665
1930
  msgid "Tap to retry"
2666
1931
  msgstr "Tap to retry"
2667
1932
 
2668
- #. @context: Custom URL target slug field
2669
- #: src/routes/dash/custom-urls.tsx
2670
- msgid "Target Slug"
2671
- msgstr "Target Slug"
2672
-
2673
1933
  #. @context: Archive media filter - posts without any media attachments
2674
1934
  #. @context: Archive media filter - posts without any media attachments
2675
1935
  #: src/ui/pages/ArchivePage.tsx
@@ -2684,16 +1944,6 @@ msgstr "Text"
2684
1944
  msgid "Text attachment"
2685
1945
  msgstr "Text attachment"
2686
1946
 
2687
- #. @context: Error toast when selected font theme is not valid
2688
- #: src/routes/dash/settings.tsx
2689
- msgid "That font theme isn't available. Pick another one."
2690
- msgstr "That font theme isn't available. Pick another one."
2691
-
2692
- #. @context: Error toast when selected theme is not valid
2693
- #: src/routes/dash/settings.tsx
2694
- msgid "That theme isn't available. Pick another one."
2695
- msgstr "That theme isn't available. Pick another one."
2696
-
2697
1947
  #. @context: Blockquote in the sample detail article
2698
1948
  #: src/ui/pages/ThemeSamplePage.tsx
2699
1949
  msgid "The best default color is the one you notice only after reading for a while."
@@ -2704,11 +1954,6 @@ msgstr "The best default color is the one you notice only after reading for a wh
2704
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."
2705
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."
2706
1956
 
2707
- #. @context: Custom URL path help text
2708
- #: src/routes/dash/custom-urls.tsx
2709
- msgid "The custom URL path (without leading slash)"
2710
- msgstr "The custom URL path (without leading slash)"
2711
-
2712
1957
  #. @context: Plain-text body fallback for the sample note post
2713
1958
  #: src/ui/pages/ThemeSamplePage.tsx
2714
1959
  msgid "The default accent should feel written, not branded."
@@ -2729,21 +1974,11 @@ msgstr "The default accent works best when it reads like a fountain-pen underlin
2729
1974
  msgid "The image should sit quietly inside the article instead of feeling like a card preview."
2730
1975
  msgstr "The image should sit quietly inside the article instead of feeling like a card preview."
2731
1976
 
2732
- #. @context: Description for max visible nav links, explains overflow behavior
2733
- #: src/ui/dash/appearance/NavigationContent.tsx
2734
- msgid "The rest will be tucked into a ··· menu"
2735
- msgstr "The rest will be tucked into a ··· menu"
2736
-
2737
1977
  #. @context: Blockquote on the theme sample page
2738
1978
  #: src/ui/pages/ThemeSamplePage.tsx
2739
1979
  msgid "The right accent should disappear into the writing until you need it."
2740
1980
  msgstr "The right accent should disappear into the writing until you need it."
2741
1981
 
2742
- #. @context: Custom URL target slug help text
2743
- #: src/routes/dash/custom-urls.tsx
2744
- msgid "The slug of the target post or collection"
2745
- msgstr "The slug of the target post or collection"
2746
-
2747
1982
  #. @context: Section heading for theme picker pills
2748
1983
  #: src/ui/pages/ThemeSamplePage.tsx
2749
1984
  msgid "Theme"
@@ -2756,26 +1991,11 @@ msgstr "Theme"
2756
1991
  msgid "Theme sample"
2757
1992
  msgstr "Theme sample"
2758
1993
 
2759
- #. @context: Fallback theme group description on color theme page
2760
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2761
- msgid "Themes that have not been assigned to a named group yet."
2762
- msgstr "Themes that have not been assigned to a named group yet."
2763
-
2764
- #. @context: Link to theming documentation on Custom CSS page
2765
- #: src/ui/dash/appearance/AdvancedContent.tsx
2766
- msgid "Theming guide"
2767
- msgstr "Theming guide"
2768
-
2769
1994
  #. @context: Helper text for the real post component section on the theme sample page
2770
1995
  #: src/ui/pages/ThemeSamplePage.tsx
2771
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."
2772
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."
2773
1998
 
2774
- #. @context: Description for session management
2775
- #: src/ui/dash/settings/SessionsContent.tsx
2776
- msgid "These devices are currently signed in to your account. Revoke any session you don't recognize."
2777
- msgstr "These devices are currently signed in to your account. Revoke any session you don't recognize."
2778
-
2779
1999
  #. @context: Opening paragraph on the sample detail article
2780
2000
  #: src/ui/pages/ThemeSamplePage.tsx
2781
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?"
@@ -2786,32 +2006,21 @@ msgstr "This article is here to answer a specific question: does the default acc
2786
2006
  msgid "This collection is empty. Add posts from the editor."
2787
2007
  msgstr "This collection is empty. Add posts from the editor."
2788
2008
 
2789
- #. @context: Help text for choosing whether /feed points to latest or featured posts
2790
- #: src/ui/dash/settings/GeneralContent.tsx
2791
- msgid "This controls what /feed returns."
2792
- msgstr "This controls what /feed returns."
2793
-
2794
- #. @context: Notice shown on hosted account settings explaining that password and hosted account controls live in the connected hosted auth provider
2795
- #: src/ui/dash/settings/AccountMenuContent.tsx
2796
- msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
2797
- msgstr "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
2798
-
2799
2009
  #. @context: Collection link help text
2800
2010
  #: src/ui/shared/collection-management-labels.ts
2801
2011
  msgid "This is the last part of the collection link."
2802
2012
  msgstr "This is the last part of the collection link."
2803
2013
 
2804
- #. @context: Help text for avatar upload
2805
- #: src/ui/dash/settings/AvatarContent.tsx
2806
- 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."
2807
- 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."
2808
-
2809
2014
  #. @context: Sample quote commentary prefix on the theme sample page
2810
2015
  #: src/ui/pages/ThemeSamplePage.tsx
2811
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"
2812
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"
2813
2018
 
2019
+ #. @context: Hosted SSO expired link page heading
2020
+ #. @context: Hosted SSO expired link page title
2814
2021
  #. @context: Password reset error heading
2022
+ #: src/routes/auth/hosted-sso-expired-page.tsx
2023
+ #: src/routes/auth/hosted-sso-expired-page.tsx
2815
2024
  #: src/routes/auth/reset.tsx
2816
2025
  msgid "This Link Has Expired"
2817
2026
  msgstr "This Link Has Expired"
@@ -2838,6 +2047,11 @@ msgstr "This reference is useful because it treats links and citations as part o
2838
2047
  msgid "This reset link is no longer valid. Request a new one to continue."
2839
2048
  msgstr "This reset link is no longer valid. Request a new one to continue."
2840
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
+
2841
2055
  #. @context: Error shown when a hosted upload would exceed the shared account media limit
2842
2056
  #. @context: Error shown when a hosted upload would exceed the shared account media limit
2843
2057
  #: src/routes/api/upload-multipart.ts
@@ -2850,11 +2064,6 @@ msgstr "This upload would exceed your shared hosted media limit. Remove files or
2850
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."
2851
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."
2852
2066
 
2853
- #. @context: Warning text on account deletion page
2854
- #: src/ui/dash/settings/DeleteAccountContent.tsx
2855
- 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."
2856
- 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."
2857
-
2858
2067
  #. @context: Archive month header count unit for a single thread
2859
2068
  #. @context: Archive page summary unit for a single matching thread
2860
2069
  #. @context: Singular thread count label on collection detail page
@@ -2883,10 +2092,10 @@ msgstr "Thread accents"
2883
2092
  msgid "threads"
2884
2093
  msgstr "threads"
2885
2094
 
2886
- #. @context: Settings form field
2887
- #: src/ui/dash/settings/GeneralContent.tsx
2888
- msgid "Time Zone"
2889
- 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."
2890
2099
 
2891
2100
  #. @context: Collection form field
2892
2101
  #. @context: Compose note title placeholder
@@ -2911,26 +2120,6 @@ msgstr "Titled"
2911
2120
  msgid "to make sure both still feel like they belong to the same product."
2912
2121
  msgstr "to make sure both still feel like they belong to the same product."
2913
2122
 
2914
- #. @context: Description for system nav toggles
2915
- #: src/ui/dash/appearance/NavigationContent.tsx
2916
- msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
2917
- msgstr "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
2918
-
2919
- #. @context: Button to expand/collapse nav item edit
2920
- #: src/ui/dash/appearance/NavigationContent.tsx
2921
- msgid "Toggle edit panel"
2922
- msgstr "Toggle edit panel"
2923
-
2924
- #. @context: API token name field label
2925
- #: src/ui/dash/settings/ApiTokensContent.tsx
2926
- msgid "Token name"
2927
- msgstr "Token name"
2928
-
2929
- #. @context: API tokens description
2930
- #: src/ui/dash/settings/ApiTokensContent.tsx
2931
- msgid "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
2932
- msgstr "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
2933
-
2934
2123
  #. @context: Usage label for the square logo PNG asset card
2935
2124
  #: src/ui/pages/BrandPage.tsx
2936
2125
  msgid "Transparent square"
@@ -2941,36 +2130,11 @@ msgstr "Transparent square"
2941
2130
  msgid "Tune color in a real reading context"
2942
2131
  msgstr "Tune color in a real reading context"
2943
2132
 
2944
- #. @context: Intro text on the settings home page below the title
2945
- #: src/ui/dash/settings/SettingsRootContent.tsx
2946
- msgid "Tune how your site looks, reads, and runs."
2947
- msgstr "Tune how your site looks, reads, and runs."
2948
-
2949
- #. @context: Custom URL form field
2950
- #: src/routes/dash/custom-urls.tsx
2951
- msgid "Type"
2952
- msgstr "Type"
2953
-
2954
- #. @context: Instruction to type confirmation phrase before deletion
2955
- #: src/ui/dash/settings/DeleteAccountContent.tsx
2956
- msgid "Type the following phrase to confirm:"
2957
- msgstr "Type the following phrase to confirm:"
2958
-
2959
2133
  #. @context: Compose quote text placeholder
2960
2134
  #: src/ui/compose/ComposeDialog.tsx
2961
2135
  msgid "Type the quote..."
2962
2136
  msgstr "Type the quote..."
2963
2137
 
2964
- #. @context: Settings item description for font theme
2965
- #: src/ui/dash/settings/SettingsRootContent.tsx
2966
- msgid "Typography choices and reading texture"
2967
- msgstr "Typography choices and reading texture"
2968
-
2969
- #. @context: Fallback label when session device can't be identified
2970
- #: src/ui/dash/settings/SessionsContent.tsx
2971
- msgid "Unknown device"
2972
- msgstr "Unknown device"
2973
-
2974
2138
  #. @context: Archive filter - notes without a title
2975
2139
  #. @context: Archive filter - notes without a title
2976
2140
  #: src/ui/pages/ArchivePage.tsx
@@ -2978,49 +2142,30 @@ msgstr "Unknown device"
2978
2142
  msgid "Untitled"
2979
2143
  msgstr "Untitled"
2980
2144
 
2981
- #. @context: Settings item description for password change
2982
- #: src/ui/dash/settings/AccountMenuContent.tsx
2983
- msgid "Update the password you use to sign in"
2984
- msgstr "Update the password you use to sign in"
2985
-
2986
- #. @context: Button to upload avatar image
2987
- #: src/ui/dash/settings/AvatarContent.tsx
2988
- msgid "Upload Avatar"
2989
- msgstr "Upload Avatar"
2990
-
2991
- #. @context: Error toast when avatar upload fails
2992
2145
  #. @context: Error when file upload fails
2993
2146
  #: src/routes/api/upload.ts
2994
- #: src/routes/dash/settings.tsx
2995
2147
  msgid "Upload didn't go through. Try again in a moment."
2996
2148
  msgstr "Upload didn't go through. Try again in a moment."
2997
2149
 
2998
- #. @context: Error message when avatar upload fails
2999
- #: src/ui/dash/settings/AvatarContent.tsx
3000
- msgid "Upload failed. Please try again."
3001
- msgstr "Upload failed. Please try again."
3002
-
3003
- #. @context: Avatar upload button text while uploading
3004
2150
  #. @context: Toast shown during background upload
3005
2151
  #: src/ui/compose/ComposeDialog.tsx
3006
- #: src/ui/dash/settings/AvatarContent.tsx
3007
2152
  msgid "Uploading..."
3008
2153
  msgstr "Uploading..."
3009
2154
 
3010
- #. @context: Nav item URL field
3011
- #: src/ui/dash/appearance/NavigationContent.tsx
2155
+ #. @context: Field label for a custom collections link URL
2156
+ #: src/ui/shared/collection-management-labels.ts
3012
2157
  msgid "URL"
3013
2158
  msgstr "URL"
3014
2159
 
3015
- #. @context: Heading for API token usage examples
3016
- #: src/ui/dash/settings/ApiTokensContent.tsx
3017
- msgid "Usage"
3018
- 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}"
3019
2164
 
3020
- #. @context: Switch label for setting featured posts as default homepage
3021
- #: src/ui/dash/appearance/NavigationContent.tsx
3022
- msgid "Use Featured as the home feed"
3023
- 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"
3024
2169
 
3025
2170
  #. @context: Collection slug validation error for invalid characters
3026
2171
  #. @context: Compose custom slug validation error for invalid characters
@@ -3044,11 +2189,6 @@ msgstr "Use the reverse logo on dark backgrounds."
3044
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."
3045
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."
3046
2191
 
3047
- #. @context: Help text for the explicit latest and featured feed URLs
3048
- #: src/ui/dash/settings/GeneralContent.tsx
3049
- msgid "Use these when you want a feed URL that never changes."
3050
- msgstr "Use these when you want a feed URL that never changes."
3051
-
3052
2192
  #. @context: Description for the default logo card
3053
2193
  #: src/ui/pages/BrandPage.tsx
3054
2194
  msgid "Use this for websites, docs, articles, and other light or neutral surfaces."
@@ -3064,25 +2204,13 @@ msgstr "Use this on dark backgrounds, image-backed surfaces, and any placement w
3064
2204
  msgid "Use this page to judge buttons, links, cards, forms, thread accents, and quiet surfaces before changing a theme globally."
3065
2205
  msgstr "Use this page to judge buttons, links, cards, forms, thread accents, and quiet surfaces before changing a theme globally."
3066
2206
 
3067
- #. @context: Description for choosing featured posts as the main RSS feed
3068
- #: src/ui/dash/settings/GeneralContent.tsx
3069
- msgid "Uses featured posts for /feed."
3070
- msgstr "Uses featured posts for /feed."
3071
-
3072
- #. @context: Description for choosing the latest posts as the main RSS feed
3073
- #: src/ui/dash/settings/GeneralContent.tsx
3074
- msgid "Uses the latest public posts for /feed."
3075
- msgstr "Uses the latest public posts for /feed."
3076
-
3077
2207
  #. @context: Archive media filter - video
3078
2208
  #: src/ui/pages/ArchivePage.tsx
3079
2209
  msgid "Video"
3080
2210
  msgstr "Video"
3081
2211
 
3082
- #. @context: Button to view item on public site
3083
2212
  #. @context: Toast action button to view the published post
3084
2213
  #: src/ui/compose/ComposeDialog.tsx
3085
- #: src/ui/dash/ActionButtons.tsx
3086
2214
  msgid "View"
3087
2215
  msgstr "View"
3088
2216
 
@@ -3096,16 +2224,6 @@ msgstr "View earlier notes in this thread"
3096
2224
  msgid "Visibility"
3097
2225
  msgstr "Visibility"
3098
2226
 
3099
- #. @context: Prefix before Custom CSS link on color theme page
3100
- #: src/ui/dash/appearance/ColorThemeContent.tsx
3101
- msgid "Want more control?"
3102
- msgstr "Want more control?"
3103
-
3104
- #. @context: Theme group heading on color theme settings page
3105
- #: src/ui/dash/appearance/ColorThemeContent.tsx
3106
- msgid "Warm Editorial"
3107
- msgstr "Warm Editorial"
3108
-
3109
2227
  #. @context: Setup page welcome heading
3110
2228
  #: src/routes/auth/setup.tsx
3111
2229
  msgid "Welcome to Jant"
@@ -3136,11 +2254,6 @@ msgstr "What's on your mind..."
3136
2254
  msgid "What's this collection about?"
3137
2255
  msgstr "What's this collection about?"
3138
2256
 
3139
- #. @context: Description for featured default toggle, explains what happens when off
3140
- #: src/ui/dash/appearance/NavigationContent.tsx
3141
- msgid "When off, the homepage opens with your latest posts."
3142
- msgstr "When off, the homepage opens with your latest posts."
3143
-
3144
2257
  #. @context: Textarea value on sample page
3145
2258
  #: src/ui/pages/ThemeSamplePage.tsx
3146
2259
  msgid "When primary is too rigid, the whole page starts reading like product UI instead of writing space."
@@ -3151,11 +2264,6 @@ msgstr "When primary is too rigid, the whole page starts reading like product UI
3151
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."
3152
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."
3153
2266
 
3154
- #. @context: Description for backup and restore documentation link in account settings
3155
- #: src/ui/dash/settings/AccountMenuContent.tsx
3156
- msgid "When to use site export, database backups, and recovery drills."
3157
- msgstr "When to use site export, database backups, and recovery drills."
3158
-
3159
2267
  #. @context: Description for the circle tile asset card
3160
2268
  #: src/ui/pages/BrandPage.tsx
3161
2269
  msgid "White logo on the Jant green circle for profile images, badges, and other round placements where you want a ready-made asset."
@@ -3176,6 +2284,31 @@ msgstr "White logo on the Jant green square tile for platforms and layouts that
3176
2284
  msgid "Why the default accent should feel written, not branded"
3177
2285
  msgstr "Why the default accent should feel written, not branded"
3178
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
+
3179
2312
  #. @context: Error toast when sign-in credentials are wrong
3180
2313
  #: src/routes/auth/signin.tsx
3181
2314
  msgid "Wrong email or password. Check your credentials and try again."