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

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

Product Roadmap Builder: Research & Design Requirements

This document outlines the comprehensive research findings and detailed design specifications for the "Product Roadmap Builder." The goal is to create an intuitive, powerful, and collaborative platform that empowers product teams to strategically plan, prioritize, and communicate their product vision effectively.


1. Introduction & Overview

This deliverable summarizes the initial research into core functionalities required for a robust Product Roadmap Builder and translates those insights into actionable design specifications. It covers user interface (UI) and user experience (UX) recommendations, conceptual wireframe descriptions, and a proposed visual design language, including color palettes and typography. This document serves as the foundational blueprint for the development phase.


2. Core Functionality Requirements (Research-Based)

Based on industry best practices, competitive analysis, and anticipated user needs, the following core functionalities are deemed essential for the Product Roadmap Builder:

  • Feature & Initiative Management:

* Creation, editing, and deletion of features, epics, or initiatives.

* Detailed information fields: Name, description, owner, status, priority, estimated effort, target release.

* Ability to group features under larger themes or strategic goals.

  • Prioritization Frameworks:

* Support for multiple prioritization methods (e.g., RICE, MoSCoW, Weighted Scoring, Value vs. Effort matrix).

* Customizable scoring criteria and weights.

* Visual prioritization tools (e.g., drag-and-drop, matrix views).

  • Timeline & Visualization:

* Multiple roadmap views: Quarterly, Monthly, Now/Next/Later, Kanban, Gantt-like timeline.

* Drag-and-drop functionality for reordering and rescheduling.

* Filtering and sorting capabilities (by owner, status, theme, priority).

  • Resource & Dependency Management:

* Assignment of team members/resources to features.

* Tracking resource capacity and allocation.

* Identification and visualization of feature dependencies.

* Alerts for potential resource conflicts or broken dependencies.

  • Milestone & Release Planning:

* Definition of key milestones and release dates.

* Association of features with specific releases.

* Roll-up views of features per release.

  • Risk Assessment & Tracking:

* Ability to identify, categorize, and track risks associated with features or releases.

* Mitigation planning and ownership assignment for risks.

* Visual indicators for high-risk items.

  • Stakeholder Communication & Collaboration:

* Shareable, read-only roadmap links.

* Export options (PDF, CSV, image).

* Commenting functionality on features or initiatives.

* Version history and audit logs.

* Customizable views for different audiences (e.g., executive summary, detailed team view).

  • Integration Capabilities:

* API for integration with project management tools (e.g., Jira, Asana, Trello) and analytics platforms.

  • User & Role Management:

* Admin, Editor, Viewer roles with granular permissions.


3. Design Principles & Goals

The design of the Product Roadmap Builder will adhere to the following core principles:

  • Clarity & Simplicity: Information should be easy to digest, and the interface should be free from clutter.
  • Flexibility & Customization: Users should be able to tailor views, prioritization methods, and data fields to their specific needs.
  • Actionability: The tool should enable users to make informed decisions and take immediate action.
  • Collaboration: Facilitate seamless teamwork and communication around the roadmap.
  • Scalability: The design should accommodate growing teams, projects, and complexity without sacrificing performance or usability.
  • Visual Engagement: Present data in an appealing and understandable manner to enhance communication.

4. Detailed Design Specifications

4.1. Dashboard / Overview Page

  • Purpose: Provide a high-level summary of all active roadmaps, key metrics, and quick access to recent activity.
  • Layout:

* Left Sidebar: Global navigation (Home, My Roadmaps, Templates, Settings, Help).

* Top Header: Search bar, Notifications, User Profile/Account.

* Main Content Area:

* "My Active Roadmaps" Section: Card-based display for each roadmap with key info (Name, Owner, Last Updated, Progress Bar). Quick actions (View, Edit, Share).

* "Upcoming Milestones" Widget: List of critical upcoming dates across all roadmaps.

* "Recent Activity" Feed: Chronicle of changes, comments, and updates across subscribed roadmaps.

* "Quick Start" Section: Buttons for "Create New Roadmap," "Import Roadmap."

  • Interactivity: Cards should be clickable to navigate to the specific roadmap. Widgets should be customizable/collapsible.

4.2. Roadmap View Page (Main Interface)

  • Purpose: The central hub for viewing, editing, and managing a specific product roadmap.
  • Layout:

* Top Header (Contextual): Roadmap Name, Owner, Status, Share button, Export button, Settings button.

* Secondary Navigation/View Selector: Tabs/buttons for different roadmap views (e.g., Timeline, Kanban, List, Prioritization Matrix, Now/Next/Later).

* Filtering & Sorting Bar: Dropdowns/tags for filtering by Theme, Owner, Status, Priority, Release. Search bar specific to the roadmap.

