open-index/open-npm huggingface dataset:
npm package: @rybos/agm-drawing
Description: Angular Google Maps (AGM) extension for google maps drawing library
Author: Feliks Khantsis
Latest version: 3.0.2

# Map Drawing for AGM

-----

this package adds drawing support to [AGM][agm].

## Installation

```sh
npm install @agm/drawing
# or
yarn add @agm/drawing
```

## Usage

1. Import the module

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component'
// add these imports
import { AgmCoreModule } from '@agm/core';
import { AgmDrawingModule } from '@agm/drawing'
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AgmCoreModule.forRoot({
      apiKey: ['YOUR_API_KEY_HERE'],
      libraries: ['drawing']
    }),
    AgmDrawingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```
2. use it in your template

```html
<agm-map style="height: 300px" [latitude]="51.673858" [longitude]="7.815982" [agmDrawingManager]="drawing">
</agm-map>
<agm-drawing-manager #drawing="agmDrawingManager" [drawingMode]="'circle'" [circleOptions]="{fillColor:'red', radius: 150}"></agm-drawing-manager>
```


[drawing-manager]: https://developers.google.com/maps/documentation/javascript/reference/#drawing
[agm]: https://angular-maps.com/
npm package: @rybos/agm-markerclusterer
Description: Angular Google Maps (AGM) extension for markerclusterer support
Author: Jens Fahnenbruck
Latest version: 3.0.2

# Marker Clusterer for AGM

-----

this package levereges the [@google/markerclustererplus][markerclustererplus] to add clustering support to
[AGM][agm].

## Installation

@agm/markerclusterer has a peer depedency on [markerclustererplus][markerclustererplus]

```shell
npm install @google/markerclustererplus @agm/markerclusterer --save
# or
yarn add @google/markerclustererplus @agm/markerclusterer
```

## Usage
1. Add assets command to your angular.json
    In your `angular.json` file, go to `projects/<yourproject>/architect/build/options/assets` and add the following line:
    ```json
    {"input": "./node_modules/@google/markerclustererplus/images", "glob": "*", "output": "/images"}
    ```

2. Import the module

    ```typescript
    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { AppComponent } from './app.component';

    // add these imports
    import { AgmCoreModule } from '@agm/core';
    import { AgmMarkerClustererModule } from '@agm/markerclusterer';

    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        AgmCoreModule.forRoot({
          apiKey: ['YOUR_API_KEY_HERE']
        }),
        AgmMarkerClustererModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
    ```
3. use it in your template

    ```html
    <agm-map style="height: 300px" [latitude]="51.673858" [longitude]="7.815982">
      <agm-marker-cluster imagePath="https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m">
        <agm-marker [latitude]="51.673858" [longitude]="7.815982">
        </agm-marker><!-- multiple markers -->
      </agm-marker-cluster>
    </agm-map>
    ```


[markerclustererplus]: https://github.com/googlemaps/v3-utility-library/tree/master/markerclustererplus
[agm]: https://angular-maps.com/
npm package: @rybos/agm-snazzy-info-window
Description: Angular Google Maps (AGM) package for Snazzy Info Window support
Author: Sebastian Holstein
Latest version: 3.0.2

Angular Google Maps (AGM) Snazzy Info Window - Angular Google Maps components
=========

@agm/snazzy-info-window is an extension for the @agm/core package that provides solutions for styleable/customizable info windows with the help of ['Snazzy Info Window'](https://github.com/atmist/snazzy-info-window).

The sources for this package are in the [angular-google-maps](https://github.com/SebastianM/angular-google-maps) repository. Please file issues and pull requests against that repo.

License: See LICENSE file in this folder.
npm package: @rybosome/tspice-native-darwin-arm64
Description: Platform-specific package that points to a prebuilt `tspice` Node native addon (`tspice_backend_node.node`) for **macOS (darwin) / arm64**.
Latest version: 0.0.8

# @rybosome/tspice-native-darwin-arm64

## Overview

Platform-specific package that points to a prebuilt `tspice` Node native addon (`tspice_backend_node.node`) for **macOS (darwin) / arm64**.

This is not meant to be imported directly by most users.

## CSPICE / NAIF disclosure

See [`docs/cspice-naif-disclosure.md`](https://github.com/rybosome/tspice/blob/main/docs/cspice-naif-disclosure.md) for the canonical disclosure text, NAIF links, and pointers to notice files.

This package ships with a `NOTICE` file (see `NOTICE` in the installed package). For easy viewing on GitHub, see [`packages/tspice-native-darwin-arm64/NOTICE`](https://github.com/rybosome/tspice/blob/main/packages/tspice-native-darwin-arm64/NOTICE).

## Purpose / Why this exists

This package exists so package managers can install the correct prebuilt native addon for the current platform.

**Who should touch this:** generally only release / native-backend maintainers. This package is primarily a thin wrapper around a platform build artifact.

## How it fits into `tspice`

- `@rybosome/tspice` declares this as an `optionalDependency`, and npm/pnpm will only install it on matching platforms (`os: ["darwin"]`, `cpu: ["arm64"]`).
- `@rybosome/tspice-backend-node` attempts to `require()` this package (based on `process.platform`/`process.arch`) and uses its exported `bindingPath` to locate the `.node` file.

Relevant code:

- [`packages/backend-node/src/runtime/addon.ts`](https://github.com/rybosome/tspice/blob/main/packages/backend-node/src/runtime/addon.ts)
- [`packages/tspice/package.json`](https://github.com/rybosome/tspice/blob/main/packages/tspice/package.json) (see `optionalDependencies`)

## Installation

You typically don’t install this directly; it’s pulled in automatically when you install `@rybosome/tspice` on a supported platform.

## Usage (Quickstart)

Direct usage is mainly useful for debugging:

```js
const { bindingPath } = require("@rybosome/tspice-native-darwin-arm64");
console.log(bindingPath);
```

## API surface

- `bindingPath: string` (absolute path to `tspice_backend_node.node` within this package)

## Development

There are no build scripts in this package.

If you’re working on the native addon itself, see [`@rybosome/tspice-backend-node`](https://github.com/rybosome/tspice/blob/main/packages/backend-node/README.md) and build it from the repo root:

https://github.com/rybosome/tspice/blob/main/packages/backend-node/README.md

```bash
pnpm --filter @rybosome/tspice-backend-node run build:native
```

## Troubleshooting / FAQ

### “`tspice_backend_node.node` not found next to `index.js`”

This package is only useful when `tspice_backend_node.node` is present (it should be included in the published package).
npm package: @rybosome/tspice-native-darwin-x64
Description: Platform-specific package that points to a prebuilt `tspice` Node native addon (`tspice_backend_node.node`) for **macOS (darwin) / x64**.
Latest version: 0.0.8

# @rybosome/tspice-native-darwin-x64

## Overview

Platform-specific package that points to a prebuilt `tspice` Node native addon (`tspice_backend_node.node`) for **macOS (darwin) / x64**.

This is not meant to be imported directly by most users.

## CSPICE / NAIF disclosure

See [`docs/cspice-naif-disclosure.md`](https://github.com/rybosome/tspice/blob/main/docs/cspice-naif-disclosure.md) for the canonical disclosure text, NAIF links, and pointers to notice files.

This package ships with a `NOTICE` file (see `NOTICE` in the installed package). For easy viewing on GitHub, see [`packages/tspice-native-darwin-x64/NOTICE`](https://github.com/rybosome/tspice/blob/main/packages/tspice-native-darwin-x64/NOTICE).

## Purpose / Why this exists

This package exists so package managers can install the correct prebuilt native addon for the current platform.

**Who should touch this:** generally only release / native-backend maintainers. This package is primarily a thin wrapper around a platform build artifact.

## How it fits into `tspice`

- `@rybosome/tspice` declares this as an `optionalDependency`, and npm/pnpm will only install it on matching platforms (`os: ["darwin"]`, `cpu: ["x64"]`).
- `@rybosome/tspice-backend-node` attempts to `require()` this package (based on `process.platform`/`process.arch`) and uses its exported `bindingPath` to locate the `.node` file.

Relevant code:

- [`packages/backend-node/src/runtime/addon.ts`](https://github.com/rybosome/tspice/blob/main/packages/backend-node/src/runtime/addon.ts)
- [`packages/tspice/package.json`](https://github.com/rybosome/tspice/blob/main/packages/tspice/package.json) (see `optionalDependencies`)

## Installation

You typically don’t install this directly; it’s pulled in automatically when you install `@rybosome/tspice` on a supported platform.

## Usage (Quickstart)

Direct usage is mainly useful for debugging:

```js
const { bindingPath } = require("@rybosome/tspice-native-darwin-x64");
console.log(bindingPath);
```

## API surface

- `bindingPath: string` (absolute path to `tspice_backend_node.node` within this package)

## Development

There are no build scripts in this package.

If you’re working on the native addon itself, see [`@rybosome/tspice-backend-node`](https://github.com/rybosome/tspice/blob/main/packages/backend-node/README.md) and build it from the repo root:

https://github.com/rybosome/tspice/blob/main/packages/backend-node/README.md

```bash
pnpm --filter @rybosome/tspice-backend-node run build:native
```

## Troubleshooting / FAQ

### “`tspice_backend_node.node` not found next to `index.js`”

This package is only useful when `tspice_backend_node.node` is present (it should be included in the published package).
npm package: @rybosome/tspice-native-linux-x64-gnu
Description: Platform-specific package that points to a prebuilt `tspice` Node native addon (`tspice_backend_node.node`) for **Linux / x64 (glibc)**.
Latest version: 0.0.8

# @rybosome/tspice-native-linux-x64-gnu

## Overview

Platform-specific package that points to a prebuilt `tspice` Node native addon (`tspice_backend_node.node`) for **Linux / x64 (glibc)**.

This is not meant to be imported directly by most users.

## CSPICE / NAIF disclosure

See [`docs/cspice-naif-disclosure.md`](https://github.com/rybosome/tspice/blob/main/docs/cspice-naif-disclosure.md) for the canonical disclosure text, NAIF links, and pointers to notice files.

This package ships with a `NOTICE` file (see `NOTICE` in the installed package). For easy viewing on GitHub, see [`packages/tspice-native-linux-x64-gnu/NOTICE`](https://github.com/rybosome/tspice/blob/main/packages/tspice-native-linux-x64-gnu/NOTICE).

## Purpose / Why this exists

This package exists so package managers can install the correct prebuilt native addon for the current platform.

**Who should touch this:** generally only release / native-backend maintainers. This package is primarily a thin wrapper around a platform build artifact.

## How it fits into `tspice`

- `@rybosome/tspice` declares this as an `optionalDependency`, and package managers will only attempt to install it on matching platforms (`os: ["linux"]`, `cpu: ["x64"]`). This package is intended for **glibc-based** Linux distros.
- `@rybosome/tspice-backend-node` attempts to `require()` this package (based on `process.platform`/`process.arch`) and uses its exported `bindingPath` to locate the `.node` file.

Relevant code:

- [`packages/backend-node/src/runtime/addon.ts`](https://github.com/rybosome/tspice/blob/main/packages/backend-node/src/runtime/addon.ts)
- [`packages/tspice/package.json`](https://github.com/rybosome/tspice/blob/main/packages/tspice/package.json) (see `optionalDependencies`)

## Installation

You typically don’t install this directly; it’s pulled in automatically when you install `@rybosome/tspice` on a supported platform.

## Usage (Quickstart)

Direct usage is mainly useful for debugging:

```js
const { bindingPath } = require("@rybosome/tspice-native-linux-x64-gnu");
console.log(bindingPath);
```

## API surface

- `bindingPath: string` (absolute path to `tspice_backend_node.node` within this package)

## Development

There are no build scripts in this package.

If you’re working on the native addon itself, see [`@rybosome/tspice-backend-node`](https://github.com/rybosome/tspice/blob/main/packages/backend-node/README.md) and build it from the repo root:

https://github.com/rybosome/tspice/blob/main/packages/backend-node/README.md

```bash
pnpm --filter @rybosome/tspice-backend-node run build:native
```

## Troubleshooting / FAQ

### “`tspice_backend_node.node` not found next to `index.js`”

This package is only useful when `tspice_backend_node.node` is present (it should be included in the published package).
npm package: @rybr/rydux
Description: Simple flux framework for JavaScript, React, NextJs, TanStack Start, and NodeJs
Author: Ryan Braun
Latest version: 2.0.5

# rydux

A minimal, event-driven global state management library for React and TypeScript.

## Features

- Global, immutable store for slices of state
- Event-driven updates using eventemitter3
- Type-safe reducer/action creation
- Works with both client and server components
- No React Context required

## Installation

```bash
npm install @rybr/rydux
```

## Usage

### 1. Create a reducer

```typescript
import { createReducer } from '@rybr/rydux'

