open-index/open-npm huggingface dataset:
npm package: @luukone/darkmode-toggle
Description: Dark mode for your app with a simple toggle button
Author: Luuk Hafkamp
Latest version: 2.0.1

# A simple dark mode toggle
Add dark mode styling to your app/website with a simple toggle button. The selection is saved in localStorage.

## Install
```
npm install @luukone/darkmode-toggle
```

## Usage
Create an element where you want to inject the toggle button in:
```
<div id="screen-mode">
  // the toggle button will be injected here
</div>
```

Create a `.dark-mode` class in your css file:
```
.dark-mode {
  background: #000;
}

.dark-mode h1 {
  color: #CCC;
}
```

Import the package in your javascript file and create an instance with the following arguments:
- the element you want to inject the toggle button in
- the name of the css class where your dark mode styles will live

Example:
```
import Dark from '@luukone/darkmode-toggle';

new Dark(document.querySelector('#screen-mode'), 'dark-mode')
```

Add the following script right after the `<body>` tag:
```
<body>
  <script>
    if (localStorage.getItem('screen_mode')) {
      document.querySelector('body').classList.add('dark-mode')
    }
  </script>

  // content
```

This way the browser will render the dark mode styles before rendering any other styles.


[optional] get a nice looking toggle button by importing the following css file or by directly copying the css code from [w3schools](https://www.w3schools.com/howto/howto_css_switch.asp).
```
@import '~@luukone/darkmode-toggle/dark-mode';
```
npm package: @luvano/prettier
Description: Enterprise-grade shared Prettier configuration for Luvano Team
Author: Luvano Team
Latest version: 1.0.7

# @luvano/prettier

Enterprise-grade, extensible Prettier configuration used across all Luvano Team repositories.

## ✨ Features

- Modular presets (base, TypeScript, React, Nest, Markdown)
- Auto-applied overrides (JSON, YAML, GraphQL)
- Support for plugins:
  - prettier-plugin-sort-imports
  - prettier-plugin-tailwindcss
- Deep configuration merging
- Schema-validated custom overrides
- Zero-config usage — but fully extensible

---
npm package: @luvella/eslint-config
Description: Luvella's ESLint config for clean and stylish code.
Author: Luvella
Latest version: 1.0.3

# eslint-config
> 🌟 Luvella's ESLint config for clean and stylish code.

# Install & Usage
`npm install @luvella/eslint-config` 

In your `.eslintrc.json` add:
```json
{
	"extends": "@luvella"
}
```
npm package: @luvella/firework
Description: 🎆 Command framework and utilities for the Eris Discord library.
Author: Luvella
Latest version: 1.1.2

<div align="center">
	<h2>Firework</h2>
	<blockquote align="center">🎆 Command framework and utilities for the Eris Discord library.</blockquote>
	<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2FLuvella%2FFirework.svg?type=shield" href="https://app.fossa.com/projects/git%2Bgithub.com%2FLuvella%2FFirework?ref=badge_shield">
	<p>
    	Firework is a simple, easy to use command framework for <a href="https://abal.moe/Eris/">Eris</a>. It mostly only helps you with loading, managing, etc. and leaves running the command and anything else to the user (you). 
    	<hr>
	</p>
</div>

## Table of Contents
- [Install](#install)
- [Example](#example)
- [Links](#links)
- [License](#license) 

### Install 
`npm install @luvella/firework`

### Example
[See here](example/) for an example bot.  

Or...  
```js
const Firework = require('@luvella/firework');
const bot = new Firework.Client('token');

const ping = new Firework.Command(bot, {
	name: 'ping',
	aliases: ['pong']
}).executor(function ({ msg, args }) {
	msg.channel.createMessage(`Ponged ${args[0]}!`);
	// Think of `this.bot` as `bot`
	this.bot.logger.debug('ponged');
});
bot.addCommand(ping);

bot.on('messageCreate', (msg) => {
	const prefix = '!';
	if (!msg.content.startsWith(prefix)) return;

	const args = msg.content.slice(prefix.length).trim().split(' ');
	const command = args.shift().toLowerCase();

	const cmd = bot.getCommand(command); // works with the name and aliases as well
	if (!cmd) return;

	cmd.run({ msg, args });
})
```

### Links
- Documentation: Soon at https://luvella.github.io/Firework
- Alternative(s)
  - [hibiscus](https://github.com/hibiscus-eris/hibiscus) for a higher level solution

### License
Firework is licensed under the MIT license.  
[Read here](LICENSE) for more info.


[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FLuvella%2FFirework.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FLuvella%2FFirework?ref=badge_large)
npm package: @luvies/business-rules
Description: A JS-expression-based rules engine
Author: luvies
Latest version: 0.7.1

# Node.js Business Rules

[![Build Status](https://travis-ci.com/luvies/node-business-rules.svg?branch=master)](https://travis-ci.com/luvies/node-business-rules) [![Coverage Status](https://coveralls.io/repos/github/luvies/node-business-rules/badge.svg?branch=master)](https://coveralls.io/github/luvies/node-business-rules?branch=master)

A JS-expression-based rules engine.
npm package: @luvies/config
Description: A generic set of configs for all my node projects
Author: luvies
Latest version: 3.1.3

# Node Shared Configs

This package provides a number of shared configs that can be reused across multiple projects. It currently provides configs for the following tools:

- TypeScript
- ESLint (with TS rules)
- Prettier

All the base dependencies are given as peer dependencies to ensure packages are installed & to allow pushing update warnings by bumping the minimum versions.

## Usage

### TypeScript

To use with TypeScript, you can use a config like the following:

```jsonc
{
  "extends": "@luvies/config/tsconfig.base.json",
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "dist",
    "module": "commonjs"
    // The base tsconfig defaults to es2018
    // "target": "es2017",
    // "lib": ["es2017"]
  },
  "exclude": ["node_modules", "dist"]
}
```

TypeScript is only included as a peer dependency as it's much more version dependent.

### Prettier

Use the following `.prettierrc` to use the base config:

```json
"@luvies/config/prettier.base.json"
```

### ESLint

These are currently the packages that are used (all are specified as peer dependencies):

- `eslint`
- `@typescript-eslint/parser`
- `@typescript-eslint/eslint-plugin`
- `eslint-plugin-prettier`
- `eslint-config-prettier`
- `eslint-plugin-sort-imports-es6-autofix`

Use the following config to extend the shared one:

```json
{
  "root": true,
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "extends": "./node_modules/@luvies/config/eslint.base.json",
  "env": {
    "es6": true,
    "node": true
  }
}
```

#### React

For the React-specific config, you need the following extra packages (they are not added as peer dependencies since only React projects will use them):

- `eslint-plugin-react`
- `eslint-plugin-react-hooks`

You then need to extend the react config:

```json
{
  "root": true,
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "extends": "./node_modules/@luvies/config/eslint.react.json",
  "env": {
    "es6": true
  }
}
```

#### Vue

For the Vue-specific config, you need the following extra packages (they are not added as peer dependencies since only Vue projects will use them):

- `eslint-plugin-vue`
- `vue-eslint-parser`
- `@vue/eslint-config-typescript`
- `@vue/eslint-config-prettier`

You then need to extend the vue config:

```json
{
  "root": true,
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "extends": "./node_modules/@luvies/config/eslint.vue.json",
  "env": {
    "es6": true
  }
}
```
npm package: @luvies/evaluator
Description: A simple, secure expression evaluator
Author: luvies
Latest version: 0.2.2

# Expression Evaluator

[![Build Status](https://travis-ci.com/luvies/node-evaluator.svg?branch=master)](https://travis-ci.com/luvies/node-evaluator) [![Coverage Status](https://coveralls.io/repos/github/luvies/node-evaluator/badge.svg)](https://coveralls.io/github/luvies/node-evaluator)

A simple, secure expression evaluator for node, based on jsep.
npm package: @luvies/take
Description: take: A task runner/build tool inspired by make & jake
Author: luvies
Latest version: 0.0.9

# Take - A Promise & TypeScript-based build tool & task runner
![build status](https://travis-ci.com/luvies/take.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/github/luvies/take/badge.svg?branch=master)](https://coveralls.io/github/luvies/take?branch=master) [![npm version](https://badge.fury.io/js/%40luvies%2Ftake.svg)](https://www.npmjs.com/package/@luvies/take)

Take is a TypeScript-based task runner aimed at providing a solution to create Makefiles that are powerful yet need little extra config. Take is based on the following principles:

- Be able to be used for any project regardless of language & build setup
  - This means making sure it can be used to its fullest without needing a package.json
- Provide a simple yet powerful task system that is easy to use, write and read
- Provide utility functions that allow writing the most powerful task runner with the least amount of code
- Be small and lightweight to fit into any system without issues