* Main Content Area: Dynamically changes based on the selected view.

* Timeline View (Gantt-like): Horizontal timeline with features/epics represented as bars, showing start/end dates. Milestones indicated by markers. Dependencies shown with connecting lines.

* Kanban View: Columns representing stages (e.g., Backlog, In Progress, Review, Done) or timeframes (Now, Next, Later). Features as cards within columns, drag-and-droppable.

* List View: Tabular display of all features with sortable columns (Name, Priority, Status, Owner, Release, etc.). Bulk edit options.

* Prioritization Matrix View: 2x2 or 3x3 matrix (e.g., Value vs. Effort) where features are plotted as draggable points.

  • Feature Card/Item Details (Overlay/Sidebar):

* When a feature is clicked, a detailed sidebar or modal should appear.

* Fields: Name, Description (rich text editor), Owner, Status (dropdown), Priority (dropdown/slider), Theme (tag selector), Release/Milestone (dropdown), Estimated Effort, Dependencies (multi-select), Risks (add/view), Comments section, Activity Log.

* Attachments, Links.

4.3. Prioritization Module

  • Purpose: Guide users through structured feature prioritization.
  • Layout:

* Method Selection: Dropdown to choose prioritization framework (RICE, MoSCoW, Custom).

* Scoring Interface:

* For RICE: Input fields for Reach, Impact, Confidence, Effort. Auto-calculate RICE score.

* For MoSCoW: Drag features into "Must Have," "Should Have," "Could Have," "Won't Have" swimlanes.

* Custom: Configurable criteria with sliders or input fields.

* Visualization: Real-time update of features on a matrix or ordered list based on scores.

  • Interactivity: Drag-and-drop for MoSCoW. Sliders for RICE/custom scoring. Visual feedback on changes.

4.4. Resource & Dependency Management Module

  • Purpose: Visualize and manage team capacity, allocations, and inter-feature dependencies.
  • Layout:

* Resource List: List of team members with their assigned features and estimated capacity utilization (e.g., a progress bar).

* Dependency Graph/List: Visual representation (node-based graph or simple list) of feature dependencies. Highlight critical paths or broken dependencies.

* Allocation View: Calendar or timeline view showing resource assignments over time.

  • Interactivity: Drag-and-drop to assign features to resources. Click nodes to view dependency details. Warnings for over-allocated resources.

4.5. Settings & Administration

  • Purpose: Configure roadmap-specific and global settings.
  • Layout: Tabbed interface for:

* General Settings: Roadmap name, description, archiving.

* Custom Fields: Define custom data fields for features.

* Prioritization Settings: Configure custom prioritization criteria.

* Team & Permissions: Invite users, assign roles (Admin, Editor, Viewer).

* Integrations: Connect to external tools.

* Templates: Create/manage roadmap templates.


5. Wireframe Descriptions (Conceptual)

5.1. Dashboard Wireframe

  • Header: Logo (top-left), Search bar (center), Notifications icon, User Avatar (top-right).
  • Left Nav: Vertical list: Home, My Roadmaps, Templates, Settings, Help.
  • Main Content:

* H2: My Active Roadmaps

* Grid of Roadmap Card components (Image/Icon, Roadmap Title, Progress Bar, Last Updated, 3-dot menu for actions).

* H2: Upcoming Milestones

* List Item: Date - Milestone Name (Roadmap Link)

* H2: Recent Activity

* Activity Feed Item: User Name updated Feature X in Roadmap Y (Timestamp)

* Button: + Create New Roadmap

5.2. Roadmap View Wireframe (Timeline View)

  • Header: Roadmap Name (H1, top-left), Share Button, Export Button, Settings Icon (top-right).
  • View Selector: Horizontal tabs: Timeline, Kanban, List, Prioritization.
  • Filter Bar: Dropdown: Theme, Dropdown: Owner, Dropdown: Status, Search Input.
  • Main Content (Timeline):

* Left Panel: List of Feature Titles with Theme Tags.

* Right Panel: Horizontal Scrollable Timeline (Months/Quarters).

* Feature Bar (different colors for status) stretching across dates.

* Milestone Marker (diamond icon) on specific dates.

* Dependency Line connecting feature bars.

  • Right Sidebar (Feature Details - on click):

* Feature Title (H3), Status Tag, Owner Avatar/Name.

* Section: Description (text area).

* Section: Priority (dropdown).

* Section: Release (dropdown).

* Section: Effort (input).

* Section: Dependencies (list with links).

* Section: Risks (list with links).

* Section: Comments (input, list of comments).

* Button: Save, Button: Delete.

