Product Roadmap Builder
Run ID: 69cc43938f41b62a970c20082026-03-31Business
PantheraHive BOS
BOS Dashboard

Final Design Assets: Product Roadmap Builder

This document outlines the detailed design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for presenting a strategic product roadmap. The goal is to create a professional, intuitive, and actionable visual artifact that effectively communicates product strategy, feature prioritization, and execution plans to all stakeholders.


1. Overall Design Vision & Principles

Vision: To provide a clear, concise, and visually engaging representation of the product roadmap that facilitates understanding, alignment, and informed decision-making across the organization. The design prioritizes readability, navigability, and the ability to drill down into details without overwhelming the user.

Key Design Principles:


2. Detailed Design Specifications

The product roadmap will be presented as an interactive dashboard or a comprehensive, multi-section report, optimized for both digital viewing and potential print.

2.1. Layout Structure

The primary view will consist of a Header, a Filter/Navigation Panel, a Main Roadmap Canvas, and an optional Details Panel (for selected items).

* Left: Company/Product Logo, "Product Roadmap" Title.

* Center: High-level strategic objective/theme for the roadmap (e.g., "Q3 2024 - Drive Customer Engagement").

* Right: Date of last update, Export/Share options, User Profile (if applicable).

* Timeframe Selector: Dropdown/buttons for "Now/Next/Later", "Quarterly (Q1-Q4)", "Monthly", "Annual".

* View Selector: "Theme View", "Team View", "Goal View".

* Filters: By Product Area, Team, Owner, Status, Priority, Strategic Pillar.

* Search Bar: For specific features or initiatives.

2.2. Main Roadmap Canvas Components

The canvas will typically follow a swimlane-based timeline view.

* Clearly delineated time blocks with labels.

* A "Today" or "Current" marker for active roadmaps.

* Each swimlane has a clear title (e.g., "Theme: User Onboarding," "Product Area: Mobile App").

* Swimlanes can be collapsed/expanded.

* Placement: Positioned within their respective swimlanes, aligned with their planned timeframe.

* Visual Cues:

* Size: Can be consistent or slightly vary to indicate effort/scope (optional, requires clear legend).

* Color: Main body color determined by Status (see Color Palette).

* Borders/Shadows: Subtle styling to differentiate cards.

* Information Displayed (on card):

* Feature Name: Prominent and concise.

* Status Icon/Label: (e.g., "Planned," "In Progress," "Completed," "On Hold").

* Owner/Team Avatar/Initials: Small, clear indicator.

* Priority Label: (e.g., "P1," "High," "Medium").

* Progress Bar: (Optional) If "In Progress," a small bar showing completion percentage.

* Dependencies Icon: If applicable, linking to other features.

* Hover State: Displays a brief tooltip with key details on hover.

* Visual: Diamond or star icon with a short label (e.g., "Beta Launch," "API Freeze").

* Placement: Along the top of the timeline or overlaid on relevant features.

* Color-coded (e.g., green for "Blocked By," red for "Blocking").

2.3. Details Panel (Right Sidebar / Modal)

Appears when a feature card or milestone is clicked.

* Description: Detailed explanation of the feature/milestone.

* Strategic Alignment: Which overarching goal/pillar does it support?

* Product Area/Team:

* Owner(s):

* Priority: (e.g., Critical, High, Medium, Low).

* Timeframe: Start Date, End Date, Duration.

* Status: (Dropdown for editing if applicable).

* Progress: Current percentage, last updated date.

* Target Metrics, Actual Metrics (if available).

* Assigned Resources (Team members, budget allocation).

* Links to relevant documents (PRD, design files, technical specs).

* Identified risks, severity, mitigation strategies.

* List of features it depends on, and features that depend on it.


3. Wireframe Descriptions

3.1. Overview Dashboard Wireframe

