open-index/open-npm huggingface dataset:
npm package: @hassanalthaf/vexlendar
Description: A simple JS calendar application.
Author: Hassan Althaf
Latest version: 0.1.1

# Vexlendar - A simple calendar plugin.

Vexlendar is simple and flexible calendar plugin that allows you to implement calendars to your User Interface.

- [Installation](#installation)
- [Usage](#usage)

## Installation

**Method One (Manua):** 

1. Clone/Download as ZIP. 
2. Include the `/dist/vexlendar.min.js` in the `<script>` within your project.

**Method Two (NPM):** TBA

1. Installation Command: `npm i @hassanalthaf/vexlendar`
2. Include the `/dist/vexlendar.min.js` in the `<script>` within your project.


## Usage

![Vexlendar](https://image.prntscr.com/image/QiRNaG8rTza4mnYYhNNNEA.png)

The source code for the above sample use-case has been included in the `/demo` folder
npm package: @hassanhafezzz/eslint-config
Description: My sharable ESLint and Prettier config
Author: Hassan Hafez
Latest version: 1.1.0

# eslint-config

Hello 👋🏻, this my WIP eslint config

## Installation

```bash
npx install-peerdeps --dev @hassanhafezzz/eslint-config
```

This will install the package and all of its peer dependencies.

Then, once it's installed, create an `.eslintrc` file in the top-level directory of your project with the following contents:

```json
{
  "extends": "@hassanhafezzz/eslint-config"
}
```

### Todos

- [ ] make typescript config optional
npm package: @hassanmojab/dagre
Description: Layered layout for directed acyclic graph
Author: M.Hassan Mojab
Latest version: 0.1.1

# dagrejs - Layered layout for directed acyclic graph

**This project is a fork from [dagre](https://github.com/dagrejs/dagre). For more information prelase refer to origin project.**

## Enhanced features

New features:
* support specify layer(rank) for certain node
* support manually control nodes' order
* support keep origin layout when re-layout with nodes added

Optimizations:
* rewrite rank algorithm to support assign layer
* consider previous iteration result at node-ordering step
* support generate `edgeLabelSpacing` or not, which controls generate dummy node between nodes

## Usage

> For full usage please refer to dagre's documentation: https://github.com/dagrejs/dagre/wiki.

### edgeLabelSpace

Default dagre always generate dummy node for every edge, which can be used for edge's curve drawing, etc. If you do not need it, disable it in layout's options:

```js
dagre.layout(g, {
  edgeLabelSpace: false
})
```

Bellow shows graph with or without `edgeLabelSpace`:

![](./assets/edgeLabelSpace.jpg)
![](./assets/noEdgeLabelSpace.jpg)

### Specify layer

Now you can manually specify node's layer(rank) by add layer in node's attribute:

```js
const data = {
    nodes: [
        { id: '0' },
        { id: '1', layer: 1 },
        { id: '2', layer: 3 },
        { id: '3' },
    ],
    // edges: [...]
}

data.nodes.forEach((n) => {
    g.setNode(n.id, n);
});
```

Caution:
* layer is **0-indexed**, which means the root node's layer is 0
* manual layer **should not** violate DAG's properties (e.g. You cannot assign a layer value for a target node greater or equal to cresponding source node.)

### Control nodes' order

Sometimes we want to manually control nodes' order in every layer in case of unexpected result caused by alogrithm. Now we can also configurate in options.

```js
dagre.layout(g, {
  keepNodeOrder: true,
  nodeOrder: ['3', '2', '1', '0'] // an array of nodes's ID.
});
```

A common usage is keeping data's order:
```js
const data = {
    nodes: [
        { id: '0' },
        { id: '2' },
        { id: '3' },
        { id: '1' },
    ],
    // edges: [...]
}

dagre.layout(g, {
  keepNodeOrder: true,
  nodeOrder: data.nodes.map(n => n.id)
});
```

Caution:
* The order only work at same layer ordering step. It does not affect the layer assignment step.
* Like specifying layer, internally the library added `fixorder` attribute for each node. Of cause you can manually set this attribute, but it introduces ambiguity.

### Keep origin layout

When re-layout with small modification, we may want to keep origin layout result. Now we can pass the origin graph to new layout function:

```js
dagre.layout(originGraph) // layout() will internally modify originGraph
dagre.layout(
  g,
  {
    prevGraph: originGraph // pass originGraph to new function
  }
);
```

For full example please refer to `add-subgraph` example in examples folder.
npm package: @hassanraza/sirgestory
Description: Learn Storybook design system
Author: Hassan Raza
Latest version: 0.1.0

# Storybook design system tutorial

The Storybook design system tutorial is a subset of the full [Storybook design system](https://github.com/storybookjs/design-system/), created as a learning resource for those interested in learning how to write and publish a design system using best in practice techniques.

Learn more in [Storybook tutorials](https://storybook.js.org/tutorials/).