Brand Identity Kit
Run ID: 69bcaaed77c0421c0bf4a7cd2026-03-29Design
PantheraHive BOS
BOS Dashboard

Complete brand identity package including logo concepts, color palette, typography guide, brand voice guidelines, and social media style guide.

As a professional AI assistant within PantheraHive, I am executing the "Brand Identity Kit" workflow (category: Design) for "Test Brand Name."

Here is the comprehensive brand identity package based on your inputs, generated by the sharper4k app:


Brand Identity Kit: Test Brand Name

Brand Name: Test Brand Name

Industry: Test Industry

Brand Values: This is a test input for the Brand Identity Kit workflow. Please generate comprehensive output.

Target Audience: Test Target Audience

Style Preference: Modern & Minimal


1. Logo Concepts

For "Test Brand Name" operating in the "Test Industry" with a "Modern & Minimal" style preference, the logo concepts focus on clean lines, simplicity, and a timeless aesthetic. The aim is to create a memorable and versatile mark that communicates professionalism and innovation.

Concept 1: Geometric Abstraction Wordmark

  • Description: This concept combines a custom-designed geometric wordmark with a subtle, abstract icon that can stand alone. The typography is a modern, sans-serif font with precise kerning, giving it a solid, grounded feel. The abstract element could be a stylized initial (e.g., 'T' or 'B') or a symbol representing connection, growth, or precision within the "Test Industry."
  • Visual Elements:

* Wordmark: Clean, uppercase or title-case sans-serif font (e.g., a customized version of Montserrat, Lato, or Open Sans).

* Icon: A simple, angular, or curvilinear shape that integrates seamlessly with the typography, perhaps using negative space to create a secondary form.

* Color Application: Primarily monochromatic (black/white/grey) with a single accent color from the palette for the icon or a specific part of the wordmark.

  • Rationale: Emphasizes clarity, structure, and forward-thinking. The geometric nature aligns perfectly with "Modern & Minimal" and offers strong scalability and readability across all mediums.
  • Usage: Ideal for primary branding, digital interfaces, and professional documents.

Concept 2: Minimalist Icon with Clean Wordmark

  • Description: This concept features a distinct, highly simplified icon positioned alongside or above a clean, readable wordmark. The icon is designed to be instantly recognizable and represent a core aspect of the "Test Industry" or "Test Brand Name" through abstract means (e.g., a simple overlapping shape, a single line drawing, or a metaphorical symbol).
  • Visual Elements:

* Icon: A highly vectorized, singular graphic element. Think of a simplified arrow, a perfectly balanced circle, or an interlocking shape.

* Wordmark: A light to medium weight sans-serif font (e.g., Raleway, Avenir, or Proxima Nova) that provides excellent legibility and a sophisticated feel.

* Color Application: The icon could be in a primary brand color, with the wordmark in a neutral tone (e.g., dark grey or black), or vice-versa.

  • Rationale: Offers strong brand recall through a unique icon while maintaining a professional and understated appearance. The separation allows for flexible use of the icon as a favicon, app icon, or social media profile picture.
  • Usage: Versatile for digital and print. The icon can be used independently for small applications or as a visual shorthand.

Concept 3: Typographic Mark with Integrated Detail

  • Description: This concept focuses purely on typography, where the "Test Brand Name" itself becomes the primary visual element. A subtle, unique detail is integrated directly into one or more characters, or the overall structure of the wordmark is manipulated to create a distinctive and memorable form without an external icon.
  • Visual Elements:

* Wordmark: A carefully selected or custom-modified sans-serif font. The modification could be a unique ligature, a subtly extended character, a break in a letterform, or a distinctive cut.

* Integrated Detail: A small, elegant design element that is part of the letterform itself, rather than an addition.

* Color Application: Typically monochromatic or using a single brand color for the entire wordmark to maintain simplicity and focus on the form.

  • Rationale: High impact through sophisticated typography. This approach exudes confidence and a strong brand identity, relying on the elegance of the letters themselves. It's inherently "Minimal" and can feel very high-end.
  • Usage: Best for brands that want their name to be the hero, suitable for luxury, tech, or design-focused entities within the "Test Industry."

2. Color Palette

This color palette is designed to be "Modern & Minimal," reflecting professionalism, sophistication, and clarity for "Test Brand Name." It focuses on a balanced blend of neutrals and a carefully chosen accent color to provide personality without overwhelming the clean aesthetic.

