npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

lumina-slides

v8.5.3

Published

The interface layer for the agentic era. Turn text to UI with declarative JSON.

Readme

Lumina Engine

Version Downloads License: MIT TypeScript


🎨 Layouts & Gallery

Lumina includes 7 built-in layouts ready to use. Just set the type property in your JSON:

| Layout | Description | Visual Preview | | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Statement | Bold title slides for introductions, transitions, or key messages. Supports title, subtitle, and background. type: "statement" | Statement | | Features | Auto-grid layout for showcasing features, benefits, or stats. Adapts columns based on item count. type: "features" | Features | | Timeline | Horizontal timeline with snap navigation. Great for roadmaps, history, or process flows. type: "timeline" | Timeline | | Steps | Numbered step-by-step guide. Perfect for tutorials, instructions, or procedures. type: "steps" | Steps | | Half | Split layout with image on one side, content on the other. Fully responsive. type: "half" | Half | | Chart | Data visualization with Chart.js. Supports bar, line, pie, and doughnut charts. type: "chart" ⚠️ Requires chart.js | Chart | | Flex | Declarative auto-layout system. Define structure with rows, columns, and nested containers. type: "flex" | Flex |

[!TIP] > Embedded Mode: All layouts can be rendered in compact containers (dashboards, widgets) by using the compact: true option.

[!TIP] > See the Code: Click on the dropdowns below to see the exact JSON used to generate these slides.

{
  "type": "timeline",
  "title": "Project History",
  "timeline": [
    {
      "date": "2023",
      "title": "Inception",
      "description": "The idea is born."
    },
    {
      "date": "2024",
      "title": "Launch",
      "description": "First public release."
    }
  ]
}
{
  "type": "chart",
  "chartType": "bar",
  "title": "Quarterly Revenue",
  "data": {
    "labels": ["Q1", "Q2", "Q3", "Q4"],
    "datasets": [
      { "label": "Revenue", "values": [120, 150, 180, 220], "color": "c:p" }
    ]
  }
}

🎭 Theming

Lumina includes 6 beautiful theme presets out-of-the-box. Just pass the name:

const engine = new Lumina("#app", { theme: "ocean" });

| Theme | Description | Preview | | :----------- | :---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | | default | Clean blue on dark. Professional. | default | | ocean | Cyan on slate. Calm and focused. | ocean | | midnight | Indigo on black. Bold and dramatic. | midnight | | forest | Emerald greens. Natural and fresh. | forest | | cyber | Neon pink. Sci-fi futuristic. | cyber | | latte | Light mode. Warm amber on cream. | latte |


⚡ Quick Start

1. Install

# Core installation
npm install lumina-slides

# With Chart support (optional - only if using chart slides)
npm install lumina-slides chart.js

2. Implementation

Lumina is a Framework Agnostic class. It mounts to any DOM node.

import { Lumina } from "lumina-slides";
import "lumina-slides/style.css";

const engine = new Lumina("#app", {
  theme: "dark",
  loop: true,
});

// Load Data (From your API, or static)
engine.load({
  meta: { title: "Demo Deck" },
  slides: [
    { type: "statement", title: "Hello World", subtitle: "Powered by Lumina" },
  ],
});

🤖 Building Agents?

We have a dedicated guide for that.

[!IMPORTANT] > Read the Agent Integration Guide

Learn about:

  • Streaming: How to pipe token streams directly into the engine.
  • Aliases: Improve latency by 30% using t instead of title.
  • Feedback Loops: How to let the AI know what the user is clicking.

Token Optimization

Lumina includes a built-in normalizer. Your LLM can output "lazy" JSON to save money.

| Concept | Standard | Short Alias | | :------------- | :----------- | :---------- | | Header | title | t | | Sub-Header | subtitle | s | | Picture | image | img | | Background | background | bg |


📚 Documentation & Resources

| Resource | Description | | :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- | | 📖 Full Documentation | Complete guides, examples, and live playground | | 🔧 API Reference | TypeDoc-generated API docs with all methods and types | | 🤖 Agent Integration Guide | How to integrate Lumina with AI agents (OpenAI, Anthropic, etc.) | | 📝 LLM System Prompt | Ready-to-use system prompt for your AI to generate slides | | 🎮 Live Playground | Try Lumina in your browser with live JSON editing |