=============== LIBRARY RULES =============== From library maintainers: - All dynamic data MUST come from metrics.json — never hardcode numbers or values in presentation.yaml - Use {{ metrics.path.to.value }} interpolation inside YAML string values to reference metrics - Available layouts: title, two-column, three-column, data-table, stat-grid, closing - Set theme.primary (background hex) and theme.accent (accent hex) in presentation.yaml — all CSS variants are auto-derived - Use FontAwesome icon names without 'fa-' prefix (e.g. icon: gem), except in closing layout info_items which use full FA classes - Use item['items'] bracket notation in templates to avoid Python dict .items() method clash - Build command: pf build --config --metrics --output [--open] - Zip command: pf zip --dir to create shareable .zip ### Quick Start: Initialize, Build, and Serve Presentation (Bash) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md A step-by-step guide to creating, building, and serving a new presentation. It covers scaffolding a project, editing configuration and data files, building the slides, and previewing them locally. ```bash # 1. Scaffold a new project pf init my-deck # 2. Edit the config and data files # my-deck/presentation.yaml — slide definitions # my-deck/metrics.json — data for interpolation # 3. Build pf build --config my-deck/presentation.yaml \ --metrics my-deck/metrics.json \ --output my-deck/slides # 4. Preview pf serve --dir my-deck/slides --port 8080 # Open http://localhost:8080/present.html ``` -------------------------------- ### Development Installation and Testing (Bash) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Commands for setting up the development environment and running tests for the presentation framework. This includes installing the project in editable mode and executing the test suite. ```bash # Install in dev mode pip install -e . # Run tests pytest tests/ ``` -------------------------------- ### Verify Installation (Bash) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Verifies that the presentation framework has been installed correctly by checking its help message. This command should display available subcommands and options. ```bash pf --help ``` -------------------------------- ### Install Presentation Framework (Bash) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Installs the presentation framework using pip in editable mode. This is typically done during development or when contributing to the project. ```bash pip install -e /path/to/presentation-framework ``` -------------------------------- ### Serve Presentation Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Starts a local HTTP server to preview the built presentation. ```APIDOC ## Serve Presentation ### Description Starts a local HTTP server to serve the built presentation files. Allows for live previewing. ### Method CLI Command ### Endpoint `pf serve [OPTIONS]` ### Parameters #### Query Parameters - **-d, --dir** (string) - Optional - Default: `slides` - The directory containing the built presentation files to serve. - **-p, --port** (integer) - Optional - Default: `8080` - The port number on which the server will listen. ### Request Example ```bash pf serve -d build/ -p 3000 ``` ### Response #### Success Response Starts a local HTTP server. Access the presentation via `http://localhost:/present.html`. #### Response Example ``` Server started on http://localhost:8080 Open http://localhost:8080/present.html to view your presentation. ``` ``` -------------------------------- ### Serve Presentation Slides Locally Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Starts a local HTTP server to serve the built presentation slides. The `-d` option specifies the directory containing the slides, and `-p` sets the port number. Access the presentation via `http://localhost:PORT/present.html`. ```bash pf serve \ --dir slides \ --port 8080 ``` -------------------------------- ### Theme Customization Example (YAML) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Shows how to customize the presentation theme using YAML. This includes setting primary and accent colors, as well as specifying fonts for headings, subheadings, and body text. ```yaml theme: primary: "#1C2537" # Background color accent: "#C4A962" # Accent / highlight color fonts: heading: "Playfair Display" subheading: "Montserrat" body: "Lato" ``` -------------------------------- ### Custom Jinja2 Layout Example Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html An example of a custom Jinja2 layout file (`my-layout.html.j2`) that extends a base template and includes partials. It shows how to structure custom slide layouts and access slide data. ```jinja2 {% extends "base.html.j2" %} {% from "partials/card.html.j2" import challenge_card %} {% block content %} {% include "partials/header.html.j2" %} {% endblock %} ``` -------------------------------- ### Presentation YAML Configuration Example Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines the metadata, theme, and slide structure for a presentation. Includes options for title, authors, institution, date, theme colors, fonts, and slide layouts with associated data. ```yaml meta: title: "Deck Title" authors: ["Author 1", "Author 2"] institution: "School or Company" date: "2026-01-01" theme: primary: "#1C2537" accent: "#C4A962" fonts: heading: "Playfair Display" subheading: "Montserrat" body: "Lato" slides: - layout: title data: title: "My Title" ``` -------------------------------- ### Metrics Interpolation Example (YAML) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Demonstrates how to use metrics data from a JSON file within the presentation YAML. The `{{ metrics.path.to.value }}` syntax allows dynamic insertion of data into slide content. ```yaml # Given metrics.json: {"summary": {"total": 128}} data: title: "{{ metrics.summary.total }} Assets Tracked" # Output: "128 Assets Tracked" ``` -------------------------------- ### Metrics JSON Data Example Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Contains dynamic data used for interpolation within the presentation's YAML configuration. Values can be referenced using the `{{ metrics.path.to.value }}` syntax in YAML strings. ```json { "summary": { "total_assets": 128, "categories": 9 } } ``` -------------------------------- ### Initialize New Presentation Project Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Creates a new presentation project directory with starter files including `presentation.yaml`, `metrics.json`, and an empty `slides/` directory. The `` argument specifies the project directory name. ```bash pf init ``` -------------------------------- ### Project Initialization Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Initializes a new presentation project with starter files. ```APIDOC ## Initialize Presentation Project ### Description Creates a new presentation project directory with starter files: `presentation.yaml`, `metrics.json`, and an empty `slides/` directory. ### Method CLI Command ### Endpoint `pf init ` ### Parameters #### Path Parameters - **name** (string) - Required - The name of the new presentation project directory. ### Request Example ```bash pf init my-presentation ``` ### Response #### Success Response Creates a new directory structure: ``` my-presentation/ ├── presentation.yaml ├── metrics.json └── slides/ ``` #### Response Example (No direct output, but file structure is created.) ``` -------------------------------- ### Build Presentation (CLI) Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Builds the presentation slides from the specified configuration and metrics files. The output is directed to a specified directory, and the presentation is automatically opened in the browser. ```shell pf build --config my-deck/presentation.yaml --metrics my-deck/metrics.json --output my-deck/slides --open ``` -------------------------------- ### Build Presentation Command Options (Bash) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Details the command-line options available for the `pf build` command. These options allow customization of input files and the output directory for the generated slides. ```bash pf build --config / -c — Path to presentation.yaml (default: `presentation.yaml`) pf build --metrics / -m — Path to metrics.json (default: `metrics.json`) pf build --output / -o — Output directory (default: `slides`) ``` -------------------------------- ### Serve Presentation Command Options (Bash) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Details the command-line options available for the `pf serve` command. These options control the directory to serve and the port number for the local development server. ```bash pf serve --dir / -d — Directory to serve (default: `slides`) pf serve --port / -p — Port number (default: `8080`) ``` -------------------------------- ### Build Presentation Slides Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Builds the presentation slides from configuration and metrics files. Options allow specifying the config file, metrics file, output directory, and auto-opening the presentation in a browser. The build process involves loading data, interpolating metrics, rendering slides with Jinja2, and generating CSS variables. ```bash pf build \ --config presentation.yaml \ --metrics metrics.json \ --output slides \ --open ``` -------------------------------- ### Scaffold New Presentation (CLI) Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Initializes a new presentation project with the specified name. This command creates the necessary directory structure and configuration files. ```shell pf init my-deck ``` -------------------------------- ### Build Presentation Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Builds the presentation from configuration and metrics files. ```APIDOC ## Build Presentation ### Description Builds the presentation by processing the `presentation.yaml` configuration and `metrics.json` data, rendering slides, and generating output files. ### Method CLI Command ### Endpoint `pf build [OPTIONS]` ### Parameters #### Query Parameters - **-c, --config** (string) - Optional - Default: `presentation.yaml` - Path to the YAML configuration file. - **-m, --metrics** (string) - Optional - Default: `metrics.json` - Path to the metrics JSON file. - **-o, --output** (string) - Optional - Default: `slides` - Output directory for the built presentation. - **--open** (boolean) - Optional - Default: `off` - Automatically open `present.html` in the browser after building. ### Request Example ```bash pf build -c config.yaml -m data.json --open ``` ### Response #### Success Response Generates HTML, CSS, and other assets in the specified output directory (default: `slides/`). #### Response Example Output directory (`slides/`) will contain: ``` slides/ ├── present.html ├── slide_01.html ├── theme/ │ └── ... └── variables.css ``` ``` -------------------------------- ### Python API for Presentation Building Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Demonstrates direct Python usage of the `PresentationBuilder` class for building presentations. It requires a configuration file and an output directory. ```python from pf.builder import PresentationBuilder builder = PresentationBuilder( config_path="presentation.yaml", metrics_path="metrics.json" ) output_path = builder.build(output_dir="slides") ``` -------------------------------- ### Package Presentation (CLI) Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Packages the built presentation slides into a single zip file for easy sharing. The command takes the directory containing the slides as input. ```shell pf zip --dir my-deck/slides ``` -------------------------------- ### Package Presentation Slides Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Packages the built slides into a self-contained `.zip` file for easy distribution. Recipients can extract the zip and open `present.html` without needing a server. Options include specifying the slides directory and the output zip file path. ```bash pf zip \ --dir slides \ --output my-presentation.zip ``` -------------------------------- ### Data Table Layout Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Configures a two-section layout optimized for benchmark tables. It uses a `sections` list where each section represents a column and can contain table data, insights, and section titles/icons. ```yaml layout: data-table data: title: "Benchmarks" sections: - section_title: "Section A" section_icon: "vector-square" table: headers: ["Model", "Score"] rows: - ["Model A", "0.95"] winner_rows: [0] footnote: "Note" insight: text: "Key finding." ``` -------------------------------- ### Stat Grid Layout Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Sets up a KPI dashboard layout with two columns, typically containing stat grids, cards, and insights. This layout is suitable for displaying key metrics. ```yaml layout: stat-grid data: title: "Key Metrics" columns: - - type: stat-grid stats: - { value: "128", label: "Total" } - type: card header: "Details" items: ["Item one", "Item two"] ``` -------------------------------- ### Adding Custom Layouts (Jinja2) Source: https://github.com/terminalgambit/presentation-framework/blob/main/README.md Illustrates how to create and use custom slide layouts within the presentation framework. It involves creating a Jinja2 template file, extending the base template, and referencing the custom layout in the presentation YAML. ```jinja2 {% extends "base.html.j2" %} {% from "partials/card.html.j2" import challenge_card %} {% block content %} {% include "partials/header.html.j2" %} {% endblock %} ``` -------------------------------- ### Presentation Configuration (presentation.yaml) Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines the structure, metadata, theme, and slides for a presentation. ```APIDOC ## Presentation Configuration (`presentation.yaml`) ### Description The main configuration file for a presentation project. It defines metadata, theme settings, and the content/layout of each slide. ### Method File Configuration ### Endpoint `presentation.yaml` ### Parameters #### Request Body - **meta** (object) - Required - Presentation metadata. - **title** (string) - Required - The title of the presentation. - **authors** (array of strings) - Optional - List of authors. - **institution** (string) - Optional - The institution or company. - **date** (string) - Optional - The date of the presentation (YYYY-MM-DD). - **theme** (object) - Optional - Visual theme settings. - **primary** (string) - Optional - Primary background color (hex code). - **accent** (string) - Optional - Primary accent color (hex code). - **fonts** (object) - Optional - Font family names for different text elements. - **heading** (string) - Optional - Font for headings. - **subheading** (string) - Optional - Font for subheadings. - **body** (string) - Optional - Font for body text. - **slides** (array of objects) - Required - An array defining each slide. - **layout** (string) - Required - The layout template for the slide (e.g., `title`, `two-column`). - **data** (object) - Required - Data specific to the chosen layout, potentially using `{{ metrics.x.y }}` interpolation. ### Request Example ```yaml meta: title: "My Awesome Presentation" authors: ["Jane Doe"] institution: "Example University" date: "2023-10-27" theme: primary: "#1E3A8A" # Dark blue accent: "#FBBF24" # Amber fonts: heading: "Merriweather" body: "Open Sans" slides: - layout: title data: title: "{{ metrics.title_data.main_title }}" subtitle: "A Presentation Framework Demo" - layout: two-column data: title: "Key Features" left: - type: card title: "Easy to Use" text: "Simple CLI commands and clear configuration." right: - type: list items: ["Customizable Themes", "Metrics Interpolation", "Export Options"] ``` ### Response #### Success Response (This is a configuration file, not an API endpoint. Success is determined by the `pf build` command processing it without errors.) #### Response Example (See Request Example for structure.) ``` -------------------------------- ### Stat Grid Component Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Configures a `stat-grid` component for displaying key performance indicators. It supports 2, 3, or 4 columns and accepts a list of stats, each with a value and label. An optional `compact` flag can be used. ```yaml type: stat-grid cols: 2 # 2, 3, or 4 columns stats: - { value: "128", label: "Total Assets" } - { value: "94%", label: "Accuracy", compact: true } ``` -------------------------------- ### Slide Layouts Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Documentation for available slide layout templates and their data structures. ```APIDOC ## Slide Layouts ### Description Defines the structure and available data fields for different slide layout templates used in the presentation. ### Method Layout Definition ### Endpoint Defined within `presentation.yaml` under the `slides` array. ### Parameters #### Layout: `title` - **layout**: `title` - **data**: - **title** (string) - Required - Main title text. - **subtitle** (string) - Optional - Subtitle text. - **tagline** (string) - Optional - A short tagline. - **quote** (string) - Optional - An italicized quote. - **title_size** (string) - Optional - CSS value for title font size (e.g., `120px`). - **features** (array of objects) - Optional - Grid of feature items. - **icon** (string) - Required - Name of the icon. - **label** (string) - Required - Feature title. - **sub** (string) - Optional - Feature description. - **footer** (string) - Optional - Text for the slide footer. #### Layout: `two-column` - **layout**: `two-column` - **data**: - **title** (string) - Required - Slide title. - **subtitle** (string) - Optional - Slide subtitle. - **column_ratio** (string) - Optional - CSS grid column ratio (e.g., `2fr 1fr`). - **left** (array of block objects) - Content for the left column. - **right** (array of block objects) - Content for the right column. #### Block Types (for `two-column` and others): - **`card`** - **icon** (string) - Optional - **title** (string) - Optional - **text** (string) - Optional - **bullets** (array of strings) - Optional - **`solution-box`** - **badge** (string) - Optional - **title** (string) - Required - **icon** (string) - Optional - **items** (array of strings) - Optional - **`stat-grid`** - **cols** (integer) - Required - Number of columns (2, 3, or 4). - **stats** (array of objects) - Required - Statistics to display. - **value** (string | number) - Required - **label** (string) - Required - **`table`** - **headers** (array of strings) - Required - **rows** (array of arrays) - Required - **winner_rows** (array of arrays) - Optional - **footnote** (string) - Optional - **`dist-bars`** - **bars** (array of objects) - Required - **label** (string) - Required - **width** (string) - Required - **pct** (string) - Required - **color_class** (string) - Optional - **`val-bars`** - **items** (array of objects) - Required - **label** (string) - Required - **lift** (string | number) - Required - **width** (string) - Required - **color** (string) - Optional - **`insight`** - **text** (string) - Required - **icon** (string) - Optional - **`html`** - **content** (string) - Required - Raw HTML content. ### Request Example ```yaml # Example for title layout - layout: title data: title: "Project Overview" subtitle: "Using the Presentation Framework" title_size: "90px" # Example for two-column layout with various blocks - layout: two-column data: title: "Features" column_ratio: "1fr 2fr" left: - type: card title: "Core Feature" text: "This is a description of the core feature." right: - type: stat-grid cols: 3 stats: - value: "100+" label: "Slides" - value: "5" label: "Layouts" - type: html content: "

