PageSourceSearch

https://likedtabs.com/assets/app-entry-GDv2G8wW.js

js likedtabs.com collected 2026-10-02 01:34:15 UTC 84,456 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/locale-en-Q3w1qYHg.js","assets/rolldown-runtime-DwynqlJ6.js","assets/applyServerDefaults-B3GW07Qn.js","assets/navigationStore-Dd5UN9Dn.js","assets/vendor-state-i3jb-oRH.js","assets/vendor-dnd-Bdjc1axw.js","assets/syncedStorage-Bn09z4Iz.js","assets/public-websites-seed-Yn52xus_.js","assets/supabase-DcCJ1NjG.js","assets/helpers-BzLZZMGf.js","assets/api-C5A9NsDb.js","assets/spaces-DunAg0jM.js","assets/privacyMode-Sntaz2e6.js","assets/onboarding-BjqSLc_T.js","assets/onboardingFunnelMetrics-ALszCuaL.js","assets/App-XyP6jYgJ.js","assets/vendor-react-zCSridww.js","assets/cardSurfaceStyles-CVrLbmmD.js","assets/desktopPetWindow-BKRedSnv.js","assets/useTranslation-CRDOaNdG.js","assets/todoReminders-DGpNthPh.js","assets/vendor-ui-ByBXTYhd.js","assets/CategoryWorkspace-UNRQZoFl.js","assets/ComponentIcon-DqBysL_5.js","assets/CommandLineIcon-G4Tk3UbW.js","assets/ArrowRightIcon-B-M8Hi0_.js","assets/DocumentArrowDownIcon-BPsAJVjX.js","assets/ChevronDownIcon-jnAihG3z.js","assets/ChatBubbleLeftRightIcon-D366Uk_s.js","assets/CheckCircleIcon-C0EE_Sti.js","assets/XCircleIcon-D527iVpD.js","assets/LockClosedIcon-CZwiloaR.js","assets/EyeIcon-BWIIaSI6.js","assets/GlobeAltIcon-CmHRvFUk.js","assets/LinkIcon-Cyn3bWRq.js","assets/MagnifyingGlassIcon-BySaNQrT.js","assets/MinusIcon-hw5wbo7Y.js","assets/PaperAirplaneIcon-DSnR2kYp.js","assets/PlusCircleIcon-9NEpwdl2.js","assets/ShieldCheckIcon-Dw_6lA0t.js","assets/SparklesIcon-CXwjwhD-.js","assets/TrashIcon-Ddfl76zY.js","assets/desktopPet-B5V-4FdM.js","assets/localToolCatalog-DQ59-9js.js","assets/memoCatalog-Btfn3mbz.js","assets/openExternalUrl-DSXTzQzA.js","assets/routineStore-MJXol_Hy.js","assets/browserBookmarkImport-BG3j2dLv.js","assets/websiteAutofill-DKlMbZe6.js","assets/widgetI18n-Cjd7-1QY.js","assets/aiFeatureQuotas-BjWvamSc.js","assets/CheckCircleIcon-D_GQi0Hr.js","assets/categoryI18n-CM25v4C3.js","assets/visibleSidebarCategories-SEH9Bu-d.js","assets/localizeWebsite--6bBmT4t.js","assets/MobileSectionMenu-BYOmtWnX.js","assets/AdaptiveHeaderNavigation-Cyx3R6dW.js","assets/ConfirmDialog-ChOZwG6U.js","assets/navigationUndo-DtHSnJ1-.js","assets/WidgetAppearancePreviewContext-D59ii11W.js","assets/aiGenerateButtonStyles-DLUAm9TV.js","assets/window-BtxHJ3OY.js","assets/core-DK51H2k3.js","assets/event-az8T4LCr.js","assets/DesktopPetWindow-Cc0Dbnfs.js","assets/desktopPetCatalog-D_P-LqRq.js","assets/desktopPetVoice-BsM4WWaL.js","assets/widgetPanelEvents-DURfytat.js","assets/DesktopPetWindow-C_OXWPYB.css"])))=>i.map(i=>d[i]);
2import{r as e}from"./rolldown-runtime-DwynqlJ6.js";import{n as t,r as a}from"./vendor-react-zCSridww.js";import{n as o,r as i}from"./vendor-state-i3jb-oRH.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const a of e)if("childList"===a.type)for(const e of a.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var r=e(a(),1),s="https://sjvuykmvjckelbrvjtse.supabase.co\r\n".replace(/\/$/,"")||"",n="sb_publishable_tFCc2HdyrSJ38WS4GZ2YqA_W6ipGA6f",l=Boolean(s&&"sb_publishable_tFCc2HdyrSJ38WS4GZ2YqA_W6ipGA6f"),d=`${s}/auth/v1`,c=`${s}/rest/v1`,m=[{code:"en",path:"",direction:"ltr",name:"English",nativeName:"English"},{code:"en-US",path:"en-us",direction:"ltr",name:"English (United States)",nativeName:"English (US)"},{code:"en-CA",path:"en-ca",direction:"ltr",name:"English (Canada)",nativeName:"English (Canada)"},{code:"en-GB",path:"en-gb",direction:"ltr",name:"English (United Kingdom)",nativeName:"English (UK)"},{code:"zh-CN",path:"zh",direction:"ltr",name:"Simplified Chinese",nativeName:"简体中文"},{code:"fr",path:"fr",direction:"ltr",name:"French",nativeName:"Français"},{code:"nl",path:"nl",direction:"ltr",name:"Dutch",nativeName:"Nederlands"},{code:"ko",path:"ko",direction:"ltr",name:"Korean",nativeName:"한국어"},{code:"ar",path:"ar",direction:"rtl",name:"Arabic",nativeName:"العربية"},{code:"hi",path:"hi",direction:"ltr",name:"Hindi",nativeName:"हिन्दी"},{code:"zh-TW",path:"zh-tw",direction:"ltr",name:"Traditional Chinese",nativeName:"繁體中文"},{code:"es",path:"es",direction:"ltr",name:"Spanish",nativeName:"Español"},{code:"pt-PT",path:"pt-pt",direction:"ltr",name:"Portuguese (Portugal)",nativeName:"Português (PT)"},{code:"pt-BR",path:"pt-br",direction:"ltr",name:"Portuguese (Brazil)",nativeName:"Português (BR)"},{code:"ru",path:"ru",direction:"ltr",name:"Russian",nativeName:"Русский"},{code:"de",path:"de",direction:"ltr",name:"German",nativeName:"Deutsch"},{code:"ja",path:"ja",direction:"ltr",name:"Japanese",nativeName:"日本語"},{code:"it",path:"it",direction:"ltr",name:"Italian",nativeName:"Italiano"},{code:"pl",path:"pl",direction:"ltr",name:"Polish",nativeName:"Polski"},{code:"tr",path:"tr",direction:"ltr",name:"Turkish",nativeName:"Türkçe"},{code:"vi",path:"vi",direction:"ltr",name:"Vietnamese",nativeName:"Tiếng Việt"},{code:"id",path:"id",direction:"ltr",name:"Indonesian",nativeName:"Bahasa Indonesia"},{code:"bn",path:"bn",direction:"ltr",name:"Bengali",nativeName:"বাংলা"}
2,{code:"ur",path:"ur",direction:"rtl",name:"Urdu",nativeName:"اردو"},{code:"fa",path:"fa",direction:"rtl",name:"Persian",nativeName:"فارسی"},{code:"th",path:"th",direction:"ltr",name:"Thai",nativeName:"ไทย"},{code:"uk",path:"uk",direction:"ltr",name:"Ukrainian",nativeName:"Українська"},{code:"ro",path:"ro",direction:"ltr",name:"Romanian",nativeName:"Română"},{code:"ms",path:"ms",direction:"ltr",name:"Malay",nativeName:"Bahasa Melayu"},{code:"fil",path:"fil",direction:"ltr",name:"Filipino",nativeName:"Filipino"},{code:"ta",path:"ta",direction:"ltr",name:"Tamil",nativeName:"தமிழ்"},{code:"te",path:"te",direction:"ltr",name:"Telugu",nativeName:"తెలుగు"},{code:"mr",path:"mr",direction:"ltr",name:"Marathi",nativeName:"मराठी"},{code:"sw",path:"sw",direction:"ltr",name:"Swahili",nativeName:"Kiswahili"},{code:"he",path:"he",direction:"rtl",name:"Hebrew",nativeName:"עברית"},{code:"cs",path:"cs",direction:"ltr",name:"Czech",nativeName:"Čeština"},{code:"dsb",path:"dsb",direction:"ltr",name:"Lower Sorbian",nativeName:"Dolnoserbšćina"},{code:"el",path:"el",direction:"ltr",name:"Greek",nativeName:"Ελληνικά"},{code:"es-AR",path:"es-ar",direction:"ltr",name:"Spanish (Argentina)",nativeName:"Español (Argentina)"},{code:"es-CL",path:"es-cl",direction:"ltr",name:"Spanish (Chile)",nativeName:"Español (Chile)"},{code:"es-ES",path:"es-es",direction:"ltr",name:"Spanish (Spain)",nativeName:"Español (España)"},{code:"es-MX",path:"es-mx",direction:"ltr",name:"Spanish (Mexico)",nativeName:"Español (México)"},{code:"fi",path:"fi",direction:"ltr",name:"Finnish",nativeName:"suomi"},{code:"fur",path:"fur",direction:"ltr",name:"Friulian",nativeName:"Furlan"},{code:"fy-NL",path:"fy-nl",direction:"ltr",name:"West Frisian",nativeName:"Frysk"},{code:"hr",path:"hr",direction:"ltr",name:"Croatian",nativeName:"Hrvatski"},{code:"hsb",path:"hsb",direction:"ltr",name:"Upper Sorbian",nativeName:"Hornjoserbsce"},{code:"hu",path:"hu",direction:"ltr",name:"Hungarian",nativeName:"magyar"},{code:"ia",path:"ia",direction:"ltr",name:"Interlingua",nativeName:"Interlingua"},{code:"ka",path:"ka",direction:"ltr",name:"Georgian",nativeName:"ქართული"},{code:"kab",path:"kab",direction:"ltr",name:"Kabyle",nativeName:"Taqbaylit"},{code:"nb-NO",path:"nb-no",direction:"ltr",name:"Norwegian Bokmål",nativeName:"Norsk bokmål"},{code:"nn-NO",path:"nn-no",direction:"ltr",name:"Norwegian Nynorsk",nativeName:"Norsk nynorsk"},{code:"sk",path:"sk",direction:"ltr",name:"Slovak",nativeName:"slovenčina"},{code:"sl",path:"sl",direction:"ltr",name:"Slovenian",nativeName:"Slovenščina"}
2,{code:"sq",path:"sq",direction:"ltr",name:"Albanian",nativeName:"Shqip"},{code:"sv-SE",path:"sv-se",direction:"ltr",name:"Swedish",nativeName:"Svenska"}],p={},u=function(e,t,a){let o=Promise.resolve();if(t&&t.length>0){const e=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),r=a?.nonce||a?.getAttribute("nonce");i=t.map(t=>{var a;if(t=function(e){return"/"+e}(t),a=t,(t=import.meta.resolve?import.meta.resolve(a):new URL(a,import.meta.url).href)in p)return;p[t]=!0;const o=t.endsWith(".css");for(let r=e.length-1;r>=0;r--){const a=e[r];if(a.href===t&&(!o||"stylesheet"===a.rel))return}const i=document.createElement("link");return i.rel=o?"stylesheet":"modulepreload",o||(i.as="script"),i.crossOrigin="",i.href=t,r&&i.setAttribute("nonce",r),document.head.appendChild(i),o?new Promise((e,a)=>{i.addEventListener("load",e),i.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${t}`)))}):void 0}),o=Promise.all(i.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}var i;function r(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(const e of t||[])"rejected"===e.status&&r(e.reason);return e().catch(r)})},_={},h={en:()=>u(()=>import("./locale-en-Q3w1qYHg.js").then(e=>e.n),__vite__mapDeps([0,1])),"en-US":()=>u(()=>import("./locale-en-US-CsfZPFgo.js"),[]),"en-CA":()=>u(()=>import("./locale-en-CA-CJ0XeQUA.js"),[]),"en-GB":()=>u(()=>import("./locale-en-GB-C8E5JoQn.js"),[]),"zh-CN":()=>u(()=>import("./locale-zh-CN-ALlyVvOT.js"),[]),fr:()=>u(()=>import("./locale-fr-YuEQjbCm.js"),[]),nl:()=>u(()=>import("./locale-nl--uD_X9Qr.js"),[]),ko:()=>u(()=>import("./locale-ko-DDmtvoWQ.js"),[]),ar:()=>u(()=>import("./locale-ar-tvepDF_f.js"),[]),hi:()=>u(()=>import("./locale-hi-JCDY7PTm.js"),[]),"zh-TW":()=>u(()=>import("./locale-zh-TW-DiY9T3kW.js"),[]),es:()=>u(()=>import("./locale-es-Br-SrTiM.js"),[]),"pt-PT":()=>u(()=>import("./locale-pt-PT-DDF4Xkg1.js"),[]),"pt-BR":()=>u(()=>import("./locale-pt-BR-DUqHUVMv.js"),[]),ru:()=>u(()=>import("./locale-ru-Be3ZmVi2.js"),[]),de:()=>u(()=>import("./locale-de-6FSzW7fO.js"),[]),ja:()=>u(()=>import("./locale-ja-C5gu7_jZ.js"),[]),it:()=>u(()=>import("./locale-it-X187Zglx.js"),[]),pl:()=>u(()=>import("./locale-pl-B_lL_wSJ.js"),[]),tr:()=>u(()=>import("./locale-tr-LTXCUg1Y.js"),[]),vi:()=>u(()=>import("./locale-vi-D1Nge9Wi.js"),[]),id:()=>u(()=>import("./locale-id-BxBvcwjb.js"),[]),bn:()=>u(()=>import("./locale-bn-Dhcb30tu.js"),[]),ur:()=>u(()=>import("./locale-ur-Bd2c2pfd.js"),[]),fa:()=>u(()=>import("./locale-fa-DQAU5eFX.js"),[]),th:()=>u(()=>import("./locale-th-Ddt-jJ2I.js"),[]),uk:()=>u(()=>import("./locale-uk-nsuWH0mb.js"),[]),ro:()=>u(()=>import("./locale-ro-B7hPnn6V.js"),[]),ms:()=>u(()=>import("./locale-ms-BYVtcEHv.js"),[]),fil:()=>u(()=>import("./locale-fil-CRRpbNbL.js"),[]),ta:()=>u(()=>import("./locale-ta-LCt2pW3i.js"),[]),te:()=>u(()=>import("./locale-te-DYFUQ0HT.js"),[]),mr:()=>u(()=>import("./locale-mr-BhMczjy_.js"),[]),sw:()=>u(()=>import("./locale-sw-CZ0Km-6t.js"),[]),he:()=>u(()=>import("./locale-he-CYgdiz_J.js"),[]),cs:()=>u(()=>import("./locale-cs-nLKvo54g.js"),[]),dsb:()=>u(()=>import("./locale-dsb-B4Q9m9w4.js"),[]),el:()=>u(()=>import("./locale-el-GSUucKaC.js"),[]),"es-AR":()=>u(()=>import("./locale-es-AR-BBRHQEH4.js"),[]),"es-CL":()=>u(()=>import("./locale-es-CL-BmA3CjTK.js"),[]),"es-ES":()=>u(()=>import("./locale-es-ES-ihJh-law.js"),[]),"es-MX":()=>u(()=>import("./locale-es-MX-BiYm82PW.js"),[]),fi:()=>u(()=>import("./locale-fi-BC2eFnq8.js"),[]),fur:()=>u(()=>import("./locale-fur-DfG8Af-0.js"),[]),"fy-NL":()=>u(()=>import("./locale-fy-NL-Bp3EZfMG.js"),[]),hr:()=>u(()=>import("./locale-hr-CATy-AZ9.js"),[]),hsb:()=>u(()=>import("./locale-hsb-BlbrvLnQ.js"),[]),hu:()=>u(()=>import("./locale-hu-BzXNCw9i.js"),[]),ia:()=>u(()=>import("./locale-ia-DhLS_gPr.js"),[]),ka:()=>u(()=>import("./locale-ka-B98xiYpt.js"),[]),kab:()=>u(()=>import("./locale-kab-XfKETJh6.js"),[]),"nb-NO":()=>u(()=>import("./locale-nb-NO-BmxW35rr.js"),[]),"nn-NO":()=>u(()=>import("./locale-nn-NO-UJIa_oFo.js"),[]),sk:()=>u(()=>import("./locale-sk-CnLa6jFL.js"),[]),sl:()=>u(()=>import("./locale-sl-CT-gnjeF.js"),[]),sq:()=>u(()=>import("./locale-sq-DlR3GVFv.js"),[]),"sv-SE":()=>u(()=>import("./locale-sv-SE-C_6v9hrP.js"),[])},g=new Map,b=new Set,w=e=>(b.add(e),()=>b.delete(e)),f=e=>_[e],T=e=>{if(_[e])return Promise.resolve(_[e]);const t=g.get(e);if(t)return t;const a=h[e]().then(t=>{const a=t.default;return _[e]=a,g.delete(e),(()=>{for(const e of b)e()})(),a}).catch(t=>{if(g.delete(e),"en"===e)throw t;return T("en")});return g.set(e,a),a},v=m.map(({code:e,name:t,nativeName:a})=>({code:e,name:t,nativeName:a})),y=()=>"undefined"!=typeof window&&"__TAURI_INTERNALS__"in window,L=e=>{const t=[];for(let a=0;a<e.length;a+=1){const o=e.key(a);if(!o||!/aisnav/i.test(o))continue;const i=e.getItem(o);if(null===i)continue;const r=o.replace(/AISNAV/g,"LIKEDTABS").replace(/AIsNav/g,"LikedTabs").replace(/AisNav/g,"LikedTabs").replace(/aisnav/g,"likedtabs");r!==o&&t.push({oldKey:o,newKey:r,value:i})}for(const{oldKey:a,newKey:o,value:i}of t)null===e.getItem(o)&&e.setItem(o,i),e.removeItem(a)},E=()=>
2{try{L(window.localStorage)}catch{}try{L(window.sessionStorage)}catch{}},k="language-preference-explicit",A=e=>e.trim().replace(/_/g,"-").toLowerCase(),I=Object.fromEntries(Object.entries({zh:"zh-CN","zh-CN":"zh-CN","zh-Hans":"zh-CN","zh-Hans-CN":"zh-CN","zh-TW":"zh-TW","zh-Hant":"zh-TW","zh-Hant-TW":"zh-TW",en:"en","en-US":"en-US","en-CA":"en-CA","en-GB":"en-GB",fr:"fr","fr-FR":"fr",nl:"nl","nl-NL":"nl",ko:"ko","ko-KR":"ko",ar:"ar","ar-SA":"ar",hi:"hi","hi-IN":"hi",es:"es","es-AR":"es-AR","es-CL":"es-CL","es-ES":"es-ES","es-MX":"es-MX",pt:"pt-PT","pt-PT":"pt-PT","pt-BR":"pt-BR",ru:"ru","ru-RU":"ru",de:"de","de-DE":"de",ja:"ja","ja-JP":"ja",it:"it","it-IT":"it",pl:"pl","pl-PL":"pl",tr:"tr","tr-TR":"tr",vi:"vi","vi-VN":"vi",id:"id","id-ID":"id",bn:"bn","bn-BD":"bn",ur:"ur","ur-PK":"ur",fa:"fa","fa-IR":"fa",th:"th","th-TH":"th",uk:"uk","uk-UA":"uk",ro:"ro","ro-RO":"ro",ms:"ms","ms-MY":"ms",fil:"fil","fil-PH":"fil",ta:"ta","ta-IN":"ta",te:"te","te-IN":"te",mr:"mr","mr-IN":"mr",sw:"sw","sw-KE":"sw",he:"he","he-IL":"he",cs:"cs","cs-CZ":"cs",dsb:"dsb",el:"el","el-GR":"el",fi:"fi","fi-FI":"fi",fur:"fur",fy:"fy-NL","fy-NL":"fy-NL",hr:"hr","hr-HR":"hr",hsb:"hsb",hu:"hu","hu-HU":"hu",ia:"ia",ka:"ka","ka-GE":"ka",kab:"kab",nb:"nb-NO","nb-NO":"nb-NO",nn:"nn-NO","nn-NO":"nn-NO",sk:"sk","sk-SK":"sk",sl:"sl","sl-SI":"sl",sq:"sq","sq-AL":"sq",sv:"sv-SE","sv-SE":"sv-SE"}).map(([e,t])=>[A(e),t])),j=e=>{if("string"!=typeof e)return;const t=A(e);if(!t)return;const a=v.map(e=>e.code),o=I[t];if(o)return o;const i=a.find(e=>A(e)===t);if(i)return i;const r=t.split("-")[0],s=I[r];return s||a.find(e=>A(e).startsWith(`${r}-`))},P=(e=("undefined"==typeof navigator?[]:navigator.languages.length>0?navigator.languages:[navigator.language]))=>{for(const t of e){const e=j(t);if(e)return e}return"en"},C=(e,t)=>{if("string"==typeof e)try{const t=JSON.parse(e),a=j(t.state?.currentLanguage);if(a)return a}catch{}return void 0===t?P():P(t)},R=e=>{if(!e||"object"!=typeof e)return!1;const t=e;return"string"==typeof t.search_id&&Number.isFinite(t.occurred_at)&&"number"==typeof t.results_count&&Number.isInteger(t.results_count)&&t.results_count>0&&(e=>"main_search_bar"===e||"simple_search_widget"===e)(t.source)&&"boolean"==typeof t.result_clicked&&(void 0===t.result_type||(e=>"website"===e||"widget"===e)(t.result_type))},O=(e,t)=>{try{const a=JSON.parse(e.getItem("likedtabs:site-search-metrics")??"[]");if(!Array.isArray(a))return[];const o=(e=>e-2592e6)(t);return a.filter(R).filter(e=>e.occurred_at>=o&&e.occurred_at<=t).sort((e,t)=>e.occurred_at-t.occurred_at).slice(-500)}catch{return[]}},D=(e,t)=>{e.setItem("likedtabs:site-search-metrics",JSON.stringify(t))},S=e=>e??(()=>{if("undefined"==typeof window)return null;try{return window.localStorage}catch{return null}})(),V=new Set(["localhost","127.0.0.1","::1"]),N=/(?:Googlebot|Google-InspectionTool|AdsBot-Google|APIs-Google|Mediapartners-Google|bingbot|BingPreview|DuckDuckBot|Baiduspider|Yandex(?:Bot|Images|MobileBot)|Yahoo! Slurp|Sogou|Exabot|Applebot|PetalBot|Bytespider|GPTBot|ChatGPT-User|ClaudeBot|PerplexityBot|CCBot|Amazonbot|SemrushBot|AhrefsBot|MJ12bot|DotBot|facebookexternalhit|facebot|Twitterbot|LinkedInBot|Slackbot|Discordbot|TelegramBot|UptimeRobot|Pingdom|StatusCake)/i,B=e=>N.test(e),G=()=>"undefined"==typeof window||(!0===window.__LIKEDTABS_ANALYTICS_DISABLED__||"undefined"!=typeof navigator&&B(navigator.userAgent)),M=()=>{return"undefined"!=typeof window&&(e=window.location.hostname,!V.has(e.trim().toLowerCase())&&!G());var e},x="likedtabs_qualified_visit_tracked",W="likedtabs_internal_traffic",U=["utm_source","utm_medium","utm_campaign","utm_content"],H=/^[a-z0-9][a-z0-9._-]{0,63}$/i,q=()=>{if("undefined"==typeof window)return!1;const e=new URLSearchParams(window.location.search),t=e.get("likedtabs_internal")??e.get("aisnav_internal");return"1"===t||"true"===t?(window.localStorage.setItem(W,"true"),!0):"0"===t||"false"===t?(window.localStorage.removeItem(W),!1):"true"===window.localStorage.getItem(W)},z=()=>{const e="undefined"!=typeof navigator&&B(navigator.userAgent);return{traffic_type:q()?"internal":"external",traffic_quality:e?"bot_like":"normal",bot_like:e}},F=(e,t={})=>{G()||"undefined"!=typeof window&&"function"==typeof window.gtag&&window.gtag("event",e,{...z(),...t})},K=e=>{const{source:t,...a}=e;return{...a,...void 0===t?{}:{action_source:t}}},$=()=>"undefined"==typeof window?{}:U.reduce((e,t)=>
2{const a=new URLSearchParams(window.location.search).get(t)?.trim();return a&&H.test(a)&&(e[t]=a.toLowerCase()),e},{});var J=()=>"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`search-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;function Y(e){((e,t=Date.now(),a)=>{if(!e.search_id||!Number.isInteger(e.results_count)||e.results_count<=0)return;const o=S(a);if(!o)return;const i=O(o,t).filter(t=>t.search_id!==e.search_id);D(o,[...i,{...e,occurred_at:t,result_clicked:!1}].slice(-500))})(e),F("site_search",K(e))}function Q(e){((e,t,a=Date.now(),o)=>{const i=S(o);if(!i||!e)return;const r=O(i,a),s=r.findIndex(t=>t.search_id===e);s<0||r[s].result_clicked||(r[s]={...r[s],result_clicked:!0,result_type:t},D(i,r))})(e.search_id,e.result_type),F("search_result_click",e)}function X(e){F("scroll_depth",e)}function Z(e){F("qualified_visit",e)}function ee(e){F("install_cta_click",{...$(),...e})}function te(e){F("online_demo_open",{...$(),...e})}var ae=e=>e.replace(/\S+@\S+/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"").slice(0,64)||"unknown";function oe(e){F("auth_start",e)}function ie(e){F("sign_up",{...$(),...e})}function re(e){F("login",e)}function se(e){const{message:t,...a}=e;F("auth_error",{...a,reason:ae(t)})}function ne(e){F("core_action",K({action_name:e.action_name,source:e.source})),"undefined"!=typeof window&&"true"!==window.sessionStorage.getItem(x)&&(window.sessionStorage.setItem(x,"true"),Z({qualification_reason:"core_action",page_path:window.location.pathname}))}function le(e){ne({action_name:"add_website",source:e.source}),F("add_website",K({source:e.source}))}function de(e){ne({action_name:"browser_bookmarks"===e.import_type?"import_bookmarks":"external_new_tab"===e.import_type?"import_external_new_tab":"import_navigation",source:"import_export_panel",value:e.added_count+(e.updated_count??0)}),F("import_navigation",e)}function ce(e){ne({action_name:"export_navigation",source:"import_export_panel",value:e.website_count}),F("export_navigation",e)}function me(e){ne({action_name:"open_tool_detail",source:e.source}),F("open_tool_detail",K({source:e.source}))}function pe(e){ne({action_name:"visit_official_site",source:e.source}),F("visit_official_site",K({source:e.source}))}function ue(e){ne({action_name:"switch_view_mode",item_id:e.mode,source:e.source}),F("switch_view_mode",K(e))}function _e(e){ne({action_name:"switch_space",item_id:e.space_id,item_name:e.space_name,source:e.source}),F("switch_space",K({source:e.source}))}function he(e){ne({action_name:"switch_category",item_id:e.category_id,item_name:e.category_name,source:e.source}),F("switch_category",K({source:e.source}))}function ge(e){F("category_navigation_experiment",e)}function be(e){F("low_quality_visit",{...e,transport_type:"beacon"})}function we(e,t){G()||"undefined"!=typeof window&&window.gtag&&window.gtag("event",e,{...z(),...t})}var fe={categorySelect(e){we("category_select",{category_id:e})},toggleFavorite(e,t){we("toggle_favorite",{website_name:e,is_favorite:t})},deleteWebsite(e){we("delete_website",{website_name:e})},themeChange(e){we("theme_change",{theme:e})},languageChange(e){we("language_change",{language:e})},appModeView(e){we("app_mode_view",{mode:e})}},Te=v,ve=new Set(["ar","he","fa","ur"]),ye=e=>ve.has(e),Le=e=>{if("undefined"==typeof document)return;const t=document.documentElement;t.lang=e,t.dir=ye(e)?"rtl":"ltr"},Ee=()=>{try{return C(localStorage.getItem("language-storage"))}catch(e){return P()}},ke=i()(o(e=>({currentLanguage:Ee(),setLanguage:(t,a="user")=>{"user"===a&&(()=>{try{localStorage.setItem(k,"1")}catch{}})(),e({currentLanguage:t}),Le(t),fe.languageChange(t)},getLanguageOption:e=>Te.find(t=>t.code===e)}),{name:"language-storage",merge:(e,t)=>{return{...t,currentLanguage:(a=e?.currentLanguage,o=t.currentLanguage,j(a)??o)};var a,o}}));Le(ke.getState().currentLanguage);var Ae=[{id:"home",path:"/",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"about",path:"/about",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"guestbook",path:"/guestbook",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"submit",path:"/submit",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"welcome",path:"/welcome",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"useCases",path:"/use-cases",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"trust",path:"/trust",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"simpleMode",path:"/simplemode",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"blog",path:"/blog",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"replaceChromeNewTab2026",path:"/blog/replace-chrome-new-tab-2026",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"likedTabsVsTobyVsTabliss",path:"/blog/likedtabs-vs-toby-vs-tabliss",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"chatgptVsClaudeVsGemini2026",path:"/blog/chatgpt-vs-claude-vs-gemini-2026",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"bestBookmarkManagerChrome2026",path:"/blog/best-bookmark-manager-chrome-2026",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"howToOrganizeAiTools2026",path:"/blog/how-to-organize-ai-tools-browser",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"windowsShutdownShortcuts",path:"/blog/windows-11-shutdown-shortcuts",routerManaged:!0,routeLocaleCoverage:"en-zh",alternateLocaleCoverage:"en-zh"},{id:"dailyPost",path:"/blog/:dailySlug",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"alternativeComparison",path:"/alternatives/:competitor",routerManaged:!0,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryAll",path:"/ai-tools",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryWriting",path:"/ai-writing-tools",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryCoding",path:"/ai-coding-tools",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryImage",path:"/ai-image-tools",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryVideo",path:"/ai-video-tools",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryProductivity",path:"/ai-productivity-tools",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directoryBookmarks",path:"/ai-bookmark-manager",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"directorySimple",path:"/simple-new-tab",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"privacy",path:"/privacy",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"all"},{id:"toolDetail",path:"/tools/:slug",routerManaged:!1,routeLocaleCoverage:"all",alternateLocaleCoverage:"available"}],Ie=m,je=(Ie.map(({code:e})=>e),"https://likedtabs.com"),Pe=new Map(Ie.map(e=>[e.code,e])),Ce=new Map(Ie.filter(({path:e})=>e).map(({code:e,path:t})=>[t.toLowerCase(),e])),Re=e=>(e.startsWith("/")?e:`/${e}`)||"/",Oe=e=>
2Re(e).split("/").filter(Boolean)[0]?.toLowerCase()??"",De=e=>{const t=Re(e),a=Oe(t);return Ce.has(a)?t.replace(new RegExp(`^/${a}(?=/|$)`,"i"),"")||"/":t},Se=e=>Re(e).split(/[?#]/,1)[0].replace(/\/+$/,"")||"/",Ve=e=>"all"===e?Ie:Ie.filter(({code:e})=>"en"===e||"zh-CN"===e),Ne=e=>{const t=De(e);return Ae.find(({path:e})=>((e,t)=>{const a=Se(e).split("/").filter(Boolean),o=Se(t).split("/").filter(Boolean);return a.length===o.length&&o.every((e,t)=>e.startsWith(":")||e===a[t])})(t,e))},Be=e=>Ce.get(Oe(e))??"en",Ge=e=>{const t=Ne(e);if(!t)return null;const a=Be(e);return Ve(t.routeLocaleCoverage).some(({code:e})=>e===a)?a:null},Me=(e,t)=>{const a=De(t),o=Pe.get(e)?.path;return o?`/${o}${a}`:a},xe=(e,t)=>{const a=Me(e,t);return a.endsWith("/")?a:`${a}/`},We=(e,t,a="",o="")=>`${Me(e,t)}${a}${o}`,Ue=e=>{const t=De(e),a=Ne(t),o=Ve("all"===a?.alternateLocaleCoverage?"all":"en-zh"),i=`${je}${xe("en",t)}`;return[...o.map(({code:e})=>({hrefLang:e,href:`${je}${xe(e,t)}`})),{hrefLang:"x-default",href:i}]},He=e=>Pe.get(e)?.direction??"ltr",qe={components:{blogComments:{anonymous:"Anonymous",cancelReply:"Cancel reply",deleted:"This comment was deleted by moderation.",description:"Comments are reviewed before they appear publicly.",empty:"No published comments yet.",loadError:"Comments could not be loaded.",loading:"Loading comments…",loadingMore:"Loading more comments…",loadMore:"Load more comments",loadMoreError:"More comments could not be loaded.",message:"Comment",messagePlaceholder:"Share a useful question or experience…",nickname:"Name (optional)",pending:"Thanks — your comment is awaiting review.",rateLimited:"Too many comments. Please try again in a few minutes.",reply:"Reply",replyingTo:"Replying to {{name}}",report:"Report",reportError:"The report could not be sent. Your reason is still here.",reporting:"Sending…",reportPlaceholder:"Describe the issue…",reportReason:"Why should this comment be reviewed?",reportReceived:"Thanks — the report was sent to the moderation queue.",retry:"Try again",submit:"Submit for review",submitError:"Your comment could not be submitted. Your text is still here.",submitReport:"Send report",submitting:"Submitting…",title:"Discussion"},guestbook:{badge:"Guestbook",counter:"{{count}}/500",deleteConfirm:"Delete this message?",deleted:"Deleted by admin",deletePending:"Deleting…",emailLabel:"Email (optional, never shown publicly)",emailPlaceholder:"[email protected]",empty:"No messages yet. Be the first to say hi.",error:"Could not send the message. Please try again.",lead:"Have feedback, an idea, or just want to say hi? Drop a note below. No login needed — your message shows up under an anonymous handle.",loading:"Loading messages…",messageLabel:"Message",messagePlaceholder:"Write what you want to share…",nicknameLabel:"Nickname (optional)",nicknamePlaceholder:"How should we call you?",noBackend:"Supabase is not configured in this environment. The guestbook is read-only for now.",relativeDays:"{{count}} d ago",relativeHours:"{{count}} hr ago",relativeMinutes:"{{count}} min ago",relativeNow:"just now",submit:"Send",submitting:"Sending…",success:"Thanks — your message is up.",title:"Leave a message",visitor:"Visitor"}},nav:{about:"About",allTools:"All AI tools",ariaLabel:"Marketing navigation",blog:"Blog",coding:"Coding tools",guestbook:"Guestbook",home:"Home",image:"Image tools",install:"Install",newTab:"New tab manager",open:"Open app",productivity:"Productivity tools",simple:"Simple mode",submit:"Submit favorite",tools:"AI tools",video:"Video tools",writing:"Writing tools"},pages:JSON.parse('{"about":{"badge":"About LikedTabs","ctaText":"If you know a useful website or AI tool, submit it for review. Approved links can be added to the public database.","ctaTitle":"Help build a better website directory.","h1":"About us","open":"Open LikedTabs","p1":"LikedTabs is a personal productivity navigation and smart new tab product. We want to put useful websites, AI tools, personal bookmarks, and public recommendations into one clear entry point.","p2":"The product will keep improving high-quality website collection, cross-device sync, PWA installation, shared navigation pages, and user-submitted recommendation review.","principles":[{"body":"Prioritize useful, stable, clear websites and AI tools.","title":"Quality first"},{"body":"Help users find entry points for writing, coding, design, learning, and entertainment.","title":"Daily workflows"},{"body":"Public recommendations go through review before they enter the shared database.","title":"Human review"}],"seo":{"description":"Learn about LikedTabs, a personal productivity navigation and smart new tab product for bookmarks, useful websites, AI tools, and public re
2commendations.","title":"About - LikedTabs"},"submit":"Submit favorite"},"blogIndex":{"contentType":"Content type","empty":"No articles match the current filters.","filters":{"all":"All articles","comparison":"Comparisons","guide":"Guides"},"h1":"Blog","lead":"AI tool comparisons, bookmark managers, and browser workflow guides.","posts":{"best-bookmark-manager-chrome-2026":{"badge":"Comparison · 2026","description":"Chrome\'s default bookmarks are a mess. Here are 7 extensions that actually fix it — compared on organisation, search, sync, and price.","readTime":"7 min read","title":"Best bookmark manager for Chrome in 2026: 7 tools compared"},"chatgpt-vs-claude-vs-gemini-2026":{"badge":"AI Comparison · 2026","description":"Honest dimension-by-dimension comparison of the four dominant AI assistants — coding, writing, research, context window, privacy, and pricing.","readTime":"9 min read","title":"ChatGPT vs Claude vs Gemini vs DeepSeek: which AI should you use in 2026?"},"how-to-organize-ai-tools-browser":{"badge":"Setup Guide · 2026","description":"Stop re-typing URLs every time. Build a fast, organised AI workspace in Chrome — grouped by workflow context, not alphabetically by name.","readTime":"6 min read","title":"How to organise your AI tools in the browser: the 2026 setup guide"},"likedtabs-vs-toby-vs-tabliss":{"badge":"Comparison · 2026","description":"Three popular Chrome new tab replacements compared dimension by dimension — setup, bookmarks, AI tools, sync, privacy, and pricing.","readTime":"6 min read","title":"LikedTabs vs Toby vs Tabliss: which Chrome new tab fits you?"},"replace-chrome-new-tab-2026":{"badge":"Comparison · 2026","description":"Honest comparison of LikedTabs, Tabliss, Momentum, Toby, Workona, Start.me, Speed Dial 2, and Infinity. Pick the one that fits your workflow.","readTime":"8 min read","title":"Replace Chrome\'s new tab in 2026: 8 options compared"}},"readArticle":"Read article","searchLabel":"Search articles","searchPlaceholder":"Title, summary, or type","seo":{"description":"Honest comparisons of AI assistants, Chrome extensions, bookmark managers, and browser workflow setups — so you open the right tool faster every day.","title":"LikedTabs Blog — AI tools, bookmark managers, and browser productivity guides"}},"directory":{"categories":{"all":{"description":"Browse a curated AI tools directory by task, save favorites, and turn LikedTabs into your daily AI work hub.","lead":"Find tools for writing, coding, design, video, research, automation, and daily productivity in one searchable directory.","name":"All AI tools","title":"Find useful AI tools without digging through endless lists."},"bookmarks":{"description":"Use LikedTabs as a smart browser new tab and bookmark manager for useful websites and AI tools.","lead":"Organize favorite websites, bookmarks, and AI tools on one searchable new tab page.","name":"New tab and bookmark manager","title":"Turn your browser new tab into a personal work hub."},"coding":{"description":"AI coding tools for code generation, debugging, code review, documentation, and developer productivity.","lead":"Browse tools for code generation, debugging, documentation, technical search, and developer workflows.","name":"AI coding tools","title":"Ship code faster with AI assistants built for developers."},"image":{"description":"Curated AI image tools for generation, editing, background removal, upscaling, mockups, and design assets.","lead":"Find tools for image generation, editing, background removal, upscaling, mockups, and design assets.","name":"AI image tools","title":"Generate, edit, and upscale images with AI."},"productivity":{"description":"Build a focused work hub with AI productivity tools for notes, tasks, meetings, automation, and agents.","lead":"Find tools for notes, tasks, meetings, automation, agents, and personal productivity.","name":"AI productivity tools","title":"Get more done with AI agents and workflow tools."},"simple":{"description":"A clean simple mode for launching AI tools, search engines, and useful websites from one fast new tab page.","lead":"Keep search and useful websites in a calm, lightweight browser start page.","name":"Simple new tab","t
2itle":"A faster, cleaner new tab for AI tools and everyday websites."},"video":{"description":"AI video tools for generation, editing, voice over, subtitles, and creative production.","lead":"Find tools for video generation, editing, voice synthesis, subtitles, animation, and creative production.","name":"AI video tools","title":"Create and edit video with AI."},"writing":{"description":"Hand-picked AI writing tools for first drafts, rewriting, grammar, summaries, translation, study notes, and professional communication.","lead":"Find tools for drafts, rewriting, grammar, summaries, translation, and marketing copy.","name":"AI writing tools","title":"Write, rewrite, summarise, and polish content faster."}},"common":{"eyebrow":"AI tools directory","faqTitle":"Frequently asked questions","fast":"Fast","fastBody":"Search, save, and launch useful tools","newTab":"New tab","newTabBody":"Built for a focused browser start page","noResults":"No matching tools found.","open":"Open LikedTabs","openTool":"Open tool","recommendedCount":"{{count}} recommended AI tools","recommendedLead":"Browse useful tools selected for this task.","recommendedTitle":"Recommended tools","scenariosLead":"Combine useful tools into a workflow and keep them one click away.","scenariosTitle":"Real workflows","searchPlaceholder":"Search tools","toolFallbackDescription":"{{name}} is a {{category}} tool. Open its official website to review current features, availability, and pricing."}},"guestbook":{"seo":{"description":"Leave feedback, ideas, or a quick note for the LikedTabs team.","title":"Guestbook - LikedTabs"}},"privacy":{"back":"Back to LikedTabs","h1":"Privacy Policy","lastUpdated":"Last updated: 2026-05-20","scope":"Applies to likedtabs.com and the LikedTabs Chrome extension.","sections":[{"items":["We do not sell your data or share it with advertisers.","We do not read your browsing history. Page access is limited to OG/Twitter preview metadata when you save the current page and selected text when you use quote capture.","You can export and delete your data at any time."],"paragraphs":["LikedTabs is a smart new tab and personal navigation product. We store as little data as possible. Most data stays in your browser; only the navigation snapshot you choose to sync leaves your device."],"title":"Summary"},{"items":["Saved websites, bookmarks, custom categories, favorites, and category order.","Interface preferences such as language, theme, mode, and layout.","Daily routines created in the routines widget."],"paragraphs":["By default, with no account required, the website and extension store data in localStorage and chrome.storage. This data never leaves your device unless you sign in and choose to sync."],"title":"Locally stored data"},{"paragraphs":["Only if you sign in, your navigation snapshot is synced to Supabase so it can follow you across devices. We store your sign-in email, an encrypted password hash, the navigation snapshot, and sync timestamps. We never see your raw password."],"title":"Account data","items":[]},{"paragraphs":["If you submit a website recommendation, we store its URL, title, description, and category for admin review.","The likedtabs.com website uses Google Analytics (gtag.js) for aggregate traffic signals such as page views, country, referrer, and anonymized IP. The Chrome extension contains no analytics, tracking pixels, or third-party scripts."],"title":"Submissions and analytics","items":[]},{"paragraphs":["To display icons, the website and extension load favicons from Google favicon CDN hosts t0.gstatic.com and t1-t3.gstatic.com. Saved URLs are sent only to fetch the icon; no other data is sent."],"title":"Website icons","items":[]},{"items":["tabs: read the current tab URL and title when you choose to save that page; browsing history is not read.","storage: keep local navigation state inside the extension.","activeTab + scripting: after you choose Save, read only OG/Twitter preview-image metadata from that same current page; selected text is read only when you use quote capture.","chrome_url_overrides.newtab: replace the default Chrome new tab.","chrome_settings_overrides.homepage and startup_pages: optionally make LikedTabs the homepage and startup page.","Host access for likedtabs.com, localhost:3002, and the Supabase project URL: sync with the web app and account backend.","A content script on likedtabs.com and localhost:3002 only: exchange navigation state with the extension; it does not run on other sites."],"paragraphs":["LikedTabs requests these permissions only for the purposes listed:"],"title":"Chrome extension permissions"},{"items":["Local data stays in your browser on your device.","Synced account data is stored by Supabase in a regional data center managed by Supabase Inc.","Website analytics is stored on Google Analytics servers."],"title":"Where data is stored","paragraphs":[]},{"items":["Export: Settings > Import / Export downloads your navigation data as JSON.","Delete locally: clear browser data or use Settings > Reset.","Delete from our servers: email the address below; we will remove your account and synced snapshot within 30 days."],"title":"Your rights","paragraphs":[]},{"paragraphs":["LikedTabs is not directed at children under 13, and we do not knowingly collect data from children.","If this policy changes materially, we will update the date above and announce the change on the website."],"title":"Children and policy changes","items":[]}
2,{"paragraphs":["Questions or deletion requests: [email protected]"],"title":"Contact","items":[]}],"seo":{"description":"LikedTabs privacy policy: what data the website and Chrome extension handle, where it is stored, and how to export or delete it.","title":"Privacy Policy - LikedTabs"}},"submit":{"appQuestion":"Want to use the navigation page directly?","badge":"Submit favorite","error":"Submit failed. Please try again later.","fields":{"category":"Category / subcategory","description":"Short description","email":"Contact email","name":"Website name","note":"Additional note","tags":"Tags","url":"Website URL"},"h1":"Submit a recommended website","lead":"Recommend useful websites, AI tools, or resources to LikedTabs. Your submission will enter the Supabase review queue first, then admins can approve it for the public database.","noSupabase":"Supabase is not configured in this environment. Before production, add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY, then run the Supabase SQL.","open":"Open LikedTabs","placeholders":{"category":"Writing, Coding, Entertainment","description":"What problem does this website solve, and who is it for?","email":"Optional, used only if more information is needed","name":"For example ChatGPT","note":"Optional, such as why you recommend it, whether it is free, or whether login is required","tags":"AI, Design, Free","url":"https://example.com"},"seo":{"description":"Recommend a website or AI tool to LikedTabs. Submissions go to Supabase for admin review before being added to the public database.","title":"Submit Favorite - LikedTabs"},"steps":{"back":"Back","counter":"Step","headings":["Website link","Product details","Contact details","Review before submitting"],"labels":["Website","Details","Contact","Preview"],"next":"Continue","notProvided":"Not provided","of":"of","previewLead":"Confirm how this recommendation will enter the admin review queue.","progressLabel":"Submission progress"},"submit":"Submit for admin review","submitting":"Submitting...","success":"Submitted. It will be added to the public database after admin approval.","tips":["Please submit a real, accessible URL.","A clear description helps admins choose the right category.","Duplicate, broken, or low-quality links may not be added to the public database."],"validation":{"duplicateUrl":"This website is already listed. Use a different URL or contact us to update it.","invalidEmail":"Enter a valid contact email or leave this field empty.","invalidUrl":"Enter a real HTTP(S) website URL before submitting.","nameRequired":"Enter a website name before submitting.","urlRequired":"Enter a website URL before submitting."}}}'),submitCredits:{authError:"Sign-in failed. Check your email and password and try again.",costNotice:"Submitting costs 900 AI membership credits. If your submission is rejected, 890 credits are refunded. Approved sites stay listed in the public directory for one month.",emailPlaceholder:"Email",insufficientCredits:"You don't have enough AI membership credits to submit (900 required).",loginRequired:"Sign in to submit a website recommendation. This helps us prevent duplicate and abusive submissions and keep quality high.",passwordPlaceholder:"Password",signIn:"Sign in",signUp:"Create account"}},ze={components:{blogComments:{anonymous:"匿名访客",cancelReply:"取消回复",deleted:"此评论已被审核删除。",description:"评论经审核后才会公开显示。",empty:"还没有已公开评论。",loadError:"评论暂时无法加载。",loading:"正在加载评论…",loadingMore:"正在加载更多评论…",loadMore:"加载更多评论",loadMoreError:"更多评论暂时无法加载。",message:"评论",messagePlaceholder:"分享有帮助的问题或使用经验…",nickname:"昵称(可选)",pending:"谢谢,你的评论正在等待审核。",rateLimited:"提交过于频繁,请几分钟后再试。",reply:"回复",replyingTo:"正在回复 {{name}}",report:"举报",reportError:"举报提交失败,填写的原因仍在这里。",reporting:"正在提交…",reportPlaceholder:"说明具体问题…",reportReason:"为什么这条评论需要审核ï¼
2Ÿ",reportReceived:"谢谢,举报已发送至审核队列。",retry:"重试",submit:"提交审核",submitError:"评论提交失败,输入内容已保留。",submitReport:"提交举报",submitting:"正在提交…",title:"讨论"},guestbook:{badge:"联系我们",counter:"{{count}}/500",deleteConfirm:"确定删除这条留言?",deleted:"已被管理员删除",deletePending:"删除中…",emailLabel:"邮箱(可选,不会公开)",emailPlaceholder:"你的邮箱地址",empty:"还没有留言,欢迎第一个打招呼。",error:"发送失败,请稍后再试。",lead:"有反馈、想法或者只是想打个招呼?写在下面就好。无需登录——你的留言会以匿名昵称显示。",loading:"加载留言中…",messageLabel:"留言",messagePlaceholder:"写下你想说的…",nicknameLabel:"昵称(可选)",nicknamePlaceholder:"想让我们怎么称呼你?",noBackend:"当前环境没有配置 Supabase,留言板暂为只读。",relativeDays:"{{count}} 天前",relativeHours:"{{count}} 小时前",relativeMinutes:"{{count}} 分钟前",relativeNow:"刚刚",submit:"发送",submitting:"发送中…",success:"已发送,谢谢你的留言。",title:"留言板",visitor:"游客"}},nav:{about:"关于我们",allTools:"全部 AI 工具",ariaLabel:"营销导航",blog:"博客",coding:"AI 编程",guestbook:"留言板",home:"首页",image:"AI 图像",install:"安装",newTab:"新标签页管理",open:"打开应用",productivity:"AI 效率",simple:"简洁模式",submit:"添加推荐收藏",tools:"AI 工具",video:"AI 视频",writing:"AI 写作"},pages:JSON.parse('{"about":{"badge":"关于 LikedTabs","ctaText":"如果你发现值得收录的网站或 AI 工具,可以提交推荐。管理员审核通过后会加入公共数据库。","ctaTitle":"一起完善更好的网站导航库。","h1":"关于我们","open":"打开 LikedTabs","p1":"LikedTabs 是一个个人效率导航和智能新标签页产品。我们希望把常用网站、AI 工具、个人收藏和公共推荐放在一个清晰的入口里。","p2":"产品会持续优化高质量网址收录、跨设备同步、PWA 安装、分享导航页和用户推荐审核流程。","principles":[{"body":"优先收录稳定、清晰、有真实使用价值的网站和 AI 工具。","title":"重视质量"},{"body":"让用户在写作、开发、设计、学习和娱乐时都能快速找到入口。","title":"面向日常"},{"body":"公共推荐先进入待审核流程,减少低质量、重复或失效链接。","title":"人工审核"}],"seo":{"description":"了解 LikedTabs:一个围绕常用网站、收藏整理、AI 工具和浏览器新标签页效率场景构建的个人导航产品。","title":"关于我们 - LikedTabs"},"submit":"添加推荐收藏"},"blogIndex":{"contentType":"内容类型","empty":"没有符合当前条件的文章。","filters":{"all":"全部文章","comparison":"横向对比","guide":"指南"},"h1":"博客","lead":"AI 工具对比、书签管理和浏览器工作流指南。","posts":{"best-bookmark-manager-chrome-2026":{"badge":"横向对比 · 2026","description":"Chrome 自带书签功能已经落伍。7 款扩展从收藏速度、搜索、跨设备同步和定价全面评测。","readTime":"阅读约 7 分钟","title":"2026 年最好用的 Chrome 书签管理插件:7 款横向对比"},"chatgpt-vs-claude-vs-gemini-2026":{"badge":"AI 对比 · 2026","description":"四大主流 AI 助手逐维度诚实对比——写作、编程、长文档、联网搜索、数学推理、隐私和定价全面评测。","readTime":"阅读约 9 分钟","title":"ChatGPT vs Claude vs Gemini vs DeepSeek:2026 年该用哪个?"},"how-to-organize-ai-tools-browser":{"badge":"搭建指南 · 2026","description":"不再每次重新找网址。按工作场景而不是工具名称,10 分钟在 Chrome 里搭建一套快速、有序的 AI 工具工作区。","readTime":"阅读约 6 分钟","title":"如何在浏览器整理你的 AI 工具:2026 年工作流搭建指南"},"likedtabs-vs-toby-vs-tabliss":{"badge":"横向对比 · 2026","description":"三款热门 Chrome 新标签页替换方案逐维度对比——安装、书签、AI 工具、同步、隐私和定价。","readTime":"阅读约 6 分钟","title":"LikedTabs vs Toby vs Tabliss:哪款 Chrome 新标签页适合你?"},"replace-chrome-new-tab-2026":{"badge":"横向对比 · 2026","description":"诚实对比 LikedTabs、Tabliss、Momentum、Toby、Workona、Start.me、Speed Dial 2、Infinity,按工作流挑一款。","readTime":"阅读约 8 分钟","title":"2026 年替代 Chrome 新标签页:8 款方案对比"}}
2,"readArticle":"阅读全文","searchLabel":"搜索文章","searchPlaceholder":"标题、摘要或类型","seo":{"description":"AI 助手对比、Chrome 扩展评测、书签管理技巧和浏览器工作流搭建指南,助你每天更快打开正确的网站和工具。","title":"LikedTabs 博客 — AI 工具、书签管理和浏览器效率指南"}},"directory":{"categories":{"all":{"description":"按任务浏览精选 AI 工具,收藏常用服务,把 LikedTabs 变成日常 AI 工作入口。","lead":"在一个可搜索目录中查找写作、编程、设计、视频、研究、自动化和日常效率工具。","name":"全部 AI 工具","title":"按任务找到实用的 AI 工具,不再翻找无尽列表。"},"bookmarks":{"description":"把 LikedTabs 用作智能新标签页和书签管理器,集中整理实用网站与 AI 工具。","lead":"在一个可搜索的新标签页整理常用网站、书签和 AI 工具。","name":"新标签页和书签管理器","title":"把浏览器新标签页变成个人工作入口。"},"coding":{"description":"用于代码生成、调试、代码审查、文档和开发效率的 AI 编程工具。","lead":"浏览代码生成、调试、文档、技术搜索和开发工作流工具。","name":"AI 编程工具","title":"用面向开发者的 AI 助手更快交付代码。"},"image":{"description":"精选用于生成、编辑、背景移除、放大、样机和设计素材的 AI 图像工具。","lead":"查找图片生成、编辑、背景移除、放大、样机和设计素材工具。","name":"AI 图像工具","title":"用 AI 生成、编辑和放大图片。"},"productivity":{"description":"用笔记、任务、会议、自动化和智能体工具打造专注工作入口。","lead":"查找笔记、任务、会议、自动化、智能体和个人效率工具。","name":"AI 效率工具","title":"用 AI 智能体和工作流工具完成更多事情。"},"simple":{"description":"通过一个快速新标签页的简洁模式打开 AI 工具、搜索引擎和实用网站。","lead":"在安静、轻量的浏览器起始页保留搜索和常用网站。","name":"简洁新标签页","title":"更快、更清爽地打开 AI 工具和日常网站。"},"video":{"description":"用于生成、编辑、配音、字幕和创意制作的 AI 视频工具。","lead":"查找视频生成、编辑、语音合成、字幕、动画和创意制作工具。","name":"AI 视频工具","title":"用 AI 创建和编辑视频。"},"writing":{"description":"精选用于初稿、改写、语法检查、总结、翻译、学习笔记和专业沟通的 AI 写作工具。","lead":"查找初稿、改写、语法、总结、翻译和营销文案工具。","name":"AI 写作工具","title":"更快完成写作、改写、总结和润色。"}},"common":{"eyebrow":"AI 工具导航","faqTitle":"常见问题","fast":"快速","fastBody":"搜索、收藏并快速打开常用工具","newTab":"新标签页","newTabBody":"适合作为浏览器工作入口","noResults":"没有找到匹配的工具。","open":"打开 LikedTabs","openTool":"打开工具","recommendedCount":"{{count}} 个推荐 AI 工具","recommendedLead":"浏览适合当前任务的精选工具。","recommendedTitle":"推荐工具","scenariosLead":"把实用工具组合成工作流,随时一键打开。","scenariosTitle":"真实工作流","searchPlaceholder":"搜索工具","toolFallbackDescription":"{{name}} 是一款{{category}}工具。请打开其官方网站查看最新功能、可用情况和定价。"}},"guestbook":{"seo":{"description":"给 LikedTabs 留下反馈、想法或一句简单问候。","title":"留言板 - LikedTabs"}},"privacy":{"back":"返回 LikedTabs","h1":"隐私政策","lastUpdated":"最近更新:2026-05-20","scope":"适用于 likedtabs.com 网站和 LikedTabs Chrome 扩展。","sections":[{"items":["我们不会出售你的数据,也不会与广告商共享你的数据。","我们不会读取你的浏览历史。页面访问仅限于保存当前页面时读取 OG/Twitter 预览元数据,以及使用摘录采集时读取已选文字。","你可以随时导出和删除自己的数据。"],"paragraphs":["LikedTabs 是智能新标签页和个人导航产品。我们尽可能少地存储数据;大多数数据留在你的浏览器中,只有你选择同步的导航快照会离开设备。"],"title":"概述"},{"items":["保存的网站、书签、自定义分类、收藏夹和分类顺序。","语言、主题、模式和布局等界面偏好。","在日常任务组件中创建的日常任务。"],"paragraphs":["默认情况下无需账号,网站和扩展会把数据保存在 localStorage 和 chrome.storage 中。除非你登录并选择同步,否则这些数据不会离开你的设备。"],"title":"本地存储的数据"},{"paragraphs":["只有在你登录后,导航快照才会同步到 Supabase,以便跨设备使用。我们会存储登录邮箱、加密后的密码哈希、导航快照和同步时间戳;我们无法看到你的原始密码。"],"title":"账号数据","items":[]},{"paragraphs":["如果你提交网站推荐,我们会保存该网站的 URL、标题、描述和分类,供管理员审核。","likedtabs.com 网站使用 Google Analytics(gtag.js)统计页面浏览、国家或地区、来源和匿名化 IP 等汇总流量信号。Chrome 扩展不包含分析脚本、跟踪像素或第三方脚本。"],"title":"网站推荐与分析","items":[]},{"paragraphs":["为了显示图标,网站和扩展会从 Google favicon CDN 主机 t0.gstatic.
2com 和 t1-t3.gstatic.com 加载 favicon。保存的 URL 只会用于获取图标,不会发送其他数据。"],"title":"网站图标","items":[]},{"items":["tabs:在你选择保存当前页面时读取当前标签页的 URL 和标题;不会读取浏览历史。","storage:在扩展中保存本地导航状态。","activeTab + scripting:选择保存后,仅从同一个当前页面读取 OG/Twitter 预览图片元数据;仅在使用摘录采集时读取已选文字。","chrome_url_overrides.newtab:替换 Chrome 默认新标签页。","chrome_settings_overrides.homepage 和 startup_pages:可选地把 LikedTabs 设为主页和启动页。","likedtabs.com、localhost:3002 和 Supabase 项目 URL 的主机访问权限:与网页应用和账号后端同步。","仅在 likedtabs.com 和 localhost:3002 运行的内容脚本:与扩展交换导航状态;不会在其他网站运行。"],"paragraphs":["LikedTabs 只为下列用途申请这些权限:"],"title":"Chrome 扩展权限"},{"items":["本地数据保存在你的设备和浏览器中。","同步的账号数据由 Supabase 存储在 Supabase Inc. 管理的区域数据中心。","网站分析数据存储在 Google Analytics 服务器。"],"title":"数据存放位置","paragraphs":[]},{"items":["导出:在“设置 > 导入 / 导出”中把完整导航数据下载为 JSON。","本地删除:清除浏览器数据,或使用“设置 > 重置”。","从服务器删除:向下方邮箱发送请求;我们会在 30 天内删除你的账号和同步快照。"],"title":"你的权利","paragraphs":[]},{"paragraphs":["LikedTabs 不面向 13 岁以下儿童,我们不会故意收集儿童数据。","如果本政策发生重大变化,我们会更新上方日期,并在网站上公告。"],"title":"未成年人和政策变更","items":[]},{"paragraphs":["问题或删除请求:[email protected]"],"title":"联系","items":[]}],"seo":{"description":"LikedTabs 隐私政策:说明网站和 Chrome 扩展会处理哪些数据、数据存放在哪里,以及如何导出或删除数据。","title":"隐私政策 - LikedTabs"}},"submit":{"appQuestion":"想直接使用导航页?","badge":"添加推荐收藏","error":"提交失败,请稍后再试。","fields":{"category":"分类 / 子分类","description":"简短介绍","email":"联系邮箱","name":"网站名称","note":"补充说明","tags":"标签","url":"网站链接"},"h1":"添加推荐网站","lead":"把你认为值得收录的网站、AI 工具或资源推荐给 LikedTabs。提交后会先进入 Supabase 待审核表,管理员确认质量、分类和链接有效性后再发布到公共数据库。","noSupabase":"当前环境还没有配置 Supabase。上线前请在 .env 里配置 VITE_SUPABASE_URL 和 VITE_SUPABASE_ANON_KEY,并执行 Supabase SQL。","open":"打开 LikedTabs","placeholders":{"category":"写作, 编程, 娱乐","description":"这个网站主要解决什么问题,适合谁使用?","email":"可选,用于需要补充信息时联系","name":"例如 ChatGPT","note":"可选,例如推荐理由、是否免费、是否需要登录等","tags":"AI, 设计, 免费","url":"https://example.com"},"seo":{"description":"向 LikedTabs 推荐值得收录的网站或 AI 工具,提交后进入 Supabase 待审核列表,管理员确认后加入公共数据库。","title":"添加推荐收藏 - LikedTabs"},"steps":{"back":"返回","counter":"第","headings":["网站链接","产品详情","联系信息","提交前核对"],"labels":["网站","详情","联系","预览"],"next":"ç»§ç»­","notProvided":"未填写","of":"步,共","previewLead":"请确认这条推荐进入管理员审核队列时显示的信息。","progressLabel":"提交进度"},"submit":"提交给管理员审核","submitting":"提交中...","success":"已提交,管理员审核通过后会加入公共数据库。","tips":["请尽量提交真实可访问的网址。","描述越清楚,管理员越容易判断适合的分类。","重复、失效或低质量链接可能不会被加入公共数据库。"],"validation":{"duplicateUrl":"这个网站已经收录。请使用其他ç
2½‘址,或联系我们更新现有条目。","invalidEmail":"请输入有效的联系邮箱,或将此字段留空。","invalidUrl":"提交前请输入真实的 HTTP(S) 网站链接。","nameRequired":"提交前请输入网站名称。","urlRequired":"提交前请输入网站链接。"}}}'),submitCredits:{authError:"登录失败,请检查邮箱和密码后重试。",costNotice:"提交需要消耗 900 个 AI 会员积分;如未通过审核,将退还 890 积分;通过审核的网站会在公共目录展示 1 个月。",emailPlaceholder:"邮箱",insufficientCredits:"AI 会员积分不足,无法提交(需要 900 积分)。",loginRequired:"提交推荐网站需要先登录,用于防止重复和滥用提交,保证内容质量。",passwordPlaceholder:"密码",signIn:"登录",signUp:"注册"}},Fe=Object.assign({
2"./ar.json":()=>u(()=>import("./ar-B5ibtVur.js"),[]),
2"./bn.json":()=>u(()=>import("./bn--caaamUa.js"),[]),
2"./cs.json":()=>u(()=>import("./cs-BF7DlZls.js"),[]),
2"./de.json":()=>u(()=>import("./de-CXcxvHtn.js"),[]),
2"./dsb.json":()=>u(()=>import("./dsb-dlQYH3y3.js"),[]),
2"./el.json":()=>u(()=>import("./el-lUE_g2Vu.js"),[]),
2"./en-CA.json":()=>u(()=>import("./en-CA-BqU6R3pH.js"),[]),
2"./en-GB.json":()=>u(()=>import("./en-GB-BqU6R3pH.js"),[]),
2"./en-US.json":()=>u(()=>import("./en-US-BqU6R3pH.js"),[]),
2"./es-AR.json":()=>u(()=>import("./es-AR-C3Cl6Z9k.js"),[]),
2"./es-CL.json":()=>u(()=>import("./es-CL-C3Cl6Z9k.js"),[]),
2"./es-ES.json":()=>u(()=>import("./es-ES-C3Cl6Z9k.js"),[]),
2"./es-MX.json":()=>u(()=>import("./es-MX-C3Cl6Z9k.js"),[]),
2"./es.json":()=>u(()=>import("./es-C3Cl6Z9k.js"),[]),
2"./fa.json":()=>u(()=>import("./fa-OmPXjmqh.js"),[]),
2"./fi.json":()=>u(()=>import("./fi-CBot3E1p.js"),[]),
2"./fil.json":()=>u(()=>import("./fil-BGlYvucZ.js"),[]),
2"./fr.json":()=>u(()=>import("./fr-BivIuglq.js"),[]),
2"./fur.json":()=>u(()=>import("./fur-Cqz2P0-5.js"),[]),
2"./fy-NL.json":()=>u(()=>import("./fy-NL-DGOLe5v-.js"),[]),
2"./he.json":()=>u(()=>import("./he-DUQZaYiV.js"),[]),
2"./hi.json":()=>u(()=>import("./hi-BWdVnOdQ.js"),[]),
2"./hr.json":()=>u(()=>import("./hr-BRiQqfTl.js"),[]),
2"./hsb.json":()=>u(()=>import("./hsb-C03hnkUe.js"),[]),
2"./hu.json":()=>u(()=>import("./hu-COdONhOz.js"),[]),
2"./ia.json":()=>u(()=>import("./ia-BxV42gfk.js"),[]),
2"./id.json":()=>u(()=>import("./id-DO-IWi7T.js"),[]),
2"./it.json":()=>u(()=>import("./it-BMOojjgX.js"),[]),
2"./ja.json":()=>u(()=>import("./ja-CECdi0_S.js"),[]),
2"./ka.json":()=>u(()=>import("./ka-DloDJRZq.js"),[]),
2"./kab.json":()=>u(()=>import("./kab-D5GeGcWG.js"),[]),
2"./ko.json":()=>u(()=>import("./ko-C3RjhBNE.js"),[]),
2"./mr.json":()=>u(()=>import("./mr-DQAzbjk4.js"),[]),
2"./ms.json":()=>u(()=>import("./ms-CG5fXo1I.js"),[]),
2"./nb-NO.json":()=>u(()=>import("./nb-NO-WzLHH5sC.js"),[]),
2"./nl.json":()=>u(()=>import("./nl-CRIw6Iyd.js"),[]),
2"./nn-NO.json":()=>u(()=>import("./nn-NO-D-D--CB3.js"),[]),
2"./pl.json":()=>u(()=>import("./pl-BUopHnNh.js"),[]),
2"./pt-BR.json":()=>u(()=>import("./pt-BR-44DedbTJ.js"),[]),
2"./pt-PT.json":()=>u(()=>import("./pt-PT-44DedbTJ.js"),[]),
2"./ro.json":()=>u(()=>import("./ro-dSs7tx3n.js"),[]),
2"./ru.json":()=>u(()=>import("./ru-C4SdRFwL.js"),[]),
2"./sk.json":()=>u(()=>import("./sk-CcYBf5FU.js"),[]),
2"./sl.json":()=>u(()=>import("./sl-ectbv6Lr.js"),[]),
2"./sq.json":()=>u(()=>import("./sq-DzVRKYq7.js"),[]),
2"./sv-SE.json":()=>u(()=>import("./sv-SE-tQgCFFqu.js"),[]),
2"./sw.json":()=>u(()=>import("./sw-JuQKsUU-.js"),[]),
2"./ta.json":()=>u(()=>import("./ta-C0UbIbEK.js"),[]),
2"./te.json":()=>u(()=>import("./te-C5zlzIjO.js"),[]),
2"./th.json":()=>u(()=>import("./th-BpDziHfc.js"),[]),
2"./tr.json":()=>u(()=>import("./tr-_slj9oVn.js"),[]),
2"./uk.json":()=>u(()=>import("./uk-CfNMwNPH.js"),[]),
2"./ur.json":()=>u(()=>import("./ur-DcSvLF-V.js"),[]),
2"./vi.json":()=>u(()=>import("./vi-Ce9Vyehq.js"),[]),
2"./zh-TW.json":()=>u(()=>import("./zh-TW-lVMACi8d.js"),[])}),Ke={en:qe,"zh-CN":ze},$e=new Map,Je=new Set,Ye=qe,Qe=e=>(Je.add(e),()=>Je.delete(e)),Xe=e=>Ke[e],Ze=e=>{const t=Ke[e];if(t)return Promise.resolve(t);const a=$e.get(e);if(a)return a;const o=Fe[`./${e}.json`];if(!o)return Promise.resolve(qe);const i=o().then(t=>(Ke[e]=t.default,$e.delete(e),(()=>{for(const e of Je)e()})(),t.default)).catch(t=>($e.delete(e),qe));return $e.set(e,i),i},et={useCases:{cases:[{id:"ai-power-user",persona:"AI power user",title:"Compare four AI models without juggling tabs",pitch:"Put ChatGPT, Claude, Gemini, and Perplexity in one space instead of reopening each service from browser history.",pain:"Every morning starts with finding and loading the same assistants. The repeated setup costs time and breaks focus.",workflow:[{step:"Create a Daily AI space",body:"Set LikedTabs as the Chrome new tab and add a space named Daily AI."},{step:"Pin the assistants",body:"Add ChatGPT, Claude, Gemini, and Perplexity, then keep Poe or Hugging Face as a fallback."},{step:"Add context tools",body:"Pin Notion for notes and DeepL for translated comparisons."}],tools:["ChatGPT","Claude","Gemini","Perplexity","Notion","DeepL","Poe"],outcome:"A new tab becomes a direct launch point for every assistant, with less repetitive searching and faster comparisons."},{id:"student",persona:"Student and researcher",title:"One space per class instead of one crowded bookmarks bar",pitch:"Separate course portals, papers, videos, notes, and AI tools into spaces for each class or research project.",pain:"Course links, papers, notes, and AI services are mixed together, so finding the right resource during a deadline takes too long.",workflow:[{step:"Create one space per class",body:"Name each space after a course or project, such as CS 410 or Thesis."},{step:"Pin the core resources",body:"Add the course portal, syllabus, Drive folder, Notion workspace, videos, and reference papers."},{step:"Add the right AI tools",body:"Use Claude or ChatGPT for explanations, DeepL for papers, Wolfram Alpha for maths, and Anki for review."}],tools:["Notion","Google Drive","Claude","DeepL","Google Scholar","Anki"],outcome:"Switching spaces switches context. Finished courses can be archived without cluttering current work."},{tools:["GitHub","Cursor","Stack Overflow","Claude","ChatGPT","Hugging Face"],id:"developer",persona:"Creator and developer",title:"A focused start surface for the way you actually code",pitch:"Create separate spaces for coding, debugging, and shipping so each work mode opens the right context.",pain:"GitHub, documentation, error tracking, AI assistants, and deployment dashboards are spread across stale browser windows.",workflow:[{step:"Create Code, Debug, and Ship spaces",body:"Each space represents a work mode and replaces manual tab rearranging."},{step:"Give each space the right tools",body:"Put GitHub and docs in Code, Stack Overflow and error tracking in Debug, and CI plus deployment dashboards in Ship."},{step:"Use fast search",body:"Search pinned sites from the address bar instead of scanning every open tab."}],outcome:"Every work mode starts with its own context, reducing tab clutter and mental overhead."}],seo:{title:"LikedTabs Use Cases — Real Setups for AI Users, Students, and Developers",description:"See how AI power users, students, and developers configure LikedTabs as their daily new tab through three concrete workflows."},badge:"Use cases",h1:"Three real ways people set up LikedTabs as their new tab.",lead:"These are three concrete daily workflows, with the exact tools and spaces each person pins so the right resource is one click away.",primaryCta:"Install Chrome extension",secondaryCta:"Try LikedTabs online",caseLabel:"Case {{number}} · {{persona}}",headings:{pain:"The problem",workflow:"The setup",tools:"Tools pinned",outcome:"What changes"},closing:{title:"These are three examples. Your workflow can be different.",body:"Install the extension, create a first space, and add the websites and tools you genuinely open every day.",primary:"Install Chrome extension",secondary:"Try LikedTabs online"}},alternatives:{badge:"Migration guide",seoTitle:"LikedTabs vs {{name}}: a practical new-tab migration guide",seoDescription:"A source-linked overview of {{name}} and LikedTabs, with an honest bookmark migration path and LikedTabs security checks.",h1:"Moving from {{name}}? Keep the useful parts, then choose what comes next.",lead:"This is a capability overview, not a scorecard. Competitor descriptions link to their public store listings; LikedTabs claims point to features you can try or verify.",reportedTitle:"What {{name}} says it offers",source:"Open the primary source",checked:"Source checked",likedTabsTitle:"What LikedTabs gives you",likedTabs:["Organize websites and AI tools into spaces and categories.","Keep search destinations and saved links intact, with a public local extension audit.","Import standard browser bookmarks, plus direct WeTab and iTab backup support."],migrationTitle:"Bring your links across",directBackup:"Direct backup importer",browserBookmarks:"Standard bookmark importer",migrationCta:"Open LikedTabs",trustTitle:"Check the security claims yourself",trustBody:"Read the permissions and no-rewrite commitments, then run the local extension audit if you install the extension.",trustCta:"Read security and transparency",relatedTitle:"Compare another starting point",relatedCta:"LikedTabs vs {{name}}",comparisons:{wetab:{sourceLabel:"WeTab Chrome Web Store listing",reportedCapabilities:"Its listing describes configurable widgets, website icons, search engines, themes, and optional account backup and sync.",importGuide:"In LikedTabs, choose Add website → Import, then select the WeTab backup file. The importer detects the WeTab format and preserves its folders."},itab:{sourceLabel:"iTab Chrome Web Store listing",reportedCapabilities:"Its listing describes widgets, custom shortcuts and search engines, and says that browser bookmarks can be imported.",importGuide:"In LikedTabs, choose Add website → Import, then select the iTab backup file. The importer detects the iTab format and keeps its source folders."},infinity:{sourceLabel:"Infinity New Tab Chrome Web Store listing",reportedCapabilities:"Its listing describes shortcuts, bookmarks, search, weather, to-dos, notes, wallpapers, and history management.",importGuide:"Export browser bookmarks as Netscape HTML, then choose Add website → Import in LikedTabs. LikedTabs imports HTML and Chromium Bookmarks JSON; no Infinity-specific backup parser is claimed here."},monknow:{sourceLabel:"MONKNOW Chrome Web Store listing",reportedCapabilities:"Its listing describes website groups, data sync, theme controls, custom icons, and optional browser-bookmark import.",importGuide:"Export browser bookmarks as Netscape HTML, then choose Add website → Import in LikedTabs. LikedTabs imports HTML and Chromium Bookmarks JSON; no MONKNOW-specific backup parser is claimed here."}}}},tt={useCases:{cases:[{workflow:[{step:"创建“日常 AI”空间",body:"把 LikedTabs 设为 Chrome 新标签页,再新建一个名为“日常 AI”的空间。"},{step:"固定对话助手",body:"加入 ChatGPT、Claude、Gemini 和 Perplexity,并用 Poe 或 Hugging Face 作为备用。"},{step:"加入上下文工具",body:"固定 Notion 记录答案,并用 DeepL 对照翻译。"}],tools:["ChatGPT","Claude","Gemini","Perplexity","Notion","DeepL","Poe"],id:"ai-power-user",persona:"AI 重度用户",title:"同时比较四个 AI 模型,不再来回切换标签页",pitch:"把 ChatGPT、Claude、Gemini 和 Perplexity 放进同一空间,不必每天从浏览历史重新打开。",pain:"每天早上都要寻找并加载相同的 AI 助手,重复准备既浪费时间,也会打断专注。",outcome:"新标签页直接成为所有助手的启动入口,减少重复搜索,更快完成横向比较。"},{id:"student",tools:["Notion","Google Drive","Claude","DeepL","Google Scholar","Anki"],persona:"学生和研究者",title:"每门课程一个空间,不再挤在同一条书签栏里",pitch:"按课程或研究项目,把课程门户、论文、视频、笔记和 AI 工具分到不同空间。",pain:"课程链接、论文、笔记和 AI 服务全混在一起,临近截止日期时很难快速找到正确资料。",workflow:[{step:"每门课程创建一个空间",body:"以课程或项目命名,例如“CS 410”或“毕业论文”。"},{step:"固定核心资料",body:"加入课程门户、教学大纲、Drive 文件夹、Notion 工作区、视频和参考论文。"},{step:"加入适合的 AI 工具",body:"用 Claude 或 ChatGPT 解释概念、DeepL 阅读论文、Wolfram Alpha 计算、Anki 复习。"}],outcome:"切换空间就等于切换上下文;课程结束后可以归档,不会干扰当前工作。"},{id:"developer",persona:"创作者和开发者",title:"按真实编码方式打造专注的起始页",pitch:"为编码、调试和发布分别建立空间,让每种工作模式打开正确的上下文。",pain:"GitHub、文档、错误监控、AI 助手和部署面板散落在多个过期的浏览器窗口中。",workflow:[{step:"创建 Code、Debug 和 Ship 空间",body:"每个空间对应一种工作模式,不必再手动重排标签页。"},{step:"给每个空间放入正确工具",body:"Code 放 GitHub 和文档,Debug 放 Stack Overflow 和错误监控,Ship 放 CI 和部署面板。"},{step:"使用快速搜索",body:"直接从地址栏搜索已固定的网站,不必逐个查看打开的标签页。"}
2],tools:["GitHub","Cursor","Stack Overflow","Claude","ChatGPT","Hugging Face"],outcome:"每种工作模式都从自己的上下文启动,减少标签页杂乱和认知负担。"}],seo:{title:"LikedTabs 使用案例 — AI 用户、学生和开发者的真实配置",description:"看看 AI 重度用户、学生和开发者如何通过三套具体工作流,把 LikedTabs 配置成每天使用的新标签页。"},badge:"使用案例",h1:"三种把 LikedTabs 设为新标签页的真实用法。",lead:"下面是三套具体的日常工作流,以及每类用户固定的工具和空间,让所需资源始终只需一次点击。",primaryCta:"安装 Chrome 扩展",secondaryCta:"在线试用 LikedTabs",caseLabel:"案例 {{number}} · {{persona}}",headings:{pain:"原来的问题",workflow:"配置方式",tools:"固定的工具",outcome:"带来的变化"},closing:{title:"这只是三个例子,你的工作流可以完全不同。",body:"安装扩展,创建第一个空间,再加入你每天真正会打开的网站和工具。",primary:"安装 Chrome 扩展",secondary:"在线试用 LikedTabs"}},alternatives:{badge:"迁移指南",seoTitle:"LikedTabs 与 {{name}}:实用的新标签页迁移指南",seoDescription:"通过一手来源了解 {{name}} 与 LikedTabs,并查看诚实的书签迁移路径和 LikedTabs 安全自查入口。",h1:"准备从 {{name}} 迁移?保留真正有用的部分,再决定下一步。",lead:"这是能力说明,不是打分榜。竞品描述链接到公开商店页面;LikedTabs 的说明均指向可以试用或自行验证的功能。",reportedTitle:"{{name}} 公开说明中列出的能力",source:"打开一手来源",checked:"来源核对日期",likedTabsTitle:"LikedTabs 提供什么",likedTabs:["用空间和分类整理网站与 AI 工具。","保持搜索目标和已保存链接不被改写,并提供公开的本地扩展审计。","导入标准浏览器书签,并直接支持 WeTab 与 iTab 备份。"],migrationTitle:"迁入你的链接",directBackup:"直接备份导入器",browserBookmarks:"标准书签导入器",migrationCta:"打开 LikedTabs",trustTitle:"自己核对安全承诺",trustBody:"查看权限和“不改写”承诺;安装扩展后,还可以运行本地扩展审计。",trustCta:"阅读安全与透明说明",relatedTitle:"比较其他起点",relatedCta:"LikedTabs 与 {{name}}",comparisons:{wetab:{sourceLabel:"WeTab Chrome 网上应用店说明",reportedCapabilities:"其商店说明列出可配置小组件、网站图标、搜索引擎、主题,以及可选的账号备份和同步。",importGuide:"在 LikedTabs 中选择“添加网站 → 导入”,再选择 WeTab 备份文件。导入器会识别 WeTab 格式并保留文件夹。"},itab:{sourceLabel:"iTab Chrome 网上应用店说明",reportedCapabilities:"其商店说明列出小组件、自定义快捷方式和搜索引擎,并说明支持导入浏览器书签。",importGuide:"在 LikedTabs 中选择“添加网站 → 导入”,再选择 iTab 备份文件。导入器会识别 iTab 格式并保留来源文件夹。"},infinity:{sourceLabel:"Infinity New Tab Chrome 网上应用店说明",reportedCapabilities:"其商店说明列出快捷方式、书签、搜索、天气、待办、笔记、壁纸和历史管理。",importGuide:"先将浏览器书签导出为 Netscape HTML,再在 LikedTabs 中选择“添加网站 → 导入”。LikedTabs 支持 HTML 和 Chromium Bookmarks JSON;这里不声称提供 Infinity 专用备份解析器。"},monknow:{sourceLabel:"MONKNOW Chrome 网上应用店说明",reportedCapabilities:"其商店说明列出网站分组、数据同步、主题控制、自定义图标和可选的浏览器书签导入。",importGuide:"先将浏览器书签导出为 Netscape HTML,再在 LikedTabs 中选择“添加网站 → 导入”。LikedTabs 支持 HTML 和 Chromium Bookmarks JSON;这里不声称提供 MONKNOW 专用备份解析器。"}}}},at=Object.assign({
2"./ar.json":()=>u(()=>import("./ar-CeksX1_o.js"),[]),
2"./bn.json":()=>u(()=>import("./bn-f3V0wt3o.js"),[]),
2"./cs.json":()=>u(()=>import("./cs-B2NHydvg.js"),[]),
2"./de.json":()=>u(()=>import("./de-Dx1QDdkg.js"),[]),
2"./dsb.json":()=>u(()=>import("./dsb-BHlgv3gJ.js"),[]),
2"./el.json":()=>u(()=>import("./el-C0wDijvW.js"),[]),
2"./en-CA.json":()=>u(()=>import("./en-CA-6IFKX41G.js"),[]),
2"./en-GB.json":()=>u(()=>import("./en-GB-DjhD8s5T.js"),[]),
2"./en-US.json":()=>u(()=>import("./en-US-ZqOGJO-7.js"),[]),
2"./es-AR.json":()=>u(()=>import("./es-AR-D347np9I.js"),[]),
2"./es-CL.json":()=>u(()=>import("./es-CL-Pi0QZWhV.js"),[]),
2"./es-ES.json":()=>u(()=>import("./es-ES-gtq2i3Tr.js"),[]),
2"./es-MX.json":()=>u(()=>import("./es-MX-CvyWSpP2.js"),[]),
2"./es.json":()=>u(()=>import("./es-cWHP6H4u.js"),[]),
2"./fa.json":()=>u(()=>import("./fa-CszKgwvK.js"),[]),
2"./fi.json":()=>u(()=>import("./fi-jTedOUys.js"),[]),
2"./fil.json":()=>u(()=>import("./fil-Bq035blz.js"),[]),
2"./fr.json":()=>u(()=>import("./fr-B17bOHvd.js"),[]),
2"./fur.json":()=>u(()=>import("./fur-BIH93P8f.js"),[]),
2"./fy-NL.json":()=>u(()=>import("./fy-NL-BIsHwM2q.js"),[]),
2"./he.json":()=>u(()=>import("./he-Cx-TEDXj.js"),[]),
2"./hi.json":()=>u(()=>import("./hi-COdRqMBN.js"),[]),
2"./hr.json":()=>u(()=>import("./hr-DRV3qd08.js"),[]),
2"./hsb.json":()=>u(()=>import("./hsb-CWnOsehh.js"),[]),
2"./hu.json":()=>u(()=>import("./hu-CkdnMRKY.js"),[]),
2"./ia.json":()=>u(()=>import("./ia-CDDVCoWB.js"),[]),
2"./id.json":()=>u(()=>import("./id-DRmMhlFd.js"),[]),
2"./it.json":()=>u(()=>import("./it-Dpx1XpwL.js"),[]),
2"./ja.json":()=>u(()=>import("./ja-CJ3rUeZ9.js"),[]),
2"./ka.json":()=>u(()=>import("./ka-Dqo1dJPH.js"),[]),
2"./kab.json":()=>u(()=>import("./kab-DB04ZIY-.js"),[]),
2"./ko.json":()=>u(()=>import("./ko-DS84cYvC.js"),[]),
2"./mr.json":()=>u(()=>import("./mr-Ci30m3KC.js"),[]),
2"./ms.json":()=>u(()=>import("./ms-Cn7zyvCf.js"),[]),
2"./nb-NO.json":()=>u(()=>import("./nb-NO-M9n6b3c2.js"),[]),
2"./nl.json":()=>u(()=>import("./nl-CjLAVUAW.js"),[]),
2"./nn-NO.json":()=>u(()=>import("./nn-NO-CJiQz19P.js"),[]),
2"./pl.json":()=>u(()=>import("./pl-DIMtj0ZA.js"),[]),
2"./pt-BR.json":()=>u(()=>import("./pt-BR-D9HLhA_K.js"),[]),
2"./pt-PT.json":()=>u(()=>import("./pt-PT-B-o_Vtrj.js"),[]),
2"./ro.json":()=>u(()=>import("./ro-CYLxkLb2.js"),[]),
2"./ru.json":()=>u(()=>import("./ru-CoY9GbQa.js"),[]),
2"./sk.json":()=>u(()=>import("./sk-TJEgiu7H.js"),[]),
2"./sl.json":()=>u(()=>import("./sl-BupKj5Nk.js"),[]),
2"./sq.json":()=>u(()=>import("./sq-BvO51W-G.js"),[]),
2"./sv-SE.json":()=>u(()=>import("./sv-SE-BPCgmfD0.js"),[]),
2"./sw.json":()=>u(()=>import("./sw-D5q_WI8L.js"),[]),
2"./ta.json":()=>u(()=>import("./ta-Cxr3cOCQ.js"),[]),
2"./te.json":()=>u(()=>import("./te-DfdpGYaq.js"),[]),
2"./th.json":()=>u(()=>import("./th-Dt82nvwW.js"),[]),
2"./tr.json":()=>u(()=>import("./tr-B7CnHipZ.js"),[]),
2"./uk.json":()=>u(()=>import("./uk-CT6JDgf7.js"),[]),
2"./ur.json":()=>u(()=>import("./ur-CGp9Ih3N.js"),[]),
2"./vi.json":()=>u(()=>import("./vi-B_nPeRWn.js"),[]),
2"./zh-TW.json":()=>u(()=>import("./zh-TW-BJocdVJt.js"),[])
2}),ot={en:et,"zh-CN":tt},it=new Map,rt=new Set,st=et,nt=e=>(rt.add(e),()=>rt.delete(e)),lt=e=>ot[e],dt=e=>{const t=ot[e];if(t)return Promise.resolve(t);const a=it.get(e);if(a)return a;const o=at[`./${e}.json`];if(!o)return Promise.resolve(et);const i=o().then(t=>(ot[e]=t.default,it.delete(e),(()=>{for(const e of rt)e()})(),t.default)).catch(t=>(it.delete(e),et));return it.set(e,i),i},ct=async()=>{const{applyServerDefaultsForFreshVisitor:e}=await u(async()=>{const{applyServerDefaultsForFreshVisitor:e}=await(import("./applyServerDefaults-B3GW07Qn.js"));return{applyServerDefaultsForFreshVisitor:e}},__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14]));e()},mt=async()=>{const{installAnalyticsQueue:e}=await u(async()=>{const{installAnalyticsQueue:e}=await(import("./thirdParty-BTKx19Zb.js"));return{installAnalyticsQueue:e}},[]);e(),function(){if("undefined"==typeof window)return;if(G())return;const e=z();window.__LIKEDTABS_TRAFFIC_CONTEXT__=e,"function"==typeof window.gtag&&window.gtag("set","user_properties",e)}();const{startEngagementHeartbeat:t}=await u(async()=>{const{startEngagementHeartbeat:e}=await(import("./engagementHeartbeat-CjQvlHjN.js"));return{startEngagementHeartbeat:e}},[]);t()},pt="likedtabs:app-route-ready",ut=()=>{window.dispatchEvent(new Event(pt))},_t=t(),ht=(e,t)=>{try{Promise.resolve(t()).catch(e=>{})}catch(a){}},gt=()=>{try{const e=new URLSearchParams(window.location.search),t=e.get("ref");if(!t)return;localStorage.setItem("pending-referral",t),e.delete("ref");const a=e.toString(),o=window.location.pathname+(a?`?${a}`:"")+window.location.hash;window.history.replaceState({},"",o)}catch{}},bt=()=>{try{return C(localStorage.getItem("language-storage"))}catch{return C(null)}},wt=()=>{const{pathname:e,search:t,hash:a}=window.location;if(!Ne(e))return;if((e=>Ce.get(Oe(e))??null)(e))return;const o=(()=>{try{return"1"===localStorage.getItem(k)}catch{return!1}})()?bt():P();if("en"===o)return;const i=We(o,e,t,a),r=new URL(i,window.location.origin).pathname;Ge(r)===o&&window.history.replaceState(window.history.state,"",i)},ft=async()=>{const e=Ge(window.location.pathname)??bt(),t=Ge(window.location.pathname);if(t){ke.setState({currentLanguage:e}),Le(e);const a=T(e),o=[Ze(t),a],i=Ne(window.location.pathname);"useCases"!==i?.id&&"alternativeComparison"!==i?.id||o.push(dt(t)),await Promise.all(o);const r=await a;return void(document.title=r.extension.manifest.appName)}await T(e)},Tt=(e,t=3e3)=>{"requestIdleCallback"in window&&window.requestIdleCallback?window.requestIdleCallback(e,{timeout:t}):window.setTimeout(e,t)},vt="desktopCacheCleared",yt=r.createRoot(document.getElementById("root")),Lt=async()=>{ht(0,E),ht(0,gt),wt(),(()=>{if(!s)return;const e=document.createElement("link");e.rel="preconnect",e.href=s,e.crossOrigin="anonymous",document.head.appendChild(e)})();const e=u(()=>import("./App-XyP6jYgJ.js").then(e=>e.t),__vite__mapDeps([15,1,16,5,4,17,6,14,18,19]));await ft();const{default:t}=await e;let a=!1,o=0;const i=()=>{a||(a=!0,window.removeEventListener(pt,i),window.clearTimeout(o),window.setTimeout(()=>{Tt(()=>{ht(0,mt),ht(0,async()=>{const{startTodoReminderScheduler:e}=await u(async()=>{const{startTodoReminderScheduler:e}=await(import("./todoReminders-DGpNthPh.js"));return{startTodoReminderScheduler:e}},__vite__mapDeps([20,21,1,5,22,16,17,4,19,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,3,6,7,8,9,10,11,12,13,14,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60]));e()}),ht(0,()=>(async e=>{const{markRoutineCompletedByUrl:t,useRoutineStore:a}=await u(async()=>{const{markRoutineCompletedByUrl:e,useRoutineStore:t}=await import("./routineStore-MJXol_Hy.js").then(e=>e.r);return{markRoutineCompletedByUrl:e,useRoutineStore:t}},__vite__mapDeps([46,1,4,5,42,6,12,9,43]));a.getState().ensureDefaultRoutines(),t(e)})(window.location.href)),ht(0,ct)})},5e3))};window.addEventListener(pt,i,{once:!0}),o=window.setTimeout(i,6e4),yt.render((0,_t.jsx)(t,{})),(async()=>{if(!y())return;let e=!1,t=!1;try{if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistrations();e=(await Promise.all(t.map(e=>e.unregister()))).some(Boolean)}}catch(a){}try{if("caches"in window){const e=await window.caches.keys(),a=await Promise.all(e.map(e=>window.caches.delete(e)));t=e.length>0||a.some(Boolean)}}catch(a){}(e||t)&&(sessionStorage.getItem(vt)||(sessionStorage.setItem(vt,"1"),window.location.reload()))})(),(()=>{if(y())return;const e=()=>{u(async()=>{const{registerLikedTabsServiceWorker:e}=await(import("./registerServiceWorker-D-R8BOpW.js"));return{registerLikedTabsServiceWorker:e}},[]).then(({registerLikedTabsServiceWorker:e})=>{e()}).catch(e=>{})},t=()=>{window.setTimeout(()=>Tt(e),1e4)};"complete"===document.readyState?t():window.addEventListener("load",t,{once:!0})})()};(async()=>
2{if(y())try{const{getCurrentWindow:e}=await u(async()=>{const{getCurrentWindow:e}=await(import("./window-BtxHJ3OY.js"));return{getCurrentWindow:e}},__vite__mapDeps([61,62,63]));if("desktop-pet"===e().label){const e=u(()=>import("./DesktopPetWindow-Cc0Dbnfs.js"),__vite__mapDeps([64,1,16,5,18,19,8,7,9,13,14,42,4,6,12,43,65,49,66,67,68]));await T(ke.getState().currentLanguage);const{DesktopPetWindow:t}=await e;return void yt.render((0,_t.jsx)(t,{}))}}catch(e){return void yt.render((0,_t.jsx)("div",{role:"alert",className:"p-4 text-sm text-red-700",children:"无法识别当前桌面窗口,请重新启动 LikedTabs。"}))}await Lt()})();export{m as $,ce as A,ie as B,z as C,ge as D,oe as E,ue as F,G,_e as H,te as I,v as J,M as K,Z as L,ee as M,re as N,he as O,be as P,u as Q,X as R,J as S,se as T,me as U,Y as V,pe as W,T as X,f as Y,w as Z,Ae as _,nt as a,ke as b,Ze as c,Ue as d,n as et,xe as f,Me as g,Ie as h,dt as i,l as it,de as j,ne as k,Qe as l,We as m,st as n,c as nt,Ye as o,He as p,y as q,lt as r,s as rt,Xe as s,ut as t,d as tt,Be as u,ye as v,le as w,fe as x,Te as y,Q as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.