@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
@@ -0,0 +1,1622 @@
1
+ msgid ""
2
+ msgstr ""
3
+ "POT-Creation-Date: 2026-04-15 21:58+0800\n"
4
+ "MIME-Version: 1.0\n"
5
+ "Content-Type: text/plain; charset=utf-8\n"
6
+ "Content-Transfer-Encoding: 8bit\n"
7
+ "X-Generator: @lingui/cli\n"
8
+ "Language: en\n"
9
+ "Project-Id-Version: \n"
10
+ "Report-Msgid-Bugs-To: \n"
11
+ "PO-Revision-Date: \n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: \n"
14
+ "Plural-Forms: \n"
15
+
16
+ #. @context: Custom CSS textarea placeholder
17
+ #: src/ui/dash/appearance/AdvancedContent.tsx
18
+ msgid "/* Your custom CSS here */"
19
+ msgstr "/* Your custom CSS here */"
20
+
21
+ #. @context: GitHub sync picker — entry at the bottom of the owner dropdown that starts a new install flow
22
+ #: src/routes/dash/settings.tsx
23
+ msgid "+ Install on another account"
24
+ msgstr "+ Install on another account"
25
+
26
+ #. @context: Redirect type option
27
+ #: src/routes/dash/custom-urls.tsx
28
+ msgid "301 (Permanent)"
29
+ msgstr "301 (Permanent)"
30
+
31
+ #. @context: Redirect type option
32
+ #: src/routes/dash/custom-urls.tsx
33
+ msgid "302 (Temporary)"
34
+ msgstr "302 (Temporary)"
35
+
36
+ #. @context: Help text for site description field
37
+ #: src/ui/dash/settings/GeneralContent.tsx
38
+ msgid "A short intro shown on your home page."
39
+ msgstr "A short intro shown on your home page."
40
+
41
+ #. @context: Settings form field for site description
42
+ #: src/ui/dash/settings/GeneralContent.tsx
43
+ msgid "About this blog"
44
+ msgstr "About this blog"
45
+
46
+ #. @context: Breadcrumb label
47
+ #. @context: GitHub sync picker — owner dropdown label
48
+ #. @context: Page title for the account settings menu
49
+ #. @context: Settings group label for account settings
50
+ #. @context: Settings item — account settings
51
+ #: src/routes/dash/settings.tsx
52
+ #: src/routes/dash/settings.tsx
53
+ #: src/ui/dash/settings/AccountMenuContent.tsx
54
+ #: src/ui/dash/settings/SettingsRootContent.tsx
55
+ #: src/ui/dash/settings/SettingsRootContent.tsx
56
+ msgid "Account"
57
+ msgstr "Account"
58
+
59
+ #. @context: Error shown when account deletion is blocked in demo mode
60
+ #: src/routes/dash/settings.tsx
61
+ msgid "Account deletion is off in demo mode. The shared demo resets separately."
62
+ msgstr "Account deletion is off in demo mode. The shared demo resets separately."
63
+
64
+ #. @context: Settings section heading for active sessions
65
+ #: src/ui/dash/settings/SessionsContent.tsx
66
+ msgid "Active Sessions"
67
+ msgstr "Active Sessions"
68
+
69
+ #. @context: Heading for list of active API tokens
70
+ #: src/ui/dash/settings/ApiTokensContent.tsx
71
+ msgid "Active Tokens"
72
+ msgstr "Active Tokens"
73
+
74
+ #. @context: Description in link popover form
75
+ #: src/ui/dash/appearance/NavigationContent.tsx
76
+ msgid "Add a custom link to any URL"
77
+ msgstr "Add a custom link to any URL"
78
+
79
+ #. @context: Button for adding a collection to nav
80
+ #: src/ui/dash/appearance/NavigationContent.tsx
81
+ msgid "Add Collection"
82
+ msgstr "Add Collection"
83
+
84
+ #. @context: Section heading for adding a collection to nav
85
+ #: src/ui/dash/appearance/NavigationContent.tsx
86
+ msgid "Add collection to navigation"
87
+ msgstr "Add collection to navigation"
88
+
89
+ #. @context: Custom CSS settings description
90
+ #: src/ui/dash/appearance/AdvancedContent.tsx
91
+ msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
92
+ msgstr "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
93
+
94
+ #. @context: Section heading for adding custom link to nav
95
+ #: src/ui/dash/appearance/NavigationContent.tsx
96
+ msgid "Add custom link to navigation"
97
+ msgstr "Add custom link to navigation"
98
+
99
+ #. @context: Button and heading for adding custom link
100
+ #: src/ui/dash/appearance/NavigationContent.tsx
101
+ msgid "Add Link"
102
+ msgstr "Add Link"
103
+
104
+ #. @context: Settings group label for advanced settings
105
+ #: src/ui/dash/settings/SettingsRootContent.tsx
106
+ msgid "Advanced"
107
+ msgstr "Advanced"
108
+
109
+ #. @context: Description after API reference link
110
+ #: src/ui/dash/settings/ApiTokensContent.tsx
111
+ msgid "all available endpoints and request formats."
112
+ msgstr "all available endpoints and request formats."
113
+
114
+ #. @context: Message when every collection is already added to nav
115
+ #: src/ui/dash/appearance/NavigationContent.tsx
116
+ msgid "All collections are already in your navigation."
117
+ msgstr "All collections are already in your navigation."
118
+
119
+ #. @context: Checkbox for allowing search engine indexing
120
+ #: src/ui/dash/settings/GeneralContent.tsx
121
+ msgid "Allow search engines to index my site"
122
+ msgstr "Allow search engines to index my site"
123
+
124
+ #. @context: Theme mode option description
125
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
126
+ msgid "Always show the dark version of the theme."
127
+ msgstr "Always show the dark version of the theme."
128
+
129
+ #. @context: Theme mode option description
130
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
131
+ msgid "Always show the light version of the theme."
132
+ msgstr "Always show the light version of the theme."
133
+
134
+ #. @context: Code Injection security warning body
135
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
136
+ msgid "Anything you paste here has full access to your visitors' browsers. Only use code from sources you trust."
137
+ msgstr "Anything you paste here has full access to your visitors' browsers. Only use code from sources you trust."
138
+
139
+ #. @context: Link to API documentation
140
+ #: src/ui/dash/settings/ApiTokensContent.tsx
141
+ msgid "API reference"
142
+ msgstr "API reference"
143
+
144
+ #. @context: Breadcrumb label
145
+ #. @context: Settings item — API token settings
146
+ #. @context: Settings section heading
147
+ #: src/routes/dash/settings.tsx
148
+ #: src/ui/dash/settings/ApiTokensContent.tsx
149
+ #: src/ui/dash/settings/SettingsRootContent.tsx
150
+ msgid "API Tokens"
151
+ msgstr "API Tokens"
152
+
153
+ #. @context: Settings group label for design settings
154
+ #: src/ui/dash/settings/SettingsRootContent.tsx
155
+ msgid "Appearance"
156
+ msgstr "Appearance"
157
+
158
+ #. @context: Appearance settings description
159
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
160
+ msgid "Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed."
161
+ msgstr "Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed."
162
+
163
+ #. @context: Custom URL target type badge for an archive view
164
+ #. @context: Custom URL type option for filtered archive view
165
+ #: src/routes/dash/custom-urls.tsx
166
+ #: src/routes/dash/custom-urls.tsx
167
+ msgid "Archive"
168
+ msgstr "Archive"
169
+
170
+ #. @context: Help text for archive custom URL query params
171
+ #: src/routes/dash/custom-urls.tsx
172
+ msgid "Archive filter parameters (e.g. format=note&view=list)"
173
+ msgstr "Archive filter parameters (e.g. format=note&view=list)"
174
+
175
+ #. @context: Theme mode option label
176
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
177
+ msgid "Auto"
178
+ msgstr "Auto"
179
+
180
+ #. @context: Description after theming guide link on Custom CSS page
181
+ #: src/ui/dash/appearance/AdvancedContent.tsx
182
+ msgid "available CSS variables, data attributes, and examples."
183
+ msgstr "available CSS variables, data attributes, and examples."
184
+
185
+ #. @context: Breadcrumb label
186
+ #. @context: Settings item — avatar settings
187
+ #: src/routes/dash/settings.tsx
188
+ #: src/ui/dash/settings/SettingsRootContent.tsx
189
+ msgid "Avatar"
190
+ msgstr "Avatar"
191
+
192
+ #. @context: Toast after saving avatar display preference
193
+ #. @context: Toast after saving avatar display preference
194
+ #: src/routes/dash/settings.tsx
195
+ #: src/routes/dash/settings.tsx
196
+ msgid "Avatar display updated."
197
+ msgstr "Avatar display updated."
198
+
199
+ #. @context: Settings item description for GitHub sync
200
+ #: src/ui/dash/settings/SettingsRootContent.tsx
201
+ msgid "Back up and sync content with a GitHub repository"
202
+ msgstr "Back up and sync content with a GitHub repository"
203
+
204
+ #. @context: Link to backup and restore documentation from account settings
205
+ #: src/ui/dash/settings/AccountMenuContent.tsx
206
+ msgid "Backup & Restore Guide"
207
+ msgstr "Backup & Restore Guide"
208
+
209
+ #. @context: Settings item description for API tokens
210
+ #: src/ui/dash/settings/SettingsRootContent.tsx
211
+ msgid "Bearer tokens for scripts and automation"
212
+ msgstr "Bearer tokens for scripts and automation"
213
+
214
+ #. @context: Step 1 description for site export before account deletion
215
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
216
+ msgid "Before deleting, download a site export. You won't be able to recover this account after deletion."
217
+ msgstr "Before deleting, download a site export. You won't be able to recover this account after deletion."
218
+
219
+ #. @context: Settings section heading for avatar
220
+ #: src/ui/dash/settings/AvatarContent.tsx
221
+ msgid "Blog Avatar"
222
+ msgstr "Blog Avatar"
223
+
224
+ #. @context: Section heading for built-in nav items
225
+ #: src/ui/dash/appearance/NavigationContent.tsx
226
+ msgid "Built-in links"
227
+ msgstr "Built-in links"
228
+
229
+ #. @context: Button label to dismiss a dialog or action
230
+ #. @context: Button label to dismiss a dialog or action
231
+ #. @context: Button label to dismiss a dialog or action
232
+ #. @context: Button label to dismiss a dialog or action
233
+ #. @context: Button label to dismiss a dialog or action
234
+ #. @context: Button label to dismiss a dialog or action
235
+ #. @context: Button label to dismiss a dialog or action
236
+ #. @context: Button label to dismiss a dialog or action
237
+ #. @context: Button to cancel form
238
+ #. @context: Button to cancel settings changes
239
+ #. @context: Button to cancel unsaved changes and revert to original values
240
+ #. @context: GitHub sync picker — cancel action
241
+ #: src/routes/dash/custom-urls.tsx
242
+ #: src/routes/dash/custom-urls.tsx
243
+ #: src/routes/dash/settings.tsx
244
+ #: src/ui/dash/ActionButtons.tsx
245
+ #: src/ui/dash/appearance/NavigationContent.tsx
246
+ #: src/ui/dash/DangerZone.tsx
247
+ #: src/ui/dash/settings/ApiTokensContent.tsx
248
+ #: src/ui/dash/settings/AvatarContent.tsx
249
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
250
+ #: src/ui/dash/settings/GeneralContent.tsx
251
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
252
+ #: src/ui/dash/settings/SessionsContent.tsx
253
+ msgid "Cancel"
254
+ msgstr "Cancel"
255
+
256
+ #. @context: Button to change password
257
+ #. @context: Settings section heading
258
+ #: src/ui/dash/settings/AccountContent.tsx
259
+ #: src/ui/dash/settings/AccountContent.tsx
260
+ msgid "Change Password"
261
+ msgstr "Change Password"
262
+
263
+ #. @context: Warning shown when changing the canonical RSS feed selection
264
+ #: src/ui/dash/settings/GeneralContent.tsx
265
+ msgid "Changing this updates what subscribers get from /feed."
266
+ msgstr "Changing this updates what subscribers get from /feed."
267
+
268
+ #. @context: GitHub sync picker — status text while classifying the picked repo
269
+ #: src/routes/dash/settings.tsx
270
+ msgid "Checking repository…"
271
+ msgstr "Checking repository…"
272
+
273
+ #. @context: Font theme settings description
274
+ #: src/ui/dash/appearance/FontThemeContent.tsx
275
+ msgid "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
276
+ msgstr "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
277
+
278
+ #. @context: GitHub sync picker — page subtitle
279
+ #: src/routes/dash/settings.tsx
280
+ msgid "Choose the GitHub account and repository to sync with this site."
281
+ msgstr "Choose the GitHub account and repository to sync with this site."
282
+
283
+ #. @context: Settings form field for CJK serif font selection
284
+ #: src/ui/dash/settings/GeneralContent.tsx
285
+ msgid "CJK Font"
286
+ msgstr "CJK Font"
287
+
288
+ #. @context: Breadcrumb label
289
+ #. @context: Settings item — code injection settings
290
+ #: src/routes/dash/settings.tsx
291
+ #: src/ui/dash/settings/SettingsRootContent.tsx
292
+ msgid "Code Injection"
293
+ msgstr "Code Injection"
294
+
295
+ #. @context: Toast after saving Code Injection settings
296
+ #: src/routes/dash/settings.tsx
297
+ msgid "Code injection updated."
298
+ msgstr "Code injection updated."
299
+
300
+ #. @context: Nav item type badge for collection items
301
+ #: src/ui/dash/appearance/NavigationContent.tsx
302
+ msgid "collection"
303
+ msgstr "collection"
304
+
305
+ #. @context: Custom URL target type badge for a collection
306
+ #. @context: Custom URL type option
307
+ #: src/routes/dash/custom-urls.tsx
308
+ #: src/routes/dash/custom-urls.tsx
309
+ msgid "Collection"
310
+ msgstr "Collection"
311
+
312
+ #. @context: Appearance settings heading
313
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
314
+ msgid "Color theme"
315
+ msgstr "Color theme"
316
+
317
+ #. @context: Breadcrumb label
318
+ #. @context: Settings item — color theme settings
319
+ #: src/routes/dash/settings.tsx
320
+ #: src/ui/dash/settings/SettingsRootContent.tsx
321
+ msgid "Color Theme"
322
+ msgstr "Color Theme"
323
+
324
+ #. @context: Step 2 heading — user must type confirmation phrase
325
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
326
+ msgid "Confirm account deletion"
327
+ msgstr "Confirm account deletion"
328
+
329
+ #. @context: Password form field
330
+ #: src/ui/dash/settings/AccountContent.tsx
331
+ msgid "Confirm New Password"
332
+ msgstr "Confirm New Password"
333
+
334
+ #. @context: Button label to connect GitHub repository on GitHub Sync settings
335
+ #. @context: GitHub sync picker — primary action button
336
+ #: src/routes/dash/settings.tsx
337
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
338
+ msgid "Connect"
339
+ msgstr "Connect"
340
+
341
+ #. @context: Intro text on GitHub Sync settings page when not connected
342
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
343
+ msgid "Connect a GitHub repository to automatically back up your posts as Markdown files. Edits on GitHub sync back to your site."
344
+ msgstr "Connect a GitHub repository to automatically back up your posts as Markdown files. Edits on GitHub sync back to your site."
345
+
346
+ #. @context: Heading for the GitHub App connect option on GitHub Sync setup
347
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
348
+ msgid "Connect with GitHub App"
349
+ msgstr "Connect with GitHub App"
350
+
351
+ #. @context: Status label when GitHub Sync is active using the GitHub App
352
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
353
+ msgid "Connected via GitHub App"
354
+ msgstr "Connected via GitHub App"
355
+
356
+ #. @context: Status label when GitHub Sync is active using a PAT
357
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
358
+ msgid "Connected via Personal Access Token"
359
+ msgstr "Connected via Personal Access Token"
360
+
361
+ #. @context: GitHub sync picker — explanatory body for foreign-repo confirmation. Placeholder {repo} is the owner/repo slug.
362
+ #: src/routes/dash/settings.tsx
363
+ msgid "Connecting will sync your site onto {repo}'s default branch on top of its existing history. Existing files outside Jant's managed paths are kept. This can't be undone."
364
+ msgstr "Connecting will sync your site onto {repo}'s default branch on top of its existing history. Existing files outside Jant's managed paths are kept. This can't be undone."
365
+
366
+ #. @context: GitHub sync picker — primary action button while a request is in flight
367
+ #: src/routes/dash/settings.tsx
368
+ msgid "Connecting…"
369
+ msgstr "Connecting…"
370
+
371
+ #. @context: Help text under the site language select
372
+ #: src/ui/dash/settings/GeneralContent.tsx
373
+ msgid "Controls the language of the dashboard and settings. Public pages stay in English."
374
+ msgstr "Controls the language of the dashboard and settings. Public pages stay in English."
375
+
376
+ #. @context: Feedback after copying API token
377
+ #: src/ui/dash/settings/ApiTokensContent.tsx
378
+ msgid "Copied"
379
+ msgstr "Copied"
380
+
381
+ #. @context: Button to copy a URL to the clipboard
382
+ #: src/ui/dash/settings/GeneralContent.tsx
383
+ msgid "Copy"
384
+ msgstr "Copy"
385
+
386
+ #. @context: Button to copy API token to clipboard
387
+ #. @context: Button to copy API token to clipboard
388
+ #: src/ui/dash/settings/ApiTokensContent.tsx
389
+ #: src/ui/dash/settings/ApiTokensContent.tsx
390
+ msgid "Copy Token"
391
+ msgstr "Copy Token"
392
+
393
+ #. @context: Warning to copy newly created API token
394
+ #: src/ui/dash/settings/ApiTokensContent.tsx
395
+ msgid "Copy your token now — it won't be shown again."
396
+ msgstr "Copy your token now — it won't be shown again."
397
+
398
+ #. @context: Error toast when copying text to the clipboard fails
399
+ #: src/ui/dash/settings/GeneralContent.tsx
400
+ msgid "Could not copy. Try again."
401
+ msgstr "Could not copy. Try again."
402
+
403
+ #. @context: GitHub sync picker — generic failure message for Connect
404
+ #: src/routes/dash/settings.tsx
405
+ msgid "Couldn't connect. Check the error and try again."
406
+ msgstr "Couldn't connect. Check the error and try again."
407
+
408
+ #. @context: Error toast when nav delete fails
409
+ #: src/ui/dash/appearance/NavigationContent.tsx
410
+ msgid "Couldn't delete. Try again in a moment."
411
+ msgstr "Couldn't delete. Try again in a moment."
412
+
413
+ #. @context: Error toast when nav save fails
414
+ #: src/ui/dash/appearance/NavigationContent.tsx
415
+ msgid "Couldn't save. Try again in a moment."
416
+ msgstr "Couldn't save. Try again in a moment."
417
+
418
+ #. @context: GitHub sync picker — entry that opens github.com/new in a new tab
419
+ #: src/routes/dash/settings.tsx
420
+ msgid "Create a new repository on GitHub"
421
+ msgstr "Create a new repository on GitHub"
422
+
423
+ #. @context: Label for curl example
424
+ #: src/ui/dash/settings/ApiTokensContent.tsx
425
+ msgid "Create a post with curl:"
426
+ msgstr "Create a post with curl:"
427
+
428
+ #. @context: Button to save new custom URL
429
+ #: src/routes/dash/custom-urls.tsx
430
+ msgid "Create Custom URL"
431
+ msgstr "Create Custom URL"
432
+
433
+ #. @context: Link text pointing to GitHub's fine-grained PAT creation page
434
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
435
+ msgid "Create one on GitHub"
436
+ msgstr "Create one on GitHub"
437
+
438
+ #. @context: Token creation date
439
+ #: src/ui/dash/settings/ApiTokensContent.tsx
440
+ msgid "Created {date}"
441
+ msgstr "Created {date}"
442
+
443
+ #. @context: Badge indicating the current active session
444
+ #: src/ui/dash/settings/SessionsContent.tsx
445
+ msgid "Current"
446
+ msgstr "Current"
447
+
448
+ #. @context: Password form field
449
+ #: src/ui/dash/settings/AccountContent.tsx
450
+ msgid "Current Password"
451
+ msgstr "Current Password"
452
+
453
+ #. @context: Error toast when current password verification fails
454
+ #: src/routes/dash/settings.tsx
455
+ msgid "Current password doesn't match. Try again."
456
+ msgstr "Current password doesn't match. Try again."
457
+
458
+ #. @context: Appearance settings heading for custom CSS
459
+ #. @context: Breadcrumb label
460
+ #. @context: Link to Custom CSS settings from color theme page
461
+ #. @context: Settings item — custom CSS settings
462
+ #: src/routes/dash/settings.tsx
463
+ #: src/ui/dash/appearance/AdvancedContent.tsx
464
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
465
+ #: src/ui/dash/settings/SettingsRootContent.tsx
466
+ msgid "Custom CSS"
467
+ msgstr "Custom CSS"
468
+
469
+ #. @context: Toast after saving custom CSS
470
+ #: src/routes/dash/settings.tsx
471
+ msgid "Custom CSS updated."
472
+ msgstr "Custom CSS updated."
473
+
474
+ #. @context: Settings item — custom URL settings
475
+ #. @context: Settings section heading
476
+ #: src/routes/dash/custom-urls.tsx
477
+ #: src/ui/dash/settings/SettingsRootContent.tsx
478
+ msgid "Custom URLs"
479
+ msgstr "Custom URLs"
480
+
481
+ #. @context: Section heading for dangerous/destructive actions
482
+ #. @context: Settings group label for destructive account actions
483
+ #. @context: Settings group label for destructive account actions
484
+ #: src/ui/dash/DangerZone.tsx
485
+ #: src/ui/dash/settings/AccountMenuContent.tsx
486
+ #: src/ui/dash/settings/AccountMenuContent.tsx
487
+ msgid "Danger Zone"
488
+ msgstr "Danger Zone"
489
+
490
+ #. @context: Theme mode option label
491
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
492
+ msgid "Dark"
493
+ msgstr "Dark"
494
+
495
+ #. @context: Settings group label for data export/import
496
+ #: src/ui/dash/settings/AccountMenuContent.tsx
497
+ msgid "Data"
498
+ msgstr "Data"
499
+
500
+ #. @context: Button to delete custom URL
501
+ #. @context: Button to delete item
502
+ #. @context: Delete nav item
503
+ #: src/routes/dash/custom-urls.tsx
504
+ #: src/ui/dash/ActionButtons.tsx
505
+ #: src/ui/dash/appearance/NavigationContent.tsx
506
+ msgid "Delete"
507
+ msgstr "Delete"
508
+
509
+ #. @context: Breadcrumb label
510
+ #. @context: Page title for account deletion
511
+ #. @context: Settings item — delete account and all data
512
+ #: src/routes/dash/settings.tsx
513
+ #: src/ui/dash/settings/AccountMenuContent.tsx
514
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
515
+ msgid "Delete Account"
516
+ msgstr "Delete Account"
517
+
518
+ #. @context: Final destructive button to delete account and all data
519
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
520
+ msgid "Delete Account Permanently"
521
+ msgstr "Delete Account Permanently"
522
+
523
+ #. @context: Settings item — open the hosted site danger zone in the control plane
524
+ #: src/ui/dash/settings/AccountMenuContent.tsx
525
+ msgid "Delete Hosted Site"
526
+ msgstr "Delete Hosted Site"
527
+
528
+ #. @context: Final browser confirm dialog before account deletion
529
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
530
+ msgid "Delete this blog permanently? This cannot be undone."
531
+ msgstr "Delete this blog permanently? This cannot be undone."
532
+
533
+ #. @context: Confirm dialog for deleting a custom URL
534
+ #: src/routes/dash/custom-urls.tsx
535
+ msgid "Delete this custom URL? Visitors using it won't be redirected anymore."
536
+ msgstr "Delete this custom URL? Visitors using it won't be redirected anymore."
537
+
538
+ #. @context: Confirm dialog for deleting a custom navigation link
539
+ #: src/ui/dash/appearance/NavigationContent.tsx
540
+ msgid "Delete this navigation link? Visitors won't see it in your site header anymore."
541
+ msgstr "Delete this navigation link? Visitors won't see it in your site header anymore."
542
+
543
+ #. @context: Settings item description for account settings on the settings home page when demo restrictions are enabled
544
+ #: src/ui/dash/settings/SettingsRootContent.tsx
545
+ msgid "Demo limits"
546
+ msgstr "Demo limits"
547
+
548
+ #. @context: Notice shown on the account page when demo restrictions are enabled
549
+ #: src/ui/dash/settings/AccountMenuContent.tsx
550
+ msgid "Demo mode hides sessions, password changes, and account deletion. Export still works."
551
+ msgstr "Demo mode hides sessions, password changes, and account deletion. Export still works."
552
+
553
+ #. @context: Help text explaining that SEO indexing is locked in demo mode
554
+ #: src/ui/dash/settings/GeneralContent.tsx
555
+ msgid "Demo sites always stay hidden from search engines."
556
+ msgstr "Demo sites always stay hidden from search engines."
557
+
558
+ #. @context: Color theme preview collection label
559
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
560
+ msgid "Design"
561
+ msgstr "Design"
562
+
563
+ #. @context: Redirect destination field
564
+ #: src/routes/dash/custom-urls.tsx
565
+ msgid "Destination"
566
+ msgstr "Destination"
567
+
568
+ #. @context: Button to disconnect GitHub repository on GitHub Sync settings
569
+ #. @context: Section heading for disconnect action on GitHub Sync settings
570
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
571
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
572
+ msgid "Disconnect"
573
+ msgstr "Disconnect"
574
+
575
+ #. @context: Confirmation message when disconnecting GitHub Sync
576
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
577
+ msgid "Disconnect from GitHub? The webhook will be removed. Your repository content will not be deleted."
578
+ msgstr "Disconnect from GitHub? The webhook will be removed. Your repository content will not be deleted."
579
+
580
+ #. @context: Checkbox to show avatar in the site header
581
+ #: src/ui/dash/settings/AvatarContent.tsx
582
+ msgid "Display avatar in my site header"
583
+ msgstr "Display avatar in my site header"
584
+
585
+ #. @context: Help text for site footer field
586
+ #: src/ui/dash/settings/GeneralContent.tsx
587
+ msgid "Displayed at the bottom of all posts and pages."
588
+ msgstr "Displayed at the bottom of all posts and pages."
589
+
590
+ #. @context: Settings item description for static site export
591
+ #: src/ui/dash/settings/AccountMenuContent.tsx
592
+ msgid "Download a Hugo-compatible archive — host it statically or move to another Jant."
593
+ msgstr "Download a Hugo-compatible archive — host it statically or move to another Jant."
594
+
595
+ #. @context: Step 1 heading — user must download a site export before deleting
596
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
597
+ msgid "Download a site export"
598
+ msgstr "Download a site export"
599
+
600
+ #. @context: Button to download the site export ZIP before deletion
601
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
602
+ msgid "Download Export ZIP"
603
+ msgstr "Download Export ZIP"
604
+
605
+ #. @context: Alert when site export download fails during account deletion
606
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
607
+ msgid "Download failed. Please try again."
608
+ msgstr "Download failed. Please try again."
609
+
610
+ #. @context: Post status badge - draft
611
+ #: src/ui/dash/StatusBadge.tsx
612
+ msgid "Draft"
613
+ msgstr "Draft"
614
+
615
+ #. @context: Hint text shown in empty More section of nav settings
616
+ #: src/ui/dash/appearance/NavigationContent.tsx
617
+ msgid "Drag links here to show them under the More menu"
618
+ msgstr "Drag links here to show them under the More menu"
619
+
620
+ #. @context: Placeholder for API token name input
621
+ #: src/ui/dash/settings/ApiTokensContent.tsx
622
+ msgid "e.g. iOS Shortcuts"
623
+ msgstr "e.g. iOS Shortcuts"
624
+
625
+ #. @context: Button to edit item
626
+ #: src/ui/dash/ActionButtons.tsx
627
+ msgid "Edit"
628
+ msgstr "Edit"
629
+
630
+ #. @context: GitHub sync picker — shown when the selected repo has no commits
631
+ #: src/routes/dash/settings.tsx
632
+ msgid "Empty repository. Ready to connect."
633
+ msgstr "Empty repository. Ready to connect."
634
+
635
+ #. @context: Confirmation text after downloading the site export in delete flow
636
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
637
+ msgid "Export downloaded."
638
+ msgstr "Export downloaded."
639
+
640
+ #. @context: Settings item — export the site as a Hugo archive
641
+ #: src/ui/dash/settings/AccountMenuContent.tsx
642
+ msgid "Export Site"
643
+ msgstr "Export Site"
644
+
645
+ #. @context: Settings item description for avatar
646
+ #: src/ui/dash/settings/SettingsRootContent.tsx
647
+ msgid "Favicon and the profile mark in your header"
648
+ msgstr "Favicon and the profile mark in your header"
649
+
650
+ #. @context: Browse filter label for featured posts
651
+ #. @context: Post badge - featured
652
+ #. @context: Select option for using featured posts as the main RSS feed
653
+ #: src/ui/dash/appearance/NavigationContent.tsx
654
+ #: src/ui/dash/settings/GeneralContent.tsx
655
+ #: src/ui/dash/StatusBadge.tsx
656
+ msgid "Featured"
657
+ msgstr "Featured"
658
+
659
+ #. @context: Label for the explicit featured RSS feed URL
660
+ #: src/ui/dash/settings/GeneralContent.tsx
661
+ msgid "Featured feed"
662
+ msgstr "Featured feed"
663
+
664
+ #. @context: Toast after saving feed settings
665
+ #: src/routes/dash/settings.tsx
666
+ msgid "Feed settings updated."
667
+ msgstr "Feed settings updated."
668
+
669
+ #. @context: Toast after copying a feed URL to the clipboard
670
+ #: src/ui/dash/settings/GeneralContent.tsx
671
+ msgid "Feed URL copied."
672
+ msgstr "Feed URL copied."
673
+
674
+ #. @context: Settings section heading for RSS feed configuration
675
+ #: src/ui/dash/settings/GeneralContent.tsx
676
+ msgid "Feeds"
677
+ msgstr "Feeds"
678
+
679
+ #. @context: Color theme preview card title
680
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
681
+ msgid "Field notes on quiet design"
682
+ msgstr "Field notes on quiet design"
683
+
684
+ #. @context: Error toast when file storage is not set up
685
+ #: src/routes/dash/settings.tsx
686
+ msgid "File storage isn't set up. Check your server config."
687
+ msgstr "File storage isn't set up. Check your server config."
688
+
689
+ #. @context: Settings item description for custom CSS
690
+ #: src/ui/dash/settings/SettingsRootContent.tsx
691
+ msgid "Fine-grained styling overrides"
692
+ msgstr "Fine-grained styling overrides"
693
+
694
+ #. @context: Label for the list of stable RSS feed URLs
695
+ #: src/ui/dash/settings/GeneralContent.tsx
696
+ msgid "Fixed feed URLs"
697
+ msgstr "Fixed feed URLs"
698
+
699
+ #. @context: Theme mode option description
700
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
701
+ msgid "Follow each visitor's system preference."
702
+ msgstr "Follow each visitor's system preference."
703
+
704
+ #. @context: Appearance settings heading for font theme
705
+ #: src/ui/dash/appearance/FontThemeContent.tsx
706
+ msgid "Font theme"
707
+ msgstr "Font theme"
708
+
709
+ #. @context: Breadcrumb label
710
+ #. @context: Settings item — font theme settings
711
+ #: src/routes/dash/settings.tsx
712
+ #: src/ui/dash/settings/SettingsRootContent.tsx
713
+ msgid "Font Theme"
714
+ msgstr "Font Theme"
715
+
716
+ #. @context: Breadcrumb label
717
+ #. @context: Settings item — general settings
718
+ #. @context: Settings section heading
719
+ #: src/routes/dash/settings.tsx
720
+ #: src/ui/dash/settings/GeneralContent.tsx
721
+ #: src/ui/dash/settings/SettingsRootContent.tsx
722
+ msgid "General"
723
+ msgstr "General"
724
+
725
+ #. @context: Button to create new API token
726
+ #: src/ui/dash/settings/ApiTokensContent.tsx
727
+ msgid "Generate Token"
728
+ msgstr "Generate Token"
729
+
730
+ #. @context: Breadcrumb label
731
+ #. @context: Settings item — GitHub sync settings
732
+ #. @context: Settings section heading for GitHub Sync setup
733
+ #: src/routes/dash/settings.tsx
734
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
735
+ #: src/ui/dash/settings/SettingsRootContent.tsx
736
+ msgid "GitHub Sync"
737
+ msgstr "GitHub Sync"
738
+
739
+ #. @context: Section label for nav items shown in header
740
+ #: src/ui/dash/appearance/NavigationContent.tsx
741
+ msgid "Header"
742
+ msgstr "Header"
743
+
744
+ #. @context: Settings item description for navigation
745
+ #: src/ui/dash/settings/SettingsRootContent.tsx
746
+ msgid "Header links, home feed, and overflow menu"
747
+ msgstr "Header links, home feed, and overflow menu"
748
+
749
+ #. @context: Description for the RSS system navigation toggle. {feed} is either Latest or Featured.
750
+ #: src/ui/dash/appearance/NavigationContent.tsx
751
+ msgid "Header RSS points to your {feed} feed (/feed). Change what /feed returns in General."
752
+ msgstr "Header RSS points to your {feed} feed (/feed). Change what /feed returns in General."
753
+
754
+ #. @context: Post badge for posts hidden from Latest
755
+ #: src/ui/dash/StatusBadge.tsx
756
+ msgid "Hidden from Latest"
757
+ msgstr "Hidden from Latest"
758
+
759
+ #. @context: Settings subsection heading for home page settings
760
+ #: src/ui/dash/settings/GeneralContent.tsx
761
+ msgid "Home"
762
+ msgstr "Home"
763
+
764
+ #. @context: Toast after auto-saving home settings
765
+ #: src/routes/dash/settings.tsx
766
+ msgid "Home settings updated."
767
+ msgstr "Home settings updated."
768
+
769
+ #. @context: Generic hosted auth provider label when no explicit provider name is configured
770
+ #: src/ui/dash/settings/AccountMenuContent.tsx
771
+ msgid "Hosted account"
772
+ msgstr "Hosted account"
773
+
774
+ #. @context: Confirmation phrase the user must type to delete their account. {siteName} is the blog name.
775
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
776
+ msgid "I want to delete {siteName}"
777
+ msgstr "I want to delete {siteName}"
778
+
779
+ #. @context: Code Injection body-end field description
780
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
781
+ msgid "Injected before </body>. Use for chat widgets and scripts that should not block page load."
782
+ msgstr "Injected before </body>. Use for chat widgets and scripts that should not block page load."
783
+
784
+ #. @context: Code Injection head field description
785
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
786
+ msgid "Injected before </head>. Use for analytics, custom meta tags, and styles that must load early."
787
+ msgstr "Injected before </head>. Use for analytics, custom meta tags, and styles that must load early."
788
+
789
+ #. @context: Button label to start the GitHub App install flow on GitHub Sync setup
790
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
791
+ msgid "Install GitHub App"
792
+ msgstr "Install GitHub App"
793
+
794
+ #. @context: Help text for the GitHub App connect option on GitHub Sync setup
795
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
796
+ msgid "Install the GitHub App to grant access without managing personal tokens. Permissions are scoped per repository and revocable from GitHub."
797
+ msgstr "Install the GitHub App to grant access without managing personal tokens. Permissions are scoped per repository and revocable from GitHub."
798
+
799
+ #. @context: Settings group label for third-party integrations
800
+ #: src/ui/dash/settings/SettingsRootContent.tsx
801
+ msgid "Integrations"
802
+ msgstr "Integrations"
803
+
804
+ #. @context: Nav item label field
805
+ #: src/ui/dash/appearance/NavigationContent.tsx
806
+ msgid "Label"
807
+ msgstr "Label"
808
+
809
+ #. @context: Error toast when nav link fields are empty
810
+ #: src/ui/dash/appearance/NavigationContent.tsx
811
+ msgid "Label and URL are required"
812
+ msgstr "Label and URL are required"
813
+
814
+ #. @context: Error toast when nav label is empty
815
+ #: src/ui/dash/appearance/NavigationContent.tsx
816
+ msgid "Label is required"
817
+ msgstr "Label is required"
818
+
819
+ #. @context: Settings form field for site/dashboard language
820
+ #: src/ui/dash/settings/GeneralContent.tsx
821
+ msgid "Language"
822
+ msgstr "Language"
823
+
824
+ #. @context: Settings subsection heading for language and time zone fields
825
+ #: src/ui/dash/settings/GeneralContent.tsx
826
+ msgid "Language & Time"
827
+ msgstr "Language & Time"
828
+
829
+ #. @context: Toast after saving language and time settings
830
+ #: src/routes/dash/settings.tsx
831
+ msgid "Language and time updated."
832
+ msgstr "Language and time updated."
833
+
834
+ #. @context: Label for last push commit SHA on GitHub Sync status
835
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
836
+ msgid "Last commit"
837
+ msgstr "Last commit"
838
+
839
+ #. @context: Label for last sync error on GitHub Sync status
840
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
841
+ msgid "Last error"
842
+ msgstr "Last error"
843
+
844
+ #. @context: Label for last sync time on GitHub Sync status
845
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
846
+ msgid "Last synced"
847
+ msgstr "Last synced"
848
+
849
+ #. @context: Token last used date
850
+ #: src/ui/dash/settings/ApiTokensContent.tsx
851
+ msgid "Last used {date}"
852
+ msgstr "Last used {date}"
853
+
854
+ #. @context: Browse filter label for latest posts
855
+ #. @context: Select option for using latest posts as the main RSS feed
856
+ #: src/ui/dash/appearance/NavigationContent.tsx
857
+ #: src/ui/dash/settings/GeneralContent.tsx
858
+ msgid "Latest"
859
+ msgstr "Latest"
860
+
861
+ #. @context: Label for the explicit latest RSS feed URL
862
+ #: src/ui/dash/settings/GeneralContent.tsx
863
+ msgid "Latest feed"
864
+ msgstr "Latest feed"
865
+
866
+ #. @context: Suffix after Custom CSS link on color theme page
867
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
868
+ msgid "lets you override any theme variable."
869
+ msgstr "lets you override any theme variable."
870
+
871
+ #. @context: Theme mode option label
872
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
873
+ msgid "Light"
874
+ msgstr "Light"
875
+
876
+ #. @context: Nav item type badge
877
+ #: src/ui/dash/appearance/NavigationContent.tsx
878
+ msgid "link"
879
+ msgstr "link"
880
+
881
+ #. @context: Post format badge - link
882
+ #: src/ui/dash/FormatBadge.tsx
883
+ msgid "Link"
884
+ msgstr "Link"
885
+
886
+ #. @context: Label for list posts curl example
887
+ #: src/ui/dash/settings/ApiTokensContent.tsx
888
+ msgid "List posts:"
889
+ msgstr "List posts:"
890
+
891
+ #. @context: Help text for CJK serif font selection
892
+ #: src/ui/dash/settings/GeneralContent.tsx
893
+ msgid "Load a serif font optimized for Chinese, Japanese, or Korean content."
894
+ msgstr "Load a serif font optimized for Chinese, Japanese, or Korean content."
895
+
896
+ #. @context: GitHub sync picker — loading state
897
+ #: src/routes/dash/settings.tsx
898
+ msgid "Loading…"
899
+ msgstr "Loading…"
900
+
901
+ #. @context: Label for the canonical /feed URL
902
+ #: src/ui/dash/settings/GeneralContent.tsx
903
+ msgid "Main feed"
904
+ msgstr "Main feed"
905
+
906
+ #. @context: Settings field label for the canonical /feed output
907
+ #: src/ui/dash/settings/GeneralContent.tsx
908
+ msgid "Main RSS feed"
909
+ msgstr "Main RSS feed"
910
+
911
+ #. @context: Settings item label for opening the hosted account management page
912
+ #: src/ui/dash/settings/AccountMenuContent.tsx
913
+ msgid "Manage Account"
914
+ msgstr "Manage Account"
915
+
916
+ #. @context: Settings item description for hosted account management in the connected provider
917
+ #: src/ui/dash/settings/AccountMenuContent.tsx
918
+ msgid "Manage password and hosted access in {providerLabel}"
919
+ msgstr "Manage password and hosted access in {providerLabel}"
920
+
921
+ #. @context: Intro text on the account settings menu page below the title
922
+ #: src/ui/dash/settings/AccountMenuContent.tsx
923
+ msgid "Manage sign-in security, exports, and irreversible actions."
924
+ msgstr "Manage sign-in security, exports, and irreversible actions."
925
+
926
+ #. @context: Intro text on the hosted account settings menu page below the title
927
+ #: src/ui/dash/settings/AccountMenuContent.tsx
928
+ msgid "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
929
+ msgstr "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
930
+
931
+ #. @context: Section heading for manual push action on GitHub Sync settings
932
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
933
+ msgid "Manual Push"
934
+ msgstr "Manual Push"
935
+
936
+ #. @context: Color theme preview date label
937
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
938
+ msgid "March 14"
939
+ msgstr "March 14"
940
+
941
+ #. @context: Placeholder hint for markdown-enabled textareas
942
+ #: src/ui/dash/settings/GeneralContent.tsx
943
+ msgid "Markdown supported"
944
+ msgstr "Markdown supported"
945
+
946
+ #. @context: Section label for nav items hidden under More dropdown
947
+ #: src/ui/dash/appearance/NavigationContent.tsx
948
+ msgid "More"
949
+ msgstr "More"
950
+
951
+ #. @context: Button label for a menu with more actions
952
+ #: src/routes/dash/custom-urls.tsx
953
+ msgid "More actions"
954
+ msgstr "More actions"
955
+
956
+ #. @context: Settings item description for general
957
+ #: src/ui/dash/settings/SettingsRootContent.tsx
958
+ msgid "Name, metadata, language, and search defaults"
959
+ msgstr "Name, metadata, language, and search defaults"
960
+
961
+ #. @context: Breadcrumb label
962
+ #. @context: Settings item — navigation settings
963
+ #: src/routes/dash/settings.tsx
964
+ #: src/ui/dash/settings/SettingsRootContent.tsx
965
+ msgid "Navigation"
966
+ msgstr "Navigation"
967
+
968
+ #. @context: Section heading for nav items
969
+ #: src/ui/dash/appearance/NavigationContent.tsx
970
+ msgid "Navigation items"
971
+ msgstr "Navigation items"
972
+
973
+ #. @context: Toast after saving navigation item order
974
+ #: src/ui/dash/appearance/NavigationContent.tsx
975
+ msgid "Navigation order updated."
976
+ msgstr "Navigation order updated."
977
+
978
+ #. @context: Toast after moving nav item between header/more
979
+ #: src/ui/dash/appearance/NavigationContent.tsx
980
+ msgid "Navigation placement updated."
981
+ msgstr "Navigation placement updated."
982
+
983
+ #. @context: Label for nav preview section
984
+ #: src/ui/dash/appearance/NavigationContent.tsx
985
+ msgid "Navigation Preview"
986
+ msgstr "Navigation Preview"
987
+
988
+ #. @context: Help text for GitHub PAT input explaining required permissions
989
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
990
+ msgid "Needs Contents (read/write) and Webhooks (read/write) on the target repository."
991
+ msgstr "Needs Contents (read/write) and Webhooks (read/write) on the target repository."
992
+
993
+ #. @context: Button to create new custom URL
994
+ #. @context: Button to create new custom URL
995
+ #. @context: Page heading
996
+ #: src/routes/dash/custom-urls.tsx
997
+ #: src/routes/dash/custom-urls.tsx
998
+ #: src/routes/dash/custom-urls.tsx
999
+ msgid "New Custom URL"
1000
+ msgstr "New Custom URL"
1001
+
1002
+ #. @context: Password form field
1003
+ #: src/ui/dash/settings/AccountContent.tsx
1004
+ msgid "New Password"
1005
+ msgstr "New Password"
1006
+
1007
+ #. @context: GitHub sync picker — shown when the owner list is empty
1008
+ #: src/routes/dash/settings.tsx
1009
+ msgid "No accounts authorized yet"
1010
+ msgstr "No accounts authorized yet"
1011
+
1012
+ #. @context: Empty state when no sessions exist (shouldn't normally appear)
1013
+ #: src/ui/dash/settings/SessionsContent.tsx
1014
+ msgid "No active sessions right now. Signed-in devices show up here."
1015
+ msgstr "No active sessions right now. Signed-in devices show up here."
1016
+
1017
+ #. @context: Empty state when no collections exist for nav picker
1018
+ #: src/ui/dash/appearance/NavigationContent.tsx
1019
+ msgid "No collections yet. Create one first, then add it to your navigation."
1020
+ msgstr "No collections yet. Create one first, then add it to your navigation."
1021
+
1022
+ #. @context: Empty state message
1023
+ #: src/routes/dash/custom-urls.tsx
1024
+ msgid "No custom URLs yet. Create one to add redirects or custom paths for posts."
1025
+ msgstr "No custom URLs yet. Create one to add redirects or custom paths for posts."
1026
+
1027
+ #. @context: Error toast when no file was selected for upload
1028
+ #: src/routes/dash/settings.tsx
1029
+ msgid "No file selected. Choose a file to upload."
1030
+ msgstr "No file selected. Choose a file to upload."
1031
+
1032
+ #. @context: Empty state for navigation items
1033
+ #: src/ui/dash/appearance/NavigationContent.tsx
1034
+ msgid "No navigation items yet. Add links or enable system items below."
1035
+ msgstr "No navigation items yet. Add links or enable system items below."
1036
+
1037
+ #. @context: GitHub sync picker — empty state when search returns nothing
1038
+ #: src/routes/dash/settings.tsx
1039
+ msgid "No repositories match."
1040
+ msgstr "No repositories match."
1041
+
1042
+ #. @context: Shown when no sync has happened yet on GitHub Sync status
1043
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1044
+ msgid "Not synced yet"
1045
+ msgstr "Not synced yet"
1046
+
1047
+ #. @context: Color theme preview format label
1048
+ #. @context: Post format badge - note
1049
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1050
+ #: src/ui/dash/FormatBadge.tsx
1051
+ msgid "Note"
1052
+ msgstr "Note"
1053
+
1054
+ #. @context: Settings item description for the hosted delete-site entry in the account menu
1055
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1056
+ msgid "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1057
+ msgstr "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1058
+
1059
+ #. @context: GitHub sync picker — placeholder text showing the expected input shape
1060
+ #: src/routes/dash/settings.tsx
1061
+ msgid "owner/repo"
1062
+ msgstr "owner/repo"
1063
+
1064
+ #. @context: Settings item description for color theme
1065
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1066
+ msgid "Palette, surface tone, and overall mood"
1067
+ msgstr "Palette, surface tone, and overall mood"
1068
+
1069
+ #. @context: Breadcrumb label
1070
+ #. @context: Settings item — password settings
1071
+ #: src/routes/dash/settings.tsx
1072
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1073
+ msgid "Password"
1074
+ msgstr "Password"
1075
+
1076
+ #. @context: Toast after changing account password
1077
+ #: src/routes/dash/settings.tsx
1078
+ msgid "Password changed."
1079
+ msgstr "Password changed."
1080
+
1081
+ #. @context: Error shown when password changes are blocked in demo mode
1082
+ #: src/routes/dash/settings.tsx
1083
+ msgid "Password changes are off in demo mode. Sign in with the shared demo credentials."
1084
+ msgstr "Password changes are off in demo mode. Sign in with the shared demo credentials."
1085
+
1086
+ #. @context: Error toast when new password and confirmation differ
1087
+ #: src/routes/dash/settings.tsx
1088
+ msgid "Passwords don't match. Make sure both fields are identical."
1089
+ msgstr "Passwords don't match. Make sure both fields are identical."
1090
+
1091
+ #. @context: Custom URL form field
1092
+ #: src/routes/dash/custom-urls.tsx
1093
+ msgid "Path"
1094
+ msgstr "Path"
1095
+
1096
+ #. @context: Settings item description for account deletion
1097
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1098
+ msgid "Permanently delete all data and reset the blog"
1099
+ msgstr "Permanently delete all data and reset the blog"
1100
+
1101
+ #. @context: Label for GitHub PAT input on GitHub Sync settings
1102
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1103
+ msgid "Personal Access Token"
1104
+ msgstr "Personal Access Token"
1105
+
1106
+ #. @context: GitHub sync picker — page heading
1107
+ #: src/routes/dash/settings.tsx
1108
+ msgid "Pick a repository"
1109
+ msgstr "Pick a repository"
1110
+
1111
+ #. @context: GitHub sync picker — repo dropdown placeholder before an owner is chosen
1112
+ #: src/routes/dash/settings.tsx
1113
+ msgid "Pick an account first"
1114
+ msgstr "Pick an account first"
1115
+
1116
+ #. @context: Description in collection picker section
1117
+ #: src/ui/dash/appearance/NavigationContent.tsx
1118
+ msgid "Pin a collection to your navigation bar. An asterisk (*) appears next to collections updated in the last 48 hours."
1119
+ msgstr "Pin a collection to your navigation bar. An asterisk (*) appears next to collections updated in the last 48 hours."
1120
+
1121
+ #. @context: Post badge - pinned
1122
+ #: src/ui/dash/StatusBadge.tsx
1123
+ msgid "Pinned"
1124
+ msgstr "Pinned"
1125
+
1126
+ #. @context: Custom URL target type badge for a post
1127
+ #. @context: Custom URL type option
1128
+ #: src/routes/dash/custom-urls.tsx
1129
+ #: src/routes/dash/custom-urls.tsx
1130
+ msgid "Post"
1131
+ msgstr "Post"
1132
+
1133
+ #. @context: GitHub sync picker — badge next to private repos
1134
+ #: src/routes/dash/settings.tsx
1135
+ msgid "Private"
1136
+ msgstr "Private"
1137
+
1138
+ #. @context: Avatar upload button text while generating favicon variants
1139
+ #: src/ui/dash/settings/AvatarContent.tsx
1140
+ msgid "Processing..."
1141
+ msgstr "Processing..."
1142
+
1143
+ #. @context: Post status badge - published
1144
+ #: src/ui/dash/StatusBadge.tsx
1145
+ msgid "Published"
1146
+ msgstr "Published"
1147
+
1148
+ #. @context: Description for manual push action on GitHub Sync settings
1149
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1150
+ msgid "Push all posts to GitHub right now instead of waiting for the next automatic sync."
1151
+ msgstr "Push all posts to GitHub right now instead of waiting for the next automatic sync."
1152
+
1153
+ #. @context: Archive custom URL query params field
1154
+ #: src/routes/dash/custom-urls.tsx
1155
+ msgid "Query Parameters"
1156
+ msgstr "Query Parameters"
1157
+
1158
+ #. @context: Color theme preview card secondary sentence
1159
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1160
+ msgid "Quiet surfaces let writing lead."
1161
+ msgstr "Quiet surfaces let writing lead."
1162
+
1163
+ #. @context: Post format badge - quote
1164
+ #: src/ui/dash/FormatBadge.tsx
1165
+ msgid "Quote"
1166
+ msgstr "Quote"
1167
+
1168
+ #. @context: Color theme preview inline link label
1169
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1170
+ msgid "Read why"
1171
+ msgstr "Read why"
1172
+
1173
+ #. @context: Custom URL target type badge for a redirect
1174
+ #. @context: Custom URL type option
1175
+ #: src/routes/dash/custom-urls.tsx
1176
+ #: src/routes/dash/custom-urls.tsx
1177
+ msgid "Redirect"
1178
+ msgstr "Redirect"
1179
+
1180
+ #. @context: Redirect type field
1181
+ #: src/routes/dash/custom-urls.tsx
1182
+ msgid "Redirect Type"
1183
+ msgstr "Redirect Type"
1184
+
1185
+ #. @context: Settings item description for custom URLs
1186
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1187
+ msgid "Redirects, vanity paths, and URL control"
1188
+ msgstr "Redirects, vanity paths, and URL control"
1189
+
1190
+ #. @context: GitHub sync picker — tooltip for the refresh button next to the search input
1191
+ #: src/routes/dash/settings.tsx
1192
+ msgid "Refresh repository list"
1193
+ msgstr "Refresh repository list"
1194
+
1195
+ #. @context: Button to remove the blog avatar
1196
+ #. @context: Remove system item from navigation
1197
+ #: src/ui/dash/appearance/NavigationContent.tsx
1198
+ #: src/ui/dash/settings/AvatarContent.tsx
1199
+ msgid "Remove"
1200
+ msgstr "Remove"
1201
+
1202
+ #. @context: Description for disconnect action on GitHub Sync settings
1203
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1204
+ msgid "Remove the webhook and stop syncing. Your repository content will not be deleted."
1205
+ msgstr "Remove the webhook and stop syncing. Your repository content will not be deleted."
1206
+
1207
+ #. @context: Confirm dialog for removing the blog avatar
1208
+ #: src/ui/dash/settings/AvatarContent.tsx
1209
+ msgid "Remove this avatar? Your favicon and header icon will go back to the default."
1210
+ msgstr "Remove this avatar? Your favicon and header icon will go back to the default."
1211
+
1212
+ #. @context: Confirm dialog for removing a collection nav item
1213
+ #: src/ui/dash/appearance/NavigationContent.tsx
1214
+ msgid "Remove this collection from navigation? The collection itself won't be deleted."
1215
+ msgstr "Remove this collection from navigation? The collection itself won't be deleted."
1216
+
1217
+ #. @context: GitHub sync picker — repo dropdown label
1218
+ #. @context: Label for GitHub repository input on GitHub Sync settings
1219
+ #. @context: Label for connected repository on GitHub Sync status
1220
+ #: src/routes/dash/settings.tsx
1221
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1222
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1223
+ msgid "Repository"
1224
+ msgstr "Repository"
1225
+
1226
+ #. @context: Button to revoke API token
1227
+ #. @context: Button to revoke a session
1228
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1229
+ #: src/ui/dash/settings/SessionsContent.tsx
1230
+ msgid "Revoke"
1231
+ msgstr "Revoke"
1232
+
1233
+ #. @context: Confirm dialog for revoking an active session
1234
+ #: src/ui/dash/settings/SessionsContent.tsx
1235
+ msgid "Revoke this session? That device will need to sign in again."
1236
+ msgstr "Revoke this session? That device will need to sign in again."
1237
+
1238
+ #. @context: Confirm dialog for revoking API token
1239
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1240
+ msgid "Revoke this token? Any scripts using it will stop working."
1241
+ msgstr "Revoke this token? Any scripts using it will stop working."
1242
+
1243
+ #. @context: Hint shown while a GitHub Sync push is running, reassuring the user they don't have to stay on the page
1244
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1245
+ msgid "Safe to leave this page — syncing continues in the background."
1246
+ msgstr "Safe to leave this page — syncing continues in the background."
1247
+
1248
+ #. @context: Button to save Code Injection settings
1249
+ #. @context: Button to save settings
1250
+ #. @context: Button to save settings changes
1251
+ #. @context: Save nav item changes
1252
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
1253
+ #: src/ui/dash/appearance/NavigationContent.tsx
1254
+ #: src/ui/dash/settings/AvatarContent.tsx
1255
+ #: src/ui/dash/settings/GeneralContent.tsx
1256
+ msgid "Save"
1257
+ msgstr "Save"
1258
+
1259
+ #. @context: Button to save custom CSS
1260
+ #: src/ui/dash/appearance/AdvancedContent.tsx
1261
+ msgid "Save CSS"
1262
+ msgstr "Save CSS"
1263
+
1264
+ #. @context: Settings section heading for search engine indexing settings
1265
+ #: src/ui/dash/settings/GeneralContent.tsx
1266
+ msgid "Search"
1267
+ msgstr "Search"
1268
+
1269
+ #. @context: GitHub sync picker — search input placeholder
1270
+ #: src/routes/dash/settings.tsx
1271
+ msgid "Search repositories"
1272
+ msgstr "Search repositories"
1273
+
1274
+ #. @context: Toast after saving search settings
1275
+ #. @context: Toast after saving search settings
1276
+ #: src/routes/dash/settings.tsx
1277
+ #: src/routes/dash/settings.tsx
1278
+ msgid "Search settings updated."
1279
+ msgstr "Search settings updated."
1280
+
1281
+ #. @context: Settings group label for account security settings
1282
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1283
+ msgid "Security"
1284
+ msgstr "Security"
1285
+
1286
+ #. @context: Error toast when CSRF token is invalid or expired
1287
+ #: src/routes/dash/settings.tsx
1288
+ msgid "Security token expired. Refresh the page and try again."
1289
+ msgstr "Security token expired. Refresh the page and try again."
1290
+
1291
+ #. @context: Error toast when CSRF token is missing from delete request
1292
+ #: src/routes/dash/settings.tsx
1293
+ msgid "Security token missing. Refresh the page and try again."
1294
+ msgstr "Security token missing. Refresh the page and try again."
1295
+
1296
+ #. @context: Settings item description for sessions
1297
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1298
+ msgid "See where you're signed in and revoke old sessions"
1299
+ msgstr "See where you're signed in and revoke old sessions"
1300
+
1301
+ #. @context: GitHub sync picker — repo dropdown placeholder
1302
+ #: src/routes/dash/settings.tsx
1303
+ msgid "Select a repository"
1304
+ msgstr "Select a repository"
1305
+
1306
+ #. @context: GitHub sync picker — owner dropdown placeholder when nothing is selected
1307
+ #: src/routes/dash/settings.tsx
1308
+ msgid "Select an account"
1309
+ msgstr "Select an account"
1310
+
1311
+ #. @context: Error shown when session management is blocked in demo mode
1312
+ #: src/routes/dash/settings.tsx
1313
+ msgid "Session management is off in demo mode. Use the shared demo session instead."
1314
+ msgstr "Session management is off in demo mode. Use the shared demo session instead."
1315
+
1316
+ #. @context: Breadcrumb label
1317
+ #. @context: Settings item — session management
1318
+ #: src/routes/dash/settings.tsx
1319
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1320
+ msgid "Sessions"
1321
+ msgstr "Sessions"
1322
+
1323
+ #. @context: Settings item description for account settings on the settings home page
1324
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1325
+ msgid "Sessions and password"
1326
+ msgstr "Sessions and password"
1327
+
1328
+ #. @context: Breadcrumb label
1329
+ #. @context: Page title for the settings home page
1330
+ #: src/routes/dash/settings.tsx
1331
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1332
+ msgid "Settings"
1333
+ msgstr "Settings"
1334
+
1335
+ #. @context: Checkbox for showing the optional Jant credit link on the home page
1336
+ #: src/ui/dash/settings/GeneralContent.tsx
1337
+ msgid "Show \"Build with Jant\" at the bottom of the home page"
1338
+ msgstr "Show \"Build with Jant\" at the bottom of the home page"
1339
+
1340
+ #. @context: GitHub sync picker — paginated repo count hint. Placeholders {shown} and {total} are integers.
1341
+ #: src/routes/dash/settings.tsx
1342
+ msgid "Showing {shown} of {total}"
1343
+ msgstr "Showing {shown} of {total}"
1344
+
1345
+ #. @context: Settings link — sign out action
1346
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1347
+ msgid "Sign Out"
1348
+ msgstr "Sign Out"
1349
+
1350
+ #. @context: Session creation date
1351
+ #: src/ui/dash/settings/SessionsContent.tsx
1352
+ msgid "Signed in {date}"
1353
+ msgstr "Signed in {date}"
1354
+
1355
+ #. @context: Settings group label for site settings
1356
+ #. @context: Settings subsection heading for basic site fields
1357
+ #: src/ui/dash/settings/GeneralContent.tsx
1358
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1359
+ msgid "Site"
1360
+ msgstr "Site"
1361
+
1362
+ #. @context: Code Injection field group label for body end
1363
+ #. @context: Settings section heading for site footer
1364
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
1365
+ #: src/ui/dash/settings/GeneralContent.tsx
1366
+ msgid "Site Footer"
1367
+ msgstr "Site Footer"
1368
+
1369
+ #. @context: Code Injection field group label for <head>
1370
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
1371
+ msgid "Site Header"
1372
+ msgstr "Site Header"
1373
+
1374
+ #. @context: Settings form field
1375
+ #: src/ui/dash/settings/GeneralContent.tsx
1376
+ msgid "Site Name"
1377
+ msgstr "Site Name"
1378
+
1379
+ #. @context: Toast after saving site settings
1380
+ #: src/routes/dash/settings.tsx
1381
+ msgid "Site settings updated."
1382
+ msgstr "Site settings updated."
1383
+
1384
+ #. @context: Settings item description for code injection
1385
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1386
+ msgid "Site-wide HTML for analytics and widgets"
1387
+ msgstr "Site-wide HTML for analytics and widgets"
1388
+
1389
+ #. @context: Color theme preview card body sentence
1390
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1391
+ msgid "Soft color should still carry a clear reading rhythm."
1392
+ msgstr "Soft color should still carry a clear reading rhythm."
1393
+
1394
+ #. @context: Button to trigger a full content push to GitHub on GitHub Sync settings
1395
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1396
+ msgid "Sync Now"
1397
+ msgstr "Sync Now"
1398
+
1399
+ #. @context: Shown while a GitHub Sync push is running in the background
1400
+ #: src/ui/dash/settings/GitHubSyncContent.tsx
1401
+ msgid "Syncing…"
1402
+ msgstr "Syncing…"
1403
+
1404
+ #. @context: Nav item type badge
1405
+ #: src/ui/dash/appearance/NavigationContent.tsx
1406
+ msgid "system"
1407
+ msgstr "system"
1408
+
1409
+ #. @context: Custom URL target slug field
1410
+ #: src/routes/dash/custom-urls.tsx
1411
+ msgid "Target Slug"
1412
+ msgstr "Target Slug"
1413
+
1414
+ #. @context: Error toast when selected font theme is not valid
1415
+ #: src/routes/dash/settings.tsx
1416
+ msgid "That font theme isn't available. Pick another one."
1417
+ msgstr "That font theme isn't available. Pick another one."
1418
+
1419
+ #. @context: Error toast when selected theme is not valid
1420
+ #: src/routes/dash/settings.tsx
1421
+ msgid "That theme isn't available. Pick another one."
1422
+ msgstr "That theme isn't available. Pick another one."
1423
+
1424
+ #. @context: Custom URL target slug help text
1425
+ #: src/routes/dash/custom-urls.tsx
1426
+ msgid "The slug of the target post or collection"
1427
+ msgstr "The slug of the target post or collection"
1428
+
1429
+ #. @context: Link to theming documentation on Custom CSS page
1430
+ #: src/ui/dash/appearance/AdvancedContent.tsx
1431
+ msgid "Theming guide"
1432
+ msgstr "Theming guide"
1433
+
1434
+ #. @context: Description for session management
1435
+ #: src/ui/dash/settings/SessionsContent.tsx
1436
+ msgid "These devices are currently signed in to your account. Revoke any session you don't recognize."
1437
+ msgstr "These devices are currently signed in to your account. Revoke any session you don't recognize."
1438
+
1439
+ #. @context: Generic fallback blog name in the delete-account confirmation phrase when the site name is unavailable
1440
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
1441
+ msgid "this blog"
1442
+ msgstr "this blog"
1443
+
1444
+ #. @context: Code Injection security warning headline
1445
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
1446
+ msgid "This code runs on every page of your site."
1447
+ msgstr "This code runs on every page of your site."
1448
+
1449
+ #. @context: Help text for choosing whether /feed points to latest or featured posts
1450
+ #: src/ui/dash/settings/GeneralContent.tsx
1451
+ msgid "This controls what /feed returns."
1452
+ msgstr "This controls what /feed returns."
1453
+
1454
+ #. @context: Notice shown on hosted account settings explaining that password and hosted account controls live in the connected hosted auth provider
1455
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1456
+ msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
1457
+ msgstr "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
1458
+
1459
+ #. @context: Help text for avatar upload
1460
+ #: src/ui/dash/settings/AvatarContent.tsx
1461
+ 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."
1462
+ 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."
1463
+
1464
+ #. @context: GitHub sync picker — confirmation card heading for foreign repos
1465
+ #: src/routes/dash/settings.tsx
1466
+ msgid "This repository already has commits"
1467
+ msgstr "This repository already has commits"
1468
+
1469
+ #. @context: GitHub sync picker — heading above the foreign-repo confirmation
1470
+ #: src/routes/dash/settings.tsx
1471
+ msgid "This repository has existing content."
1472
+ msgstr "This repository has existing content."
1473
+
1474
+ #. @context: GitHub sync picker — blocking message when marker belongs to another site. Placeholder {host} is the other site's host.
1475
+ #: src/routes/dash/settings.tsx
1476
+ msgid "This repository is already backing up another Jant site ({host}). Pick a different repository."
1477
+ msgstr "This repository is already backing up another Jant site ({host}). Pick a different repository."
1478
+
1479
+ #. @context: GitHub sync picker — shown when the selected repo's marker matches this site
1480
+ #: src/routes/dash/settings.tsx
1481
+ msgid "This repository is already backing up this site."
1482
+ msgstr "This repository is already backing up this site."
1483
+
1484
+ #. @context: Warning text on account deletion page
1485
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
1486
+ 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."
1487
+ 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."
1488
+
1489
+ #. @context: Settings form field
1490
+ #: src/ui/dash/settings/GeneralContent.tsx
1491
+ msgid "Time Zone"
1492
+ msgstr "Time Zone"
1493
+
1494
+ #. @context: Description for built-in nav toggles
1495
+ #: src/ui/dash/appearance/NavigationContent.tsx
1496
+ msgid "Toggle built-in navigation items. Their order controls what shows in the header and which feed the homepage opens first."
1497
+ msgstr "Toggle built-in navigation items. Their order controls what shows in the header and which feed the homepage opens first."
1498
+
1499
+ #. @context: Button to expand/collapse nav item edit
1500
+ #: src/ui/dash/appearance/NavigationContent.tsx
1501
+ msgid "Toggle edit panel"
1502
+ msgstr "Toggle edit panel"
1503
+
1504
+ #. @context: API token name field label
1505
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1506
+ msgid "Token name"
1507
+ msgstr "Token name"
1508
+
1509
+ #. @context: API tokens description
1510
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1511
+ msgid "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
1512
+ msgstr "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
1513
+
1514
+ #. @context: GitHub sync picker — retry button
1515
+ #: src/routes/dash/settings.tsx
1516
+ msgid "Try again"
1517
+ msgstr "Try again"
1518
+
1519
+ #. @context: Intro text on the settings home page below the title
1520
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1521
+ msgid "Tune how your site looks, reads, and runs."
1522
+ msgstr "Tune how your site looks, reads, and runs."
1523
+
1524
+ #. @context: Custom URL form field
1525
+ #: src/routes/dash/custom-urls.tsx
1526
+ msgid "Type"
1527
+ msgstr "Type"
1528
+
1529
+ #. @context: GitHub sync picker — label above the typed-confirmation input
1530
+ #: src/routes/dash/settings.tsx
1531
+ msgid "Type {repo} to confirm"
1532
+ msgstr "Type {repo} to confirm"
1533
+
1534
+ #. @context: Instruction to type confirmation phrase before deletion
1535
+ #: src/ui/dash/settings/DeleteAccountContent.tsx
1536
+ msgid "Type the following phrase to confirm:"
1537
+ msgstr "Type the following phrase to confirm:"
1538
+
1539
+ #. @context: GitHub sync picker — hint telling the user typing will search the full list
1540
+ #: src/routes/dash/settings.tsx
1541
+ msgid "type to search all"
1542
+ msgstr "type to search all"
1543
+
1544
+ #. @context: Settings item description for font theme
1545
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1546
+ msgid "Typography choices and reading texture"
1547
+ msgstr "Typography choices and reading texture"
1548
+
1549
+ #. @context: Fallback label when session device can't be identified
1550
+ #: src/ui/dash/settings/SessionsContent.tsx
1551
+ msgid "Unknown device"
1552
+ msgstr "Unknown device"
1553
+
1554
+ #. @context: Settings item description for password change
1555
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1556
+ msgid "Update the password you use to sign in"
1557
+ msgstr "Update the password you use to sign in"
1558
+
1559
+ #. @context: Button to upload avatar image
1560
+ #: src/ui/dash/settings/AvatarContent.tsx
1561
+ msgid "Upload Avatar"
1562
+ msgstr "Upload Avatar"
1563
+
1564
+ #. @context: Error toast when avatar upload fails
1565
+ #: src/routes/dash/settings.tsx
1566
+ msgid "Upload didn't go through. Try again in a moment."
1567
+ msgstr "Upload didn't go through. Try again in a moment."
1568
+
1569
+ #. @context: Error message when avatar upload fails
1570
+ #: src/ui/dash/settings/AvatarContent.tsx
1571
+ msgid "Upload failed. Please try again."
1572
+ msgstr "Upload failed. Please try again."
1573
+
1574
+ #. @context: Avatar upload button text while uploading
1575
+ #: src/ui/dash/settings/AvatarContent.tsx
1576
+ msgid "Uploading..."
1577
+ msgstr "Uploading..."
1578
+
1579
+ #. @context: Nav item URL field
1580
+ #: src/ui/dash/appearance/NavigationContent.tsx
1581
+ msgid "URL"
1582
+ msgstr "URL"
1583
+
1584
+ #. @context: Heading for API token usage examples
1585
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1586
+ msgid "Usage"
1587
+ msgstr "Usage"
1588
+
1589
+ #. @context: Help text for the explicit latest and featured feed URLs
1590
+ #: src/ui/dash/settings/GeneralContent.tsx
1591
+ msgid "Use these when you want a feed URL that never changes."
1592
+ msgstr "Use these when you want a feed URL that never changes."
1593
+
1594
+ #. @context: Description for choosing featured posts as the main RSS feed
1595
+ #: src/ui/dash/settings/GeneralContent.tsx
1596
+ msgid "Uses featured posts for /feed."
1597
+ msgstr "Uses featured posts for /feed."
1598
+
1599
+ #. @context: Description for choosing the latest posts as the main RSS feed
1600
+ #: src/ui/dash/settings/GeneralContent.tsx
1601
+ msgid "Uses the latest public posts for /feed."
1602
+ msgstr "Uses the latest public posts for /feed."
1603
+
1604
+ #. @context: Button to view item on public site
1605
+ #: src/ui/dash/ActionButtons.tsx
1606
+ msgid "View"
1607
+ msgstr "View"
1608
+
1609
+ #. @context: Prefix before Custom CSS link on color theme page
1610
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1611
+ msgid "Want more control?"
1612
+ msgstr "Want more control?"
1613
+
1614
+ #. @context: GitHub sync picker — hint under the create-on-github entry. Placeholder {name} is the suggested repo name.
1615
+ #: src/routes/dash/settings.tsx
1616
+ msgid "We'll prefill the name {name}. The list refreshes on return."
1617
+ msgstr "We'll prefill the name {name}. The list refreshes on return."
1618
+
1619
+ #. @context: Description for backup and restore documentation link in account settings
1620
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1621
+ msgid "When to use site export, database backups, and recovery drills."
1622
+ msgstr "When to use site export, database backups, and recovery drills."