@jant/core 0.7.0 → 0.7.1
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/bin/commands/export.js +3 -1
- package/bin/commands/import-site.js +689 -216
- package/bin/commands/setup.js +136 -0
- package/bin/commands/site/export.js +71 -34
- package/bin/commands/site/pull-media.js +2 -6
- package/bin/commands/site/snapshot/export.js +18 -60
- package/bin/commands/site/snapshot/import.js +22 -23
- package/bin/lib/d1-query.js +87 -2
- package/bin/lib/hugo-markdown.js +4 -0
- package/bin/lib/site-pull-media.js +21 -28
- package/bin/lib/site-selection.js +10 -1
- package/bin/lib/site-snapshot.js +338 -3
- package/bin/lib/sql-export.js +68 -5
- package/bin/lib/wrangler-cli.js +9 -0
- package/bin/lib/zip-archive.js +187 -0
- package/dist/{app-K_Aa1MMn.js → app-ZcaI1kPN.js} +732 -217
- package/dist/client/.vite/manifest.json +20 -20
- package/dist/client/_assets/chunks/{create-editor-CD3FhrOB.js → create-editor-B-m7X7S5.js} +50 -46
- package/dist/client/_assets/chunks/{sortable-list-CgaL2jCs.js → sortable-list-BJyd-LXE.js} +1 -1
- package/dist/client/_assets/chunks/{unsafe-svg-0QCkP0vZ.js → unsafe-svg-BkscJx69.js} +2 -2
- package/dist/client/_assets/{client-GiYENVw8.css → client-DAhoqPdr.css} +1 -1
- package/dist/client/_assets/{client-auth-k8gJ6QJj.js → client-auth-CAMfTrKW.js} +1 -1
- package/dist/client/_assets/{client-compose-B_kDtWkW.js → client-compose-D6rExKVK.js} +1 -1
- package/dist/client/_assets/{client-VnFxJN7G.js → client-knSEyUJO.js} +1 -1
- package/dist/client/_assets/{client-manage-M90aSTOk.js → client-manage-sVOkqVbH.js} +1 -1
- package/dist/client/_assets/{client-settings-DfYs9n1F.js → client-settings-CGR_nZ78.js} +7 -7
- package/dist/{github-sync-BPAvT999.js → github-sync-Gw4orAHk.js} +799 -110
- package/dist/index.js +2 -2
- package/dist/node.js +9 -5
- package/package.json +13 -3
- package/src/__tests__/dev-scripts.test.ts +203 -0
- package/src/__tests__/export-collection-order.test.ts +276 -0
- package/src/__tests__/export-feed-ids.test.ts +184 -0
- package/src/__tests__/export-feed-order.test.ts +294 -0
- package/src/__tests__/export-hugo-build.test.ts +130 -0
- package/src/__tests__/export-import-roundtrip.test.ts +94 -0
- package/src/__tests__/export-service.test.ts +611 -28
- package/src/__tests__/export-smart-collection.test.ts +329 -0
- package/src/__tests__/helpers/hugo-site.ts +146 -0
- package/src/__tests__/import-site-command.test.ts +487 -1
- package/src/__tests__/mise-config.test.ts +75 -4
- package/src/__tests__/node-dev-tasks.test.ts +264 -0
- package/src/__tests__/site-export-canonical-import.test.ts +149 -0
- package/src/__tests__/snapshot-canonical-replay.test.ts +179 -0
- package/src/__tests__/snapshot-settings.test.ts +97 -0
- package/src/__tests__/snapshot-tables.test.ts +219 -0
- package/src/__tests__/sql-export.test.ts +173 -0
- package/src/__tests__/zip-archive.test.ts +106 -0
- package/src/app.tsx +15 -6
- package/src/client/components/__tests__/jant-settings-avatar.test.ts +1 -1
- package/src/client/components/__tests__/jant-settings-general.test.ts +21 -1
- package/src/client/components/jant-repo-picker-types.ts +6 -1
- package/src/client/components/jant-repo-picker.ts +4 -7
- package/src/client/components/jant-settings-general.ts +17 -12
- package/src/client/tiptap/__tests__/list-editing.test.ts +224 -86
- package/src/client/tiptap/__tests__/mark-exit.test.ts +1 -2
- package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +26 -0
- package/src/client/tiptap/extensions.ts +0 -3
- package/src/client/tiptap/structural-keymap.ts +158 -47
- package/src/db/__tests__/d1-query.test.ts +56 -1
- package/src/i18n/locales/settings/en.po +8 -8
- package/src/i18n/locales/settings/en.ts +1 -1
- package/src/i18n/locales/settings/zh-Hans.po +8 -8
- package/src/i18n/locales/settings/zh-Hans.ts +1 -1
- package/src/i18n/locales/settings/zh-Hant.po +8 -8
- package/src/i18n/locales/settings/zh-Hant.ts +1 -1
- package/src/lib/__tests__/github-sync-repo-name.test.ts +40 -0
- package/src/lib/__tests__/image.test.ts +27 -1
- package/src/lib/__tests__/markdown-to-tiptap.test.ts +105 -0
- package/src/lib/__tests__/markdown.test.ts +10 -0
- package/src/lib/__tests__/resolve-config.test.ts +67 -0
- package/src/lib/__tests__/schemas.test.ts +27 -1
- package/src/lib/__tests__/timeline.test.ts +87 -0
- package/src/lib/__tests__/tiptap-to-markdown.test.ts +172 -4
- package/src/lib/discover.ts +3 -1
- package/src/lib/github-sync-repo-name.ts +45 -0
- package/src/lib/hugo-markdown.ts +46 -0
- package/src/lib/image.ts +17 -4
- package/src/lib/markdown-manager.ts +392 -2
- package/src/lib/post-body-html.ts +11 -4
- package/src/lib/resolve-config.ts +58 -1
- package/src/lib/schemas.ts +50 -5
- package/src/lib/thread-fold.ts +3 -3
- package/src/lib/timeline.ts +1 -1
- package/src/lib/tiptap-to-markdown.ts +13 -7
- package/src/lib/url.ts +20 -0
- package/src/lib/view.ts +2 -2
- package/src/node/__tests__/cli-setup.test.ts +163 -0
- package/src/node/__tests__/cli-site-snapshot.test.ts +67 -0
- package/src/node/__tests__/cli-snapshot-meta.test.ts +20 -0
- package/src/node/__tests__/runtime.test.ts +38 -0
- package/src/node/index.ts +2 -0
- package/src/node/request-handler.ts +3 -1
- package/src/routes/api/__tests__/posts.test.ts +24 -0
- package/src/routes/api/__tests__/upload.test.ts +34 -0
- package/src/routes/api/export.ts +3 -3
- package/src/routes/api/internal/sites.ts +0 -1
- package/src/routes/api/posts.ts +2 -0
- package/src/routes/api/public/posts.ts +21 -1
- package/src/routes/api/upload.ts +10 -3
- package/src/routes/compose.tsx +4 -0
- package/src/routes/dash/__tests__/github-sync-app.test.ts +365 -0
- package/src/routes/dash/settings.tsx +212 -70
- package/src/routes/pages/__tests__/post-page-round-trips.test.ts +211 -0
- package/src/routes/pages/__tests__/thread-order.test.ts +179 -0
- package/src/routes/pages/archive.tsx +17 -11
- package/src/routes/pages/featured.tsx +11 -5
- package/src/routes/pages/page.tsx +53 -31
- package/src/routes/pages/search.tsx +4 -2
- package/src/runtime/__tests__/readiness.test.ts +23 -0
- package/src/runtime/node.ts +49 -0
- package/src/runtime/readiness.ts +15 -0
- package/src/services/__tests__/bootstrap-setup-instance.test.ts +230 -0
- package/src/services/__tests__/custom-url.test.ts +34 -0
- package/src/services/__tests__/github-app-installations.test.ts +153 -0
- package/src/services/__tests__/github-sync-push.test.ts +46 -0
- package/src/services/__tests__/media.test.ts +31 -0
- package/src/services/__tests__/path.test.ts +56 -0
- package/src/services/__tests__/post-timeline.test.ts +127 -0
- package/src/services/__tests__/post.test.ts +74 -0
- package/src/services/bootstrap.ts +263 -44
- package/src/services/custom-url.ts +2 -2
- package/src/services/export-theme/layouts/_default/alias.html +27 -1
- package/src/services/export-theme/layouts/_default/list.html +2 -63
- package/src/services/export-theme/layouts/_default/rss.xml +27 -38
- package/src/services/export-theme/layouts/collections/list.html +3 -3
- package/src/services/export-theme/layouts/featured/list.html +1 -4
- package/src/services/export-theme/layouts/index.html +40 -26
- package/src/services/export-theme/layouts/partials/collection-members.html +100 -0
- package/src/services/export-theme/layouts/partials/collection-threads.html +33 -0
- package/src/services/export-theme/layouts/partials/featured-members.html +35 -0
- package/src/services/export-theme/layouts/partials/featured-thread.html +1 -1
- package/src/services/export-theme/layouts/partials/footer.html +1 -1
- package/src/services/export-theme/layouts/partials/head.html +1 -1
- package/src/services/export-theme/layouts/partials/header.html +5 -3
- package/src/services/export-theme/layouts/partials/jant-data.html +23 -0
- package/src/services/export-theme/layouts/partials/latest-members.html +48 -0
- package/src/services/export-theme/layouts/partials/smart-collection-members.html +129 -0
- package/src/services/export-theme/layouts/partials/thread-preview.html +1 -1
- package/src/services/export-theme/layouts/post/list.html +1 -1
- package/src/services/export-theme/layouts/smart_collection/list.html +24 -0
- package/src/services/export-theme/styles/main.css +0 -1
- package/src/services/export-theme/theme.toml +1 -1
- package/src/services/export.ts +620 -71
- package/src/services/github-app-installations.ts +171 -4
- package/src/services/github-sync.ts +69 -15
- package/src/services/mcp.ts +19 -1
- package/src/services/media.ts +8 -1
- package/src/services/path.ts +34 -1
- package/src/services/post.ts +214 -39
- package/src/services/site-admin.ts +3 -7
- package/src/services/site.ts +83 -31
- package/src/styles/ui.css +7 -1
- package/src/types/app-context.ts +16 -0
- package/src/types/bindings.ts +5 -0
- package/src/types/operations.ts +10 -0
- package/src/ui/dash/settings/GeneralContent.tsx +10 -8
- package/src/client/tiptap/exitable-marks.ts +0 -73
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{T as e,g as t,h as n,i as r,m as i,n as a,t as o,u as s,x as ee,y as te}from"./chunks/lit-DW8VmJAT.js";import"./client-
|
|
1
|
+
import{T as e,g as t,h as n,i as r,m as i,n as a,t as o,u as s,x as ee,y as te}from"./chunks/lit-DW8VmJAT.js";import"./client-knSEyUJO.js";import{n as c,t as ne}from"./chunks/confirm-D7GrwsCN.js";import{_ as l,a as re,d as u,f as d,g as f,h as p,i as ie,l as m,m as ae,n as oe,p as se,r as ce,t as h,u as g,v as _,y as le}from"./chunks/unsafe-svg-BkscJx69.js";import{r as v}from"./chunks/slug-format-CRXO1AL5.js";import{h as y,l as ue,u as b}from"./chunks/types-D5iF3H1a.js";import{t as de}from"./chunks/settings-paths-BcdySNx6.js";var x=`M12 3 10.1 10.1 3 12l7.1 1.9L12 21l1.9-7.1L21 12l-7.1-1.9Z`,fe=`M4 4 20 20`,pe=200,me=class extends o{static properties={_open:{state:!0},_query:{state:!0},_items:{state:!0},_note:{state:!0},_loading:{state:!0},_searched:{state:!0}};#e=null;#t=null;#n=0;createRenderRoot(){return this.innerHTML=``,this}constructor(){super(),this._open=!1,this._query=``,this._items=[],this._note=``,this._loading=!1,this._searched=!1}disconnectedCallback(){super.disconnectedCallback();let e=this.#e;this.#e=null,e?.resolve(null)}pick(e){return this.#e?.resolve(null),this._query=``,this._items=[],this._note=``,this._loading=!1,this._searched=!1,this._open=!0,new Promise(t=>{this.#e={...e,resolve:t},this.updateComplete.then(()=>{let e=this.querySelector(`.picker-dialog`);e&&!e.open&&e.showModal(),this.querySelector(`.picker-dialog-input`)?.focus()})})}#r(e){this.#t&&clearTimeout(this.#t),this.#t=null,this.#n+=1;let t=this.querySelector(`.picker-dialog`);t?.open&&t.close();let n=this.#e;this.#e=null,this._open=!1,n?.resolve(e)}#i(e){let t=this.#e;if(!t)return;let n=e.target.value;this._query=n,this.#t&&clearTimeout(this.#t);let r=t.minQueryLength??2;if(n.trim().length<r){this.#n+=1,this._items=[],this._note=``,this._loading=!1,this._searched=!1;return}this._loading=!0,this.#t=setTimeout(()=>{this.#a(n,t)},pe)}async#a(e,t){let n=++this.#n;try{let r=await t.search(e);if(n!==this.#n)return;this._items=r.items,this._note=r.note??``}catch{if(n!==this.#n)return;this._items=[],this._note=``}finally{n===this.#n&&(this._loading=!1,this._searched=!0)}}#o(e){if(e.key===`Escape`){e.preventDefault(),this.#r(null);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let t=Array.from(this.querySelectorAll(`.picker-dialog-option`));if(t.length===0)return;e.preventDefault();let n=document.activeElement,r=t.findIndex(e=>e===n),i=e.key===`ArrowDown`?r<0?0:Math.min(r+1,t.length-1):r<=0?-1:r-1;if(i<0){this.querySelector(`.picker-dialog-input`)?.focus();return}t[i]?.focus()}#s(e){e.target===e.currentTarget&&this.#r(null)}render(){let e=this.#e;if(!this._open||!e)return a;let t=e.minQueryLength??2,n=this._query.trim().length<t;return r`
|
|
2
2
|
<dialog
|
|
3
3
|
class="dialog picker-dialog"
|
|
4
4
|
@cancel=${e=>{e.preventDefault(),this.#r(null)}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_assets/chunks/emoji-mart-C4RpRKcU.js","_assets/chunks/rolldown-runtime-hePW80VL.js","_assets/chunks/mediabunny-DRaCQ1r-.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{b as e,c as t,f as n,h as r,i,l as a,n as o,s,t as c,u as l}from"./chunks/lit-DW8VmJAT.js";import{r as u}from"./chunks/footnote-rail-CmeoVtnU.js";import{n as d}from"./chunks/unsafe-html-B5ZEXaxg.js";import{c as f,i as p,n as m,o as h,r as g,s as _,t as v}from"./chunks/unsafe-svg-
|
|
2
|
+
import{b as e,c as t,f as n,h as r,i,l as a,n as o,s,t as c,u as l}from"./chunks/lit-DW8VmJAT.js";import{r as u}from"./chunks/footnote-rail-CmeoVtnU.js";import{n as d}from"./chunks/unsafe-html-B5ZEXaxg.js";import{c as f,i as p,n as m,o as h,r as g,s as _,t as v}from"./chunks/unsafe-svg-BkscJx69.js";import{i as y,r as b,t as x}from"./chunks/slug-format-CRXO1AL5.js";import{_ as S,p as C}from"./chunks/types-D5iF3H1a.js";import{a as w,f as ee,i as te,n as T,o as E,r as D,s as ne,t as O,u as re}from"./chunks/sortable-list-BJyd-LXE.js";import{_ as ie,a as k,c as A,d as j,f as M,g as N,h as ae,i as oe,l as se,m as ce,n as le,o as ue,p as de,s as fe,u as pe}from"./chunks/create-editor-B-m7X7S5.js";var P=e=>e??o;function me(e){let t=e.trim().toLowerCase();if(!t)return;let n=t.split(`-`)[0];if(n===`zh`){let e=t.slice(3);return e===`hant`||e===`tw`||e===`hk`||e===`mo`?`zh-Hant`:`zh-Hans`}if(n===`ja`)return`ja`;if(n===`ko`)return`ko`}var he=`们这会说对时国学个来过现发经应关点无义与从门问间东车长马鸟鱼见贝页风飞头语话认识讲论议记让试该请读谁调谈变边达运还进远连适选递邮释钟银错锁闭开闻阅队阶阳阴陆陈险隐难静韩须顾频颜题类飘饭饮饰馆驻驾验骑骗体处备够夺奋妇妈宁宝实宽宾寻导尔尘尝尽层属岁岂岛币帅帮归当录彻忆态怀恋恶悬惊惧惨愤愿战户扩扫扬担拟挂挤挥换据摄击敌断旧显术机杀杂权条极构柜标树桥检楼欢欧残毁气汉汤沟泪洁济浏浅浆涛润涨渐渔渗湾湿满滨滤灭灯灵灾炉烦烧热营爱状犹狮独狱猎猪献猫环电画畅疗疯皱监盘矿码确础礼祸种积称稳穷窃竞笔筹简签粮紧纪纯纲纳纵纷纸线组细织终绍结绕绘给络绝统继绩绪续维综绿缓编缘缩缴网罗罚罢习联声职聪肃肠胀脑脱腊舰艰节苏药荐荡获萧蓝虏虚虽蚀蜡补装观规觉计订讨训讯词译诉诊证评诚误诸课谅谓谢谱贡财责贤败货质贩贪购贯贱贴贵贷贸费贺资赏赐赔赖赚赛赢赠赶趋践轨转轮软载较辅辈辉输辐辑辞迁迈违迟逊遗邓邻郑针钉钓钙钝钞钢钥钦钩钱钻铁铃铅铜铝铺链销锋锐锦键镇镜闪闯闲闷闹阀阁阵际隶随雾项顶预领颇颈颗颠饥饱饼馈驰驱驶骂骄鲁鲜鸡鸣鸦鸭鸽鹅鹰麦黄齐齿龄龙龟儿优传伤侦侧俭债倾偿储兰兴军农决净减凤凭则刘创剑剧劝办务动励劳势勋医华单卖卫厅历压厌厨参叶号叹吗启呐员呜响哑唤啸喷嘱团园围图圆场坏块坚坛垒垦堕墙壮壳复`,ge=`們這會說對時國學後個來過現發經應關點無義與從門問間東車長馬鳥魚見貝頁風飛頭語話認識講論議記讓試該請讀誰調談變邊達運還進遠連適選遞郵釋鐘銀錯鎖閉開聞閱隊階陽陰陸陳險隱難靜韓須顧頻顏題類飄飯飲飾館駐駕驗騎騙體處備夠奪奮婦媽寧寶實寬賓尋導爾塵嘗盡層屬歲豈島幣帥幫歸當錄徹憶態懷戀惡懸驚懼慘憤願戰戶擴掃揚擔擬掛擠揮換據攝擊敵斷舊顯術機殺雜權條極構櫃標樹橋檢樓歡歐殘毀氣漢湯溝淚潔濟瀏淺漿濤潤漲漸漁滲灣濕滿濱濾滅燈靈災爐煩燒熱營愛狀猶獅獨獄獵豬獻貓環電畫暢療瘋皺監盤礦碼確礎禮禍種積稱穩窮竊競筆籌簡簽糧緊紀純綱納縱紛紙線組細織終紹結繞繪給絡絕統繼績緒續維綜綠緩編緣縮繳網羅罰罷習聯聲職聰肅腸脹腦脫臘艦艱節蘇藥薦蕩獲蕭藍虜虛雖蝕蠟補裝觀規覺計訂討訓訊詞譯訴診證評誠誤諸課諒謂謝譜貢財責賢敗貨質販貪購貫賤貼貴貸貿費賀資賞賜賠賴賺賽贏贈趕趨踐軌轉輪軟載較輔輩輝輸輻輯辭遷邁違遲遜遺鄧鄰鄭針釘釣鈣鈍鈔鋼鑰欽鉤錢鑽鐵鈴鉛銅鋁鋪鏈銷鋒銳錦鍵鎮鏡閃闖閒悶鬧閥閣陣際隸隨霧項頂預領頗頸顆顛飢飽餅饋馳驅駛罵驕魯鮮雞鳴鴉鴨鴿鵝鷹麥黃齊齒齡龍龜兒優傳傷偵側儉債傾償儲蘭興軍農衝決淨減鳳憑劃則劉創劍劇勸辦務動勵勞勢勳醫華單賣衛廳歷壓厭廚參疊隻臺葉號嘆嗎啟吶員嗚響啞喚嘯噴囑團園圍圖圓場壞塊堅壇壘墾墮牆壯殼複`,_e=new Set(he),ve=new Set(ge);function ye(e){let t={hangul:0,kana:0,han:0,latin:0,simplified:0,traditional:0};for(let n of e){let e=n.codePointAt(0);if(e!==void 0){if(e>=44032&&e<=55203||e>=4352&&e<=4607||e>=12592&&e<=12687){t.hangul++;continue}if(e>=12352&&e<=12447||e>=12448&&e<=12543||e>=12784&&e<=12799){t.kana++;continue}if(e>=19968&&e<=40959||e>=13312&&e<=19903||e>=63744&&e<=64255){t.han++,_e.has(n)?t.simplified++:ve.has(n)&&t.traditional++;continue}(e>=65&&e<=90||e>=97&&e<=122||e>=192&&e<=591)&&t.latin++}}return t}var be=3,xe=10;function Se(e){let t=ye(e),n=(t.hangul+t.kana+t.han)*be;return n>=t.latin&&n>=xe?t.hangul>0?`ko`:t.kana>0?`ja`:t.simplified>t.traditional?`zh-Hans`:t.traditional>t.simplified?`zh-Hant`:`han`:t.latin>=xe?`latin`:null}function Ce(e,t){let{languages:n}=t;if(n.length===0)return null;let r=Se(e);if(!r)return null;if(r===`latin`){let e=n.filter(e=>!me(e));return e.length===1?e[0]:null}if(r===`han`){let e=n.filter(e=>{let t=me(e);return t===`zh-Hans`||t===`zh-Hant`});return e.length===1?e[0]:null}return n.find(e=>me(e)===r)??null}var we=/^—\s*(.*?)(?:\s+(https?:\/\/\S+))?\s*$/;function Te(e){return e?JSON.parse(JSON.stringify(e)):null}function Ee(e){return e?typeof e.text==`string`?e.text:Array.isArray(e.content)?e.content.map(Ee).join(``):``:``}function De(e,t=2){return{type:`heading`,attrs:{level:t},content:[{type:`text`,text:e}]}}function Oe(e){return e?{type:`paragraph`,content:[{type:`text`,text:e}]}:{type:`paragraph`}}function ke(e){return{type:`paragraph`,content:[{type:`text`,text:e,marks:[{type:`link`,attrs:{href:e}}]}]}}function Ae(e){let t=we.exec(e.trim());return t?{author:t[1].trim(),url:t[2]??null}:{author:``,url:null}}function je(e){if(!e)return null;if(Array.isArray(e.marks)){let t=e.marks.find(e=>e.type===`link`)?.attrs?.href;if(typeof t==`string`&&t)return t}if(Array.isArray(e.content))for(let t of e.content){let e=je(t);if(e)return e}return null}function Me(e,t){let n=e.trim(),r=t?.trim()??``;if(!n&&!r)return null;let i=e=>({type:`text`,text:e,marks:[{type:`link`,attrs:{href:r}}]});return n&&r?{type:`paragraph`,content:[{type:`text`,text:`— `},i(n)]}:n?{type:`paragraph`,content:[{type:`text`,text:`— ${n}`}]}:{type:`paragraph`,content:[{type:`text`,text:`— `},i(r)]}}function Ne(e,t){let n=e.split(`
|
|
3
3
|
`).map(e=>Oe(e));return t&&n.push(t),{type:`blockquote`,content:n}}function Pe(e,t,n){if(e===t)return n;let r={...n},i=Te(n.bodyJson),a=Array.isArray(i?.content)?[...i.content]:[];if(t===`link`&&r.url===``){let e=a[0],t=je(e);t&&e?.type===`paragraph`&&Array.isArray(e.content)&&e.content.length===1&&Ee(e)===t&&(r.url=t,a.shift())}if(t===`quote`&&r.quoteText===``&&a[0]?.type===`blockquote`){let e=Array.isArray(a[0].content)?[...a[0].content]:[],t=e[e.length-1],n=Ee(t);if(e.length>0&&/^—/.test(n.trim())){let i=Ae(n),a=je(t)??i.url,o=i.author===a?``:i.author;o&&(r.quoteAuthor=r.quoteAuthor||o),a&&r.url===``&&(r.url=a),e.pop()}r.quoteText=e.map(Ee).join(`
|
|
4
4
|
`).trim(),a.shift()}let o=[];if(t===`quote`&&r.title.trim()!==``&&(o.push(De(r.title.trim())),r.title=``),t!==`quote`&&r.quoteText.trim()!==``){let e=t===`note`?r.url:null;o.push(Ne(r.quoteText,Me(r.quoteAuthor,e))),r.quoteText=``,r.quoteAuthor=``,t===`note`&&(r.url=``)}else t===`note`&&r.url.trim()!==``&&(o.push(ke(r.url.trim())),r.url=``);return o.length&&a.unshift(...o),r.bodyJson=a.length?{type:`doc`,content:a}:null,t===`note`&&r.title.trim().length>0&&(r.showTitle=!0),r}var Fe=[`image/jpeg`,`image/png`,`image/gif`,`image/webp`,`image/svg+xml`,`image/avif`,`image/bmp`,`image/x-icon`],Ie=[`video/mp4`,`video/webm`,`video/quicktime`,`video/x-msvideo`,`video/x-matroska`,`video/mpeg`,`video/3gpp`,`video/x-flv`,`video/ogg`],Le=[`audio/mpeg`,`audio/ogg`,`audio/wav`,`audio/mp4`,`audio/x-m4a`,`audio/flac`,`audio/aac`,`audio/webm`,`audio/x-aiff`,`audio/opus`,`audio/3gpp`,`audio/midi`],Re=[`application/pdf`,`application/epub+zip`,`application/x-mobipocket-ebook`,`application/vnd.amazon.ebook`],ze=[`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/vnd.ms-powerpoint`,`application/vnd.openxmlformats-officedocument.presentationml.presentation`,`application/vnd.oasis.opendocument.text`,`application/vnd.oasis.opendocument.spreadsheet`,`application/vnd.oasis.opendocument.presentation`,`application/vnd.apple.pages`,`application/vnd.apple.numbers`,`application/vnd.apple.keynote`],Be=[`text/plain`,`text/markdown`,`text/csv`,`text/html`,`text/css`,`text/javascript`,`text/xml`,`text/rtf`,`text/tab-separated-values`,`text/calendar`,`application/json`,`application/xml`,`application/yaml`,`application/toml`],Ve=[`application/zip`,`application/x-tar`,`application/gzip`,`application/x-bzip2`,`application/x-7z-compressed`,`application/x-rar-compressed`,`application/zstd`],He=[`font/ttf`,`font/otf`,`font/woff`,`font/woff2`],Ue=[`model/gltf+json`,`model/gltf-binary`,`model/obj`,`application/x-figma`,`image/vnd.dxf`],We=[`application/sql`,`application/wasm`,`application/x-ipynb+json`,`application/x-sh`,`application/x-python-code`],Ge=new Map([...Fe.map(e=>[e,`image`]),...Ie.map(e=>[e,`video`]),...Le.map(e=>[e,`audio`]),...Re.map(e=>[e,`document`]),...ze.map(e=>[e,`office`]),...Be.map(e=>[e,`text`]),...Ve.map(e=>[e,`archive`]),...He.map(e=>[e,`font`]),...Ue.map(e=>[e,`3d`]),...We.map(e=>[e,`code`])]);function F(e){return Ge.get(e)||(e.startsWith(`image/`)?`image`:e.startsWith(`video/`)?`video`:e.startsWith(`audio/`)?`audio`:e.startsWith(`font/`)?`font`:e.startsWith(`model/`)?`3d`:e.startsWith(`text/`)?`text`:`archive`)}function Ke(e){return e.startsWith(`image/`)}new Set(Fe);var qe=new Set([`heic`,`heix`,`hevc`,`hevx`,`mif1`,`msf1`]);function Je(e){if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return`image/jpeg`;if(e.length>=8&&e[0]===137&&I(e,1,3)===`PNG`)return`image/png`;if(e.length>=6&&/^GIF8[79]a$/.test(I(e,0,6)))return`image/gif`;if(e.length>=12&&I(e,0,4)===`RIFF`&&I(e,8,4)===`WEBP`)return`image/webp`;if(e.length>=12&&I(e,4,4)===`ftyp`){let t=I(e,8,4);if(t===`avif`||t===`avis`)return`image/avif`;if(qe.has(t))return`image/heic`}return e.length>=2&&e[0]===66&&e[1]===77?`image/bmp`:e.length>=4&&e[0]===0&&e[1]===0&&e[2]===1&&e[3]===0?`image/x-icon`:new TextDecoder().decode(e.subarray(0,1024)).toLowerCase().includes(`<svg`)?`image/svg+xml`:null}function Ye(e,t){return Xe(e.type,e.size,t)}function Xe(e,t,n){if(n?.imagesOnly&&!Ke(e))return`File type not allowed.`;let r=n.maxFileSizeMB;return t>r*1024*1024?`File too large (max ${r}MB).`:null}function I(e,t,n){return new TextDecoder(`ascii`).decode(e.slice(t,t+n))}var L=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)}),Ze=`[data-editor-floating-ui]`,Qe=`single`,$e=`(max-width: 700px), (max-height: 760px), (hover: none) and (pointer: coarse)`,et={drafts:`
|
|
5
5
|
<rect x="3.85" y="3.45" width="7.85" height="8.35" rx="2.35" />
|
|
@@ -292,4 +292,4 @@ ${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{
|
|
|
292
292
|
</div>`}
|
|
293
293
|
</div>
|
|
294
294
|
</dialog>
|
|
295
|
-
`:t}};customElements.define(`jant-text-preview`,gn);function _n(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function vn(e,t){t&&(e.textContent=t)}function yn(e){let t=e.target;if(!(t instanceof globalThis.Element))return;let n=t.closest(`a[data-note-expand]`);if(!n||_n(e))return;let r=n.closest(`article[data-post]`),i=r?.querySelector(`[data-post-body]`);if(r&&i&&i.querySelector(`[data-note-break]`)){if(e.preventDefault(),i.hasAttribute(`data-note-clamp`)){i.removeAttribute(`data-note-clamp`),n.setAttribute(`aria-expanded`,`true`),vn(n,n.dataset.labelLess);return}i.setAttribute(`data-note-clamp`,``),n.setAttribute(`aria-expanded`,`false`),vn(n,n.dataset.labelMore),r.getBoundingClientRect().top<0&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`start`})}}document.addEventListener(`click`,yn),document.querySelectorAll(`.archive-chip-dropdown`).forEach(e=>{let t=e.querySelector(`:scope > button`),n=e.querySelector(`:scope > [data-popover]`),r=n?n.querySelector(`[role="listbox"]`):null;if(!t||!n||!r)return;let i=Array.from(r.querySelectorAll(`[role="option"]`)),a=e.classList.contains(`archive-chip-media`),o=e.dataset.filterKey,s=new Set;a&&i.forEach(e=>{!e.dataset.navigate&&e.getAttribute(`aria-selected`)===`true`&&s.add(e.dataset.value)});let c=new Set(s),l=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),a&&(c=new Set(s))},u=(e=!0)=>{if(n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus(),a&&o&&(s.size!==c.size||[...s].some(e=>!c.has(e))))){let e=new URL(window.location.href),t=[...s];t.length>0?e.searchParams.set(o,t.join(`,`)):e.searchParams.delete(o),e.searchParams.delete(`hasMedia`),e.searchParams.delete(`page`),window.location.href=e.pathname+(e.search||``)}};t.addEventListener(`click`,e=>{e.target.closest(`.archive-chip-clear`)||(t.getAttribute(`aria-expanded`)===`true`?u():l())}),document.addEventListener(`click`,t=>{e.contains(t.target)||u(!1)}),document.addEventListener(`basecoat:popover`,t=>{t.detail.source!==e&&u(!1)}),r.addEventListener(`click`,e=>{let t=e.target.closest(`[role="option"]`);if(t){if(t.dataset.navigate){let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e);return}if(a){let e=t.dataset.value;s.has(e)?(s.delete(e),t.removeAttribute(`aria-selected`)):(s.add(e),t.setAttribute(`aria-selected`,`true`))}else{let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e)}}});let d=-1,f=e=>{d>-1&&i[d]&&i[d].classList.remove(`active`),d=e,d>-1&&i[d]&&(i[d].classList.add(`active`),i[d].scrollIntoView({block:`nearest`}))};r.addEventListener(`mousemove`,e=>{let t=e.target.closest(`[role="option"]`);if(t){let e=i.indexOf(t);e!==-1&&e!==d&&f(e)}}),r.addEventListener(`mouseleave`,()=>{f(-1)}),t.addEventListener(`keydown`,e=>{let t=n.getAttribute(`aria-hidden`)===`false`;if(e.key===`Escape`){t&&(e.preventDefault(),u());return}if(!t&&[`ArrowDown`,`ArrowUp`].includes(e.key)){e.preventDefault(),l();return}t&&(e.preventDefault(),e.key===`ArrowDown`?f(Math.min(d+1,i.length-1)):e.key===`ArrowUp`?f(Math.max(d-1,0)):e.key===`Enter`&&d>-1&&(i[d].click(),!a&&!i[d].dataset.navigate&&u()))})});function bn(e=document){e.querySelectorAll(`.collection-sort-menu`).forEach(e=>{if(e.dataset.collectionSortMenuInitialized===`true`)return;let t=e.querySelector(`:scope > .collection-sort-trigger`),n=e.querySelector(`:scope > [data-popover]`),r=n?.querySelector(`[data-collection-sort-options]`);if(!(t instanceof HTMLButtonElement)||!n||!r)return;let i=(e=!1)=>{n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus())},a=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`)};t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?i(!1):a()}),t.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),i(!0);return}if(e.key===`ArrowDown`){e.preventDefault(),t.getAttribute(`aria-expanded`)!==`true`&&a();let n=r.querySelector(`a[href]`);n instanceof HTMLElement&&n.focus()}}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),i(!0))}),document.addEventListener(`click`,t=>{t.target instanceof Node&&(e.contains(t.target)||i(!1))}),document.addEventListener(`basecoat:popover`,t=>{t.detail?.source!==e&&i(!1)}),e.dataset.collectionSortMenuInitialized=`true`})}bn(),r(),document.documentElement.dataset.jantVersion=`0.7.
|
|
295
|
+
`:t}};customElements.define(`jant-text-preview`,gn);function _n(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function vn(e,t){t&&(e.textContent=t)}function yn(e){let t=e.target;if(!(t instanceof globalThis.Element))return;let n=t.closest(`a[data-note-expand]`);if(!n||_n(e))return;let r=n.closest(`article[data-post]`),i=r?.querySelector(`[data-post-body]`);if(r&&i&&i.querySelector(`[data-note-break]`)){if(e.preventDefault(),i.hasAttribute(`data-note-clamp`)){i.removeAttribute(`data-note-clamp`),n.setAttribute(`aria-expanded`,`true`),vn(n,n.dataset.labelLess);return}i.setAttribute(`data-note-clamp`,``),n.setAttribute(`aria-expanded`,`false`),vn(n,n.dataset.labelMore),r.getBoundingClientRect().top<0&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`start`})}}document.addEventListener(`click`,yn),document.querySelectorAll(`.archive-chip-dropdown`).forEach(e=>{let t=e.querySelector(`:scope > button`),n=e.querySelector(`:scope > [data-popover]`),r=n?n.querySelector(`[role="listbox"]`):null;if(!t||!n||!r)return;let i=Array.from(r.querySelectorAll(`[role="option"]`)),a=e.classList.contains(`archive-chip-media`),o=e.dataset.filterKey,s=new Set;a&&i.forEach(e=>{!e.dataset.navigate&&e.getAttribute(`aria-selected`)===`true`&&s.add(e.dataset.value)});let c=new Set(s),l=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),a&&(c=new Set(s))},u=(e=!0)=>{if(n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus(),a&&o&&(s.size!==c.size||[...s].some(e=>!c.has(e))))){let e=new URL(window.location.href),t=[...s];t.length>0?e.searchParams.set(o,t.join(`,`)):e.searchParams.delete(o),e.searchParams.delete(`hasMedia`),e.searchParams.delete(`page`),window.location.href=e.pathname+(e.search||``)}};t.addEventListener(`click`,e=>{e.target.closest(`.archive-chip-clear`)||(t.getAttribute(`aria-expanded`)===`true`?u():l())}),document.addEventListener(`click`,t=>{e.contains(t.target)||u(!1)}),document.addEventListener(`basecoat:popover`,t=>{t.detail.source!==e&&u(!1)}),r.addEventListener(`click`,e=>{let t=e.target.closest(`[role="option"]`);if(t){if(t.dataset.navigate){let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e);return}if(a){let e=t.dataset.value;s.has(e)?(s.delete(e),t.removeAttribute(`aria-selected`)):(s.add(e),t.setAttribute(`aria-selected`,`true`))}else{let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e)}}});let d=-1,f=e=>{d>-1&&i[d]&&i[d].classList.remove(`active`),d=e,d>-1&&i[d]&&(i[d].classList.add(`active`),i[d].scrollIntoView({block:`nearest`}))};r.addEventListener(`mousemove`,e=>{let t=e.target.closest(`[role="option"]`);if(t){let e=i.indexOf(t);e!==-1&&e!==d&&f(e)}}),r.addEventListener(`mouseleave`,()=>{f(-1)}),t.addEventListener(`keydown`,e=>{let t=n.getAttribute(`aria-hidden`)===`false`;if(e.key===`Escape`){t&&(e.preventDefault(),u());return}if(!t&&[`ArrowDown`,`ArrowUp`].includes(e.key)){e.preventDefault(),l();return}t&&(e.preventDefault(),e.key===`ArrowDown`?f(Math.min(d+1,i.length-1)):e.key===`ArrowUp`?f(Math.max(d-1,0)):e.key===`Enter`&&d>-1&&(i[d].click(),!a&&!i[d].dataset.navigate&&u()))})});function bn(e=document){e.querySelectorAll(`.collection-sort-menu`).forEach(e=>{if(e.dataset.collectionSortMenuInitialized===`true`)return;let t=e.querySelector(`:scope > .collection-sort-trigger`),n=e.querySelector(`:scope > [data-popover]`),r=n?.querySelector(`[data-collection-sort-options]`);if(!(t instanceof HTMLButtonElement)||!n||!r)return;let i=(e=!1)=>{n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus())},a=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`)};t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?i(!1):a()}),t.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),i(!0);return}if(e.key===`ArrowDown`){e.preventDefault(),t.getAttribute(`aria-expanded`)!==`true`&&a();let n=r.querySelector(`a[href]`);n instanceof HTMLElement&&n.focus()}}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),i(!0))}),document.addEventListener(`click`,t=>{t.target instanceof Node&&(e.contains(t.target)||i(!1))}),document.addEventListener(`basecoat:popover`,t=>{t.detail?.source!==e&&i(!1)}),e.dataset.collectionSortMenuInitialized=`true`})}bn(),r(),document.documentElement.dataset.jantVersion=`0.7.1-380517d00e9b9119`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{S as e,T as t,_ as n,d as r,g as i,h as a,i as o,n as s,t as c,u as l,v as u,x as d}from"./chunks/lit-DW8VmJAT.js";import{n as f}from"./chunks/unsafe-html-B5ZEXaxg.js";import{n as p,t as m}from"./chunks/site-header-nav-DzXsFk05.js";import{n as h}from"./chunks/confirm-D7GrwsCN.js";import{n as g,r as _,t as v}from"./chunks/slug-format-CRXO1AL5.js";import{_ as ee,a as te,c as ne,i as y,n as re,o as b,p as x,r as ie,s as ae}from"./chunks/types-D5iF3H1a.js";import{a as S,i as oe,n as se,r as C,t as w}from"./chunks/settings-paths-BcdySNx6.js";import{a as ce,c as le,d as ue,f as T,i as de,l as fe,n as pe,o as E,r as D,s as O,t as k}from"./chunks/sortable-list-
|
|
1
|
+
import{S as e,T as t,_ as n,d as r,g as i,h as a,i as o,n as s,t as c,u as l,v as u,x as d}from"./chunks/lit-DW8VmJAT.js";import{n as f}from"./chunks/unsafe-html-B5ZEXaxg.js";import{n as p,t as m}from"./chunks/site-header-nav-DzXsFk05.js";import{n as h}from"./chunks/confirm-D7GrwsCN.js";import{n as g,r as _,t as v}from"./chunks/slug-format-CRXO1AL5.js";import{_ as ee,a as te,c as ne,i as y,n as re,o as b,p as x,r as ie,s as ae}from"./chunks/types-D5iF3H1a.js";import{a as S,i as oe,n as se,r as C,t as w}from"./chunks/settings-paths-BcdySNx6.js";import{a as ce,c as le,d as ue,f as T,i as de,l as fe,n as pe,o as E,r as D,s as O,t as k}from"./chunks/sortable-list-BJyd-LXE.js";import{_ as me,r as A,t as j}from"./chunks/create-editor-B-m7X7S5.js";function M(e){if(!e)return;let t=document.createElement(`template`);t.innerHTML=e.trim();let n=[`[data-site-header-fragment="header"]`,`[data-site-header-fragment="drawer-backdrop"]`,`[data-site-header-fragment="drawer"]`],r=!1;m(document);for(let e of n){let n=document.querySelector(e),i=t.content.querySelector(e);n&&i&&(n.replaceWith(i),r=!0)}r&&p(document)}var he=`<svg class="lucide lucide-funnel icon-fine" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z"/></svg>`,ge=250,_e=o`<svg
|
|
2
2
|
viewBox="0 0 24 24"
|
|
3
3
|
fill="none"
|
|
4
4
|
stroke="currentColor"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";import{a as o,i as s,r as c,s as l,t as u}from"./chunks/jant-locale-picker-DL6mIOT5.js";import{n as d}from"./chunks/confirm-D7GrwsCN.js";import{_ as f,d as p,h as m,l as h,m as g,p as _,u as v}from"./chunks/types-D5iF3H1a.js";import{r as y,t as b}from"./chunks/create-editor-CD3FhrOB.js";var x={ICO_16:16,ICO_32:32,APPLE_TOUCH:512};function S(e){let t=e.length*16,n=6+t,r=new ArrayBuffer(6+t),i=new DataView(r);i.setUint16(0,0,!0),i.setUint16(2,1,!0),i.setUint16(4,e.length,!0);let a=[];for(let t=0;t<e.length;t++){let r=e[t],o=6+t*16;i.setUint8(o+0,r.size<256?r.size:0),i.setUint8(o+1,r.size<256?r.size:0),i.setUint8(o+2,0),i.setUint8(o+3,0),i.setUint16(o+4,1,!0),i.setUint16(o+6,32,!0),i.setUint32(o+8,r.png.byteLength,!0),i.setUint32(o+12,n,!0),n+=r.png.byteLength,a.push(r.png)}return new Blob([r,...a],{type:`image/x-icon`})}var C=180;function w(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{URL.revokeObjectURL(r.src),t(r)},r.onerror=()=>n(Error(`Failed to load image`)),r.src=URL.createObjectURL(e)})}function T(e,t){let n=document.createElement(`canvas`);n.width=t,n.height=t;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);r.imageSmoothingEnabled=!0,r.imageSmoothingQuality=`high`;let i=Math.max(t/e.width,t/e.height),a=t/i,o=t/i,s=(e.width-a)/2,c=(e.height-o)/2;return r.drawImage(e,s,c,a,o,0,0,t,t),new Promise((e,t)=>{n.toBlob(n=>{n?e(n):t(Error(`Failed to create PNG blob`))},`image/png`)})}function E(e,t){return e.type===`image/png`&&t.width===t.height&&t.width>=C&&t.height>=C}async function D(t,n){let r=t.closest(`form`)?.querySelector(`label`),i=r?.textContent??``;try{r&&(r.textContent=t.dataset.textProcessing||`Processing...`);let i=await w(n),a=n,o=n.name;if(n.type!==`image/svg+xml`){let e=await T(i,512);a=new File([e],n.name.replace(/\.[^.]+$/,`.png`),{type:`image/png`}),o=a.name}let s=E(n,i)?Promise.resolve(n):T(i,x.APPLE_TOUCH),[c,l,u]=await Promise.all([T(i,16),T(i,32),s]),[d,p]=await Promise.all([c.arrayBuffer(),l.arrayBuffer()]),m=S([{size:16,png:d},{size:32,png:p}]);r&&(r.textContent=t.dataset.textUploading||`Uploading...`);let h=new FormData;h.append(`file`,a,o),h.append(`favicon`,m,`favicon.ico`),h.append(`appleTouch`,u,`apple-touch-icon.png`);let g=await fetch(e(`/settings/avatar`),{method:`POST`,headers:{Accept:`application/json`},body:h});if(!g.ok){let e=t.dataset.textError||`Upload failed. Please try again.`;try{let t=await f(g);e=_(t,`error`)??_(t,`message`)??e}catch{}throw Error(e)}let v=await f(g),y=_(v,`status`),b=_(v,`url`);if(y===`redirect`&&b){window.location.href=b;return}window.location.href=e(`/settings/avatar?saved`)}catch(e){r&&(r.textContent=i),a(e instanceof Error&&e.message?e.message:t.dataset.textError||`Upload failed. Please try again.`,`error`)}t.value=``}function O(){document.addEventListener(`change`,e=>{let t=e.target.closest(`[data-avatar-upload]`);t?.files?.[0]&&(e.stopPropagation(),D(t,t.files[0]))})}O();var k=[`latest`,`featured`,`off`];function A(e){let t=e?.trim();return t&&k.includes(t)?t:null}function ee(e){if(e.demoMode||!e.rssFeedsEnabled)return`none`;let t=A(e.storedValue);if(t)return t===`off`?`none`:t;if(e.noindex)return`none`;let n=A(e.defaultValue);return n?n===`off`?`none`:n:`none`}var j={links:`Links`,quotes:`Quotes`};function M(e,t){let n=[],r=t.filter(e=>e.term&&e.href).sort((e,t)=>t.term.length-e.term.length);for(let{term:t,href:i}of r)for(let r=e.indexOf(t);r!==-1;r=e.indexOf(t,r+1)){let e=r+t.length;if(!n.some(t=>r<t.end&&t.start<e)){n.push({start:r,end:e,href:i});break}}n.sort((e,t)=>e.start-t.start);let i=[],a=0;for(let{start:t,end:r,href:o}of n)t>a&&i.push({text:e.slice(a,t)}),i.push({text:e.slice(t,r),href:o}),a=r;return a<e.length&&i.push({text:e.slice(a)}),i}function N(e,t,n){return n?M(e,[{term:t.name,href:n.home},{term:j.links,href:n.links},{term:j.quotes,href:n.quotes},{term:t.rules,href:n.rules}]):[{text:e}]}var P=`flex flex-col py-8 first:pt-0 last:pb-0`,F=class extends i{static properties={labels:{type:Object},timezones:{type:Array},siteNameFallback:{type:String,attribute:`sitename-fallback`},siteDescriptionFallback:{type:String,attribute:`sitedescription-fallback`},demoMode:{type:Boolean,attribute:`demo-mode`},discoverDefault:{type:String,attribute:`discover-default`},discoverPages:{type:Object,attribute:`discover-pages`},discoverStatus:{type:String,attribute:`discover-status`},feedsEnabled:{type:Boolean,attribute:`feeds-enabled`},mainFeedUrl:{type:String,attribute:`main-feed-url`},latestFeedUrl:{type:String,attribute:`latest-feed-url`},featuredFeedUrl:{type:String,attribute:`featured-feed-url`},archiveFeedUrl:{type:String,attribute:`archive-feed-url`},feedsDocsUrl:{type:String,attribute:`feeds-docs-url`},aboutPage:{type:Object,attribute:`about-page`},aboutEditUrl:{type:String,attribute:`about-edit-url`},aboutCreateUrl:{type:String,attribute:`about-create-url`},_siteName:{state:!0},_siteDescription:{state:!0},_siteFooter:{state:!0},_origSite:{state:!0},_siteDirty:{state:!0},_siteLoading:{state:!0},_timeZone:{state:!0},_origLocale:{state:!0},_localeDirty:{state:!0},_localeLoading:{state:!0},_mainRssFeed:{state:!0},_origMainRssFeed:{state:!0},_feedLoading:{state:!0},_showJantBrandingOnHome:{state:!0},_origShowJantBrandingOnHome:{state:!0},_homeLoading:{state:!0},_noindex:{state:!0},_origNoindex:{state:!0},_searchLoading:{state:!0},_discover:{state:!0},_origDiscover:{state:!0},_discoverLoading:{state:!0}};_descEditor=null;_footerEditor=null;createRenderRoot(){return this.innerHTML=``,this}constructor(){super(),this.labels={},this.timezones=[],this.siteNameFallback=``,this.siteDescriptionFallback=``,this.demoMode=!1,this.mainFeedUrl=`/feed`,this.latestFeedUrl=`/latest/feed`,this.featuredFeedUrl=`/featured/feed`,this.archiveFeedUrl=`/archive/feed`,this.feedsDocsUrl=``,this.aboutPage={state:`missing`,path:`/about`},this.aboutEditUrl=`/about?edit=1`,this.aboutCreateUrl=`/settings/general/about-page`,this._siteName=``,this._siteDescription=``,this._siteFooter=``,this._origSite={siteName:``,siteDescription:``,siteFooter:``},this._siteDirty=!1,this._siteLoading=!1,this._timeZone=`UTC`,this._origLocale={timeZone:`UTC`},this._localeDirty=!1,this._localeLoading=!1,this._mainRssFeed=`featured`,this._origMainRssFeed=`featured`,this._feedLoading=!1,this._noindex=!1,this._origNoindex=!1,this._showJantBrandingOnHome=!1,this._origShowJantBrandingOnHome=!1,this._homeLoading=!1,this._searchLoading=!1,this.discoverDefault=``,this.discoverPages=null,this.discoverStatus=``,this.feedsEnabled=!1,this._discover=``,this._origDiscover=``,this._discoverLoading=!1}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._descEditor?.destroy(),this._descEditor=null,this._footerEditor?.destroy(),this._footerEditor=null}initData(e){this._siteName=e.siteName,this._siteDescription=e.siteDescription,this._siteFooter=e.siteFooter,this._timeZone=e.timeZone,this._origLocale={timeZone:e.timeZone},this._mainRssFeed=e.mainRssFeed,this._origMainRssFeed=e.mainRssFeed,this._showJantBrandingOnHome=e.showJantBrandingOnHome,this._origShowJantBrandingOnHome=e.showJantBrandingOnHome,this._noindex=e.noindex,this._origNoindex=e.noindex,this._discover=e.discover,this._origDiscover=e.discover,this.updateComplete.then(()=>{this._initEditors(),this._origSite={siteName:e.siteName,siteDescription:this._siteDescription,siteFooter:this._siteFooter}})}sectionSaved(e){e===`site`?(this._origSite={siteName:this._siteName,siteDescription:this._siteDescription,siteFooter:this._siteFooter},this._siteDirty=!1,this._siteLoading=!1):e===`time`?(this._origLocale={timeZone:this._timeZone},this._localeDirty=!1,this._localeLoading=!1):e===`feeds`?(this._origMainRssFeed=this._mainRssFeed,this._feedLoading=!1):e===`home`?(this._origShowJantBrandingOnHome=this._showJantBrandingOnHome,this._homeLoading=!1):e===`search`?(this._origNoindex=this._noindex,this._searchLoading=!1):e===`discover`&&(this._origDiscover=this._discover,this._discoverLoading=!1)}sectionError(e){e===`site`?this._siteLoading=!1:e===`time`?this._localeLoading=!1:e===`feeds`?(this._mainRssFeed=this._origMainRssFeed,this._feedLoading=!1):e===`home`?(this._showJantBrandingOnHome=this._origShowJantBrandingOnHome,this._homeLoading=!1):e===`search`?(this._noindex=this._origNoindex,this._searchLoading=!1):e===`discover`&&(this._discover=this._origDiscover,this._discoverLoading=!1)}_initEditors(){this._initDescEditor(),this._initFooterEditor()}_initDescEditor(){let e=this.querySelector(`[data-settings-desc-editor]`);if(!e||this._descEditor)return;this._descEditor=b({element:e,placeholder:this.siteDescriptionFallback,content:this._siteDescription||void 0,onUpdate:e=>{this._siteDescription=e,this._syncSiteDirty()}}),this._siteDescription=y(this._descEditor.getJSON());let t=e.querySelector(`.ProseMirror`);t&&(t.style.outline=`none`,t.style.minHeight=`3rem`)}_initFooterEditor(){let e=this.querySelector(`[data-settings-footer-editor]`);if(!e||this._footerEditor)return;this._footerEditor=b({element:e,content:this._siteFooter||void 0,onUpdate:e=>{this._siteFooter=e,this._syncSiteDirty()}}),this._siteFooter=y(this._footerEditor.getJSON());let t=e.querySelector(`.ProseMirror`);t&&(t.style.outline=`none`,t.style.minHeight=`6rem`)}_syncSiteDirty(){this._siteDirty=this._siteName!==this._origSite.siteName||this._siteDescription!==this._origSite.siteDescription||this._siteFooter!==this._origSite.siteFooter}_saveSite(){!this._siteLoading&&this._siteDirty&&(this._siteLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general`,data:{siteName:this._siteName,siteDescription:this._siteDescription,siteFooter:this._siteFooter},section:`site`}})))}_syncLocaleDirty(){this._localeDirty=this._timeZone!==this._origLocale.timeZone}_saveLocale(){!this._localeLoading&&this._localeDirty&&(this._localeLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/time`,data:{timeZone:this._timeZone},section:`time`}})))}_saveMainRssFeed(e){this._feedLoading||e===this._mainRssFeed||(this._mainRssFeed=e,this._feedLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/feeds`,data:{mainRssFeed:e},section:`feeds`}})))}_saveHomeToggle(e){this._homeLoading||(this._showJantBrandingOnHome=e,this._homeLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/home`,data:{showJantBrandingOnHome:e},section:`home`}})))}_saveSearchToggle(e){this.demoMode||this._searchLoading||(this._noindex=!e,this._searchLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/search`,data:{allowIndexing:e},section:`search`}})))}_effectiveDiscoverMode(e={}){return ee({storedValue:this._discover||null,defaultValue:this.discoverDefault||null,demoMode:this.demoMode,noindex:e.noindex??this._noindex,rssFeedsEnabled:this.feedsEnabled})}_onDiscoverToggle(e){this._saveDiscover(e?`latest`:`off`)}_saveDiscover(e){this._discoverLoading||(this._discover=e,this._discoverLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/discover`,data:{discover:e},section:`discover`}})))}_onKeydown(e,t,n,r){e.isComposing||e.keyCode===229||e.key===`Enter`&&!r&&n&&!(e.target instanceof HTMLTextAreaElement)&&(e.preventDefault(),t())}_renderSaveAction(e,r,i){return t`
|
|
1
|
+
import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";import{a as o,i as s,r as c,s as l,t as u}from"./chunks/jant-locale-picker-DL6mIOT5.js";import{n as d}from"./chunks/confirm-D7GrwsCN.js";import{_ as f,d as p,h as m,l as h,m as g,p as _,u as v}from"./chunks/types-D5iF3H1a.js";import{r as y,t as b}from"./chunks/create-editor-B-m7X7S5.js";var x={ICO_16:16,ICO_32:32,APPLE_TOUCH:512};function S(e){let t=e.length*16,n=6+t,r=new ArrayBuffer(6+t),i=new DataView(r);i.setUint16(0,0,!0),i.setUint16(2,1,!0),i.setUint16(4,e.length,!0);let a=[];for(let t=0;t<e.length;t++){let r=e[t],o=6+t*16;i.setUint8(o+0,r.size<256?r.size:0),i.setUint8(o+1,r.size<256?r.size:0),i.setUint8(o+2,0),i.setUint8(o+3,0),i.setUint16(o+4,1,!0),i.setUint16(o+6,32,!0),i.setUint32(o+8,r.png.byteLength,!0),i.setUint32(o+12,n,!0),n+=r.png.byteLength,a.push(r.png)}return new Blob([r,...a],{type:`image/x-icon`})}var C=180;function w(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{URL.revokeObjectURL(r.src),t(r)},r.onerror=()=>n(Error(`Failed to load image`)),r.src=URL.createObjectURL(e)})}function T(e,t){let n=document.createElement(`canvas`);n.width=t,n.height=t;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);r.imageSmoothingEnabled=!0,r.imageSmoothingQuality=`high`;let i=Math.max(t/e.width,t/e.height),a=t/i,o=t/i,s=(e.width-a)/2,c=(e.height-o)/2;return r.drawImage(e,s,c,a,o,0,0,t,t),new Promise((e,t)=>{n.toBlob(n=>{n?e(n):t(Error(`Failed to create PNG blob`))},`image/png`)})}function E(e,t){return e.type===`image/png`&&t.width===t.height&&t.width>=C&&t.height>=C}async function D(t,n){let r=t.closest(`form`)?.querySelector(`label`),i=r?.textContent??``;try{r&&(r.textContent=t.dataset.textProcessing||`Processing...`);let i=await w(n),a=n,o=n.name;if(n.type!==`image/svg+xml`){let e=await T(i,512);a=new File([e],n.name.replace(/\.[^.]+$/,`.png`),{type:`image/png`}),o=a.name}let s=E(n,i)?Promise.resolve(n):T(i,x.APPLE_TOUCH),[c,l,u]=await Promise.all([T(i,16),T(i,32),s]),[d,p]=await Promise.all([c.arrayBuffer(),l.arrayBuffer()]),m=S([{size:16,png:d},{size:32,png:p}]);r&&(r.textContent=t.dataset.textUploading||`Uploading...`);let h=new FormData;h.append(`file`,a,o),h.append(`favicon`,m,`favicon.ico`),h.append(`appleTouch`,u,`apple-touch-icon.png`);let g=await fetch(e(`/settings/avatar`),{method:`POST`,headers:{Accept:`application/json`},body:h});if(!g.ok){let e=t.dataset.textError||`Upload failed. Please try again.`;try{let t=await f(g);e=_(t,`error`)??_(t,`message`)??e}catch{}throw Error(e)}let v=await f(g),y=_(v,`status`),b=_(v,`url`);if(y===`redirect`&&b){window.location.href=b;return}window.location.href=e(`/settings/avatar?saved`)}catch(e){r&&(r.textContent=i),a(e instanceof Error&&e.message?e.message:t.dataset.textError||`Upload failed. Please try again.`,`error`)}t.value=``}function O(){document.addEventListener(`change`,e=>{let t=e.target.closest(`[data-avatar-upload]`);t?.files?.[0]&&(e.stopPropagation(),D(t,t.files[0]))})}O();var k=[`latest`,`featured`,`off`];function A(e){let t=e?.trim();return t&&k.includes(t)?t:null}function ee(e){if(e.demoMode||!e.rssFeedsEnabled)return`none`;let t=A(e.storedValue);if(t)return t===`off`?`none`:t;if(e.noindex)return`none`;let n=A(e.defaultValue);return n?n===`off`?`none`:n:`none`}var j={links:`Links`,quotes:`Quotes`};function M(e,t){let n=[],r=t.filter(e=>e.term&&e.href).sort((e,t)=>t.term.length-e.term.length);for(let{term:t,href:i}of r)for(let r=e.indexOf(t);r!==-1;r=e.indexOf(t,r+1)){let e=r+t.length;if(!n.some(t=>r<t.end&&t.start<e)){n.push({start:r,end:e,href:i});break}}n.sort((e,t)=>e.start-t.start);let i=[],a=0;for(let{start:t,end:r,href:o}of n)t>a&&i.push({text:e.slice(a,t)}),i.push({text:e.slice(t,r),href:o}),a=r;return a<e.length&&i.push({text:e.slice(a)}),i}function N(e,t,n){return n?M(e,[{term:t.name,href:n.home},{term:j.links,href:n.links},{term:j.quotes,href:n.quotes},{term:t.rules,href:n.rules}]):[{text:e}]}var P=`flex flex-col py-8 first:pt-0 last:pb-0`,F=class extends i{static properties={labels:{type:Object},timezones:{type:Array},siteNameFallback:{type:String,attribute:`sitename-fallback`},siteDescriptionFallback:{type:String,attribute:`sitedescription-fallback`},demoMode:{type:Boolean,attribute:`demo-mode`},discoverDefault:{type:String,attribute:`discover-default`},discoverPages:{type:Object,attribute:`discover-pages`},discoverStatus:{type:String,attribute:`discover-status`},feedsEnabled:{type:Boolean,attribute:`feeds-enabled`},mainFeedUrl:{type:String,attribute:`main-feed-url`},latestFeedUrl:{type:String,attribute:`latest-feed-url`},featuredFeedUrl:{type:String,attribute:`featured-feed-url`},archiveFeedUrl:{type:String,attribute:`archive-feed-url`},feedsDocsUrl:{type:String,attribute:`feeds-docs-url`},aboutPage:{type:Object,attribute:`about-page`},aboutEditUrl:{type:String,attribute:`about-edit-url`},aboutCreateUrl:{type:String,attribute:`about-create-url`},_siteName:{state:!0},_siteDescription:{state:!0},_siteFooter:{state:!0},_origSite:{state:!0},_siteDirty:{state:!0},_siteLoading:{state:!0},_timeZone:{state:!0},_origLocale:{state:!0},_localeDirty:{state:!0},_localeLoading:{state:!0},_mainRssFeed:{state:!0},_origMainRssFeed:{state:!0},_feedLoading:{state:!0},_showJantBrandingOnHome:{state:!0},_origShowJantBrandingOnHome:{state:!0},_homeLoading:{state:!0},_noindex:{state:!0},_origNoindex:{state:!0},_searchLoading:{state:!0},_discover:{state:!0},_origDiscover:{state:!0},_discoverLoading:{state:!0}};_descEditor=null;_footerEditor=null;createRenderRoot(){return this.innerHTML=``,this}constructor(){super(),this.labels={},this.timezones=[],this.siteNameFallback=``,this.siteDescriptionFallback=``,this.demoMode=!1,this.mainFeedUrl=`/feed`,this.latestFeedUrl=`/latest/feed`,this.featuredFeedUrl=`/featured/feed`,this.archiveFeedUrl=`/archive/feed`,this.feedsDocsUrl=``,this.aboutPage={state:`missing`,path:`/about`},this.aboutEditUrl=`/about?edit=1`,this.aboutCreateUrl=`/settings/general/about-page`,this._siteName=``,this._siteDescription=``,this._siteFooter=``,this._origSite={siteName:``,siteDescription:``,siteFooter:``},this._siteDirty=!1,this._siteLoading=!1,this._timeZone=`UTC`,this._origLocale={timeZone:`UTC`},this._localeDirty=!1,this._localeLoading=!1,this._mainRssFeed=`featured`,this._origMainRssFeed=`featured`,this._feedLoading=!1,this._noindex=!1,this._origNoindex=!1,this._showJantBrandingOnHome=!1,this._origShowJantBrandingOnHome=!1,this._homeLoading=!1,this._searchLoading=!1,this.discoverDefault=``,this.discoverPages=null,this.discoverStatus=``,this.feedsEnabled=!1,this._discover=``,this._origDiscover=``,this._discoverLoading=!1}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._descEditor?.destroy(),this._descEditor=null,this._footerEditor?.destroy(),this._footerEditor=null}initData(e){this._siteName=e.siteName,this._siteDescription=e.siteDescription,this._siteFooter=e.siteFooter,this._timeZone=e.timeZone,this._origLocale={timeZone:e.timeZone},this._mainRssFeed=e.mainRssFeed,this._origMainRssFeed=e.mainRssFeed,this._showJantBrandingOnHome=e.showJantBrandingOnHome,this._origShowJantBrandingOnHome=e.showJantBrandingOnHome,this._noindex=e.noindex,this._origNoindex=e.noindex,this._discover=e.discover,this._origDiscover=e.discover,this.updateComplete.then(()=>{this._initEditors(),this._origSite={siteName:e.siteName,siteDescription:this._siteDescription,siteFooter:this._siteFooter}})}sectionSaved(e){e===`site`?(this._origSite={siteName:this._siteName,siteDescription:this._siteDescription,siteFooter:this._siteFooter},this._siteDirty=!1,this._siteLoading=!1):e===`time`?(this._origLocale={timeZone:this._timeZone},this._localeDirty=!1,this._localeLoading=!1):e===`feeds`?(this._origMainRssFeed=this._mainRssFeed,this._feedLoading=!1):e===`home`?(this._origShowJantBrandingOnHome=this._showJantBrandingOnHome,this._homeLoading=!1):e===`search`?(this._origNoindex=this._noindex,this._searchLoading=!1):e===`discover`&&(this._origDiscover=this._discover,this._discoverLoading=!1)}sectionError(e){e===`site`?this._siteLoading=!1:e===`time`?this._localeLoading=!1:e===`feeds`?(this._mainRssFeed=this._origMainRssFeed,this._feedLoading=!1):e===`home`?(this._showJantBrandingOnHome=this._origShowJantBrandingOnHome,this._homeLoading=!1):e===`search`?(this._noindex=this._origNoindex,this._searchLoading=!1):e===`discover`&&(this._discover=this._origDiscover,this._discoverLoading=!1)}_initEditors(){this._initDescEditor(),this._initFooterEditor()}_initDescEditor(){let e=this.querySelector(`[data-settings-desc-editor]`);if(!e||this._descEditor)return;this._descEditor=b({element:e,placeholder:this.siteDescriptionFallback,content:this._siteDescription||void 0,onUpdate:e=>{this._siteDescription=e,this._syncSiteDirty()}}),this._siteDescription=y(this._descEditor.getJSON());let t=e.querySelector(`.ProseMirror`);t&&(t.style.outline=`none`,t.style.minHeight=`3rem`)}_initFooterEditor(){let e=this.querySelector(`[data-settings-footer-editor]`);if(!e||this._footerEditor)return;this._footerEditor=b({element:e,content:this._siteFooter||void 0,onUpdate:e=>{this._siteFooter=e,this._syncSiteDirty()}}),this._siteFooter=y(this._footerEditor.getJSON());let t=e.querySelector(`.ProseMirror`);t&&(t.style.outline=`none`,t.style.minHeight=`6rem`)}_syncSiteDirty(){this._siteDirty=this._siteName!==this._origSite.siteName||this._siteDescription!==this._origSite.siteDescription||this._siteFooter!==this._origSite.siteFooter}_saveSite(){!this._siteLoading&&this._siteDirty&&(this._siteLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general`,data:{siteName:this._siteName,siteDescription:this._siteDescription,siteFooter:this._siteFooter},section:`site`}})))}_syncLocaleDirty(){this._localeDirty=this._timeZone!==this._origLocale.timeZone}_saveLocale(){!this._localeLoading&&this._localeDirty&&(this._localeLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/time`,data:{timeZone:this._timeZone},section:`time`}})))}_saveMainRssFeed(e){this._feedLoading||e===this._mainRssFeed||(this._mainRssFeed=e,this._feedLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/feeds`,data:{mainRssFeed:e},section:`feeds`}})))}_saveHomeToggle(e){this._homeLoading||(this._showJantBrandingOnHome=e,this._homeLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/home`,data:{showJantBrandingOnHome:e},section:`home`}})))}_saveSearchToggle(e){this.demoMode||this._searchLoading||(this._noindex=!e,this._searchLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/search`,data:{allowIndexing:e},section:`search`}})))}_effectiveDiscoverMode(e={}){return ee({storedValue:this._discover||null,defaultValue:this.discoverDefault||null,demoMode:this.demoMode,noindex:e.noindex??this._noindex,rssFeedsEnabled:this.feedsEnabled})}_onDiscoverToggle(e){this._saveDiscover(e?`latest`:`off`)}_saveDiscover(e){this._discoverLoading||(this._discover=e,this._discoverLoading=!0,this.dispatchEvent(new CustomEvent(`jant:settings-save`,{bubbles:!0,detail:{endpoint:`/settings/general/discover`,data:{discover:e},section:`discover`}})))}_onKeydown(e,t,n,r){e.isComposing||e.keyCode===229||e.key===`Enter`&&!r&&n&&!(e.target instanceof HTMLTextAreaElement)&&(e.preventDefault(),t())}_renderSaveAction(e,r,i){return t`
|
|
2
2
|
<div class="flex mt-4">
|
|
3
3
|
<button
|
|
4
4
|
type="button"
|
|
@@ -248,7 +248,7 @@ import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";impor
|
|
|
248
248
|
<span>${this.labels.discoverEnabled}</span>
|
|
249
249
|
</label>
|
|
250
250
|
<p class="text-sm text-muted-foreground">
|
|
251
|
-
${r?this.demoMode?this.labels.discoverDemoLocked:this.labels.discoverFeedsOffLocked:this.
|
|
251
|
+
${this._renderDiscoverHelp(r?this.demoMode?this.labels.discoverDemoLocked:this.labels.discoverFeedsOffLocked:this.labels.discoverIntro)}
|
|
252
252
|
</p>
|
|
253
253
|
${i?t`<p class="text-sm text-muted-foreground">
|
|
254
254
|
${this.labels.discoverSearchOff}
|
|
@@ -256,7 +256,7 @@ import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";impor
|
|
|
256
256
|
</div>
|
|
257
257
|
${r?n:this._renderDiscoverStatus()}
|
|
258
258
|
</div>
|
|
259
|
-
`}
|
|
259
|
+
`}_renderDiscoverHelp(e){return N(e??``,{name:this.labels.discoverName??``,rules:this.labels.discoverRules??``},this.discoverPages).map(e=>e.href?t`<a
|
|
260
260
|
href=${e.href}
|
|
261
261
|
target="_blank"
|
|
262
262
|
rel="noopener noreferrer"
|
|
@@ -946,7 +946,7 @@ import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";impor
|
|
|
946
946
|
<li>
|
|
947
947
|
<button
|
|
948
948
|
type="button"
|
|
949
|
-
class="flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-muted"
|
|
949
|
+
class="flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left text-sm hover:bg-muted"
|
|
950
950
|
@click=${()=>this.#u(e)}
|
|
951
951
|
role="option"
|
|
952
952
|
aria-selected=${this._selectedOwner?.installationId===e.installationId}
|
|
@@ -1035,7 +1035,7 @@ import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";impor
|
|
|
1035
1035
|
<li>
|
|
1036
1036
|
<button
|
|
1037
1037
|
type="button"
|
|
1038
|
-
class="flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-muted"
|
|
1038
|
+
class="flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left text-sm hover:bg-muted"
|
|
1039
1039
|
@click=${()=>this.#d(e)}
|
|
1040
1040
|
role="option"
|
|
1041
1041
|
aria-selected=${this._selectedRepo?.fullName===e.fullName}
|
|
@@ -1052,13 +1052,13 @@ import{h as e,i as t,n,s as r,t as i,u as a}from"./chunks/lit-DW8VmJAT.js";impor
|
|
|
1052
1052
|
<div class="border-t p-2">
|
|
1053
1053
|
<button
|
|
1054
1054
|
type="button"
|
|
1055
|
-
class="flex w-full items-start gap-2 px-2 py-2 text-left text-sm text-primary hover:bg-muted
|
|
1055
|
+
class="flex w-full cursor-pointer items-start gap-2 rounded-md px-2 py-2 text-left text-sm text-primary hover:bg-muted"
|
|
1056
1056
|
@click=${()=>this.#c()}
|
|
1057
1057
|
>
|
|
1058
1058
|
<span class="flex flex-col">
|
|
1059
1059
|
<span class="font-medium">${this.labels.createOnGitHub} →</span>
|
|
1060
1060
|
${this.createRepoNameHint?t`<span class="text-xs text-muted-foreground">
|
|
1061
|
-
${this.labels.createOnGitHubHint
|
|
1061
|
+
${this.labels.createOnGitHubHint}
|
|
1062
1062
|
</span>`:n}
|
|
1063
1063
|
</span>
|
|
1064
1064
|
</button>
|