Some raw HTML content.

" ``` ### Response #### Success Response (These are definitions for structuring presentation content. Success is validated during the `pf build` process.) #### Response Example (See Request Example for structure.) ``` -------------------------------- ### Table Component Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines a `table` component with headers, rows, and optional features like highlighted `winner_rows`, a `total_row`, and a `footnote`. Row and header data are provided as lists. ```yaml type: table headers: ["Model", "Score", "Notes"] rows: - ["Model A", "0.95", "Best"] - ["Model B", "0.87", "Good"] winner_rows: [0] # Highlighted rows (0-indexed) total_row: ["Total", "—", "—"] # Optional footnote: "Footnote text" ``` -------------------------------- ### Theme Configuration and CSS Variable Derivation Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Configures the visual theme of the presentation using primary and accent colors, along with font choices. The framework automatically generates CSS variables from the accent color for various styling purposes. ```yaml # Dark green + gold (luxury brand) theme: primary: "#0D1F0D" accent: "#D4AF37" fonts: heading: "Cormorant Garamond" subheading: "Raleway" body: "Source Sans Pro" ``` -------------------------------- ### Custom HTML Snippet Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html A basic HTML snippet demonstrating custom styling using CSS variables. This can be directly embedded within presentation slides. ```html
Custom HTML
``` -------------------------------- ### Three-Column Layout Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines a three-column layout using a list of three lists for content. Each column can contain various component types like cards, stat grids, tables, or HTML. ```yaml layout: three-column data: title: "Title" columns: - # Column 1 - type: card | stat-grid | table | val-bars | insight | image | html - # Column 2 - ... - # Column 3 - ... ``` -------------------------------- ### Two-Column Slide Layout Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Configures a two-column slide layout with an optional header. Each column can contain various content block types such as cards, stats, tables, or raw HTML. The `column_ratio` option controls the relative widths of the columns. ```yaml layout: two-column data: title: "Slide Title" # Required subtitle: "Optional" # Optional column_ratio: "2fr 1fr" # Optional — CSS grid cols left: # Content blocks - type: card icon: "star" title: "Card Title" text: "This is the card text." bullets: ["Bullet 1", "Bullet 2"] right: # Same types + unit-grid, val-bars - type: stat-grid cols: 3 stats: - value: "100" label: "Stat 1" - value: "200" label: "Stat 2" ``` -------------------------------- ### Closing Slide Layout Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines a closing slide for 'Thank You' or Q&A sessions, featuring a decorative frame. It supports a title, subtitle, info items (like GitHub links or team names), and footer text. ```yaml layout: closing data: title: "Thank You" subtitle: "Questions & Discussion" info_items: - type: pill icon: "fa-brands fa-github" # Full FA class text: "github.com/user/repo" - type: info icon: "fa-solid fa-users" text: "Team Name" footer: "Footer text" ``` -------------------------------- ### Solution Box Component Definition Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines a `solution_box` component, which is an accent-bordered box containing a badge, title, icon, and a checklist. It's used via `type: solution-box`. ```yaml type: solution-box badge: "Badge Text" title: "Box Title" icon: gem items: - "Checklist item" ``` -------------------------------- ### HTML Content Block for Two-Column Layout Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Allows embedding raw HTML content directly into a slide column. This provides flexibility for custom layouts or integrating external HTML snippets. ```yaml - type: html content: "

