Image Prompt & Brief Creator
Run ID: 69cb46fc61b1021a29a877ef2026-03-31Design
PantheraHive BOS
BOS Dashboard

Generate 10 professional AI image prompts, creative briefs, and visual direction specs

Image Prompt & Brief Creator: Detailed Deliverables

This document provides 10 professional AI image prompts, complete with comprehensive creative briefs and specific visual direction specifications. Each entry is designed to be actionable for advanced AI image generation models, offering clear objectives and detailed artistic guidance.


1. Prompt: "Eco-Futuristic Urban Oasis"

  • Image Prompt: sharper4k, photorealistic, intricate detail, a sprawling eco-futuristic city where towering skyscrapers are integrated with lush vertical gardens and cascading waterfalls. Drones navigate designated aerial pathways. Bio-luminescent flora glows softly at dusk. A diverse group of people, dressed in stylish sustainable attire, interact peacefully in a central park area. Golden hour lighting, cinematic, ultra wide angle.
  • Creative Brief:

* Project Title: Green Horizon Metropolis

* Objective: To visualize a harmonious future where advanced technology coexists seamlessly with nature, promoting sustainability and high quality of life. This image will be used for a promotional campaign for an urban planning think tank.

* Target Audience: Urban planners, environmentalists, technology enthusiasts, policy makers, and the general public interested in future city concepts.

* Key Message: Innovation and nature can create a thriving, sustainable urban future.

* Mood/Tone: Hopeful, aspirational, serene, technologically advanced, organic.

  • Visual Direction Specs:

* Style: Hyper-realistic, cinematic, with a touch of conceptual art.

* Composition: Wide shot, showcasing the vastness of the city, with a clear focal point on the integrated nature and human activity. Rule of thirds for balance.

* Lighting: Golden hour (late afternoon sun) from the left, creating long shadows and warm glows, emphasizing depth and tranquility. Soft, diffused bio-luminescent light from flora.

* Color Palette: Dominantly greens, blues, and warm oranges/golds from the sunset. Accents of soft purples and teals from bio-luminescence. Clean, vibrant, and natural tones.

* Specific Elements:

* Skyscrapers with integrated living walls, hydroponic farms, and water features.

* Sleek, silent drones.

* Pedestrian-friendly zones with natural pathways.

* Diverse, happy people engaged in calm activities (reading, conversing).

* Advanced, yet unobtrusive, public transport systems (e.g., maglev trains in the distance).

* Artistic Influences: Studio Ghibli's environmental themes, Syd Mead's futuristic architecture, Bjarke Ingels Group (BIG) architectural concepts.


2. Prompt: "Mystical Ancient Forest Guardian"

  • Image Prompt: sharper4k, hyper-detailed fantasy art, an ancient, colossal tree guardian made of gnarled wood and moss, with glowing runic patterns etched into its bark. It stands majestically in a primeval forest bathed in ethereal mist and dappled moonlight. Wisps of magic energy swirl around its hands. Ancient stone ruins partially overgrown with vines are visible in the background. Ultra-realistic textures, dramatic volumetric lighting.
  • Creative Brief:

* Project Title: Echoes of Eldoria: Forest Heart

* Objective: To create a key visual for a fantasy novel cover or a concept art piece for a video game, evoking a sense of ancient power, mystery, and natural magic.

* Target Audience: Fantasy readers, gamers, lovers of epic mythology and nature.

* Key Message: Unseen ancient powers protect the wild heart of the world.

* Mood/Tone: Mysterious, awe-inspiring, magical, ancient, protective, slightly ominous.

  • Visual Direction Specs:

* Style: Dark fantasy, highly detailed, painterly yet realistic textures.

* Composition: Low-angle shot, emphasizing the guardian's towering presence. Centered or slightly off-center to maintain balance.

* Lighting: Strong moonlight filtering through the canopy, creating dramatic shafts of light and shadow. Soft, internal glow from the runes and magic. Volumetric fog/mist adds atmosphere.

* Color Palette: Deep greens, earthy browns, grays, with vibrant glowing blues/greens/purples for the magic and runes. Cool tones dominate.

* Specific Elements:

* Guardian's face should be wise and ancient, not monstrous.

* Detailed bark texture, moss, and vines on the guardian.

* Ancient ruins (e.g., crumbling archway or pillar) partially hidden by foliage.

* Lush, overgrown forest floor with ferns and glowing fungi.

* Subtle magical particles in the air.

* Artistic Influences: John Howe, Alan Lee, World of Warcraft concept art, Celtic mythology.


3. Prompt: "Minimalist Scandinavian Interior with Sunlight"

  • Image Prompt: sharper4k, ultra-realistic architectural photography, a bright, minimalist Scandinavian living room. White walls, light oak flooring, and simple, functional furniture. A large window reveals a serene, snow-covered landscape. A cozy cream-colored sofa with a sheepskin throw and a single potted green plant. Soft natural light streams through the window, creating subtle shadows. Clean lines, tranquil atmosphere.
  • Creative Brief:

* Project Title: Hygge Haven Lookbook

* Objective: To showcase the elegance and comfort of Scandinavian design for a furniture brand's online catalog and lifestyle blog. Emphasize light, space, and natural materials.

* Target Audience: Homeowners, interior design enthusiasts, young professionals seeking minimalist aesthetics.

* Key Message: Serene comfort and timeless design.

* Mood/Tone: Calm, peaceful, cozy, elegant, clean, inviting.

  • Visual Direction Specs:

* Style: High-end architectural photography, clean and crisp.

* Composition: Eye-level shot, balanced and symmetrical, focusing on the interplay of light and space. Avoid clutter.

* Lighting: Predominantly natural, soft, diffused daylight from the large window. Subtle, long shadows from the furniture, adding depth without being harsh.

* Color Palette: Dominantly whites, creams, light grays, and natural wood tones. A single pop of muted green from the plant. Overall very light and airy.

* Specific Elements:

* Sofa: Clean lines, fabric upholstery.

* Coffee table: Simple, possibly light wood or white.

* Window: Large, framing a beautiful, stark winter scene.

* Subtle textures: Sheepskin, woven fabric, wood grain.

* No visible wires or electronic devices.

* Artistic Influences: Kinfolk magazine aesthetics, Norm Architects, Carl Hansen & Søn brand imagery.


4. Prompt: "Dynamic Abstract Data Visualization"

  • Image Prompt: sharper4k, conceptual art, a dynamic and flowing abstract representation of big data. Interconnected glowing nodes and intricate neural pathways in vibrant blues, purples, and electric greens against a dark, nebulous background. Energy pulses through the network, suggesting rapid processing and interconnectedness. High-tech, futuristic, visually complex yet harmonious.
  • Creative Brief:

* Project Title: Data Stream Dynamics

* Objective: To create a compelling visual metaphor for complex data analytics, AI processing, or network intelligence for a tech company's website header or presentation background.

* Target Audience: Tech industry professionals, data scientists, investors, corporate clients.

* Key Message: Harnessing complex data for insightful solutions.

* Mood/Tone: Intelligent, innovative, dynamic, sophisticated, futuristic.

  • Visual Direction Specs:

* Style: Digital art, abstract, sci-fi conceptual.

* Composition: Fluid, non-linear, with elements leading the eye through the network. Sense of depth and infinite expansion.

* Lighting: Internal glow from the nodes and pathways, creating a luminous effect against the dark background. Subtle light trails behind moving elements.

* Color Palette: Electric blues, deep purples, vibrant greens, with hints of teal and magenta. Dark, almost black, background with subtle nebular textures.

* Specific Elements:

* Varying sizes of glowing nodes.

* Thin, luminous lines connecting nodes, forming complex patterns.

* Subtle motion blur to convey dynamism.

* No discernible real-world objects, purely abstract.

* Artistic Influences: Generative art, Tron legacy visuals, neural network visualizations.


5. Prompt: "Gourmet Plant-Based Cuisine Art"

  • Image Prompt: sharper4k, professional food photography, a meticulously plated gourmet plant-based dish: pan-seared king oyster mushrooms with a rich truffle emulsion, garnished with microgreens and edible flowers. It is presented on a minimalist ceramic plate on a dark, textured slate background. Soft, diffused overhead lighting, shallow depth of field, natural and inviting.
  • Creative Brief:

* Project Title: Elevated Earth Cuisine

* Objective: To create an appetizing and sophisticated image for a high-end vegan restaurant's menu, cookbook, or food blog, highlighting the artistry and gourmet potential of plant-based food.

* Target Audience: Foodies, fine dining enthusiasts, health-conscious individuals, vegans, and vegetarians.

* Key Message: Plant-based dining can be exquisite, elegant, and delicious.

* Mood/Tone: Elegant, sophisticated, fresh, appetizing, luxurious.

  • Visual Direction Specs:

* Style: High-end culinary photography, studio quality.

* Composition: Top-down (flat lay) or slightly elevated eye-level, focusing on the intricate plating. Rule of thirds for the main elements.

* Lighting: Softbox-style overhead lighting, evenly diffused, minimizing harsh shadows. Natural light feel.

* Color Palette: Earthy tones of the mushrooms and slate, vibrant greens of microgreens, delicate colors of edible flowers. Contrasting white/cream of the ceramic plate. Rich, natural colors.

* Specific Elements:

* Mushrooms perfectly seared, visible texture.

* Emulsion drizzled artfully, not messy.

* Garnishes precisely placed.

* Plate is clean and simple, allowing the food to be the star.

* Subtle reflections on the plate/sauce.

* Artistic Influences: Michelin-star restaurant photography, Bon Appétit magazine, Chef's Table documentary aesthetics.


6. Prompt: "Inspiring Diverse Team Collaboration"

  • Image Prompt: sharper4k, corporate stock photography, a diverse group of young professionals (male, female, various ethnicities) collaborating enthusiastically around a large interactive digital table in a modern, sunlit office space. They are smiling, engaged, and pointing at data visualizations. The background features blurred, contemporary office architecture. Bright, optimistic, professional.
  • Creative Brief:

