PageSourceSearch

https://app.hypertask.ai/_next/static/chunks/76579-81c16ee0aa99afe6.js?dpl=dpl_4vQipQGRjknRmvdr2ouxZVbVWtVA

js hypertask.ai collected 2026-10-05 14:30:28 UTC 16,320 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[76579,95282],{11067:(e,t,r)=>{r.d(t,{w:()=>l});var o=r(26708),i=r(82285),n=r(68043);let l=(e,t,r)=>(0,o.I)({queryKey:e,queryFn:()=>i.A.getAllProjectsMinimal("ExtraMinimal"),enabled:r?.enabled??!0,...(0,n.p)()?{}:{queryKey:[...e,"hydrating"],enabled:!1},initialData:t??[]})},11977:(e,t,r)=>{r.d(t,{Q:()=>a});var o=r(95155),i=r(18071);r(12115);var n=r(75097),l=r(81753);let s=()=>{let e=(0,l.R)();return(0,o.jsx)(n.A,{content:e?"Cmd":"Ctrl"})},a={project:[{target:i.xf.inviteTeamButton,content:(0,o.jsx)("div",{className:"space-y-2",children:(0,o.jsx)("p",{children:"Invite your team members and collaborate together. Click here to add more people to your project."})}),title:"Invite Team Members",placement:"bottom",spotlightClicks:!1,disableBeacon:!0,event:"hover"},{target:i.xf.inboxButton,content:(0,o.jsxs)("div",{className:"block space-x-2",children:[(0,o.jsx)("span",{children:"Click the inbox button to go to your inbox, or use the keyboard shortcut:"}),(0,o.jsx)(n.A,{content:"G"}),(0,o.jsx)("span",{className:"text-white-black font-semibold",children:"then"}),(0,o.jsx)(n.A,{content:"I"})]}),title:"Inbox",placement:"bottom",disableBeacon:!0,spotlightClicks:!1,floaterProps:{offset:15}},{target:i.xf.BOTTOM_HTC,content:(0,o.jsxs)("div",{className:"block space-x-2",children:[(0,o.jsx)("span",{children:"Click the HTC button to open the Hypertask Command Center, or use the keyboard shortcut:"}),(0,o.jsx)(s,{}),(0,o.jsx)("span",{className:"text-white-black font-semibold",children:"+"}),(0,o.jsx)(n.A,{content:"K"})]}),title:"HTC Menu",placement:"bottom",disableBeacon:!0,spotlightClicks:!0,showProgress:!0,hideFooter:!0,event:"click"}],"create-task-modal":[{target:i.xf.titleInputModal,content:"This is where you enter your task title. But here's the magic... ✨",title:"Task Creation",placement:"bottom",disableBeacon:!0,showSkipButton:!0},{target:i.xf.descriptionContainerCreateTaskModal,content:(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)("p",{children:"Great! Now let's use AI to write your task description."}),(0,o.jsxs)("p",{className:"text-content opacity-90",children:["Click in the description field and press ",(0,o.jsx)(s,{})," + ",(0,o.jsx)(n.A,{content:"J"})," to open the AI Task Writer."]})]}),title:"AI-Powered Task Writing",placement:"top",disableBeacon:!0,spotlightClicks:!0}],shortcuts:[{target:"body",content:"Hypertasks is designed for speed! Here are some essential keyboard shortcuts.",title:"Keyboard Shortcuts ⌨️",disableBeacon:!0,placement:"center"},{target:"body",content:"Use J/K to move between tasks, H/L to move between columns. Add Shift to move the task itself (SHIFT+J/K/H/L).",title:"Navigation Shortcuts",placement:"center"},{target:"body",content:'Press "A" to assign users, "P" for priority, "L" for labels, "S" for size, and "E" to archive notifications.',title:"Quick Actions",placement:"center"}],"task-detail":[{target:".task-card",content:"Click on any task or press Enter to view its details, add comments, subtasks, and more.",title:"Task Details",placement:"right"},{target:".task-card",content:"Set priority, assign users, add labels, set due dates, and estimates. Use keyboard shortcuts for faster workflow!",title:"Task Actions",placement:"right"}],"task-writer":[{target:i.xf.createNewTaskButton,content:(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)("p",{children:"Let's create your first AI-powered task in 10 seconds!"}),(0,o.jsxs)("p",{className:"text-content opacity-90",children:["Press ",(0,o.jsx)(n.A,{content:"C"})," or click the Plus Icon to create a new task."]})]}),title:"Task Writer",placement:"right-start",disableBeacon:!0,spotlightClicks:!0,showProgress:!0},{target:i.xf.createTaskDescription,content:(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)("p",{children:"Great! Now let's use AI to write your task description."}),(0,o.jsxs)("p",{className:"text-content opacity-90",children:["Click in the description field and press ",(0,o.jsx)(s,{})," + ",(0,o.jsx)(n.A,{content:"J"})," to open the AI Task Writer."]})]})}]}},12505:(e,t,r)=>{r.d(t,{AY:()=>o.A,PR:()=>o.P}),r(93859),r(11977),r(15835),r(24961);var o=r(82302)},15835:(e,t,r)=>{r.d(t,{M:()=>f});var o=r(95155),i=r(12115),n=r(73321),l=r(37206),s=r(24961),a=r(93859),c=r(11977);let u=(0,l.default)(()=>r.e(31157).then(r.t.bind(r,31157,23)),{loadableGenerated:{webpack:()=>[31157]},ssr:!1}),d="finished",p="skipped",m="prev";function f({tourId:e=a.Q.TASK_WRITER,currentUser:t}){let[r,l]=(0,i.useState)(!1),[g,h]=(0,i.useState)([]),[k,T]=(0,i.useState)(0),[I,b]=(0,i.useState)("route"),[S,y]=(0,i.useState)(e),x=(0,n.usePathname)(),C=(0,s.i)({tourId:S});(0,i.useEffect)(()=>{e&&e!==S&&y(e)},[e,S]);let A=(0,i.useCallback)(e=>{if(c.Q[e]){let t=c.Q[e].filter(e=>{if("body"===e.target)return!0;let t=document.querySelector(e.target);return t||console.warn(`Element not found for tour step: ${e.target}`),!!t});h(t),T(0),console.log(`✅ Loaded ${t.length} tour steps for route: ${e}`)}else h([])},[]);(0,i.useEffect)(()=>
1{"route"!==I||r||A(x?.split("/").filter(Boolean)[0]||"home")},[x,I,r,A]);let v=(0,i.useCallback)(e=>{if(b("component"),c.Q[e]){let t=c.Q[e].filter(e=>{if("body"===e.target)return!0;let t=document.querySelector(e.target);return t||console.warn(`Element not found for tour step: ${e.target}`),!!t});h(t),T(0),console.log(`✅ Loaded ${t.length} tour steps for component: ${e}`),t.length>0?setTimeout(()=>{l(!0)},100):console.warn(`No valid steps to show for component: ${e}`)}},[]),P=(0,i.useCallback)(t=>{let r;l(!1),T(0),b("route");let o=x?.split("/").filter(Boolean)[0]||"project";console.log("\uD83D\uDE80 ~ startTour ~ tourKey:",r=t&&c.Q[t]?t:(S===a.Q.TASK_WRITER||e===a.Q.TASK_WRITER)&&c.Q[a.Q.TASK_WRITER]?a.Q.TASK_WRITER:(S===a.Q.PROJECT||e===a.Q.PROJECT)&&c.Q[a.Q.PROJECT]?a.Q.PROJECT:c.Q[o]?o:"project","tourIdOverride:",t,"tourId prop:",e,"currentTourId:",S),c.Q[r]?(y(r),A(r),C.markTourStarted(),setTimeout(()=>{l(!0)},150)):console.warn(`No tour found for route: ${o} or tourId: ${S}`)},[x,A,C,S,e]),w=(0,i.useCallback)(e=>{v(e)},[v]),j=(0,i.useCallback)(()=>{l(!1),T(0),b("route")},[]),Q=(0,i.useCallback)(()=>r,[r]),E=(0,i.useCallback)(()=>{console.log("\uD83C\uDFAF Continuing tour in create task modal"),l(!1),b("component"),setTimeout(()=>{v("create-task-modal")},300)},[v]),O=(0,i.useCallback)(e=>{let{status:t,type:r,index:o,action:i}=e;console.log("\uD83D\uDE80 ~ useTour ~ status:",t);let n=[d,p];if(console.log("\uD83D\uDE80 ~ useTour ~ finishedStatuses:",n),n.includes(t))l(!1),T(0),b("route"),t===d?(console.log("✅ Tour completed:",S),C.markComplete()):t===p&&(console.log("⏭️ Tour skipped:",S),C.markSkipped());else if("step:after"===r||"error:target_not_found"===r){if("task-writer"===S&&"route"===I){if(0===o&&i!==m){console.log("⏸️ Task Writer Tour: Waiting for create task modal to open"),l(!1);return}if(1===o&&i!==m){console.log("⏸️ Task Writer Tour: Waiting for CTRL+J to open AI writer"),l(!1);return}}if("route"===I&&o===g.length-1&&i!==m){console.log("⏸️ Pausing tour - waiting for modal to open"),l(!1);return}T(o+(i===m?-1:1))}},[I,S,C,g.length]);return{startTour:P,startComponentTour:w,endTour:j,isTourActive:Q,continueTourInModal:E,TourComponent:(0,i.useCallback)(()=>0===g.length?null:(0,o.jsx)(u,{steps:g,run:r,stepIndex:k,continuous:!0,showProgress:!0,showSkipButton:!0,callback:O,styles:{options:{primaryColor:"#8b5cf6",zIndex:1e4,backgroundColor:"var(--bg-sidebar)",textColor:"var(--color-white-black)"},tooltip:{borderRadius:4},tooltipContainer:{textAlign:"left"},tooltipTitle:{textAlign:"left",fontWeight:600,fontSize:"1rem"},tooltipContent:{textAlign:"left",fontSize:"0.875rem",padding:"0.5rem 0"},buttonNext:{backgroundColor:"var(--active-elementBg)",borderRadius:4,fontSize:14,padding:"8px 16px",color:"var(--color-white-black)",fontWeight:600,outline:"none",boxShadow:"none"},buttonBack:{color:"var(--color-text-light-gray)",marginRight:10,fontSize:14,outline:"none",boxShadow:"none"},buttonSkip:{color:"var(--color-text-light-gray)",fontSize:14,outline:"none",boxShadow:"none"}},locale:{back:"Back",close:"Close",last:"Finish",next:"Next",open:"Open",skip:"Skip"},disableOverlayClose:!0,disableCloseOnEsc:!1,spotlightClicks:!0,scrollToFirstStep:!0,scrollOffset:200,hideCloseButton:!0}),[g,r,k,O])}}},24961:(e,t,r)=>{r.d(t,{i:()=>p});var o=r(35625),i=r(5135),n=r(12115),l=r(4551),s=r.n(l),a=r(93110),c=r(85699),u=r(14427),d=r(76266);function p({tourId:e}){let t=(0,o.jE)(),r=(0,i.A)(),[,l]=(0,a.L4)(c.gN),[m,f]=(0,n.useState)(!1),[g,h]=(0,n.useState)(null),k=async o=>{if(!r?.id){let e="No user ID available";return console.error(e),h(e),!1}f(!0),h(null);try{let i=await fetch("/api/tours/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tourId:e,userId:r.id,...o})});if(!i.ok){let e=await i.json().catch(()=>({message:"Unknown error"}));throw Error(e.message||`Failed to update tour: ${i.status}`)}let n=await i.json();return n.tours&&(e=>{if(!r)return;let t={...r,UserSetting:{...r.UserSetting,productTours:e}};s().set(null,u.A.cookies.user,JSON.stringify((0,d.a)(t)),{maxAge:u.A.cookies.maxAge,path:u.A.cookies.options.path}),l(t)}
1)(n.tours),await t.invalidateQueries({queryKey:["fetchUser"]}),await t.refetchQueries({queryKey:["fetchUser"]}),n}catch(t){let e=t instanceof Error?t.message:"Failed to update tour status";return console.error("Tour update error:",e),h(e),!1}finally{f(!1)}},T=async()=>{let t=await k({completed:!0});return t&&console.log(`✅ Tour marked as completed: ${e}`),t},I=async()=>{let t=await k({skipped:!0});return t&&console.log(`⏭️ Tour marked as skipped: ${e}`),t},b=async()=>{let t=await k({started:!0});return t&&console.log(`👀 Tour started: ${e}`),t},S=async()=>{let t=await k({completed:!1,skipped:!1});return t&&console.log(`🔄 Tour reset: ${e}`),t};return{shouldShowTour:(()=>{if(!r)return!1;let t=r?.UserSetting?.productTours;if(!t)return!0;if(t._hasSeenAnyTour)return!1;let o=t[e];return!o||"boolean"==typeof o||!o.completed&&!o.skipped})(),hasSeenAnyTour:!!r?.UserSetting?.productTours&&!0===r.UserSetting.productTours._hasSeenAnyTour,isTourCompleted:(()=>{if(!r?.UserSetting?.productTours)return!1;let t=r.UserSetting.productTours[e];return!!t&&"boolean"!=typeof t&&!0===t.completed})(),isTourSkipped:(()=>{if(!r?.UserSetting?.productTours)return!1;let t=r.UserSetting.productTours[e];return!!t&&"boolean"!=typeof t&&!0===t.skipped})(),isLoading:m,error:g,markComplete:T,markSkipped:I,markTourStarted:b,resetTour:S}}},29057:(e,t,r)=>{r.d(t,{DN:()=>i,IZ:()=>n,bZ:()=>l});var o=r(85887);let i=["Pro","BYOK"];function n(e){return e?.compedUntil&&new Date(e.compedUntil).getTime()>Date.now()?e?.compedPlan==="BYOK"?"BYOK":"Pro":null}function l(e,t){let r=n(e);return r&&o.L[r]>=o.L[t]?r:t}},60849:(e,t,r)=>{r.d(t,{A:()=>o.AY,P:()=>o.PR});var o=r(12505)},82302:(e,t,r)=>{r.d(t,{A:()=>c,P:()=>u});var o=r(95155),i=r(15835),n=r(12115),l=r(49745),s=r(93859);let a=(0,n.createContext)(void 0),c=({children:e})=>{let{currentUser:t}=(0,l.As)(),[r,c]=(0,n.useState)(s.Q.TASK_WRITER),u=(0,i.M)({tourId:r,currentUser:t}),d=(0,n.useCallback)(e=>{c(e)},[]),p={startTour:u.startTour,startComponentTour:u.startComponentTour,endTour:u.endTour,isTourActive:u.isTourActive,continueTourInModal:u.continueTourInModal,selectedTourId:r,setSelectedTourId:d};return(0,o.jsxs)(a.Provider,{value:p,children:[e,u.TourComponent()]})},u=()=>{let e=(0,n.useContext)(a);return e||{startTour:e=>{},startComponentTour:()=>{},endTour:()=>{},isTourActive:()=>!1,continueTourInModal:()=>{},selectedTourId:s.Q.PROJECT,setSelectedTourId:()=>{}}}},85887:(e,t,r)=>{r.d(t,{$:()=>l,L:()=>i});var o=r(95282);let i={Free:0,BYOK:1,AI:2,Pro:3},n=new Set(["price_1QCKkpIhmcH60Vcc2RqVACTc"]);function l(e){if(!e)return{storePlanId:"Free",billingInterval:null};if("price_1QjJeDIhmcH60VcciHzZ3mTJ"===e||"price_1TMlqDIhmcH60VccRZGW1xK3"===e)return{storePlanId:"Pro",billingInterval:"month"};if("price_1QjJf8IhmcH60VccNUrF7YJf"===e)return{storePlanId:"Pro",billingInterval:"year"};if(n.has(e))return{storePlanId:"Pro",billingInterval:"month"};
1let t=o.ld.indexOf(e);if(-1!==t){if(t<=1)return{storePlanId:"AI",billingInterval:"month"};if(2===t)return{storePlanId:"BYOK",billingInterval:"month"};if(3===t)return{storePlanId:"Pro",billingInterval:"month"}}let r=o.Eb.indexOf(e);if(-1!==r){if(r<=1)return{storePlanId:"AI",billingInterval:"year"};if(2===r)return{storePlanId:"BYOK",billingInterval:"year"};if(3===r)return{storePlanId:"Pro",billingInterval:"year"}}return{storePlanId:"Free",billingInterval:null}}},86649:(e,t,r)=>{r.d(t,{G:()=>c,Q:()=>a});var o=r(85887);let i=new Set(["08f79efd-770e-4e32-9728-65e6d29ec893"]);var n=r(29057);let l=new Set(["paid","active","trialing","past_due"]);function s(e){return!!e&&l.has(e.toLowerCase())}function a(e){var t;if(!e?.id)return null;let r=function(e,t){if(!e?.length)return null;let r=e=>s(e.subscriptionStatus);return t&&e.find(e=>e.subscriptionId===t&&r(e))||e.find(r)||t&&e.find(e=>e.subscriptionId===t)||e[0]||null}(e.subscriptionPlan,e.activeSubscriptionPlanId),l=r?.priceId??null,a=s(r?.subscriptionStatus)?(0,o.$)(l):{storePlanId:"Free",billingInterval:null},c=(0,n.IZ)(e),u=(0,n.bZ)(e,a.storePlanId),d=c&&u===c?null:a.billingInterval,p=(t=e.id)&&i.has(t)?"Pro":u,m=e.byokApiKeys?.map(({enabled:e,provider:t})=>({enabled:e,provider:t}))??[];return{teamId:e.id,stripePriceId:l,storePlanId:p,billingInterval:d,byokProviderFlags:m}}function c(e){if(!e?.id)return null;let t=e.team,r=e.teamId??t?.id??null,o=a(t);return o?{projectId:e.id,...o,teamId:r}:null}},93859:(e,t,r)=>{r.d(t,{Q:()=>o});let o={PROJECT:"project",CREATE_TASK_MODAL:"create-task-modal",SHORTCUTS:"shortcuts",TASK_DETAIL:"task-detail",TASK_WRITER:"task-writer"}},95282:(e,t,r)=>{r.d(t,{Eb:()=>p,ld:()=>d,vt:()=>m});let o=String("price_1OSg0zIhmcH60VccTpAFDv32"),i=String("price_1OSg35IhmcH60VccJP5LQo03"),n=String("price_1QjJeDIhmcH60VcciHzZ3mTJ"),l=String("price_1QjJf8IhmcH60VccNUrF7YJf"),s=String("price_1TMlqCIhmcH60Vccgq4fpSWu"),a=String("price_1TMlqCIhmcH60VccI6VjW2FM"),c=String("price_1QjJeDIhmcH60VcciHzZ3mTJ"),u=String("price_1QjJf8IhmcH60VccNUrF7YJf"),d=[o,n,s,c],p=[i,l,a,u],m=[{id:"BYOK",name:"BYOK",types:[{id:0,title:"Monthly",price:"$10",description:"per user / month",stripePriceId:s},{id:1,title:"Annually",price:"$96",description:"per user / year",stripePriceId:a}],perks:[{titlePrefix:"AI",title:"Task Writer",amount:"Unlimited",unlimited:!0},{titlePrefix:"AI",title:"Inbox triage & writing assist",amount:"Unlimited",unlimited:!0},{titlePrefix:"AI",title:"Summaries & voice dictation",amount:"Unlimited",unlimited:!0},{title:"Team seats",amount:"Up to 50",unlimited:!1},{title:"CLI + MCP",amount:"Included",unlimited:!0},{title:"Shared workspace",amount:"From 2+ seats",unlimited:!0},{title:"LLM billing",amount:"Your API keys (Anthropic, OpenAI, OpenRouter)",unlimited:!0},{title:"Support",amount:"Email",unlimited:!0}]},{id:"Pro",name:"Pro",types:[{id:0,title:"Monthly",price:"$20",description:"per user / month",stripePriceId:c},{id:1,title:"Annually",price:"$192",description:"per user / year",stripePriceId:u}],perks:[{titlePrefix:"AI",title:"Task Writer",amount:"Unlimited",unlimited:!0},{titlePrefix:"AI",title:"Inbox triage & writing assist",amount:"Unlimited",unlimited:!0},{titlePrefix:"AI",title:"Summaries & voice dictation",amount:"Unlimited",unlimited:!0},{title:"Team seats",amount:"Up to 50",unlimited:!1},{title:"CLI + MCP",amount:"Included",unlimited:!0},{title:"Shared workspace",amount:"From 2+ seats",unlimited:!0},{title:"LLM billing",amount:"$15 of tokens / seat included (overage 1.2\xd7)",unlimited:!0},{title:"Support",amount:"Priority",unlimited:!0}]},{id:"Free",name:"Free Trial",types:[{id:0,title:"Monthly",price:"$0",description:"/ 14 days"}],perks:[{titlePrefix:"AI",title:"Task Writer",amount:"Unlimited",unlimited:!0},{titlePrefix:"AI",title:"Inbox triage & writing assist",amount:"Unlimited",unlimited:!0},{titlePrefix:"AI",title:"Summaries & voice dictation",amount:"Unlimited",unlimited:!0},{title:"Team seats",amount:"Up to 50",unlimited:!1},{title:"CLI + MCP",amount:"Included",unlimited:!0},{title:"Shared workspace",amount:"From 2+ seats",unlimited:!0},{title:"LLM billing",amount:"Included during trial",unlimited:!0},{title:"Support",amount:"Email",unlimited:!0}]}]}}]);

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.