5.3. Prioritization Matrix Wireframe

  • Header: Roadmap Name, Share, Export, Settings.
  • View Selector: Timeline, Kanban, List, Prioritization (selected).
  • Filter Bar: Theme, Owner, Status, Search.
  • Main Content:

* Top Left: Dropdown: Prioritization Method (e.g., RICE, Value vs. Effort)

* Main Grid: Large 2x2 or 3x3 matrix.

* X-axis Label (Effort or Cost).

* Y-axis Label (Value or Impact).

* Feature Dots/Circles scattered within the grid, draggable.

* Hovering over a dot shows Feature Name tooltip.

* Right Sidebar (Feature Scoring):

* Feature Title (H3).

* Input Field: Reach, Input Field: Impact, Input Field: Confidence, Input Field: Effort.

* Calculated Score: RICE Score.

* Button: Apply Changes.

* Bottom Section: List of Unprioritized Features (draggable into the matrix or sidebar).


6. Color Palette

The chosen color palette aims for a professional, modern, and clean aesthetic, prioritizing readability and clarity while using color to convey status and hierarchy.

  • Primary Brand Color: #007BFF (Vibrant Blue) - Used for primary CTAs, active states, key highlights.
  • Secondary Accent Color: #28A745 (Success Green) - Used for positive actions, "Done" status, success messages.
  • Neutral Palette:

* Backgrounds: #F8F9FA (Light Gray) - Primary background for content areas.

* Card/Container Backgrounds: #FFFFFF (White) - For cards, modals, and distinct content blocks.

* Borders/Dividers: #E9ECEF (Lighter Gray) - Subtle separation.

* Text (Primary): #343A40 (Dark Gray) - Main body text, headings.

* Text (Secondary/Muted): #6C757D (Medium Gray) - Labels, secondary information, disabled states.

  • Semantic Colors:

* Warning: #FFC107 (Amber) - For warnings, "In Progress" status.

* Error: #DC3545 (Red) - For errors, "Blocked" status, destructive actions.

