Image Prompt & Brief Creator
Run ID: 69cac868eff1ba2b79624c0e2026-03-30Design
PantheraHive BOS
BOS Dashboard

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

This deliverable provides 10 professional AI image prompts, complete with comprehensive creative briefs and detailed visual direction specifications. Each entry is designed to guide an AI image generator towards producing high-quality, targeted visual content, suitable for a variety of professional applications.


Image Prompt & Brief Creator: Detailed Output

Concept 1: Serene Futuristic Metropolis at Dawn

Image Prompt

A breathtaking, hyperrealistic cityscape at dawn, featuring towering, iridescent skyscrapers crafted from sustainable, bio-luminescent materials. A network of silent, levitating public transport glides between buildings. The sky transitions from deep indigo to soft rose, casting a warm, gentle glow across the polished, reflective surfaces. A lone figure stands on a panoramic skybridge, silhouetted against the rising sun, gazing upon the serene urban expanse. Architectural photography style, cinematic lighting, 16:9 aspect ratio, 8K resolution, detailed, photorealistic, no visible wires.

Creative Brief

Project Title: "Tomorrow's Horizon"

Purpose: To evoke a sense of hope, advanced sustainability, and quiet ambition. Ideal for corporate vision statements, real estate development marketing for smart cities, or technology company advertisements promoting future-forward solutions.

Target Audience: Innovators, urban planners, investors in sustainable tech, aspirational individuals, and audiences interested in future living concepts.

Key Message: The future is elegant, sustainable, and full of potential.

Desired Emotional Response: Awe, inspiration, tranquility, optimism, and a sense of wonder at human ingenuity.

Visual Direction Specifications

  • Style: Hyperrealistic, architectural photography, cinematic.
  • Lighting: Dawn light, soft and warm, with a clear gradient from deep blues/purples to oranges/pinks in the sky. Emphasize reflections and subtle bio-luminescence from building surfaces.
  • Color Palette: Predominantly cool blues, grays, and silvers for structures, contrasted with warm oranges, pinks, and soft purples in the sky. Subtle greens/teals from bio-luminescence.
  • Composition: Wide shot, emphasizing the vastness of the city. A strong leading line from the skybridge or a prominent building towards the horizon. The silhouetted figure should provide a sense of scale without being the dominant focus.
  • Camera Angle: Slightly elevated, looking across the city towards the rising sun.
  • Key Elements:

* Sleek, futuristic architecture (organic shapes, glass, polished metal).

* Integrated green spaces on buildings or within the city structure.

* Subtle, non-intrusive futuristic transportation.

* Atmospheric perspective with gentle mist or haze in the distance.

  • Details: Ensure no traditional vehicles or clutter. Focus on clean lines and sophisticated design. The lone figure should appear contemplative and small against the grand scale.

Concept 2: Ancient Forest Guardian Spirit

Image Prompt

A majestic, ethereal forest guardian spirit, rendered in a hyperrealistic fantasy style. The spirit is composed of ancient moss-covered tree bark, glowing emerald leaves, and intricate root systems, taking on a humanoid form. It stands amidst a dense, old-growth forest bathed in dappled, magical sunlight filtering through a canopy of giant ferns and ancient trees. Soft, mystical glowing particles drift in the air. The ground is covered in vibrant moss and bioluminescent fungi. Cinematic depth of field, natural yet otherworldly lighting, 4:3 aspect ratio, highly detailed, fantastical, mythical, no visible seams.

Creative Brief

Project Title: "Echoes of Eldoria"

Purpose: To create a sense of ancient magic, natural power, and wonder. Ideal for fantasy book covers, concept art for video games, environmental awareness campaigns with a mystical twist, or branding for natural wellness products.

Target Audience: Fans of fantasy literature and games, environmentalists, individuals seeking escapism and connection to nature.

Key Message: Nature holds ancient power and wisdom, deserving of respect and awe.

