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 🙏

© 2026 – Pkg Stats / Ryan Hefner

datedreamer

v0.4.8

Published

An easy to use lightweight javascript calendar library.

Readme

DateDreamer

An easy to use lightweight javascript calendar library.

Install & Usage

Install

Install DateDreamer with either yarn or npm.

npm install datedreamer
yarn install datedreamer

Use

<script src="node_modules/datedreamer/datedreamer.js">

<div id="calendar"></div>

<script>
   window.onload = () => {
       new datedreamer.calendar({...options})
   }
</script>

OR

import * as datedreamer from "datedreamer";

new datedreamer.calendar({...options});

OR

import {calendar} from "datedreamer";

new calendar({...options});

Standalone Calendar

Use this if you want a standalone calendar that comes with an input filled and a Today button.

  • element: Sets where to insert the calendar to. Can be either a CSS selector string or an HTMLElement object.

  • selectedDate: Sets the starting date for the calendar. Can be set to a date string, Date object, or null. If null, todays date will be selected by default. If a string is passed, the format option should also be passed in order for the calendar to know the format of the selectedDate that you are passing.

  • format: Use this to specify the input AND output format of the date. Please see the available formats from DayJS. Example: 'DD/MM/YYYY'

  • iconNext: Sets the next arrow icon. You can pass it either text or an svg.

  • iconPrev: Sets the previous arrow icon. You can pass it either text or an svg.

  • inputLabel: Sets the label of the date input element.

  • inputPlaceholder: Sets the placeholder of the date input element.

  • hideInputs: Hides the input and today button from the UI.

  • onChange: Use this to provide a callback function that the calendar will call when the date is changed. The callback function will receive a CustomEvent argument that will include the chosen date inside the detail property.

    new datedreamer.calendar({
        ...,
        onChange: (e) => {
            // Get Date object from event
            console.log(e.detail);
        }
    })
  • onRender: Use this to provide a callback function that the calendar will call when the calendar is rendered. The callback function will receive a CustomEvent argument that will include a calendar property inside of the event detail property.

        new datedreamer.calendar({
            ...,
            onRender: (e) => {
                // Calendar has rendered
                console.log(e.detail.calendar);
            }
        })
  • theme: Sets the style template to use. Options are unstyled and lite-purple.

    • unstyled:

      Unstyled Calendar

    • lite-purple:

      Calendar using lite-purple theme

  • darkMode: Enable dark mode styling for the calendar. Works with both unstyled and lite-purple themes.

        new datedreamer.calendar({
            ...,
            darkMode: true
        })
  • darkModeAuto: Automatically detect and follow the user's system preference for dark mode. When enabled, the calendar will automatically switch between light and dark mode based on the user's system settings. This takes precedence over the darkMode setting when enabled.

        new datedreamer.calendar({
            ...,
            darkModeAuto: true
        })

    Note: The calendar will listen for system preference changes and update automatically when the user changes their system's dark mode setting.

  • styles: Use this property to pass css styles that will be passed into the components style tag.

        new datedreamer.calendar({
            ...,
            styles: `
                button {
                    color: blue
                }
            `
        })

Toggle Calendar

The toggle calendar has the same options as the Standalone Calendar, however the input is a standalone input element which when clicked, triggers the calendar to show.

Toggle Calendar Input

Toggle Calendar

new datedreamer.calendarToggle({
    ...options
});

Development

Quick Start

# Clone the repository
git clone https://github.com/DateDreamer/DateDreamer.git
cd DateDreamer

# Run the setup script (macOS/Linux)
chmod +x scripts/setup-dev.sh
./scripts/setup-dev.sh

# Or manually:
yarn install
npx husky install
yarn format

Available Scripts

| Command | Description | |---------|-------------| | yarn start | Start development server | | yarn build | Build for production | | yarn test | Run tests | | yarn test:watch | Run tests in watch mode | | yarn test:coverage | Run tests with coverage report | | yarn lint | Run ESLint | | yarn lint:fix | Fix ESLint errors automatically | | yarn format | Format code with Prettier | | yarn type-check | Run TypeScript type checking |

Code Quality

This project uses several tools to maintain code quality:

  • ESLint - Code linting and style enforcement
  • Prettier - Code formatting
  • Husky - Git hooks for pre-commit checks
  • Jest - Unit testing framework
  • TypeScript - Type checking

Testing

# Run all tests
yarn test

# Run tests in watch mode
yarn test:watch

# Run tests with coverage
yarn test:coverage

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting (yarn test && yarn lint)
  5. Commit your changes (yarn commit)
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Documentation

Developed with love by Jorge Felico