@jant/core 0.3.37 → 0.3.39
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.
- package/LICENSE +189 -189
- package/README.md +5 -4
- package/bin/commands/assets/prepare.js +55 -0
- package/bin/commands/db/execute-file.js +113 -0
- package/bin/commands/db/export.js +5 -0
- package/bin/commands/db/rehearse.js +65 -0
- package/bin/commands/deploy.js +162 -0
- package/bin/commands/export.js +73 -75
- package/bin/commands/import-site.js +1531 -267
- package/bin/commands/migrate.js +79 -0
- package/bin/commands/reset-password.js +80 -7
- package/bin/commands/site/export.js +415 -0
- package/bin/commands/site/import.js +5 -0
- package/bin/commands/site/localize-media.js +118 -0
- package/bin/commands/site/snapshot/export.js +357 -0
- package/bin/commands/site/snapshot/import.js +363 -0
- package/bin/commands/start.js +46 -0
- package/bin/commands/uploads/cleanup.js +119 -0
- package/bin/jant.js +55 -15
- package/bin/lib/cli-api-token.js +6 -0
- package/bin/lib/d1-query.js +194 -0
- package/bin/lib/load-node-runtime.js +10 -0
- package/bin/lib/migration-artifacts.js +99 -0
- package/bin/lib/migration-rehearsal.js +438 -0
- package/bin/lib/migration-runner.js +311 -0
- package/bin/lib/node-database.js +48 -0
- package/bin/lib/node-sqlite.js +158 -0
- package/bin/lib/public-assets.js +66 -0
- package/bin/lib/r2-query.js +170 -0
- package/bin/lib/runtime-target.js +33 -0
- package/bin/lib/site-localize-media.js +427 -0
- package/bin/lib/site-media-parser.js +1150 -0
- package/bin/lib/site-selection.js +222 -0
- package/bin/lib/site-snapshot.js +484 -0
- package/bin/lib/site-url.js +84 -0
- package/bin/lib/sql-export.js +194 -0
- package/bin/lib/wrangler-cli.js +41 -0
- package/bin/lib/wrangler-config.js +86 -0
- package/dist/app-BfoG98VD.js +30410 -0
- package/dist/client/_assets/chunks/0041f681602cc834bb5c55ced0155b8e-BNpHLJgt.woff2 +0 -0
- package/dist/client/_assets/chunks/008ea9091e332c639ceb18874eacd60c-CygB704Q.woff2 +0 -0
- package/dist/client/_assets/chunks/00c9ac960d866ffaf8a866e5939024e2-CqRrlxSi.woff2 +0 -0
- package/dist/client/_assets/chunks/02629e5d0a9860b7fe32ec1f0563213a-YvgSIv_V.woff2 +0 -0
- package/dist/client/_assets/chunks/02e48e353415a00e0f556608cab33a43-YFgu4zi3.woff2 +0 -0
- package/dist/client/_assets/chunks/02faf6bb0ab4d56ada037c0bbaf9b9f7-DUuUM2eo.woff2 +0 -0
- package/dist/client/_assets/chunks/031089da45fbfb7dc18ac827bef4c56e-D4ahCOTO.woff2 +0 -0
- package/dist/client/_assets/chunks/03ac785139320b7b13bac9c150bf72bf-BG7zubxs.woff2 +0 -0
- package/dist/client/_assets/chunks/053bd3d7aec0040d0cc50c261a1f4e3e-BdG4yI0n.woff2 +0 -0
- package/dist/client/_assets/chunks/057a3d44d7fc606f113d863376d0ecf0-BsEMbuKV.woff2 +0 -0
- package/dist/client/_assets/chunks/0713613227cc4c686c45a279f8bdc166-BzLoJcLo.woff2 +0 -0
- package/dist/client/_assets/chunks/0b1f83a3c7e715560a55ad9eb0fb1c94-asGrAhxW.woff2 +0 -0
- package/dist/client/_assets/chunks/0c055db157e7a13f3103cc2a6b67fec3-1T6huY_I.woff2 +0 -0
- package/dist/client/_assets/chunks/0d3f5cc265cb6c439c517f2c4cebbddf-CmkfpVHX.woff2 +0 -0
- package/dist/client/_assets/chunks/0e97f44ebc65384c346fe19bcc52fa20-BJTzmZzt.woff2 +0 -0
- package/dist/client/_assets/chunks/10f2b44b3711d3f5bdcc30d373b543d1-BRTxD_6-.woff2 +0 -0
- package/dist/client/_assets/chunks/1139d32ae2bdeb26c0c8f31330aa9a9f-B7k4Da0E.woff2 +0 -0
- package/dist/client/_assets/chunks/1259e5825b314fe2b8bb96d6e8069ee5-Ba8VoZCg.woff2 +0 -0
- package/dist/client/_assets/chunks/12c518ebfe62818af550c08947e359e7-B7eDp07N.woff2 +0 -0
- package/dist/client/_assets/chunks/145831a59caa06d894022fe60212ed21-B3xSIk4b.woff2 +0 -0
- package/dist/client/_assets/chunks/14b040a2dda256936bc7b3470e548394-CF7zgNWs.woff2 +0 -0
- package/dist/client/_assets/chunks/14c1506106d92621bafb11016735194e-cbk_paoP.woff2 +0 -0
- package/dist/client/_assets/chunks/154a2c266902003bd8b7449386b10776-CYgd0apt.woff2 +0 -0
- package/dist/client/_assets/chunks/15f8c0df47fd639d1b0d9bd5cf507c9b-B11bYwtn.woff2 +0 -0
- package/dist/client/_assets/chunks/1668bd859ffe15bed7d5563117d8d5fb-DJotYU-j.woff2 +0 -0
- package/dist/client/_assets/chunks/169a096e61d38a773216f51d1ec2cc06-CzS4CZjy.woff2 +0 -0
- package/dist/client/_assets/chunks/1884a2b22d314c7d57707f03aec348e0-BdBJ4_JO.woff2 +0 -0
- package/dist/client/_assets/chunks/189f272ea2600c74d576b7b15c014922-CylwUmhO.woff2 +0 -0
- package/dist/client/_assets/chunks/190e3f8632494e7c095117f26b1c811e-DT09KhZe.woff2 +0 -0
- package/dist/client/_assets/chunks/19ad151c22ce1befe0a9ea643fbee570-BOjbPzxL.woff2 +0 -0
- package/dist/client/_assets/chunks/19e39850472250bfdbce654d30859879-Db8MVQ-5.woff2 +0 -0
- package/dist/client/_assets/chunks/1b5d0d740450fb996749464c9b882025-BG0yepI2.woff2 +0 -0
- package/dist/client/_assets/chunks/1bca0a2a8840ad0ee9414940593db144-CfiRZ0Fs.woff2 +0 -0
- package/dist/client/_assets/chunks/1c820b5295868008ca7c78afa5b7655d-rGkaVY0Z.woff2 +0 -0
- package/dist/client/_assets/chunks/1cda27dcaab977ae4ef5d5ab2a10ae03-3n1CbajX.woff2 +0 -0
- package/dist/client/_assets/chunks/1e2640116bbba817f43c43cc69371cf1-BLnekPNy.woff2 +0 -0
- package/dist/client/_assets/chunks/1f4bc38a1c50f55f335f5411cae47696-3J1JFXeu.woff2 +0 -0
- package/dist/client/_assets/chunks/1fbccc182322b513f57cd156a9a491b0-bRVH28a5.woff2 +0 -0
- package/dist/client/_assets/chunks/1fbe225742c69f4ba9ea5f74922f0ca1-BHRIiKDB.woff2 +0 -0
- package/dist/client/_assets/chunks/2022cf097cb952d9fe75b53b4587d2c3-Btdq5ZEB.woff2 +0 -0
- package/dist/client/_assets/chunks/21e0a71d86be7b8a9e812e7af09dd061-SSZaQU5Z.woff2 +0 -0
- package/dist/client/_assets/chunks/2240a3c43ca5ef59ae3c348c7884792f-DQgT8QLe.woff2 +0 -0
- package/dist/client/_assets/chunks/2573703213da30d3ba18925b100b2c2b-D61uHyrJ.woff2 +0 -0
- package/dist/client/_assets/chunks/265e048cc9f2f8a711ba585a534d5351-geHDzSNf.woff2 +0 -0
- package/dist/client/_assets/chunks/26839c0e47c73514b8d8f660d24d6b19-D2gmzZl-.woff2 +0 -0
- package/dist/client/_assets/chunks/280e3d2b58e9ad3501816072e01b0c13-Dx5yDwjz.woff2 +0 -0
- package/dist/client/_assets/chunks/2874d07e228da9583b0e73646dacd498-26mUURU-.woff2 +0 -0
- package/dist/client/_assets/chunks/29d49891713a2785a3a383001cf58c59-DVb6JpZh.woff2 +0 -0
- package/dist/client/_assets/chunks/2a22e14a9ad53f2abb3c7e85017b7d12-CU_4APNf.woff2 +0 -0
- package/dist/client/_assets/chunks/2a7cedfcd6e4c7cec36f4fd7b0f329c2-BUp7BYdq.woff2 +0 -0
- package/dist/client/_assets/chunks/2acea04a920f6af31e7db97052f563c6-KdL2n7-Y.woff2 +0 -0
- package/dist/client/_assets/chunks/2ae2ca951489c9d50cde5b36a2a5515b-CWV12jwD.woff2 +0 -0
- package/dist/client/_assets/chunks/2b3e8c5703b91f39f6027f43f0da6f4b-FHYDvFqX.woff2 +0 -0
- package/dist/client/_assets/chunks/2ba802b14f21a58fc61606c88fa93373-BmrW6szo.woff2 +0 -0
- package/dist/client/_assets/chunks/2d81eb6ab0ebbc0cabfb3a3341ba8800-Ds2YcMj0.woff2 +0 -0
- package/dist/client/_assets/chunks/2deb444546774c3a3ab38c75eb69cdfb-Dm9USQXk.woff2 +0 -0
- package/dist/client/_assets/chunks/2e98b666924b8e0a09d1aeeefd24bdd2-Cmh3DrKG.woff2 +0 -0
- package/dist/client/_assets/chunks/2f27ee4fb2cf6a280e110e09c18ef73e-D_yYWYMZ.woff2 +0 -0
- package/dist/client/_assets/chunks/2fbccf9a3853eb59db1a825e044515fd-CiShE3Wo.woff2 +0 -0
- package/dist/client/_assets/chunks/2fd3fceb6faed5e3db768e88d7614dca-D74stxc-.woff2 +0 -0
- package/dist/client/_assets/chunks/2ff009fa8701505d7f3dc6c83763f019-nkOuUfA-.woff2 +0 -0
- package/dist/client/_assets/chunks/31342cebfa5ea7fac06b4ea372d96bc5-DdIH_TkU.woff2 +0 -0
- package/dist/client/_assets/chunks/31424fe5d54692e7c8b38021ccb8597c-CfNu45zJ.woff2 +0 -0
- package/dist/client/_assets/chunks/3179006d1c7ebfa50d27482a2859d9a0-e7PNUH9y.woff2 +0 -0
- package/dist/client/_assets/chunks/34c2edb3c37f71258f5c4a31091f0c6c-Cyr8VjPf.woff2 +0 -0
- package/dist/client/_assets/chunks/35cf5dd04315e0b906e1a413d7905a2f-A-QPUrVX.woff2 +0 -0
- package/dist/client/_assets/chunks/360c190344c26278bbc50e2f4d6a2b3f-B7OhzvgR.woff2 +0 -0
- package/dist/client/_assets/chunks/375329ba0b50b94b35006498e555867c-CDc5XB7_.woff2 +0 -0
- package/dist/client/_assets/chunks/387c811226f303af62f1e21aae6f5c83-BmPYUAdb.woff2 +0 -0
- package/dist/client/_assets/chunks/389a950f2a1211946d294716e679e381-Diuxk8JN.woff2 +0 -0
- package/dist/client/_assets/chunks/39b0bbc910af9d2d6dcd8bd4abd6387d-NhvZf71d.woff2 +0 -0
- package/dist/client/_assets/chunks/3adc8f6350cf5067bcb6dc5e44c45d41-DIO3oy0b.woff2 +0 -0
- package/dist/client/_assets/chunks/3b41385fc27419c19822060daa0b5cb3-Dh5JVnsu.woff2 +0 -0
- package/dist/client/_assets/chunks/3bed5bd57de8f738e53cddaea88983d9-BAGVbLtM.woff2 +0 -0
- package/dist/client/_assets/chunks/3c201fd8d1bb20abe7d06b940e83a4d9-Bz0dCLvM.woff2 +0 -0
- package/dist/client/_assets/chunks/3cbe4a697fd595ef42c899de7d3e5445-zWwFRRI_.woff2 +0 -0
- package/dist/client/_assets/chunks/3d385ea0880df7204258e290648ec012-BQqoFH8R.woff2 +0 -0
- package/dist/client/_assets/chunks/3d83dacbbec3d8532ae9afede21f3aab-BH06SEJj.woff2 +0 -0
- package/dist/client/_assets/chunks/3dc1a4f0d7af59e16b5162a2b077a442-CkXZW3CY.woff2 +0 -0
- package/dist/client/_assets/chunks/3dc68e473fe23bd076dd46785cd23583-Cv6HZ0Dr.woff2 +0 -0
- package/dist/client/_assets/chunks/427577dcb707d1d35eebd155b4222aa7-D7-mHA6o.woff2 +0 -0
- package/dist/client/_assets/chunks/42a74b6a625bbf0a9616ed4db3152c88-CQ58KTMS.woff2 +0 -0
- package/dist/client/_assets/chunks/435b7dca567809813fcb395a27ed83a0-C6E3YXBr.woff2 +0 -0
- package/dist/client/_assets/chunks/43693195e775d515689fa035394067fd-DLMrklI6.woff2 +0 -0
- package/dist/client/_assets/chunks/43fb49e5b79ee7e553869d84e6e08b1e-BgOVrd59.woff2 +0 -0
- package/dist/client/_assets/chunks/44dcbbc3cc8f22e613b342d691511ab6-dRyYwGGi.woff2 +0 -0
- package/dist/client/_assets/chunks/450a5b53be0a8a778bb0b623e86b652f-qwII2gXW.woff2 +0 -0
- package/dist/client/_assets/chunks/457485e72835364662dfead6281638c1-Mv279UyL.woff2 +0 -0
- package/dist/client/_assets/chunks/47479c470fae70f10b7c964a7ecbf274-D9VNBclD.woff2 +0 -0
- package/dist/client/_assets/chunks/474fac21b12b7efd71f7c321578878b0-BJRz_Yd3.woff2 +0 -0
- package/dist/client/_assets/chunks/477866c8396474a17317dcac3e7a014f-e90LWIFy.woff2 +0 -0
- package/dist/client/_assets/chunks/478ebdaadda7775c391c5dcab4e697df-RfXJJ1gl.woff2 +0 -0
- package/dist/client/_assets/chunks/488846410760fe128dae939836ca5423-D0YbXQOX.woff2 +0 -0
- package/dist/client/_assets/chunks/48d6a97a185c799be4fe67aaf7edf213-CqLkiJik.woff2 +0 -0
- package/dist/client/_assets/chunks/48eb0a91e50c7f026e248c64145e72af-D8LB2Dye.woff2 +0 -0
- package/dist/client/_assets/chunks/490edb9fc8a4356aea556eed32287464-Bxk-XtyT.woff2 +0 -0
- package/dist/client/_assets/chunks/4a23fe6e82fd496b5eb20401b6164efe-CfhsfLd6.woff2 +0 -0
- package/dist/client/_assets/chunks/4b0e79ba18b2ce424fa93e84996d7cba-B0dS4UvF.woff2 +0 -0
- package/dist/client/_assets/chunks/4bc743968cf1c3ce5711de67ef1ccc4d-Dmn20LlT.woff2 +0 -0
- package/dist/client/_assets/chunks/4c4bdd0b3f3a52e28f3b643c1c5d43be-BLqyuzyK.woff2 +0 -0
- package/dist/client/_assets/chunks/4c96411f3693a9a8657a9c1190f82bce-BhP7AS2j.woff2 +0 -0
- package/dist/client/_assets/chunks/4c9aa12aba2a6a57410eacaff7427916-CLDZgzM7.woff2 +0 -0
- package/dist/client/_assets/chunks/4cca7233bf8ce5dec2e5d146b993d626-Bf7OgJe6.woff2 +0 -0
- package/dist/client/_assets/chunks/4cf0f292f3358bd2f73b1cf4ec1476f3-CIfjw85D.woff2 +0 -0
- package/dist/client/_assets/chunks/4d0a9128d06ea857f203bf5d007b1ab9-BZ-BuqS9.woff2 +0 -0
- package/dist/client/_assets/chunks/4dc0728df0f2ba70796f45f05654c7ba-DGd3NDaT.woff2 +0 -0
- package/dist/client/_assets/chunks/4dc2bc2c55b47f57d13b63aa6b1c8bd4-g3WbclK2.woff2 +0 -0
- package/dist/client/_assets/chunks/4e1cc6aafb411b572c8d3511e925ecf1-BUf15jYj.woff2 +0 -0
- package/dist/client/_assets/chunks/4e5384920bbb155d9d8d74887b09ea5b-2KLteQXT.woff2 +0 -0
- package/dist/client/_assets/chunks/501f66f24bce8234441954de1b568403-CIe4N6pO.woff2 +0 -0
- package/dist/client/_assets/chunks/50cfd672bfa62512ba090420acf35c87-CibXrwCT.woff2 +0 -0
- package/dist/client/_assets/chunks/5227dbe9933760a48baff21ebd13fc98-v8CBITMX.woff2 +0 -0
- package/dist/client/_assets/chunks/526b263e72c189f4b065738aaa6d423a-Dj5Ns6Ev.woff2 +0 -0
- package/dist/client/_assets/chunks/53a88404451448cd2e620a0ca0e45a20-CI0P5NCv.woff2 +0 -0
- package/dist/client/_assets/chunks/54da934819a917f561b439bfd10f88b6-CpoNRhz7.woff2 +0 -0
- package/dist/client/_assets/chunks/54e301f412730f391225db59dae1c8d5-CxTAz9F1.woff2 +0 -0
- package/dist/client/_assets/chunks/551b1d7a0b80c8d42af09863cdca7f01-BIGKH8GS.woff2 +0 -0
- package/dist/client/_assets/chunks/555d990ab3fd7d3d66c6d1fa9a82fec5-BndAe6f2.woff2 +0 -0
- package/dist/client/_assets/chunks/557cd00c5d6827e13d72a0c71b23587b-C6gpr-g-.woff2 +0 -0
- package/dist/client/_assets/chunks/563fa31542d553f25abab65cf7f81e1d-Cl_1me5X.woff2 +0 -0
- package/dist/client/_assets/chunks/56e1c4734bbbb38af2fbc262bf6e98f2-DZ32amUx.woff2 +0 -0
- package/dist/client/_assets/chunks/5947f5da5da9a352a2b534ee64bfc29a-DT0Fj-SL.woff2 +0 -0
- package/dist/client/_assets/chunks/5979c33a7eb5963bf8e83e46931b5fb5--4f9yv1z.woff2 +0 -0
- package/dist/client/_assets/chunks/597d69d0710e0178b162afb0a0c20401-CpThXFdo.woff2 +0 -0
- package/dist/client/_assets/chunks/59966ee0b069b577510fe68c350da0ee-Bs_HDvyP.woff2 +0 -0
- package/dist/client/_assets/chunks/5a10741e41259e235841440394c0763d-uCZGOg0A.woff2 +0 -0
- package/dist/client/_assets/chunks/5bfc7a121c35ae42623ef804fb525e0e-mS7vyFFz.woff2 +0 -0
- package/dist/client/_assets/chunks/5cc23a76e122d0ad2f7cede41bc35b27-4T1ZVQJu.woff2 +0 -0
- package/dist/client/_assets/chunks/5d48855bed5f3554eff91b573d7376ac-CPzsdNDF.woff2 +0 -0
- package/dist/client/_assets/chunks/5ddcbe564b29ef08632e1aeb33455435-CQzDKa-z.woff2 +0 -0
- package/dist/client/_assets/chunks/5f90024544c2907c6c0203c6210c50be-C_1uxIky.woff2 +0 -0
- package/dist/client/_assets/chunks/605667a998e91e2b6a4a3cd7c31fe5a9-Co2lOjER.woff2 +0 -0
- package/dist/client/_assets/chunks/60a14064ed334f0155795d795e926abe-C2HuVyw5.woff2 +0 -0
- package/dist/client/_assets/chunks/60d8b0805a0a8c54a6cca216004beff5-CV1GX5br.woff2 +0 -0
- package/dist/client/_assets/chunks/611b62d5fd9698d9b5ce495ba6f14c93-CPi2xRKF.woff2 +0 -0
- package/dist/client/_assets/chunks/61bf4287453da4025d03fa6b2dba66ca-CMh4XzzB.woff2 +0 -0
- package/dist/client/_assets/chunks/638369541268ed5a10af97ad77498c73-DrpvGu-L.woff2 +0 -0
- package/dist/client/_assets/chunks/649b12d7cee7bb981842946e4547e6ca-EACt8KkC.woff2 +0 -0
- package/dist/client/_assets/chunks/653bef2ed891ae48d8ed712283080649-C3d1ZTAc.woff2 +0 -0
- package/dist/client/_assets/chunks/67d2a81f06ba352f17fbdc3a5e6ea59e-DC8Iostn.woff2 +0 -0
- package/dist/client/_assets/chunks/67f32ceea9e78e5109f87724ad886010-C_3-9sSn.woff2 +0 -0
- package/dist/client/_assets/chunks/68304f3229cf763465f044fccb5892c0-CTvPlN8c.woff2 +0 -0
- package/dist/client/_assets/chunks/687d0f0f90a9b23e40102e16ad8e9836-Bzlx1W-7.woff2 +0 -0
- package/dist/client/_assets/chunks/688a88911e4da17b609196a959b8b930-BgwP4zIQ.woff2 +0 -0
- package/dist/client/_assets/chunks/68f2fab82ec8e9291f08c3145111549c-CXqagiiH.woff2 +0 -0
- package/dist/client/_assets/chunks/69519ada3f3f74ca20aacb8af48ab6b4-DncDOElk.woff2 +0 -0
- package/dist/client/_assets/chunks/6a6e884fb2b65ec5b4a3d5ecd0d01a6a-DBNJo4jq.woff2 +0 -0
- package/dist/client/_assets/chunks/6db6ddf72c38a78ce44c1327701152e1-CFUWMaQQ.woff2 +0 -0
- package/dist/client/_assets/chunks/6e1a8b45b01939088c3a8cfcf8c10681-BemqZSaI.woff2 +0 -0
- package/dist/client/_assets/chunks/6e2164fad867d166de2e5b274f04a563-_YD_QMym.woff2 +0 -0
- package/dist/client/_assets/chunks/6e83fe0b6e708eaf1c3003d6dee11488-CRqY8z2g.woff2 +0 -0
- package/dist/client/_assets/chunks/6eefc9d430171c1e1e4034ecadee31c8-d3VCnQ01.woff2 +0 -0
- package/dist/client/_assets/chunks/70861376e5d4f92f8aa7aa1b2749b617-BqwxmSo2.woff2 +0 -0
- package/dist/client/_assets/chunks/70adaf50c56d5ff859c64d35e0f1e34e-BCmTRExx.woff2 +0 -0
- package/dist/client/_assets/chunks/7124d150570d39ced8d45507dc11ca1e-Co_mUkqP.woff2 +0 -0
- package/dist/client/_assets/chunks/71eafb8fbe3a734283517e230ad8b6db-CFmZ-qAS.woff2 +0 -0
- package/dist/client/_assets/chunks/72ee453ac0e19bd2c631c8921c44e3de-CEidyyfI.woff2 +0 -0
- package/dist/client/_assets/chunks/751f54dbb115140d5b645a6ba4aff5d3-DY-S96zI.woff2 +0 -0
- package/dist/client/_assets/chunks/753b5f6fb254bacb6618ace25af3df60-uBG6c32o.woff2 +0 -0
- package/dist/client/_assets/chunks/7609e7e74dd4d916a7abc7ecc7d95f7e-CzrNhght.woff2 +0 -0
- package/dist/client/_assets/chunks/76b9d6fe838ae4151d95ce7200aa2bf6-BfQWDykU.woff2 +0 -0
- package/dist/client/_assets/chunks/76d4244186d118eea245d1385a4de2ec-CEoql1pw.woff2 +0 -0
- package/dist/client/_assets/chunks/77a7533bd21ccd33192d142a93555aa8-BzSb8ker.woff2 +0 -0
- package/dist/client/_assets/chunks/78ce29fed872e44fc9014d94875d2aac-D1BDuJXp.woff2 +0 -0
- package/dist/client/_assets/chunks/79a7fdf7d9c722b5723ae25e6ff8e203-5rPAnIr7.woff2 +0 -0
- package/dist/client/_assets/chunks/79a85a253e9b3f12d2e2cb15e16b3003-DTjWGv2X.woff2 +0 -0
- package/dist/client/_assets/chunks/7a86b155111ba20f3e87306ff6beac77-DchSNxJ1.woff2 +0 -0
- package/dist/client/_assets/chunks/7b1e76975b0984e6f83e3f9f8069e784-OB_rGzsR.woff2 +0 -0
- package/dist/client/_assets/chunks/7b6c60131822a0e4d36d980d52509d4e-8dQVuUiW.woff2 +0 -0
- package/dist/client/_assets/chunks/7caa14a095a6bc313aab780fe4ff7999-BJ-80Ois.woff2 +0 -0
- package/dist/client/_assets/chunks/7cbda564cb2dd4799ab9e89d51286aa7-MlT7YRSz.woff2 +0 -0
- package/dist/client/_assets/chunks/7d138084cf03c14116b11297fce0e3e3-CdWCcyam.woff2 +0 -0
- package/dist/client/_assets/chunks/7d65a3d6a65050eb5e6eca43398aeba4-CYB359u-.woff2 +0 -0
- package/dist/client/_assets/chunks/7dfc711962c8771f97e7c8898a6bcb65-Yv69yrg4.woff2 +0 -0
- package/dist/client/_assets/chunks/7ef123b62d530fcba73974fa265e0aae-CD7IMlBc.woff2 +0 -0
- package/dist/client/_assets/chunks/7f60eefa15956d6f06dd92404887d58c-LqioDjlc.woff2 +0 -0
- package/dist/client/_assets/chunks/7f8c15e0ecb102738981d9fa4cb6b921-8qiw7Fmn.woff2 +0 -0
- package/dist/client/_assets/chunks/80466082a896fd328f30a78593c7c568-BMAVDyAy.woff2 +0 -0
- package/dist/client/_assets/chunks/812b5a4b87f3a7b4afc1cfebc864f413-B4_mWnLK.woff2 +0 -0
- package/dist/client/_assets/chunks/812dfb7f8144d01b3cc9d5ce0b472f40-DxhfKDhh.woff2 +0 -0
- package/dist/client/_assets/chunks/84742b1ede4f0bb6d27131298eba21b4-4_QYQ-wj.woff2 +0 -0
- package/dist/client/_assets/chunks/8555f0285e3d28e95e2fc0ccccd9caff-CEnfoaRy.woff2 +0 -0
- package/dist/client/_assets/chunks/880162ae92cd9e120eb4e4e11fae459d-Cj61LKOn.woff2 +0 -0
- package/dist/client/_assets/chunks/8a3c84b0df36f851f5fea75ee8757951-CfHrA-x8.woff2 +0 -0
- package/dist/client/_assets/chunks/8b0c8c9f8cfa9fa090d97c5a5efb1f4c-DZc3EGF4.woff2 +0 -0
- package/dist/client/_assets/chunks/8c8393bc875f1ee36697a2113f4421ea-CnBugeCf.woff2 +0 -0
- package/dist/client/_assets/chunks/8dc035a34c76e6515ca203e2df182588-B1reQPCB.woff2 +0 -0
- package/dist/client/_assets/chunks/8e04e64c8f68d292a18d4160fbde8671-DkT7v-sd.woff2 +0 -0
- package/dist/client/_assets/chunks/8e6c9bb43afb8cbbff7cf1055e67c9bd-c7wzPI7v.woff2 +0 -0
- package/dist/client/_assets/chunks/8eb06109812cb80be44f47b8179c2709-DOaU0xD8.woff2 +0 -0
- package/dist/client/_assets/chunks/8f2b960c2823670e94f5b08aa65657e6-CHT-Gunr.woff2 +0 -0
- package/dist/client/_assets/chunks/8f89f57230d184f92a36e241874229d7-D6P0FMCn.woff2 +0 -0
- package/dist/client/_assets/chunks/904324af375d5fd370af1054355a050e-CHiXmgO7.woff2 +0 -0
- package/dist/client/_assets/chunks/90ac4f9d2aa02afdace2843b49fc18bb-CWArmWzF.woff2 +0 -0
- package/dist/client/_assets/chunks/90b6f57d77847f512fd11db74fa912f1-DzYbq8hW.woff2 +0 -0
- package/dist/client/_assets/chunks/911a2092d64d6d6494b254d819af2b91-C0xmZ-Cu.woff2 +0 -0
- package/dist/client/_assets/chunks/913759e6690f9fc0746a20b96f4bdcb4-B0k9hqx0.woff2 +0 -0
- package/dist/client/_assets/chunks/9154e26efe532a85a27d80902f5a2d6c-DJQmzPmB.woff2 +0 -0
- package/dist/client/_assets/chunks/9180de34b48b325200a97e267befff32-ClJx20hD.woff2 +0 -0
- package/dist/client/_assets/chunks/94e7ed67f1557b76fead6b6e456a0415-CjAhhvRn.woff2 +0 -0
- package/dist/client/_assets/chunks/95127a92346c04fec1fa81d6295b0a28-DNbeXPGm.woff2 +0 -0
- package/dist/client/_assets/chunks/958efb9b2fa2ea0008ffef009885f9f8-CNOwBDS1.woff2 +0 -0
- package/dist/client/_assets/chunks/95df3b9f681d9df411c30aea5b24f2e0-Dv7GHFVj.woff2 +0 -0
- package/dist/client/_assets/chunks/975af5a496e8d87d821910aa9fe4d598-CG5KDMOI.woff2 +0 -0
- package/dist/client/_assets/chunks/97a874bbf55ce89a4ab7cd27c7e938b1-fhost-bL.woff2 +0 -0
- package/dist/client/_assets/chunks/9ca9b71010a5faeee7047ef97aeee13b-K6NP7P3o.woff2 +0 -0
- package/dist/client/_assets/chunks/9cd0b77920b9d6c64eb686493123fc76-Db6wX5BE.woff2 +0 -0
- package/dist/client/_assets/chunks/9de02d745b8e25c6411fb152fb067748-CGxZtq8G.woff2 +0 -0
- package/dist/client/_assets/chunks/9eb33a430058d839ebbe2af4b2e0daa9-Cjd-WSds.woff2 +0 -0
- package/dist/client/_assets/chunks/9ebd27835ffcbd794e67151ab046ce68-DmxtZVr5.woff2 +0 -0
- package/dist/client/_assets/chunks/9f5a73aa8ba417688019d628f334db07-P03uxox_.woff2 +0 -0
- package/dist/client/_assets/chunks/9fbc06b2e3ff16b9d705c76db563ef17-XDHSv5Te.woff2 +0 -0
- package/dist/client/_assets/chunks/9fd53607094e329fa8e5c785b3ff0f1a-B-9qgOdM.woff2 +0 -0
- package/dist/client/_assets/chunks/a077f51cfb5cffb4ff4d8e229c0e9e79-BaPgyZ5H.woff2 +0 -0
- package/dist/client/_assets/chunks/a0f0c06d5c7a3ffa97706178cce212a8-DN_NE4Ic.woff2 +0 -0
- package/dist/client/_assets/chunks/a38c1830367f784181b6f544b0b11bbd-BmPGDXn1.woff2 +0 -0
- package/dist/client/_assets/chunks/a397997b579d3945c9c70a979c17a8ad-DXa54wGz.woff2 +0 -0
- package/dist/client/_assets/chunks/a3b929542e6c5a0644b73a7c8a8b6c03-B5i2p-Hj.woff2 +0 -0
- package/dist/client/_assets/chunks/a578742770fcd2226e3c45b5b6efdcb0-C1QhQdHg.woff2 +0 -0
- package/dist/client/_assets/chunks/a68d9d5027803832bb28e78cdcd04949-D_bwWhwg.woff2 +0 -0
- package/dist/client/_assets/chunks/a8857f5d478f101c053ba02d2f223e90-CHOaRPpq.woff2 +0 -0
- package/dist/client/_assets/chunks/a904b05966368bcf90b632c7c2e5f76b-BbTXYQVh.woff2 +0 -0
- package/dist/client/_assets/chunks/a9cf85e27428c14351d30eac8cbc8d91-DMaVc3-8.woff2 +0 -0
- package/dist/client/_assets/chunks/aa0ce6740f301351761a0615cc8b2e99-4RL3pitV.woff2 +0 -0
- package/dist/client/_assets/chunks/aa218a2c45f3749537ce876201e5152b-DndHqA-p.woff2 +0 -0
- package/dist/client/_assets/chunks/aa28db16818f9eaa8c817f289e1c3270-Drm1Jwhe.woff2 +0 -0
- package/dist/client/_assets/chunks/aa64c9953af43ca65832f413895bb433-CR32RteD.woff2 +0 -0
- package/dist/client/_assets/chunks/aa96d698491c2540e2dcf7009c65c456-BXlPVR0v.woff2 +0 -0
- package/dist/client/_assets/chunks/ada8f0241244c60ec8d3d59ad37f20a5-BFQsznEm.woff2 +0 -0
- package/dist/client/_assets/chunks/ae25c41034ddc1a9e0b41f5034c9aa4b-COQJkHOc.woff2 +0 -0
- package/dist/client/_assets/chunks/ae289ae3f8cdb54a3a6c07174517afec-DFGIoTY6.woff2 +0 -0
- package/dist/client/_assets/chunks/ae401fb4db80d5ff5cd3f8d9bc811070-Byt9AwoT.woff2 +0 -0
- package/dist/client/_assets/chunks/b02dfa2aa52cbdb1b2f11a9f44335469-DVWsuPSL.woff2 +0 -0
- package/dist/client/_assets/chunks/b0ab3a7f319ce6dd3c9a4de2674e7c72-CksmA6Hr.woff2 +0 -0
- package/dist/client/_assets/chunks/b159deb135e9946eea0572d52778170b-BZrtOTn0.woff2 +0 -0
- package/dist/client/_assets/chunks/b2e326f7f9b807451bf9c745df747efe-BvlONCPB.woff2 +0 -0
- package/dist/client/_assets/chunks/b341de0bc0bfe194a6c28dcfb566029e-DJAj3r6U.woff2 +0 -0
- package/dist/client/_assets/chunks/b846c293981ca5429eabaa967f222f26-GS-TAaO6.woff2 +0 -0
- package/dist/client/_assets/chunks/b91450304d9ac44f5c6e0da0792e055d-vS0S7kl0.woff2 +0 -0
- package/dist/client/_assets/chunks/baa325551b381c5e035ef143e56d4abe-DJg3GhKJ.woff2 +0 -0
- package/dist/client/_assets/chunks/bc3f0cb8b55ee11d32b94ca488976f8d-Dp5KZMSD.woff2 +0 -0
- package/dist/client/_assets/chunks/bcb3307527d6d0033bf0f17660b91e71-BMgRW_eW.woff2 +0 -0
- package/dist/client/_assets/chunks/be64f9379412876e00fd3a0bfa6b6fe9-BJ3FMWFM.woff2 +0 -0
- package/dist/client/_assets/chunks/befed8a4fa817773fa7109db6fe07f56-3sAmDsOO.woff2 +0 -0
- package/dist/client/_assets/chunks/bf1acc86e17b4229c548828a9d6f455d-JNuPCGDM.woff2 +0 -0
- package/dist/client/_assets/chunks/c09ee2b219982f8d46ad9968b7e6e0ba-qVb8yJHb.woff2 +0 -0
- package/dist/client/_assets/chunks/c0c7836749e585cee24ab2f8457c5b01-Ds0003oT.woff2 +0 -0
- package/dist/client/_assets/chunks/c2ac4ef1860812036ca2b8c4e4089bdc-DsziO8Du.woff2 +0 -0
- package/dist/client/_assets/chunks/c31019c08bd22464f7a88f090281404c-CUC0jMW1.woff2 +0 -0
- package/dist/client/_assets/chunks/c33c59feccf391f0c5f1f5d24e36d1fe-BXTVggad.woff2 +0 -0
- package/dist/client/_assets/chunks/c39ec937c6a8d124e8b68cf829ea5ad4-CarrkdmQ.woff2 +0 -0
- package/dist/client/_assets/chunks/c3fbc1f2557c343863a10698f8c966a2-BiOC1yo2.woff2 +0 -0
- package/dist/client/_assets/chunks/c3fd21315345ae541f6e98067059fa19-rHtO7vK5.woff2 +0 -0
- package/dist/client/_assets/chunks/c568a16e3168ceb1f191b70022c492ea-BpAiyU80.woff2 +0 -0
- package/dist/client/_assets/chunks/c57ee3b49b7e45b995539a6b2c51f138-IHDXeVRU.woff2 +0 -0
- package/dist/client/_assets/chunks/c5c1c0be944ea39a3f50a02d32f5b759-DAwbrvTL.woff2 +0 -0
- package/dist/client/_assets/chunks/c5e66d60be3375835bbd8d6b797f6eac-DWp4tpvN.woff2 +0 -0
- package/dist/client/_assets/chunks/c5f1075caf6d1344ee720de85114a521-DTTbeLhd.woff2 +0 -0
- package/dist/client/_assets/chunks/c82fd9456d7465b5e5bd3659e9b14c55-Cs6h6hE6.woff2 +0 -0
- package/dist/client/_assets/chunks/c90b7b65d2b9696fbf3a506738f94d68-DsvgiuQQ.woff2 +0 -0
- package/dist/client/_assets/chunks/cae29b3f8951eaf20d2f61c2206e28d9-CoHXmhmG.woff2 +0 -0
- package/dist/client/_assets/chunks/cba6ad3981cb7861428d4be169ee8124-CBdFsPAF.woff2 +0 -0
- package/dist/client/_assets/chunks/cc26525aa2af1f0b929af32ce50a7fba-D55LVtW9.woff2 +0 -0
- package/dist/client/_assets/chunks/cd0e7b51eddb22a77a09b025c0281434-ByI_TSTq.woff2 +0 -0
- package/dist/client/_assets/chunks/cd10a3af2133805d8c92104d1ee6ff18-Dtr5mBXe.woff2 +0 -0
- package/dist/client/_assets/chunks/cd6d074f3957d58bac58437fc97e5e33-CrVZuSbw.woff2 +0 -0
- package/dist/client/_assets/chunks/cd75ca47da9ae4c0899e37d4c543319b-DXU1s4Ja.woff2 +0 -0
- package/dist/client/_assets/chunks/cef249b6d013fb0cc0d574176bc23811-BL7WfNHA.woff2 +0 -0
- package/dist/client/_assets/chunks/d043b8d7a48bb0ac59ee1f1477d88eee-d5CwY2I8.woff2 +0 -0
- package/dist/client/_assets/chunks/d0bd387fda28e58d3c9b3efa2468dd8a-CjDFowFS.woff2 +0 -0
- package/dist/client/_assets/chunks/d12ce1d8445213317f9163283e58a05d-4RtGQnak.woff2 +0 -0
- package/dist/client/_assets/chunks/d15a3317942b7d31978a759fbf2222c8-DQ9QFQdS.woff2 +0 -0
- package/dist/client/_assets/chunks/d28fb13acf9ced9f0657fd4012c81cd2-D8Bgk6sd.woff2 +0 -0
- package/dist/client/_assets/chunks/d320b000b5978c7251148a6a154741b8-CcGZjeFx.woff2 +0 -0
- package/dist/client/_assets/chunks/d3714e6b90de8e2085dfb2514464dd6a-8LsVAcmb.woff2 +0 -0
- package/dist/client/_assets/chunks/d3beff96216c8af1aa79246476b6a323-hQysoMK3.woff2 +0 -0
- package/dist/client/_assets/chunks/d3e311f30c811dc339c262a79a51877e-CkUTbS74.woff2 +0 -0
- package/dist/client/_assets/chunks/d51f4cdc83711e510f5d25f03235597e-BY3VAGvr.woff2 +0 -0
- package/dist/client/_assets/chunks/d5df4a8dfd4328c67d933b3912c6ad0f-A2fccswC.woff2 +0 -0
- package/dist/client/_assets/chunks/d740dc2e854aaa7b3dcdd3ed25455eeb-Cw8LrB06.woff2 +0 -0
- package/dist/client/_assets/chunks/d8325ba7ae651bc30440905bd67b95f1-Dg8M_ijr.woff2 +0 -0
- package/dist/client/_assets/chunks/da13b136efb1d1e4c76575af8f79a698-BbfzLGVB.woff2 +0 -0
- package/dist/client/_assets/chunks/da2cf0ec56bf69374ee37764c7e3ea3d-fyVBKE2g.woff2 +0 -0
- package/dist/client/_assets/chunks/da93ae099ff3b7aae27b3f674d3fc721-BDG5ywtd.woff2 +0 -0
- package/dist/client/_assets/chunks/daf62255dd60679946f28c442ca62533-BnIjYSn3.woff2 +0 -0
- package/dist/client/_assets/chunks/dccda6a2e2db3b530788bdfa2acd1979-ByL7eZcn.woff2 +0 -0
- package/dist/client/_assets/chunks/dd01a1035345f6921a48525b8ce08f06-vkP6t4fC.woff2 +0 -0
- package/dist/client/_assets/chunks/e2204cf85edcb96c5de5c3dcf240da9d-Ch3zKjD-.woff2 +0 -0
- package/dist/client/_assets/chunks/e264213b9e102dabc603adb6e4fda5e6-CyxmQBHB.woff2 +0 -0
- package/dist/client/_assets/chunks/e3e913e145ddcd9323b2a0972967feb6-3sjEdzck.woff2 +0 -0
- package/dist/client/_assets/chunks/e4fb59479cedc87ba79785590bf861ca-sx7RZ8Vu.woff2 +0 -0
- package/dist/client/_assets/chunks/e5d00355f73293d40b61299459d17ca5-D8Vt3D-z.woff2 +0 -0
- package/dist/client/_assets/chunks/e647b8d2efc501c0cc0e407249cc7135-BrSW9DU4.woff2 +0 -0
- package/dist/client/_assets/chunks/e6e60ffb2ebd1828628764b507060aea-Dqyf48QC.woff2 +0 -0
- package/dist/client/_assets/chunks/e7c7ef3669ae48c0a736f06ca471e1d7-DNCebEB-.woff2 +0 -0
- package/dist/client/_assets/chunks/e81a742cacef744130c40de1b90837d8-DtAIFBk_.woff2 +0 -0
- package/dist/client/_assets/chunks/e8b755172122d1d0a5dd453e96b0ff24-BNTSyPYU.woff2 +0 -0
- package/dist/client/_assets/chunks/e99280299c305402eaa5271a3e36c49b-BpqXwl7U.woff2 +0 -0
- package/dist/client/_assets/chunks/e9c66b085052ece66bfadf45f711d3e1-DVza3Uob.woff2 +0 -0
- package/dist/client/_assets/chunks/ed7c6dafaa6d8bcf015ef0ca574837df-C7bcndJl.woff2 +0 -0
- package/dist/client/_assets/chunks/f00eb499abb94fa7b799d6d8c9b050e9-D_XvVTI9.woff2 +0 -0
- package/dist/client/_assets/chunks/f2900a1d30c3a33129f4e2225669bd0e-in84LilX.woff2 +0 -0
- package/dist/client/_assets/chunks/f2fb1f1fbf7e44afb53c672ec286a22e-tFk0sTQc.woff2 +0 -0
- package/dist/client/_assets/chunks/f372129c60aaece937cf7b91ee75c9b8-DiP_JYOt.woff2 +0 -0
- package/dist/client/_assets/chunks/f5237486197aeff59341a1ff38b8eff8-D_uuqrNZ.woff2 +0 -0
- package/dist/client/_assets/chunks/f553d54ef931066712d8f3f0ce018e1b-D8K983U5.woff2 +0 -0
- package/dist/client/_assets/chunks/f5d7487963d43c89da63aaf10f2e6fb7-B7GIrfPU.woff2 +0 -0
- package/dist/client/_assets/chunks/f649cba8e14c33d6bf2265483b14b895-Nm5wSov8.woff2 +0 -0
- package/dist/client/_assets/chunks/f6839df1bf7cb4dc8d27e5ea55bbe633-BIjWKN84.woff2 +0 -0
- package/dist/client/_assets/chunks/f6b7304e028980f77a7f7007bb540abd-CIlBt6sf.woff2 +0 -0
- package/dist/client/_assets/chunks/f75496953a40ff241178240209f56990-MOSKd67d.woff2 +0 -0
- package/dist/client/_assets/chunks/f7d36ffff7a75c9c6216d576a57dd00d-CaXQA5A8.woff2 +0 -0
- package/dist/client/_assets/chunks/f7f3f63e7a149cd89eccab3b52171d05-oNOOSdDV.woff2 +0 -0
- package/dist/client/_assets/chunks/f8db8bef0a6e1178835d350ae0d384a1-ZAiKM369.woff2 +0 -0
- package/dist/client/_assets/chunks/f92d74d1d217d21b39075ff23f79f7fd-BlTe0_IX.woff2 +0 -0
- package/dist/client/_assets/chunks/f9d6d981d8b87b3e469027277f585741-DQqIv77a.woff2 +0 -0
- package/dist/client/_assets/chunks/fa7d3b99744d7f2dc9e00864a97a62d6-Pfww07DK.woff2 +0 -0
- package/dist/client/_assets/chunks/fa8ed469ef290bfeb571418fe0abb628-D5v-Z7kY.woff2 +0 -0
- package/dist/client/_assets/chunks/fb0e90665980954719c2eb685b130bc0-CiWRvo58.woff2 +0 -0
- package/dist/client/_assets/chunks/fb4649a82c50620773d79820e2e5ff13-dw14czgx.woff2 +0 -0
- package/dist/client/_assets/chunks/fb61b690208eff56e6d8432951270901-CUAnVvWa.woff2 +0 -0
- package/dist/client/_assets/chunks/fb9402d6c6357a825affc402f14d5a7e-CIp4G53L.woff2 +0 -0
- package/dist/client/_assets/chunks/fcc41f6a067ddd658bba5c9dff234a32-BtZTNo2r.woff2 +0 -0
- package/dist/client/_assets/chunks/fd6ad889fcf3583bd9b0b6db53aad434-DqiKyYmz.woff2 +0 -0
- package/dist/client/_assets/chunks/ff0937ad63cda71ff420945ead55ab4d-CXGPdnOz.woff2 +0 -0
- package/dist/client/_assets/chunks/heic-to-XcUDQvtx.js +1 -0
- package/dist/client/_assets/chunks/literata-cyrillic-ext-wght-normal-CGKlZYBf.woff2 +0 -0
- package/dist/client/_assets/chunks/literata-cyrillic-wght-normal-DLqwHbi6.woff2 +0 -0
- package/dist/client/_assets/chunks/literata-greek-ext-wght-normal-e3e57Shi.woff2 +0 -0
- package/dist/client/_assets/chunks/literata-greek-wght-normal-CO1l-giJ.woff2 +0 -0
- package/dist/client/_assets/chunks/literata-latin-ext-wght-normal-BnEbWgdZ.woff2 +0 -0
- package/dist/client/_assets/chunks/literata-latin-wght-normal-DLxlUchJ.woff2 +0 -0
- package/dist/client/_assets/chunks/literata-vietnamese-wght-normal-LcSrhZ7T.woff2 +0 -0
- package/dist/client/_assets/chunks/module-ChVQstFd.js +716 -0
- package/dist/client/_assets/chunks/native-CR5HLOyf.js +1 -0
- package/dist/client/_assets/chunks/news-cycle-cyrillic-400-normal-9BSXki1I.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-cyrillic-400-normal-CUYmhJri.woff2 +0 -0
- package/dist/client/_assets/chunks/news-cycle-cyrillic-ext-400-normal-CKyb9yaQ.woff2 +0 -0
- package/dist/client/_assets/chunks/news-cycle-cyrillic-ext-400-normal-Llxpm7uO.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-greek-400-normal-BiAZ91Zl.woff2 +0 -0
- package/dist/client/_assets/chunks/news-cycle-greek-400-normal-D88oNngQ.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-greek-ext-400-normal-Ckclqjrc.woff2 +0 -0
- package/dist/client/_assets/chunks/news-cycle-greek-ext-400-normal-oz-bBDWj.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-latin-400-normal-BLgpQ3uo.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-latin-400-normal-BgW97ttO.woff2 +0 -0
- package/dist/client/_assets/chunks/news-cycle-latin-ext-400-normal-DmDltzLi.woff2 +0 -0
- package/dist/client/_assets/chunks/news-cycle-latin-ext-400-normal-lewDoXxP.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-vietnamese-400-normal-QPSuG-pc.woff +0 -0
- package/dist/client/_assets/chunks/news-cycle-vietnamese-400-normal-t2mxI9x9.woff2 +0 -0
- package/dist/client/_assets/chunks/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
- package/dist/client/_assets/chunks/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
- package/dist/client/_assets/chunks/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-cyrillic-ext-wght-normal-DzyfIafT.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-cyrillic-wght-normal-BMDVbyM7.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-greek-ext-wght-normal-BWSLJLk6.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-greek-wght-normal-C9H9m1vD.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-latin-ext-wght-normal-C8iNium2.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-latin-wght-normal-BqRLTx4X.woff2 +0 -0
- package/dist/client/_assets/chunks/source-sans-3-vietnamese-wght-normal-C1uRvKPU.woff2 +0 -0
- package/dist/client/_assets/chunks/url-CG0eolsk.js +1 -0
- package/dist/client/_assets/client-auth.js +3251 -0
- package/dist/client/_assets/client-cjk-tc.css +1 -0
- package/dist/client/_assets/client-cjk.css +1 -0
- package/dist/client/_assets/client.css +2 -0
- package/dist/client/_assets/client.js +380 -0
- package/dist/index.js +2 -20359
- package/dist/node.js +479 -0
- package/package.json +67 -40
- package/src/__tests__/bin/uploads-cleanup.test.ts +77 -0
- package/src/__tests__/export-service.test.ts +550 -0
- package/src/__tests__/helpers/app.ts +60 -27
- package/src/__tests__/helpers/db.ts +14 -24
- package/src/__tests__/helpers/lingui-core-macro-mock.ts +15 -2
- package/src/__tests__/import-site-command.test.ts +406 -0
- package/src/__tests__/site-localize-media.test.ts +150 -0
- package/src/__tests__/site-media-parser.test.ts +216 -0
- package/src/app.tsx +272 -175
- package/src/assets/branding/generated/README.txt +15 -0
- package/src/assets/branding/generated/jant-apple-touch-icon.png +0 -0
- package/src/assets/branding/generated/jant-brand-assets.zip +0 -0
- package/src/assets/branding/generated/jant-brand-tile-512.png +0 -0
- package/src/assets/branding/generated/jant-brand-tile.svg +1 -0
- package/src/assets/branding/generated/jant-circle-tile-512.png +0 -0
- package/src/assets/branding/generated/jant-circle-tile.svg +1 -0
- package/src/assets/branding/generated/jant-favicon.ico +0 -0
- package/src/assets/branding/generated/jant-logo-negative.svg +1 -0
- package/src/assets/branding/generated/jant-logo-positive-512.png +0 -0
- package/src/assets/branding/generated/jant-logo-positive.svg +1 -0
- package/src/assets/branding/generated/jant-social-preview.png +0 -0
- package/src/assets/branding/generated/jant-square-tile-512.png +0 -0
- package/src/assets/branding/generated/jant-square-tile.svg +1 -0
- package/src/assets/branding/jant-logo-positive.svg +3 -0
- package/src/auth.ts +47 -6
- package/src/client/__tests__/avatar-upload.test.ts +186 -0
- package/src/client/__tests__/collection-form-bridge.test.ts +127 -0
- package/src/client/__tests__/collection-page-actions.test.ts +112 -0
- package/src/client/__tests__/collection-sort-menu.test.ts +78 -0
- package/src/client/__tests__/compose-bridge.test.ts +260 -0
- package/src/client/__tests__/compose-discovery.test.ts +155 -0
- package/src/client/__tests__/compose-shortcuts.test.ts +133 -0
- package/src/client/__tests__/confirm.test.ts +98 -0
- package/src/client/__tests__/custom-url-menu.test.ts +104 -0
- package/src/client/__tests__/form-enter-submit.test.ts +110 -0
- package/src/client/__tests__/post-form-bridge.test.ts +82 -0
- package/src/client/__tests__/sortable-list.test.ts +91 -0
- package/src/client/__tests__/toast.test.ts +46 -0
- package/src/client/archive-nav.js +1 -3
- package/src/client/avatar-upload.ts +66 -25
- package/src/client/collection-form-bridge.ts +32 -15
- package/src/client/collection-page-actions.ts +160 -0
- package/src/client/collection-sort-menu.ts +105 -0
- package/src/client/components/__tests__/jant-collection-form.test.ts +199 -51
- package/src/client/components/__tests__/jant-collection-sidebar.test.ts +250 -0
- package/src/client/components/__tests__/jant-compose-dialog.test.ts +2507 -342
- package/src/client/components/__tests__/jant-compose-editor.test.ts +484 -20
- package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +298 -0
- package/src/client/components/__tests__/jant-post-form.test.ts +9 -8
- package/src/client/components/__tests__/jant-post-menu.test.ts +325 -0
- package/src/client/components/__tests__/jant-settings-avatar.test.ts +27 -3
- package/src/client/components/__tests__/jant-settings-general.test.ts +312 -84
- package/src/client/components/collection-manager-types.ts +51 -0
- package/src/client/components/collection-types.ts +12 -10
- package/src/client/components/compose-types.ts +80 -13
- package/src/client/components/jant-collection-form.ts +338 -509
- package/src/client/components/jant-collection-sidebar.ts +461 -463
- package/src/client/components/jant-compose-dialog.ts +1566 -479
- package/src/client/components/jant-compose-editor.ts +531 -276
- package/src/client/components/jant-compose-fullscreen.ts +184 -112
- package/src/client/components/jant-confirm-dialog.ts +249 -0
- package/src/client/components/jant-nav-manager.ts +79 -103
- package/src/client/components/jant-post-form.ts +4 -1
- package/src/client/components/jant-post-menu.ts +583 -306
- package/src/client/components/jant-settings-avatar.ts +15 -9
- package/src/client/components/jant-settings-general.ts +444 -137
- package/src/client/components/nav-manager-types.ts +6 -3
- package/src/client/components/post-form-template.ts +2 -9
- package/src/client/components/post-form-types.ts +2 -4
- package/src/client/components/settings-types.ts +34 -2
- package/src/client/compose-bridge.ts +297 -171
- package/src/client/compose-discovery-bridge.ts +9 -0
- package/src/client/compose-discovery.ts +254 -0
- package/src/client/compose-launch.ts +98 -0
- package/src/client/compose-shortcuts.ts +61 -0
- package/src/client/confirm.ts +40 -0
- package/src/client/custom-url-menu.ts +128 -0
- package/src/client/form-enter-submit.ts +87 -0
- package/src/client/json.ts +37 -0
- package/src/client/multipart-upload.ts +51 -18
- package/src/client/post-form-bridge.ts +20 -14
- package/src/client/runtime-paths.ts +72 -0
- package/src/client/settings-bridge.ts +54 -10
- package/src/client/site-header-nav.js +84 -0
- package/src/client/sortable-list.ts +152 -0
- package/src/client/thread-context.ts +11 -5
- package/src/client/tiptap/__tests__/floating-position.test.ts +74 -0
- package/src/client/tiptap/__tests__/link-toolbar.test.ts +94 -0
- package/src/client/tiptap/__tests__/paste-media.test.ts +39 -0
- package/src/client/tiptap/bubble-menu.ts +98 -13
- package/src/client/tiptap/create-editor.ts +6 -0
- package/src/client/tiptap/extensions.ts +15 -4
- package/src/client/tiptap/floating-position.ts +167 -0
- package/src/client/tiptap/inline-image-upload.ts +73 -0
- package/src/client/tiptap/link-input-rules.ts +56 -0
- package/src/client/tiptap/link-toolbar.ts +60 -14
- package/src/client/tiptap/paste-media.ts +120 -0
- package/src/client/tiptap/slash-commands.ts +205 -52
- package/src/client/tiptap/toolbar-mode.ts +31 -0
- package/src/client/toast.ts +136 -16
- package/src/client/types/sortablejs.d.ts +4 -4
- package/src/client/upload-session.ts +270 -0
- package/src/client/upload-with-metadata.ts +10 -17
- package/src/client-auth.ts +38 -0
- package/src/client.ts +10 -29
- package/src/db/__tests__/d1-query.test.ts +84 -0
- package/src/db/__tests__/demo-canonical-snapshot.test.ts +78 -0
- package/src/db/__tests__/demo-env-loader.test.ts +114 -0
- package/src/db/__tests__/dialect.test.ts +42 -0
- package/src/db/__tests__/migration-artifacts.test.ts +82 -0
- package/src/db/__tests__/migration-rehearsal.test.ts +73 -0
- package/src/db/__tests__/migration-runner.test.ts +72 -0
- package/src/db/__tests__/migrations.test.ts +293 -8
- package/src/db/__tests__/r2-query.test.ts +102 -0
- package/src/db/__tests__/wrangler-config.test.ts +86 -0
- package/src/db/backfills/0000_normalize_legacy_time_zone_values.sql +38 -0
- package/src/db/backfills/README.md +11 -0
- package/src/db/dialect.ts +71 -0
- package/src/db/index.ts +84 -2
- package/src/db/migrations/0000_baseline.sql +35 -57
- package/src/db/migrations/0002_site_aware_core.sql +354 -0
- package/src/db/migrations/0003_fts_site_aware.sql +38 -0
- package/src/db/migrations/0004_perpetual_eternity.sql +29 -0
- package/src/db/migrations/meta/0000_snapshot.json +134 -138
- package/src/db/migrations/meta/0001_snapshot.json +135 -139
- package/src/db/migrations/meta/0002_snapshot.json +1717 -0
- package/src/db/migrations/meta/0003_snapshot.json +1717 -0
- package/src/db/migrations/meta/0004_snapshot.json +1897 -0
- package/src/db/migrations/meta/_journal.json +23 -2
- package/src/db/migrations/pg/0000_pg_site_aware_baseline.sql +306 -0
- package/src/db/migrations/pg/0001_pg_search_support.sql +8 -0
- package/src/db/migrations/pg/0002_breezy_lockjaw.sql +29 -0
- package/src/db/migrations/pg/README.md +8 -0
- package/src/db/migrations/pg/meta/0000_snapshot.json +2195 -0
- package/src/db/migrations/pg/meta/0001_snapshot.json +2248 -0
- package/src/db/migrations/pg/meta/0002_snapshot.json +2476 -0
- package/src/db/migrations/pg/meta/_journal.json +27 -0
- package/src/db/pg/__tests__/node.test.ts +58 -0
- package/src/db/pg/node.ts +151 -0
- package/src/db/pg/schema.ts +739 -0
- package/src/db/raw-query.ts +15 -0
- package/src/db/rehearsal-fixtures/demo-current.json +25 -0
- package/src/db/rehearsal-fixtures/demo-current.sql +142 -0
- package/src/db/schema-bundle.ts +12 -0
- package/src/db/schema.ts +309 -128
- package/src/db/sqlite/schema.ts +1 -0
- package/src/i18n/__tests__/context.test.tsx +35 -0
- package/src/i18n/context.tsx +10 -2
- package/src/i18n/locales/en.po +1778 -231
- package/src/i18n/locales/en.ts +1 -1
- package/src/i18n/locales/glossary.zh-Hans.yml +116 -0
- package/src/i18n/locales/glossary.zh-Hant.yml +116 -0
- package/src/i18n/locales/zh-Hans.po +1819 -272
- package/src/i18n/locales/zh-Hans.ts +1 -1
- package/src/i18n/locales/zh-Hant.po +1823 -276
- package/src/i18n/locales/zh-Hant.ts +1 -1
- package/src/index.ts +4 -0
- package/src/lib/__tests__/asset-path.test.ts +54 -0
- package/src/lib/__tests__/blurhash-placeholder.test.ts +25 -1
- package/src/lib/__tests__/collection-sort.test.ts +45 -0
- package/src/lib/__tests__/constants.test.ts +1 -0
- package/src/lib/__tests__/favicon.test.ts +1 -1
- package/src/lib/__tests__/feed.test.ts +147 -0
- package/src/lib/__tests__/hosted-control-plane.test.ts +106 -0
- package/src/lib/__tests__/hosted-domain.test.ts +78 -0
- package/src/lib/__tests__/hosted-signin.test.ts +103 -0
- package/src/lib/__tests__/icons.test.ts +14 -172
- package/src/lib/__tests__/image.test.ts +23 -4
- package/src/lib/__tests__/jant-branding.test.ts +160 -0
- package/src/lib/__tests__/markdown-to-tiptap.test.ts +27 -0
- package/src/lib/__tests__/page-title.test.ts +20 -0
- package/src/lib/__tests__/password.test.ts +60 -0
- package/src/lib/__tests__/post-display.test.ts +99 -0
- package/src/lib/__tests__/post-meta.test.ts +126 -0
- package/src/lib/__tests__/public-storage.test.ts +75 -0
- package/src/lib/__tests__/resolve-config.test.ts +156 -28
- package/src/lib/__tests__/schemas.test.ts +268 -22
- package/src/lib/__tests__/search-snippet.test.ts +43 -0
- package/src/lib/__tests__/site-resolution.test.ts +39 -0
- package/src/lib/__tests__/slug-format.test.ts +46 -0
- package/src/lib/__tests__/startup-config.test.ts +87 -0
- package/src/lib/__tests__/storage.test.ts +218 -1
- package/src/lib/__tests__/theme.test.ts +50 -13
- package/src/lib/__tests__/time.test.ts +44 -0
- package/src/lib/__tests__/timeline.test.ts +410 -4
- package/src/lib/__tests__/timezones.test.ts +51 -18
- package/src/lib/__tests__/tiptap-to-markdown.test.ts +23 -0
- package/src/lib/__tests__/url.test.ts +79 -1
- package/src/lib/__tests__/view.test.ts +74 -13
- package/src/lib/asset-path.ts +87 -0
- package/src/lib/blurhash-placeholder.ts +56 -1
- package/src/lib/collection-sort.ts +61 -0
- package/src/lib/confirm.ts +37 -0
- package/src/lib/constants.ts +3 -6
- package/src/lib/crypto.ts +47 -0
- package/src/lib/env.ts +245 -0
- package/src/lib/errors.ts +25 -9
- package/src/lib/favicon.ts +2 -1
- package/src/lib/featured-icons.ts +33 -0
- package/src/lib/feed.ts +73 -24
- package/src/lib/hosted-control-plane-sync.ts +27 -0
- package/src/lib/hosted-control-plane.ts +99 -0
- package/src/lib/hosted-domain-check.ts +98 -0
- package/src/lib/hosted-domain.ts +61 -0
- package/src/lib/hosted-signin.ts +115 -0
- package/src/lib/hosted-sso.ts +110 -0
- package/src/lib/icons.ts +10 -175
- package/src/lib/ids.ts +54 -0
- package/src/lib/image.ts +18 -7
- package/src/lib/jant-branding-generated.ts +947 -0
- package/src/lib/jant-branding.ts +520 -0
- package/src/lib/markdown-to-tiptap.ts +57 -0
- package/src/lib/media-helpers.ts +6 -2
- package/src/lib/navigation.ts +9 -2
- package/src/lib/page-title.ts +23 -0
- package/src/lib/pagination.ts +34 -0
- package/src/lib/password.ts +164 -0
- package/src/lib/post-display.ts +162 -0
- package/src/lib/post-meta.ts +95 -0
- package/src/lib/public-storage.ts +57 -0
- package/src/lib/render.tsx +22 -0
- package/src/lib/resolve-config.ts +78 -27
- package/src/lib/schemas.ts +264 -73
- package/src/lib/search-snippet.ts +110 -8
- package/src/lib/site-resolution.ts +28 -0
- package/src/lib/slug-format.ts +84 -0
- package/src/lib/slug.ts +1 -1
- package/src/lib/startup-config.ts +244 -0
- package/src/lib/storage.ts +722 -28
- package/src/lib/theme.ts +13 -6
- package/src/lib/time.ts +59 -15
- package/src/lib/timeline.ts +386 -62
- package/src/lib/timezones.ts +120 -50
- package/src/lib/tiptap-render.ts +1 -3
- package/src/lib/tiptap-to-markdown.ts +49 -0
- package/src/lib/upload.ts +216 -11
- package/src/lib/url.ts +210 -0
- package/src/lib/view.ts +87 -31
- package/src/middleware/__tests__/auth.test.ts +216 -14
- package/src/middleware/__tests__/error-handler.test.ts +37 -0
- package/src/middleware/__tests__/onboarding.test.ts +9 -0
- package/src/middleware/__tests__/secure-headers.test.ts +111 -0
- package/src/middleware/auth.ts +156 -28
- package/src/middleware/config.ts +29 -9
- package/src/middleware/error-handler.ts +16 -1
- package/src/middleware/onboarding.ts +15 -6
- package/src/middleware/secure-headers.ts +136 -25
- package/src/node/__tests__/cli-db-execute-file.test.ts +109 -0
- package/src/node/__tests__/cli-deploy.test.ts +124 -0
- package/src/node/__tests__/cli-export.test.ts +66 -0
- package/src/node/__tests__/cli-reset-password.test.ts +91 -0
- package/src/node/__tests__/cli-runtime-target.test.ts +37 -0
- package/src/node/__tests__/cli-site-selection.test.ts +133 -0
- package/src/node/__tests__/cli-site-snapshot.test.ts +636 -0
- package/src/node/__tests__/cli-site-token-env.test.ts +137 -0
- package/src/node/__tests__/runtime.test.ts +346 -0
- package/src/node/index.ts +18 -0
- package/src/node/request-handler.ts +668 -0
- package/src/node/runtime.ts +88 -0
- package/src/preset.css +73 -16
- package/src/routes/__tests__/compose.test.ts +77 -4
- package/src/routes/api/__tests__/attachments.test.ts +92 -0
- package/src/routes/api/__tests__/collections.test.ts +138 -24
- package/src/routes/api/__tests__/nav-items.test.ts +81 -20
- package/src/routes/api/__tests__/posts.test.ts +315 -57
- package/src/routes/api/__tests__/search.test.ts +25 -1
- package/src/routes/api/__tests__/settings.test.ts +380 -2
- package/src/routes/api/__tests__/upload-multipart.test.ts +216 -26
- package/src/routes/api/__tests__/uploads.test.ts +420 -0
- package/src/routes/api/attachments.ts +24 -0
- package/src/routes/api/collections.ts +59 -28
- package/src/routes/api/custom-urls.ts +6 -5
- package/src/routes/api/export.ts +37 -7
- package/src/routes/api/internal/__tests__/api-tokens.test.ts +55 -0
- package/src/routes/api/internal/__tests__/sites.test.ts +472 -0
- package/src/routes/api/internal/__tests__/uploads.test.ts +131 -0
- package/src/routes/api/internal/api-tokens.ts +17 -0
- package/src/routes/api/internal/sites.ts +241 -0
- package/src/routes/api/internal/uploads.ts +37 -0
- package/src/routes/api/nav-items.ts +24 -15
- package/src/routes/api/posts.ts +222 -74
- package/src/routes/api/search.ts +50 -9
- package/src/routes/api/settings.ts +141 -7
- package/src/routes/api/upload-multipart.ts +105 -16
- package/src/routes/api/upload.ts +90 -21
- package/src/routes/api/uploads.ts +247 -0
- package/src/routes/auth/__tests__/dev.test.ts +135 -0
- package/src/routes/auth/__tests__/hosted-sso.test.ts +136 -0
- package/src/routes/auth/__tests__/setup.test.ts +73 -49
- package/src/routes/auth/dev.ts +72 -0
- package/src/routes/auth/hosted-sso.ts +64 -0
- package/src/routes/auth/reset.tsx +41 -7
- package/src/routes/auth/setup.tsx +37 -38
- package/src/routes/auth/signin.tsx +36 -6
- package/src/routes/compose.tsx +25 -38
- package/src/routes/dash/__tests__/font-theme.test.ts +45 -34
- package/src/routes/dash/__tests__/settings-avatar.test.ts +24 -11
- package/src/routes/dash/custom-urls.tsx +245 -67
- package/src/routes/dash/settings.tsx +530 -139
- package/src/routes/feed/__tests__/rss.test.ts +200 -51
- package/src/routes/feed/__tests__/sitemap.test.ts +64 -0
- package/src/routes/feed/rss.ts +112 -48
- package/src/routes/feed/sitemap.ts +16 -6
- package/src/routes/hosted/__tests__/domain-check.test.ts +94 -0
- package/src/routes/hosted/domain-check.ts +39 -0
- package/src/routes/pages/__tests__/collections.test.ts +27 -21
- package/src/routes/pages/__tests__/featured.test.ts +9 -2
- package/src/routes/pages/archive.tsx +79 -33
- package/src/routes/pages/brand.tsx +119 -0
- package/src/routes/pages/collection.tsx +143 -59
- package/src/routes/pages/collections.tsx +46 -20
- package/src/routes/pages/featured.tsx +31 -39
- package/src/routes/pages/home.tsx +50 -25
- package/src/routes/pages/latest.tsx +20 -4
- package/src/routes/pages/new.tsx +10 -6
- package/src/routes/pages/page.tsx +27 -53
- package/src/routes/pages/partials.tsx +83 -0
- package/src/routes/pages/search.tsx +11 -9
- package/src/routes/pages/theme-sample.tsx +98 -0
- package/src/runtime/__tests__/node.test.ts +258 -0
- package/src/runtime/cloudflare.ts +102 -0
- package/src/runtime/index.ts +14 -0
- package/src/runtime/node.ts +187 -0
- package/src/runtime/site.ts +169 -0
- package/src/services/__tests__/api-token.test.ts +5 -2
- package/src/services/__tests__/auth.test.ts +348 -0
- package/src/services/__tests__/collection.test.ts +154 -16
- package/src/services/__tests__/custom-url.test.ts +10 -3
- package/src/services/__tests__/hosted-handoff.test.ts +123 -0
- package/src/services/__tests__/media.test.ts +256 -33
- package/src/services/__tests__/navigation.test.ts +89 -4
- package/src/services/__tests__/post-timeline.test.ts +111 -2
- package/src/services/__tests__/post.test.ts +463 -38
- package/src/services/__tests__/search.test.ts +145 -14
- package/src/services/__tests__/settings.test.ts +162 -2
- package/src/services/__tests__/site-admin.test.ts +48 -0
- package/src/services/__tests__/site-profile.test.ts +175 -0
- package/src/services/api-token.ts +44 -11
- package/src/services/auth.ts +211 -9
- package/src/services/bootstrap.ts +68 -0
- package/src/services/collection.ts +501 -100
- package/src/services/custom-url.ts +42 -12
- package/src/services/export.ts +2269 -320
- package/src/services/hosted-handoff.ts +184 -0
- package/src/services/index.ts +110 -12
- package/src/services/media.ts +309 -39
- package/src/services/navigation.ts +141 -20
- package/src/services/path.ts +45 -9
- package/src/services/post.ts +1529 -246
- package/src/services/search.ts +222 -29
- package/src/services/settings.ts +202 -48
- package/src/services/site-admin.ts +825 -0
- package/src/services/site-member.ts +74 -0
- package/src/services/site-profile.ts +52 -0
- package/src/services/site.ts +250 -0
- package/src/services/upload-session.ts +707 -0
- package/src/style-cjk-tc.css +3 -0
- package/src/style-cjk.css +3 -0
- package/src/styles/components.css +647 -16
- package/src/styles/fonts/latin.css +4 -0
- package/src/styles/fonts/noto-serif-sc/400/02629e5d0a9860b7fe32ec1f0563213a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/031089da45fbfb7dc18ac827bef4c56e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/03ac785139320b7b13bac9c150bf72bf.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/0b1f83a3c7e715560a55ad9eb0fb1c94.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/14b040a2dda256936bc7b3470e548394.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/189f272ea2600c74d576b7b15c014922.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/1fbccc182322b513f57cd156a9a491b0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/21e0a71d86be7b8a9e812e7af09dd061.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/265e048cc9f2f8a711ba585a534d5351.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/2ae2ca951489c9d50cde5b36a2a5515b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/2ba802b14f21a58fc61606c88fa93373.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/2deb444546774c3a3ab38c75eb69cdfb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/2fbccf9a3853eb59db1a825e044515fd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/2ff009fa8701505d7f3dc6c83763f019.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/31424fe5d54692e7c8b38021ccb8597c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/360c190344c26278bbc50e2f4d6a2b3f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/39b0bbc910af9d2d6dcd8bd4abd6387d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/3adc8f6350cf5067bcb6dc5e44c45d41.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/3bed5bd57de8f738e53cddaea88983d9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/3c201fd8d1bb20abe7d06b940e83a4d9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/3d385ea0880df7204258e290648ec012.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/3dc1a4f0d7af59e16b5162a2b077a442.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/3dc68e473fe23bd076dd46785cd23583.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/435b7dca567809813fcb395a27ed83a0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/43693195e775d515689fa035394067fd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/43fb49e5b79ee7e553869d84e6e08b1e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/44dcbbc3cc8f22e613b342d691511ab6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/474fac21b12b7efd71f7c321578878b0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/4a23fe6e82fd496b5eb20401b6164efe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/4bc743968cf1c3ce5711de67ef1ccc4d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/4cf0f292f3358bd2f73b1cf4ec1476f3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/501f66f24bce8234441954de1b568403.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/53a88404451448cd2e620a0ca0e45a20.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/557cd00c5d6827e13d72a0c71b23587b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/563fa31542d553f25abab65cf7f81e1d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/56e1c4734bbbb38af2fbc262bf6e98f2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/5947f5da5da9a352a2b534ee64bfc29a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/5a10741e41259e235841440394c0763d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/60d8b0805a0a8c54a6cca216004beff5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/61bf4287453da4025d03fa6b2dba66ca.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/638369541268ed5a10af97ad77498c73.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/687d0f0f90a9b23e40102e16ad8e9836.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/6e2164fad867d166de2e5b274f04a563.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/6eefc9d430171c1e1e4034ecadee31c8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/71eafb8fbe3a734283517e230ad8b6db.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/751f54dbb115140d5b645a6ba4aff5d3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/7609e7e74dd4d916a7abc7ecc7d95f7e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/76b9d6fe838ae4151d95ce7200aa2bf6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/78ce29fed872e44fc9014d94875d2aac.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/79a85a253e9b3f12d2e2cb15e16b3003.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/7caa14a095a6bc313aab780fe4ff7999.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/7d138084cf03c14116b11297fce0e3e3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/880162ae92cd9e120eb4e4e11fae459d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/8f2b960c2823670e94f5b08aa65657e6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/8f89f57230d184f92a36e241874229d7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/9180de34b48b325200a97e267befff32.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/95df3b9f681d9df411c30aea5b24f2e0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/975af5a496e8d87d821910aa9fe4d598.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/97a874bbf55ce89a4ab7cd27c7e938b1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/9fd53607094e329fa8e5c785b3ff0f1a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/a578742770fcd2226e3c45b5b6efdcb0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/ae401fb4db80d5ff5cd3f8d9bc811070.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/b0ab3a7f319ce6dd3c9a4de2674e7c72.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/b159deb135e9946eea0572d52778170b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/b91450304d9ac44f5c6e0da0792e055d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/baa325551b381c5e035ef143e56d4abe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/c0c7836749e585cee24ab2f8457c5b01.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/c2ac4ef1860812036ca2b8c4e4089bdc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/c31019c08bd22464f7a88f090281404c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/c57ee3b49b7e45b995539a6b2c51f138.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/cd75ca47da9ae4c0899e37d4c543319b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d12ce1d8445213317f9163283e58a05d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d28fb13acf9ced9f0657fd4012c81cd2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d3714e6b90de8e2085dfb2514464dd6a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d3beff96216c8af1aa79246476b6a323.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d3e311f30c811dc339c262a79a51877e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d51f4cdc83711e510f5d25f03235597e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/d5df4a8dfd4328c67d933b3912c6ad0f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/dccda6a2e2db3b530788bdfa2acd1979.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/f5237486197aeff59341a1ff38b8eff8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/f553d54ef931066712d8f3f0ce018e1b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/f649cba8e14c33d6bf2265483b14b895.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/f6839df1bf7cb4dc8d27e5ea55bbe633.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/f6b7304e028980f77a7f7007bb540abd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/f8db8bef0a6e1178835d350ae0d384a1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/fb4649a82c50620773d79820e2e5ff13.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/400/fb9402d6c6357a825affc402f14d5a7e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/0041f681602cc834bb5c55ced0155b8e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/00c9ac960d866ffaf8a866e5939024e2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/02e48e353415a00e0f556608cab33a43.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/02faf6bb0ab4d56ada037c0bbaf9b9f7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/057a3d44d7fc606f113d863376d0ecf0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/10f2b44b3711d3f5bdcc30d373b543d1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/14c1506106d92621bafb11016735194e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/154a2c266902003bd8b7449386b10776.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/19e39850472250bfdbce654d30859879.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/1b5d0d740450fb996749464c9b882025.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/1bca0a2a8840ad0ee9414940593db144.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/1cda27dcaab977ae4ef5d5ab2a10ae03.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/1f4bc38a1c50f55f335f5411cae47696.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/2022cf097cb952d9fe75b53b4587d2c3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/2240a3c43ca5ef59ae3c348c7884792f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/280e3d2b58e9ad3501816072e01b0c13.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/2874d07e228da9583b0e73646dacd498.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/29d49891713a2785a3a383001cf58c59.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/2d81eb6ab0ebbc0cabfb3a3341ba8800.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/3179006d1c7ebfa50d27482a2859d9a0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/34c2edb3c37f71258f5c4a31091f0c6c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/389a950f2a1211946d294716e679e381.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/42a74b6a625bbf0a9616ed4db3152c88.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/457485e72835364662dfead6281638c1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/488846410760fe128dae939836ca5423.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/48eb0a91e50c7f026e248c64145e72af.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/4b0e79ba18b2ce424fa93e84996d7cba.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/54e301f412730f391225db59dae1c8d5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/597d69d0710e0178b162afb0a0c20401.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/5cc23a76e122d0ad2f7cede41bc35b27.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/5d48855bed5f3554eff91b573d7376ac.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/5ddcbe564b29ef08632e1aeb33455435.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/605667a998e91e2b6a4a3cd7c31fe5a9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/67f32ceea9e78e5109f87724ad886010.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/68f2fab82ec8e9291f08c3145111549c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/69519ada3f3f74ca20aacb8af48ab6b4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/6a6e884fb2b65ec5b4a3d5ecd0d01a6a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/6e1a8b45b01939088c3a8cfcf8c10681.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/70adaf50c56d5ff859c64d35e0f1e34e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/72ee453ac0e19bd2c631c8921c44e3de.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/753b5f6fb254bacb6618ace25af3df60.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/76d4244186d118eea245d1385a4de2ec.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/7a86b155111ba20f3e87306ff6beac77.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/7b1e76975b0984e6f83e3f9f8069e784.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/7b6c60131822a0e4d36d980d52509d4e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/7cbda564cb2dd4799ab9e89d51286aa7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/7f60eefa15956d6f06dd92404887d58c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/7f8c15e0ecb102738981d9fa4cb6b921.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/812b5a4b87f3a7b4afc1cfebc864f413.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/812dfb7f8144d01b3cc9d5ce0b472f40.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/84742b1ede4f0bb6d27131298eba21b4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/8555f0285e3d28e95e2fc0ccccd9caff.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/8e04e64c8f68d292a18d4160fbde8671.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/958efb9b2fa2ea0008ffef009885f9f8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/9ca9b71010a5faeee7047ef97aeee13b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/9cd0b77920b9d6c64eb686493123fc76.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/9ebd27835ffcbd794e67151ab046ce68.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/a077f51cfb5cffb4ff4d8e229c0e9e79.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/a397997b579d3945c9c70a979c17a8ad.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/a68d9d5027803832bb28e78cdcd04949.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/a904b05966368bcf90b632c7c2e5f76b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/aa218a2c45f3749537ce876201e5152b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/aa28db16818f9eaa8c817f289e1c3270.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/aa96d698491c2540e2dcf7009c65c456.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/ae25c41034ddc1a9e0b41f5034c9aa4b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/ae289ae3f8cdb54a3a6c07174517afec.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/b02dfa2aa52cbdb1b2f11a9f44335469.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/b2e326f7f9b807451bf9c745df747efe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/c33c59feccf391f0c5f1f5d24e36d1fe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/c82fd9456d7465b5e5bd3659e9b14c55.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/c90b7b65d2b9696fbf3a506738f94d68.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/cba6ad3981cb7861428d4be169ee8124.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/cc26525aa2af1f0b929af32ce50a7fba.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/cd0e7b51eddb22a77a09b025c0281434.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/cd6d074f3957d58bac58437fc97e5e33.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/cef249b6d013fb0cc0d574176bc23811.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/d0bd387fda28e58d3c9b3efa2468dd8a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/da93ae099ff3b7aae27b3f674d3fc721.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/e264213b9e102dabc603adb6e4fda5e6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/e7c7ef3669ae48c0a736f06ca471e1d7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/e81a742cacef744130c40de1b90837d8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/e8b755172122d1d0a5dd453e96b0ff24.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/e99280299c305402eaa5271a3e36c49b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/e9c66b085052ece66bfadf45f711d3e1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/ed7c6dafaa6d8bcf015ef0ca574837df.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/f2900a1d30c3a33129f4e2225669bd0e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/fa7d3b99744d7f2dc9e00864a97a62d6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/700/fb0e90665980954719c2eb685b130bc0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-sc/noto-serif-sc.css +3615 -0
- package/src/styles/fonts/noto-serif-tc/400/008ea9091e332c639ceb18874eacd60c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/053bd3d7aec0040d0cc50c261a1f4e3e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/0713613227cc4c686c45a279f8bdc166.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/0e97f44ebc65384c346fe19bcc52fa20.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/1139d32ae2bdeb26c0c8f31330aa9a9f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/15f8c0df47fd639d1b0d9bd5cf507c9b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/1668bd859ffe15bed7d5563117d8d5fb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/190e3f8632494e7c095117f26b1c811e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/19ad151c22ce1befe0a9ea643fbee570.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/1c820b5295868008ca7c78afa5b7655d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/1fbe225742c69f4ba9ea5f74922f0ca1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/2a7cedfcd6e4c7cec36f4fd7b0f329c2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/2acea04a920f6af31e7db97052f563c6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/2e98b666924b8e0a09d1aeeefd24bdd2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/2fd3fceb6faed5e3db768e88d7614dca.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/35cf5dd04315e0b906e1a413d7905a2f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/387c811226f303af62f1e21aae6f5c83.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/3b41385fc27419c19822060daa0b5cb3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/3cbe4a697fd595ef42c899de7d3e5445.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/3d83dacbbec3d8532ae9afede21f3aab.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/47479c470fae70f10b7c964a7ecbf274.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/4dc0728df0f2ba70796f45f05654c7ba.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/4dc2bc2c55b47f57d13b63aa6b1c8bd4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/4e1cc6aafb411b572c8d3511e925ecf1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/5227dbe9933760a48baff21ebd13fc98.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/526b263e72c189f4b065738aaa6d423a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/54da934819a917f561b439bfd10f88b6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/5bfc7a121c35ae42623ef804fb525e0e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/5f90024544c2907c6c0203c6210c50be.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/649b12d7cee7bb981842946e4547e6ca.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/653bef2ed891ae48d8ed712283080649.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/67d2a81f06ba352f17fbdc3a5e6ea59e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/68304f3229cf763465f044fccb5892c0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/688a88911e4da17b609196a959b8b930.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/6db6ddf72c38a78ce44c1327701152e1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/77a7533bd21ccd33192d142a93555aa8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/7d65a3d6a65050eb5e6eca43398aeba4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/7dfc711962c8771f97e7c8898a6bcb65.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/7ef123b62d530fcba73974fa265e0aae.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/80466082a896fd328f30a78593c7c568.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/8a3c84b0df36f851f5fea75ee8757951.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/8b0c8c9f8cfa9fa090d97c5a5efb1f4c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/8dc035a34c76e6515ca203e2df182588.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/8eb06109812cb80be44f47b8179c2709.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/904324af375d5fd370af1054355a050e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/911a2092d64d6d6494b254d819af2b91.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/9de02d745b8e25c6411fb152fb067748.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/9eb33a430058d839ebbe2af4b2e0daa9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/9f5a73aa8ba417688019d628f334db07.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/a0f0c06d5c7a3ffa97706178cce212a8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/a38c1830367f784181b6f544b0b11bbd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/a9cf85e27428c14351d30eac8cbc8d91.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/aa0ce6740f301351761a0615cc8b2e99.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/bc3f0cb8b55ee11d32b94ca488976f8d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/bcb3307527d6d0033bf0f17660b91e71.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/bf1acc86e17b4229c548828a9d6f455d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/c3fbc1f2557c343863a10698f8c966a2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/c5c1c0be944ea39a3f50a02d32f5b759.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/c5f1075caf6d1344ee720de85114a521.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/cae29b3f8951eaf20d2f61c2206e28d9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/d043b8d7a48bb0ac59ee1f1477d88eee.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/d320b000b5978c7251148a6a154741b8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/da13b136efb1d1e4c76575af8f79a698.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/da2cf0ec56bf69374ee37764c7e3ea3d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/daf62255dd60679946f28c442ca62533.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/dd01a1035345f6921a48525b8ce08f06.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/e4fb59479cedc87ba79785590bf861ca.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/e5d00355f73293d40b61299459d17ca5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/e647b8d2efc501c0cc0e407249cc7135.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/e6e60ffb2ebd1828628764b507060aea.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/f00eb499abb94fa7b799d6d8c9b050e9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/f7d36ffff7a75c9c6216d576a57dd00d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/f7f3f63e7a149cd89eccab3b52171d05.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/fcc41f6a067ddd658bba5c9dff234a32.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/400/fd6ad889fcf3583bd9b0b6db53aad434.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/0c055db157e7a13f3103cc2a6b67fec3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/0d3f5cc265cb6c439c517f2c4cebbddf.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/1259e5825b314fe2b8bb96d6e8069ee5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/12c518ebfe62818af550c08947e359e7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/145831a59caa06d894022fe60212ed21.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/169a096e61d38a773216f51d1ec2cc06.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/1884a2b22d314c7d57707f03aec348e0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/1e2640116bbba817f43c43cc69371cf1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/2573703213da30d3ba18925b100b2c2b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/26839c0e47c73514b8d8f660d24d6b19.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/2a22e14a9ad53f2abb3c7e85017b7d12.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/2b3e8c5703b91f39f6027f43f0da6f4b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/2f27ee4fb2cf6a280e110e09c18ef73e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/31342cebfa5ea7fac06b4ea372d96bc5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/375329ba0b50b94b35006498e555867c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/427577dcb707d1d35eebd155b4222aa7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/450a5b53be0a8a778bb0b623e86b652f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/477866c8396474a17317dcac3e7a014f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/478ebdaadda7775c391c5dcab4e697df.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/48d6a97a185c799be4fe67aaf7edf213.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/490edb9fc8a4356aea556eed32287464.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/4c4bdd0b3f3a52e28f3b643c1c5d43be.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/4c96411f3693a9a8657a9c1190f82bce.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/4c9aa12aba2a6a57410eacaff7427916.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/4cca7233bf8ce5dec2e5d146b993d626.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/4d0a9128d06ea857f203bf5d007b1ab9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/4e5384920bbb155d9d8d74887b09ea5b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/50cfd672bfa62512ba090420acf35c87.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/551b1d7a0b80c8d42af09863cdca7f01.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/555d990ab3fd7d3d66c6d1fa9a82fec5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/5979c33a7eb5963bf8e83e46931b5fb5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/59966ee0b069b577510fe68c350da0ee.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/60a14064ed334f0155795d795e926abe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/611b62d5fd9698d9b5ce495ba6f14c93.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/6e83fe0b6e708eaf1c3003d6dee11488.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/70861376e5d4f92f8aa7aa1b2749b617.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/7124d150570d39ced8d45507dc11ca1e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/79a7fdf7d9c722b5723ae25e6ff8e203.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/8c8393bc875f1ee36697a2113f4421ea.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/8e6c9bb43afb8cbbff7cf1055e67c9bd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/90ac4f9d2aa02afdace2843b49fc18bb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/90b6f57d77847f512fd11db74fa912f1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/913759e6690f9fc0746a20b96f4bdcb4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/9154e26efe532a85a27d80902f5a2d6c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/94e7ed67f1557b76fead6b6e456a0415.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/95127a92346c04fec1fa81d6295b0a28.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/9fbc06b2e3ff16b9d705c76db563ef17.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/a3b929542e6c5a0644b73a7c8a8b6c03.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/a8857f5d478f101c053ba02d2f223e90.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/aa64c9953af43ca65832f413895bb433.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/ada8f0241244c60ec8d3d59ad37f20a5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/b341de0bc0bfe194a6c28dcfb566029e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/b846c293981ca5429eabaa967f222f26.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/be64f9379412876e00fd3a0bfa6b6fe9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/befed8a4fa817773fa7109db6fe07f56.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/c09ee2b219982f8d46ad9968b7e6e0ba.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/c39ec937c6a8d124e8b68cf829ea5ad4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/c3fd21315345ae541f6e98067059fa19.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/c568a16e3168ceb1f191b70022c492ea.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/c5e66d60be3375835bbd8d6b797f6eac.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/cd10a3af2133805d8c92104d1ee6ff18.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/d15a3317942b7d31978a759fbf2222c8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/d740dc2e854aaa7b3dcdd3ed25455eeb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/d8325ba7ae651bc30440905bd67b95f1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/e2204cf85edcb96c5de5c3dcf240da9d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/e3e913e145ddcd9323b2a0972967feb6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/f2fb1f1fbf7e44afb53c672ec286a22e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/f372129c60aaece937cf7b91ee75c9b8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/f5d7487963d43c89da63aaf10f2e6fb7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/f75496953a40ff241178240209f56990.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/f92d74d1d217d21b39075ff23f79f7fd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/f9d6d981d8b87b3e469027277f585741.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/fa8ed469ef290bfeb571418fe0abb628.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/fb61b690208eff56e6d8432951270901.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/700/ff0937ad63cda71ff420945ead55ab4d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-tc/noto-serif-tc.css +3104 -0
- package/src/styles/tokens.css +42 -7
- package/src/styles/ui.css +7586 -3401
- package/src/types/app-context.ts +7 -0
- package/src/types/bindings.ts +77 -27
- package/src/types/config.ts +104 -4
- package/src/types/constants.ts +43 -4
- package/src/types/entities.ts +63 -4
- package/src/types/operations.ts +45 -15
- package/src/types/props.ts +46 -9
- package/src/types/views.ts +51 -8
- package/src/ui/__tests__/color-themes.test.ts +81 -0
- package/src/ui/__tests__/font-themes.test.ts +76 -7
- package/src/ui/color-themes.ts +424 -238
- package/src/ui/compose/ComposeDialog.tsx +149 -91
- package/src/ui/compose/ComposePrompt.tsx +20 -3
- package/src/ui/dash/ActionButtons.tsx +16 -2
- package/src/ui/dash/DangerZone.tsx +10 -1
- package/src/ui/dash/StatusBadge.tsx +3 -3
- package/src/ui/dash/appearance/AdvancedContent.tsx +9 -2
- package/src/ui/dash/appearance/ColorThemeContent.tsx +326 -63
- package/src/ui/dash/appearance/FontThemeContent.tsx +75 -17
- package/src/ui/dash/appearance/NavigationContent.tsx +48 -21
- package/src/ui/dash/settings/AccountContent.tsx +7 -2
- package/src/ui/dash/settings/AccountMenuContent.tsx +242 -111
- package/src/ui/dash/settings/ApiTokensContent.tsx +38 -8
- package/src/ui/dash/settings/AvatarContent.tsx +1 -1
- package/src/ui/dash/settings/DeleteAccountContent.tsx +300 -0
- package/src/ui/dash/settings/GeneralContent.tsx +120 -6
- package/src/ui/dash/settings/SessionsContent.tsx +23 -5
- package/src/ui/dash/settings/SettingsDirectory.tsx +99 -0
- package/src/ui/dash/settings/SettingsRootContent.tsx +176 -221
- package/src/ui/feed/CuratedThreadPreview.tsx +73 -0
- package/src/ui/feed/LinkCard.tsx +52 -36
- package/src/ui/feed/NoteCard.tsx +10 -4
- package/src/ui/feed/PostStatusBadges.tsx +4 -21
- package/src/ui/feed/QuoteCard.tsx +11 -3
- package/src/ui/feed/ThreadPreview.tsx +11 -5
- package/src/ui/feed/TimelineFeed.tsx +53 -15
- package/src/ui/feed/__tests__/timeline-cards.test.ts +172 -0
- package/src/ui/feed/thread-preview-state.ts +2 -4
- package/src/ui/font-themes.ts +211 -43
- package/src/ui/layouts/BaseLayout.tsx +161 -30
- package/src/ui/layouts/SiteLayout.tsx +51 -18
- package/src/ui/layouts/__tests__/BaseLayout.test.tsx +169 -0
- package/src/ui/pages/ArchivePage.tsx +320 -120
- package/src/ui/pages/BrandPage.tsx +927 -0
- package/src/ui/pages/CollectionEditorPage.tsx +155 -0
- package/src/ui/pages/CollectionPage.tsx +410 -18
- package/src/ui/pages/CollectionsPage.tsx +57 -57
- package/src/ui/pages/FeaturedPage.tsx +24 -3
- package/src/ui/pages/HomePage.tsx +13 -0
- package/src/ui/pages/PostPage.tsx +13 -4
- package/src/ui/pages/SearchPage.tsx +12 -2
- package/src/ui/pages/ThemeSamplePage.tsx +1160 -0
- package/src/ui/shared/AdminBreadcrumb.tsx +22 -6
- package/src/ui/shared/CollectionDirectory.tsx +117 -0
- package/src/ui/shared/CollectionsManager.tsx +277 -0
- package/src/ui/shared/DecorativeQuoteMark.tsx +32 -0
- package/src/ui/shared/HomePageBranding.tsx +22 -0
- package/src/ui/shared/JantBrandMark.tsx +35 -0
- package/src/ui/shared/MediaGallery.tsx +106 -36
- package/src/ui/shared/PaginatedPageHeader.tsx +49 -0
- package/src/ui/shared/Pagination.tsx +2 -6
- package/src/ui/shared/PostFooter.tsx +130 -67
- package/src/ui/shared/__tests__/home-page-branding.test.tsx +14 -0
- package/src/ui/shared/__tests__/media-gallery.test.ts +82 -0
- package/src/ui/shared/__tests__/navigation-labels.test.ts +103 -0
- package/src/ui/shared/__tests__/pagination.test.ts +18 -1
- package/src/ui/shared/__tests__/post-footer.test.ts +122 -0
- package/src/ui/shared/collection-management-labels.ts +161 -0
- package/src/ui/shared/navigation-labels.ts +126 -0
- package/src/vendor/datastar.js +1955 -7
- package/dist/client/assets/heic-to-DIRPI3VF.js +0 -1
- package/dist/client/assets/module-RjUF93sV.js +0 -716
- package/dist/client/assets/native-48B9X9Wg.js +0 -1
- package/dist/client/assets/url-FWFqPJPb.js +0 -1
- package/dist/client/client.css +0 -1
- package/dist/client/client.js +0 -33565
- package/src/client/components/collection-sidebar-types.ts +0 -43
- package/src/client/tiptap/paste-image.ts +0 -129
- package/src/lib/emoji-catalog.ts +0 -963
- package/src/lib/icon-catalog.ts +0 -5213
- package/src/ui/shared/CollectionsSidebar.tsx +0 -294
|
@@ -10,14 +10,24 @@
|
|
|
10
10
|
|
|
11
11
|
import { LitElement, html, nothing } from "lit";
|
|
12
12
|
import { classMap } from "lit/directives/class-map.js";
|
|
13
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
13
14
|
import { unsafeSVG } from "lit/directives/unsafe-svg.js";
|
|
14
15
|
import type { Editor, JSONContent } from "@tiptap/core";
|
|
15
16
|
import Sortable from "sortablejs";
|
|
17
|
+
import {
|
|
18
|
+
captureSortableRevertNextSibling,
|
|
19
|
+
getSortableMove,
|
|
20
|
+
readSortableDataIds,
|
|
21
|
+
responsiveSortableOptions,
|
|
22
|
+
revertSortableDomMove,
|
|
23
|
+
setSortableDraggingState,
|
|
24
|
+
} from "../sortable-list.js";
|
|
16
25
|
import type {
|
|
17
26
|
ComposeFormat,
|
|
18
27
|
ComposeLabels,
|
|
19
28
|
ComposeAttachment,
|
|
20
29
|
AttachedTextItem,
|
|
30
|
+
ComposeFullscreenOpenDetail,
|
|
21
31
|
} from "./compose-types.js";
|
|
22
32
|
import {
|
|
23
33
|
UPLOAD_ACCEPT,
|
|
@@ -27,6 +37,99 @@ import {
|
|
|
27
37
|
import type { MediaCategory } from "../../lib/upload.js";
|
|
28
38
|
import { showToast } from "../toast.js";
|
|
29
39
|
import { createTiptapEditor } from "../tiptap/create-editor.js";
|
|
40
|
+
import { uploadAndInsertInlineImage } from "../tiptap/inline-image-upload.js";
|
|
41
|
+
import { isSafeAbsoluteUrl } from "../../lib/url.js";
|
|
42
|
+
|
|
43
|
+
interface ComposeFilePickerCloseDetail {
|
|
44
|
+
cancelled: boolean;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const COMPOSE_TOOLBAR_ICONS = {
|
|
48
|
+
media: `
|
|
49
|
+
<rect x="2.75" y="3" width="12.5" height="11.25" rx="3" />
|
|
50
|
+
<circle cx="6.15" cy="6.85" r="0.85" fill="currentColor" stroke="none" />
|
|
51
|
+
<path d="M3.6 11.95 6.75 8.8c.42-.42 1.11-.42 1.53 0l1.4 1.4" />
|
|
52
|
+
<path d="m8.95 10.2 1.38-1.38c.46-.46 1.21-.46 1.67 0l2.4 2.4" />
|
|
53
|
+
`,
|
|
54
|
+
attachedText: `
|
|
55
|
+
<rect x="3" y="2.75" width="12" height="12.5" rx="3.1" />
|
|
56
|
+
<path d="M5.85 6.35h6.3" />
|
|
57
|
+
<path d="M5.85 9h6.3" />
|
|
58
|
+
<path d="M5.85 11.65h4.35" />
|
|
59
|
+
`,
|
|
60
|
+
emoji: `
|
|
61
|
+
<circle cx="9" cy="9" r="6.8" />
|
|
62
|
+
<path d="M6.2 10.55c.52 1.08 1.46 1.8 2.8 1.8s2.28-.72 2.8-1.8" />
|
|
63
|
+
<circle cx="6.5" cy="7.15" r="0.7" fill="currentColor" stroke="none" />
|
|
64
|
+
<circle cx="11.5" cy="7.15" r="0.7" fill="currentColor" stroke="none" />
|
|
65
|
+
`,
|
|
66
|
+
rate: `
|
|
67
|
+
<path
|
|
68
|
+
d="m9 1.95 2.08 4.21 4.65.67-3.36 3.29.8 4.63L9 12.55l-4.17 2.2.8-4.63-3.36-3.29 4.65-.67z"
|
|
69
|
+
fill="currentColor"
|
|
70
|
+
fill-opacity="0.12"
|
|
71
|
+
stroke="none"
|
|
72
|
+
/>
|
|
73
|
+
<path
|
|
74
|
+
d="m9 1.95 2.08 4.21 4.65.67-3.36 3.29.8 4.63L9 12.55l-4.17 2.2.8-4.63-3.36-3.29 4.65-.67z"
|
|
75
|
+
stroke-width="1.6"
|
|
76
|
+
/>
|
|
77
|
+
`,
|
|
78
|
+
title: `
|
|
79
|
+
<rect
|
|
80
|
+
x="3.35"
|
|
81
|
+
y="3.2"
|
|
82
|
+
width="11.3"
|
|
83
|
+
height="2.05"
|
|
84
|
+
rx="0.68"
|
|
85
|
+
fill="currentColor"
|
|
86
|
+
stroke="none"
|
|
87
|
+
/>
|
|
88
|
+
<rect
|
|
89
|
+
x="7.8"
|
|
90
|
+
y="4.6"
|
|
91
|
+
width="2.4"
|
|
92
|
+
height="9.45"
|
|
93
|
+
rx="0.78"
|
|
94
|
+
fill="currentColor"
|
|
95
|
+
stroke="none"
|
|
96
|
+
/>
|
|
97
|
+
<rect
|
|
98
|
+
x="6.75"
|
|
99
|
+
y="13.15"
|
|
100
|
+
width="4.5"
|
|
101
|
+
height="1.12"
|
|
102
|
+
rx="0.56"
|
|
103
|
+
fill="currentColor"
|
|
104
|
+
stroke="none"
|
|
105
|
+
/>
|
|
106
|
+
`,
|
|
107
|
+
fullscreen: `
|
|
108
|
+
<path d="M5.85 3H3v2.85" stroke-width="1.48" />
|
|
109
|
+
<path d="M12.15 3H15v2.85" stroke-width="1.48" />
|
|
110
|
+
<path d="M3 12.15V15h2.85" stroke-width="1.48" />
|
|
111
|
+
<path d="M15 12.15V15h-2.85" stroke-width="1.48" />
|
|
112
|
+
`,
|
|
113
|
+
} as const;
|
|
114
|
+
|
|
115
|
+
function renderComposeToolbarIcon(
|
|
116
|
+
icon: (typeof COMPOSE_TOOLBAR_ICONS)[keyof typeof COMPOSE_TOOLBAR_ICONS],
|
|
117
|
+
) {
|
|
118
|
+
return html`<svg
|
|
119
|
+
class="compose-tool-icon"
|
|
120
|
+
width="18"
|
|
121
|
+
height="18"
|
|
122
|
+
viewBox="0 0 18 18"
|
|
123
|
+
fill="none"
|
|
124
|
+
stroke="currentColor"
|
|
125
|
+
stroke-width="1.55"
|
|
126
|
+
stroke-linecap="round"
|
|
127
|
+
stroke-linejoin="round"
|
|
128
|
+
aria-hidden="true"
|
|
129
|
+
>
|
|
130
|
+
${unsafeSVG(icon)}
|
|
131
|
+
</svg>`;
|
|
132
|
+
}
|
|
30
133
|
|
|
31
134
|
export class JantComposeEditor extends LitElement {
|
|
32
135
|
static properties = {
|
|
@@ -47,6 +150,8 @@ export class JantComposeEditor extends LitElement {
|
|
|
47
150
|
_showAltPanel: { state: true },
|
|
48
151
|
_altPanelIndex: { state: true },
|
|
49
152
|
_showEmojiPicker: { state: true },
|
|
153
|
+
_showUrlValidation: { state: true },
|
|
154
|
+
_showLinkTitleValidation: { state: true },
|
|
50
155
|
};
|
|
51
156
|
|
|
52
157
|
declare format: ComposeFormat;
|
|
@@ -66,6 +171,8 @@ export class JantComposeEditor extends LitElement {
|
|
|
66
171
|
declare _showAltPanel: boolean;
|
|
67
172
|
declare _altPanelIndex: number;
|
|
68
173
|
declare _showEmojiPicker: boolean;
|
|
174
|
+
declare _showUrlValidation: boolean;
|
|
175
|
+
declare _showLinkTitleValidation: boolean;
|
|
69
176
|
|
|
70
177
|
private _editor: Editor | null = null;
|
|
71
178
|
private _fileInput: HTMLInputElement | null = null;
|
|
@@ -73,8 +180,10 @@ export class JantComposeEditor extends LitElement {
|
|
|
73
180
|
null;
|
|
74
181
|
private _emojiPickerEl: HTMLElement | null = null;
|
|
75
182
|
private _emojiContainer: HTMLElement | null = null;
|
|
183
|
+
private readonly _urlStatusId = `compose-url-status-${crypto.randomUUID()}`;
|
|
76
184
|
private _onDocClickBound = this._onDocumentClick.bind(this);
|
|
77
185
|
private _scrollBufferApplied = false;
|
|
186
|
+
private _filePickerCleanup: (() => void) | null = null;
|
|
78
187
|
private _suppressAttachedTextOpenUntil = 0;
|
|
79
188
|
#sortable: { destroy(): void } | null = null;
|
|
80
189
|
#revertNextSibling: globalThis.Node | null = null;
|
|
@@ -102,6 +211,8 @@ export class JantComposeEditor extends LitElement {
|
|
|
102
211
|
this._showAltPanel = false;
|
|
103
212
|
this._altPanelIndex = 0;
|
|
104
213
|
this._showEmojiPicker = false;
|
|
214
|
+
this._showUrlValidation = false;
|
|
215
|
+
this._showLinkTitleValidation = false;
|
|
105
216
|
}
|
|
106
217
|
|
|
107
218
|
connectedCallback() {
|
|
@@ -118,6 +229,8 @@ export class JantComposeEditor extends LitElement {
|
|
|
118
229
|
document.removeEventListener("jant:slash-image", this._onSlashImage);
|
|
119
230
|
document.removeEventListener("click", this._onDocClickBound, true);
|
|
120
231
|
this._emojiContainer?.remove();
|
|
232
|
+
this._filePickerCleanup?.();
|
|
233
|
+
this._filePickerCleanup = null;
|
|
121
234
|
}
|
|
122
235
|
|
|
123
236
|
private _onSlashImage = () => {
|
|
@@ -144,60 +257,60 @@ export class JantComposeEditor extends LitElement {
|
|
|
144
257
|
});
|
|
145
258
|
document.body.appendChild(this._slashImageInput);
|
|
146
259
|
}
|
|
260
|
+
this._trackFilePickerSession(this._slashImageInput);
|
|
147
261
|
this._slashImageInput.click();
|
|
148
262
|
}
|
|
149
263
|
|
|
150
|
-
private
|
|
151
|
-
|
|
264
|
+
private _uploadAndInsertImage(file: File) {
|
|
265
|
+
const editor = this._editor;
|
|
266
|
+
if (!editor) return;
|
|
267
|
+
void uploadAndInsertInlineImage(editor, file);
|
|
268
|
+
}
|
|
152
269
|
|
|
153
|
-
|
|
154
|
-
|
|
270
|
+
private _dispatchFilePickerEvent(
|
|
271
|
+
type: "jant:file-picker-open" | "jant:file-picker-close",
|
|
272
|
+
detail?: ComposeFilePickerCloseDetail,
|
|
273
|
+
) {
|
|
274
|
+
this.dispatchEvent(
|
|
275
|
+
new CustomEvent(type, {
|
|
276
|
+
bubbles: true,
|
|
277
|
+
composed: true,
|
|
278
|
+
detail,
|
|
279
|
+
}),
|
|
280
|
+
);
|
|
281
|
+
}
|
|
155
282
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
doc.descendants((node, pos) => {
|
|
188
|
-
if (node.type.name === "image" && node.attrs.src === placeholderUrl) {
|
|
189
|
-
this._editor
|
|
190
|
-
?.chain()
|
|
191
|
-
.command(({ tr }) => {
|
|
192
|
-
tr.delete(pos, pos + node.nodeSize);
|
|
193
|
-
return true;
|
|
194
|
-
})
|
|
195
|
-
.run();
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
} finally {
|
|
199
|
-
URL.revokeObjectURL(placeholderUrl);
|
|
200
|
-
}
|
|
283
|
+
private _trackFilePickerSession(input: HTMLInputElement) {
|
|
284
|
+
this._filePickerCleanup?.();
|
|
285
|
+
|
|
286
|
+
let closed = false;
|
|
287
|
+
const close = (cancelled: boolean) => {
|
|
288
|
+
if (closed) return;
|
|
289
|
+
closed = true;
|
|
290
|
+
cleanup();
|
|
291
|
+
this._dispatchFilePickerEvent("jant:file-picker-close", { cancelled });
|
|
292
|
+
};
|
|
293
|
+
const onChange = () => close(false);
|
|
294
|
+
const onCancel = () => close(true);
|
|
295
|
+
const onWindowFocus = () => {
|
|
296
|
+
globalThis.setTimeout(() => {
|
|
297
|
+
close(!(input.files && input.files.length > 0));
|
|
298
|
+
}, 0);
|
|
299
|
+
};
|
|
300
|
+
const cleanup = () => {
|
|
301
|
+
input.removeEventListener("change", onChange);
|
|
302
|
+
input.removeEventListener("cancel", onCancel as EventListener);
|
|
303
|
+
window.removeEventListener("focus", onWindowFocus);
|
|
304
|
+
if (this._filePickerCleanup === cleanup) {
|
|
305
|
+
this._filePickerCleanup = null;
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
this._filePickerCleanup = cleanup;
|
|
310
|
+
input.addEventListener("change", onChange, { once: true });
|
|
311
|
+
input.addEventListener("cancel", onCancel as EventListener, { once: true });
|
|
312
|
+
window.addEventListener("focus", onWindowFocus, { once: true });
|
|
313
|
+
this._dispatchFilePickerEvent("jant:file-picker-open");
|
|
201
314
|
}
|
|
202
315
|
|
|
203
316
|
private _isEmptyDoc(json: JSONContent): boolean {
|
|
@@ -209,16 +322,59 @@ export class JantComposeEditor extends LitElement {
|
|
|
209
322
|
);
|
|
210
323
|
}
|
|
211
324
|
|
|
325
|
+
private _normalizeDocJson(json: JSONContent | null): JSONContent | null {
|
|
326
|
+
if (!json) return null;
|
|
327
|
+
return this._isEmptyDoc(json) ? null : json;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
getNormalizedBodyJson(): JSONContent | null {
|
|
331
|
+
return this._normalizeDocJson(this._bodyJson);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
getEffectiveAttachedTexts(): AttachedTextItem[] {
|
|
335
|
+
return this._attachedTexts.flatMap((item) => {
|
|
336
|
+
const bodyJson = this._normalizeDocJson(item.bodyJson);
|
|
337
|
+
if (!bodyJson) return [];
|
|
338
|
+
return [
|
|
339
|
+
{
|
|
340
|
+
...item,
|
|
341
|
+
bodyJson,
|
|
342
|
+
originalBodyJson: this._normalizeDocJson(
|
|
343
|
+
item.originalBodyJson ?? null,
|
|
344
|
+
),
|
|
345
|
+
},
|
|
346
|
+
];
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
getEffectiveAttachmentOrder(): string[] {
|
|
351
|
+
const attachedTextIds = new Set(
|
|
352
|
+
this.getEffectiveAttachedTexts().map((item) => item.clientId),
|
|
353
|
+
);
|
|
354
|
+
const attachmentIds = new Set(
|
|
355
|
+
this._attachments.map((item) => item.clientId),
|
|
356
|
+
);
|
|
357
|
+
|
|
358
|
+
return this._attachmentOrder.filter(
|
|
359
|
+
(clientId) =>
|
|
360
|
+
attachmentIds.has(clientId) || attachedTextIds.has(clientId),
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
private _getEffectiveRating(): number {
|
|
365
|
+
return this._showRating ? this._rating : 0;
|
|
366
|
+
}
|
|
367
|
+
|
|
212
368
|
getData() {
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
369
|
+
const bodyJson = this.getNormalizedBodyJson();
|
|
370
|
+
const attachedTexts = this.getEffectiveAttachedTexts();
|
|
371
|
+
const attachmentOrder = this.getEffectiveAttachmentOrder();
|
|
372
|
+
const body = bodyJson ? JSON.stringify(bodyJson) : "";
|
|
217
373
|
const shared = {
|
|
218
|
-
rating: this.
|
|
219
|
-
attachedTexts
|
|
374
|
+
rating: this._getEffectiveRating(),
|
|
375
|
+
attachedTexts,
|
|
220
376
|
attachments: this._attachments,
|
|
221
|
-
attachmentOrder
|
|
377
|
+
attachmentOrder,
|
|
222
378
|
};
|
|
223
379
|
|
|
224
380
|
switch (this.format) {
|
|
@@ -271,6 +427,8 @@ export class JantComposeEditor extends LitElement {
|
|
|
271
427
|
this._attachmentOrder = [];
|
|
272
428
|
this._showAltPanel = false;
|
|
273
429
|
this._altPanelIndex = 0;
|
|
430
|
+
this._showUrlValidation = false;
|
|
431
|
+
this._showLinkTitleValidation = false;
|
|
274
432
|
this.closeEmojiPicker();
|
|
275
433
|
}
|
|
276
434
|
|
|
@@ -299,14 +457,89 @@ export class JantComposeEditor extends LitElement {
|
|
|
299
457
|
);
|
|
300
458
|
}
|
|
301
459
|
|
|
302
|
-
focusInput() {
|
|
460
|
+
focusInput(position?: "start" | "end") {
|
|
303
461
|
if (this.format === "link") {
|
|
304
|
-
this.
|
|
305
|
-
|
|
306
|
-
this.querySelector<HTMLElement>(".compose-quote-text")?.focus();
|
|
307
|
-
} else {
|
|
308
|
-
this._editor?.commands.focus();
|
|
462
|
+
this.focusUrlInput(position);
|
|
463
|
+
return;
|
|
309
464
|
}
|
|
465
|
+
if (this.format === "quote") {
|
|
466
|
+
this._focusTextControl(
|
|
467
|
+
this.querySelector<HTMLTextAreaElement>(".compose-quote-text"),
|
|
468
|
+
position,
|
|
469
|
+
);
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
if (position) {
|
|
473
|
+
this._editor?.commands.focus(position);
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
this._editor?.commands.focus();
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
focusUrlInput(position?: "start" | "end") {
|
|
480
|
+
this._focusTextControl(
|
|
481
|
+
this.querySelector<HTMLInputElement>(".compose-url-input"),
|
|
482
|
+
position,
|
|
483
|
+
);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
focusLinkTitleInput(position?: "start" | "end") {
|
|
487
|
+
this._focusTextControl(
|
|
488
|
+
this.querySelector<HTMLInputElement>(".compose-link-title"),
|
|
489
|
+
position,
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
getUrlValidationMessage(): string | null {
|
|
494
|
+
if (this.format === "note") return null;
|
|
495
|
+
if (!this._url.trim()) {
|
|
496
|
+
return this.format === "link" ? this.labels.linkUrlRequired : null;
|
|
497
|
+
}
|
|
498
|
+
return isSafeAbsoluteUrl(this._url) ? null : this.labels.urlInvalid;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
getLinkTitleValidationMessage(): string | null {
|
|
502
|
+
if (this.format !== "link") return null;
|
|
503
|
+
return this._title.trim() ? null : this.labels.linkTitleRequired;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
private _getInlineUrlValidationMessage(): string | null {
|
|
507
|
+
if (this.format === "link" && !this._url.trim()) {
|
|
508
|
+
return null;
|
|
509
|
+
}
|
|
510
|
+
return this.getUrlValidationMessage();
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
private _getInlineLinkTitleValidationMessage(): string | null {
|
|
514
|
+
if (this.format !== "link" || !this._title.trim()) {
|
|
515
|
+
return null;
|
|
516
|
+
}
|
|
517
|
+
return this.getLinkTitleValidationMessage();
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
revealUrlValidation(): string | null {
|
|
521
|
+
this._showUrlValidation = true;
|
|
522
|
+
return this.getUrlValidationMessage();
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
revealLinkTitleValidation(): string | null {
|
|
526
|
+
this._showLinkTitleValidation = true;
|
|
527
|
+
return this.getLinkTitleValidationMessage();
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
isEmojiPickerOpen(): boolean {
|
|
531
|
+
return this._showEmojiPicker;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
private _focusTextControl(
|
|
535
|
+
field: HTMLInputElement | HTMLTextAreaElement | null,
|
|
536
|
+
position?: "start" | "end",
|
|
537
|
+
) {
|
|
538
|
+
if (!field) return;
|
|
539
|
+
field.focus();
|
|
540
|
+
if (!position) return;
|
|
541
|
+
const caret = position === "end" ? field.value.length : 0;
|
|
542
|
+
field.setSelectionRange(caret, caret);
|
|
310
543
|
}
|
|
311
544
|
|
|
312
545
|
private _initEditor() {
|
|
@@ -320,6 +553,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
320
553
|
? this.labels.bodyPlaceholder
|
|
321
554
|
: this.labels.thoughtsPlaceholder,
|
|
322
555
|
content: this._bodyJson,
|
|
556
|
+
toolbarMode: "compose",
|
|
323
557
|
onUpdate: (json) => {
|
|
324
558
|
this._bodyJson = json;
|
|
325
559
|
this._ensureScrollBuffer();
|
|
@@ -327,6 +561,12 @@ export class JantComposeEditor extends LitElement {
|
|
|
327
561
|
onFocus: () => {
|
|
328
562
|
this._lastFocusedField = null;
|
|
329
563
|
},
|
|
564
|
+
pasteMedia: {
|
|
565
|
+
shouldInsertInline: (file) => this._shouldPasteInlineImage(file),
|
|
566
|
+
onPasteFiles: (files) => {
|
|
567
|
+
this.addFiles(files);
|
|
568
|
+
},
|
|
569
|
+
},
|
|
330
570
|
});
|
|
331
571
|
|
|
332
572
|
// Lock editor min-height once so new lines fill existing space
|
|
@@ -384,6 +624,12 @@ export class JantComposeEditor extends LitElement {
|
|
|
384
624
|
}
|
|
385
625
|
|
|
386
626
|
if (changed.has("format") && changed.get("format") !== undefined) {
|
|
627
|
+
if (this._showUrlValidation) {
|
|
628
|
+
this._showUrlValidation = false;
|
|
629
|
+
}
|
|
630
|
+
if (this._showLinkTitleValidation) {
|
|
631
|
+
this._showLinkTitleValidation = false;
|
|
632
|
+
}
|
|
387
633
|
// Format changed — recreate editor with appropriate placeholder
|
|
388
634
|
this._destroyEditor();
|
|
389
635
|
// Schedule init after Lit re-renders the new template
|
|
@@ -510,6 +756,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
510
756
|
bodyHtml: t.bodyHtml ?? "",
|
|
511
757
|
summary: t.summary,
|
|
512
758
|
mediaId: t.mediaId,
|
|
759
|
+
originalBodyJson: parsed,
|
|
513
760
|
};
|
|
514
761
|
});
|
|
515
762
|
this._attachedTexts = texts;
|
|
@@ -539,18 +786,25 @@ export class JantComposeEditor extends LitElement {
|
|
|
539
786
|
);
|
|
540
787
|
this._attachmentOrder = [...orderedClientIds, ...remainingClientIds];
|
|
541
788
|
}
|
|
789
|
+
|
|
790
|
+
this._showUrlValidation = false;
|
|
791
|
+
this._showLinkTitleValidation = false;
|
|
542
792
|
}
|
|
543
793
|
|
|
544
794
|
/** Updates editor content and title from fullscreen close */
|
|
545
|
-
setEditorState(json: JSONContent | null, title: string) {
|
|
795
|
+
setEditorState(json: JSONContent | null, title: string, showTitle: boolean) {
|
|
546
796
|
this._bodyJson = json;
|
|
547
797
|
this._title = title;
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
this._showTitle = true;
|
|
798
|
+
if (this.format === "note") {
|
|
799
|
+
this._showTitle = showTitle || title.length > 0;
|
|
551
800
|
}
|
|
552
|
-
if (this._editor
|
|
553
|
-
this._editor.commands.setContent(
|
|
801
|
+
if (this._editor) {
|
|
802
|
+
this._editor.commands.setContent(
|
|
803
|
+
json ?? {
|
|
804
|
+
type: "doc",
|
|
805
|
+
content: [{ type: "paragraph" }],
|
|
806
|
+
},
|
|
807
|
+
);
|
|
554
808
|
}
|
|
555
809
|
}
|
|
556
810
|
|
|
@@ -627,57 +881,41 @@ export class JantComposeEditor extends LitElement {
|
|
|
627
881
|
if (!list || this.#sortable || this._attachmentOrder.length <= 1) return;
|
|
628
882
|
|
|
629
883
|
this.#sortable = Sortable.create(list, {
|
|
630
|
-
|
|
631
|
-
bubbleScroll: false,
|
|
884
|
+
...responsiveSortableOptions,
|
|
632
885
|
chosenClass: "compose-attachment-chosen",
|
|
633
886
|
direction: "horizontal",
|
|
634
887
|
dragClass: "compose-attachment-drag",
|
|
635
|
-
fallbackTolerance: 4,
|
|
636
888
|
filter:
|
|
637
889
|
"button, a, input, textarea, select, option, [contenteditable='true']",
|
|
638
|
-
forceAutoScrollFallback: true,
|
|
639
890
|
ghostClass: "compose-attachment-ghost",
|
|
640
891
|
handle: "[data-attachment-sortable]",
|
|
641
892
|
preventOnFilter: false,
|
|
642
893
|
scroll: list,
|
|
643
|
-
scrollSensitivity: 56,
|
|
644
|
-
scrollSpeed: 18,
|
|
645
894
|
onChoose: () => {
|
|
646
|
-
list
|
|
895
|
+
setSortableDraggingState(list, true);
|
|
647
896
|
},
|
|
648
897
|
onStart: (evt) => {
|
|
649
|
-
this.#revertNextSibling = evt
|
|
898
|
+
this.#revertNextSibling = captureSortableRevertNextSibling(evt);
|
|
650
899
|
},
|
|
651
900
|
onUnchoose: () => {
|
|
652
|
-
|
|
901
|
+
setSortableDraggingState(list, false);
|
|
653
902
|
},
|
|
654
903
|
onEnd: (evt) => {
|
|
655
|
-
const
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
const { item, oldIndex, newIndex } = evt;
|
|
663
|
-
if (oldIndex != null && newIndex != null && oldIndex !== newIndex) {
|
|
664
|
-
item.parentNode?.removeChild(item);
|
|
665
|
-
if (this.#revertNextSibling) {
|
|
666
|
-
list.insertBefore(item, this.#revertNextSibling);
|
|
667
|
-
} else {
|
|
668
|
-
list.appendChild(item);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
904
|
+
const orderedIds = readSortableDataIds(
|
|
905
|
+
list,
|
|
906
|
+
"[data-attachment-id]",
|
|
907
|
+
"attachmentId",
|
|
908
|
+
);
|
|
909
|
+
revertSortableDomMove(list, evt, this.#revertNextSibling);
|
|
671
910
|
this.#revertNextSibling = null;
|
|
672
|
-
|
|
911
|
+
setSortableDraggingState(list, false);
|
|
673
912
|
|
|
674
913
|
this.#sortable?.destroy();
|
|
675
914
|
this.#sortable = null;
|
|
676
915
|
|
|
677
916
|
if (orderedIds.length === this._attachmentOrder.length) {
|
|
678
917
|
this._attachmentOrder = orderedIds;
|
|
679
|
-
const movedId =
|
|
680
|
-
evt.newIndex != null ? orderedIds[evt.newIndex] : undefined;
|
|
918
|
+
const { movedId } = getSortableMove(orderedIds, evt.newIndex);
|
|
681
919
|
if (movedId) {
|
|
682
920
|
this._suppressAttachedTextOpenUntil = Date.now() + 250;
|
|
683
921
|
this.#scrollAttachmentIntoView(movedId);
|
|
@@ -731,13 +969,14 @@ export class JantComposeEditor extends LitElement {
|
|
|
731
969
|
bodyJson: JSONContent | null,
|
|
732
970
|
bodyHtml?: string,
|
|
733
971
|
) {
|
|
734
|
-
const
|
|
972
|
+
const normalizedBodyJson = this._normalizeDocJson(bodyJson);
|
|
973
|
+
const plainText = this._extractPlainText(normalizedBodyJson);
|
|
735
974
|
this._attachedTexts = this._attachedTexts.map((item, i) =>
|
|
736
975
|
i === index
|
|
737
976
|
? {
|
|
738
977
|
...item,
|
|
739
|
-
bodyJson,
|
|
740
|
-
bodyHtml: bodyHtml ?? "",
|
|
978
|
+
bodyJson: normalizedBodyJson,
|
|
979
|
+
bodyHtml: normalizedBodyJson ? (bodyHtml ?? "") : "",
|
|
741
980
|
summary: this._computeSummary(plainText),
|
|
742
981
|
}
|
|
743
982
|
: item,
|
|
@@ -755,8 +994,9 @@ export class JantComposeEditor extends LitElement {
|
|
|
755
994
|
}
|
|
756
995
|
|
|
757
996
|
private _hasAttachedTextContent(bodyJson: JSONContent | null): boolean {
|
|
758
|
-
|
|
759
|
-
|
|
997
|
+
const normalizedBodyJson = this._normalizeDocJson(bodyJson);
|
|
998
|
+
if (!normalizedBodyJson) return false;
|
|
999
|
+
return this._extractPlainText(normalizedBodyJson).trim().length > 0;
|
|
760
1000
|
}
|
|
761
1001
|
|
|
762
1002
|
private _extractPlainText(json: JSONContent | null): string {
|
|
@@ -787,6 +1027,20 @@ export class JantComposeEditor extends LitElement {
|
|
|
787
1027
|
this._rating = this._rating === star ? 0 : star;
|
|
788
1028
|
}
|
|
789
1029
|
|
|
1030
|
+
private _shouldPasteInlineImage(file: File): boolean {
|
|
1031
|
+
if (!file.type.startsWith("image/")) return false;
|
|
1032
|
+
|
|
1033
|
+
if (this.format === "quote") {
|
|
1034
|
+
return false;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
if (this.format === "note") {
|
|
1038
|
+
return this._showTitle && this._title.trim().length > 0;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
return this._title.trim().length > 0;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
790
1044
|
private _openFilePicker() {
|
|
791
1045
|
if (!this._fileInput) {
|
|
792
1046
|
this._fileInput = document.createElement("input");
|
|
@@ -800,16 +1054,24 @@ export class JantComposeEditor extends LitElement {
|
|
|
800
1054
|
this.appendChild(this._fileInput);
|
|
801
1055
|
}
|
|
802
1056
|
this._fileInput.value = "";
|
|
1057
|
+
this._trackFilePickerSession(this._fileInput);
|
|
803
1058
|
this._fileInput.click();
|
|
804
1059
|
}
|
|
805
1060
|
|
|
806
1061
|
private _handleFilesSelected() {
|
|
807
|
-
|
|
1062
|
+
const files = this._fileInput?.files;
|
|
1063
|
+
if (!files || files.length === 0) return;
|
|
1064
|
+
this.addFiles(files);
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
addFiles(files: Iterable<File>) {
|
|
1068
|
+
const selectedFiles = Array.from(files);
|
|
1069
|
+
if (selectedFiles.length === 0) return;
|
|
808
1070
|
|
|
809
1071
|
const newAttachments: ComposeAttachment[] = [];
|
|
810
|
-
const
|
|
1072
|
+
const uploadQueue: { file: File; clientId: string }[] = [];
|
|
811
1073
|
|
|
812
|
-
for (const file of
|
|
1074
|
+
for (const file of selectedFiles) {
|
|
813
1075
|
// Validate before creating attachment preview
|
|
814
1076
|
const error = validateUploadFile(file, {
|
|
815
1077
|
maxFileSizeMB: this.uploadMaxFileSize,
|
|
@@ -833,7 +1095,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
833
1095
|
summary: null,
|
|
834
1096
|
chars: null,
|
|
835
1097
|
});
|
|
836
|
-
|
|
1098
|
+
uploadQueue.push({ file, clientId });
|
|
837
1099
|
}
|
|
838
1100
|
|
|
839
1101
|
if (newAttachments.length === 0) return;
|
|
@@ -861,7 +1123,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
861
1123
|
this.dispatchEvent(
|
|
862
1124
|
new CustomEvent("jant:files-selected", {
|
|
863
1125
|
bubbles: true,
|
|
864
|
-
detail: { files },
|
|
1126
|
+
detail: { files: uploadQueue },
|
|
865
1127
|
}),
|
|
866
1128
|
);
|
|
867
1129
|
}
|
|
@@ -961,11 +1223,28 @@ export class JantComposeEditor extends LitElement {
|
|
|
961
1223
|
}
|
|
962
1224
|
}
|
|
963
1225
|
|
|
964
|
-
closeEmojiPicker() {
|
|
965
|
-
if (!this._showEmojiPicker)
|
|
1226
|
+
closeEmojiPicker(options?: { restoreFocus?: boolean }) {
|
|
1227
|
+
if (!this._showEmojiPicker) {
|
|
1228
|
+
if (options?.restoreFocus) {
|
|
1229
|
+
this._restoreEmojiFocus();
|
|
1230
|
+
}
|
|
1231
|
+
return;
|
|
1232
|
+
}
|
|
966
1233
|
this._showEmojiPicker = false;
|
|
967
1234
|
this._emojiContainer?.remove();
|
|
968
1235
|
document.removeEventListener("click", this._onDocClickBound);
|
|
1236
|
+
if (options?.restoreFocus) {
|
|
1237
|
+
this._restoreEmojiFocus();
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
private _restoreEmojiFocus() {
|
|
1242
|
+
const field = this._lastFocusedField;
|
|
1243
|
+
if (field && this.contains(field) && !field.disabled) {
|
|
1244
|
+
this._focusTextControl(field, "end");
|
|
1245
|
+
return;
|
|
1246
|
+
}
|
|
1247
|
+
this.focusInput("end");
|
|
969
1248
|
}
|
|
970
1249
|
|
|
971
1250
|
private _onDocumentClick(e: Event) {
|
|
@@ -1157,27 +1436,67 @@ export class JantComposeEditor extends LitElement {
|
|
|
1157
1436
|
}
|
|
1158
1437
|
|
|
1159
1438
|
private _renderLinkFields() {
|
|
1439
|
+
const urlError = this._showUrlValidation
|
|
1440
|
+
? this._getInlineUrlValidationMessage()
|
|
1441
|
+
: null;
|
|
1442
|
+
const titleError = this._showLinkTitleValidation
|
|
1443
|
+
? this._getInlineLinkTitleValidationMessage()
|
|
1444
|
+
: null;
|
|
1445
|
+
|
|
1160
1446
|
return html`
|
|
1161
1447
|
<div class="compose-field-enter">
|
|
1162
|
-
<div
|
|
1448
|
+
<div
|
|
1449
|
+
class=${classMap({
|
|
1450
|
+
"compose-link-url-wrap": true,
|
|
1451
|
+
"compose-link-url-wrap-invalid": Boolean(urlError),
|
|
1452
|
+
})}
|
|
1453
|
+
>
|
|
1163
1454
|
<span class="text-base opacity-50 shrink-0">🔗</span>
|
|
1164
1455
|
<input
|
|
1165
1456
|
type="url"
|
|
1166
1457
|
.value=${this._url}
|
|
1167
1458
|
@input=${(e: Event) => this._onInput("_url", e)}
|
|
1168
1459
|
@focus=${(e: Event) => this._onFieldFocus(e)}
|
|
1169
|
-
|
|
1460
|
+
@blur=${() => {
|
|
1461
|
+
this._showUrlValidation = true;
|
|
1462
|
+
}}
|
|
1463
|
+
class="compose-input compose-url-input text-[0.9rem]"
|
|
1170
1464
|
placeholder=${this.labels.urlPlaceholder}
|
|
1465
|
+
aria-invalid=${urlError ? "true" : "false"}
|
|
1466
|
+
aria-describedby=${ifDefined(
|
|
1467
|
+
urlError ? this._urlStatusId : undefined,
|
|
1468
|
+
)}
|
|
1171
1469
|
/>
|
|
1172
1470
|
</div>
|
|
1471
|
+
${urlError
|
|
1472
|
+
? html`<p
|
|
1473
|
+
id=${this._urlStatusId}
|
|
1474
|
+
class="compose-url-status compose-url-status-error"
|
|
1475
|
+
data-compose-url-status="error"
|
|
1476
|
+
>
|
|
1477
|
+
${urlError}
|
|
1478
|
+
</p>`
|
|
1479
|
+
: nothing}
|
|
1173
1480
|
<input
|
|
1174
1481
|
type="text"
|
|
1175
1482
|
.value=${this._title}
|
|
1176
1483
|
@input=${(e: Event) => this._onInput("_title", e)}
|
|
1177
1484
|
@focus=${(e: Event) => this._onFieldFocus(e)}
|
|
1485
|
+
@blur=${() => {
|
|
1486
|
+
this._showLinkTitleValidation = true;
|
|
1487
|
+
}}
|
|
1178
1488
|
class="compose-input compose-link-title"
|
|
1179
1489
|
placeholder=${this.labels.linkTitlePlaceholder}
|
|
1490
|
+
aria-invalid=${titleError ? "true" : "false"}
|
|
1180
1491
|
/>
|
|
1492
|
+
${titleError
|
|
1493
|
+
? html`<p
|
|
1494
|
+
class="compose-url-status compose-url-status-error"
|
|
1495
|
+
data-compose-link-title-error="error"
|
|
1496
|
+
>
|
|
1497
|
+
${titleError}
|
|
1498
|
+
</p>`
|
|
1499
|
+
: nothing}
|
|
1181
1500
|
<div class="compose-divider"></div>
|
|
1182
1501
|
<div class="compose-tiptap-body compose-tiptap-thoughts"></div>
|
|
1183
1502
|
</div>
|
|
@@ -1185,6 +1504,10 @@ export class JantComposeEditor extends LitElement {
|
|
|
1185
1504
|
}
|
|
1186
1505
|
|
|
1187
1506
|
private _renderQuoteFields() {
|
|
1507
|
+
const urlError = this._showUrlValidation
|
|
1508
|
+
? this.getUrlValidationMessage()
|
|
1509
|
+
: null;
|
|
1510
|
+
|
|
1188
1511
|
return html`
|
|
1189
1512
|
<div class="compose-field-enter">
|
|
1190
1513
|
<div class="compose-quote-wrap">
|
|
@@ -1195,7 +1518,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
1195
1518
|
@focus=${(e: Event) => this._onFieldFocus(e)}
|
|
1196
1519
|
class="compose-input compose-quote-text"
|
|
1197
1520
|
placeholder=${this.labels.quotePlaceholder}
|
|
1198
|
-
rows="
|
|
1521
|
+
rows="5"
|
|
1199
1522
|
></textarea>
|
|
1200
1523
|
</div>
|
|
1201
1524
|
<div class="compose-quote-author-row">
|
|
@@ -1215,12 +1538,30 @@ export class JantComposeEditor extends LitElement {
|
|
|
1215
1538
|
.value=${this._url}
|
|
1216
1539
|
@input=${(e: Event) => this._onInput("_url", e)}
|
|
1217
1540
|
@focus=${(e: Event) => this._onFieldFocus(e)}
|
|
1218
|
-
|
|
1541
|
+
@blur=${() => {
|
|
1542
|
+
this._showUrlValidation = true;
|
|
1543
|
+
}}
|
|
1544
|
+
class="compose-input compose-url-input text-[0.78rem]"
|
|
1219
1545
|
placeholder=${this.labels.sourcePlaceholder}
|
|
1546
|
+
aria-invalid=${urlError ? "true" : "false"}
|
|
1547
|
+
aria-describedby=${ifDefined(
|
|
1548
|
+
urlError ? this._urlStatusId : undefined,
|
|
1549
|
+
)}
|
|
1220
1550
|
/>
|
|
1551
|
+
${urlError
|
|
1552
|
+
? html`<p
|
|
1553
|
+
id=${this._urlStatusId}
|
|
1554
|
+
class="compose-url-status compose-url-status-error"
|
|
1555
|
+
data-compose-url-status="error"
|
|
1556
|
+
>
|
|
1557
|
+
${urlError}
|
|
1558
|
+
</p>`
|
|
1559
|
+
: nothing}
|
|
1221
1560
|
</div>
|
|
1222
1561
|
<div class="compose-divider"></div>
|
|
1223
|
-
<div
|
|
1562
|
+
<div
|
|
1563
|
+
class="compose-tiptap-body compose-tiptap-thoughts compose-tiptap-thoughts-quote"
|
|
1564
|
+
></div>
|
|
1224
1565
|
</div>
|
|
1225
1566
|
`;
|
|
1226
1567
|
}
|
|
@@ -1394,12 +1735,34 @@ export class JantComposeEditor extends LitElement {
|
|
|
1394
1735
|
</button>
|
|
1395
1736
|
`
|
|
1396
1737
|
: nothing}
|
|
1738
|
+
${this._renderAttachmentRemoveButton((e: Event) => {
|
|
1739
|
+
e.stopPropagation();
|
|
1740
|
+
this._removeAttachment(index);
|
|
1741
|
+
})}
|
|
1742
|
+
`;
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
private _renderAttachmentRemoveButton(onClick: (e: Event) => void) {
|
|
1746
|
+
return html`
|
|
1397
1747
|
<button
|
|
1398
1748
|
type="button"
|
|
1399
1749
|
class="compose-attachment-remove"
|
|
1400
|
-
|
|
1750
|
+
title=${this.labels.removeAttachment}
|
|
1751
|
+
aria-label=${this.labels.removeAttachment}
|
|
1752
|
+
@click=${onClick}
|
|
1401
1753
|
>
|
|
1402
|
-
|
|
1754
|
+
<svg
|
|
1755
|
+
width="14"
|
|
1756
|
+
height="14"
|
|
1757
|
+
viewBox="0 0 14 14"
|
|
1758
|
+
fill="none"
|
|
1759
|
+
stroke="currentColor"
|
|
1760
|
+
stroke-width="1.9"
|
|
1761
|
+
stroke-linecap="round"
|
|
1762
|
+
>
|
|
1763
|
+
<path d="M3.5 3.5 10.5 10.5" />
|
|
1764
|
+
<path d="M10.5 3.5 3.5 10.5" />
|
|
1765
|
+
</svg>
|
|
1403
1766
|
</button>
|
|
1404
1767
|
`;
|
|
1405
1768
|
}
|
|
@@ -1430,16 +1793,10 @@ export class JantComposeEditor extends LitElement {
|
|
|
1430
1793
|
>`
|
|
1431
1794
|
: nothing}
|
|
1432
1795
|
</div>
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
e.stopPropagation();
|
|
1438
|
-
this._removeAttachedText(index);
|
|
1439
|
-
}}
|
|
1440
|
-
>
|
|
1441
|
-
✕
|
|
1442
|
-
</button>
|
|
1796
|
+
${this._renderAttachmentRemoveButton((e: Event) => {
|
|
1797
|
+
e.stopPropagation();
|
|
1798
|
+
this._removeAttachedText(index);
|
|
1799
|
+
})}
|
|
1443
1800
|
</div>
|
|
1444
1801
|
</div>
|
|
1445
1802
|
`;
|
|
@@ -1575,7 +1932,6 @@ export class JantComposeEditor extends LitElement {
|
|
|
1575
1932
|
const hasAttached = this._attachedTexts.length > 0;
|
|
1576
1933
|
return html`
|
|
1577
1934
|
<div class="compose-tools-row">
|
|
1578
|
-
<!-- Media / Add -->
|
|
1579
1935
|
<button
|
|
1580
1936
|
type="button"
|
|
1581
1937
|
class=${classMap({
|
|
@@ -1585,22 +1941,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
1585
1941
|
title=${this._attachments.length > 0 ? "" : this.labels.media}
|
|
1586
1942
|
@click=${() => this._openFilePicker()}
|
|
1587
1943
|
>
|
|
1588
|
-
|
|
1589
|
-
class="icon-fine"
|
|
1590
|
-
width="18"
|
|
1591
|
-
height="18"
|
|
1592
|
-
viewBox="0 0 18 18"
|
|
1593
|
-
fill="none"
|
|
1594
|
-
stroke="currentColor"
|
|
1595
|
-
stroke-width="1.4"
|
|
1596
|
-
stroke-linecap="round"
|
|
1597
|
-
stroke-linejoin="round"
|
|
1598
|
-
>
|
|
1599
|
-
<rect x="2" y="3" width="14" height="12" rx="2.5" />
|
|
1600
|
-
<circle cx="6.5" cy="7.5" r="1.5" />
|
|
1601
|
-
<path d="M2 13l4-4c.6-.6 1.4-.6 2 0l4 4" />
|
|
1602
|
-
<path d="M11 11l1.5-1.5c.6-.6 1.4-.6 2 0L16 11" />
|
|
1603
|
-
</svg>
|
|
1944
|
+
${renderComposeToolbarIcon(COMPOSE_TOOLBAR_ICONS.media)}
|
|
1604
1945
|
${this._attachments.length > 0
|
|
1605
1946
|
? html`<span class="compose-tool-label"
|
|
1606
1947
|
>${this.labels.addMore}</span
|
|
@@ -1608,7 +1949,6 @@ export class JantComposeEditor extends LitElement {
|
|
|
1608
1949
|
: nothing}
|
|
1609
1950
|
</button>
|
|
1610
1951
|
|
|
1611
|
-
<!-- Attached Text -->
|
|
1612
1952
|
<button
|
|
1613
1953
|
type="button"
|
|
1614
1954
|
class=${classMap({
|
|
@@ -1618,21 +1958,7 @@ export class JantComposeEditor extends LitElement {
|
|
|
1618
1958
|
title=${hasAttached ? "" : this.labels.attachedText}
|
|
1619
1959
|
@click=${() => this._openAttachedText()}
|
|
1620
1960
|
>
|
|
1621
|
-
|
|
1622
|
-
class="icon-fine"
|
|
1623
|
-
width="18"
|
|
1624
|
-
height="18"
|
|
1625
|
-
viewBox="0 0 18 18"
|
|
1626
|
-
fill="none"
|
|
1627
|
-
stroke="currentColor"
|
|
1628
|
-
stroke-width="1.3"
|
|
1629
|
-
stroke-linecap="round"
|
|
1630
|
-
>
|
|
1631
|
-
<rect x="3" y="2" width="12" height="14" rx="2" />
|
|
1632
|
-
<line x1="6" y1="6" x2="12" y2="6" />
|
|
1633
|
-
<line x1="6" y1="9" x2="12" y2="9" />
|
|
1634
|
-
<line x1="6" y1="12" x2="9.5" y2="12" />
|
|
1635
|
-
</svg>
|
|
1961
|
+
${renderComposeToolbarIcon(COMPOSE_TOOLBAR_ICONS.attachedText)}
|
|
1636
1962
|
${hasAttached
|
|
1637
1963
|
? html`<span class="compose-tool-label"
|
|
1638
1964
|
>${this.labels.addMore}</span
|
|
@@ -1640,155 +1966,84 @@ export class JantComposeEditor extends LitElement {
|
|
|
1640
1966
|
: nothing}
|
|
1641
1967
|
</button>
|
|
1642
1968
|
|
|
1643
|
-
<!-- Rate -->
|
|
1644
1969
|
<button
|
|
1645
1970
|
type="button"
|
|
1646
1971
|
class=${classMap({
|
|
1647
1972
|
"compose-tool-btn": true,
|
|
1648
|
-
"compose-
|
|
1973
|
+
"compose-emoji-btn": true,
|
|
1974
|
+
"compose-tool-btn-active": this._showEmojiPicker,
|
|
1649
1975
|
})}
|
|
1650
|
-
title=${this.labels.
|
|
1651
|
-
@click=${() =>
|
|
1652
|
-
this._showRating = !this._showRating;
|
|
1653
|
-
}}
|
|
1976
|
+
title=${this.labels.emoji}
|
|
1977
|
+
@click=${() => this._toggleEmojiPicker()}
|
|
1654
1978
|
>
|
|
1655
|
-
|
|
1656
|
-
class="icon-fine"
|
|
1657
|
-
width="18"
|
|
1658
|
-
height="18"
|
|
1659
|
-
viewBox="0 0 24 24"
|
|
1660
|
-
fill="none"
|
|
1661
|
-
>
|
|
1662
|
-
<defs>
|
|
1663
|
-
<clipPath id="half-left">
|
|
1664
|
-
<rect x="0" y="0" width="12" height="24" />
|
|
1665
|
-
</clipPath>
|
|
1666
|
-
</defs>
|
|
1667
|
-
<polygon
|
|
1668
|
-
points="12 2 14.8 9.2 22.5 9.7 16.8 14.8 18.8 22.3 12 18.2 5.2 22.3 7.2 14.8 1.5 9.7 9.2 9.2"
|
|
1669
|
-
fill="currentColor"
|
|
1670
|
-
opacity="0.45"
|
|
1671
|
-
clip-path="url(#half-left)"
|
|
1672
|
-
/>
|
|
1673
|
-
<polygon
|
|
1674
|
-
points="12 2 14.8 9.2 22.5 9.7 16.8 14.8 18.8 22.3 12 18.2 5.2 22.3 7.2 14.8 1.5 9.7 9.2 9.2"
|
|
1675
|
-
fill="none"
|
|
1676
|
-
stroke="currentColor"
|
|
1677
|
-
stroke-width="2.4"
|
|
1678
|
-
stroke-linejoin="round"
|
|
1679
|
-
/>
|
|
1680
|
-
</svg>
|
|
1979
|
+
${renderComposeToolbarIcon(COMPOSE_TOOLBAR_ICONS.emoji)}
|
|
1681
1980
|
</button>
|
|
1682
1981
|
|
|
1683
|
-
|
|
1982
|
+
<div class="compose-tool-sep"></div>
|
|
1983
|
+
|
|
1684
1984
|
<button
|
|
1685
1985
|
type="button"
|
|
1686
1986
|
class=${classMap({
|
|
1687
1987
|
"compose-tool-btn": true,
|
|
1688
|
-
"compose-
|
|
1689
|
-
"compose-tool-btn-active": this._showEmojiPicker,
|
|
1988
|
+
"compose-tool-btn-active": this._showRating,
|
|
1690
1989
|
})}
|
|
1691
|
-
title=${this.labels.
|
|
1692
|
-
@click=${() =>
|
|
1990
|
+
title=${this.labels.rate}
|
|
1991
|
+
@click=${() => {
|
|
1992
|
+
this._showRating = !this._showRating;
|
|
1993
|
+
}}
|
|
1693
1994
|
>
|
|
1694
|
-
|
|
1695
|
-
class="icon-fine"
|
|
1696
|
-
width="18"
|
|
1697
|
-
height="18"
|
|
1698
|
-
viewBox="0 0 18 18"
|
|
1699
|
-
fill="none"
|
|
1700
|
-
stroke="currentColor"
|
|
1701
|
-
stroke-width="1.4"
|
|
1702
|
-
stroke-linecap="round"
|
|
1703
|
-
stroke-linejoin="round"
|
|
1704
|
-
>
|
|
1705
|
-
<circle cx="9" cy="9" r="7" />
|
|
1706
|
-
<path d="M6 10.5c.5 1.2 1.5 2 3 2s2.5-.8 3-2" />
|
|
1707
|
-
<circle cx="6.5" cy="7" r="0.5" fill="currentColor" stroke="none" />
|
|
1708
|
-
<circle
|
|
1709
|
-
cx="11.5"
|
|
1710
|
-
cy="7"
|
|
1711
|
-
r="0.5"
|
|
1712
|
-
fill="currentColor"
|
|
1713
|
-
stroke="none"
|
|
1714
|
-
/>
|
|
1715
|
-
</svg>
|
|
1995
|
+
${renderComposeToolbarIcon(COMPOSE_TOOLBAR_ICONS.rate)}
|
|
1716
1996
|
</button>
|
|
1717
1997
|
|
|
1718
|
-
<!-- Title toggle (Note only) -->
|
|
1719
1998
|
${this.format === "note"
|
|
1720
1999
|
? html`
|
|
1721
|
-
<
|
|
1722
|
-
|
|
2000
|
+
<button
|
|
2001
|
+
type="button"
|
|
2002
|
+
class=${classMap({
|
|
2003
|
+
"compose-tool-btn": true,
|
|
2004
|
+
"compose-tool-btn-active": this._showTitle,
|
|
2005
|
+
})}
|
|
2006
|
+
title=${this.labels.title}
|
|
2007
|
+
@click=${() => {
|
|
2008
|
+
const willShow = !this._showTitle;
|
|
2009
|
+
this._showTitle = willShow;
|
|
2010
|
+
if (willShow) {
|
|
2011
|
+
this.updateComplete.then(() => {
|
|
2012
|
+
this.querySelector<HTMLInputElement>(
|
|
2013
|
+
".compose-note-title",
|
|
2014
|
+
)?.focus();
|
|
2015
|
+
});
|
|
2016
|
+
}
|
|
2017
|
+
}}
|
|
2018
|
+
>
|
|
2019
|
+
${renderComposeToolbarIcon(COMPOSE_TOOLBAR_ICONS.title)}
|
|
2020
|
+
</button>
|
|
2021
|
+
`
|
|
2022
|
+
: nothing}
|
|
2023
|
+
${this.format === "note"
|
|
2024
|
+
? html`
|
|
2025
|
+
<div class="compose-tool-view-group">
|
|
1723
2026
|
<button
|
|
1724
2027
|
type="button"
|
|
1725
|
-
class
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
title=${this.labels.title}
|
|
1730
|
-
@click=${() => {
|
|
1731
|
-
const willShow = !this._showTitle;
|
|
1732
|
-
this._showTitle = willShow;
|
|
1733
|
-
if (willShow) {
|
|
1734
|
-
this.updateComplete.then(() => {
|
|
1735
|
-
this.querySelector<HTMLInputElement>(
|
|
1736
|
-
".compose-note-title",
|
|
1737
|
-
)?.focus();
|
|
1738
|
-
});
|
|
1739
|
-
}
|
|
1740
|
-
}}
|
|
2028
|
+
class="compose-tool-btn compose-tool-btn-view"
|
|
2029
|
+
title=${this.labels.fullscreen}
|
|
2030
|
+
aria-label=${this.labels.fullscreen}
|
|
2031
|
+
@click=${() => this.openFullscreen()}
|
|
1741
2032
|
>
|
|
1742
|
-
|
|
1743
|
-
<text
|
|
1744
|
-
x="3.5"
|
|
1745
|
-
y="14"
|
|
1746
|
-
font-family="serif"
|
|
1747
|
-
font-size="14"
|
|
1748
|
-
font-weight="400"
|
|
1749
|
-
fill="currentColor"
|
|
1750
|
-
>
|
|
1751
|
-
T
|
|
1752
|
-
</text>
|
|
1753
|
-
</svg>
|
|
2033
|
+
${renderComposeToolbarIcon(COMPOSE_TOOLBAR_ICONS.fullscreen)}
|
|
1754
2034
|
</button>
|
|
1755
2035
|
</div>
|
|
1756
2036
|
`
|
|
1757
2037
|
: nothing}
|
|
1758
|
-
|
|
1759
|
-
<div class="flex-1"></div>
|
|
1760
|
-
|
|
1761
|
-
<!-- Expand to fullscreen -->
|
|
1762
|
-
<button
|
|
1763
|
-
type="button"
|
|
1764
|
-
class="compose-tool-btn"
|
|
1765
|
-
@click=${() => this._openFullscreen()}
|
|
1766
|
-
>
|
|
1767
|
-
<svg
|
|
1768
|
-
class="icon-fine"
|
|
1769
|
-
width="18"
|
|
1770
|
-
height="18"
|
|
1771
|
-
viewBox="0 0 18 18"
|
|
1772
|
-
fill="none"
|
|
1773
|
-
stroke="currentColor"
|
|
1774
|
-
stroke-width="1.4"
|
|
1775
|
-
stroke-linecap="round"
|
|
1776
|
-
stroke-linejoin="round"
|
|
1777
|
-
>
|
|
1778
|
-
<polyline points="6 2 2 2 2 6" />
|
|
1779
|
-
<polyline points="12 16 16 16 16 12" />
|
|
1780
|
-
<line x1="2" y1="2" x2="7" y2="7" />
|
|
1781
|
-
<line x1="16" y1="16" x2="11" y2="11" />
|
|
1782
|
-
</svg>
|
|
1783
|
-
</button>
|
|
1784
2038
|
</div>
|
|
1785
2039
|
`;
|
|
1786
2040
|
}
|
|
1787
2041
|
|
|
1788
|
-
|
|
2042
|
+
openFullscreen() {
|
|
2043
|
+
if (this.format !== "note") return;
|
|
1789
2044
|
const state = this.getEditorState();
|
|
1790
2045
|
this.dispatchEvent(
|
|
1791
|
-
new CustomEvent("jant:fullscreen-open", {
|
|
2046
|
+
new CustomEvent<ComposeFullscreenOpenDetail>("jant:fullscreen-open", {
|
|
1792
2047
|
bubbles: true,
|
|
1793
2048
|
detail: { ...state, labels: this.labels },
|
|
1794
2049
|
}),
|