export const CountReducer = createReducer('CountReducer', {
  defaultState: { test: 'original', count: 0, ooga: { booga: 'a' } },
  actions: {
    updateText: (slice, value: string) => {
      slice.test = `${value} - the count is: ${slice.count}`
    },
    updateCount: (slice) => {
      slice.count += 2
    }
  }
})
```

### 2. Update state from anywhere

```typescript
CountReducer.actions.updateText('Hello')
CountReducer.actions.updateCount()
```

### 3. Subscribe to state in a React component

```tsx
import { useEffect, useState } from 'react'
import { CountReducer } from './CountReducer'

function MyComponent() {
  const [state, setState] = useState(() => CountReducer.getSlice())

  useEffect(() => {
    const handleUpdate = (newState) => setState(newState)
    CountReducer.addListener(handleUpdate)
    return () => CountReducer.removeListener(handleUpdate)
  }, [])

  return <div>Count: {state.count}</div>
}
```

### 4. Server/Client Hydration

Use the provided utilities to serialize state from server to client if needed.

## API

- `createReducer(key, { defaultState, actions })` — Create a reducer and slice
- `actions` — Object of reducer actions
- `getSlice()` — Get current slice state
- `replaceSlice(state, { emit })` — Replace slice state
- `updateSlice(state, { emit })` — Merge slice state
- `addListener(callback)` — Subscribe to slice updates
- `removeListener(callback)` — Unsubscribe
- `chain(fn)` — Batch multiple actions

## License

MIT
npm package: @rychu-pawel/spawn-promise
Description: TS written promise wrapper for node's child_process. It doesn't store/cache any stdio.
Author: Rychu
Latest version: 2.0.0

# spawn-promise

TS written promise wrapper for node's child_process. It doesn't store/cache any stdio. By default logs stdout to `console.log` and stderr to `console.error`.

## Installation

```shell
npm install @rychu-pawel/spawn-promise
```

## Usage - simple example:

```js
import spawn from "@rychu-pawel/spawn-promise";