Desired Emotional Response: Wonder, reverence, mystery, peace, and a slight sense of the sublime.

Visual Direction Specifications

  • Style: Hyperrealistic fantasy, mystical, painterly yet detailed.
  • Lighting: Dappled sunlight mixed with internal glow from the spirit and bioluminescent elements. Soft, volumetric light rays penetrating the canopy. Overall, a magical, slightly dim, yet inviting atmosphere.
  • Color Palette: Deep greens, earthy browns, vibrant emeralds, soft golden yellows for sunlight, and subtle blues/purples for shadow areas. Bioluminescent elements should have a gentle, otherworldly glow (e.g., soft blues, greens, or purples).
  • Composition: Rule of thirds, with the guardian spirit as the dominant focal point. Frame the spirit with ancient trees and lush foliage.
  • Camera Angle: Eye-level or slightly low-angle to emphasize the guardian's stature.
  • Key Elements:

* Intricate details on the guardian: textured bark, delicate leaves, glowing eyes (optional, or subtle internal light).

* Dense, varied forest flora (ferns, mosses, ancient trees).

* Atmospheric effects: drifting particles, soft mist, glowing elements.

  • Details: Avoid anything overly aggressive or threatening. The spirit should appear wise and benevolent. Ensure the blend of organic materials forming the spirit is seamless and natural-looking.

Concept 3: Minimalist Tech Product Showcase

Image Prompt

A sleek, ultra-modern wireless earbud case, rendered in a clean, minimalist product photography style. The case is matte black, with subtle metallic accents, resting on a pristine, polished white marble surface. A single, soft, directional LED light source illuminates the product from the top-left, creating a subtle, elegant shadow and highlighting its contours. The background is a seamless, pure white void, with just a hint of a soft gradient. Sharp focus on the product, macro lens perspective, 3:2 aspect ratio, studio lighting, high contrast, commercial photography, minimalist, professional.

Creative Brief

Project Title: "Purity of Sound"

Purpose: To showcase a high-end tech product with an emphasis on its design, quality, and sophistication. Ideal for e-commerce listings, product launch campaigns, luxury tech magazine ads, or corporate branding for electronics companies.

Target Audience: Tech enthusiasts, design-conscious consumers, professionals seeking premium accessories.

Key Message: Elegant design meets cutting-edge technology.

Desired Emotional Response: Appreciation for aesthetics, desire for quality, trust in brand sophistication.

Visual Direction Specifications

  • Style: Minimalist product photography, clean, high-end commercial.
  • Lighting: Single-point, softbox-like directional light. Aim for subtle, controlled shadows that define shape without distracting. Avoid harsh reflections unless they are intentionally highlighting a specific feature.
  • Color Palette: Dominantly monochromatic (black, white, grays) with the product's subtle metallic accents. The marble surface adds a touch of natural texture without overwhelming.
  • Composition: Centered or rule-of-thirds placement of the product. Ample negative space around the product to emphasize its form.
  • Camera Angle: Slightly above eye-level, looking down at the product to emphasize its top surface and profile.
  • Key Elements:

* The earbud case itself, perfectly clean and scratch-free.

* The polished marble surface, reflecting just a hint of the product.

* Seamless white background.

  • Details: Ensure no dust, fingerprints, or imperfections. The focus should be razor-sharp on the product. The overall image should exude professionalism and premium quality.

Concept 4: Dynamic Abstract Energy Flow

Image Prompt

A vibrant, dynamic abstract composition depicting a swirling vortex of luminous energy. The forms are fluid and organic, composed of iridescent liquid light in shades of electric blue, neon green, and fiery orange, intertwining and colliding. Streaks of light and glowing particles emanate from the central vortex, creating a sense of rapid motion and intense power. The background is a deep, velvety black, allowing the colors to pop with extreme contrast. Digital art, high-resolution, energetic, flowing, cosmic, 16:9 aspect ratio, 8K, rendered with volumetric lighting effects.