This is raw HTML.

" ``` -------------------------------- ### Distribution Bar Chart Component Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Configures a `dist-bars` component for visualizing data distribution. Each bar has a label, width, percentage, and a color class. Available color classes include `bar-gold`, `bar-green`, and `bar-blue`. ```yaml type: dist-bars bars: - { label: "Category", width: 80, pct: "80%", color_class: "bar-gold" } ``` -------------------------------- ### Zip Presentation Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Packages the built presentation into a self-contained zip file. ```APIDOC ## Zip Presentation ### Description Packages the built presentation files into a single `.zip` archive, suitable for distribution without requiring a local server. ### Method CLI Command ### Endpoint `pf zip [OPTIONS]` ### Parameters #### Query Parameters - **-d, --dir** (string) - Optional - Default: `slides` - The directory containing the built presentation files to package. - **-o, --output** (string) - Optional - Default: `.zip` - The path and filename for the output zip file. ### Request Example ```bash pf zip -d build/ -o my-presentation.zip ``` ### Response #### Success Response Creates a `.zip` file containing the presentation assets. #### Response Example Creates `my-presentation.zip` in the specified location. ``` -------------------------------- ### Title Slide Layout Configuration Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines the content for a title slide, which features a centered hero with a decorative frame. Supports a main title, optional subtitle, tagline, quote, title size adjustment, and a grid of features with icons. ```yaml layout: title data: title: "JEMA" # Required subtitle: "Subtitle" # Optional tagline: "One-line description" # Optional quote: "\"Quoted text.\"" # Optional (italic) title_size: "120px" # Optional (default 120px) features: # Optional — grid of icons - icon: gem label: "Feature" sub: "Description" footer: "Author — Institution" # Optional ``` -------------------------------- ### Metrics Data (metrics.json) Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Stores dynamic data used for interpolation within the presentation configuration. ```APIDOC ## Metrics Data (`metrics.json`) ### Description Stores dynamic data that can be referenced and interpolated within the `presentation.yaml` file using the `{{ metrics.path.to.value }}` syntax. This allows for dynamic content generation. ### Method Data File ### Endpoint `metrics.json` ### Parameters #### Request Body - **(Any valid JSON structure)** - The structure of the JSON object is flexible and depends on the data needed for interpolation. ### Request Example ```json { "summary": { "total_assets": 128, "categories": 9 }, "slide_specific": { "title_data": { "main_title": "Dynamic Presentation Title" } } } ``` ### Response #### Success Response (This is a data file, not an API endpoint. Success is determined by the `pf build` command successfully reading and interpolating values from it.) #### Response Example (See Request Example for structure.) ``` -------------------------------- ### Value Bar Chart Component Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines a `val-bars` component for displaying value-based bars. Each item includes a label, lift percentage, width, and a specific color value. The color is specified as a hex code. ```yaml type: val-bars items: - { label: "Metric", lift: "+12%", width: 75, color: "#C4A962" } ``` -------------------------------- ### Challenge Card Component Definition Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines a `challenge_card` component, characterized by a left border, an icon circle, title, text, and bullet points. It's used within two-column layouts via `type: card`. ```yaml type: card icon: layer-group # FontAwesome icon name title: "Card Title" text: "Body text with HTML support." bullets: - "Bullet point" ``` -------------------------------- ### Insight Component Definition Source: https://github.com/terminalgambit/presentation-framework/blob/main/docs/index.html Defines an `insight` component, typically used to highlight a key finding or important piece of information. It supports rich text formatting and an optional icon. ```yaml type: insight text: "Key finding — explanation." icon: lightbulb ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.