try {
    await spawn(`git`, [`pull`]);
}
catch (error) {
    console.error(error);
}
```

output:

```
$ node ./example.js
Already up to date.
```

## Usage - full example:

```js
import spawn, { SpawnError, SpawnOptions } from "@rychu-pawel/spawn-promise";
import customLogger from "./customLogger";

try {
    let nodeVersion: string | undefined;

    const options: SpawnOptions = { // Same as original spawn options & { stdoutListener, stderrListener }
        stdoutListener: data => (nodeVersion = data.toString().trim()),
        stderrListener: data => customLogger.error(data),
    };

    const promise = spawn(`node`, [`-v`], options);

    console.log(`pid`, promise.child.pid);

    await promise;

    console.log(`Node version is ${nodeVersion}`);
}
catch (err) {
    const error = err as SpawnError;

    console.log(error.message);
    console.log(error.exitCode);
    console.log(error.signal);
}
```

output:

```
$ node ./example.js
pid 11556
Node version is v18.16.0
```

## What actually happens underneath (assuming above simple example):

```js
const childProcess = spawn(`git`, [`pull`], {});

const promise = new Promise((resolve, reject) => {
    let error = null;

    childProcess.once(`error`, err => {
        error = err;
    });

    childProcess.stdout?.on(`data`, data => {
        if (options.stdoutListener)
            options.stdoutListener(data);
        else
            console.log(data);
    });

    childProcess.stderr?.on(`data`, data => {
        if (options.stderrListener)
            options.stderrListener(data);
        else
            console.error(data);
    });

    childProcess.once(`close`, (code, signal) => {
        if (code === 0)
            resolve(code);

        if (error !== null) {
            error.code = code;
            error.signal = signal;
            reject(error);
        }

        if (code !== null) {
            error = new Error(`Child process exited with code ${code}`);
            error.code = code;
            error.signal = signal;
            reject(error);
        }

        if (signal !== null) {
            error = new Error(`Child process exited due to the ${signal} signal`);
            error.code = code;
            error.signal = signal;
            reject(error);
        }

        resolve(0);
    });
});

