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

Build a strategic product roadmap with feature prioritization, milestone planning, resource allocation, risk assessment, and stakeholder communication plan.

Step 1: Research and Design Requirements for the Product Roadmap Builder

This document outlines the detailed 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 collaborative platform that enables product teams to strategically plan, prioritize, and communicate their product vision effectively.


1. Design Specifications

1.1. Functional Requirements

The Product Roadmap Builder must provide the following core functionalities:

  • Product Definition & Scope:

* Ability to define multiple products or product lines.

* High-level vision and mission statement input fields.

* Target audience and market segment definition.

  • Feature Management:

* Feature Input: Allow users to add new features with details (name, description, owner, status, category/theme).

* Feature Editing: Comprehensive editing capabilities for all feature attributes.

* Feature Grouping: Ability to group features by themes, epics, or strategic goals.

* Attachment Support: Link relevant documents, designs, or research to features.

  • Prioritization Engine:

* Multiple Prioritization Models: Support for various methodologies (e.g., RICE, MoSCoW, Value vs. Effort, WSJF, Custom Scoring).

* Interactive Prioritization Matrix: Drag-and-drop interface for visual prioritization.

* Weighted Scoring: Configurable weighting for different prioritization criteria.

* Dependency Mapping: Identify and visualize feature dependencies.

  • Milestone & Timeline Planning:

* Roadmap Views: Support for multiple roadmap views (e.g., Timeline/Gantt, Kanban, List, Quarterly).

* Milestone Definition: Ability to define key milestones, their dates, and associated features.

* Drag-and-Drop Scheduling: Intuitive interface for adjusting feature and milestone timelines.

* Progress Tracking: Visual indicators for feature/milestone progress (e.g., % complete).

  • Resource Allocation & Management:

* Resource Pool: Define available resources (teams, individuals, budget).

* Assignment: Assign resources to features or themes.

* Capacity Planning: Visualize resource utilization and identify bottlenecks.

* Budget Tracking: Associate cost estimates with features/themes and track against budget.

  • Risk Assessment & Mitigation:

* Risk Identification: Ability to log potential risks associated with features or the overall roadmap.

* Risk Categorization: Define risk types (technical, market, operational, etc.) and impact levels.

* Mitigation Planning: Document mitigation strategies and assign owners.

* Risk Monitoring: Track risk status and probability.

  • Stakeholder Communication & Collaboration:

* Customizable Views: Tailor roadmap views for different stakeholders (e.g., executive, engineering, sales).

* Shareable Links: Generate secure, shareable links with view-only or comment access.

* Comment System: In-app commenting on features, milestones, and the overall roadmap.

* Version History: Track changes and revisions to the roadmap.

* Export Options: Export roadmap data in various formats (PDF, CSV, image, presentation slides).

  • Reporting & Analytics:

* Dashboard: High-level overview of roadmap progress, key metrics, and risks.

* Custom Reports: Generate reports based on selected criteria (e.g., features by owner, progress by theme).

* Scenario Planning: Model different prioritization or resource allocation scenarios.

  • User Management & Permissions:

* Role-based access control (Admin, Editor, Viewer).

* Team management and collaboration spaces.

1.2. Non-Functional Requirements

  • Performance:

* Fast loading times for all pages and interactive elements.

* Smooth transitions and animations.

* Scalability to handle a large number of features, users, and roadmaps.

  • Security:

* Robust authentication (e.g., OAuth, SSO integration).

* Data encryption in transit and at rest.

* Role-based access control to ensure data privacy.

* Regular security audits and updates.

  • Usability:

* Intuitive user interface with minimal learning curve.

* Clear and consistent navigation.

* Contextual help and tooltips.

* Accessibility (WCAG 2.1 AA compliance).

  • Reliability:

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

* Robust error handling and informative error messages.

* Regular data backups and disaster recovery plan.

  • Maintainability:

* Modular and well-documented codebase.

* Easy to update and extend with new features.

  • Integrations (Future Considerations):

* Project Management Tools (Jira, Asana, Trello).

* Communication Platforms (Slack, Microsoft Teams).

* Design Tools (Figma, Sketch).

* Analytics Platforms (Google Analytics, Mixpanel).


2. Wireframe Descriptions

