open-index/open-npm huggingface dataset:
npm package: @nysds/components
Description: New York State's design system and code component library.
Author: NYS Design System Team
Latest version: 1.16.0

# New York State Design System

![Version](https://img.shields.io/github/v/release/ITS-HCD/nysds) ![Accessibility: WCAG 2.2 AA](https://img.shields.io/badge/accessibility-WCAG%202.2%20AA-green)

This repository contains a library of reusable code components for building New York State applications and websites. These components are built using LitElement and styled with custom CSS properties (variables) for easy customization.

## About the New York State Design System
Our mission is to standardize and elevate digital experiences across New York State by providing scalable, accessible tools for building applications.

### What’s Included?
 - **Components**: Modular web components built with Lit for performance and flexibility.
 - **Styles**: A foundational CSS framework, including design tokens and utility classes.
 - **Themes**: Customizable agency-specific themes for adapting designs to organizational branding.
 - **Figma Libraries**: Design libraries for prototyping that mirror the components and variables in code, promoting consistency between design and development.

### Why Use NYSDS?

#### Key Benefits
 - **Accessibility**: Every component is tested to meet WCAG 2.2 standards.
 - **Lit-based Web Components**: Built on the powerful and lightweight Lit framework, web components are native code designed to work seamlessly across modern frameworks or standalone applications.
 - **Customizable Design Tokens**: CSS variables that serve as a foundation for consistently building new components.
 - **Override-Friendly Architecture**: Components are designed with built-in overrides, making it easy to styles and behavior to meet specific application needs.

## Install the NYSDS
To start using the NYSDS in your project, you need to install the core libraries:

```bash
npm install @nysds/components @nysds/styles
```

### Reference the files in your application
```html
<script type="module" src="[path-to-dir]/nysds.js"></script>
<link rel="stylesheet" href="[path-to-dir]/nysds-full.min.css" />
```
npm package: @nystik/critterdb-parser
Description: Parse critterDB statblocks into a more consistent structure
Author: Nystik
Latest version: 0.7.6


# CritterDB Parser

A utility module to parse CritterDB statblocks into a more consistent data structure. Utilizes [compromise-js](https://github.com/spencermountain/compromise) to parse relevant data from action and feature descriptions.

## Installation

    npm install --save @nystik/critterdb-parser

## Basic usage

The parser takes an object as exported from CritterDB in json format and returns a parsed statblock.
```typescript
import { Parser, getDefaultOptions } from  '@nystik/critterdb-parser'

// The critters fetched via CritterDB's API lack some derived properties, 
// use normalizeCritter() to ensure the types are compatible
const critterData = Parser.normalizeCritter(data) 
const statblock = Parser.parseCritter(getDefaultOptions())(critterData)
```
## Options

- `conformProficiency`: (default: `'ignore'`)
	- `'conformProfToCr'` in case of a discrepancy adjust proficiency bonus to match challenge rating.
	- `'conformCrToProf'` in case of a discrepancy adjust challenge rating to match proficiency bonus.
	- `'ignore'` ignore discrepancy and leave both proficiency bonus and challenge rating untouched.
- `deriveProficiencyFromModifiers`: (default: `false`) will attempt to derive skill/save proficiency and expertise from flat modifiers.
- `enforceMinimumProficiency`: (default: `true`) if proficiency bonus is lower than 2 set proficiency bonus to 2.
- `linkActions`: (default: `false`) attempt to parse actions used in multiattack and legendary actions.

## Known Issues/Limitations

- The matcher used when linking actions to **multiattack** and **legendary actions** is unreliable and will frequently give the wrong number of actions.
- The parser doesn't distinguish between and/or when parsing damage, other than in the case for versatile damage. It will either ignore the conditional damage or add it as additional damage instead.
- When parsing "multi actions" (i.e. breath weapon, eye rays, etc.) the parser assumes each item in the list starts with a name followed by a period. If the items do not start this way it will parse the entire first sentance as the name of the action.
   
## License

This project is licensed under the MIT license, see [LICENSE](https://gitlab.com/dnd-5e/critterdb-parser/-/blob/develop/LICENSE) for details.
npm package: @nystik/firewire-rtc
Description: WebRTC signaler using firestore.
Author: Nystik
Latest version: 0.1.4

# Firebase WebRTC Signaling

> **NOTE: This is a hobby project with no expectation of support or maintenance.**

## Description

A WebRTC signaler that uses firestore to negotiate the peer connection. Follows the WebRTC [perfect negotiation pattern](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Perfect_negotiation).

## Installation

```
npm install --save-dev @nystik/firewire-rtc
```

## Usage
Remember to initialize your firebase app before using the signaler.

```typescript
import { initializeApp } from 'firebase/app'

const firebaseConfig = {
    apiKey: '<API KEY>',
    ...
}

initializeApp(firebaseConfig)
```

```typescript
import { getSignaler } from 'firewire-rtc'

// Create a peer connection
const peer = new RTCPeerConnection()

// Create signaler for the peer connection and set wether this peer is polite or not (see: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Perfect_negotiation)
const polite = false
const signaler = getSignaler(peer, polite)

// Create a negotiation
const negotiationId = signaler()
...
// Or connect to an existing negotiation
signaler('<negotiation-id>')
```

At this point all offers, answers, and ice candidates are handles by the signaler and we can add streams and data channels to the peer connection as we wish.

```typescript
...
stream.getTracks().forEach((track) => peer.addTrack(track, stream))
...
```

## Known Issues

- if you get `Error: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp()` you need to tell your bundler to remove duplicate imports. For rollup add `dedupe: ['firebase']` to the node-resolve plugin options.

## License

This project is licensed under the MIT license, see [LICENSE](https://gitlab.com/Nystik/firewire-rtc/-/blob/main/LICENSE) for details.