promise.child = childProcess;

return promise;
```
npm package: @ryco.io/rybot-sdk
Description: ## 🚀 Installation
Latest version: 1.0.6

# rybot-sdk

## 🚀 Installation

```bash
npm install @ryco.io/rybot-sdk
# or
yarn add @ryco.io/rybot-sdk
```

---

## 📦 Usage

<!-- AUTO-GENERATED:USAGE -->
```ts
import { Configuration, ChatApi } from '@ryco.io/rybot-sdk';

const config = new Configuration({
  basePath: 'https://api.ryco.io',
  apiKey: 'YOUR_KEY',
});

const api = new ChatApi(config);

const res = await api.chat({
  messages: [{ "role": "user", "content": "Create a 5th grade math quiz..." }],
  model: "rybot-v1"
});

console.log(res.response);
```
_Current SDK version: `1.0.6`_
<!-- AUTO-GENERATED:USAGE -->

---

## 📚 Documentation

See the full API reference at [rybot.ryco.io/docs](https://rybot.ryco.io/docs)

---

## 🔐 Authentication

All requests require an API key.
Pass your key via the `x-api-key` header.

```ts
const config = new Configuration({
  apiKey: 'your-api-key-here',
});
```

---

## 💡 Features

- 🔐 Typed API requests and responses
- 🧠 Auto-generated from OpenAPI
- ⚡️ Native async/await and fetch support
- 🔄 Always stays in sync with API changes

---

## 🧾 License

MIT
npm package: @ryegaspar/vuedatatable
Description: datatable component for vue 3
Author: Ryan Gaspar
Latest version: 0.1.1-c

# Vue 3 + Vite

This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.

## Recommended IDE Setup

- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)
npm package: @ryel/multiline
Description: Remove leading white space from multiline strings, namely in order to keep code indented without the disadvantage of adding extra white space.
Author: Ryel Oliver
Latest version: 1.0.0

# multiline
Remove leading white space from multiline strings, namely in order to keep code indented without the disadvantage of adding extra white space. Can be used as either:
```
ml`string`
ml('string')
```
npm package: @ryel/sequence
Description: Create a sequence to provide incrementing integers.
Author: Ryel Oliver
Latest version: 1.1.0

# sequence
Create a sequence to provide incrementing integers. A sequence's `min` and `max` values can be configured as well as an incrementing `step`. For example:
```
const sequence = Sequence({ max: 3 });
sequence.next() // { value: 1, done: false }
sequence.next() // { value: 2, done: false }
sequence.next() // { value: 3, done: false }
sequence.next() // { value: undefined, done: true }
```
npm package: @ryersonlibrary/building-info-system
Description: An information and wayfinding web application for buildings.
Author: Ryerson University Library
Latest version: 0.6.1

[![Build Status](https://travis-ci.org/ryersonlibrary/building-info-system.svg?branch=master)](https://travis-ci.org/ryersonlibrary/building-info-system)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/161698bdb1d44fe4a02c5b625c44e71a)](https://www.codacy.com/project/ryersonlibrary/building-info-system/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=ryersonlibrary/building-info-system&amp;utm_campaign=Badge_Grade_Dashboard)

# @ryersonlibrary/building-info-system

RULA-BIS is an open source web application designed to provide directory,
wayfinding and other informational services for buildings using the latest web
technologies.

Currently the application contains a number of features:
 - __Mapping__: Display and navigate through floors of multiple buildings.  Map locations, rooms, service points and more.  Provide location information and
 wayfinding.
 - __FAQ__: Provide users with answers to often asked questions regarding building
 details or other services.
 - __Events__: Integrate any calendar in ICAL format and display upcoming events
 - __Building__ Details: Display and highlight information regarding one or more
 buildings.
 - __Search__: Look for specific entities of the above services.

## Installation

Currently the application is provided as a single bundle and can be installed by
either cloning this repo or by using NPM:

`git clone git@https://github.com/ryersonlibrary/building-info-system.git my-bis`