The following outlines key screens and their primary components. These descriptions serve as a blueprint for visual design.

2.1. Dashboard / Overview Screen

  • Layout: Two-column layout with a left-hand navigation bar and main content area.
  • Left Nav: Product selection dropdown, main menu items (Dashboard, Features, Prioritization, Timeline, Resources, Risks, Reports, Settings).
  • Main Content:

* Roadmap Snapshot: A configurable widget displaying key upcoming milestones, top 3-5 prioritized features, and overall progress.

* Feature Status Breakdown: Bar chart or pie chart showing features by status (e.g., Planned, In Progress, Completed, On Hold).

* Risk Summary: Card view of critical/high-impact risks with their mitigation status.

* Resource Utilization: High-level overview of team capacity.

* Recent Activity Feed: Log of recent changes, comments, and updates across the roadmap.

* Quick Actions: Buttons for "Add New Feature," "View Timeline," "Generate Report."

2.2. Feature Management Screen

  • Layout: Main content area with a table/list view of all features, and a right-hand sidebar for feature details/editing.
  • Feature List (Left):

* Filter and sort options (by owner, status, theme, priority, date).

* Search bar.

* Bulk actions (e.g., change status, assign owner).

* Table columns: Feature Name, Status, Owner, Theme/Category, Priority Score, Start Date, End Date.

* "Add New Feature" button.

  • Feature Detail Panel (Right Sidebar - opens on selection):

* Header: Feature Name, Status dropdown, Owner dropdown.

* Tabs: Overview, Details, Dependencies, Attachments, Comments, History.

* Overview Tab: Short Description, Strategic Goal, Target Audience, Key Metrics.

* Details Tab: Full Description (rich text editor), Priority Score (non-editable, derived from prioritization), Effort Estimate, Value Estimate, Start/End Dates, Tags.

* Dependencies Tab: List of dependent features and features this one depends on, with visual links.

* Attachments Tab: List of linked files with upload/download options.

* Comments Tab: Threaded comment section.

2.3. Prioritization Matrix Screen

  • Layout: Main content area dominated by an interactive matrix, with a configuration panel.
  • Configuration Panel (Top/Left):

* Prioritization Model Selector (e.g., RICE, MoSCoW, Custom).

* Criteria Weighting Sliders/Inputs (e.g., Reach, Impact, Confidence, Effort for RICE).

* Filters for features to include in the matrix.

  • Interactive Matrix (Main Area):

* X-axis: Represents one prioritization criterion (e.g., Effort).

* Y-axis: Represents another criterion (e.g., Value).

* Feature Cards: Each feature displayed as a movable card within the matrix, sized potentially by a third criterion (e.g., RICE 'Impact' or 'Confidence').

* Drag-and-Drop: Users can drag feature cards to visually adjust their position and thus their priority.

* Dynamic Scoring: As cards move, their underlying scores and overall priority ranking update in real-time.

* Legend: Explaining card colors (e.g., by theme) or sizes.

* Call to Action: "Apply Prioritization" button to save changes.

2.4. Timeline View Screen (Gantt Chart)

  • Layout: Left-hand feature list/hierarchy, right-hand interactive timeline.
  • Feature Tree (Left):

* Hierarchical list of themes and features.

* Expand/collapse functionality for themes/epics.

* Search and filter for features.

* Column for feature name, owner, status.

  • Gantt Chart (Right):

* Time Scale: Configurable (weeks, months, quarters, years).

* Feature Bars: Represent individual features, showing start date, end date, and progress percentage.

* Milestone Markers: Distinct visual markers for key milestones.

* Dependencies: Visual lines connecting dependent features.

* Drag-and-Resize: Users can drag feature bars to change dates and resize to adjust duration.

* Hover Details: Tooltips showing full feature details on hover.

* Zoom In/Out: Controls for adjusting the timeline granularity.

2.5. Stakeholder Communication / Export Screen

  • Layout: Main content area for preview, with a sidebar for configuration.
  • Configuration Sidebar:

* Audience Selector: Dropdown for predefined stakeholder groups (e.g., "Executive Summary," "Engineering View," "Sales Roadmap").

* View Type Selector: Choose roadmap view (e.g., Quarterly, Themes, List).

* Content Filters: Which features/themes to include/exclude.