text • 3,783 chars
+---------------------------------------------------------------------------------------------------------+
| [Header]                                                                         [X Close]              |
| ------------------------------------------------------------------------------------------------------- |
| **Feature Name: Implement Single Sign-On (SSO)**                                 [Status: In Progress]  |
| ------------------------------------------------------------------------------------------------------- |
|                                                                                                         |
| **Description:**                                                                                        |
|   Integrate with enterprise SSO providers (Okta, Azure AD) to streamline user login and enhance security.|
|                                                                                                         |
| **Strategic Alignment:** Improve Security & Compliance                                                  |
| **Product Area:** Authentication                                                                        |
| **Owner(s):** Jane Doe (PM), John Smith (Lead Dev)                                                      |
| **Priority:** P1 - Critical                                                                             |
| **Timeframe:** 2024-07-15 to 2024-09-30 (10 weeks)                                                       |
| **Progress:** 65% Complete (Last Updated: 2024-08-20)                                                   |
|                                                                                                         |
| **Metrics & KPIs:**                                                                                     |
|   - Target: 90% SSO adoption rate by Q4 end                                                             |
|   - Actual: 75% adoption (projected)                                                                    |
|                                                                                                         |
| **Resources:**                                                                                          |
|   - Engineering: 2 FTEs (Backend), 1 FTE (Frontend)                                                     |
|   - Links: [PRD-SSO.pdf], [Design-SSO.fig], [JIRA-SSO-EPIC-123]                                         |
|                                                                                                         |
| **Risks & Mitigations:**                                                                                |
|   - Risk: Integration complexity with legacy systems. Mitigation: Dedicated tech lead & phased rollout.  |
|                                                                                                         |
| **Dependencies:**                                                                                       |
|   - Depends On: [Feature: Backend User Service Refactor]                                                |
|   - Blocks: [Feature: Enterprise Admin Portal]                                                          |
|                                                                                                         |
| [Optional: Comments / Activity Log Section]                                                             |
|                                                                                                         |
| [Edit Feature] [Mark as Complete] [Delete]                                                              |
+---------------------------------------------------------------------------------------------------------+
Sandboxed live preview

Product Roadmap Builder: Research & Design Requirements

This document outlines the detailed research and design requirements for the "Product Roadmap Builder" tool. The goal is to create a strategic, intuitive, and comprehensive platform that facilitates feature prioritization, milestone planning, resource allocation, risk assessment, and stakeholder communication for product development.


1. Introduction & Goal

The Product Roadmap Builder is designed to empower product managers, development teams, and stakeholders to collaboratively define, visualize, and manage their product strategy over time. This initial phase focuses on thoroughly defining the functional and non-functional requirements, conceptualizing the user experience, and establishing a foundational design specification to guide the development process.


2. Functional Requirements

The system shall provide the following core functionalities:

  • 2.1 Feature Management:

* Ability to create, edit, and delete product features/initiatives.

* Fields for feature name, description, owner, status, category, estimated effort, and business value.

* Support for linking features to strategic objectives or epics.

  • 2.2 Prioritization Engine:

* Multiple prioritization frameworks (e.g., MoSCoW, RICE, WSJF, Value vs. Effort matrix).

* Configurable weighting for prioritization criteria.

* Visual representation of prioritized features.

* Drag-and-drop functionality for manual re-prioritization.

  • 2.3 Milestone & Timeline Planning:

* Define and track key milestones (e.g., releases, major updates, strategic checkpoints).

* Associate features with specific milestones and timeframes.

* Gantt-chart or timeline view for visualizing the roadmap over time.

* Ability to adjust milestone dates and feature dependencies.

  • 2.4 Resource Allocation:

* Define and manage available resources (teams, individuals, budget).

* Allocate resources to features or initiatives, indicating effort (e.g., person-days, story points).

* Visualize resource utilization and identify over/under-allocation.

* Capacity planning features to prevent resource bottlenecks.

  • 2.5 Risk Assessment & Management:

* Ability to identify, document, and categorize risks associated with features or the overall roadmap.

* Fields for risk description, likelihood, impact, mitigation strategies, and owner.

* Tracking of risk status and resolution.

* Dashboard view for critical risks.

  • 2.6 Stakeholder Communication & Collaboration:

* Configurable views for different stakeholder groups (e.g., executive summary, technical roadmap).

* One-click generation of sharable roadmap reports (PDF, image).

* Commentary and feedback functionality on features and milestones.

* User role management with granular permissions.