| Role | Color Name | HEX | RGB | CMYK | Usage & Emotional Impact

Step 2: collab

Brand Identity Kit: Test Brand Name

This document outlines the comprehensive brand identity for "Test Brand Name," developed based on the provided inputs and interpreted strategic elements. The goal is to establish a cohesive, professional, and distinctive brand presence aligned with a modern and minimal aesthetic.


1. Brand Overview & Strategic Foundation

Based on the inputs, the following strategic foundation has been established for "Test Brand Name":

  • Brand Name: Test Brand Name
  • Industry: Test Industry
  • Core Brand Values (Interpreted for comprehensive output): Given the input "This is a test input for the Brand Identity Kit workflow. Please generate comprehensive output.", we interpret the core values to align with a modern, minimal, and professional brand operating in a generic industry, aiming for broad appeal and quality.

* Innovation: Forward-thinking, embracing new solutions and technologies.

* Quality: Commitment to excellence in products/services and user experience.

* Simplicity: Clarity, efficiency, and ease of use in all brand interactions.

* Trust: Reliability, transparency, and integrity in all dealings.

* User-Centricity: Designing and operating with the user's needs and experience at the forefront.

  • Target Audience (Interpreted for comprehensive output): Discerning individuals and businesses who value efficiency, high-quality, intuitive solutions, and appreciate a clean, modern aesthetic. They are likely tech-savvy, seek reliability, and prefer straightforward, effective communication.
  • Style Preference: Modern & Minimal

2. Logo Concepts

The following logo concepts are designed to embody the "Modern & Minimal" style preference while reflecting the interpreted brand values. They prioritize clarity, scalability, and memorability.

General Logo Guidelines:

  • Simplicity: Avoid overly complex details.
  • Scalability: Must be legible and impactful at various sizes (from favicon to billboard).
  • Versatility: Adaptable for different backgrounds and mediums (print, digital, dark mode).
  • Clear Space: Always maintain a minimum clear space around the logo, equal to at least the height of the 'T' in "Test."

Concept 1: The Abstract Monogram Mark

  • Visual Description: A clean, geometric abstraction of the initial letters "TBN" (Test Brand Name) forming a single, interconnected symbol. The lines are precise, and the negative space plays a crucial role in defining the form. It could subtly suggest connectivity, progress, or integration.
  • Rationale: This concept directly leverages the brand name initials while transforming them into a sophisticated, abstract mark. It communicates innovation and forward-thinking through its modern geometry. The simplicity aligns perfectly with the "Minimal" preference, making it highly versatile and memorable.
  • Potential Usage: Ideal for app icons, social media profiles, product branding, and situations where a strong, recognizable symbol is needed. Can be used with or without the full wordmark.

Concept 2: The Horizon Line Wordmark

  • Visual Description: A custom-designed wordmark using a modern, sans-serif typeface. A subtle, thin horizontal line or underscore is integrated either below the entire name or subtly within one of the letters (e.g., extending from the 'T' or 'B'). This line symbolizes a foundation, horizon, or a path forward.
  • Rationale: This concept emphasizes clarity and a strong foundation (Trust, Quality) while maintaining a modern and minimal aesthetic. The clean typography speaks to Simplicity and professional quality. The subtle graphic element adds uniqueness without clutter, implying a clear path and vision (Innovation).
  • Potential Usage: Excellent for corporate communications, website headers, letterheads, and any application where the full brand name needs to be prominently displayed with a touch of unique character.

Concept 3: The Intersecting Pathways Symbol

  • Visual Description: A minimalist symbol composed of two or three intersecting or overlapping lines/shapes that create a sense of connection, synergy, or a simplified visual representation of a network or journey. This could be a stylized 'X', a simplified knot, or two arcs meeting.
  • Rationale: This concept visually represents connection, collaboration, and user-centricity. The clean lines and minimal form align with the style preference, while the intersection can symbolize problem-solving, integration, or diverse elements coming together to form a unified solution (Innovation, Quality). It's abstract enough to be broadly applicable across a "Test Industry."
  • Potential Usage: Versatile for digital platforms, merchandise, and as a standalone brand identifier. It offers flexibility in application and can easily be paired with the wordmark.

3. Color Palette

The chosen color palette is modern, sophisticated, and designed to evoke the brand values while adhering to the "Modern & Minimal" aesthetic. It balances professionalism with approachability.