* Display Options: Toggle visibility of specific details (e.g., "Show Effort Estimates," "Hide Risks").

* Branding Options: Logo upload, primary color selection (for PDF exports).

  • Preview Area (Main):

* Live preview of the generated roadmap based on current configurations.

* Ability to scroll through the entire document/view.

  • Action Buttons:

* "Generate Shareable Link" (with permission settings).

* "Export to PDF"

* "Export to CSV"

* "Export to Image"

* "Export to PowerPoint/Google Slides" (template-based).


3. Color Palettes

A professional, clean, and accessible color palette is crucial for a business-oriented tool.

3.1. Primary Palette

  • Primary Blue (#007BFF): A strong, trustworthy blue for primary buttons, active states, and key branding elements.
  • Dark Blue (#0056B3): A darker shade for hover states and deeper UI elements.
  • Light Blue (#E6F2FF): A very light blue for background accents, selected rows, or subtle highlights.

3.2. Secondary & Accent Palette

  • Secondary Green (#28A745): For success messages, positive indicators, and "Go" actions.
  • Warning Orange (#FFC107): For warnings, moderate risks, or attention-grabbing elements.
  • Danger Red (#DC3545): For error messages, critical risks, or destructive actions.
  • Information Teal (#17A2B8): For informational messages or secondary accent elements.

3.3. Neutral Palette

  • Dark Grey (#343A40): For primary text, headings, and strong UI elements.
  • Medium Grey (#6C757D): For secondary text, disabled states, and borders.
  • Light Grey (#F8F9FA): For page backgrounds, card backgrounds, and subtle dividers.
  • White (#FFFFFF): For main content areas, cards, and text on dark backgrounds.

3.4. Accessibility Considerations

  • Ensure sufficient contrast ratios (WCAG 2.1 AA compliant) for all text and interactive elements against their backgrounds.
  • Use color primarily for emphasis and status, but always pair it with icons, text labels, or patterns to convey meaning for users with color vision deficiencies.

4. UX Recommendations

4.1. Intuitive Navigation & Information Architecture

  • Clear Global Navigation: A persistent, well-organized left-hand navigation bar for core modules.
  • Breadcrumbs: For complex workflows or nested pages, provide breadcrumbs to show the user's location.
  • Consistent Layouts: Maintain consistent placement of common elements (e.g., search bars, filter options, action buttons) across different screens.
  • Progressive Disclosure: Show only essential information initially, allowing users to drill down for more details as needed (e.g., feature detail panel opening on click).

4.2. Interactive & Engaging Data Visualization

  • Drag-and-Drop: Implement drag-and-drop functionality for prioritization, timeline adjustments, and reordering lists.
  • Real-time Feedback: Provide immediate visual feedback for user actions (e.g., item moving, status changing, score updating).
  • Filtering & Sorting: Robust and easily accessible filtering, sorting, and search capabilities across all lists and tables.
  • Interactive Charts: Use interactive charts (e.g., hover-to-reveal details, clickable segments) for dashboards and reports.

4.3. Collaboration & Communication

  • In-App Comments: Integrate a robust commenting system with mentions (@user) and notifications.
  • Activity Feeds: Provide a central activity feed to keep teams updated on changes and discussions.
  • Shareable Views: Easy generation of read-only or customizable shared views for stakeholders.
  • Version Control: Clearly indicate when changes were made, by whom, and provide the ability to revert to previous versions.

4.4. User Control & Flexibility

  • Customizable Dashboards: Allow users to personalize their dashboard with relevant widgets.
  • Configurable Views: Enable users to switch between different roadmap views (e.g., timeline, Kanban, list) and customize columns or displayed details.
  • Undo/Redo: Implement undo/redo functionality for critical actions (e.g., feature deletion, timeline changes).
  • Keyboard Shortcuts: Offer keyboard shortcuts for power users to expedite common tasks.

4.5. Onboarding & Help

  • Guided Onboarding Tour: A short, interactive tour for first-time users highlighting key features.
  • Contextual Tooltips: Provide helpful tooltips on hover for complex UI elements or data points.
  • Knowledge Base Integration: Link to a comprehensive help center or documentation within the application.
  • Empty States: Design informative and actionable empty states for new users or sections with no data yet.

4.6. Responsiveness & Performance

  • Responsive Design: Ensure the application is fully responsive and usable across various screen sizes (desktop, tablet, potentially mobile for viewing).
  • Performance Optimization: Prioritize fast loading times and smooth interactions to
gemini Output

As a deliverable for the "Product Roadmap Builder" workflow, this document provides detailed design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations. The aim is to create an intuitive, powerful, and visually appealing tool that empowers product teams to strategically plan, prioritize, and communicate their product vision effectively.


Detailed Design Specifications

The Product Roadmap Builder will be a web-based application designed for optimal use on desktop environments, offering a rich interactive experience.

1. Overall Application Structure

  • Header Bar:

* Application Logo and Name.

* Global Search functionality.

* Notification Center (alerts, updates, mentions).

* User Profile (settings, logout, help).

* "Create New" button (Roadmap, Feature, Initiative).

  • Left Navigation Sidebar:

* Dashboard: Overview of all roadmaps, key metrics.

* My Roadmaps: List of all roadmaps the user has access to.

* All Features/Initiatives: Centralized repository of all product items.

* Resources: Management of teams, individuals, and budgets.

* Reports: Pre-built and custom reporting.

* Settings: Application-level and user-specific configurations.

  • Main Content Area: Dynamic area displaying the selected view (roadmap, feature details, dashboard, etc.).
  • Contextual Right Sidebar/Modal (Optional): For quick edits, detailed views of selected items without leaving the main context.

2. Key Component Specifications

2.1. Dashboard View

  • Purpose: Provide a high-level overview of product portfolio health and upcoming activities.
  • Components:

* Roadmap Summaries: Cards for each active roadmap, showing status, progress, and upcoming milestones.

* Upcoming Milestones: Chronological list of critical deadlines across all roadmaps.

* Recent Activity Feed: Log of changes, comments, and updates.

* Prioritization Insights: Quick stats on backlog size, average priority scores.

* Resource Utilization Snapshot: High-level view of team capacity.

2.2. Main Roadmap View

  • Purpose: Visualize the product roadmap over time, allowing for interactive planning and management.
  • Components:

* Timeline Header: Configurable timeframes (weeks, months, quarters, years). Horizontal scroll.

* Swimlanes: Configurable grouping of features/initiatives by Product, Team, Theme, or Initiative.

* Feature Cards: Represent individual features or epics.

* Key Info: Title, owner, status indicator, start/end dates, priority icon.

* Interactivity: Drag-and-drop to reschedule or move between swimlanes. Click to open detail panel/modal.

* Visual Cues: Color-coding for status, priority, or product. Overdue indicators.

* Milestone Markers: Distinct visual markers on the timeline for key milestones.

* Filter/Sort/Search Bar: Filter by Product, Team, Status, Priority, Owner, Tags. Sort by Start Date, Priority, etc.

* View Options: Toggle between different roadmap layouts (e.g., Gantt-like, Now/Next/Later, Kanban-style).

* Add New Button: Contextual "Add Feature" or "Add Initiative" button.

2.3. Feature/Initiative Detail Panel/Modal

  • Purpose: Comprehensive input and display for all attributes of a feature or initiative.
  • Sections:

* Overview: Title, Description (rich text editor), Status (dropdown), Owner (user picker), Priority (dropdown/scoring).

* Timeline: Start Date, End Date (date pickers), Duration.

* Strategic Alignment: Product (dropdown), Theme (dropdown), Parent Initiative (search/picker).

* Value & Effort: Estimated Value (numeric input), Estimated Effort (numeric input/size selector).

* Dependencies: Linked Features/Initiatives (search/picker).

* Resources: Assigned Teams/Individuals (multi-select picker), Budget (numeric input).

* Risks: Link to existing risks or add new ones (mini-form for title, description, mitigation).

* Milestones: Link to existing milestones or create new ones.

* Attachments: File upload for documents, designs, etc.

* Comments/Activity Log: For collaboration and tracking changes.

  • Actions: Save, Cancel, Delete, Share.

2.4. Prioritization Engine

  • Purpose: Facilitate objective prioritization of features/initiatives using various methodologies.
  • Components:

* Prioritization Model Selector: Dropdown to choose RICE, WSJF, MoSCoW, Custom Score, etc.

* Feature List Table:

* Columns: Feature Name, Product, Owner, and inputs for selected model (e.g., Reach, Impact, Confidence, Effort for RICE).

* Calculated Score column.

* Sortable by score.

* Visualization: Optional scatter plot or bubble chart showing features by value vs. effort.

* Batch Editing: Ability to update multiple features' priority scores simultaneously.

2.5. Resource Allocation View

  • Purpose: Manage and visualize resource assignments across the roadmap.
  • Components:

* Resource List: List of teams or individuals with their capacity.

* Assignment Grid/Gantt: Visual representation of features assigned to each resource over time, showing utilization.

* Capacity Indicators: Visual cues for under/over-allocated resources.

* Drag-and-Drop: Reassign features to different resources.

2.6. Reporting & Analytics

  • Purpose: Generate insights into roadmap progress, performance, and resource utilization.
  • Components:

* Pre-built Reports:

* Roadmap Progress (actual vs. planned).

* Feature Velocity.

* Resource Utilization.

* Risk Summary.

* Prioritization Breakdown.

* Custom Report Builder: Drag-and-drop interface for selecting data points, filters, and chart types.

* Export Options: PDF, CSV, Image.

3. Data Inputs and Outputs

  • Inputs: Feature details (name, description, dates, owner, status, priority attributes, dependencies, resources, risks, themes, products, attachments, comments). Roadmap configurations (name, description, stakeholders). User and team data.
  • Outputs: Visual roadmap (interactive and static exports), prioritized feature lists, progress reports, resource utilization charts, risk registers, stakeholder communication plans, API for integrations.

Wireframe Descriptions

Below are detailed descriptions for key wireframes, outlining their layout and interactive elements.

1. Wireframe: Dashboard Overview

  • Layout: Three-column grid layout below the header bar. Left navigation sidebar present.
  • Column 1 (Left):

* "My Roadmaps" Card:

* Header: "My Roadmaps" with a "View All" link.

* Content: List of 3-4 most active/recently viewed roadmaps. Each item shows roadmap name, primary status indicator (e.g., "On Track", "At Risk"), and a small progress bar.

  • Column 2 (Middle):

* "Upcoming Milestones" Card:

* Header: "Upcoming Milestones" with a "View All" link.

* Content: Chronological list of 3-5 nearest milestones across all roadmaps. Each item includes milestone name, associated roadmap, and due date. Overdue milestones highlighted.

* "Prioritization Insights" Card:

* Header: "Prioritization Insights".

* Content: Small donut chart showing backlog status (e.g., "High Priority", "Medium", "Low"). Key metrics like "Total Backlog Items" and "Average Priority Score".

  • Column 3 (Right):

* "Recent Activity" Card:

* Header: "Recent Activity" with "View All" link.

* Content: Feed of the 5-7 most recent activities (e.g., "John Doe updated 'Login Flow' feature", "Jane Smith added comment to 'Mobile App v2' roadmap"). Includes timestamp and user avatar.

  • Interactivity: All cards and list items are clickable, leading to the respective roadmap, feature detail, or full list view.

2. Wireframe: Main Roadmap View (Timeline)

  • Layout: Full width main content area. Left navigation sidebar present.
  • Top Bar (below Header):

* Roadmap Title (e.g., "Q3 2024 Product Roadmap - Core Product").

* Timeline Controls: Dropdown for "Quarterly", "Monthly", "Weekly" view. Left/Right arrows for navigating time. "Today" button.

* View Options: Buttons for "Timeline", "Now/Next/Later", "Kanban".

* Filters: Dropdowns for "Product", "Team", "Status", "Owner", "Tags". Search bar.

* Actions: "Export" button (PDF, CSV, Image), "Share" button, "Add Feature" button.

  • Main Content Area (Timeline Grid):

* Horizontal Axis: Represents time (e.g., Q3 2024 broken into months: July, Aug, Sept). Vertical lines delineate weeks/months.

* Vertical Axis: Represents Swimlanes (e.g., "Product A", "Product B", "Platform"). Each swimlane has a header.

* Feature Cards: Rectangular cards positioned within swimlanes and across the timeline.

* Content: Feature title, owner avatar, small status icon (e.g., green check, yellow warning).

* Appearance: Color-coded based on Product/Theme. Length of card indicates duration.

* Interactivity:

* Drag-and-drop horizontally to change dates.

* Drag-and-drop vertically between swimlanes to reassign.

* Click to open "Feature Detail Modal".

* Hover for tooltip with more info (full description, dependencies).

* Milestone Markers: Diamond or flag icons on the timeline, with a label (e.g., "Alpha Release").

  • Scrollbars: Horizontal scroll for the timeline. Vertical scroll for many swimlanes/features.

3. Wireframe: Feature Detail Modal

  • Layout: A large modal window overlaying the main roadmap view, centered.
  • Header: Feature Title (editable text field). Close "X" button.
  • Left Column (Main Details):

* Description: Rich text editor (bold, italics, lists, links).

* Status: Dropdown (Planned, In Progress, Complete, On Hold, At Risk).

* Priority: Dropdown (High, Medium, Low) or numerical score input.

* Owner: User multi-select dropdown.

* Product: Dropdown.

* Theme/Initiative: Dropdown/search.

* Start Date / End Date: Date pickers.

* Estimated Value / Effort: Numeric inputs or predefined scale (e.g., T-shirt sizes).

* Dependencies: Multi-select search for linking other features.

  • Right Column (Related Information):

* Assigned Resources: List of assigned teams/individuals. Add/remove buttons.

* Risks: List of associated risks (title, status). Add new risk button.

* Milestones: List of linked milestones. Add new milestone button.

* Attachments: List of attached files. Upload button.

* Tags: Multi-select tag input.

  • Bottom Section:

* Comments: Input field for new comments, followed by a chronological list of existing comments with user avatars and timestamps.

* Activity Log: Read-only feed of changes made to the feature.

  • Footer: "Save" button, "Cancel" button, "Delete Feature" button.

4. Wireframe: Prioritization Matrix

  • Layout: Full width main content area. Left navigation sidebar present.
  • Top Bar (below Header):

* Title: "Prioritization Workbench".

*Model Selector

gemini Output

Finalized Design Assets: Product Roadmap Builder

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "Product Roadmap Builder" application. The goal is to create a professional, intuitive, and highly functional tool that empowers product teams to strategically plan, prioritize, and communicate their roadmap effectively.


1. Overall Design Philosophy & Principles

The design of the Product Roadmap Builder prioritizes clarity, efficiency, and strategic insight.

  • Clarity & Simplicity: Complex information is presented in an easily digestible format, avoiding clutter and visual noise.
  • Intuitive Interaction: Users can navigate, create, and manage roadmaps with minimal learning curve.
  • Strategic Focus: The design emphasizes tools for prioritization, resource allocation, and risk management, fostering strategic decision-making.
  • Professional & Modern: A clean aesthetic with a focus on data visualization and a modern UI/UX ensures a professional user experience.
  • Collaborative: Features support team collaboration and communication.
  • Scalable & Flexible: The design accommodates various roadmap types (timeline, kanban, list) and scales for different organizational sizes and complexities.

2. Detailed Design Specifications

2.1. Typography

  • Primary Font Family: Inter (or similar modern sans-serif like Lato, Open Sans)

* Purpose: Excellent readability across various screen sizes and information densities.

  • Headings (H1, H2, H3):

* H1 (Page Title): 28px, Semi-Bold (e.g., "Product Roadmap: Q3 2024")

* H2 (Section Title): 22px, Medium (e.g., "Prioritization Matrix")

* H3 (Sub-section Title): 18px, Medium (e.g., "Feature Details")

  • Body Text:

* Paragraphs: 15px, Regular

* Labels/Small Text: 13px, Regular

  • Data & Numbers:

* Large Metrics: 32px, Semi-Bold (e.g., "Total Features: 120")

* Table Data: 14px, Regular

  • Monospace Font (Optional, for code/technical notes): SF Mono or Roboto Mono

2.2. Iconography

  • Style: Line-based, consistent stroke weight, modern and minimalist.
  • Library: Feather Icons, Font Awesome Pro (or custom set).
  • Sizes:

* Small: 16px (e.g., inline actions, status indicators)

* Medium: 20px (e.g., navigation icons, button icons)

* Large: 24px (e.g., prominent actions, empty state illustrations)

  • Usage: Used to enhance navigation, denote actions, represent categories, and improve scanability.

2.3. Layout & Grid System

  • Responsive Grid: Based on a 12-column grid system (e.g., Bootstrap, Material Design), ensuring optimal display on desktops, laptops, and tablets.
  • Spacing:

* Base Unit: 8px

* Small Gaps: 8px, 16px (e.g., between form fields, list items)

* Medium Gaps: 24px, 32px (e.g., between sections, card elements)

* Large Gaps: 48px, 64px (e.g., page margins, major section breaks)

  • Alignment: Left-aligned text for readability; center-aligned for primary call-to-actions (CTAs) in specific contexts (e.g., empty states).
  • Max Width: Content area constrained to 1440px to prevent overwhelming wide displays, with sidebars and navigation taking up additional space.

2.4. Component States

  • Buttons:

* Primary: Solid background, white text.

* Secondary: Bordered, transparent background, primary text color.

* Tertiary/Ghost: Transparent background, primary text color (for less prominent actions).

* Hover: Slight background darkening/lightening, subtle shadow.

* Active: Deeper background, subtle inner shadow.

* Disabled: Lighter background/text opacity, cursor: not-allowed.

  • Input Fields:

* Default: Light grey border, white background.

* Focus: Primary color border, subtle shadow.

* Error: Red border, optional error message below.

* Disabled: Light grey background, dashed border.

  • Cards:

* Default: White background, subtle grey border, rounded corners (4-8px).

* Hover: Slight elevation (subtle shadow), border highlight (optional).

  • Tables:

* Header: Slightly darker background, bold text.

* Rows: Alternating light background for readability (zebra striping).

* Hover: Row highlight.

  • Modals/Drawers:

* Overlay: Semi-transparent dark overlay.

* Modal: Centered, white background, rounded corners, drop shadow.

* Drawer: Slides in from side (right), white background, drop shadow.

2.5. Data Visualization

  • Charts: Bar charts, line charts, pie/donut charts, heatmaps for progress, resource allocation, risk matrices.
  • Color Usage: Consistent use of semantic colors and a pre-defined palette for data series.
  • Labels & Tooltips: Clear labels, interactive tooltips on hover to reveal detailed data points.
  • Progress Indicators: Linear progress bars, circular progress rings.

3. Wireframe Descriptions (Key Screens)

3.1. Dashboard/Overview Screen

  • Header:

* Logo: Top-left.

* Global Navigation: "Dashboard", "Roadmaps", "Prioritization", "Resources", "Reports", "Settings" (icons + text).

* User Profile: Avatar, dropdown for account settings, logout.

* Quick Add Button: + icon for new feature, roadmap, etc.

  • Main Content: Divided into actionable widgets.

* "My Active Roadmaps" Card: List of currently active roadmaps with progress bars, key dates, and direct links.

* "Upcoming Milestones" Card: Chronological list of next 3-5 milestones across all roadmaps, with dates and associated features.

* "Prioritization Scoreboard" Card: Top 5 highest-priority features (e.g., RICE score) awaiting development, with quick links.

* "Resource Utilization Summary" Card: High-level donut chart or bar chart showing overall team capacity vs. allocated work.

* "Key Risks" Card: List of top 3-5 critical risks, their status, and owners.

* "Recent Activity Feed" Card: Chronological list of recent updates (feature added, status changed, comment).

3.2. Roadmap Editor/View (Timeline/Gantt)

  • Header: (Same as Dashboard)
  • Sub-Header:

* Roadmap Selector: Dropdown to switch between roadmaps.

* View Selector: Tabs for "Timeline", "Kanban", "List".

* Filters: "Team", "Product Line", "Owner", "Status", "Timeframe" (e.g., Q3 2024, Next 6 Months).

* Actions: "Add Feature", "Export", "Share".

* Search Bar: Global search within the current roadmap.

  • Main Content Area:

* Left Pane (Optional): Collapsible list of initiatives/epics or teams, acting as swimlane headers.

* Timeline Axis: Horizontal axis displaying quarters, months, or weeks.

* Roadmap Items:

* Represented as draggable, resizable blocks along the timeline.

* Each block shows: Feature Name, Owner (avatar), Status (color-coded tag), Progress Bar.

* Dependencies indicated by connecting lines/arrows.

* Milestones marked as distinct points on the timeline.

* Click Action: Clicking a roadmap item opens a "Feature Details" drawer/modal on the right.

3.3. Feature Details Drawer/Modal

  • Header:

* Feature Name: Editable title.

* Status Tag: Dropdown for quick status change.

* Actions: "Save", "Cancel", "Delete", "Duplicate".

* Close Button: X icon.

  • Content Sections:

* Overview: Description (rich text editor), Owner (user select), Team (multi-select), Priority (dropdown/slider), Start Date, End Date, Due Date.

* Milestones: List of associated milestones with dates and completion status.

* Dependencies: List of "blocked by" and "blocks" features, with links.

* Resources: Allocated resources (e.g., engineers, designers), estimated effort (points/hours).

* Risks: List of linked risks, their severity, and mitigation plan.

* Attachments: File upload/list (docs, designs, specs).

* Comments & Activity: Chronological feed of comments, mentions, and system activity logs.

  • Progress Bar: Visual indicator of completion (e.g., based on sub-tasks or manual input).

3.4. Prioritization Matrix (e.g., Value vs. Effort)

  • Header: (Same as Roadmap View)

* Matrix Type Selector: "Value vs. Effort", "RICE Score", "MoSCoW", "Custom".

* Actions: "Add Feature to Prioritize", "Auto-sort".

  • Main Content:

* Matrix Grid: A 2x2 or 3x3 grid (e.g., High Value/Low Effort, Low Value/High Effort).

* Feature Cards: Draggable cards representing features, dropped into appropriate quadrants. Each card shows: Feature Name, Quick Info (e.g., owner, rough estimate).

* Unprioritized Features List: A sidebar or separate panel containing features yet to be placed on the matrix, allowing drag-and-drop onto the grid.

* Dynamic Scoring (RICE): If RICE, inputs for Reach, Impact, Confidence, Effort, with calculated score displayed.


4. Color Palette

The palette is designed for clarity, professionalism, and effective data communication.

  • Primary Brand Color:

* #007AFF (Blue) - A vibrant, trustworthy blue. Used for primary CTAs, active states, key highlights, and brand elements.

  • Secondary Accent Color:

* #34C759 (Green) - A fresh, positive green. Used for success indicators, "add" actions, completion.

  • Neutral Palette:

* #FFFFFF (White) - Backgrounds, primary card colors.

* #F8F8F8 (Light Grey) - Secondary backgrounds, alternating table rows, subtle dividers.

* #E0E0E0 (Border Grey) - Borders, separators.

* #C2C2C2 (Placeholder Grey) - Placeholder text, disabled elements.

* #8E8E93 (Medium Grey) - Secondary text, icons.

* #333333 (Dark Grey) - Primary text, headings.

  • Semantic Colors:

* Success: #34C759 (Same as Secondary Accent)

* Warning: #FFCC00 (Yellow)

* Error: #FF3B30 (Red)

* Info: #007AFF (Same as Primary Brand)

  • Data Visualization Palette (Example - for charts, status tags):

* #007AFF (Blue - High Priority/Initiative 1)

* #5AC8FA (Light Blue - Medium Priority/Initiative 2)

* #FF9500 (Orange - Low Priority/Initiative 3)

* #AF52DE (Purple - Initiative 4)

* #FF2D55 (Pink - Initiative 5)

* #5856D6 (Indigo - Initiative 6)


5. User Experience (UX) Recommendations

5.1. Information Hierarchy & Visual Cues

  • Clear Headings: Use distinct typography for headings and subheadings to break up content.
  • Color-Coding: Consistently use colors for status, priority, and risk levels across the application (e.g., red for high risk, green for complete).
  • Visual Grouping: Use cards, panels, and ample whitespace to visually group related information.
  • Progress Indicators: Implement progress bars for features and roadmaps to give immediate visual feedback on status.

5.2. Navigation & Accessibility

  • Global Navigation: Persistent, clear, and icon-supported main navigation.
  • Contextual Navigation: Breadcrumbs for deep dives, tabs for different views within a section.
product_roadmap_builder.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);}});}