* Notification system for updates and changes.

  • 2.7 Reporting & Analytics:

* Pre-built and customizable reports on roadmap progress, feature status, resource utilization, and risk exposure.

* Dashboards with key metrics and visualizations (e.g., burn-up charts, feature velocity).

* Export capabilities for data (CSV, JSON).

  • 2.8 Versioning & History:

* Track changes to the roadmap, features, and milestones.

* Ability to revert to previous roadmap versions.

* Audit trail for all major actions.


3. Non-Functional Requirements

  • 3.1 Performance:

* Page load times under 2 seconds for typical views.

* Responsive interactions (e.g., drag-and-drop) with minimal latency.

* Scalable to handle hundreds of features and thousands of users.

  • 3.2 Security:

* Role-based access control (RBAC) with configurable permissions.

* Data encryption in transit and at rest.

* Compliance with relevant data privacy regulations (e.g., GDPR, CCPA).

* Protection against common web vulnerabilities (OWASP Top 10).

  • 3.3 Usability:

* Intuitive user interface with clear navigation.

* Minimal learning curve for new users.

* Consistent design language throughout the application.

* Contextual help and tooltips.

  • 3.4 Reliability & Availability:

* High availability (e.g., 99.9% uptime).

* Robust error handling and graceful degradation.

* Regular backups and disaster recovery plan.

  • 3.5 Scalability:

* Architecture designed to accommodate future feature enhancements and increased data volume.

* Ability to integrate with other tools (e.g., project management, analytics).

  • 3.6 Accessibility:

* Adherence to WCAG 2.1 AA standards.

* Keyboard navigation support.

* Screen reader compatibility.

* High contrast mode option.

  • 3.7 Integrations:

* API for integration with external systems (e.g., Jira, Asana, Trello, GitHub, Slack).

* Webhooks for real-time notifications.


4. Key User Stories / Use Cases

  • As a Product Manager, I want to easily add and prioritize new features based on business value and effort, so I can ensure my team is working on the most impactful items.
  • As a Product Manager, I want to visualize my roadmap on a timeline, seeing features grouped by milestones, so I can communicate release plans effectively.
  • As a Development Lead, I want to see the estimated effort for upcoming features and the allocated team members, so I can plan my team's capacity and identify potential bottlenecks.
  • As a Stakeholder, I want to view a high-level summary of the product roadmap without getting bogged down in technical details, so I can understand the strategic direction and upcoming deliverables.
  • As a Risk Manager, I want to quickly identify and track high-priority risks associated with upcoming features, so I can proactively work on mitigation strategies.
  • As an Executive, I want to generate a concise report showing the progress against strategic objectives, so I can make informed business decisions.
  • As a Team Member, I want to see which features I'm assigned to and their current status, so I can understand my contributions to the overall roadmap.

5. Detailed Design Specifications

5.1 Data Model / Key Entities

  • Product: Name, Description, Owner.
  • Feature/Initiative: ID, Name, Description, Status (Backlog, In Progress, Done, etc.), Priority Score, Business Value, Estimated Effort, Category, Strategic Objective Link, Owner, Start Date, End Date, Risks (list), Resources (list), Comments (list).
  • Milestone: ID, Name, Description, Target Date, Status (Planned, Achieved, Delayed), Associated Features (list).
  • Resource: ID, Name, Type (Person, Team, Budget), Capacity, Allocated Effort (per feature).
  • Risk: ID, Name, Description, Likelihood (High, Medium, Low), Impact (High, Medium, Low), Mitigation Strategy, Owner, Status (Open, Mitigated, Closed), Associated Feature/Milestone.
  • Stakeholder: ID, Name, Role, Access Permissions.
  • Prioritization Framework: ID, Name, Criteria (list), Weights (per criteria).

