PageSourceSearch

https://www.penshift.app/_next/static/chunks/11h9b961zuk5h.js

js penshift.app collected 2026-10-02 01:15:20 UTC 13,952 bytes, 4 lines download raw bytes

1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="db919868-078d-eaf8-0eb0-6c5105baaf21")}catch(e){}}();
2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(271645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=l(e,n)),t&&(a.current=l(t,n))},[e,t])}function l(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return b},useLinkStatus:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(190809),i=e.r(843476),o=l._(e.r(271645)),s=e.r(195057),c=e.r(8372),u=e.r(818581),d=e.r(718967),f=e.r(405550);e.r(233525);let h=e.r(388540),p=e.r(91949),m=e.r(573668),x=e.r(509396);function b(t){var r,n;let a,l,b,[v,y]=(0,o.useOptimistic)(p.IDLE_LINK_STATUS),j=(0,o.useRef)(null),{href:w,as:k,children:_,prefetch:N=null,passHref:S,replace:T,shallow:E,scroll:P,onClick:C,onMouseEnter:I,onTouchStart:R,legacyBehavior:O=!1,onNavigate:B,transitionTypes:F,ref:L,unstable_dynamicOnHover:M,...A}=t;a=_,O&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let U=o.default.useContext(c.AppRouterContext),$=!1!==N,D=!1!==N?null===(n=N)||"auto"===n?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,K="string"==typeof(r=k||w)?r:(0,s.formatUrl)(r);if(O){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});l=o.default.Children.only(a)}let z=O?l&&"object"==typeof l&&l.ref:L,X=o.default.useCallback(e=>(null!==U&&(j.current=(0,p.mountLinkInstance)(e,K,U,D,$,y)),()=>{j.current&&((0,p.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,p.unmountPrefetchableInstance)(e)}),[$,K,U,D,y]),J={ref:(0,u.useMergedRef)(X,z),onClick(t){O||"function"!=typeof C||C(t),O&&l.props&&"function"==typeof l.props.onClick&&l.props.onClick(t),!U||t.defaultPrevented||function(t,r,n,a,l,i,s){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(699781);o.default.startTransition(()=>{d(r,a?"replace":"push",!1===l?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,n.current,s)})}}(t,K,j,T,P,B,F)},onMouseEnter(e){O||"function"!=typeof I||I(e),O&&l.props&&"function"==typeof l.props.onMouseEnter&&l.props.onMouseEnter(e),U&&$&&(0,p.onNavigationIntent)(e.currentTarget,!0===M)},onTouchStart:function(e){O||"function"!=typeof R||R(e),O&&l.props&&"function"==typeof l.props.onTouchStart&&l.props.onTouchStart(e),U&&$&&(0,p.onNavigationIntent)(e.currentTarget,!0===M)}};return(0,d.isAbsoluteUrl)(K)?J.href=K:O&&!S&&("a"!==l.type||"href"in l.props)||(J.href=(0,f.addBasePath)(K)),b=O?o.default.cloneElement(l,J):(0,i.jsx)("a",{...A,...J,children:a}),(0,i.jsx)(g.Provider,{value:v,children:b})}e.r(284508);let g=(0,o.createContext)(p.IDLE_LINK_STATUS),v=()=>(0,o.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
2dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},503881,e=>{"use strict";var t=e.i(843476);e.s(["MaterialIcon",0,function({name:e,size:r,className:n,style:a,...l}){let i=r?{fontSize:r,...a}:a??{};return(0,t.jsx)("span",{"aria-hidden":!0,className:`material-icons${n?` ${n}`:""}`,style:i,...l,children:e})}])},114752,e=>{"use strict";var t=e.i(843476);e.s(["LogoMark",0,function({size:e=24,className:r=""}){return(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 64 64",fill:"none","aria-hidden":!0,className:r,children:[(0,t.jsx)("rect",{x:"10",y:"12",width:"18",height:"40",fill:"currentColor"}),(0,t.jsx)("rect",{x:"36",y:"20",width:"18",height:"40",fill:"currentColor"})]})}])},22530,e=>{"use strict";var t=e.i(843476),r=e.i(59919),n=e.i(503881);let a=[{value:"light",label:"Light theme",mIcon:"light_mode"},{value:"system",label:"System theme",mIcon:"brightness_auto"},{value:"dark",label:"Dark theme",mIcon:"dark_mode"}];e.s(["ThemeToggle",0,function({className:e=""}){let{theme:l,setTheme:i}=(0,r.useTheme)();return(0,t.jsx)("div",{className:`inline-flex items-center gap-0.5 p-0.5 rounded-[6px] border border-current/15 ${e}`,role:"group","aria-label":"Theme",children:a.map(e=>{let r=l===e.value;return(0,t.jsx)("button",{type:"button",onClick:()=>i(e.value),"aria-pressed":r,"aria-label":e.label,title:e.label,className:`inline-flex items-center justify-center w-7 h-7 rounded-[4px] transition-colors ${r?"bg-[var(--accent-purple)] text-black":"opacity-60 hover:opacity-100 hover:bg-current/5"}`,children:(0,t.jsx)(n.MaterialIcon,{name:e.mIcon,size:16})},e.value)})})}])},3303,(e,t,r)=>{t.exports=e.r(479520)},853355,e=>{"use strict";var t=e.i(431405);e.i(827085),e.i(860999),e.i(189807),e.i(719658),e.i(589440),e.i(474041),e.i(271645),e.i(441895),e.i(878673);var r=e.i(61703),n=e.i(175351);e.i(565909),e.i(900869),e.i(917e3),e.i(287106),e.i(264936),e.i(612288),e.i(3303),(0,n.setErrorThrowerOptions)({packageName:"@clerk/nextjs"}),(0,r.setClerkJSLoadingErrorPackageName)("@clerk/nextjs");let a=t.Show;e.s(["Show",0,a],853355)},845678,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(827085),l=e.i(522016),i=e.i(853355),o=e.i(719658),s=e.i(860999),c=e.i(114752),u=e.i(22530);function d(){let[e,n]=(0,r.useState)(null),[a,i]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{let e=!1;return fetch("/api/usage",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&(("free"===t.tier||"student"===t.tier||"pro"===t.tier||"studio"===t.tier)&&n(t.tier),!0===t.isAdmin&&i(!0))}).catch(()=>{}),()=>{e=!0}},[]),e||a)?(0,t.jsxs)(t.Fragment,{children:[e&&(0,t.jsx)("span",{className:"hidden sm:inline-block font-[family-name:var(--font-roboto-flex)] text-[0.65rem] font-extrabold uppercase tracking-[0.16em] rounded-[4px] px-2 py-0.5",style:{background:{free:"var(--pill-free-bg)",student:"#E8DEF8",pro:"#FFEB3B",studio:"#B388FF"}[e],color:{free:"var(--pill-free-fg)",student:"#000",pro:"#000",studio:"#000"}[e]},title:`Your plan \xb7 ${e}`,children:e}),a&&(0,t.jsxs)(l.default,{href:"/admin",title:"Open admin dashboard","aria-label":"Admin dashboard",className:"inline-flex items-center gap-1 font-[family-name:var(--font-roboto-flex)] text-[0.65rem] font-extrabold uppercase tracking-[0.16em] rounded-[4px] bg-[#FF5252] text-black px-2 py-0.5 hover:bg-black hover:text-[#FF5252] transition-colors",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:"★"}),(0,t.jsx)("span",{children:"Admin"})]})]}):null}let f=[{href:"/#tools",label:"Tools"},{href:"/#pricing",label:"Pricing"},{href:"/#compare",label:"Compare"},{href:"/#faq",label:"FAQ"},{href:"/about",label:"About"}];e.s(["Navbar",0,function(){let e=(0,n.usePathname)()??"/",h=e.startsWith("/workbench"),[p,m]=(0,r.useState)(!1),x=(0,a.useClerk)(),b=(0,r.useRef)(!1);(0,r.useEffect)(()=>{m(!1)},[e]),(0,r.useEffect)(()=>{if(b.current)return;let e=new URLSearchParams(window.location.search).get("action");("sign-in"===e||"sign-up"===e)&&(b.current=!0,window.location.assign("sign-up"===e?"/sign-up":"/sign-in"))},[x]);let g="font-[family-name:var(--font-roboto-flex)] text-[0.85rem] font-bold text-[var(--fg)]/80 hover:text-[var(--fg)] px-3 py-2 transition-colors",v="font-[family-name:var
2(--font-roboto-flex)] text-[0.85rem] font-bold bg-[var(--accent-yellow)] text-black border border-black rounded-[5px] px-4 py-2 shadow-[3px_3px_0_#000] hover:translate-x-[-1px] hover:translate-y-[-1px] hover:shadow-[4px_4px_0_#000] active:translate-x-[1px] active:translate-y-[1px] active:shadow-[2px_2px_0_#000] transition-all inline-flex items-center gap-1.5";return(0,t.jsxs)("header",{className:"sticky top-0 inset-x-0 z-50 bg-[var(--bg)]/85 backdrop-blur border-b border-[var(--fg)]/10",children:[(0,t.jsxs)("div",{className:"max-w-7xl mx-auto h-16 flex items-center justify-between px-5 lg:px-8",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)(l.default,{href:"/",className:"inline-flex items-center gap-2 group","aria-label":"Penshift home",children:[(0,t.jsx)("span",{className:"inline-flex items-center justify-center w-8 h-8 bg-[var(--accent-yellow)] text-black rounded-[4px] group-hover:scale-105 transition-transform",children:(0,t.jsx)(c.LogoMark,{size:16})}),(0,t.jsx)("span",{className:"font-[family-name:var(--font-bricolage)] font-extrabold text-[1.2rem] tracking-tight",children:"Penshift"}),(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-[var(--accent-purple)] rounded-[1px] -ml-0.5 self-start translate-y-1"})]}),(0,t.jsx)(i.Show,{when:"signed-in",children:(0,t.jsx)(d,{})})]}),!h&&(0,t.jsx)("nav",{className:"hidden md:flex items-center",children:f.map(e=>(0,t.jsx)(l.default,{href:e.href,className:"font-[family-name:var(--font-roboto-flex)] text-[0.9rem] font-medium text-[var(--fg)]/75 hover:text-[var(--fg)] transition-colors px-3 py-1.5",children:e.label},e.href))}),(0,t.jsxs)("nav",{className:"flex items-center gap-2",children:[!h&&(0,t.jsx)("button",{type:"button",onClick:()=>m(e=>!e),className:"md:hidden inline-flex items-center justify-center w-9 h-9 rounded-[5px] hover:bg-[var(--fg)]/5 transition-colors","aria-label":"Toggle menu","aria-expanded":p,children:(0,t.jsx)("span",{className:"font-[family-name:var(--font-roboto-flex)] text-[1.1rem] font-bold leading-none",children:p?"×":"≡"})}),(0,t.jsx)(u.ThemeToggle,{}),(0,t.jsxs)(i.Show,{when:"signed-out",children:[(0,t.jsx)(o.SignInButton,{children:(0,t.jsx)("button",{className:`hidden sm:inline-flex ${g}`,children:"Sign in"})}),(0,t.jsx)(o.SignUpButton,{forceRedirectUrl:"/workbench",children:(0,t.jsx)("button",{className:v,children:"Start free →"})})]}),(0,t.jsxs)(i.Show,{when:"signed-in",children:[h&&(0,t.jsx)(l.default,{href:"/workbench/invite",className:`hidden sm:inline-flex items-center gap-1.5 ${g}`,title:"Invite a friend · earn a free month of Pro",children:"Invite"}),h?(0,t.jsx)(l.default,{href:"/",className:g,children:"← Home"}):(0,t.jsx)(l.default,{href:"/workbench",className:v,children:"Open app →"}),(0,t.jsx)(s.UserButton,{appearance:{elements:{avatarBox:"w-8 h-8 rounded-full border-2 border-[var(--fg)]/15"}}})]})]})]}),!h&&p&&(0,t.jsx)("div",{className:"md:hidden border-t border-[var(--fg)]/10 bg-[var(--bg)]",children:(0,t.jsx)("ul",{className:"flex flex-col py-2 px-3",children:f.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(l.default,{href:e.href,onClick:()=>m(!1),className:"block px-3 py-3 rounded-[5px] font-[family-name:var(--font-roboto-flex)] text-[0.95rem] font-medium text-[var(--fg)]/85 hover:bg-[var(--fg)]/5 hover:text-[var(--fg)] transition-colors",children:e.label})},e.href))})})]})}])},824133,e=>{"use strict";var t=e.i(247167),r=e.i(843476),n=e.i(3303),a=e.i(271645);let l=t.default.env.NEXT_PUBLIC_TRUSTPILOT_BUSINESS_UNIT_ID??"",i="https://uk.trustpilot.com/review/penshift.app",o={mini:{templateId:"53aa8807dec7e10d38f59f32",height:"150px",width:"100%"},"micro-combo":{templateId:"5419b6ffb0d04a076446a9af",height:"20px",width:"210px"},"review-collector":{templateId:"56278e9abfbbba0bdcd568bc",height:"52px",width:"100%"}};e.s(["TrustpilotWidget",0,function({style:e="micro-combo",className:t="",theme:s="light"}){let c=(0,a.useRef)(null);if((0,a.useEffect)(()=>{let e=window.Trustpilot;e?.loadFromElement&&c.current&&e.loadFromElement(c.current,!0)},[]),!l)return(0,r.jsxs)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`inline-flex items-center gap-1.5 font-[family-name:var
2(--font-jetbrains)] text-[0.66rem] uppercase tracking-wider font-bold border-2 border-[var(--border)] bg-[var(--bg-alt)] hover:bg-[#00B67A] hover:text-white px-2 py-1 transition-colors ${t}`,title:"Read or leave a review on Trustpilot",children:[(0,r.jsx)("span",{"aria-hidden":!0,className:"text-[#00B67A]",children:"★"}),(0,r.jsx)("span",{children:"Reviewed on Trustpilot"})]});let u=o[e];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.default,{src:"//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js",strategy:"afterInteractive"}),(0,r.jsx)("div",{ref:c,className:`trustpilot-widget ${t}`,"data-locale":"en-GB","data-template-id":u.templateId,"data-businessunit-id":l,"data-style-height":u.height,"data-style-width":u.width,"data-theme":s,children:(0,r.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",children:"Trustpilot"})})]})}])}]);
3
4//# debugId=db919868-078d-eaf8-0eb0-6c5105baaf21

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.