open-index/open-npm huggingface dataset:
npm package: @masonite/mdl-css
Description: Masonite Design Language CSS
Author: Tarik Hamilton
Latest version: 1.2.3

# @masonite/mdl-css

MDL base styles and component CSS.

## Install

```shell
npm i @masonite/mdl-css
```

## Manual Installation

If you aren't using build tools and simply want the `mdl.css`, you can do so with `npm pack @masonite/mdl-css` and npm will download the package as a zip. The CSS file will be in the `dist` folder.

## Usage

The `mdl.css` file with all of the styles is the default export of the package. This means you will need something to handle imports of a .css file, such as webpack with the css-loader and style-loader.

Also, present is the `styles` directory, featuring all the Sass mixins and variables for MDL.

### JavaScript

```js
// Imports mdl.css, which requires special handling.
import '@masonite/mdl-css'
```

### CSS

```css
/* The inclusion of the ~ may vary depending on your build tools. */
@import "~@masonite/mdl-css/dist/mdl.css";
```

### Deployment

1. Update the `CHANGELOG.md` for the version you're releasing. If there is an `[Unreleased]` block, change that to the next version following semver.
1. Build the package with `npm run build`.
1. Publish with `lerna publish`.
npm package: @masonite/siriwave
Description: The Siri wave replicated in a JS library.
Author: Flavio De Stefano
Latest version: 1.2.8

# @masonite/siriwave