or

`npm i --save @ryersonlibrary/building-info-system`

## Requirements

The system fetches the information it needs from a number of external sources.
Primary among theses is a data API that provides all the details about most of
the aspects of the system (buildings, floors, and mapped elements, wayfinding,
images, FAQ text, and more).  This API needs to be setup configured separately.
The data specification that this application needs will be outlined below.
Other features like the events require an external ICAL file.

### Data API

There are a number of API enpoints that are used by the system. Each endpoint 
should provide `GET` functionality which, when called, returns a list of objects
in a JSON format. All the endpoints should be relative to a common host e.g. `api.example.com`.

The details of the API and the objects expected, along with their fields, will
be added later.
npm package: @ryersonlibrary/floorplans
Description: Ryerson floorplans, both in vector format for regular use, and in custom JSON format for use in Stencil Apps.
Author: Ryerson University Library
Latest version: 1.0.1

# Ryerson Floorplans

This project is intended to be the go-to location for anything related to building floorplans.  The primary intent is for use with the Building Information System but the uses can be extended beyond that.

## Floorplans (Master Files)

Floorplans are organized by building, within the `masters` folder using the 3-character building code (e.g. LIB for Library).  The key file for each building is the `[LIB]_Master.svg`.  This is a single SVG file that has a group for every
floor of the building.

