Product Roadmap Builder
Run ID: 69cd24ab3e7fb09ff16a85b42026-04-01Business
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 Product Roadmap Builder

This document outlines the detailed design specifications, wireframe descriptions, color palettes, and UX recommendations for the "Product Roadmap Builder" application. The goal is to create an intuitive, powerful, and visually appealing tool that enables product teams to strategically plan, prioritize, and communicate their product roadmap effectively.


1. High-Level Product Overview & Core Functionality

The Product Roadmap Builder will be a web-based application designed to support product managers, product owners, and development teams in creating, managing, and sharing their product strategy and execution plans.

Core Functional Areas:

  1. Product & Vision Definition: Define overarching product strategy, vision, and goals.
  2. Feature/Initiative Management: Create, detail, and organize product features, epics, or initiatives.
  3. Prioritization Engine: Implement various prioritization frameworks (e.g., RICE, MoSCoW, Value/Effort Matrix) to rank features.
  4. Roadmap Visualization: Offer multiple views (Timeline/Gantt, Kanban/Swimlane, List) to visualize the roadmap.
  5. Milestone & Release Planning: Define releases, assign features, and track progress against key dates.
  6. Resource & Team Allocation: Assign features/initiatives to teams or individuals and track resource capacity.
  7. Risk Management: Identify, assess, and track potential risks associated with roadmap items.
  8. Stakeholder Communication & Reporting: Generate custom reports, share roadmaps, and manage stakeholder access.
  9. Collaboration: Enable team members to comment, share, and track changes.

2. Detailed Design Specifications

2.1. Information Architecture & Navigation

The application will feature a clear, consistent left-hand navigation bar for primary sections and a top-right header for user-specific actions and notifications.

  • Dashboard: Overview of all products, key metrics, and upcoming milestones.
  • Products: List of all products managed within the system.

Sub-navigation within a selected product:*

* Vision & Goals: Define product strategy.

* Features/Backlog: Manage all features and initiatives.

* Prioritization: Tools for feature ranking.

* Roadmap: Visual roadmap views.

* Releases: Manage release cycles and milestones.

* Resources: Allocate and track team capacity.

* Risks: Register and manage product risks.

* Reports: Generate custom reports.

* Settings: Product-specific configurations.

  • Teams: Manage development teams and their members.
  • Integrations: Connect with external tools (e.g., Jira, Asana, Slack).
  • Settings (Global): User profile, organization settings, billing, user management.

2.2. Key Components & Data Model (High-Level)

  • Product:

* id, name, description, vision, goals, owner_id, created_at, updated_at.

  • Feature/Initiative:

* id, product_id, name, description, status (e.g., Backlog, Prioritized, In Progress, Done), priority_score (e.g., RICE score), value, effort, dependencies, owner_id, assigned_team_id, assigned_release_id, start_date, end_date, comments, attachments.

  • Release/Milestone:

* id, product_id, name, description, target_date, status (e.g., Planning, Active, Completed), features[].

  • Team/Resource:

* id, name, members[], capacity, skills.

  • Risk:

* id, product_id, feature_id (optional), description, impact, likelihood, mitigation_plan, status (e.g., Open, Mitigated, Closed), owner_id.

  • Stakeholder:

* id, name, email, role, access_level.

  • Report:

* id, name, product_id, type, filters, sharing_settings.

2.3. Feature-Specific Design Considerations

  • Feature Management:

* Inline Editing: Allow quick edits directly from the feature list view.

* Bulk Actions: Select multiple features for status updates, assignment, or deletion.

* Advanced Filtering & Sorting: Filter by status, owner, team, release, priority, dates.

* Custom Fields: Allow users to define additional fields for features (e.g., "Customer Segment," "Technical Complexity").

  • Prioritization Engine:

* Configurable Frameworks: Users can select or configure prioritization methods (e.g., RICE: Reach, Impact, Confidence, Effort; MoSCoW: Must Have, Should Have, Could Have, Won't Have; Value/Effort Matrix).

* Interactive Matrix/Scoring: Visual tools for scoring and ranking features.

* Drag-and-Drop Reordering: In list views, allow manual override of priority.

  • Roadmap Visualization:

* Timeline View (Gantt-like): Horizontal bars representing features/releases over time. Zoom levels (week, month, quarter, year).

* Kanban/Swimlane View: Columns for status (e.g., Backlog, Q1, Q2, Q3, Q4) or teams, with feature cards. Drag-and-drop between columns.

* List View: Detailed table with all feature information, sortable and filterable.

* Filtering & Layering: Toggle visibility of teams, releases, statuses, or specific feature types.

* Export Options: PDF, CSV, Image.

  • Stakeholder Communication:

* Shareable Links: Generate read-only links with custom filters.

* Presentation Mode: Clean, full-screen view for presenting roadmaps.

* Automated Updates: Notifications for stakeholders on roadmap changes.


3. Wireframe Descriptions (Key Screens)

3.1. Dashboard (Overview)

  • Layout: Grid-based, responsive.
  • Content:

* "My Products" Card: List of products with quick links, status indicators.

* "Upcoming Milestones" Card: Chronological list of next 3-5 releases across all products.

* "Recent Activity" Card: Feed of recent changes (feature updates, new risks, comments).

* "Prioritization Snapshot" Card: Small chart showing distribution of prioritized vs. backlog features.

* "Roadmap Glimpse" Card: Mini timeline view of a selected product's next quarter.

  • Interactions: Clickable cards/items to navigate to detailed views. "Add New Product" CTA.

3.2. Features/Backlog (List View)

  • Layout: Table with configurable columns. Left-hand navigation visible.
  • Header: "Features" title, "Add New Feature" button, Search bar, Filter/Sort options (status, owner, release, priority), Export button, Bulk Actions dropdown.
  • Table:

* Columns: Checkbox (for bulk actions), Name (primary link), Status (dropdown), Priority Score, Release, Owner, Start Date, End Date, Value, Effort, Tags.

* Each row: Feature details.

* Hover actions: Edit icon, Delete icon, Duplicate icon.

  • Interactions: Inline editing for most fields. Drag-and-drop to reorder features within a priority group. Pagination.

3.3. Feature Detail (Modal/Side Panel)

  • Layout: Full-screen modal or right-hand side panel overlaying the current view.
  • Content:

* Header: Feature Name (editable), Status dropdown, "Save," "Cancel," "Delete" buttons.

* Main Section:

* Description (rich text editor).

* Priority Score (display, with link to prioritization tool).

* Value/Effort sliders/inputs.

* Assigned To (Team/Individual dropdown).

* Release (dropdown).

* Start Date / End Date (date pickers).

* Dependencies (multi-select, search).

* Tags (multi-select, input).

* Attachments (upload, list).

* Comments Section: Text area for new comments, list of existing comments (timestamp, author).

  • Interactions: Real-time saving indicators. Markdown support for descriptions and comments.

3.4. Prioritization Matrix (Value/Effort Example)

  • Layout: 2x2 grid (High Value/Low Effort, High Value/High Effort, Low Value/Low Effort, Low Value/High Effort).
  • Content:

* Axes: X-axis (Effort: Low to High), Y-axis (Value: Low to High).

* Features: Represented as draggable cards/bubbles within the quadrants.

* Legend: Explaining quadrants (e.g., "Quick Wins," "Strategic Initiatives," "Fill-ins," "Time Sinks").

  • Interactions: Drag-and-drop feature cards between quadrants. Hover to see feature name and score. Click to open feature detail.

3.5. Roadmap View (Timeline/Gantt)

  • Layout: Main content area with a horizontal timeline.
  • Header: "Roadmap" title, View selector (Timeline, Kanban, List), Zoom controls (week, month, quarter, year), Filter/Layer options, Export button.
  • Left Pane (Optional Toggle): List of releases/swimlanes (e.g., Teams, Products).
  • Main Area:

* Timeline Scale: Dates/months/quarters at the top.

* Swimlanes (if enabled): Horizontal rows for each team or release.

* Feature Bars: Rectangular bars representing features, sized by duration, positioned by start/end dates. Color-coded by status or team.

* Milestone Markers: Vertical lines or diamond shapes for release dates.

* Dependencies: Visual lines connecting dependent features.

  • Interactions: Drag-and-drop feature bars to change dates. Click to open feature detail. Hover for tooltips. Zoom in/out.

4. Color Palette

The color palette aims for professionalism, clarity, and visual appeal, ensuring good contrast and accessibility.

  • Primary Brand Color: #0056B3 (A strong, professional blue) - Used for primary buttons, active navigation states, key highlights.
  • Secondary Accent Color: #28A745 (A vibrant green) - Used for success messages, "Add New" CTAs, positive indicators.
  • Tertiary Accent Color: #FFC107 (A warm yellow/orange) - Used for warning messages, pending states, neutral emphasis.
  • Danger/Error Color: #DC3545 (A clear red) - Used for error messages, delete actions.
  • Information Color: #17A2B8 (A calm teal) - Used for informational messages.
  • Neutral Palette:

* Backgrounds:

* #F8F9FA (Lightest grey, for main content background)

* #FFFFFF (Pure white, for cards, modals, specific content blocks)

* #E9ECEF (Slightly darker grey, for section separators, subtle backgrounds)

* Text:

* #343A40 (Dark grey, for primary text - headings, body copy)

* #6C757D (Medium grey, for secondary text - descriptions, helper text)

* #ADB5BD (Light grey, for disabled states, subtle borders)

* Borders/Dividers: #DEE2E6 (Light grey)

  • Roadmap Visualization Colors:

* Use a diverse, yet harmonious, set of colors for different feature statuses or teams to ensure clear differentiation. Aim for 5-7 distinct colors that work well together and pass accessibility contrast checks.

* Example: #6C757D (Backlog), #007BFF (Prioritized), #28A745 (In Progress), #17A2B8 (Blocked), #FFC107 (On Hold), #6F42C1 (Completed).


5. UX Recommendations

5.1. User Flow & Information Architecture

  • Clear Onboarding: For new users, a guided tour or checklist to set up their first product, add features, and create a roadmap.
  • Intuitive Navigation: Consistent global navigation, with context-sensitive sub-navigation. Breadcrumbs for deeper views.
  • "Product-Centric" Design: All actions and views should clearly relate to the selected product, reducing cognitive load.

5.2. Interaction Design

  • Drag-and-Drop Everywhere: For prioritization, reordering features, moving items on Kanban boards, and assigning to releases. Provide clear visual feedback (ghosting, drop indicators).
  • Inline Editing: Minimize clicks by allowing direct editing of text fields, dropdowns, and dates within tables and lists.
  • Contextual Actions: Use hover states or small "..." menus for actions specific to an item (e.g., edit, delete, duplicate feature).
  • Real-time Feedback: Visual cues for saving, loading, and successful/unsuccessful actions (e.g., toast notifications, spinners).
  • Empty States: Provide helpful messages and clear call-to-actions when sections are empty (e.g., "No features yet. Start by adding your first feature!").
  • Keyboard Accessibility: Ensure all interactive elements are reachable and operable via keyboard.

5.3. Visual Design & Aesthetics

  • Clean & Uncluttered: Prioritize essential information, use whitespace effectively.
  • Consistent UI Elements: Buttons, forms, typography, and iconography should be consistent
gemini Output

Detailed Design Specifications for Product Roadmap Builder

This document outlines the detailed design specifications for the "Product Roadmap Builder" tool, focusing on its visual design, user experience, and core functionalities. The goal is to create an intuitive, powerful, and professional application that streamlines the product roadmap process from conception to communication.


1. Overall Product Architecture & Core Modules

The Product Roadmap Builder will be structured around a clear hierarchy, enabling users to manage multiple products and their respective roadmaps efficiently.

1.1. High-Level Structure:

  • Dashboard/Home: Overview of all products/roadmaps, key metrics, notifications.
  • Product Management: List of products, ability to add/edit/archive products.
  • Roadmap View: The core interface for building and visualizing a single product's roadmap. This will have multiple sub-views (Timeline, Kanban, List, Prioritization).
  • Feature/Initiative Details: Dedicated panel/modal for detailed information and editing of individual features/initiatives.
  • Resource Management: View and manage team members, roles, and capacity.
  • Settings: User preferences, account settings, integrations.
  • Reporting & Analytics: Pre-built and customizable reports on roadmap progress, resource utilization, etc.

1.2. Key Modules & Functionalities:

  • Roadmap Visualization:

* Timeline View (Gantt Chart-like): Visual representation of initiatives/features over time, showing start/end dates, dependencies, and progress. Drag-and-drop for rescheduling.

* Kanban View: Board-style view for managing features through different stages (e.g., Backlog, To Do, In Progress, Review, Done). Drag-and-drop for status updates.

* List View: Tabular representation of all features/initiatives with customizable columns (priority, status, owner, dates, etc.).

  • Feature & Initiative Management:

* Creation & Editing: Rich-text descriptions, attachments, links, custom fields.

* Hierarchy: Support for Initiatives > Features > Sub-features/Tasks.

* Status Tracking: Customizable workflow statuses (e.g., Proposed, Scoped, In Design, In Development, Testing, Launched).

* Owners & Assignees: Assign features/tasks to specific team members.

  • Prioritization Engine:

* Integrated Scoring Models: Support for ICE (Impact, Confidence, Ease), RICE (Reach, Impact, Confidence, Effort), and custom weighted scoring.

* Prioritization Matrix: Visual 2x2 matrix (e.g., Value vs. Effort, Impact vs. Feasibility) for interactive prioritization.

* MoSCoW Method: Categorization into Must-have, Should-have, Could-have, Won't-have.

  • Milestone Planning:

* Milestone Definition: Create key project checkpoints with dates and descriptions.

* Dependency Mapping: Link features/initiatives to milestones and define dependencies between items (e.g., Finish-to-Start).

* Critical Path Identification: Highlight the sequence of activities that determine the project's shortest possible duration.

  • Resource Allocation:

* Team & Role Management: Define team members, their roles, and skill sets.

* Capacity Planning: Visualize team member workload and availability against assigned tasks/features.

* Conflict Detection: Alert for over-allocation of resources.

  • Risk Assessment & Management:

* Risk Identification: Log potential risks associated with features/initiatives.

* Likelihood & Impact Scoring: Quantify risks (e.g., Low, Medium, High).

* Mitigation Strategies: Document plans to reduce or eliminate risks.

* Risk Status Tracking: (Open, In Progress, Mitigated, Closed).

  • Stakeholder Communication & Collaboration:

* Shareable Views: Generate read-only links for specific roadmap views.

* Presentation Mode: Clean, focused view for presenting roadmaps without editing controls.

* Export Options: PDF, CSV, Image (PNG/JPG) for different views.

* Comments & Mentions: Enable collaborative discussions on features/initiatives.

* Status Updates: Automated or manual updates to stakeholders on progress.

  • Integrations (Future-Proofing):

* Project Management Tools: Jira, Asana, Trello (two-way sync for tasks/statuses).

* Communication Platforms: Slack, Microsoft Teams (notifications).

* Version Control: GitHub, GitLab (link to repositories).

2. Wireframe Descriptions (Key Screens)

Detailed descriptions for critical user interfaces, outlining layout, elements, and interactions.

2.1. Dashboard / Roadmap Overview

  • Layout:

* Header: Global navigation (Dashboard, Products, Resources, Settings), Search bar, User profile/notifications.

* Left Sidebar: Expandable/collapsible navigation for Products (listing active products), Quick Links (e.g., "My Tasks").

* Main Content Area:

* "My Roadmaps" Section: Card-based display of recently accessed or favorited roadmaps. Each card shows roadmap title, product name, last updated, and a small progress indicator/status.

* "Key Metrics" Section: Customizable widgets showing overall progress, upcoming milestones, overdue items, resource utilization summary.

* "Notifications/Activity Feed": Recent activities across all managed roadmaps (e.g., "Feature X moved to In Progress," "Comment added on Initiative Y").

  • Elements: Product cards, metric widgets, activity feed items, "Add New Product/Roadmap" button.
  • Interactions: Click on a roadmap card to navigate to its detailed view. Click on a metric widget for detailed report.

2.2. Individual Roadmap View (Timeline Focus)

  • Layout:

* Header: Product Name, Roadmap Title, View Switcher (Timeline, Kanban, List, Prioritization), "Share" button, "Export" button, "Add Initiative/Feature" button.

* Left Sidebar (Contextual): Filter & Sort options (by owner, status, priority, date range), Legend for color-coding.

* Main Content Area:

* Timeline Scale: Horizontal axis displaying time (Weeks, Months, Quarters, Years).

* Initiatives/Features: Rows representing initiatives, with nested features. Each item is a colored bar on the timeline, indicating duration.

* Milestones: Vertical lines or markers on the timeline indicating key dates.

* Dependencies: Visual connectors (arrows) between timeline bars.

* Progress Indicators: A fill within the timeline bar to show completion percentage.

  • Elements: Timeline bars (draggable, resizable), Milestone markers, Dependency lines, Tooltips on hover (showing details), Filter/Sort controls.
  • Interactions:

* Drag & Drop: Reschedule initiatives/features by dragging bars. Extend/shorten duration by resizing ends.

* Click: Open feature detail panel/modal.

* Hover: Display quick info tooltip.

* Zoom: Adjust timeline granularity (days, weeks, months).

* Filter/Sort: Dynamically update the timeline view.

2.3. Feature Detail View (Sidebar Panel)

  • Layout: A collapsible/expandable panel that slides in from the right, overlaying part of the main roadmap view.
  • Elements:

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

* Tabs (Optional): Overview, Details, Risks, Resources, Comments, History.

* Overview/Details Section:

* Text Editor: Rich text for description (Markdown support).

* Key Fields: Owner (dropdown), Priority (dropdown), Start Date, End Date (date pickers), Estimated Effort, Value Score, Confidence Score.

* Parent Initiative: Link to a parent initiative.

* Dependencies: List of linked features/tasks.

* Attachments: Drag-and-drop file upload.

* Custom Fields: User-defined fields.

* Risks Section: List of associated risks, ability to add new risks.

* Resources Section: List of assigned team members, capacity overview.

* Comments Section: Threaded comments, @mentions.

  • Interactions: In-line editing of most fields. Real-time saving or explicit "Save" button.

2.4. Prioritization Matrix View (e.g., Value vs. Effort)

  • Layout:

* Header: Product Name, Roadmap Title, "Add Feature" button, Filter/Sort.

* Main Content Area: A 2x2 grid (or custom matrix) with axes labeled (e.g., "Value" on Y-axis, "Effort" on X-axis).

* Feature Cards: Each feature/initiative represented as a draggable card within the matrix quadrants. Card shows title, perhaps a small icon/color for status.

* Unprioritized List: A sidebar or dedicated area for features not yet placed on the matrix.

  • Elements: Matrix grid, draggable feature cards, axis labels, filter controls.
  • Interactions:

* Drag & Drop: Move feature cards across quadrants to visually prioritize.

* Click: Open feature detail panel.

* Scoring Integration: Moving a card updates its associated Value/Effort scores (or vice-versa, scores update card position).

3. Color Palettes

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

3.1. Primary Brand & UI Colors:

  • Primary Blue (#007AFF): Used for primary call-to-action buttons, active navigation states, key interactive elements, and brand accents. Evokes trust and professionalism.
  • Dark Blue (#0056B3): Darker shade of primary blue for hover/active states, stronger emphasis.
  • Accent Green (#28A745): Used for "Success" messages, positive indicators, and secondary calls to action.
  • Accent Orange (#FFC107): Used for "Warning" messages, pending states, and moderate emphasis.
  • Accent Red (#DC3545): Used for "Error" messages, critical alerts, and delete actions.

3.2. Neutral & Text Colors:

  • Background Light Gray (#F8F9FA): Lightest background for main content areas, providing a clean canvas.
  • Background Medium Gray (#E9ECEF): Slightly darker background for sidebars, sections, or subtle separation.
  • Border Gray (#CED4DA): For input fields, dividers, and subtle borders.
  • Dark Text (#212529): Primary text color for readability.
  • Medium Text (#6C757D): Secondary text, labels, placeholder text.
  • Light Text (#ADB5BD): Tertiary text, disabled states.

3.3. Data Visualization & Status Colors:

  • Palette for Initiatives/Features: A set of 5-7 distinct, harmonious colors for differentiating initiatives/features on the timeline or Kanban board.

* Example: #6C757D (Gray - Backlog), #007AFF (Blue - In Progress), #28A745 (Green - Completed), #FFC107 (Orange - On Hold), #6F42C1 (Purple - Design Phase), #20C997 (Teal - Testing).

  • Status Indicators: Consistent colors for workflow statuses.

* Proposed/Draft: Light Gray (#CED4DA)

* Scoped/Planned: Medium Blue (#6CA7E3)

* In Progress/Active: Primary Blue (#007AFF)

* In Review/Testing: Accent Orange (#FFC107)

* Launched/Done: Accent Green (#28A745)

* On Hold/Blocked: Accent Red (#DC3545)

3.4. Accessibility Considerations:

  • Ensure sufficient contrast ratios (WCAG 2.1 AA or AAA) between text and background colors.
  • Use multiple visual cues (icons, text labels) in addition to color, especially for status indicators, to support color-blind users.

4. UX Recommendations

These recommendations aim to enhance usability, efficiency, and user satisfaction.

4.1. Intuitive Navigation & Information Architecture:

  • Clear Global Navigation: Consistent header and primary sidebar navigation across all pages.
  • Contextual Navigation: Use breadcrumbs to show the user's path (e.g., Dashboard > Product X > Roadmap Y).
  • Search Functionality: A prominent global search bar to quickly find products, roadmaps, features, or team members.
  • Consistent Layouts: Maintain similar element placement (e.g., filters on the left, primary actions on the top right) across different views for predictability.

4.2. Streamlined Interaction & Efficiency:

  • Drag-and-Drop Everywhere: Implement drag-and-drop for:

* Rescheduling on the timeline.

* Changing status on Kanban boards.

* Prioritizing on matrix views.

* Reordering lists.

* Attaching files.

  • In-line Editing: Allow users to directly edit fields (e.g., feature titles, dates) without opening a separate modal where appropriate.
  • Keyboard Shortcuts: Provide common shortcuts for power users (e.g., Cmd+K for search, Enter to save).
  • Bulk Actions: Enable selecting multiple items to perform actions like changing status, assigning owners, or deleting.
  • Smart Defaults: Pre-fill commonly used values (e.g., current date for start date, default priority).

4.3. Visual Clarity & Feedback:

  • Clear Visual Hierarchy: Use size, color, contrast, and spacing to guide the user's eye to the most important elements.
  • Consistent Iconography: Use a single, professional icon set throughout the application.
  • Progressive Disclosure: Show only essential information initially, allowing users to expand for more details (e.g., collapsed feature details, "Show More" options).
  • Instant Feedback: Provide immediate visual feedback for user actions
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. 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. Overall Design Philosophy

Our design philosophy for the Product Roadmap Builder centers on Clarity, Control, and Collaboration.

  • Clarity: Information should be presented clearly and concisely, minimizing cognitive load. Visualizations will be intuitive, allowing users to quickly grasp complex data.
  • Control: Users must feel in complete control of their roadmap. Features like drag-and-drop, inline editing, and robust filtering will provide flexibility and efficiency.
  • Collaboration: The design will facilitate seamless teamwork, allowing multiple stakeholders to contribute, view, and understand the roadmap's status and direction.

The aesthetic will be modern, clean, and professional, using a consistent design system to ensure a cohesive user experience across all modules.


2. Detailed Design Specifications

2.1. Dashboard / Roadmap Overview

  • Purpose: Provide a centralized hub for managing multiple roadmaps and quickly accessing key insights.
  • Layout:

* Left Navigation Sidebar: Persistent, collapsible navigation for primary sections (e.g., Roadmaps, Templates, Settings, Help). Includes user profile/account management.

* Main Content Area: Displays a grid or list of active roadmaps.

* Header Bar: Contains global search, notifications, "Create New Roadmap" button, and user avatar/settings.

  • Components:

* Roadmap Cards/List Items: Each item represents a roadmap, showing:

* Roadmap Title

* Brief Description (optional)

* Key Metrics (e.g., # Features, % Complete, Last Updated)

* Status Indicator (e.g., "Active," "Draft," "Archived")

* Thumbnail/Preview (optional, showing a mini-Gantt or Kanban view)

* Action Buttons (e.g., "Edit," "View," "Share," "Archive")

* Filtering & Sorting: Options to filter by owner, status, tags, and sort by last modified, name, etc.

* "Create New Roadmap" Button: Prominently placed, leading to a guided creation flow or template selection.

* Search Bar: Global search functionality to find roadmaps, features, or milestones quickly.

2.2. Roadmap Editor Interface (Primary View)

  • Purpose: The core interface for building, visualizing, and managing the roadmap. Supports multiple views (Timeline, Kanban, List).
  • Layout:

* Top Header Bar: Roadmap title, sharing options, view switcher (Timeline, Kanban, List), settings, undo/redo, "Save" status.

* Left Control Panel: Collapsible panel for filters (tags, owner, status), grouping options, and quick-add feature/milestone buttons.

* Main Canvas: The primary display area for the chosen roadmap view.

* Right Detail Panel (Contextual): Appears on selecting a feature/milestone, displaying its details for editing.

  • Components (Timeline View - Primary):

* Gantt Chart-like Display: Features and milestones represented as bars on a timeline.

* Swimlanes/Rows: Can be grouped by product area, theme, quarter, or team.

* Draggable Elements: Features and milestones can be dragged to adjust their dates or move between swimlanes.

* Resize Handles: For adjusting feature duration.

* Dependencies: Visual connectors (arrows) between dependent features.

* Milestone Markers: Distinct visual indicators for key milestones.

* "Today" Line: A vertical line indicating the current date.

* Zoom Levels: Options to view by week, month, quarter, year.

* Inline Editing: Double-clicking on feature titles allows direct editing.

  • Components (Kanban View - Alternative):

* Configurable Columns: Typically "Backlog," "In Progress," "Done," or custom stages.

* Feature Cards: Each card represents a feature, showing title, owner, status, priority, and quick tags.

* Drag-and-Drop: Move cards between columns to update status or reorder within a column.

* Column Customization: Add, remove, rename columns.

  • Components (List View - Alternative):

* Data Table: Features and milestones listed in a table format with sortable columns (e.g., Name, Status, Owner, Start Date, End Date, Priority).

* Bulk Actions: Checkboxes for selecting multiple items and performing actions (e.g., change status, assign).

* Export Options: CSV, PDF.

2.3. Feature/Milestone Detail Panel (Right Sidebar or Modal)

  • Purpose: To input and manage detailed information for individual features or milestones.
  • Layout: Typically a right-aligned sidebar or a modal window, ensuring context with the main roadmap.
  • Components:

* Title: Editable feature/milestone name.

* Description: Rich text editor for detailed explanations, user stories, and acceptance criteria.

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

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

* Owner/Assignee: User selector.

* Dates: Start Date, End Date (date pickers).

* Milestone Toggle: For features, the option to mark it as a milestone if applicable.

* Dependencies: Multi-select input to link to other features/milestones.

* Resource Allocation: Link to specific resources or teams.

* Risk Assessment: Section to add and link identified risks.

* Tags/Labels: Multi-select input for categorization.

* Attachments: Option to upload files (e.g., design mockups, spec documents).

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

* Save/Cancel Buttons.

2.4. Resource Allocation View

  • Purpose: Visualize and manage resource assignments across features and milestones.
  • Layout: Could be a dedicated view or integrated into the detail panel.
  • Components:

* Resource List: List of available team members or resources.

* Assignment Interface: Drag-and-drop resources onto features, or use a multi-select in the feature detail panel.

* Capacity View: Visual representation of resource workload (e.g., bar charts per resource showing allocated vs. available time).

* Conflict Indicators: Highlight when resources are over-allocated.

2.5. Risk Management Interface

  • Purpose: Identify, track, and mitigate risks associated with roadmap items.
  • Layout: Dedicated section, potentially a table or Kanban board for risks.
  • Components:

* Risk Cards/List Items: Each item showing:

* Risk Title

* Description

* Impact (High, Medium, Low)

* Likelihood (High, Medium, Low)

* Mitigation Plan

* Owner

* Status (Open, Mitigated, Closed)

* Linked Features/Milestones

* Filtering & Sorting: By impact, likelihood, status, owner.

* "Add New Risk" Button.

2.6. Communication & Export Features

  • Purpose: Facilitate sharing roadmaps with stakeholders and exporting data.
  • Components:

* Share Options:

* Public Link: Generate a read-only public URL with optional password protection.

* Invite Collaborators: Add users with specific roles (Viewer, Editor, Admin).

* Embed Code: For embedding the roadmap into websites or internal tools.

* Presentation Mode: Full-screen, simplified view for presenting the roadmap.

* Export Options:

* PDF: High-quality, printable roadmap document (configurable views).

* CSV/Excel: Raw data export of features, milestones, risks.

* Image (PNG/JPG): Snapshot of the current roadmap view.

* Customizable Reports: Templates for generating status reports, sprint summaries, or executive overviews based on roadmap data.


3. Wireframe Descriptions (Key Screens)

3.1. Wireframe: Roadmap Dashboard

  • Header Bar (Top):

* [Logo] [Product Name]

* [Search Input]

* [Notifications Icon]

* [User Avatar / Settings]

* [Button: + Create New Roadmap] (Right-aligned)

  • Left Navigation (Sidebar - Collapsible):

* [Icon] Roadmaps (Active State)

* [Icon] Templates

* [Icon] Settings

* [Icon] Help

  • Main Content Area (Roadmap Listing):

* ## My Roadmaps

* [Dropdown: Filter by Status] [Dropdown: Sort By]

* [Grid/List Toggle]

* [Roadmap Card 1]

* [Roadmap Title]

* [Status Tag: Active]

* [Progress Bar] [X% Complete]

* [Last Updated: Date]

* [Button: View] [Button: Edit] [Three Dots Menu]

* [Roadmap Card 2]

* ... (similar structure)

* [Empty State Illustration/Message] (If no roadmaps)

3.2. Wireframe: Roadmap Editor (Timeline View)

  • Top Header Bar:

* [Back Arrow] [Roadmap Title] [Status: Saved/Saving...]

* [Icon: Undo] [Icon: Redo]

* [Dropdown: View (Timeline, Kanban, List)] (Active: Timeline)

* [Button: Share] [Button: Settings]

  • Left Control Panel (Collapsible):

* ## Filters

* [Checkbox: Status (Planned, In Progress, etc.)]

* [Multi-select: Tags]

* [User Select: Owner]

* ## Group By

* [Radio Button: Quarter]

* [Radio Button: Product Area]

* [Radio Button: Team]

* [Button: + Add Feature]

* [Button: + Add Milestone]

  • Main Canvas (Timeline):

* [Time Axis: Q1 2024 | Jan | Feb | Mar | Q2 2024 | Apr | May | Jun ...]

* [Today Line]

* Swimlane 1: Product Area A

* [Feature A1 (Bar on Timeline)] [Milestone A-M1 (Diamond Icon)]

* [Feature A2 (Bar, dependency arrow to A1)]

* Swimlane 2: Product Area B

* [Feature B1 (Bar)]

* [Zoom Controls: Weekly | Monthly | Quarterly | Yearly] (Bottom right)

  • Right Detail Panel (Hidden by default, appears on click):

* [Close Button]

* ## Feature A1 Details

* [Input: Title]

* [Rich Text Editor: Description]

* [Dropdown: Status]

* [Dropdown: Priority]

* [Date Pickers: Start Date / End Date]

* [User Selector: Owner]

* [Multi-select: Dependencies]

* [Tags Input]

* [Section: Risks (Link to Risk ID)]

* [Section: Resources (Allocated Users)]

* [Button: Save] [Button: Delete]

3.3. Wireframe: Feature Detail Modal (Alternative to Right Panel)

  • Modal Overlay (Centered):

* [Close Button]

* ## Feature Name (Editable Input)

* [Tab Navigation: Details | Resources | Risks | Comments]

* Details Tab (Active):

* [Label: Description] [Rich Text Editor]

* [Label: Status] [Dropdown]

* [Label: Priority] [Dropdown]

* [Label: Owner] [User Search/Select]

* [Label: Start Date] [Date Picker] [Label: End Date] [Date Picker]

* [Label: Tags] [Multi-select Input]

* [Label: Dependencies] [Feature Search/Select]

* Resources Tab:

* [List of Allocated Resources with Effort/Time]

* [Button: + Allocate Resource]

* Risks Tab:

* [List of Linked Risks with Status]

* [Button: + Link Risk]

* Comments Tab:

* [Comment Thread] [Input: Add Comment]

* [Button: Save] [Button: Cancel] [Button: Delete] (Bottom right)


4. Color Palette

A professional, clean, and accessible color palette is crucial for usability and brand identity.

  • Primary Brand Color: #007AFF (A vibrant, trustworthy blue - for primary buttons, active states, key headers)
  • Secondary Accent Color: #34C759 (A fresh green - for "Complete" status, success messages)
  • Tertiary Accent Color: #FF9500 (An energetic orange - for "In Progress" status, warnings)
  • Neutral Palette (Grayscale):

* #FFFFFF (Pure White - backgrounds, cards)

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