5.2 User Interface Components

  • Navigation: Global sidebar/top bar with links to Dashboard, Features, Roadmap, Resources, Risks, Reports, Settings.
  • Data Entry Forms: Clearly labeled input fields, dropdowns, date pickers, rich text editors.
  • Tables: Sortable, filterable, searchable tables for lists of features, resources, risks.
  • Cards: Visual cards for features in backlog views, displaying key information.
  • Gantt/Timeline Charts: Interactive charts for roadmap visualization, allowing drag-and-drop for date adjustments.
  • Charts & Graphs: Bar charts for resource allocation, pie charts for feature status, scatter plots for prioritization matrices.
  • Drag-and-Drop: For prioritizing features, assigning resources, moving items on a timeline.
  • Modals/Side Panels: For detailed editing of features, risks, resources without leaving the main view.
  • Search & Filter: Global search, context-specific filters (by owner, status, category, date range).

5.3 Interaction Flows

  • Add New Feature:

1. Click "Add Feature" button.

2. Modal/side panel opens with form fields.

3. User fills in details (Name, Desc, Est. Effort, Business Value, etc.).

4. User selects prioritization criteria values.

5. Click "Save". Feature added to backlog.

  • Prioritize Features (Matrix View):

1. Navigate to "Prioritization" view.

2. Features displayed on a 2x2 matrix (e.g., Value vs. Effort).

3. User drags and drops features within the matrix to adjust priority or re-evaluate.

4. System updates priority score.

  • Plan Roadmap (Timeline View):

1. Navigate to "Roadmap" view.

2. Timeline displayed with existing milestones.

3. User drags features from a backlog sidebar onto specific milestones or timeframes.

4. User can drag feature edges to adjust duration.

5. User can drag milestones to adjust dates.

  • Allocate Resources:

1. Navigate to "Resources" view or a specific feature's detail page.

2. Select resource(s) from a dropdown/list.

3. Input estimated effort for the resource on that feature.

4. System updates resource utilization charts.

  • Generate Report:

1. Navigate to "Reports" or "Share" section.

2. Select report type (e.g., Executive Summary, Detailed Feature List).

3. Apply filters (e.g., date range, status, owner).

4. Click "Generate PDF/Image" or "Share Link".


6. Wireframe Descriptions (Key Screens)

6.1 Dashboard/Overview Screen

  • Layout: Grid-based, responsive.
  • Top Section:

* "Roadmap Health" summary: Key metrics like "Features Completed (last 30 days)", "Upcoming Milestones", "Critical Risks".

* Quick actions: "Add Feature", "New Milestone".

  • Middle Section:

* "Prioritized Backlog" widget: Top 5-10 features by priority, with status and owner.

* "Upcoming Milestones" widget: List of next 3-5 milestones with their dates and progress.

  • Bottom Section:

* "Resource Utilization" chart: High-level bar chart showing overall team capacity vs. allocation.

* "Open Risks" widget: List of critical or high-impact risks.

  • Navigation: Left sidebar for main navigation (Dashboard, Features, Roadmap, etc.).

6.2 Feature Management Screen

  • Layout: Main content area with a table, potentially a right-hand detail panel or modal for editing.
  • Top Bar: Search bar, filter options (by status, owner, category, priority), "Add Feature" button.
  • Main Content:

* Feature Table: Columns for Name, Status, Owner, Priority Score, Business Value, Effort, Milestone, Actions (Edit, Delete).

* Sortable and filterable by all columns.

* Checkbox for bulk actions.

  • Feature Detail (Modal/Side Panel):

* Form fields for all feature attributes (Name, Description - rich text, Status dropdown, Owner dropdown, Category dropdown, Est. Effort input, Business Value input, Strategic Objective link, etc.).

* Sections for "Associated Risks", "Allocated Resources", "Comments".

* "Save" and "Cancel" buttons.

6.3 Roadmap View Screen (Timeline/Gantt Chart)

  • Layout: Wide, horizontal scrollable area for the timeline. Left sidebar for feature backlog.
  • Top Bar: Date range selector (Month, Quarter, Year), zoom controls, "Export" button.
  • Left Sidebar (Optional/Toggleable):

* List of unassigned features (backlog), drag-and-droppable onto the timeline.

  • Main Content:

* Timeline: Horizontal axis representing time (weeks, months, quarters).

* Swimlanes (Optional): Grouping by team, product area, or strategic objective.

* Milestones: Vertical lines or flag icons with labels at specific dates.