### File structure

Each master file for a building has the following structure requirements

* Each floor is a group with the id `Floor NN`, where `NN` is a zero-padded floor number (e.g. `02`);
* Each element intended to be used in the final floorplan has an ID that begins with the building code (e.g. `LIB`).
npm package: @ryersonlibrary/web-components
Description: Common web-components for Ryerson University Library.
Author: Ryerson University Library
Latest version: 0.8.2

# Ryerson Librrary Web Components

A collection of web components built using StencilJS used throughout various
Ryerson Library web applications.

## Usasge

### With NPM in another project
* Run `npm install @ryersonlibrary/web-components --save`
* Add the script tag `<script src='node_modules/@ryersonlibrary/web-components/dist/rl-wc.js'></script>`
* Add the web components in the page like any other element.

### With NPM in a StencilJS App
* Run `npm install @ryersonlibrary/web-components --save`
* Add the line `import '@ryersonlibrary/web-components';` in the application
* Include the desired web component like any other element.

## Components

Below is a list of components currently in the collection with a brief description.

### `rl-map`

A component used to create an interactive Map using SVG.  A map consists of a
background image and one or more `Elements`.  Each Element is either a region
or a single point.  Points can be either text labels or icons.

A map automatically supports zooming in and out and panning the map.

To use a map component, simply add the code:

```javascript
<rl-map map-image="path/to/background.png">
</rl-map>
```

### `rl-map-editor`

A component used to create an interactive Map using SVG.  The map editor is
similar to the basic map with the additional functionality needed to edit
the regions and points on the map.

The map editor component is used like the map:

```javascript
<rl-map-editor map-image="path/to/background.png">
</rl-map-editor>
```
npm package: @ryexley/boxelder
Description: React Priority+ navigation menu component
Author: Bob Yexley
Latest version: 1.5.0

React Priority+ Nav Menu
==========================