Creative Brief

Project Title: "Quantum Flux"

Purpose: To symbolize innovation, energy, and dynamic change. Ideal for tech company branding, event backdrops for conferences on future trends, album art for electronic music, or modern art installations.

Target Audience: Forward-thinkers, tech industry professionals, art enthusiasts, and individuals drawn to vibrant, modern aesthetics.

Key Message: Unleashed potential, dynamic progress, and transformative energy.

Desired Emotional Response: Excitement, inspiration, curiosity, and a sense of powerful movement.

Visual Direction Specifications

  • Style: Abstract digital art, high-energy, fluid.
  • Lighting: Internal luminosity from the energy forms themselves. Volumetric light rays should enhance the sense of depth and movement within the swirling vortex.
  • Color Palette: High-contrast, vibrant electric blues, neon greens, and fiery oranges/reds. These should glow intensely against a deep black background.
  • Composition: Centralized vortex, with energy radiating outwards. The composition should feel balanced despite its dynamism.
  • Camera Angle: Immersive, as if looking directly into the energy flow.
  • Key Elements:

* Swirling, liquid-like forms of light.

* Streaks and particles of light indicating motion.

* Deep black background to maximize color contrast.

  • Details: Ensure smooth transitions between colors and forms. The motion should feel organic and powerful, not chaotic or messy. The glow should be intense but not oversaturated to the point of losing detail.

Concept 5: Victorian Steampunk Inventor's Workshop

Image Prompt

A richly detailed, atmospheric scene inside a Victorian-era steampunk inventor's workshop. The room is cluttered with intricate brass gears, polished copper pipes, intricate clockwork mechanisms, leather-bound schematics, and bubbling glass beakers. Warm, amber light spills from a gas lamp on a heavy wooden desk, illuminating dust motes dancing in the air. A large, ornate automaton stands partially assembled in the background, its metallic parts gleaming. The overall mood is one of industrious creativity and antique charm. Photojournalistic style, shallow depth of field, warm color grading, 5:4 aspect ratio, highly textured, detailed, atmospheric, period-accurate.

Creative Brief

Project Title: "Cogsworth's Curiosity"

Purpose: To evoke a sense of nostalgia, imaginative craftsmanship, and historical ingenuity. Ideal for branding for artisan goods, escape room themes, historical fiction book covers, or creative marketing for unique cafes/breweries.

Target Audience: Steampunk enthusiasts, history buffs, crafters, lovers of intricate mechanical designs, and those who appreciate vintage aesthetics.

Key Message: Innovation fueled by imagination and timeless craftsmanship.

Desired Emotional Response: Curiosity, fascination, warmth, and a sense of stepping back in time.

Visual Direction Specifications

  • Style: Photojournalistic, period-accurate, steampunk, richly textured.
  • Lighting: Predominantly warm, low-key lighting from a single primary source (gas lamp) and possibly some ambient light from a grimy window. Emphasize highlights on metal and reflections in glass. Volumetric light for dust motes.
  • Color Palette: Dominantly warm browns, coppers, brass tones, deep reds, and greens. Muted, aged colors for fabrics and paper.
  • Composition: Busy but balanced. Use leading lines from tools or desk edges to draw the eye towards key inventions. A shallow depth of field can highlight specific items while keeping the overall clutter visible.
  • Camera Angle: Eye-level, looking into the workshop as if observing a moment in time.
  • Key Elements:

* Authentic-looking steampunk gadgets and tools.

* Rich textures: polished wood, worn leather, tarnished brass, gleaming copper.

* Atmospheric dust, smoke, or steam effects.

* The partially assembled automaton as a focal point in the background.

  • Details: Avoid anything anachronistic. Focus on the details of the mechanisms. The scene should feel lived-in and actively used, not sterile.

Concept 6: Majestic Arctic Wolf in Snowstorm

Image Prompt