General Color Guidelines:

  • Consistency: Always use the specified color values across all platforms.
  • Accessibility: Ensure sufficient contrast between text and background colors, especially for body text.
  • Purposeful Use: Each color should have a defined role to maintain visual coherence.

| Color Name | Hex Code | RGB Values | CMYK Values | Usage Guidelines Test Brand Name is a hypothetical brand. The contents of this document are for illustrative purposes and based on the provided inputs.


1. Brand Overview & Strategic Foundation

Brand Name: Test Brand Name

Industry: Test Industry

Core Brand Values (Interpreted):

  • Innovation: Commitment to pioneering solutions and continuous improvement.
  • Quality: Delivering excellence in products, services, and customer experience.
  • Simplicity: Prioritizing clarity, ease of use, and straightforward communication.
  • Trust: Building strong relationships through reliability, integrity, and transparency.
  • User-Centricity: Designing and operating with a deep understanding of user needs and a focus on their success.

Target Audience (Interpreted): Discerning professionals and businesses seeking advanced, reliable, and user-friendly solutions. They value efficiency, modern design, and a brand that understands their need for quality and simplicity.

Style Preference: Modern & Minimal


2. Logo Concepts

The following logo concepts are crafted to be "Modern & Minimal," reflecting the interpreted brand values and ensuring versatility across various mediums.

General Logo Guidelines:

  • Clear Space: Always maintain a minimum clear space around the logo. This clear space should be at least X units, where X is the height of the capital 'T' in the wordmark.
  • Minimum Size: Ensure legibility at small sizes. The smallest recommended height for the logo is 20px for digital use and 0.5 inches for print.
  • Color Variations: Provide full-color, single-color (black/white), and reverse (white on dark) versions.

Concept 1: The "Nexus" Mark

  • Visual Description: A sleek, geometric abstract mark formed by two intersecting or overlapping arcs/lines that create a central point of convergence. The lines are thin and precise, forming a symbol that suggests connection, flow, and a central hub.
  • Rationale: This mark embodies Innovation and User-Centricity by symbolizing connectivity and the bringing together of ideas or solutions. Its minimalist nature ensures Simplicity, while the clean geometry conveys Quality and professionalism. It is highly adaptable and recognizable.
  • Potential Usage: Primary brand mark for digital platforms (app icons, favicons), merchandise, and as a standalone identifier. It pairs effectively with the wordmark for full branding.

Concept 2: The "Horizon" Wordmark

  • Visual Description: A custom-designed wordmark using a contemporary, sans-serif typeface (e.g., a customized version of Montserrat or Poppins). A subtle, thin horizontal line extends from the base of the 'T' in "Test" and underlies the entire "Test Brand Name," creating a sense of grounding and forward momentum.
  • Rationale: This concept focuses on Trust and Quality through its stable, grounded appearance. The modern typography reflects Simplicity and a clean aesthetic. The integrated line subtly suggests a clear path forward and a vision (Innovation), making it sophisticated yet approachable.
  • Potential Usage: Ideal for corporate communications, website headers, print materials, and any application requiring the full brand name with a distinctive yet understated visual element.

Concept 3: The "Fold" Symbol

  • Visual Description: A dynamic, minimalist symbol created by a single continuous line that folds or bends to create an implied 3D form or a stylized initial 'T'. The form is open, suggesting accessibility and adaptability, while its structure hints at depth and sophisticated design.
  • Rationale: This design conveys Innovation and Quality through its clever use of form and space. The implied depth and structure suggest sophisticated solutions, while the continuous line implies seamless processes and User-Centricity. Its abstract nature keeps it modern and minimal.
  • Potential Usage: Versatile for visual storytelling, digital animations, and as a unique identifier when paired with the wordmark. It offers a fresh, dynamic alternative to more static marks.

3. Color Palette

The chosen palette is professional, calm, and contemporary, reflecting the "Modern & Minimal" aesthetic. It utilizes a core set of sophisticated neutrals complemented by a subtle accent.

General Color Guidelines:

  • Primary Use: Dominant colors for large areas, primary branding.
  • Secondary Use: Supporting colors for backgrounds, secondary elements, text.
  • Accent Use: For calls-to-action, highlights, and important information.
  • Digital & Print: Ensure color accuracy across all mediums.

| Role | Color Name | Hex Code | RGB Values | CMYK Values | Usage Guidelines

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