// hf-all.jsx — Single-IIFE combined hf-kit + all 9 category templates. // Avoids Babel async src-script ordering issues by keeping everything in one scope. // Exports to window: HMark, HLogo, HBadge, HLines, HField, HSection, HStats, // HColorRow, HTable, HChart, HProgRow, HDoc, HDeck, HDeckBody, HSwot, HLane, // HB_BRAND, HB_SALES, HB_STRAT, HB_PROD, HB_OPS, HB_HR, HB_FIN, HB_CS, HB_EXEC. (function () { // ════════════════════════════════════════════════════════════════ // KIT — Hi-fidelity Tatava-branded document primitives // ════════════════════════════════════════════════════════════════ if (!document.getElementById('hf-styles')) { const s = document.createElement('style'); s.id = 'hf-styles'; s.textContent = ` .hf{font-family:'Open Sans',system-ui,sans-serif;height:100%;width:100%;position:relative;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;-webkit-font-smoothing:antialiased;background:#FFFBF6} .hf *{box-sizing:border-box} /* header */ .hf-head{background:#21366C;padding:9px 14px;display:flex;align-items:center;justify-content:space-between;flex:0 0 auto} .hf-logo{display:inline-flex;align-items:center;gap:7px} .hf-logo-wm{font-family:'Bebas Neue',Impact,sans-serif;font-size:13px;letter-spacing:1px;line-height:1;color:#FFFBF6} .hf-badge{font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:5px;background:rgba(236,122,53,.22);color:#EC7A35;white-space:nowrap} .hf-badge.navy{background:rgba(255,255,255,.14);color:#FFFBF6} /* title block */ .hf-title-block{padding:10px 14px 9px;border-bottom:2.5px solid #EC7A35;flex:0 0 auto} .hf-title{font-family:'Poppins',sans-serif;font-size:15px;font-weight:700;color:#21366C;letter-spacing:-.012em;line-height:1.2} .hf-cat-label{font-size:8.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(58,58,54,.45);margin-top:2px} /* body sections */ .hf-body{flex:1;display:flex;flex-direction:column;overflow:hidden} .hf-sec{padding:7px 14px;border-bottom:1px solid rgba(33,54,108,.07);flex:0 0 auto} .hf-sec-lbl{font-size:8px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#21366C;margin-bottom:4px;display:flex;align-items:center;gap:5px} .hf-sec-lbl::after{content:'';flex:1;height:1px;background:#EC7A35;opacity:.28;border-radius:1px} /* placeholder lines */ .hf-ln{height:8px;border-radius:2px;background:rgba(33,54,108,.08);display:block;margin-bottom:4px} .hf-ln:last-child{margin-bottom:0} /* form field */ .hf-fld{height:25px;border:1.5px solid rgba(33,54,108,.14);border-radius:5px;background:#FFFBF6;margin-bottom:4px} .hf-fld:last-child{margin-bottom:0} /* stats strip */ .hf-stats{display:flex;border-bottom:1px solid rgba(33,54,108,.07);flex:0 0 auto} .hf-stat{flex:1;padding:7px 8px;text-align:center;border-right:1px solid rgba(33,54,108,.07)} .hf-stat:last-child{border-right:none} .hf-stat-n{font-size:16px;font-weight:700;color:#21366C;line-height:1} .hf-stat-l{font-size:7.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:rgba(58,58,54,.45);margin-top:2px} /* color swatches */ .hf-colors{display:flex;gap:8px;padding:8px 14px;border-bottom:1px solid rgba(33,54,108,.07);flex:0 0 auto} .hf-sw{width:36px;height:36px;border-radius:7px;border:1.5px solid rgba(33,54,108,.1)} .hf-sw-name{font-size:7.5px;text-align:center;margin-top:2px;color:rgba(58,58,54,.55);font-weight:500} /* table */ .hf-tbl{border:1.5px solid rgba(33,54,108,.12);border-radius:6px;overflow:hidden;margin:2px 0} .hf-tbl .hdr{background:#21366C;padding:4px 8px;display:flex;gap:4px;flex:0 0 auto} .hf-tbl .row{display:flex;gap:4px;padding:4px 8px;border-top:1px solid rgba(33,54,108,.07)} .hf-tbl .row:nth-child(odd){background:#FFFBF6} .hf-tl{height:7px;border-radius:2px;background:rgba(255,255,255,.28);display:block} .hf-tl.d{background:rgba(33,54,108,.1)} /* chart placeholder */ .hf-chart{background:rgba(33,54,108,.05);border-radius:6px;border:1.5px solid rgba(33,54,108,.1);display:flex;align-items:center;justify-content:center;margin:2px 0} .hf-chart span{font-size:8px;font-weight:600;letter-spacing:.05em;color:rgba(33,54,108,.3)} /* progress row */ .hf-prog{display:flex;align-items:center;gap:7px;margin-bottom:4px} .hf-prog:last-child{margin-bottom:0} .hf-prog-lbl{font-size:9px;font-weight:500;color:rgba(58,58,54,.65);width:108px;flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .hf-prog-track{flex:1;height:6px;border-radius:3px;background:rgba(33,54,108,.1);overflow:hidden} .hf-prog-fill{height:100%;border-radius:3px;background:#21366C} .hf-prog-pct{font-size:8.5px;font-weight:700;color:#EC7A35;width:26px;text-align:right;flex:0 0 auto} /* footer */ .hf-foot{padding:7px 14px;background:rgba(33,54,108,.05);border-top:1.5px solid rgba(33,54,108,.1);font-size:8px;color:rgba(58,58,54,.45);font-weight:500;flex:0 0 auto;letter-spacing:.01em} /* 2-col layout */ .hf-2col{display:flex;gap:0;flex:1;overflow:hidden} .hf-2col .col{flex:1;overflow:hidden;padding:7px 14px;border-right:1px solid rgba(33,54,108,.07)} .hf-2col .col:last-child{border-right:none} /* SWOT grid */ .hf-swot{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 14px;flex:1} .hf-swot-q{border-radius:7px;padding:8px 10px;display:flex;flex-direction:column;gap:5px} .hf-swot-q .ql{font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase} /* DECK */ .hf-deck{height:100%;width:100%;display:flex;flex-direction:column;background:#21366C;position:relative;overflow:hidden} .hf-deck.light{background:#FFFBF6} .hf-deck-bar{height:3px;background:#EC7A35;flex:0 0 auto} .hf-deck-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 32px;gap:10px} .hf-deck-kicker{font-size:8.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#EC7A35} .hf-deck-title{font-family:'Poppins',sans-serif;font-size:26px;font-weight:700;color:#fff;letter-spacing:-.025em;line-height:1.08} .hf-deck.light .hf-deck-title{color:#21366C} .hf-deck-sub{font-size:10.5px;color:rgba(255,255,255,.55);line-height:1.5} .hf-deck.light .hf-deck-sub{color:rgba(58,58,54,.5)} .hf-deck-foot{padding:11px 32px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;flex:0 0 auto} .hf-deck.light .hf-deck-foot{border-top-color:rgba(33,54,108,.1)} .hf-deck-tagline{font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3)} .hf-deck.light .hf-deck-tagline{color:rgba(58,58,54,.3)} /* deck content slide */ .hf-slide{height:100%;width:100%;display:flex;flex-direction:column;background:#fff;overflow:hidden} .hf-slide-head{background:#21366C;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;flex:0 0 auto} .hf-slide-title{font-size:13px;font-weight:700;color:#fff;border-bottom:2px solid #EC7A35;padding-bottom:2px} .hf-slide-body{flex:1;padding:14px 24px;display:flex;flex-direction:column;gap:9px;overflow:hidden} .hf-bullet{display:flex;gap:9px;align-items:flex-start} .hf-bullet-dot{width:14px;height:14px;border-radius:3px;background:#EC7A35;flex:0 0 auto;margin-top:1px} .hf-bullet-lines{display:flex;flex-direction:column;gap:3px;flex:1} /* roadmap lanes */ .hf-lane-row{display:flex;gap:4px;align-items:center;margin-bottom:5px} .hf-lane-lbl{font-size:8px;font-weight:700;color:#21366C;width:56px;flex:0 0 auto;letter-spacing:.04em} .hf-lane-cell{flex:1;height:22px;border-radius:5px;border:1.5px solid rgba(33,54,108,.14)} `; document.head.appendChild(s); } // ── Tatava mark ─────────────────────────────────────── const HMark = ({ size = 18, white = false }) => ( ); const HLogo = ({ white = false, size = 18 }) => ( TATAVA STUDIO ); // ── primitives ──────────────────────────────────────── const HBadge = ({ children, navy = false }) => {children}; const HLines = ({ n = 2, last = '68%' }) => (
{Array.from({length:n}).map((_,i) => )}
); const HField = () =>
; const HSection = ({ label, children, form, n = 2, last = '68%' }) => (
{label}
{children || (form ? <> : )}
); const HStats = ({ items }) => (
{items.map((it,i) =>
{it.n}
{it.l}
)}
); const HColorRow = ({ colors }) => (
{colors.map(({hex,name}) => (
{name}
))}
); const HTable = ({ cols = [40,30,25], rows = 3 }) => (
{cols.map((w,i) => )}
{Array.from({length:rows}).map((_,i) => (
{cols.map((w,j) => )}
))}
); const HChart = ({ h = 50, label = 'chart' }) => (
{label}
); const HProgRow = ({ label, pct }) => (
{label}
{pct}%
); // ── HDoc factory ───────────────────────────────────── const HDoc = ({ title, badge = 'Document', cat, sections = [], footer, stats, colors }) => (
{badge}
{colors && } {stats && }
{title}
{cat &&
{cat}
}
{sections.map((s, i) => { const lbl = typeof s === 'string' ? s : s.label || s.title || ''; if (typeof s === 'object' && s.form) return
{lbl}
{s.extra && }
; if (typeof s === 'object' && s.table) return
{lbl}
; if (typeof s === 'object' && s.chart) return
{lbl}
; if (typeof s === 'object' && s.children) return
{lbl}
{s.children}
; const n = typeof s === 'object' ? (s.n||2) : (i<2?2:1); const last = typeof s === 'object' ? (s.last||'68%') : [72,55,82,66,78,58][i%6]+'%'; return ; })}
{footer &&
{footer}
}
); // ── HDeck (title slide) ─────────────────────────────── const HDeck = ({ title, sub, kicker, light = false }) => (
{kicker &&
{kicker}
}
{title}
{sub &&
{sub}
}
Simplifying Wellness
); // ── HDeckBody (content slide) ───────────────────────── const HDeckBody = ({ heading, items = 3, light = false }) => (
{heading}
{Array.from({length:items}).map((_,i) => (
))}
); // ── SWOT 2×2 ───────────────────────────────────────── const SWOT_DEFAULT = [ { label:'Strengths', bg:'rgba(236,122,53,.1)', lc:'#EC7A35', hint:'Credentials · 1,000+ sessions · BHF' }, { label:'Weaknesses', bg:'rgba(33,54,108,.07)', lc:'#21366C', hint:'Single-practitioner · new brand' }, { label:'Opportunities',bg:'rgba(236,122,53,.1)', lc:'#EC7A35', hint:'Corporate EAP · tele/NRI · content' }, { label:'Threats', bg:'rgba(33,54,108,.07)', lc:'#21366C', hint:'Stigma · low-cost apps · competitor PR' }, ]; const HSwot = ({ q = SWOT_DEFAULT }) => (
{q.map(({ label, bg, lc, hint }) => (
{label} {hint}
))}
); // ── Roadmap lane chart ──────────────────────────────── const HLane = ({ lanes = [], cols = ['Now','Next','Later'] }) => (
{cols.map(c =>
{c}
)}
{lanes.map(({ label, fill }, i) => (
{label} {fill.map((f, j) => (
))}
))}
); // ── Export kit primitives immediately so individual hf-*.jsx files can read them ── Object.assign(window, { HMark, HLogo, HBadge, HLines, HField, HSection, HStats, HColorRow, HTable, HChart, HProgRow, HDoc, HDeck, HDeckBody, HSwot, HLane }); // ── Shared artboard dimensions ── const W = 414, H = 586, WD = 640, HD = 360; // ════════════════════════════════════════════════════════════════ // BRAND & MARKETING // ════════════════════════════════════════════════════════════════ const BrandGuidelines = () => ( ); const BrandPositioning = () => ( ); const MessagingFramework = () => ( ); const ToneOfVoice = () => ( ); const ContentBrief = () => ( ); const LandingPage = () => ( ); const BlogPost = () => ( ); const CaseStudy = () => ( ); const PressRelease = () => ( ); const AdCreativeBrief = () => ( ); const CampaignPlanning = () => ( ); const VideoBrief = () => ( ); const EmailNewsletter = () => (
},'Checklist']} /> ); const TestimonialTpl = () => (
"
}, 'Publishing']} /> ); const SocialMediaKit = () => ( ); window.HB_BRAND = [ {id:'hbr-01',name:'Brand Guidelines', w:W,h:H,comp:BrandGuidelines}, {id:'hbr-02',name:'Brand Positioning', w:W,h:H,comp:BrandPositioning}, {id:'hbr-03',name:'Messaging Framework', w:W,h:H,comp:MessagingFramework}, {id:'hbr-04',name:'Tone of Voice Guide', w:W,h:H,comp:ToneOfVoice}, {id:'hbr-05',name:'Content Brief', w:W,h:H,comp:ContentBrief}, {id:'hbr-06',name:'Landing Page Template', w:W,h:H,comp:LandingPage}, {id:'hbr-07',name:'Blog Post Template', w:W,h:H,comp:BlogPost}, {id:'hbr-08',name:'Case Study Template', w:W,h:H,comp:CaseStudy}, {id:'hbr-09',name:'Press Release Template', w:W,h:H,comp:PressRelease}, {id:'hbr-10',name:'Ad Creative Brief', w:W,h:H,comp:AdCreativeBrief}, {id:'hbr-11',name:'Campaign Planning', w:W,h:H,comp:CampaignPlanning}, {id:'hbr-12',name:'Video Production Brief', w:W,h:H,comp:VideoBrief}, {id:'hbr-13',name:'Email Newsletter', w:W,h:H,comp:EmailNewsletter}, {id:'hbr-14',name:'Customer Testimonial', w:W,h:H,comp:TestimonialTpl}, {id:'hbr-15',name:'Social Media Kit', w:W,h:H,comp:SocialMediaKit}, ]; // ════════════════════════════════════════════════════════════════ // SALES // ════════════════════════════════════════════════════════════════ const SalesDeck_1 = () => ; const SalesDeck_2 = () => ; const SalesDeck_3 = () => ; const CompanyOverview_1 = () => ; const CompanyOverview_2 = () => ; const PitchDeck_1 = () => ; const PitchDeck_2 = () => ; const PitchDeck_3 = () => ; const DiscoveryCall = () => ( ); const SalesProposal = () => ( ); const SOW = () => ( ); const Quote = () => ( ); const Pricing = () => (
Pricing Sheet
Pricing Sheet
Tatava Studio · 2025–26
{[ {tier:'Individual Therapy',color:'#21366C',light:false}, {tier:'Family / Couples',color:'#EC7A35',light:true}, {tier:'Corporate / EAP',color:'#21366C',light:false}, ].map(({tier,color,light}) => (
{tier} {light?'₹ ——':'₹ ——'}
{[1,2,3].map(i => (
))}
))}
Taxes noted · +91 85957 48981 · B-18 Swasthya Vihar, New Delhi
); const Comparison = () => ( ); const FollowUp = () => ( ); const ObjectionGuide = () => ( ); const OnboardCheck = () => ( ); window.HB_SALES = [ {id:'hsl-01',name:'Sales Deck', w:WD,h:HD,isDeck:true,slides:[SalesDeck_1,SalesDeck_2,SalesDeck_3]}, {id:'hsl-02',name:'Company Overview Deck', w:WD,h:HD,isDeck:true,slides:[CompanyOverview_1,CompanyOverview_2]}, {id:'hsl-03',name:'Pitch Deck', w:WD,h:HD,isDeck:true,slides:[PitchDeck_1,PitchDeck_2,PitchDeck_3]}, {id:'hsl-04',name:'Discovery Call Template', w:W, h:H, comp:DiscoveryCall}, {id:'hsl-05',name:'Sales Proposal', w:W, h:H, comp:SalesProposal}, {id:'hsl-06',name:'Statement of Work (SOW)', w:W, h:H, comp:SOW}, {id:'hsl-07',name:'Quote / Estimate', w:W, h:H, comp:Quote}, {id:'hsl-08',name:'Pricing Sheet', w:W, h:H, comp:Pricing}, {id:'hsl-09',name:'Competitor Comparison', w:W, h:H, comp:Comparison}, {id:'hsl-10',name:'Sales Follow-up Email', w:W, h:H, comp:FollowUp}, {id:'hsl-11',name:'Objection Handling Guide',w:W, h:H, comp:ObjectionGuide}, {id:'hsl-12',name:'Client Onboarding', w:W, h:H, comp:OnboardCheck}, ]; // ════════════════════════════════════════════════════════════════ // STRATEGY & PLANNING // ════════════════════════════════════════════════════════════════ const BusinessPlan = () => ( ); const StrategicPlan = () => ( ); const AnnualOp = () => ( ); const QuarterlyPlan = () => ( ); const OKR = () => (
OKR Template
OKR Template
Strategy & Planning · Q2
{[ {level:'Company Objective', label:'Simplifying Wellness across India', krs:[{l:'Booking growth',p:68},{l:'NPS ≥ 9',p:42},{l:'Corp EAP deals',p:25}]}, {level:'Team Objective', label:'Aarti Ahuja · Operations', krs:[{l:'Session capacity',p:80},{l:'Content reach',p:55}]}, ].map((obj,oi) => (
{obj.level}
{obj.label}
{obj.krs.map((kr,ki) => )}
))}
Scoring (end of period)
); const KPI = () => (
KPI Dashboard
KPI Dashboard
Tatava Studio · Live metrics
{['Funnel','Delivery','Revenue','BHF Impact'].map(t => (
{t}
))}
); const SWOT = () => (
SWOT Analysis
SWOT Analysis
Tatava Studio · Strategic snapshot
So-What / Actions
); const Roadmap = () => (
Roadmap
Roadmap Template
Tatava Studio · Rolling quarters
Themes · Out of Scope
); const MarketResearch = () => ( ); const CompAnalysis = () => ( ); const GtmPlan = () => ( ); const LaunchPlan = () => ( ); const RiskMatrix = () => ( ); window.HB_STRAT = [ {id:'hst-01',name:'Business Plan', w:W, h:H, comp:BusinessPlan}, {id:'hst-02',name:'Strategic Plan', w:W, h:H, comp:StrategicPlan}, {id:'hst-03',name:'Annual Operating Plan', w:W, h:H, comp:AnnualOp}, {id:'hst-04',name:'Quarterly Planning', w:W, h:H, comp:QuarterlyPlan}, {id:'hst-05',name:'OKR Template', w:W, h:H, comp:OKR}, {id:'hst-06',name:'KPI Dashboard', w:WD,h:HD,comp:KPI}, {id:'hst-07',name:'SWOT Analysis', w:W, h:H, comp:SWOT}, {id:'hst-08',name:'Market Research Report', w:W, h:H, comp:MarketResearch}, {id:'hst-09',name:'Competitor Analysis', w:W, h:H, comp:CompAnalysis}, {id:'hst-10',name:'Go-To-Market Plan', w:W, h:H, comp:GtmPlan}, {id:'hst-11',name:'Product Launch Plan', w:W, h:H, comp:LaunchPlan}, {id:'hst-12',name:'Risk Assessment Matrix', w:W, h:H, comp:RiskMatrix}, {id:'hst-13',name:'Roadmap Template', w:WD,h:HD,comp:Roadmap}, ]; // ════════════════════════════════════════════════════════════════ // PRODUCT & DEV // ════════════════════════════════════════════════════════════════ const PRD = () => ( ); const FeatureSpec = () => ( ); const UserStory = () => ( ); const ProductRoadmap = () => (
Product Roadmap
Product Roadmap
Tatava Studio · Tatava Connect
Themes · Out of Scope
); const Sprint = () => (
Sprint Planning
Sprint Planning
Product & Dev · 2-week sprint
{[{col:'To Do',n:3,accent:false},{col:'In Progress',n:2,accent:true},{col:'Done',n:2,accent:false}].map(({col,n,accent})=>(
{col}
{Array.from({length:n}).map((_,i)=>(
))}
))}
Capacity · Stretch · Definition of Done
); const BugReport = () => ( ); const QATestPlan = () => ( ); const ReleaseNotes = () => ( ); const TechDesign = () => ( ); const ApiDoc = () => ( ); const ChangeRequest = () => ( ); window.HB_PROD = [ {id:'hpd-01',name:'Product Requirements (PRD)',w:W, h:H, comp:PRD}, {id:'hpd-02',name:'Feature Specification', w:W, h:H, comp:FeatureSpec}, {id:'hpd-03',name:'User Story Template', w:W, h:H, comp:UserStory}, {id:'hpd-04',name:'Product Roadmap', w:WD,h:HD,comp:ProductRoadmap}, {id:'hpd-05',name:'Sprint Planning', w:WD,h:HD,comp:Sprint}, {id:'hpd-06',name:'Bug Report Template', w:W, h:H, comp:BugReport}, {id:'hpd-07',name:'QA Test Plan', w:W, h:H, comp:QATestPlan}, {id:'hpd-08',name:'Release Notes Template', w:W, h:H, comp:ReleaseNotes}, {id:'hpd-09',name:'Technical Design Document', w:W, h:H, comp:TechDesign}, {id:'hpd-10',name:'API Documentation', w:WD,h:HD,comp:ApiDoc}, {id:'hpd-11',name:'Change Request Template', w:W, h:H, comp:ChangeRequest}, ]; // ════════════════════════════════════════════════════════════════ // OPERATIONS // ════════════════════════════════════════════════════════════════ const SOP = () => ( ); const ProcessDoc = () => ( ); const Workflow = () => (
Workflow Diagram
Workflow Diagram
Operations · Process map
{[ {label:'Trigger',round:true,color:'#21366C',text:'#fff'}, {label:'Step 1',round:false,color:'rgba(33,54,108,.07)',text:'#21366C'}, {label:'Decision?',round:false,color:'rgba(236,122,53,.12)',text:'#EC7A35',diamond:true}, {label:'Step 2',round:false,color:'rgba(33,54,108,.07)',text:'#21366C'}, {label:'End',round:true,color:'#21366C',text:'#fff'}, ].map((n,i)=>(
{n.label}
{i<4&&
} ))}
Legend & Notes
); const MeetingAgenda = () => ( ); const MeetingNotes = () => ( ); const DecisionLog = () => ( ); const ProjectCharter = () => ( ); const ProjectPlan = () => ( ); const StatusReport = () => ( ); const Retro = () => (
Retrospective
Retrospective Template
Operations · Sprint / Quarter
{[ {label:'What went well',bg:'rgba(236,122,53,.08)',bc:'rgba(236,122,53,.3)'}, {label:'What didn\'t',bg:'rgba(33,54,108,.06)',bc:'rgba(33,54,108,.18)'}, {label:'What we learned',bg:'rgba(33,54,108,.06)',bc:'rgba(33,54,108,.18)'}, {label:'Action items',bg:'rgba(236,122,53,.08)',bc:'rgba(236,122,53,.3)'}, ].map(({label,bg,bc})=>(
{label}
{[1,2].map(i=>(
))}
))}
Shout-outs
); const IncidentReport = () => ( ); window.HB_OPS = [ {id:'hop-01',name:'SOP Template', w:W, h:H, comp:SOP}, {id:'hop-02',name:'Process Documentation', w:W, h:H, comp:ProcessDoc}, {id:'hop-03',name:'Workflow Diagram', w:W, h:H, comp:Workflow}, {id:'hop-04',name:'Meeting Agenda', w:W, h:H, comp:MeetingAgenda}, {id:'hop-05',name:'Meeting Notes', w:W, h:H, comp:MeetingNotes}, {id:'hop-06',name:'Decision Log', w:WD,h:HD,comp:DecisionLog}, {id:'hop-07',name:'Project Charter', w:W, h:H, comp:ProjectCharter}, {id:'hop-08',name:'Project Plan', w:WD,h:HD,comp:ProjectPlan}, {id:'hop-09',name:'Status Report', w:W, h:H, comp:StatusReport}, {id:'hop-10',name:'Retrospective Template', w:WD,h:HD,comp:Retro}, {id:'hop-11',name:'Incident Report', w:W, h:H, comp:IncidentReport}, ]; // ════════════════════════════════════════════════════════════════ // HR // ════════════════════════════════════════════════════════════════ const JobDescription = () => ( ); const InterviewScorecard = () => (
Interview Scorecard
Interview Scorecard
HR · Candidate assessment
Candidate
{['Communication','Problem Solving','Culture Fit','Clinical Knowledge','Leadership Potential'].map((comp,i)=>(
{comp}
{[1,2,3,4,5].map(s=>
)}
))}
Overall · Panel Scores · Decision
); const CandidateEval = () => ( ); const OfferLetter = () => (
Offer Letter
Offer Letter
Tatava Studio · B-18 Swasthya Vihar, New Delhi 110092
Terms
{['Role Title','Start Date','Compensation (₹)','Benefits'].map(f=>(
{f}
))}
Conditions
Acceptance
{['Candidate','Aarti Ahuja · Tatava Studio'].map(sig=>(
{sig}
))}
); const Handbook = () => ( ); const OnboardPlan = () => ( ); const PerfReview = () => (
Performance Review
Performance Review
HR · Annual · Tatava Studio
{['Self-Assessment','Competencies','Strengths / Growth Areas','Development Plan','Rating & Next Goals'].map((s,i)=>(
))}
Behavioural examples
); const CareerDev = () => ( ); const ExitInterview = () => ( ); const TrainingPlan = () => ( ); window.HB_HR = [ {id:'hhr-01',name:'Job Description', w:W,h:H,comp:JobDescription}, {id:'hhr-02',name:'Interview Scorecard', w:W,h:H,comp:InterviewScorecard}, {id:'hhr-03',name:'Candidate Evaluation', w:W,h:H,comp:CandidateEval}, {id:'hhr-04',name:'Offer Letter', w:W,h:H,comp:OfferLetter}, {id:'hhr-05',name:'Employee Handbook', w:W,h:H,comp:Handbook}, {id:'hhr-06',name:'Onboarding Plan', w:W,h:H,comp:OnboardPlan}, {id:'hhr-07',name:'Performance Review', w:W,h:H,comp:PerfReview}, {id:'hhr-08',name:'Career Development Plan', w:W,h:H,comp:CareerDev}, {id:'hhr-09',name:'Exit Interview Form', w:W,h:H,comp:ExitInterview}, {id:'hhr-10',name:'Training Plan', w:W,h:H,comp:TrainingPlan}, ]; // ════════════════════════════════════════════════════════════════ // FINANCE // ════════════════════════════════════════════════════════════════ const Budget = () => (
Budget Template
Budget Template
Finance · Tatava Studio · FY 2025–26
{[26,13,13,13,13,13].map((w,i)=>)}
{[{l:'Income',bold:false},{l:'Expenses',bold:false},{l:'Net',bold:true}].map(({l,bold})=>(
{l} {[1,2,3,4,5].map(j=>( ))}
))}
Assumptions · Scenarios
); const Forecast = () => ( ); const PL = () => (
P&L Statement
P&L Statement
Finance · Tatava Studio
{['Apr–Jun','Jul–Sep'].map(p=>{p})}
{[ {l:'Revenue',indent:false,bold:false,color:'inherit'}, {l:'Cost of Services',indent:true,bold:false,color:'rgba(58,58,54,.6)'}, {l:'Gross Profit',indent:false,bold:true,color:'#21366C'}, {l:'Operating Expenses',indent:true,bold:false,color:'rgba(58,58,54,.6)'}, {l:'Net Profit',indent:false,bold:true,color:'#EC7A35'}, ].map(({l,indent,bold,color})=>(
{l} {[0,1].map(j=>)}
))}
Runway · Notes
); const CashFlow = () => ( ); const ExpenseReport = () => ( ); const Invoice = () => (
Invoice
Invoice
Tatava Studio · B-18 Swasthya Vihar, Vikas Marg, New Delhi 110092
Bill To
Invoice # · Date · Due
{[8,40,12,16,18].map((w,i)=>)}
{[1,2,3].map(i=>(
{[8,40,12,16,18].map((w,j)=>)}
))}
GST · Subtotal · Total ₹
Payment · UPI / Bank · Due on receipt · +91 85957 48981
); const PO = () => ( ); const VendorEval = () => ( ); const FinDash = () => (
Financial Dashboard
Financial Dashboard
Finance · Tatava Studio · Live
{['Funnel','Delivery','Revenue','BHF Impact'].map(t=>(
{t}
))}
Notes & actions
); window.HB_FIN = [ {id:'hfn-01',name:'Budget Template', w:WD,h:HD,comp:Budget}, {id:'hfn-02',name:'Forecast Template', w:W, h:H, comp:Forecast}, {id:'hfn-03',name:'P&L Statement', w:W, h:H, comp:PL}, {id:'hfn-04',name:'Cash Flow Report', w:W, h:H, comp:CashFlow}, {id:'hfn-05',name:'Expense Report', w:W, h:H, comp:ExpenseReport}, {id:'hfn-06',name:'Invoice Template', w:W, h:H, comp:Invoice}, {id:'hfn-07',name:'Purchase Order', w:W, h:H, comp:PO}, {id:'hfn-08',name:'Vendor Evaluation', w:W, h:H, comp:VendorEval}, {id:'hfn-09',name:'Financial Dashboard', w:WD,h:HD,comp:FinDash}, ]; // ════════════════════════════════════════════════════════════════ // CUSTOMER SUCCESS // ════════════════════════════════════════════════════════════════ const Kickoff = () => ( ); const OnboardGuide = () => ( ); const SuccessPlan = () => ( ); const HealthCheck = () => (
Health Check
Health Check Report
Customer Success · Anonymised metrics
{[ {l:'Utilisation (anonymised)',color:'#EC7A35',status:'On Track'}, {l:'Sentiment / Feedback themes',color:'#EC7A35',status:'Positive'}, {l:'Risks',color:'rgba(180,120,0,1)',status:'Watch'}, {l:'Recommendations & Next steps',color:'#21366C',status:'Action'}, ].map(({l,color,status})=>(
{l} {status}
))}
Recommendations & Next steps
); const QBR = () => (
Quarterly Review
Quarterly Business Review
Customer Success · Q2 2025
{['Recap & Goals','Outcomes (anonymised)','Wins / Challenges','Renewal / Expansion'].map(t=>(
{t}
))}
Roadmap for Next Quarter · Actions & Owners
); const FeedbackSurvey = () => (
Feedback Survey
Customer Feedback Survey
Customer Success · Tatava Studio
NPS · How likely to recommend Tatava?
{[0,1,2,3,4,5,6,7,8,9,10].map(n=>(
=9?'#21366C':n>=7?'rgba(33,54,108,.15)':'rgba(33,54,108,.07)',color:n>=9?'#fff':'#21366C'}}>{n}
))}
{['Overall satisfaction with your therapist','Session accessibility & booking ease','Did you feel heard and respected?'].map((q,i)=>(
{q}
{[1,2,3,4,5].map(s=>
)}
))}
What could we improve? · Consent
); const Escalation = () => ( ); const Renewal = () => ( ); window.HB_CS = [ {id:'hcs-01',name:'Client Kickoff Document', w:W, h:H, comp:Kickoff}, {id:'hcs-02',name:'Onboarding Guide', w:W, h:H, comp:OnboardGuide}, {id:'hcs-03',name:'Success Plan', w:W, h:H, comp:SuccessPlan}, {id:'hcs-04',name:'Health Check Report', w:W, h:H, comp:HealthCheck}, {id:'hcs-05',name:'Quarterly Business Review', w:WD,h:HD,comp:QBR}, {id:'hcs-06',name:'Customer Feedback Survey', w:W, h:H, comp:FeedbackSurvey}, {id:'hcs-07',name:'Escalation Process', w:W, h:H, comp:Escalation}, {id:'hcs-08',name:'Renewal Proposal', w:W, h:H, comp:Renewal}, ]; // ════════════════════════════════════════════════════════════════ // EXECUTIVE // ════════════════════════════════════════════════════════════════ // Board Deck — 3 slides const Board_1 = () => ; const Board_2 = () => (
Financial Performance
{[{n:'₹ X.XL',l:'Revenue'},{n:'28%',l:'Growth'},{n:'₹ X.XL',l:'EBITDA'}].map(s=>(
{s.n}
{s.l}
))}
{['Revenue YTD','Pipeline Health','Burn Rate','Headcount'].map(t=>(
{t}
))}
); const Board_3 = () => ; // Investor Update — 3 slides const Inv_1 = () => ; const Inv_2 = () => (
Key Metrics
{[{n:'₹1.8L',l:'ARR'},{n:'142',l:'Clients'},{n:'94%',l:'NRR'},{n:'4.9★',l:'Rating'}].map(s=>(
{s.n}
{s.l}
))}
); const Inv_3 = () => (
The Ask
₹ X.X Cr
Seed round to expand capacity, brand & Tatava Connect
{['Product & Engineering 45%','Sales & Marketing 35%','Working Capital 20%'].map((u,i)=>(
{u}
))}
Simplifying Wellness
); const MBR = () => ( ); const ExecSummary = () => ( ); const DecisionMemo = () => ( ); const Partnership = () => ( ); const DueDiligence = () => ( ); window.HB_EXEC = [ {id:'hex-01',name:'Board Deck', w:WD,h:HD,isDeck:true,slides:[Board_1,Board_2,Board_3]}, {id:'hex-02',name:'Investor Update', w:WD,h:HD,isDeck:true,slides:[Inv_1,Inv_2,Inv_3]}, {id:'hex-03',name:'Monthly Business Review', w:W, h:H, comp:MBR}, {id:'hex-04',name:'Executive Summary', w:W, h:H, comp:ExecSummary}, {id:'hex-05',name:'Decision Memo', w:W, h:H, comp:DecisionMemo}, {id:'hex-06',name:'Partnership Proposal', w:W, h:H, comp:Partnership}, {id:'hex-07',name:'Due Diligence Checklist', w:W, h:H, comp:DueDiligence}, ]; // ── Export primitives to window for any external consumers ── Object.assign(window, { HMark, HLogo, HBadge, HLines, HField, HSection, HStats, HColorRow, HTable, HChart, HProgRow, HDoc, HDeck, HDeckBody, HSwot, HLane }); })();