@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 23:23+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-po-translate\n"
8
+ "Language: zh-Hant\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 "/* 在此放入您的自訂 CSS */"
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 "+ 安裝到其他帳戶"
25
+
26
+ #. @context: Redirect type option
27
+ #: src/routes/dash/custom-urls.tsx
28
+ msgid "301 (Permanent)"
29
+ msgstr "301 (永久)"
30
+
31
+ #. @context: Redirect type option
32
+ #: src/routes/dash/custom-urls.tsx
33
+ msgid "302 (Temporary)"
34
+ msgstr "302 (暫時)"
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 "顯示在您的主頁上的簡短介紹。"
40
+
41
+ #. @context: Settings form field for site description
42
+ #: src/ui/dash/settings/GeneralContent.tsx
43
+ msgid "About this blog"
44
+ msgstr "關於本部落格"
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 "帳戶"
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 "示範模式下帳號刪除已停用。共用示範會另行重置。"
63
+
64
+ #. @context: Settings section heading for active sessions
65
+ #: src/ui/dash/settings/SessionsContent.tsx
66
+ msgid "Active Sessions"
67
+ msgstr "目前的工作階段"
68
+
69
+ #. @context: Heading for list of active API tokens
70
+ #: src/ui/dash/settings/ApiTokensContent.tsx
71
+ msgid "Active Tokens"
72
+ msgstr "已啟用的權杖"
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 "新增自訂連結到任何 URL"
78
+
79
+ #. @context: Button for adding a collection to nav
80
+ #: src/ui/dash/appearance/NavigationContent.tsx
81
+ msgid "Add Collection"
82
+ msgstr "新增選集"
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 "新增選集到導覽"
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 "新增自訂 CSS 以覆寫任何樣式。使用像 [data-page]、[data-post]、[data-format] 這類資料屬性來選取特定元素。"
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 "新增自訂連結到導覽"
98
+
99
+ #. @context: Button and heading for adding custom link
100
+ #: src/ui/dash/appearance/NavigationContent.tsx
101
+ msgid "Add Link"
102
+ msgstr "新增連結"
103
+
104
+ #. @context: Settings group label for advanced settings
105
+ #: src/ui/dash/settings/SettingsRootContent.tsx
106
+ msgid "Advanced"
107
+ msgstr "進階"
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 "所有可用的端點與請求格式。"
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 "所有選集已經在您的導覽中。"
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 "允許搜尋引擎收錄我的網站"
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 "始終顯示深色主題。"
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 "永遠顯示主題的淺色版本。"
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 "你在此處貼上的任何內容都能完全存取訪客的瀏覽器。僅使用來自你信任來源的程式碼。"
138
+
139
+ #. @context: Link to API documentation
140
+ #: src/ui/dash/settings/ApiTokensContent.tsx
141
+ msgid "API reference"
142
+ msgstr "API 參考"
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 權杖"
152
+
153
+ #. @context: Settings group label for design settings
154
+ #: src/ui/dash/settings/SettingsRootContent.tsx
155
+ msgid "Appearance"
156
+ msgstr "外觀"
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 "套用於整個網站, 包括管理頁面. 選擇一個調色盤, 然後決定它是跟隨系統還是維持固定."
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 "封存"
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 "封存篩選參數 (例如 format=note&view=list)"
174
+
175
+ #. @context: Theme mode option label
176
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
177
+ msgid "Auto"
178
+ msgstr "自動"
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 "可用的 CSS 變數、data 屬性與範例."
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 "頭像"
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 "頭像顯示已更新."
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 "將內容備份並與 GitHub 儲存庫同步"
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 "備份與還原指南"
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 權杖"
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 "在刪除前,請先下載網站匯出檔案。刪除後無法恢復此帳號。"
218
+
219
+ #. @context: Settings section heading for avatar
220
+ #: src/ui/dash/settings/AvatarContent.tsx
221
+ msgid "Blog Avatar"
222
+ msgstr "部落格大頭貼"
223
+
224
+ #. @context: Section heading for built-in nav items
225
+ #: src/ui/dash/appearance/NavigationContent.tsx
226
+ msgid "Built-in links"
227
+ msgstr "內建連結"
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 "取消"
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 "變更密碼"
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 "變更此設定會更新訂閱者從 /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 "正在檢查儲存庫…"
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 "為您的網站選擇一種排版風格。每個主題會同時改變字體配對與閱讀節奏。"
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 "選擇要與此網站同步的 GitHub 帳號和儲存庫."
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 字體"
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 "程式碼注入"
294
+
295
+ #. @context: Toast after saving Code Injection settings
296
+ #: src/routes/dash/settings.tsx
297
+ msgid "Code injection updated."
298
+ msgstr "程式碼注入已更新。"
299
+
300
+ #. @context: Nav item type badge for collection items
301
+ #: src/ui/dash/appearance/NavigationContent.tsx
302
+ msgid "collection"
303
+ msgstr "選集"
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 "選集"
311
+
312
+ #. @context: Appearance settings heading
313
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
314
+ msgid "Color theme"
315
+ msgstr "色彩主題"
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 "色彩主題"
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 "確認刪除帳號"
328
+
329
+ #. @context: Password form field
330
+ #: src/ui/dash/settings/AccountContent.tsx
331
+ msgid "Confirm New Password"
332
+ msgstr "確認新密碼"
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 "連接"
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 "連接 GitHub 倉庫,自動將你的文章備份為 Markdown 檔案。GitHub 上的編輯會同步回你的網站。"
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 "使用 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 "已透過 GitHub 應用程式連線"
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 "已透過個人存取權杖連線"
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 "連線後會將您的網站同步到 {repo} 的預設分支,並疊加在其現有歷史之上。Jant 管理路徑外的既有檔案會保留。此操作無法復原。"
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 "連線中…"
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 "控制儀表板與設定的語言。公開頁面保持英文。"
375
+
376
+ #. @context: Feedback after copying API token
377
+ #: src/ui/dash/settings/ApiTokensContent.tsx
378
+ msgid "Copied"
379
+ msgstr "已複製"
380
+
381
+ #. @context: Button to copy a URL to the clipboard
382
+ #: src/ui/dash/settings/GeneralContent.tsx
383
+ msgid "Copy"
384
+ msgstr "複製"
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 "複製權杖"
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 "請立即複製您的權杖 — 它不會再顯示。"
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 "無法複製. 請再試一次."
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 "無法連線。請檢查錯誤並再試一次。"
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 "無法刪除。請稍後再試。"
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 "無法儲存。請稍後再試。"
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 "在 GitHub 建立新儲存庫"
422
+
423
+ #. @context: Label for curl example
424
+ #: src/ui/dash/settings/ApiTokensContent.tsx
425
+ msgid "Create a post with curl:"
426
+ msgstr "使用 curl 建立貼文:"
427
+
428
+ #. @context: Button to save new custom URL
429
+ #: src/routes/dash/custom-urls.tsx
430
+ msgid "Create Custom URL"
431
+ msgstr "建立自訂網址"
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 "在 GitHub 上建立一個"
437
+
438
+ #. @context: Token creation date
439
+ #: src/ui/dash/settings/ApiTokensContent.tsx
440
+ msgid "Created {date}"
441
+ msgstr "建立於 {date}"
442
+
443
+ #. @context: Badge indicating the current active session
444
+ #: src/ui/dash/settings/SessionsContent.tsx
445
+ msgid "Current"
446
+ msgstr "目前"
447
+
448
+ #. @context: Password form field
449
+ #: src/ui/dash/settings/AccountContent.tsx
450
+ msgid "Current Password"
451
+ msgstr "目前密碼"
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 "目前的密碼不符。請再試一次。"
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 "自訂 CSS"
468
+
469
+ #. @context: Toast after saving custom CSS
470
+ #: src/routes/dash/settings.tsx
471
+ msgid "Custom CSS updated."
472
+ msgstr "自訂 CSS 已更新."
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 "自訂 URL"
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 "危險區域"
489
+
490
+ #. @context: Theme mode option label
491
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
492
+ msgid "Dark"
493
+ msgstr "深色"
494
+
495
+ #. @context: Settings group label for data export/import
496
+ #: src/ui/dash/settings/AccountMenuContent.tsx
497
+ msgid "Data"
498
+ msgstr "資料"
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 "刪除"
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 "刪除帳號"
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 "永久刪除帳戶"
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 "刪除託管網站"
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 "確定要永久刪除此部落格嗎?此動作無法復原。"
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 "刪除此自訂 URL?使用該 URL 的訪客將不會再被重新導向。"
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 "刪除此導覽連結?訪客將不再在您的網站頁首看到它。"
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 "試用限制"
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 "示範模式會隱藏會話、密碼更改與帳號刪除。匯出功能仍可使用。"
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 "示範網站會始終對搜尋引擎保持隱藏。"
557
+
558
+ #. @context: Color theme preview collection label
559
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
560
+ msgid "Design"
561
+ msgstr "設計"
562
+
563
+ #. @context: Redirect destination field
564
+ #: src/routes/dash/custom-urls.tsx
565
+ msgid "Destination"
566
+ msgstr "目標網址"
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 "解除連線"
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 "要與 GitHub 斷開連線嗎? webhook 將會被移除。您的儲存庫內容不會被刪除。"
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 "在我的網站頁首顯示大頭貼"
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 "顯示於所有文章與頁面的底部。"
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 "下載與 Hugo 相容的封存 — 以靜態方式託管或移轉到另一個 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 "下載網站匯出檔案"
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 "下載匯出 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 "下載失敗。請再試一次。"
609
+
610
+ #. @context: Post status badge - draft
611
+ #: src/ui/dash/StatusBadge.tsx
612
+ msgid "Draft"
613
+ msgstr "草稿"
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 "將連結拖到此處以顯示於「更多」選單下方"
619
+
620
+ #. @context: Placeholder for API token name input
621
+ #: src/ui/dash/settings/ApiTokensContent.tsx
622
+ msgid "e.g. iOS Shortcuts"
623
+ msgstr "例如 iOS 捷徑"
624
+
625
+ #. @context: Button to edit item
626
+ #: src/ui/dash/ActionButtons.tsx
627
+ msgid "Edit"
628
+ msgstr "編輯"
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 "倉庫為空。準備連線。"
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 "已下載匯出檔案。"
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 "匯出網站"
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 "頁首上的網站圖示與個人標記"
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 "精選"
658
+
659
+ #. @context: Label for the explicit featured RSS feed URL
660
+ #: src/ui/dash/settings/GeneralContent.tsx
661
+ msgid "Featured feed"
662
+ msgstr "精選 RSS 來源"
663
+
664
+ #. @context: Toast after saving feed settings
665
+ #: src/routes/dash/settings.tsx
666
+ msgid "Feed settings updated."
667
+ msgstr "Feed 設定已更新。"
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 "已複製訂閱網址。"
673
+
674
+ #. @context: Settings section heading for RSS feed configuration
675
+ #: src/ui/dash/settings/GeneralContent.tsx
676
+ msgid "Feeds"
677
+ msgstr "訂閱來源"
678
+
679
+ #. @context: Color theme preview card title
680
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
681
+ msgid "Field notes on quiet design"
682
+ msgstr "關於靜謐設計的實地筆記"
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 "檔案儲存尚未設定。請檢查您的伺服器設定。"
688
+
689
+ #. @context: Settings item description for custom CSS
690
+ #: src/ui/dash/settings/SettingsRootContent.tsx
691
+ msgid "Fine-grained styling overrides"
692
+ msgstr "細緻的樣式覆寫"
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 "固定的 RSS 檔案網址"
698
+
699
+ #. @context: Theme mode option description
700
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
701
+ msgid "Follow each visitor's system preference."
702
+ msgstr "依照每位訪客的系統偏好。"
703
+
704
+ #. @context: Appearance settings heading for font theme
705
+ #: src/ui/dash/appearance/FontThemeContent.tsx
706
+ msgid "Font theme"
707
+ msgstr "字型主題"
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 "字型主題"
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 "一般"
724
+
725
+ #. @context: Button to create new API token
726
+ #: src/ui/dash/settings/ApiTokensContent.tsx
727
+ msgid "Generate Token"
728
+ msgstr "產生權杖"
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 同步"
738
+
739
+ #. @context: Section label for nav items shown in header
740
+ #: src/ui/dash/appearance/NavigationContent.tsx
741
+ msgid "Header"
742
+ msgstr "頁首"
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 "頁首連結、首頁動態與更多選單"
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 "頁首 RSS 指向你的 {feed} 訂閱 (/feed)。在「一般」中變更 /feed 回傳的內容。"
753
+
754
+ #. @context: Post badge for posts hidden from Latest
755
+ #: src/ui/dash/StatusBadge.tsx
756
+ msgid "Hidden from Latest"
757
+ msgstr "從最新中隱藏 (不出現在 Latest 中,但仍可透過固定連結和集合存取的狀態。)"
758
+
759
+ #. @context: Settings subsection heading for home page settings
760
+ #: src/ui/dash/settings/GeneralContent.tsx
761
+ msgid "Home"
762
+ msgstr "首頁"
763
+
764
+ #. @context: Toast after auto-saving home settings
765
+ #: src/routes/dash/settings.tsx
766
+ msgid "Home settings updated."
767
+ msgstr "首頁設定已更新。"
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 "託管帳號"
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 "我想刪除 {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 "在 </body> 之前注入。用於聊天小工具和不應阻塞頁面載入的腳本。"
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 "在 </head> 之前注入。用於分析、自訂 meta 標籤,以及必須提前載入的樣式。"
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 "安裝 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 "安裝 GitHub App,以授予存取權而無需管理個人權杖。權限以每個儲存庫為範圍,並可在 GitHub 上撤銷。"
798
+
799
+ #. @context: Settings group label for third-party integrations
800
+ #: src/ui/dash/settings/SettingsRootContent.tsx
801
+ msgid "Integrations"
802
+ msgstr "整合"
803
+
804
+ #. @context: Nav item label field
805
+ #: src/ui/dash/appearance/NavigationContent.tsx
806
+ msgid "Label"
807
+ msgstr "標籤"
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 "標籤與 URL 為必填"
813
+
814
+ #. @context: Error toast when nav label is empty
815
+ #: src/ui/dash/appearance/NavigationContent.tsx
816
+ msgid "Label is required"
817
+ msgstr "標籤為必填"
818
+
819
+ #. @context: Settings form field for site/dashboard language
820
+ #: src/ui/dash/settings/GeneralContent.tsx
821
+ msgid "Language"
822
+ msgstr "語言"
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 "語言與時區"
828
+
829
+ #. @context: Toast after saving language and time settings
830
+ #: src/routes/dash/settings.tsx
831
+ msgid "Language and time updated."
832
+ msgstr "語言與時間已更新。"
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 "最近一次提交"
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 "上次錯誤"
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 "上次同步"
848
+
849
+ #. @context: Token last used date
850
+ #: src/ui/dash/settings/ApiTokensContent.tsx
851
+ msgid "Last used {date}"
852
+ msgstr "最後使用於 {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 "最新"
860
+
861
+ #. @context: Label for the explicit latest RSS feed URL
862
+ #: src/ui/dash/settings/GeneralContent.tsx
863
+ msgid "Latest feed"
864
+ msgstr "最新 RSS 來源"
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 "讓您覆寫任何主題變數。"
870
+
871
+ #. @context: Theme mode option label
872
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
873
+ msgid "Light"
874
+ msgstr "淺色"
875
+
876
+ #. @context: Nav item type badge
877
+ #: src/ui/dash/appearance/NavigationContent.tsx
878
+ msgid "link"
879
+ msgstr "連結"
880
+
881
+ #. @context: Post format badge - link
882
+ #: src/ui/dash/FormatBadge.tsx
883
+ msgid "Link"
884
+ msgstr "連結 (Jant 的貼文格式之一。)"
885
+
886
+ #. @context: Label for list posts curl example
887
+ #: src/ui/dash/settings/ApiTokensContent.tsx
888
+ msgid "List posts:"
889
+ msgstr "列出貼文:"
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 "載入為中文、日文或韓文內容最佳化的襯線字型。"
895
+
896
+ #. @context: GitHub sync picker — loading state
897
+ #: src/routes/dash/settings.tsx
898
+ msgid "Loading…"
899
+ msgstr "載入中…"
900
+
901
+ #. @context: Label for the canonical /feed URL
902
+ #: src/ui/dash/settings/GeneralContent.tsx
903
+ msgid "Main feed"
904
+ msgstr "主要訂閱來源"
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 "主要 RSS 訂閱"
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 "管理帳戶"
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 "在 {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 "管理登入安全、匯出,以及不可逆的操作。"
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 "在此管理本網站的活動工作階段。密碼與託管存取由 {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 "手動推送"
935
+
936
+ #. @context: Color theme preview date label
937
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
938
+ msgid "March 14"
939
+ msgstr "3月14日"
940
+
941
+ #. @context: Placeholder hint for markdown-enabled textareas
942
+ #: src/ui/dash/settings/GeneralContent.tsx
943
+ msgid "Markdown supported"
944
+ msgstr "支援 Markdown"
945
+
946
+ #. @context: Section label for nav items hidden under More dropdown
947
+ #: src/ui/dash/appearance/NavigationContent.tsx
948
+ msgid "More"
949
+ msgstr "更多"
950
+
951
+ #. @context: Button label for a menu with more actions
952
+ #: src/routes/dash/custom-urls.tsx
953
+ msgid "More actions"
954
+ msgstr "更多操作"
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 "名稱, 中繼資料, 語言, 和 搜尋預設值"
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 "導覽"
967
+
968
+ #. @context: Section heading for nav items
969
+ #: src/ui/dash/appearance/NavigationContent.tsx
970
+ msgid "Navigation items"
971
+ msgstr "導覽項目"
972
+
973
+ #. @context: Toast after saving navigation item order
974
+ #: src/ui/dash/appearance/NavigationContent.tsx
975
+ msgid "Navigation order updated."
976
+ msgstr "導覽順序已更新。"
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 "導覽位置已更新。"
982
+
983
+ #. @context: Label for nav preview section
984
+ #: src/ui/dash/appearance/NavigationContent.tsx
985
+ msgid "Navigation Preview"
986
+ msgstr "導覽預覽"
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 "需要在目標儲存庫上擁有 Contents(讀/寫)和 Webhooks(讀/寫)權限。"
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 "新增自訂 URL"
1001
+
1002
+ #. @context: Password form field
1003
+ #: src/ui/dash/settings/AccountContent.tsx
1004
+ msgid "New Password"
1005
+ msgstr "新密碼"
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 "尚未授權任何帳戶"
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 "目前沒有任何活動中的工作階段。已登入的裝置會顯示在此處。"
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 "目前還沒有選集。請先建立一個,然後將它加入您的導覽。"
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 "尚未有自訂 URL。建立一個自訂 URL 以為文章新增重新導向或自訂路徑。"
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 "未選取檔案。請選擇要上傳的檔案。"
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 "目前尚無導覽項目。請新增連結或在下方啟用系統項目。"
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 "沒有符合的儲存庫."
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 "尚未同步"
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 "筆記"
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 "在 {providerLabel} 開啟託管站點控制項以取消計費或永久刪除此站點。"
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 "調色盤、表面色調與整體氛圍"
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 "密碼"
1075
+
1076
+ #. @context: Toast after changing account password
1077
+ #: src/routes/dash/settings.tsx
1078
+ msgid "Password changed."
1079
+ msgstr "密碼已變更."
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 "示範模式已停用變更密碼功能。請使用共用示範帳號登入。"
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 "密碼不符。請確認兩個欄位相同。"
1090
+
1091
+ #. @context: Custom URL form field
1092
+ #: src/routes/dash/custom-urls.tsx
1093
+ msgid "Path"
1094
+ msgstr "路徑"
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 "永久刪除所有資料並重設部落格"
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 "個人存取權杖"
1105
+
1106
+ #. @context: GitHub sync picker — page heading
1107
+ #: src/routes/dash/settings.tsx
1108
+ msgid "Pick a repository"
1109
+ msgstr "選擇一個儲存庫"
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 "請先選擇一個帳戶"
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 "將選集釘選到導覽列。最近 48 小時內更新的選集旁會顯示一個 * 號。"
1120
+
1121
+ #. @context: Post badge - pinned
1122
+ #: src/ui/dash/StatusBadge.tsx
1123
+ msgid "Pinned"
1124
+ msgstr "已釘選"
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 "文章"
1132
+
1133
+ #. @context: GitHub sync picker — badge next to private repos
1134
+ #: src/routes/dash/settings.tsx
1135
+ msgid "Private"
1136
+ msgstr "私有"
1137
+
1138
+ #. @context: Avatar upload button text while generating favicon variants
1139
+ #: src/ui/dash/settings/AvatarContent.tsx
1140
+ msgid "Processing..."
1141
+ msgstr "處理中..."
1142
+
1143
+ #. @context: Post status badge - published
1144
+ #: src/ui/dash/StatusBadge.tsx
1145
+ msgid "Published"
1146
+ msgstr "已發佈"
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 "立即將所有文章推送到 GitHub,而不是等待下一次自動同步。"
1152
+
1153
+ #. @context: Archive custom URL query params field
1154
+ #: src/routes/dash/custom-urls.tsx
1155
+ msgid "Query Parameters"
1156
+ msgstr "查詢參數"
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 "低調的介面讓文字成為主角。"
1162
+
1163
+ #. @context: Post format badge - quote
1164
+ #: src/ui/dash/FormatBadge.tsx
1165
+ msgid "Quote"
1166
+ msgstr "引用 (Jant 的貼文格式之一。)"
1167
+
1168
+ #. @context: Color theme preview inline link label
1169
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1170
+ msgid "Read why"
1171
+ msgstr "瞭解原因"
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 "重新導向"
1179
+
1180
+ #. @context: Redirect type field
1181
+ #: src/routes/dash/custom-urls.tsx
1182
+ msgid "Redirect Type"
1183
+ msgstr "重新導向類型"
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 "重新導向、自訂路徑與網址控制"
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 "重新整理儲存庫清單"
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 "移除"
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 "移除 webhook 並停止同步。您的儲存庫內容不會被刪除。"
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 "移除這個頭像?您的 favicon 與頁首圖示會回復為預設。"
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 "要從導覽移除這個選集嗎?選集本身不會被刪除。"
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 "儲存庫"
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 "撤銷"
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 "撤銷此工作階段?該裝置將需要重新登入。"
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 "要撤銷這個權杖嗎?任何使用它的腳本都會停止運作。"
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 "可以放心離開此頁面 — 同步會在背景繼續進行。"
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 "儲存"
1258
+
1259
+ #. @context: Button to save custom CSS
1260
+ #: src/ui/dash/appearance/AdvancedContent.tsx
1261
+ msgid "Save CSS"
1262
+ msgstr "儲存 CSS"
1263
+
1264
+ #. @context: Settings section heading for search engine indexing settings
1265
+ #: src/ui/dash/settings/GeneralContent.tsx
1266
+ msgid "Search"
1267
+ msgstr "搜尋"
1268
+
1269
+ #. @context: GitHub sync picker — search input placeholder
1270
+ #: src/routes/dash/settings.tsx
1271
+ msgid "Search repositories"
1272
+ msgstr "搜尋儲存庫"
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 "搜尋設定已更新。"
1280
+
1281
+ #. @context: Settings group label for account security settings
1282
+ #: src/ui/dash/settings/AccountMenuContent.tsx
1283
+ msgid "Security"
1284
+ msgstr "安全性"
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 "安全權杖已過期。請重新整理頁面並再試一次。"
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 "找不到安全權杖。請重新整理頁面後再試一次。"
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 "查看您在哪裡已登入,並撤銷舊的工作階段"
1300
+
1301
+ #. @context: GitHub sync picker — repo dropdown placeholder
1302
+ #: src/routes/dash/settings.tsx
1303
+ msgid "Select a repository"
1304
+ msgstr "選擇儲存庫"
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 "選擇一個帳戶"
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 "在示範模式中已停用工作階段管理。請改用共用示範工作階段。"
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 "工作階段"
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 "工作階段與密碼"
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 "設定"
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 "在首頁底部顯示「Build with Jant」"
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 "顯示 {shown} 共 {total}"
1344
+
1345
+ #. @context: Settings link — sign out action
1346
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1347
+ msgid "Sign Out"
1348
+ msgstr "登出"
1349
+
1350
+ #. @context: Session creation date
1351
+ #: src/ui/dash/settings/SessionsContent.tsx
1352
+ msgid "Signed in {date}"
1353
+ msgstr "已於 {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 "網站"
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 "網站頁尾"
1368
+
1369
+ #. @context: Code Injection field group label for <head>
1370
+ #: src/ui/dash/appearance/CodeInjectionContent.tsx
1371
+ msgid "Site Header"
1372
+ msgstr "網站頁首"
1373
+
1374
+ #. @context: Settings form field
1375
+ #: src/ui/dash/settings/GeneralContent.tsx
1376
+ msgid "Site Name"
1377
+ msgstr "網站名稱"
1378
+
1379
+ #. @context: Toast after saving site settings
1380
+ #: src/routes/dash/settings.tsx
1381
+ msgid "Site settings updated."
1382
+ msgstr "網站設定已更新."
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 "用於分析與小工具的網站全域 HTML"
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 "柔和的色彩仍應保有清晰的閱讀節奏。"
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 "立即同步"
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 "同步中…"
1403
+
1404
+ #. @context: Nav item type badge
1405
+ #: src/ui/dash/appearance/NavigationContent.tsx
1406
+ msgid "system"
1407
+ msgstr "系統"
1408
+
1409
+ #. @context: Custom URL target slug field
1410
+ #: src/routes/dash/custom-urls.tsx
1411
+ msgid "Target Slug"
1412
+ msgstr "目標 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 "該字型主題無法使用. 請選擇其他主題."
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 "該主題目前不可用。請選擇其他主題。"
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 "目標文章或選集的 slug"
1428
+
1429
+ #. @context: Link to theming documentation on Custom CSS page
1430
+ #: src/ui/dash/appearance/AdvancedContent.tsx
1431
+ msgid "Theming guide"
1432
+ msgstr "主題指南"
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 "這些裝置目前已登入您的帳號。撤銷任何您不認識的工作階段。"
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 "此部落格"
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 "此程式碼會在您網站的每個頁面上執行。"
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 "這會控制 /feed 回傳的內容。"
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 "此託管網站透過 {providerLabel} 登入。請在該處管理密碼與託管存取權限。"
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 "此圖會用於您的 favicon 和 apple-touch-icon。為達最佳效果,請上傳至少 512x512 像素、背景為純色的正方形 PNG。"
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 "此儲存庫已有提交紀錄"
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 "此儲存庫已有內容。"
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 "此儲存庫已在備份另一個 Jant 網站 ({host}). 請選擇其他儲存庫."
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 "此儲存庫已在備份本網站。"
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 "這會永久刪除您所有的資料 — 文章、媒體、選集、設定,以及您的帳戶。您的部落格將被重設為初始設定狀態。此操作無法復原。"
1488
+
1489
+ #. @context: Settings form field
1490
+ #: src/ui/dash/settings/GeneralContent.tsx
1491
+ msgid "Time Zone"
1492
+ msgstr "時區"
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 "切換內建導覽項目。它們的順序決定頁首顯示哪些項目,以及首頁會先開啟哪一個 feed。"
1498
+
1499
+ #. @context: Button to expand/collapse nav item edit
1500
+ #: src/ui/dash/appearance/NavigationContent.tsx
1501
+ msgid "Toggle edit panel"
1502
+ msgstr "切換編輯面板"
1503
+
1504
+ #. @context: API token name field label
1505
+ #: src/ui/dash/settings/ApiTokensContent.tsx
1506
+ msgid "Token name"
1507
+ msgstr "權杖名稱 (API 權杖名稱欄位。)"
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 "權杖讓您從腳本, 捷徑和其他工具存取 API 無需登入"
1513
+
1514
+ #. @context: GitHub sync picker — retry button
1515
+ #: src/routes/dash/settings.tsx
1516
+ msgid "Try again"
1517
+ msgstr "重試"
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 "調整您的網站外觀、可讀性與執行效能。"
1523
+
1524
+ #. @context: Custom URL form field
1525
+ #: src/routes/dash/custom-urls.tsx
1526
+ msgid "Type"
1527
+ msgstr "類型"
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 "輸入 {repo} 以確認"
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 "請輸入以下短語以確認:"
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 "輸入以搜尋全部"
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 "字體選擇與閱讀質感"
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 "未知裝置"
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 "更新您用來登入的密碼"
1558
+
1559
+ #. @context: Button to upload avatar image
1560
+ #: src/ui/dash/settings/AvatarContent.tsx
1561
+ msgid "Upload Avatar"
1562
+ msgstr "上傳大頭貼"
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 "上傳未成功. 請稍後再試."
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 "上傳失敗。請再試一次。"
1573
+
1574
+ #. @context: Avatar upload button text while uploading
1575
+ #: src/ui/dash/settings/AvatarContent.tsx
1576
+ msgid "Uploading..."
1577
+ msgstr "上傳中..."
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 "用法"
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 "當你想要一個永遠不會改變的 feed URL 時,請使用這些。"
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 "將精選文章用於 /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 "使用最新的公開貼文作為 /feed。"
1603
+
1604
+ #. @context: Button to view item on public site
1605
+ #: src/ui/dash/ActionButtons.tsx
1606
+ msgid "View"
1607
+ msgstr "檢視"
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 "想要更細緻的控制?"
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 "我們會預先填入名稱 {name}。返回時清單會重新整理。"
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 "何時使用網站匯出、資料庫備份與復原演練。"