* Project Title: Synergy in Action

* Objective: To generate a modern stock image for a business consultancy, HR firm, or tech company, emphasizing teamwork, diversity, innovation, and positive workplace culture.

* Target Audience: Corporate clients, HR departments, job seekers, business publications.

* Key Message: Diverse teams drive innovation and success through collaborative effort.

* Mood/Tone: Positive, energetic, professional, inclusive, forward-thinking.

  • Visual Direction Specs:

* Style: Polished, professional stock photography.

* Composition: Dynamic group shot, showing interaction. Focus on faces and gestures of engagement. Slightly wide angle to capture the environment.

* Lighting: Bright, natural daylight streaming in from large windows, creating an airy and open feel. Evenly lit, no harsh shadows.

* Color Palette: Modern corporate colors (blues, grays, whites) with subtle pops of color from clothing or digital display. Clean and professional.

* Specific Elements:

* People: Dressed in smart-casual business attire, genuinely smiling, making eye contact with each other.

* Digital table: Glowing with clear, relevant-looking data graphics (charts, graphs, 3D models).

* Office background: Clean lines, minimalist decor, possibly blurred out for focus.

* No visible brand logos.

* Artistic Influences: Getty Images/Shutterstock top stock photos, LinkedIn corporate branding.


7. Prompt: "Serene Coastal Meditation Sunset"

  • Image Prompt: sharper4k, fine art photography, a lone figure in a relaxed meditation pose (lotus position) on a rugged cliff overlooking a vast, calm ocean. The setting sun casts a warm, golden glow across the water and sky, with hues of orange, pink, and purple. Gentle waves crash softly below. A sense of profound peace and solitude. High dynamic range, ethereal.
  • Creative Brief:

* Project Title: Inner Peace Horizon

* Objective: To create an evocative image for a wellness brand, meditation app, yoga studio, or travel agency promoting mindful retreats. It should inspire tranquility and connection with nature.

* Target Audience: Individuals seeking relaxation, wellness, spiritual growth, or mindful travel experiences.

* Key Message: Find your inner calm amidst nature's grandeur.

* Mood/Tone: Peaceful, serene, spiritual, introspective, majestic, calming.

  • Visual Direction Specs:

* Style: Fine art landscape and portrait photography.

* Composition: Rule of thirds, with the figure positioned off-center, balanced by the expansive ocean and sky. Horizon line low to emphasize the sky.

* Lighting: Dramatic sunset lighting, warm and soft. Sun low on the horizon, creating a golden path on the water. Subtle backlighting on the figure.

* Color Palette: Rich oranges, deep purples, soft pinks, and golden yellows in the sky. Deep blues and greens in the ocean. Earthy tones for the cliff.

* Specific Elements:

* Figure: Dressed in simple, flowing, natural-colored clothing. Silhouette or softly lit.

* Cliff: Textured, natural rock formations.

* Ocean: Calm but with visible gentle waves, reflecting the sky.

* No distractions or other people.

* Artistic Influences: National Geographic landscapes, spiritual photography, travel photography.


8. Prompt: "Vibrant Street Art Mural in Urban Alley"

  • Image Prompt: sharper4k, gritty urban photography, a massive, vibrant street art mural covering an entire brick wall in a narrow, atmospheric urban alley. The mural depicts a fantastical blend of nature and technology (e.g., a cyborg hummingbird drinking from a neon flower). Graffiti tags and subtle grunge textures on adjacent walls. Overhead string lights provide warm, scattered illumination. Rain-slicked ground reflecting colors. Dynamic, raw, photorealistic.
  • Creative Brief:

* Project Title: Concrete Canvas: Tech Bloom

* Objective: To capture the energetic and rebellious spirit of urban street art, suitable for a cultural magazine cover, art blog, or promotion for an urban festival.

* Target Audience: Art enthusiasts, urban explorers, youth culture, designers, local tourism boards.

* Key Message: Urban spaces are canvases for vibrant artistic expression and unexpected beauty.

* Mood/Tone: Energetic, raw, artistic, edgy, urban, creative.

  • Visual Direction Specs:

* Style: Realistic street photography, documentary feel, but with high artistic quality for the mural itself.

* Composition: Straight-on view of the mural, filling a significant portion of the frame. Alley receding into the background creates depth.

* Lighting: Mix of warm string lights casting soft pools of light and subtle ambient light from above. Reflections on wet ground enhance the colors.

* Color Palette: Mural: Extremely vibrant and contrasting colors (electric blues, hot pinks, neon greens, deep purples) against the muted, earthy tones of the brick and alley.

* Specific Elements:

* Mural: Intricate details, professional quality art, clear thematic elements.

* Alley: Grungy textures, peeling paint, subtle graffiti tags, maybe a trash can or fire escape.

* Ground:

image_prompt___brief_creator.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);}});}