* Features: Represented as horizontal bars within the timeline, showing start/end dates.

* Bars display feature name, color-coded by status or category.

* Interactive: Drag bars to move features, drag ends to adjust duration.

* Clicking a bar opens a feature detail modal.

* Dependencies: Visual lines connecting dependent features.

6.4 Resource Allocation Screen

  • Layout: Two main sections: Resource list and Allocation view.
  • Top Bar: Filters for resources (by team, role), date range selector.
  • Left Section:

* Resource List: Table or cards for each resource (Name, Role, Capacity).

* Clicking a resource highlights their allocation on the right.

  • Right Section:

* Allocation Chart (e.g., Stacked Bar Chart or Heatmap):

* X-axis: Time (weeks, months).

* Y-axis: Resources.

* Bars/cells indicate allocation level for each resource per time unit, color-coded for over/under-allocation.

* Hovering shows detailed allocation breakdown (which features consume capacity).

* Feature-to-Resource Mapping (Table): List of features, with columns for "Assigned Resources" and "Allocated Effort".

* Allows direct assignment of resources to features from this view.

6.5 Risk Management Screen

  • Layout: Table view for risks, with a detail panel/modal.
  • Top Bar: Search, filters (by status, likelihood, impact, owner), "Add Risk" button.
  • Main Content:

* Risk Table: Columns for Risk Name, Description (truncated), Likelihood, Impact, Status, Mitigation Strategy (truncated), Owner, Associated Feature/Milestone, Actions (Edit, Close).

* Color-coding for high-likelihood/impact risks.

  • Risk Detail (Modal/Side Panel):

* Form fields for all risk attributes.

* "Save", "Cancel", "Mark as Mitigated/Closed" buttons.


7. Color Palettes

A professional, modern, and accessible color palette will be used to ensure clarity and user comfort.

  • Primary Brand Color: #007bff (A vibrant, trustworthy blue - commonly associated with professionalism and technology).

Usage:* Buttons, primary calls to action, active navigation states, key accent elements.

  • Secondary Accent Color: #28a745 (A clear, positive green).

Usage:* Success messages, "Completed" status, positive indicators.

  • Tertiary Accent Color:
gemini Output

Product Roadmap Builder: Detailed Design Specifications & UX Recommendations

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "Product Roadmap Builder" tool. The aim is to create an intuitive, powerful, and visually appealing platform that empowers product teams to strategically plan, prioritize, and communicate their product vision.


1. Detailed Design Specifications

1.1. Overall Structure & Layout

The application will feature a consistent layout comprising:

  • Left-hand Navigation Sidebar: Persistent, collapsible, providing access to main modules (e.g., Dashboard, Features, Milestones, Resources, Risks, Communications, Settings).
  • Top Header Bar: Contains global actions (e.g., Search, Notifications, User Profile, Current Product/Roadmap Selector, Add New Item).
  • Main Content Area: Dynamic, displaying the selected module's content.

1.2. Key Modules & Sections

1.2.1. Dashboard / Roadmap Overview

  • Purpose: Provide a high-level summary of the roadmap status, key metrics, and upcoming milestones.
  • Components:

* Roadmap Timeline Widget: Visual representation of key features/epics and milestones over time (Gantt-like view).

* Feature Status Breakdown: Donut/pie chart showing features by status (e.g., Backlog, In Progress, Done, Blocked).

* Priority Distribution: Bar chart showing features by priority level.

* Resource Utilization Summary: Quick overview of resource allocation.

* Upcoming Milestones: List of the next 3-5 critical milestones with dates.

* Risk Summary: Count of open risks, categorized by severity.

* Recent Activity Feed: Log of recent changes/updates by team members.

1.2.2. Feature Management

  • Purpose: Centralized management of all product features, epics, and user stories.
  • Components:

* Table View: Sortable, filterable table displaying features with columns for Name, Status, Priority, Owner, Due Date, Dependencies, Tags, Roadmap Phase.

* Kanban Board View: Drag-and-drop interface for managing features across different stages (e.g., Backlog, To Do, In Progress, Review, Done). Customizable columns.

* Feature Detail Panel/Modal:

* Basic Info: Name, Description (rich text editor), Status (dropdown), Priority (dropdown: Critical, High, Medium, Low), Owner (user picker), Estimated Effort (e.g., Story Points, T-shirt sizes).

* Timeline & Dates: Start Date, End Date, Target Release Date.

* Dependencies: Link to other features, external systems.

* Milestone Association: Link to relevant milestones.

* Resources: Link to assigned resources.

* Risks: Link to associated risks.

* Attachments: File upload (documents, mockups).

* Comments/Activity Log: Threaded comments, timestamped activity feed.

* Tags: Customizable keywords for categorization.

* Stakeholder Communication Notes: Specific notes for communication.

1.2.3. Milestone Planning

  • Purpose: Define and track key product milestones and releases.
  • Components:

* Timeline View (Gantt Chart): Visual representation of milestones and their associated features over time. Drag-and-drop functionality for rescheduling.

* Milestone List: Table view with Name, Description, Target Date, Status (e.g., Planned, In Progress, Achieved, Delayed), Key Features, Owner.

* Milestone Detail Panel/Modal: Similar to Feature Detail, but focused on milestone-specific data (e.g., Release Notes, Go/No-Go Criteria).

1.2.4. Resource Allocation

  • Purpose: Manage and allocate team members to features and milestones.
  • Components:

* Team Member Directory: List of users with roles, skills, and availability.

* Resource Assignment Interface: Ability to assign team members to features/milestones. Visual representation of workload (e.g., heat map or bar chart showing allocation over time).

* Capacity Planning View: Overview of team capacity versus assigned work.

1.2.5. Risk Assessment & Management

  • Purpose: Identify, assess, and mitigate risks associated with roadmap execution.
  • Components:

* Risk Register Table: List of risks with columns for Name, Description, Type, Likelihood (dropdown), Impact (dropdown), Severity (calculated), Mitigation Plan, Owner, Status (e.g., Open, Mitigated, Closed), Associated Features/Milestones.

* Risk Detail Panel/Modal: Fields for detailed risk information, mitigation strategies, contingency plans, and a log of risk updates.

* Risk Matrix Visualization: 2x2 or 3x3 matrix showing risks by Likelihood and Impact.

1.2.6. Stakeholder Communication Plan

  • Purpose: Define and manage communication strategies for different stakeholder groups.
  • Components:

* Stakeholder Groups List: Define different stakeholder groups (e.g., Executives, Sales, Engineering, Customers).

* Communication Item List: Table for planned communications with columns for Message, Audience, Channel, Frequency, Owner, Status.

* Communication Plan Detail Panel/Modal: Rich text editor for message content, audience selection, channel selection (e.g., Email, Presentation, Internal Wiki), frequency settings (e.g., Weekly, Monthly, Ad-hoc), attachment options.

* Roadmap Export/Share: Options to export customized roadmap views (e.g., PDF, Image) or share a read-only web link with specific filters.

1.3. Data Input Fields & Controls

  • Text Inputs: Standard single-line and multi-line (rich text editor for descriptions).
  • Dropdowns/Selects: For predefined lists (Status, Priority, Owner, Tags, etc.). Auto-suggest/searchable options for long lists.
  • Date Pickers: Intuitive calendar interface for selecting dates and date ranges.
  • User Pickers: Searchable list of team members.
  • File Uploads: Drag-and-drop and browse functionality.
  • Checkboxes/Radio Buttons: For boolean options or single-choice selections.
  • Drag-and-Drop: For reordering lists, moving features on Kanban boards, adjusting timeline elements.
  • Search Bar: Global search and module-specific search.
  • Filters: Robust filtering options for tables and views (e.g., by Owner, Status, Tag, Date Range).

1.4. Output & Display Elements

  • Tables: Responsive, sortable, filterable, with configurable columns.
  • Charts & Graphs:

* Gantt Charts: For timelines and dependencies.

* Kanban Boards: For workflow visualization.

* Donut/Pie Charts: For status breakdowns.

* Bar Charts: For distributions (e.g., priority, resource allocation).