* Info: #17A2B8 (Cyan) - For informational messages, "Review" status.

  • Chart/Visualization Colors: A set of 5-7 distinct, accessible colors will be defined for data visualization (e.g., #007BFF, #28A745, #FFC107, #17A2B8, #6F42C1, #FD7E14, `#E
gemini Output

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 a professional, intuitive, and highly functional application that empowers product teams to strategically plan, prioritize, and communicate their product vision effectively.


Detailed Design Specifications

The Product Roadmap Builder will feature a modern, clean, and highly functional design aesthetic focused on clarity, data visualization, and user efficiency.

1. Overall Aesthetic & Brand Identity

  • Look & Feel: Professional, modern, clean, and intuitive. Emphasize clarity and focus over visual clutter.
  • Visual Hierarchy: Strong use of typography, spacing, and color to guide the user's eye and indicate importance.
  • Responsiveness: Fully responsive design, adapting seamlessly across desktop, tablet, and mobile breakpoints to ensure accessibility from any device.
  • Information Density: Optimized to display essential information without overwhelming the user, with options for detail expansion.
  • Accessibility: Adherence to WCAG 2.1 AA standards, ensuring usability for a broad audience, including those with disabilities.

2. Core UI Components & Interactions

  • Navigation:

* Primary Navigation (Left Sidebar): Collapsible, persistent navigation for main modules (e.g., Dashboard, Roadmaps, Features, Resources, Reports, Settings). Icons with text labels.

* Secondary Navigation (Contextual Tabs/Filters): Within modules, for switching between views (e.g., Timeline, Kanban, List) or applying filters.

  • Data Display:

* Cards & Tiles: Used for displaying features, initiatives, or team members in a digestible format.

* Tables: For list views, with sortable columns, pagination, and inline editing capabilities.

* Timelines/Gantt Charts: Interactive, drag-and-drop elements for adjusting feature durations and dependencies.

* Kanban Boards: Drag-and-drop functionality for status changes, swimlanes for teams or themes.

  • Forms & Inputs:

* Consistent Input Fields: Standardized text fields, dropdowns, date pickers, multi-selects.

* Smart Defaults: Pre-populate fields where possible to reduce user effort.

* Validation: Real-time feedback on input validity.

  • Interactive Elements:

* Drag-and-Drop: For reordering, reprioritizing features, and adjusting timelines.

* Tooltips: Provide contextual help and information on hover.

* Modals & Side Panels: For creating/editing items (features, milestones) without navigating away from the main view.

* Notifications: In-app notifications for updates, mentions, and critical alerts.

  • Data Visualization:

* Charts & Graphs: For progress tracking, resource utilization, risk levels (e.g., bar charts, pie charts, line graphs).

* Color-Coding: Consistent use of color for status, priority, teams, or themes across all views.

3. Key Feature-Specific Design Considerations

  • Roadmap Views:

* Timeline View: Horizontal scrollable timeline, adjustable zoom levels (quarterly, monthly, weekly). Features displayed as bars with clear start/end dates, dependencies indicated by lines/arrows.

* Kanban View: Columns for status (e.g., Backlog, In Progress, Review, Done). Cards for features/epics, drag-and-drop between columns.

* List View: Sortable and filterable table of all features, with key attributes visible.

  • Feature Prioritization:

* Matrix View: Visual matrix (e.g., Value vs. Effort, RICE score quadrant) with drag-and-drop feature placement.

* Score-based Prioritization: Input fields for various scoring criteria, with an automatically calculated priority score.

  • Resource Allocation:

* Team View: List of team members, their capacity, and assigned features/tasks. Visual indicators for over/under-allocation.

* Feature-centric View: For a given feature, clearly show assigned resources and their estimated effort.

  • Reporting & Analytics:

* Customizable Dashboards: Widgets for key metrics (e.g., progress by theme, resource workload, risk exposure).

* Export Options: CSV, PDF, image export for reports and roadmap views.

  • Collaboration:

* Comments: Integrated comment sections for features, accessible via side panel.

* Mentions: Ability to @mention team members to trigger notifications.

* Sharing: Secure sharing options for roadmaps with stakeholders (read-only views).


Wireframe Descriptions

Below are descriptions for key wireframes, outlining the layout and primary elements of critical screens.

1. Wireframe: Dashboard / Roadmap Overview

  • Screen Title: Dashboard / My Roadmaps
  • Layout:

* Left Sidebar: Primary navigation (collapsible).

* Main Content Area: Divided into customizable widgets.

  • Key Elements:

1. Header: "Welcome, [User Name]!" and a search bar for quick access to features/roadmaps.

2. "My Roadmaps" Widget (Top Left): Card-based display of current roadmaps (e.g., "Product X Q3 2024", "Platform Y 2025"). Each card shows roadmap title, lead, overall progress bar, and key dates. "Create New Roadmap" CTA.

3. "Upcoming Milestones" Widget (Top Right): List view of the next 3-5 critical milestones across all roadmaps, with dates and associated features.

4. "Recent Activity" Widget (Bottom Left): Feed of recent updates, comments, and status changes across roadmaps the user follows or contributes to.

5. "Resource Utilization Summary" Widget (Bottom Right): High-level bar chart showing overall team capacity vs. allocated work for the current period.

  • Interactive Elements: Clickable roadmap cards to navigate to detailed roadmap view. Clickable milestones to open feature details. Customizable widget arrangement.

2. Wireframe: Detailed Roadmap View (Timeline/Gantt)

  • Screen Title: Product X Q3 2024 Roadmap
  • Layout:

* Left Sidebar: Primary navigation.

* Top Bar: Roadmap title, "Share" button, "Add Feature" CTA, View Selector (Timeline, Kanban, List), Filters (Team, Priority, Status, Theme).

* Main Content Area: Dominant interactive timeline chart.

  • Key Elements:

1. Timeline Header: Displays time units (e.g., Q3 2024, July, August, September). Horizontal scroll.

2. Feature/Epic Swimlanes (Vertical): Group features by theme, product area, or team. Expandable/collapsible.

3. Feature Bars (Horizontal): Represent individual features or epics.

* Appearance: Color-coded by status or theme. Length indicates duration.

* Labels: Feature title, owner, and perhaps a small progress indicator.

* Interactivity: Drag-and-drop to move, resize handles to adjust duration. Hover to show tooltip with more details. Click to open Feature Detail Panel.

4. Dependency Lines: Visual lines connecting dependent features.

5. Milestone Markers: Vertical lines with date labels for key milestones.

  • Interactive Elements: Zoom in/out on the timeline, drag-and-drop features, click to edit, filtering options.

3. Wireframe: Feature Detail Panel

  • Screen Title: (Opens as a side panel or modal, overlaying the current view)
  • Layout:

* Right Side Panel / Centered Modal: Divided into sections for detailed information.

  • Key Elements:

1. Header: Feature Title (editable), Status Indicator (dropdown), "Save" / "Cancel" buttons, "Delete" icon.

2. Overview Section:

* Description: Rich text editor for detailed feature description.

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

* Owner: User dropdown/selector.

* Team: Multi-select dropdown.

* Roadmap: Link to parent roadmap.

* Theme/Product Area: Dropdown/tag selector.

3. Timeline & Effort Section:

* Start Date / End Date: Date pickers.

* Effort Estimate: Numeric input (e.g., story points, person-days).

* Progress: Slider or numeric input (0-100%).

4. Dependencies Section:

* Blocked By: List of features this feature depends on (with search/add functionality).

* Blocks: List of features that depend on this one.

5. Resources Section:

* Assigned Resources: List of team members assigned, with their estimated contribution.

* Add Resource: User selector.

6. Comments & Activity Log Section:

* Comment Input: Text area for new comments, with @mention functionality.

* Comment Stream: Chronological list of comments and system activity (e.g., "Status changed from X to Y").

7. Attachments Section: Upload/link files.

  • Interactive Elements: All fields are editable. Save button enables when changes are made. Dynamic updates based on selected options.

4. Wireframe: Prioritization Matrix

  • Screen Title: Feature Prioritization
  • Layout:

* Left Sidebar: Primary navigation.

* Top Bar: Roadmap selector, Prioritization Model Selector (e.g., Value vs. Effort, RICE, MoSCoW), Filters.

* Main Content Area: Interactive 2x2 matrix or a scoring interface.

  • Key Elements (Value vs. Effort Matrix Example):

1. X-Axis: Effort (Low to High)

2. Y-Axis: Value (Low to High)

3. Quadrants:

* Top-Right (High Value, High Effort): "Strategic Bets"

* Top-Left (High Value, Low Effort): "Quick Wins"

* Bottom-Right (Low Value, High Effort): "Avoid/Re-evaluate"

* Bottom-Left (Low Value, Low Effort): "Fill-ins"

4. Feature Cards: Small, draggable cards representing individual features.

* Appearance: Feature title, maybe an owner initial. Color-coded by current status.

* Interactivity: Drag-and-drop to place within the matrix. Click to open Feature Detail Panel.

5. Unprioritized Features List (Right Sidebar): A scrollable list of features not yet placed on the matrix, ready to be dragged in.

  • Interactive Elements: Drag-and-drop feature cards, dynamic quadrant labels, ability to switch prioritization models (e.g., to RICE where feature cards are ordered by score).

Color Palettes

The color palette is designed to be professional, clear, and facilitate quick information scanning. It prioritizes accessibility and avoids excessive visual noise.

1. Primary & Brand Colors

  • Primary Blue: #007BFF (RGB: 0, 123, 255)

Usage*: Main call-to-action buttons, primary navigation active states, branding elements, key highlights.

  • Dark Blue/Navy: #0056B3 (RGB: 0, 86, 179)

Usage*: Hover states for primary buttons, important headings, primary navigation background (optional).

2. Neutral & Text Colors

  • Dark Grey (Text): #343A40 (RGB: 52, 58, 64)

Usage*: Body text, main headings, default icon color.

  • Medium Grey (Secondary Text/Borders): #6C757D (RGB: 108, 117, 125)

Usage*: Secondary text, labels, subtle borders, inactive icons.

  • Light Grey (Background/Dividers): #E9ECEF (RGB: 233, 236, 239)

Usage*: Section dividers, light backgrounds, subtle card borders.

  • Off-White (Main Background): #F8F9FA (RGB: 248, 249, 250)

Usage*: Main application background, content areas.

  • Pure White: #FFFFFF (RGB: 255, 255, 255)

Usage*: Card backgrounds, modal backgrounds, input fields.

3. Accent & Status Colors

  • Success Green: #28A745 (RGB: 40, 167, 69)

Usage*: "Complete" status, positive feedback, success messages.

  • Warning Yellow: #FFC107 (RGB: 255, 193, 7)

Usage*: "In Progress" / "Review" status, warnings, attention required.

  • Danger Red: #DC3545 (RGB: 220, 53, 69)

Usage*: "At Risk" / "Blocked" status, error messages, delete actions.

  • Info Teal/Cyan: #17A2B8 (RGB: 23, 162, 184)

Usage*: "New" / "Planned" status, informational messages.

  • Purple: #6F42C1 (RGB: 111, 66, 193)
gemini Output

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


1. Introduction: Design Vision

The design vision for the Product Roadmap Builder is centered on Clarity, Actionability, and Collaboration. We aim to provide a clean, modern interface that minimizes cognitive load, highlights critical information, and facilitates seamless teamwork. The design will emphasize visual storytelling for the roadmap, robust data management for features and resources, and flexible communication tools for stakeholders.

2. Overall Design Principles

  • User-Centric: Intuitive workflows, clear navigation, and accessible design for all users.
  • Data-Driven Visuals: Translate complex data into easily digestible charts, timelines, and Kanban boards.
  • Scalable: Design components that can adapt to varying roadmap sizes and organizational structures.
  • Actionable Insights: Provide tools for prioritization, risk assessment, and resource allocation that drive decision-making.
  • Collaborative: Enable real-time updates, commenting, and sharing capabilities.
  • Modern & Professional: A clean, contemporary aesthetic that instills confidence and professionalism.

3. Core Screens & Wireframe Descriptions

The Product Roadmap Builder will feature several key views, each designed for a specific aspect of roadmap management.

3.1. Dashboard / Roadmap Overview

Purpose: Provides a high-level summary of active roadmaps, key metrics, and quick access to recent activity.

Layout:

  • Header: Global navigation (Home, Roadmaps, Backlog, Resources, Reports, Settings).
  • Sidebar (Optional/Collapsible): List of active roadmaps or filters for roadmap categories.
  • Main Content:

* "My Roadmaps" Card View: Displays cards for each roadmap the user is involved in, showing title, owner, last updated, and a progress indicator.

* "Quick Stats" Widgets: Customizable widgets showing aggregated data (e.g., "Features in Progress," "Upcoming Milestones," "Total Risks Open").

* "Recent Activity" Feed: Chronological list of updates, comments, and changes across all accessible roadmaps.

* "Create New Roadmap" CTA: Prominently displayed button.

Key Interactions: Click on roadmap card to navigate to detailed roadmap view, customize dashboard widgets.

3.2. Detailed Roadmap View (Main Working Area)

Purpose: The central hub for visualizing, editing, and managing a specific product roadmap. This view will support multiple visualization modes.

Layout:

  • Header: Roadmap Title, Owner, Filters (by team, theme, status), Search, View Selector (Timeline, Kanban, List), "Share/Export" button, "Add Feature" CTA.
  • Main Content Area (Dynamic based on View Selector):

* 3.2.1. Timeline View (Default):

* Structure: Horizontal timeline (quarters, months, sprints) with swimlanes. Swimlanes can be organized by Product Area, Theme, Team, or even specific goals.

* Feature Representation: Features are represented as draggable blocks within their respective swimlanes and timeframes. Blocks show feature title, status indicator, and optionally assigned team/owner.

* Milestones: Distinct markers on the timeline for key events (e.g., "Alpha Launch," "Market Research Complete").

* Interactions: Drag-and-drop to reschedule features, click to open feature details, zoom in/out on timeline, filter by various attributes.

* 3.2.2. Kanban Board View:

* Structure: Columns representing stages (e.g., "Discovery," "Prioritized Backlog," "In Progress," "Ready for Release," "Done"). Columns can be customized.

* Feature Cards: Each card represents a feature, showing title, priority, assigned team, and a summary.

* Interactions: Drag-and-drop cards between columns to update status, click to open feature details, filter.

* 3.2.3. List View:

* Structure: Sortable and filterable table displaying all features, milestones, and risks associated with the roadmap.

* Columns: Feature Name, Description, Priority, Status, Owner, Start Date, End Date, Dependencies, Risks.

* Interactions: Inline editing for quick updates, bulk actions (change status, assign), export to CSV.

3.3. Feature Details View (Modal / Sidebar)

Purpose: To capture and display comprehensive information about a single feature.

Layout: Typically a modal overlay or a persistent sidebar that opens when a feature block/card/row is clicked.

  • Header: Feature Title, Status dropdown, "Edit" / "Save" / "Cancel" buttons, "Delete" button.
  • Sections:

* Overview: Short description, owner, priority (dropdown/selector), status (dropdown), start/end dates (date picker).

* Details: Long description, acceptance criteria, user stories (rich text editor).

* Dependencies: List of linked features (input with search/autocomplete).

* Resources: Assigned team(s)/individuals, estimated effort (numerical input), actual effort (numerical input).

* Risks: List of associated risks (link to risk details, option to add new).

* Comments/Activity Log: Chronological feed of discussions and changes related to the feature.

* Attachments: File upload/link.

Key Interactions: Edit fields, add comments, link dependencies, manage risks.

3.4. Backlog / Prioritization View

Purpose: A dedicated space for managing unprioritized or future features, facilitating structured prioritization.

Layout:

  • Header: "Add New Feature" CTA, Filters (by product area, theme), Sorting options.
  • Main Content:

* Prioritization Matrix (e.g., Value vs. Effort): A 2x2 or 3x3 grid where features can be dragged and dropped to visually prioritize.

* Prioritized List: A sortable list of features, often with drag handles for manual reordering. Each item shows title, brief description, and current priority score.

* Unprioritized Pool: A separate section or column for new features awaiting prioritization.

Key Interactions: Drag-and-drop features onto the roadmap, apply prioritization frameworks (e.g., RICE, MoSCoW, Weighted Scoring).

3.5. Resources & Teams View

Purpose: To manage teams, individual contributors, and track resource allocation across roadmaps.

Layout:

  • Header: "Add Team" / "Add Member" CTAs, Filters (by team, role).
  • Main Content:

* Team List: Table or card view of defined teams, showing members, assigned roadmaps, and overall capacity.

* Resource Utilization Dashboard: Visualizations (e.g., bar charts, heatmaps) showing team/individual workload over time, identifying over- or under-utilization.

* Individual Profiles: Details for each member, including skills, current assignments, and availability.

Key Interactions: Assign resources to features, view capacity, identify bottlenecks.

4. Detailed Design Specifications (UI Components)

4.1. Navigation

  • Global Navigation (Top Bar):

* Logo (left).

* Main menu items (Roadmaps, Backlog, Resources, Reports, Settings) – clear text labels with optional icons. Active state clearly highlighted.

* User Profile (right): Avatar, dropdown for account settings, help, logout.

* "Create New" button (e.g., "+ Roadmap", "+ Feature") – prominent CTA.

  • Contextual Navigation (Sidebars/Tabs): Used within specific views (e.g., filters in Roadmap View, sections in Feature Details).

4.2. Data Tables & Lists

  • Readability: Ample padding, clear column headers, alternating row colors (subtle).
  • Interactivity: Hover states for rows, sortable columns (with indicator), resizable columns.
  • Actions: Checkboxes for multi-select, inline edit icons, context menus (e.g., right-click or ellipsis icon).

4.3. Forms & Input Fields

  • Standard Inputs: Text, number, textarea – clear labels, placeholder text.
  • Dropdowns/Selects: Single and multi-select, with search functionality for long lists.
  • Date Pickers: Intuitive calendar interface for start/end dates.
  • Rich Text Editor: For descriptions, acceptance criteria (supporting bold, italics, lists, links).
  • File Upload: Drag-and-drop and browse options.
  • Validation: Real-time feedback for errors (e.g., red border, error message below field).

4.4. Buttons & Call-to-Actions (CTAs)

  • Primary CTA: Prominent, distinct color (e.g., "Create Roadmap," "Save").
  • Secondary Buttons: Less prominent (e.g., "Cancel," "Edit").
  • Tertiary/Icon Buttons: For less frequent actions or within tables (e.g., "Delete," "View Details").
  • States: Normal, hover, active, disabled.

4.5. Modals & Dialogs

  • Purpose: For focused tasks (e.g., creating a new feature, confirming deletion).
  • Design: Centered, clear title, close button (X), consistent footer with primary/secondary actions. Overlay background slightly dimmed.

4.6. Notifications & Alerts

  • Types: Success (green), Warning (yellow/orange), Error (red), Info (blue).
  • Placement: Top-right corner (toast notifications) or inline within relevant sections.
  • Content: Clear, concise message, optional action button ("Undo," "View Details").

4.7. Charts & Graphs

  • Types: Bar charts (resource allocation, progress), line charts (trend analysis), heatmaps (capacity).
  • Design: Clean, minimal grid lines, clear labels, tooltips on hover for detailed data. Consistent color usage.

4.8. Drag-and-Drop Functionality

  • Visual Feedback: Clear visual cues when dragging (e.g., ghost image of item, highlighted drop zone).
  • Smooth Transitions: Animated movement of items when reordered or moved.

4.9. Filters, Search, Sorting

  • Filters: Consistent placement (e.g., top of tables/lists, left sidebar), clear filter options (checkboxes, multi-select dropdowns). "Clear All" option.
  • Search: Prominent search bar with real-time results.
  • Sorting: Column headers for tables, dedicated sort dropdowns for other views.

4.10. Tooltips & Help Text

  • Tooltips: Provide brief explanations on hover for icons or complex UI elements.
  • Help Text: Inline text below input fields to guide users on expected input.

5. Color Palette

The color palette is designed to be professional, modern, and accessible, ensuring good contrast and visual hierarchy.

  • Primary Brand Color: #007bff (A vibrant, professional blue for main CTAs, active states, and key branding elements).
  • Secondary Accent Color: #28a745 (A confident green for success messages, "Add" actions, and positive indicators).
  • Neutral Palette:

* Text: #343a40 (Dark charcoal for primary text, ensuring readability).

* Secondary Text/Icons: #6c757d (Medium gray for secondary information, disabled states).

* Borders/Dividers: #dee2e6 (Light gray for subtle separation).

* Backgrounds: #f8f9fa (Very light gray for main content areas, providing subtle depth).

* White: #ffffff (Pure white for cards, modals, and primary background).

  • Semantic Colors:

* Success: #28a745 (Green - same as secondary accent).

* Warning: #ffc107 (Amber - for warnings, items needing attention).

* Error: #dc3545 (Red - for critical errors, deletions).

* Info: #17a2b8 (Cyan - for informational messages).

6. Typography

A clean, legible sans-serif font family will be used to maintain a modern and professional aesthetic.

  • Font Family: Inter or Open Sans (or a similar modern, highly readable sans-serif font).
  • Headings (H1, H2, H3):

* H1 (Page Titles): 28px - 32px, Bold, #343a40

* H2 (Section Titles): 20px - 24px, Semi-Bold, #343a40

* H3 (Subsection Titles): 16px - 18px, Medium, #343a40

  • Body Text: 14px - 16px, Regular, #343a40
  • Small Text/Captions: 12px, Regular, #6c757d
  • Line Height: 1.5 - 1.6 for body text to improve readability.
  • Letter Spacing: Default for body text, slightly tighter for headings.

7. Iconography

  • Style: Outline or filled, consistent stroke weight, clean, minimalist.
  • Library: Material Design Icons, Font Awesome, or a custom set.
  • Common Icons:

* Add/Plus: +

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
"); 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' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' ReactDOM.createRoot(document.getElementById('root')!).render( ) "); 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' import './App.css' function App(){ return(