The "Apple Siri" wave replicated in pure Javascript using the Canvas API. Based on [kopiro/siriwave](https://github.com/kopiro/siriwave).

## Usage

```shell
npm install @masonite/siriwave
```

```js
import SiriWave from "@masonite/siriwave";

const siriWave = new SiriWave({
  container: document.getElementById('siri-container'),
  height: 200,
  autostart: true
});
```
The default options for the siriwave used for Masonite are as follows:

```js
{ 
  cover: true,
  autostart: false,
  style: "ios9",
  colors (changed in src/ios9curve.js): rgb(146,200,62), rgb(67,71,75), rgb(67,71,75),
  amplitude: 2
}
```
See below for additional options and customizations to the siriwave package.

## Options

| Key        | Type          | Description                                                            | Default    | Required |
| ---------- | ------------- | ---------------------------------------------------------------------- | ---------- | -------- |
| container  | DOMElement    | The DOM container where the DOM canvas element will be added.          | null       | yes      |
| style      | "ios", "ios9" | The style of the wave.                                                 | "ios9"      | no       |
| ratio      | Number        | Ratio of the display to use. Calculated by default.                    | calculated | no       |
| speed      | Number        | The speed of the animation.                                            | 0.2        | no       |
| amplitude  | Number        | The amplitude of the complete wave-form.                               | 2          | no       |
| frequency  | Number        | The frequency of the complete wave-form. Only available in style "ios" | 6          | no       |
| color      | String        | Color of the wave. Only available in style "ios"                       | "#fff"     | no       |
| cover      | Bool          | The `canvas` covers the entire width or height of the container        | true       | no       |
| autostart  | Bool          | Decide wether start the animation on boot.                             | false      | no       |
| pixelDepth | Number        | Number of step (in pixels) used when drawed on canvas.                 | 0.02       | no       |
| lerpSpeed  | Number        | Lerp speed to interpolate properties.                                  | 0.01       | no       |

## API

### `start()`

Start the animation

### `stop()`

Stop the animation.

### `setSpeed(newValue)`

Set the new value of speed (animated)

### `setAmplitude(value)`

Set the new value of amplitude (animated)

## Grapher plots

- [GCX iOS 9](ios9.gcx)
- [GCX default](default.gcx)
npm package: @masonite/stylelint-config
Description: Masonite's stylelint config, following our styleguide
Author: Masonite
Latest version: 1.4.0

# @masonite/stylelint-config

## Usage

Locally install into your project using this command:

```shell
npx install-peerdeps --dev @masonite/stylelint-config
```

Add to your project's package.json:

```json
{
  "name": "mypackage",
  "version": "0.0.1",
  "stylelint": {
    "extends": "@masonite/stylelint-config"
  }
}
```
npm package: @masonite/svg-icons
Description: ```shell npm install --save @masonite/svg-icons ```
Author: Tarik Hamilton
Latest version: 1.12.4

# @masonite/svg-icons

## Install

```shell
npm install --save @masonite/svg-icons
```

## Usage

If you are using a Create React App application

```js
import { ReactComponent as MBifold } from '@masonite/svg-icons/dist/svg/bifold.svg'
```

or you can import the SVG as a string and implement per your use case or preference.

```js
import { mBifold } from '@masonite/svg-icons'
```

## Development

To develop, clone the `Masonitedoors/MDL` repo with `git clone --recurse-submodules -j8` to get it. Make sure MIcons was cloned to `vendors` in its root. You cannot build without it.

If you already have the `micons` submodule cloned, you must use `git submodule update --recursive --remote` to pull the latest updates from `micons` before building.

1. Make sure you have done what is mentioned in development.
1. Update the `CHANGELOG.md` for the version you're releasing. If there is an `[Unreleased]` block, change that to the next version following semver.
1. Build the package `npm run build-package:svg-icons` from the monorepo root, followed by `lerna publish`.
npm package: @masonjames/emdash-contact-forms
Description: Production-ready contact forms plugin for EmDash CMS
Author: Mason James
Latest version: 0.1.0

# EmDash Contact Forms

Production-ready contact forms for EmDash CMS.

## Release A scope

This package is the **trusted/native** Release A implementation described in the local doc pack:

- admin CRUD for simple contact forms
- Portable Text block embed
- server-rendered form markup with progressive enhancement
- one public route: `submit`
- honeypot + KV-backed per-IP rate limiting
- submission inbox, detail, archive, delete, CSV export
- weekly retention cleanup

## Important scope note

**Release A is provider-agnostic.** `@masonjames/emdash-contact-forms` sends notifications through EmDash’s configured email pipeline via `ctx.email.send()`. It does **not** implement provider-specific SMTP/API transports or ship provider-specific credential settings.

If your EmDash site already has a working email provider configured, this plugin can use it for submission notifications.

## Install

```bash
npm install @masonjames/emdash-contact-forms
```

Then register the plugin in `astro.config.mjs`:

```ts
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { contactFormsPlugin } from "@masonjames/emdash-contact-forms";

export default defineConfig({
  integrations: [
    emdash({
      plugins: [contactFormsPlugin()],
    }),
  ],
});
```

Optional default frontend styles:

```ts
import "@masonjames/emdash-contact-forms/styles";
```

## Plugin settings

Plugin-level settings are managed through EmDash’s plugin settings UI:

- `defaultNotificationEmail`
- `retentionDays`
- `rateLimitMaxPerHour`
- `rateLimitWindowSeconds`

Per-form settings:

- confirmation message
- redirect URL
- notify emails
- submit button label

If a form has no explicit notification recipients, the plugin falls back to `defaultNotificationEmail`.

## Security notes

- only `email:send` is requested
- no `network:fetch`
- no `write:media`
- no public form-definition route
- no raw IP persisted in submissions
- honeypot failures return the same success shape as real submits
- notification send failures are logged but never exposed to visitors

## Stored submission data

Each submission stores:

- the form id
- submitted field values
- submission status
- creation timestamp
- request metadata limited to `userAgent`, `referer`, and `country` when available

The plugin does **not** store raw IP addresses.

## Retention

`retentionDays` controls how long submissions are kept before the weekly cleanup cron removes expired rows. Set it to `0` to disable automatic cleanup.

## Deployment guidance

The built-in rate limiter is best-effort and intentionally lightweight. In production, also configure:

- reverse-proxy or WAF rate limits
- bot mitigation at the edge where available
- email provider monitoring and bounce handling outside plugin scope

## Marketplace

This repository ships the native/trusted Release A package. The Marketplace / `emdash plugin publish` adaptation is a separate Release B track documented in `06-MARKETPLACE-ADAPTATION-PLAN.md`.
npm package: @masonjames/emdash-page-list
Description: Collection-backed and menu-backed page lists for EmDash CMS
Author: Mason James
Latest version: 0.1.1

# `@masonjames/emdash-page-list`

Collection-backed and menu-backed page lists for EmDash CMS.

This plugin gives editors a `pageList` Portable Text block and gives theme authors a matching Astro component they can import directly into layouts or pages.

## What it does

- Insert a **Page List** block inside Portable Text content
- Render lists from an EmDash **collection**
- Render nested navigation from an EmDash **menu**
- Set install-wide defaults with `admin.settingsSchema`
- Reuse the same renderer directly from Astro templates

## Install

```bash
npm install @masonjames/emdash-page-list
```

Then register it in `astro.config.mjs`:

```js
import { defineConfig } from "astro/config";
import { emdash } from "emdash/astro";
import { pageListPlugin } from "@masonjames/emdash-page-list";

export default defineConfig({
	integrations: [
		emdash({
			plugins: [pageListPlugin()],
		}),
	],
});
```

## Editor usage

Once the plugin is enabled, editors can insert a `Page List` block into any Portable Text field.

### Source types

- **Collection** — render a flat list from a content collection
- **Menu** — render an existing EmDash menu hierarchy

### Per-block options

- source type
- collection slug or menu name
- limit
- sort field + direction
- show excerpt
- show publish date
- heading
- empty-state text
- child depth limit for menu trees
- style (`bulleted`, `compact`, `card`)

## Direct Astro usage

```astro
---
import { PageList } from "@masonjames/emdash-page-list/astro";
---

<PageList
	sourceType="collection"
	collection="pages"
	heading="Start here"
	style="compact"
	limit={6}
/>
```

### Custom collection URL patterns

Collection mode uses the collection's EmDash `urlPattern` when one exists. You can still override it manually if you need a theme-specific pattern:

```astro
<PageList
	sourceType="collection"
	collection="docs"
	collectionUrlPattern="/docs/{slug}"
/>
```

Use menu mode when you want EmDash’s fully resolved menu URLs and nested navigation structure.

## Settings

The plugin ships settings for:

- default source type
- default list style
- default limit
- default sort field
- default sort direction
- show excerpt by default
- show date by default

Per-block choices always override the plugin defaults.

## Notes on plugin format

This package is a **native trusted EmDash plugin**.

That means:

- it works in `plugins: []`
- it supports Portable Text blocks and `componentsEntry`
- it is installable from npm and GitHub
- it is **not** compatible with `sandboxed: []`

## Marketplace publishing

Current EmDash core does not allow Portable Text block plugins with `componentsEntry` to be bundled for the marketplace with `emdash plugin publish`.

So this package is intended to be distributed as a normal npm package and installed through `astro.config.mjs`.
npm package: @masonjs/components
Description: vue组件库
Author: mason
Latest version: 0.0.28

<h1 align="center">@masonjs/components</h1>
<p align="center">二次封装element-plus的组件库</p>

## 🚀 特性

* 🦾 **灵活度高**: 使用`tsx`语法编写，保证类型的同时，给开发者提供了更灵活的写法，给使用者提供了更方便的配置
* ⚡ **完全可摇树**: 自带 Tree-shaking，只对引入的代码进行打包
* 🫶 **代码零侵入**: 保持`element-plus` [Descriptions](https://element-plus.org/zh-CN/component/descriptions.html) 所有属性、插槽的同时，提供更灵活的配置
* ⚓ **代码提交前校验**: 使用 [husky](https://typicode.github.io/husky/#/) 对提交代码前进行规则校验，强制规范开发流程，防止开发失误

## 📦 安装

```bash
npm install @masonjs/components
or
pnpm add @masonjs/components
```

## 🦄 用法

### 局部注册（单文件）

```ts
import {  MSEmpty } from "@masonjs/components";
<ms-empty />
```

### 全局注册（main.ts）

```ts
import { createApp } from "vue";
import App from "./App.vue";

import msui from "@masonjs/components";

const app = createApp(App);

app.use(msui).mount("#app");
```

## Volar 支持

* 如果您在使用 `Volar`，那么可以在 tsconfig.json 中配置 compilerOptions.types 来指定全局组件类型（尤其是全局注册时要想获得类型提示就需要加上下面配置）

```js
// tsconfig.json
{
    "compilerOptions": {
        // ...
        "types": ["@masonjs/components/volar"]
    }
}
```
npm package: @masonjs/icons-vue
Description: Vue components Icons collection
Author: mason
Latest version: 0.0.13

# `masonjs Icons For Vue`

[![NPM version](https://img.shields.io/npm/v/@masonjs/icons-vue.svg?style=flat)](https://www.npmjs.com/package/@masonjs/icons-vue) [![NPM downloads](https://img.shields.io/npm/dm/@masonjs/icons-vue?style=flat)](https://www.npmjs.com/package/@masonjs/icons-vue)

## Install

```bash 
yarn add @masonjs/icons-vue
```

## Usage

``` js
import {ArrowRightSolid,ArrowLeftSolid,Loading} from '@masonjs/icons-vue'

//example
<arrow-right-solid />
<arrow-left-solid size="24" fill="#5582f3" />
<loading spin />
```

## Props

|    prop	 | description  | type  | default | note       |
| ---------- | ------------ | ----- | ------- | --------- |
|   size     |  图标的大小 | string &#124; number |  '1em' | |
|   fill     |  图标的颜色 | string |  'currentColor' | |
|   spin     |  是否有旋转动画 | boolean | false | |
|   rotate   | 图标旋转角度 | number | 0 | |