PageSourceSearch

https://langladder.com/assets/nav-BnTWLM7p.js

js langladder.com collected 2026-09-24 14:46:26 UTC 1,644 bytes, 1 lines download raw bytes

1import{C as e,Dt as t,Ft as n,c as r,nn as i,tn as a}from"./index-Czo4KM4i.js";import{r as o}from"./icons-CQb8O1jT.js";import{t as s}from"./logo-mv-otj0t.js";var c=n();function l(){return(0,c.jsx)(`footer`,{className:`footer`,children:(0,c.jsxs)(`div`,{className:`container footer-inner`,children:[(0,c.jsx)(s,{}),(0,c.jsxs)(`div`,{className:`footer-links`,children:[(0,c.jsx)(t,{to:`/privacy`,children:`Privacy`}),(0,c.jsx)(t,{to:`/terms`,children:`Terms`}),(0,c.jsx)(`a`,{href:`mailto:[email protected]`,children:`Contact Us`})]}),(0,c.jsx)(`div`,{className:`footer-copy`,children:`© 2026 Langladder`})]})})}var u=i(a(),1);function d({surface:t,className:n,label:i}){return(0,c.jsxs)(`a`,{className:n,href:r,target:`_blank`,rel:`noopener`,onClick:()=>e(`install_clicked`,{surface:t}),children:[(0,c.jsx)(o,{className:`chrome-icon`}),i]})}function f(){let[e,n]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{let e=()=>n(window.scrollY>8);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),(0,c.jsx)(`nav`,{className:`nav`+(e?` scrolled`:``),children:(0,c.jsxs)(`div`,{className:`container nav-inner`,children:[(0,c.jsx)(s,{}),(0,c.jsxs)(`div`,{className:`nav-links`,children:[(0,c.jsx)(`a`,{href:`#why`,children:`Why it works`}),(0,c.jsx)(`a`,{href:`#vocab`,children:`Flashcards`}),(0,c.jsx)(`a`,{href:`#languages`,children:`Languages`})]}),(0,c.jsxs)(`div`,{className:`nav-right`,children:[(0,c.jsx)(t,{to:`/login`,className:`nav-login`,children:`Log in`}),(0,c.jsx)(d,{surface:`nav`,className:`btn btn-primary nav-cta`,label:`Add to Chrome`})]})]})})}export{d as n,l as r,f as t};

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.