This is (yet another) [React](https://reactjs.org/) implemention of the Priority+ navigation menu pattern [1]. The logic for this implementation was heavily adapted from [this CodePen by Matt Walker](https://codepen.io/zammer/pen/pbxJdo). The built-in hamburger menu toggle implementation is an adaptation of [this CodePen by Elijah Manor](https://codepen.io/elijahmanor/pen/Igpoe).

## Installation
```
npm install @ryexley/boxelder
```
or

```
yarn add @ryexley/boxelder
```

## Usage

```js
const menuItems = [
  { url: "/#", content: "Home" },
  { url: "/#", content: "About" },
  { url: "/#", content: "Contact Us" }
];

<PriorityPlusNav menuItemData={ menuItems } />
```

For more examples, see [the component styleguide examples](src/components/priority-plus-nav/readme.md).

## Development
- Clone the repository and run `npm install` or `yarn install`.
- Run `npm run dev` or `yarn run dev` to start up the instance of [React Styleguidist](https://react-styleguidist.js.org/), and then open your browser to [http://localhost:6060](http://localhost:6060).
- Edit as necessary/desired, and let hot module reloading take care of the rest for you.

Git commit messages should conform to the [conventional-changelog-eslint](https://www.npmjs.com/package/conventional-changelog-eslint) format, and will be verified by [semantic-release](https://github.com/semantic-release/semantic-release) during releases.

----
[1]: More information about this pattern can be found at the following links:
- [Michael Scharnagl's blog](https://justmarkup.com/log/2012/06/responsive-multi-level-navigation/)
- [Brad Frost's blog](http://bradfrost.com/blog/web/complex-navigation-patterns-for-responsive-design/#priority-plus)
- [CSS Tricks](https://css-tricks.com/the-priority-navigation-pattern/)
npm package: @ryexley/mdx-deck-extensions
Description: Themes, layouts and components for use in mdx-deck presentations
Author: Bob Yexley
Latest version: 1.0.0

mdx-deck extensions
====================

A collection of extensions (themes, layouts, components, etc) for reuse in my [mdx-deck](https://github.com/jxnblk/mdx-deck) presentations.
npm package: @ryftpay/react
Description: Official React components and hooks for Ryft payment processing, providing seamless integration of payment forms, digital wallets, and checkout flows.
Author: Ryft
Latest version: 1.1.0

# Ryft React SDK (`@ryftpay/react`)

This package provides the Ryft React SDK, a set of React components and hooks for integrating Ryft payments into React applications. The React SDK includes pre-built UI components for accepting payments, as well as hooks for accessing the underlying controller and state.

## Quick start

### 1) Install the SDK

The recommended approach is to install the SDK from npm:

```bash
npm install @ryftpay/react
# or
pnpm add @ryftpay/react
# or
yarn add @ryftpay/react
# or
bun add @ryftpay/react
```

### 2) Follow the quick start guide

A quick start guide along with full technical documentation for the Ryft React SDK is available in the [Ryft React SDK docs](https://web-sdk.ryftpay.com/docs/react/latest/index.html).
npm package: @ryftpay/ryft-sdk
Description: The official Ryft NodeJs SDK
Author: Ryft
Latest version: 1.6.0

# Ryft Node SDK

[![build](https://github.com/RyftPay/ryft-node/actions/workflows/ts.yml/badge.svg)](https://github.com/RyftPay/ryft-node/actions/workflows/ts.yml)
[![npm version](https://badge.fury.io/js/@ryftpay%2Fryft-sdk.svg)](https://badge.fury.io/js/@ryftpay%2Fryft-sdk)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

## Installation

```sh
# with npm
npm install @ryftpay/ryft-sdk

# with yarn
yarn add @ryftpay/ryft-sdk

# with bun
bun add @ryftpay/ryft-sdk
```

## Usage
    
The SDK must be configured with your account's secret key, available in the Ryft Dashboard. The SDK will automatically determine the environment based on the provided key. For example, `sk_sandbox...` will point to `sandbox`, while `sk_live` will point to `production`.

### Importing the SDK

You can access the SDK and all of the methods and types by importing it as follows:

```ts
import { Ryft } from '@ryftpay/ryft-sdk';
```

### Initialising with a secret key

You can pass your secret key via the `Config` in the SDK constructor. For example: 

```ts
const ryft = new Ryft({secretKey: 'sk_sandbox_1234567890'});
```

### Initialising with environment variables

You can set the following environment variable, and the SDK will automatically pick it up:

* `RYFT_SECRET_KEY`

> [!NOTE]
> If you use env variables you don't have to pass your secret key to the config. This is handled for you

### Using Promises and Handling Errors

Every method returns a chainable promise which can be used instead of a regular callback. This allows you to either `await` for the `Promise` to resolve or use the `then` and `catch` keywords to handle the return.

**Example with `await` and catching the `RyftError`**

```ts
try {
    const resp = await ryft.accounts.get('acc_123456789');
} catch (e RyftError) {
    console.log(e)
}
```

**Example with `then` and `catch`**

```ts
ryft.accounts.get('acc_123456789')
    .then((r) => console.log(r))
    .catch((e) => console.log(e));
```

## Basic Example

```ts
import { Ryft } from '@ryftpay/ryft-sdk';

const ryft = new Ryft({secretKey: 'sk_sandbox_1234567890'});

ryft.accounts.get('acc_123456789')
    .then((r) => console.log(r))
    .catch((e) => console.log(e));
```
npm package: @ryftpay/web
Description: Official TypeScript SDK for Ryft payment processing in web applications, featuring card forms, digital wallets, and comprehensive payment component support.
Author: Ryft
Latest version: 1.1.0

# Ryft Web SDK (`@ryftpay/web`)

This package provides the Ryft Web SDK, a set of tools and components for integrating Ryft payments into web applications. The Web SDK includes pre-built UI components for accepting payments, as well as low-level APIs for custom integrations.

## Quick start

### 1) Install the SDK

The recommended approach is to install the SDK from npm:

```bash
npm install @ryftpay/web
# or
pnpm add @ryftpay/web
# or
yarn add @ryftpay/web
# or
bun add @ryftpay/web
```

### 2) Follow the quick start guide

A quick start guide along with full technical documentation for the Ryft Web SDK is available in the [Ryft Web SDK docs](https://web-sdk.ryftpay.com/docs/web/latest/index.html).
npm package: @ryftri/stylegen
Description: A powerful CLI tool to convert Material Design theme JSON files into CSS custom properties with RGB values and tonal palettes.
Author: Ryftri
Latest version: 1.0.3

# StyleGen CLI

[![NPM Version](https://img.shields.io/npm/v/@ryftri/stylegen.svg)](https://www.npmjs.com/package/@ryftri/stylegen)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A powerful and simple CLI tool to convert Material Design theme JSON files into CSS custom properties with RGB values and tonal palettes. Perfect for integrating a design system's tokens into a web project.

## ✨ Features

-   Converts HEX color codes to comma-separated `R, G, B` values.
-   Generates a full tonal palette (shades 50-950) for primary, secondary, tertiary, and error colors.
-   Processes both `light` and `dark` color schemes automatically.
-   Creates CSS variables compatible with Tailwind CSS `@theme` registration.
-   Flexible input and output file options.

## 🚀 Installation

Install `stylegen` globally using NPM to use it anywhere on your system.

```bash
npm install -g @ryftri/stylegen
```

## Usage

The command is straightforward. You must provide an input file, and you can optionally specify an output file.

```bash
stylegen [options]
```

### Options

| Option                | Alias | Description                                               | Required |
| --------------------- | ----- | --------------------------------------------------------- | -------- |
| `--input <file>`      | `-i`  | Source JSON theme file to process.                        | Yes      |
| `--output <file>`     | `-o`  | Output CSS file name. (Defaults to `<input-name>-rgb.css`) | No       |
| `--version`           | `-v`  | Display the current version of the CLI.                   | No       |
| `--help`              | `-h`  | Display the help menu.                                    | No       |

### Example

1.  **Create a theme file** (e.g., `my-theme.json`):

    ```json
    {
      "light": {
        "primary": "#6750A4",
        "surface": "#FFFBFE"
      },
      "dark": {
        "primary": "#D0BCFF",
        "surface": "#1C1B1F"
      }
    }
    ```

2.  **Run the command:**

    ```bash
    stylegen --input my-theme.json --output ./src/styles/theme.css
    ```

3.  **The output** (`theme.css`) will be generated with all the necessary CSS variables, ready to be imported into your project.

## 📄 License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

---
_Crafted with ❤️ by [Ryftri](https://github.com/Ryftri)_
npm package: @ryfylke-react/ui
Description: A collection of design-tokens (spacing, colors, typography) and React components.
Latest version: 0.1.54

# Ryfrea Design System  

A collection of design-tokens (spacing, colors, typography) and React components.

https://design.ryfylke.dev/

## Contributing

We accept open source contributions. There are currently no defined guidelines, but try to keep the code consistent with existing code.

## Figma

https://www.figma.com/file/phoxEPGn08GKHRlU6Vhk83/Ryfrea-Design-System?node-id=0%3A1
npm package: @rygent/anilist
Description: An UNOFFICIAL lightweight Node.js wrapper for Anilist GraphQL API written in typescript.
Latest version: 1.5.0

# Anilist Wrapper

An UNOFFICIAL lightweight Node.js wrapper for Anilist GraphQL API written in typescript.

You can visit the official graphql docs for Anilist [here][anilist docs] to find out everything you can do.

> [!IMPORTANT]
>
> This project is still under development, not everything supported yet.

## Installation

```sh
# NPM
npm i @rygent/anilist

# Yarn
yarn add @rygent/anilist

# PNPM
pnpm add @rygent/anilist
```

## Usage

```ts
import { Anilist } from '@rygent/anilist';

const anilist = new Anilist();

await anilist.media.search({ type: 'Anime', search: 'Cowboy Bebop' });
await anilist.media.search({ type: 'Manga', search: 'Naruto' });
```

> [!NOTE]
>
> -   **page**: This property is optional and the default value is `1`.
> -   **perPage**: This property is optional and the default value is `20`.

---

<!-- LINKS -->

[anilist docs]: https://docs.anilist.co/guide/introduction
npm package: @rygent/spotify
Description: An UNOFFICIAL wrapper for Spotify REST API written in typescript.
Latest version: 1.2.1

# Spotify Wrapper

An UNOFFICIAL wrapper for Spotify REST API written in typescript.

You can visit the official docs for Spotify [here][spotify docs] to find out everything you can do.

> [!IMPORTANT]
>
> This project is still under development, not everything supported yet.

## Installation

```sh
# NPM
npm i @rygent/spotify

# Yarn
yarn add @rygent/spotify

# PNPM
pnpm add @rygent/spotify
```

## Example

```ts
import { Spotify } from '@rygent/spotify';

const spotify = new Spotify({
    id: 'your client id',
    secret: 'your client secret'
});

await spotify.search({ type: 'track,album', query: 'Happier Than Ever' });
await spotify.search({ type: 'artist', query: 'Billie Eilish' });
```

> [!NOTE]
>
> -   **offset**: This property is optional and the default value is `0`.
> -   **limit**: This property is optional and the default value is `20`.

---

<!-- LINKS -->

[spotify docs]: https://developer.spotify.com/documentation/web-api