Presentation Generator
Run ID: 69b6ee6f95d85cd597625a312026-03-29Business
PantheraHive BOS
BOS Dashboard

As a professional AI assistant within PantheraHive, I have executed the "Presentation Generator" workflow (category: Business) based on your inputs.

Workflow Execution Summary

  • Workflow Name: Presentation Generator
  • Category: Business
  • Topic: Q1 Business Review
  • Number of Slides: 10
  • Output: Comprehensive 10-slide presentation outline with detailed content, data recommendations, and actionable insights.

Presentation Goal

The primary goal of this "Q1 Business Review" presentation is to provide a concise yet comprehensive overview of the company's performance during the first quarter. It aims to inform stakeholders (e.g., leadership, board, department heads) about financial results, operational highlights, market dynamics, key achievements, challenges, and strategic direction for the upcoming quarter. The presentation should facilitate informed decision-making and alignment across the organization.

Detailed 10-Slide Presentation Outline

Here is a structured, detailed outline for your "Q1 Business Review" presentation, designed to be immediately useful and actionable.

Slide 1: Title Slide

  • Title: Q1 Business Review - [Company Name]
  • Subtitle: Performance, Insights, and Q2 Strategic Focus
  • Content:

* Company Logo

* Date of Presentation (e.g., April X, 2024)

* Presenter(s) Name/Department

  • Design Recommendation: Clean, professional, and consistent with company branding. Use a high-quality background image if appropriate.
  • Actionable Detail: Ensure all branding elements are correctly applied.

Slide 2: Executive Summary & Q1 Highlights

  • Title: Executive Summary: Q1 Performance at a Glance
  • Content: Provide a high-level overview of the quarter's most critical takeaways.

* Key Financials: Briefly state overall Revenue, Profitability (e.g., Net Income/EBITDA), and margin performance vs. plan/prior year.

* Operational Wins: 2-3 major achievements or successful initiatives.

* Key Challenges: 1-2 significant hurdles encountered.

* Strategic Outlook: Briefly mention the direction for Q2.

  • Data & Visuals:

* Use bullet points for concise summaries.

* Small, high-impact icons for wins/challenges.

* A single, simplified chart showing overall revenue/profit trend for the quarter vs. target.

  • Actionable Insight: This slide should answer "What happened?" and "What's most important?" in under 60 seconds. Focus on impact, not just activity.

Slide 3: Q1 Financial Performance Overview

  • Title: Overall Financial Performance: Q1 Snapshot
  • Content: Summarize the key financial metrics for the quarter.

* Revenue: Actual vs. Plan, vs. Q4 Last Year (QoQ), vs. Q1 Last Year (YoY).

* Gross Profit/Margin: Actual vs. Plan, QoQ, YoY.

* Operating Expenses (OpEx): Actual vs. Budget, main variances.

* Net Profit/EBITDA: Actual vs. Plan, QoQ, YoY.

  • Data & Visuals:

* Table: A clear table comparing Actual, Plan, Variance (absolute & %), and Growth (QoQ, YoY) for each metric.

* Chart: A bar chart showing Revenue and Net Profit for Q1 Actual vs. Plan.

  • Actionable Detail: Highlight variances in red/green to quickly show over/under performance. Be prepared to explain the top 2-3 reasons for significant variances.

Slide 4: Revenue & Sales Performance Deep Dive

  • Title: Revenue Drivers & Sales Performance
  • Content: Break down revenue performance to understand growth and areas for improvement.

* Revenue by Product/Service Line: Performance of individual offerings.

* Revenue by Region/Market Segment: Geographic or customer segment contributions.

* Sales Funnel Metrics: New customer acquisition, average deal size, conversion rates (if applicable).

* Key Sales Initiatives Impact: How specific sales efforts contributed.

  • Data & Visuals:

* Stacked Bar Chart: Revenue contribution by product/service or region.

* Line Chart: Trend of new customer acquisition or average deal size over the quarter.

* Table: Top 3 performing products/segments, Bottom 3 performing products/segments.

  • Actionable Recommendation: Identify which products/segments are driving growth and which require attention. Discuss strategies to boost underperforming areas or capitalize on strong performers.

Slide 5: Profitability & Cost Analysis

  • Title: Profitability & Cost Management
  • Content: Analyze the cost structure and its impact on profitability.

* Gross Margin Analysis: Key factors affecting COGS (e.g., material costs, production efficiency).

* Operating Expense Breakdown: Major categories (e.g., S&M, R&D, G&A) vs. budget.

* Cost Efficiency Initiatives: Updates on any projects aimed at reducing costs.

* Key Variances: Explanation for significant over/under-spends.

  • Data & Visuals:

* Pie Chart: OpEx breakdown by category.

* Bar Chart: Gross Margin trend (QoQ, YoY).

* Table: Top 3 OpEx categories with Actual vs. Budget and variance.

  • Actionable Recommendation: Propose specific actions to improve gross margins (e.g., supplier negotiation, process optimization) or control OpEx. Highlight areas for potential cost reduction without impacting critical operations.

Slide 6: Operational Highlights & Challenges

  • Title: Operational Review: Progress & Roadblocks
  • Content: Focus on non-financial operational aspects.