* Risk Matrix: Visualizing risk severity.

  • Progress Bars: For indicating completion status.
  • Activity Feeds: Chronological list of actions.
  • Read-only Views: For sharing roadmaps with external stakeholders.

1.5. Interactivity & Controls

  • In-line Editing: Where appropriate, allowing quick edits directly in tables or cards.
  • Context Menus: Right-click or "..." menus for quick actions on items.
  • Tooltips: Providing additional information on hover.
  • Undo/Redo: For critical actions, especially in timeline or drag-and-drop interfaces.
  • Keyboard Shortcuts: For common actions (e.g., add new, save).

1.6. Error Handling & Feedback

  • Validation Messages: Clear, immediate feedback on invalid input.
  • Success Notifications: Non-intrusive banners or toasts for successful operations.
  • Error Messages: Specific and actionable messages for failures, with guidance on resolution.
  • Loading Indicators: Spinners or skeleton screens for asynchronous operations.
  • Empty States: Helpful messages and calls to action when a section has no data.

2. Wireframe Descriptions

2.1. Main Dashboard / Roadmap Overview Wireframe

  • Layout: Three main columns. Left navigation sidebar (collapsible). Top header bar.
  • Column 1 (approx. 60% width):

* Roadmap Timeline: A large horizontal scrollable area showing a Gantt-like chart.

* Y-axis: Major Features/Epics/Milestones.

* X-axis: Time (Months/Quarters).

* Bars representing duration, color-coded by status or owner.

* Milestone markers (diamonds/stars) with dates.

* Dependencies shown with arrows between bars.

  • Column 2 (approx. 20% width):

* "Feature Status" Donut Chart: Shows "Backlog (20), In Progress (15), Done (30), Blocked (5)".

* "Priority Distribution" Bar Chart: Bars for Critical, High, Medium, Low features.

  • Column 3 (approx. 20% width):

* "Upcoming Milestones" List:

* Item 1: "Beta Launch" - Oct 15 (Status: On Track)

* Item 2: "API V2 Release" - Nov 1 (Status: At Risk)

* Item 3: "Q4 Planning" - Nov 30 (Status: Planned)

* "Risk Summary" Card:

* "5 Open Risks"

* "2 Critical, 1 High, 2 Medium"

* Button: "View All Risks"

* "Recent Activity" Feed:

* "John Doe updated 'Login Flow' feature."

* "Jane Smith added new milestone 'Mobile App v1.0'."

2.2. Feature Details Modal/Sidebar Wireframe

  • Layout: A modal window overlaying the main content, or a right-side sliding panel.
  • Top Bar: Feature Name (editable), Status dropdown, "Save" and "Cancel" buttons.
  • Main Content (Scrollable):

* Section 1: Overview

* Description: Multi-line rich text editor.

* Priority: Dropdown (Critical, High, Medium, Low).

* Owner: User picker dropdown.

* Estimated Effort: Input field (e.g., Story Points).

* Section 2: Timeline

* Start Date: Date picker.

* End Date: Date picker.

* Target Release: Date picker.

* Section 3: Relationships

* Dependencies: Multi-select dropdown to link other features.

* Milestone: Multi-select dropdown to link to milestones.

* Associated Risks: List of linked risks with "Add Risk" button.

* Section 4: Attachments

* Drag-and-drop area for files. List of uploaded files.

* Section 5: Tags

* Multi-select input for adding/managing tags.

* Section 6: Communication Notes

* Multi-line text area for internal communication notes.

  • Bottom Bar: "Delete Feature" button (if applicable), "Save" and "Cancel" buttons.
  • Right Side (if modal is wide):

* Comments/Activity Log: Threaded comment section with input field. Timestamped activity entries below.

2.3. Timeline View (Milestone/Feature) Wireframe

  • Layout: Full-width main content area.
  • Top Controls:

* View Selector (e.g., "Monthly," "Quarterly," "Yearly").

* Filters (by Owner, Status, Tags, etc.).

* "Add Milestone" button, "Add Feature" button.

  • Main Timeline Area (Gantt Chart):

* Left Pane: List of Features/Epics/Milestones.

* Each item has Name, Owner (small avatar), Progress Bar.

* Expand/collapse functionality for nested items (e.g., Epic > Feature > Story).

