PageSourceSearch

https://www.forgednfoundry.com/assets/ToolsHub-D1UuGf__.js

js forgednfoundry.com collected 2026-09-24 14:43:33 UTC 11,992 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SmartDocs-Brb0ivd_.js","assets/framer-motion-BaLjy9Ko.js","assets/index-D2aU7UoU.js","assets/radix-ui-BFkc169U.js","assets/pdf-B-X7H1-U.js","assets/lucide-D38v2lx-.js","assets/charts-C5feAMdf.js","assets/index-DWnMTDU6.css","assets/label-BKMPhEhf.js","assets/textarea-MIBcRauv.js","assets/Skeletons-BPpYD2Mt.js","assets/confetti.module-oQXWb4Lk.js","assets/MoodboardGenerator-DqJB_CoI.js","assets/ViralHookGenerator-g0_akqhC.js","assets/badge-lYfhmF69.js","assets/input-BD5QmPQJ.js","assets/select-DHhIrbTx.js","assets/PricingPsychology-DOu3yr2a.js","assets/BrandMockups-DOWj5M0g.js","assets/MockupPreview-0kf1qbH1.js","assets/LaunchPack-C94vjBQC.js","assets/tabs-Cre6aweQ.js","assets/CompetitorAnalyzer-DKMe3RiG.js","assets/scroll-area-DZCq42nb.js","assets/separator--_qQokPq.js","assets/checkbox-CevTuQsU.js","assets/CustomerAvatarWorkshop-BYj2Bsr4.js","assets/LogoGenerator-CjW76p_Y.js","assets/brand-kit-identity-fFGQb1Em.js","assets/BusinessModelCanvas-tUZL9JtZ.js","assets/PricingStrategyBuilder-ChYHFDJy.js"])))=>i.map(i=>d[i]);
2import{_ as n}from"./pdf-B-X7H1-U.js";import{r as o,j as e}from"./framer-motion-BaLjy9Ko.js";import{k}from"./index-D2aU7UoU.js";import{n as j,ag as w,ai as y,aj as N,u as z,q as C,ay as f,o as E,az as T,m as A,t as S,Z as L,Q as g,a as O,A as m,aA as P,ak as B}from"./lucide-D38v2lx-.js";import"./radix-ui-BFkc169U.js";import"./charts-C5feAMdf.js";const D=o.lazy(()=>n(()=>import("./SmartDocs-Brb0ivd_.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])).then(t=>({default:t.SmartDocs}))),I=o.lazy(()=>n(()=>import("./MoodboardGenerator-DqJB_CoI.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,9])).then(t=>({default:t.MoodboardGenerator}))),R=o.lazy(()=>n(()=>import("./ViralHookGenerator-g0_akqhC.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,14,8,15,16])).then(t=>({default:t.ViralHookGenerator}))),V=o.lazy(()=>n(()=>import("./PricingPsychology-DOu3yr2a.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,15,8])).then(t=>({default:t.PricingPsychology}))),M=o.lazy(()=>n(()=>import("./BrandMockups-DOWj5M0g.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,15,8,19])).then(t=>({default:t.BrandMockups}))),F=o.lazy(()=>n(()=>import("./LaunchPack-C94vjBQC.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,15,8,21])).then(t=>({default:t.LaunchPack}))),G=o.lazy(()=>n(()=>import("./CompetitorAnalyzer-DKMe3RiG.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,15,8,21,14,23,16,24,9,25])).then(t=>({default:t.CompetitorAnalyzer}))),H=o.lazy(()=>n(()=>import("./CustomerAvatarWorkshop-BYj2Bsr4.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,15,8,21,14,23,16,24,9])).then(t=>({default:t.CustomerAvatarWorkshop}))),U=o.lazy(()=>n(()=>import("./LogoGenerator-CjW76p_Y.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,28])).then(t=>({default:t.LogoGenerator}))),W=o.lazy(()=>n(()=>import("./BusinessModelCanvas-tUZL9JtZ.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,15,9])).then(t=>({default:t.BusinessModelCanvas}))),Z=o.lazy(()=>n(()=>import("./PricingStrategyBuilder-ChYHFDJy.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,15,9,16])).then(t=>({default:t.PricingStrategyBuilder}))),b=[{id:"foundation",name:"Foundation",icon:j,purpose:"Clarify the buyer, the offer, and the business model before making more assets."},{id:"offer",name:"Offer",icon:w,purpose:"Sharpen pricing, proof, and the message a buyer needs to make a decision."},{id:"launch",name:"Launch",icon:y,purpose:"Create the focused brand and launch assets that carry the offer into the market."},{id:"operate",name:"Operate",icon:N,purpose:"Organize what is working and decide whether a specific approved workflow deserves more support."}],q=[{id:"customer-avatar",name:"Customer Avatar",icon:z,outcome:"foundation",description:"Map the buyer before deciding what to say."},{id:"competitor-analyzer",name:"Competitor Analyzer",icon:j,outcome:"foundation",description:"Study a competitor with a specific business decision in mind."},{id:"business-model",name:"Business Model Canvas",icon:C,outcome:"foundation",description:"Pressure-test how the business creates and captures value."},{id:"pricing-psychology",name:"Pricing Psychology",icon:f,outcome:"offer",description:"Shape an offer around buyer confidence and value."},{id:"pricing-builder",name:"Pricing Strategy",icon:f,outcome:"offer",description:"Build tiers, objections, and revenue scenarios."},{id:"smart-docs",name:"Smart Docs",icon:E,outcome:"offer",description:"Turn an approved offer into a useful document or message."},{id:"logo-generator",name:"Logo Studio",icon:T,outcome:"launch",description:"Explore original logo concepts from your saved brand and chosen style."},{id:"moodboards",name:"Moodboards",icon:A,outcome:"launch",description:"Create visual direction that supports the offer."},{id:"mockups",name:"Brand Mockups",icon:S,outcome:"launch",description:"Apply a direction to a real customer-facing surface."},{id:"launch-pack",name:"Launch Pack",icon:y,outcome:"launch",description:"Create the materials for a focused launch."}
2,{id:"viral-hooks",name:"Viral Hook Generator",icon:L,outcome:"launch",description:"Develop social hooks after the offer and message are clear."}];function Q({onNavigate:t}){return e.jsx("div",{className:"mx-auto flex min-h-[60vh] max-w-2xl items-center p-6 md:p-8",children:e.jsxs("div",{className:"border border-zinc-800 bg-[#111111] p-8 sm:p-10",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2 text-xs font-mono uppercase tracking-[0.2em] text-[#d4af37]",children:[e.jsx(B,{className:"h-4 w-4"}),"Foundation first"]}),e.jsx("h1",{className:"text-4xl font-bold tracking-tight text-white",children:"The advanced tools need a business to work from."}),e.jsx("p",{className:"mt-5 max-w-xl text-lg leading-relaxed text-zinc-400",children:"Build and save the Foundation first. Then every advanced pass can stay tied to a real buyer, offer, and business decision."}),e.jsxs("button",{type:"button",onClick:()=>t?.("first-forge"),className:"mt-8 inline-flex items-center gap-2 bg-[#d4af37] px-6 py-3 text-sm font-bold uppercase tracking-wider text-black transition hover:bg-white",children:["Build my Foundation",e.jsx(m,{className:"h-4 w-4"})]})]})})}function se({userPlan:t,currentKit:a,onNavigate:l}){const[u,p]=o.useState(null),[i,d]=o.useState(null),[x,h]=o.useState("loading");o.useEffect(()=>{const s=sessionStorage.getItem("fnf_tools_outcome");s&&b.some(c=>c.id===s)&&d(s);let r=!0;return k("/api/users/foundation").then(async c=>c.ok?(await c.json())?.data?.businessFoundation?.foundation?.businessName?"ready":"missing":null).then(c=>{r&&h(c||"missing")}).catch(()=>{r&&h("missing")}),()=>{r=!1}},[]);const v=o.useMemo(()=>i&&i!=="operate"?q.filter(s=>s.outcome===i):[],[i]),_=()=>{switch(u){case"smart-docs":return e.jsx(D,{userPlan:t,currentKit:a});case"moodboards":return e.jsx(I,{userPlan:t,currentKit:a});case"viral-hooks":return e.jsx(R,{userPlan:t,currentKit:a});case"pricing-psychology":return e.jsx(V,{userPlan:t,currentKit:a});case"mockups":return e.jsx(M,{userPlan:t,currentKit:a});case"launch-pack":return e.jsx(F,{userPlan:t,currentKit:a});case"competitor-analyzer":return e.jsx(G,{userPlan:t,currentKit:a});case"customer-avatar":return e.jsx(H,{userPlan:t,currentKit:a});case"logo-generator":return e.jsx(U,{userPlan:t,currentKit:a});case"business-model":return e.jsx(W,{userPlan:t,currentKit:a});case"pricing-builder":return e.jsx(Z,{userPlan:t,currentKit:a});default:return null}};return x==="loading"?e.jsx("div",{className:"p-8 text-sm font-mono text-zinc-500",children:"Loading your Foundation…"}):x==="missing"?e.jsx(Q,{onNavigate:l}):u?e.jsxs("div",{className:"space-y-6 p-6 md:p-8",children:[e.jsxs("button",{type:"button",onClick:()=>p(null),className:"flex items-center gap-2 text-xs font-mono tracking-widest text-zinc-500 transition hover:text-white",children:[e.jsx(g,{className:"h-4 w-4"}),"BACK TO ",i?.toUpperCase()," SUPPORT"]}),e.jsx(o.Suspense,{fallback:e.jsx("div",{className:"p-6 text-sm font-mono text-zinc-500",children:"Loading support tool…"}),children:_()})]}):e.jsxs("div",{className:"mx-auto max-w-[1400px] space-y-8 p-6 md:p-8",children:[e.jsxs("header",{className:"flex flex-col gap-5 lg:flex-row lg:items-end lg:justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-mono uppercase tracking-widest text-[#d4af37]",children:[e.jsx(O,{className:"h-4 w-4"}),"Outcome support"]}),e.jsx("h1",{className:"text-3xl font-black tracking-tight text-white",children:"Choose the business outcome first."}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm text-zinc-500",children:"Advanced tools are here to support a decision—not to create more disconnected work."})]}),e.jsxs("button",{type:"button",onClick:()=>
2l?.("dashboard"),className:"inline-flex items-center gap-2 text-sm font-semibold text-[#d4af37] transition hover:text-white",children:["Back to next move",e.jsx(m,{className:"h-4 w-4"})]})]}),i?i==="operate"?e.jsxs("section",{className:"max-w-3xl border border-zinc-800 bg-[#111111] p-6 sm:p-8",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2 text-xs font-mono uppercase tracking-[0.18em] text-[#d4af37]",children:[e.jsx(P,{className:"h-4 w-4"}),"Operate with intention"]}),e.jsx("h2",{className:"text-3xl font-bold text-white",children:"No automatic work is running for this business."}),e.jsx("p",{className:"mt-4 max-w-2xl leading-relaxed text-zinc-400",children:"Blacksmith is not activated by opening this page. It becomes relevant only when you define a mission, approve the work, and choose to run it against a saved Foundation."}),e.jsxs("div",{className:"mt-7 flex flex-wrap gap-3",children:[e.jsx("button",{type:"button",onClick:()=>l?.("vault"),className:"border border-[#d4af37]/50 px-5 py-3 text-sm font-semibold text-[#d4af37] transition hover:border-[#d4af37] hover:bg-[#d4af37]/10",children:"Open saved assets"}),e.jsx("button",{type:"button",onClick:()=>d(null),className:"px-5 py-3 text-sm font-semibold text-zinc-400 transition hover:text-white",children:"Choose another outcome"})]})]}):e.jsxs("section",{children:[e.jsxs("div",{className:"mb-5 flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"text-xs font-mono uppercase tracking-[0.18em] text-[#d4af37]",children:[i," support"]}),e.jsx("h2",{className:"mt-2 text-2xl font-bold text-white",children:"Use only the tool that helps this outcome."})]}),e.jsxs("button",{type:"button",onClick:()=>d(null),className:"inline-flex items-center gap-2 text-sm font-semibold text-zinc-400 transition hover:text-white",children:[e.jsx(g,{className:"h-4 w-4"}),"Change outcome"]})]}),e.jsx("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-3",children:v.map(s=>{const r=s.icon;return e.jsxs("button",{type:"button",onClick:()=>p(s.id),className:"border border-zinc-800 bg-black p-5 text-left transition hover:border-[#d4af37]/60",children:[e.jsx(r,{className:"h-5 w-5 text-[#d4af37]"}),e.jsx("h3",{className:"mt-4 font-semibold text-white",children:s.name}),e.jsx("p",{className:"mt-2 text-sm leading-relaxed text-zinc-500",children:s.description})]},s.id)})})]}):e.jsx("section",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-4",children:b.map(s=>{const r=s.icon;return e.jsxs("button",{type:"button",onClick:()=>{sessionStorage.setItem("fnf_tools_outcome",s.id),d(s.id)},className:"min-h-[230px] border border-zinc-800 bg-[#111111] p-5 text-left transition hover:border-[#d4af37]/60 hover:bg-[#151515]",children:[e.jsx("div",{className:"mb-5 flex h-11 w-11 items-center justify-center border border-[#d4af37]/25 bg-[#d4af37]/10 text-[#d4af37]",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h2",{className:"text-xl font-bold text-white",children:s.name}),e.jsx("p",{className:"mt-3 text-sm leading-relaxed text-zinc-400",children:s.purpose}),e.jsxs("span",{className:"mt-6 inline-flex items-center gap-2 text-sm font-semibold text-[#d4af37]",children:["See support",e.jsx(m,{className:"h-4 w-4"})]})]},s.id)})})]})}export{se as ToolsHub};

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.