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

awesome-timeline-react

v0.1.15

Published

awesome timeline for react applications

Downloads

36

Readme

Awesome Timeline React

Introduction

Awesome Timeline React is a component that developers can include in their projects. It provides a Gantt timeline for visualizing and managing events. With simple configuration, powerful performance, and customization options, it's an excellent choice for your project. Current releases are pre-releases. If you have any ideas for features or encounter any bugs, please email me at [email protected].

Instalation

npm install awesome-react-timeline

Ladle

To run ladle stories, type:

npm run ladle

Configuration

First, import the Timeline component and css into your project.

import { Timeline } from "awesome-timeline-react";
import "awesome-timeline-react/dist/index.css";

The following properties for Timeline component are available:

  • rows – an array of objects that define rows. The order within the array will be preserved in the Timeline.

  • events – an array of objects that define events assigned to particular rows. Each object includes:

    • id: string
    • rowId: string
    • startTime: number (timestamp in seconds)
    • endTime: number (timestamp in seconds)
    • props:
      • isLocked: boolean (defines if event is locked, meaning it cannot be moved. Default is false)
      • content: JSX.Element | string (customizable content for each event)
      • classNames: string[] (array of additional class names for customizing the event)
      • isResizable: boolean (defines if event is resizable, overrides the default property eventsResize)
      • showPrompt: boolean (defines if prompt will be shown after hover. Works only if showEventPrompt is set as true)
      • metadata: any (some data that can be used by event prompt template)
  • staticEvents – an array of objects that define static events for particular rows, meaning the events are not interactable by the user.

  • onDrop – an external callback for the onDrop event that can be injected. The callback receives the following properties:

    • eventId: string
    • oldRowId: string
    • newRowId: string
    • startTime: number (timestamp in seconds)
    • endTime: number (timestamp in seconds)
  • onResize – an external callback after the resize event was done, that can be injected. The callback receives the following properties:

    • eventId: string
    • startTime: number (timestamp in seconds)
    • endTime: number (timestamp in seconds)
  • additionalClassNames – contains additional class names that will be included within elements:

    • timeBar: string
    • dayRow: string
    • hourRow: string
    • line: string
    • rowsHeader: string
  • showRTIndicator – property that controls wheter Real Time Indicator will be show (default as true)

  • eventsResize - property that define if events are resizeable (default as true)

  • showEventPrompt - property that define if prompt for events will be shown after hover (defualt as true)

  • eventPromptTemplate - function that can be passed for event prompt. Function receives currently hovered event object. It returns JSX Element so it can be customize in various ways. The example is in story.

Awesome Features

One of the awesome features (currently hidden from the interface) is adjusting the granulation of the grid. To achieve this, click the wheel on the mouse. This will hide the scroll bar, and you can adjust the grid granulation by scrolling the wheel. Each scroll iteration adjusts the grid by ±15 minutes, depending on the scroll direction.

Roadmap

Here, we will store major features planned for future releases (from highest to lowest priority):

  1. ~~Resize events~~ - published in 0.1.8 version
  2. ~~Real time line~~ - published in 0.1.7 version
  3. ~~Customizable prompts after hovering over an event~~ - published in 0.1.14 version
  4. Customizable second row of the time bar
  5. Intersection observer with display: none property to further improve performance