A powerful, majestic arctic wolf standing stoically amidst a swirling blizzard in a vast, snow-covered tundra. Its thick, white fur is ruffled by the wind, partially obscuring its intense, piercing blue eyes. Snowflakes are visibly caught on its fur and falling around it. The background is a soft blur of white and gray, conveying the immense, desolate landscape and the ferocity of the storm. Wildlife photography style, dramatic natural lighting, 1:1 aspect ratio, 8K resolution, detailed fur texture, raw, powerful, untamed, environmental portrait.

Creative Brief

Project Title: "Spirit of the North"

Purpose: To capture the raw beauty, resilience, and power of nature and wildlife. Ideal for nature documentaries, environmental conservation campaigns, outdoor apparel branding, or fine art prints.

Target Audience: Wildlife enthusiasts, conservationists, adventurers, and those who appreciate the untouched beauty of the natural world.

Key Message: The enduring spirit of wildlife in harsh, beautiful environments.

Desired Emotional Response: Awe, respect, solitude, and a sense of the wild.

Visual Direction Specifications

  • Style: Wildlife photography, raw, natural, dramatic.
  • Lighting: Overcast, diffused light from the blizzard, but with enough contrast to highlight the wolf's features and the texture of its fur. Emphasize the glint in its eyes.
  • Color Palette: Predominantly whites, grays, and very subtle blues. The wolf's blue eyes should stand out.
  • Composition: Centered or slightly off-center, with the wolf as the dominant subject. Use the swirling snow to frame and add dynamism.
  • Camera Angle: Eye-level with the wolf, to create an intimate and respectful connection.
  • Key Elements:

* Highly detailed, realistic fur texture, showing individual strands.

* Intense, focused eyes.

* Visible, swirling snowflakes and wind effects on the fur.

* Subtle hints of the vast, desolate tundra in the background blur.

  • Details: Avoid any signs of human intervention. The wolf should appear wild and undisturbed. The overall feeling should be one of untamed nature.

Concept 7: Evocative Conceptual Portrait: The Weight of Thought

Image Prompt

A highly artistic conceptual portrait of a person (gender-neutral, obscured features) with their head gently bowed, hands clasped, surrounded by swirling, translucent wisps of light and shadow, representing thoughts and ideas. The background is a deep, muted indigo, almost black, with subtle, glowing ethereal patterns. The lighting is soft and dramatic, coming from above, highlighting the contours of the figure's form and the ethereal wisps. The mood is contemplative, introspective, and slightly melancholic. Fine art photography style, chiaroscuro lighting, 4:5 aspect ratio, high contrast, painterly, emotive, thought-provoking.

Creative Brief

Project Title: "The Unspoken"

Purpose: To explore themes of introspection, mental processes, creativity, or the burden of thought. Ideal for psychological awareness campaigns, artistic book covers, philosophical publications, or fine art galleries.

Target Audience: Art enthusiasts, individuals interested in psychology and philosophy, and those who appreciate deep, reflective imagery.

Key Message: The complex inner world of thought and emotion.

Desired Emotional Response: Contemplation, empathy, introspection, and a sense of quiet profundity.

Visual Direction Specifications

  • Style: Fine art photography, conceptual, painterly, emotive.
  • Lighting: Chiaroscuro. A single, soft, dramatic light source from above, creating deep shadows and highlighting the subject's form and the ethereal wisps. The light should feel internal or spiritual.
  • Color Palette: Muted indigo, deep grays, and blacks for the background. The wisps should have a soft, ethereal glow in whites, very light blues, or purples. Skin tones should be natural but subtly desaturated.
  • Composition: The figure should occupy the central or lower-central portion of the frame, with the wisps swirling around and above them.
  • Camera Angle: Slightly high-angle, looking down on the contemplative figure, emphasizing their bowed head.
  • Key Elements:

* Obscured or generalized facial features to allow for broader interpretation.

* Translucent, flowing wisps of light/shadow representing thoughts.

*

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