* Right Pane (Time Scale):

* Horizontal axis showing Months/Weeks/Quarters.

* Colored bars representing the duration of features/milestones.

* Bars can be dragged horizontally to change dates.

* Ends of bars can be dragged to change duration.

* Dependencies shown as lines/arrows connecting bars.

* Vertical "Today" line.

* Hovering over a bar shows a tooltip with detailed info.


3. Color Palettes

The color palette aims for professionalism, clarity, and approachability, using a combination of cool tones for primary elements and vibrant accents for interactive feedback.

3.1. Primary & Secondary Palette

  • Primary Brand Color (Blue/Teal): #007bff (or similar, e.g., #1A73E8, #009688) - Used for main calls to action, active states, branding elements.
  • Secondary Color (Dark Grey/Navy): #343a40 (or similar, e.g., #212529) - For primary text, main navigation backgrounds, strong headings.

3.2. Accent & Interactive Colors

  • Accent Color (Orange/Yellow): #ffc107 (or similar, e.g., #FFC107, #F9A825) - For highlights, warnings, secondary interactive elements.
  • Hover/Active State: A slightly lighter or darker shade of the primary color.

3.3. Semantic Colors

  • Success (Green): #28a745 (or similar, e.g., #4CAF50) - For successful operations, "Done" status.
  • Warning (Orange/Yellow): #ffc107 (or similar, e.g., #FFC107) - For warnings, "At Risk" status.
  • Error (Red): #dc3545 (or similar, e.g., #F44336) - For error messages, "Blocked" status.
  • Info (Light Blue): #17a2b8 (or similar, e.g., #2196F3) - For informational messages, "In Progress" status.

3.4. Neutral Palette (Text & Backgrounds)

  • Backgrounds:

* Light Grey (#f8f9fa or #f2f2f2) - Main content background.

* Slightly Darker Grey (#e9ecef) - Card backgrounds, secondary sections.

  • Text:

* Primary Text (#343a40) - Main body text, headings.

* Secondary Text (#6c757d) - Labels, helper text, less prominent information.

Description:

  • Header: Feature title and status badge, with a clear close button.
  • Main Content: Organized into logical sections with bold headings for easy scanning.
  • Readability: Ample white space, clear text hierarchy.
  • Action Buttons: At the bottom for relevant actions.

4. Color Palettes

A professional, calm, and clear palette is essential. Colors are primarily used for status, hierarchy, and accentuation.

4.1. Core Palette

  • Primary Accent: #007bff (Vibrant Blue) - For interactive elements, primary buttons, selected states.
  • Secondary Accent: #6c757d (Muted Grey) - For secondary actions, subtle borders.
  • Neutral Background: #f8f9fa (Light Grey) - For main canvas background, panels.
  • Card Background: #ffffff (Pure White) - For feature cards, details panel.
  • Text - Primary: #212529 (Dark Charcoal) - For main headings, body text.
  • Text - Secondary: #6c757d (Medium Grey) - For labels, descriptions, less critical text.
  • Borders/Dividers: #e9ecef (Light Grey)

4.2. Status Colors (Feature Card Backgrounds)

  • Planned/Backlog: #d6e9f8 (Light Blue) - Indicates future work, not yet started.
  • In Progress: #fff3cd (Soft Yellow) - Active development.
  • Completed: #d4edda (Pale Green) - Done, shipped.
  • On Hold/Blocked: #f8d7da (Light Red/Pink) - Stalled, requires attention.
  • Released/Shipped: #cce5ff (Lighter Blue, distinct from Planned) - For features that are live.

4.3. Dependency Colors (Lines)

  • Depends On: #ffc107 (Amber) - Feature is waiting on something.
  • Blocks: #dc3545 (Red) - Feature is preventing something else.
  • Related: #6c757d (Grey) - General connection.

5. Typography

A clean, legible, and professional font stack.

  • Primary Font (Headings & Key Info): Roboto (or similar sans-serif like Lato, Open Sans)

* H1 (Roadmap Title): 28px, Bold

* H2 (Section Titles): 20px

product_roadmap_builder.txt
Download source file
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);}});}