"+slugTitle(pn)+"

Built with PantheraHive BOS

) } export default App "); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e} .app{min-height:100vh;display:flex;flex-direction:column} .app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px} h1{font-size:2.5rem;font-weight:700} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` ## Open in IDE Open the project folder in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc -b && vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.5.13", "vue-router": "^4.4.5", "pinia": "^2.3.0", "axios": "^1.7.9" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.7.3", "vite": "^6.0.5", "vue-tsc": "^2.2.0" } } '); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': resolve(__dirname,'src') } } }) "); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]} '); zip.file(folder+"tsconfig.app.json",'{ "compilerOptions":{ "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"], "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true, "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue", "strict":true,"paths":{"@/*":["./src/*"]} }, "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"] } '); zip.file(folder+"env.d.ts","/// "); zip.file(folder+"index.html"," "+slugTitle(pn)+"
"); 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' import { createPinia } from 'pinia' import App from './App.vue' import './assets/main.css' const app = createApp(App) app.use(createPinia()) app.mount('#app') "); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue"," "); 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} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` Open in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test" }, "dependencies": { "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", "@angular/platform-browser-dynamic": "^19.0.0", "@angular/router": "^19.0.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.0", "@angular/cli": "^19.0.0", "@angular/compiler-cli": "^19.0.0", "typescript": "~5.6.0" } } '); zip.file(folder+"angular.json",'{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "'+pn+'": { "projectType": "application", "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist/'+pn+'", "index": "src/index.html", "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "styles": ["src/styles.css"], "scripts": [] } }, "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"} } } } } '); zip.file(folder+"tsconfig.json",'{ "compileOnSave": false, "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"]}, "references":[{"path":"./tsconfig.app.json"}] } '); zip.file(folder+"tsconfig.app.json",'{ "extends":"./tsconfig.json", "compilerOptions":{"outDir":"./dist/out-tsc","types":[]}, "files":["src/main.ts"], "include":["src/**/*.d.ts"] } '); zip.file(folder+"src/index.html"," "+slugTitle(pn)+" "); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, appConfig) .catch(err => console.error(err)); "); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; } "); 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'; import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = '"+pn+"'; } "); zip.file(folder+"src/app/app.component.html","

"+slugTitle(pn)+"

Built with PantheraHive BOS

"); 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} "); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes) ] }; "); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router'; export const routes: Routes = []; "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install ng serve # or: npm start ``` ## Build ```bash ng build ``` Open in VS Code with Angular Language Service extension. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local .angular/ "); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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(" "):"# add dependencies here "; zip.file(folder+"main.py",src||"# "+title+" # Generated by PantheraHive BOS print(title+" loaded") "); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## Run ```bash python main.py ``` "); zip.file(folder+".gitignore",".venv/ __pycache__/ *.pyc .env .DS_Store "); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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)+" "; zip.file(folder+"package.json",pkgJson); var fallback="const express=require("express"); const app=express(); app.use(express.json()); app.get("/",(req,res)=>{ res.json({message:""+title+" API"}); }); const PORT=process.env.PORT||3000; app.listen(PORT,()=>console.log("Server on port "+PORT)); "; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000 "); zip.file(folder+".gitignore","node_modules/ .env .DS_Store "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash npm install ``` ## Run ```bash npm run dev ``` "); } /* --- 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:" "+title+" "+code+" "; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */ *{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e} "); zip.file(folder+"script.js","/* "+title+" — scripts */ "); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Open Double-click `index.html` in your browser. Or serve locally: ```bash npx serve . # or python3 -m http.server 3000 ``` "); zip.file(folder+".gitignore",".DS_Store node_modules/ .env "); } /* ===== 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(/ {2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. Files: - "+app+".md (Markdown) - "+app+".html (styled HTML) "); } 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);}});}