* Key Project Milestones: Progress on major strategic initiatives (e.g., product launches, system upgrades, market expansion).

* Supply Chain/Logistics: Performance, efficiency, any disruptions and mitigation.

* Production/Service Delivery: Efficiency metrics, quality control, capacity utilization.

* Operational Challenges: Bottlenecks, resource constraints, unexpected issues.

  • Data & Visuals:

* Gantt Chart (simplified): Progress on 2-3 critical projects.

* KPI Dashboard (small): 2-3 key operational metrics (e.g., on-time delivery rate, production output, customer service response time).

  • Actionable Detail: For each challenge, briefly outline the proposed solution or mitigation strategy. For successes, identify replicable practices.

Slide 7: Market & Customer Insights

  • Title: Market Dynamics & Customer Engagement
  • Content: External factors and customer-focused insights.

* Market Trends: Key industry developments, competitive landscape changes.

* Customer Acquisition & Retention: Metrics (e.g., CAC, LTV, churn rate), insights from customer feedback.

* Brand Perception/Marketing Performance: Key campaigns, social media engagement, website traffic.

* Competitive Analysis: Any significant moves by competitors.

  • Data & Visuals:

* Line Chart: Customer acquisition trend or churn rate.

* Word Cloud/Key Themes: From customer feedback.

* Small Icons/Logos: For key competitors or market trends.

  • Actionable Recommendation: Suggest adjustments to marketing strategy, product development, or customer service based on these insights. How can we leverage opportunities or mitigate threats?

Slide 8: Key Achievements & Learnings

  • Title: Q1 Successes & Strategic Learnings
  • Content: Summarize the quarter's wins and reflect on lessons learned.

* Major Achievements: Specific, quantifiable successes (e.g., "Secured X new enterprise clients," "Reduced production defects by Y%," "Launched Z feature ahead of schedule").

* Unexpected Challenges & Solutions: What went wrong, and how was it addressed?

* Key Learnings: Strategic insights gained that will inform future decisions.

* Team Recognition: Acknowledge significant contributions.

  • Data & Visuals:

* Bullet points: Clear, concise statements of achievements.

* "Lessons Learned" box: Summarize 1-2 key takeaways.

* Optional: Team photo or graphic representing collaboration.

  • Actionable Insight: Reinforce positive behaviors and ensure lessons learned are documented and integrated into future planning.

Slide 9: Q2 Strategic Focus & Objectives

  • Title: Looking Ahead: Q2 Strategic Focus & Objectives
  • Content: Clearly define the strategic priorities and measurable goals for the next quarter.

* Top 3-5 Strategic Priorities: High-level areas of focus (e.g., "Expand into new market," "Optimize cost structure," "Enhance customer experience").

* Key Objectives (OKRs/KPIs): Specific, Measurable, Achievable, Relevant, Time-bound (SMART) goals for Q2.

* Resource Allocation: Briefly mention how resources will be aligned to achieve these objectives.

* Expected Impact: What positive outcomes are anticipated from these efforts?

  • Data & Visuals:

* Bulleted list: Clear strategic priorities.

* Table: Q2 Objectives with target metrics and owners.

* Roadmap Graphic (simplified): Visualizing key milestones for Q2.

  • Actionable Detail: Ensure objectives are clearly linked to overall company strategy and are actionable for relevant teams. This slide should inspire confidence and provide a clear path forward.

Slide 10: Q&A / Discussion / Thank You

  • Title: Questions & Discussion
  • Content:

* Open the floor for questions.

* Provide contact information for follow-up.

* Thank attendees for their time and engagement.

  • Design Recommendation: Clean and uncluttered. May include a company contact email or website.
  • Actionable Detail: Prepare to answer anticipated questions based on the presentation content. Encourage active participation and note down any critical feedback or action items that arise during the discussion.

General Presentation Best Practices & Recommendations

  • Audience-Centric: Tailor the depth of detail to your specific audience (e.g., executive board vs. department leads).
  • Visual Clarity: Use high-quality graphics, charts, and minimal text per slide. Avoid dense paragraphs.
  • Data Integrity: Ensure all data is accurate, sourced, and clearly labeled.
  • Storytelling: Structure the presentation to tell a cohesive story about the quarter – from performance to insights to future plans.
  • Conciseness: Stick to the 10-slide limit. Each slide should convey a clear, singular message.
  • Practice: Rehearse the presentation to ensure smooth delivery and adherence to time limits.
  • Appendix: Prepare an appendix with additional detailed data, graphs, or supporting information for deeper dives if requested during Q&A.

Next Steps

  1. Populate Data: Gather all relevant Q1 financial, operational, and market data.
  2. Visual Design: Integrate this outline into your preferred presentation software (e.g., PowerPoint, Google Slides, Keynote), applying your company's branding guidelines.
  3. Draft Content: Write concise bullet points and notes for each slide.
  4. Create Visuals: Design charts, graphs, and other visual elements to represent the data effectively.
  5. Review & Refine: Share a draft with a trusted colleague for feedback before finalization.
  6. Rehearse: Practice your delivery to ensure a smooth and impactful presentation.

This comprehensive output should provide a robust framework for your Q1 Business Review presentation. Good luck!

presentation_generator.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}