open-index/open-npm huggingface dataset:
npm package: @gifco/react-form
Description: Form and input components for an React app using hooks
Author: Gifford Boake
Latest version: 1.0.2

# React-Form

A small simple Form plus Input components for React using hooks.

## Getting Started

Simply install from npm or yarn

```
npm install --save @gifco/react-form

or

yarn install --save @gifco/react-form
```

### Prerequisites

Requires React.js 16.8 or greater.


### Usage

First import the Form and any inputs you need

```
import { Form, FormInput, FormTextarea, FormSelect } from '@gifco/react-form'

```

Setup the form the way you would like. If you want submit button inside the form include a button element within Form

```
<Form onSubmit={handleSubmit}>
    <FormInput type="text" name="username"/>
    <FormInput name="password"/>                     //FormInput type defulats to text
    <FormTextarea name="comments"/>
    <button type="submit">Submit</button>
</Form>

```

Form values are passed to onSubmit handler as an object with key as input name and value as input value.

```
const handleSubmit = (values) => {
    //do stuff with form values
    //values === { username: 'somename', password: 'thepassword', comments: 'these are the commnets'}
}

```

Form validation is handled by passing a validation function to the specific inputs and is checked on input blur event. It should return an object { error: <true | false>, msg: 'The error msg'}

```
const validateName = (string) => {
    if(string.length < 8){
        return { error: true, msg: 'Please enter a name longer than 8 characters'}
    }else{
        return { error: false, msg: ''}
    }
}

<Form onSubmit={handleSubmit}>
    <FormInput type="text" name="username" validation={validateName}/>
    <FormInput name="password"/>
    <button type="submit">Submit</button>
</Form>


```

To use FormSelect just pass regular <option> elements as its children

```
<Form onSubmit={handleSubmit}>
    <FormSelect name="mySelect">
        <option value="option1>Option 1</option>
        <option value="option2>Option 2</option>
        <option value="option3>Option 3</option>
    </FormSelect>
    <button type="submit">Submit</button>
</Form>

```



## Built With

* [React.js](https://reactjs.org/docs/getting-started.html) - The web framework used
* [Webpack](https://webpack.js.org/concepts) - Dependency Management


## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags). 

## Authors

* **Giff Boake** 

## License

This project is licensed under the MIT License
npm package: @gifflar/solgen
Description: A smart contract generator library.
Author: Levy Santiago
Latest version: 1.0.3-alpha

(Powered by [Gifflar](https://github.com/GifflarJS-Framework))

[![Node.js CI](https://github.com/GifflarJS-Framework/solgen/actions/workflows/tests.yml/badge.svg)](https://github.com/GifflarJS-Framework/solgen/actions/workflows/tests.yml)

# Solgen

A Gifflar library that allows to generate, compile and deploy smart contracts in Solidity on the fly.

`Note: THIS LIBRARY DOES NOT INCLUDE YET SMART CONTRACTS VULNERABILITIES VERIFICATION. THIS FEATURE IS STILL BEING DEVELOPED. SO, IF YOU ARE USING THIS VERSION IN PRODUCTION, USE IT AT YOUR OWN RISK.`

## Supported properties

| Property             |      Support       | Example                                               |
| -------------------- | :----------------: | ----------------------------------------------------- |
| Variable Declaration | :heavy_check_mark: | `string name;`<br/> `string name = "Bob";`            |
| Assignment           | :heavy_check_mark: | `name = "Bob"`<br/> `name = _name`<br/> `val++`       |
| Structs              | :heavy_check_mark: | `struct Person {string name;}`                        |
| Modifiers            | :heavy_check_mark: | `modifier onlyOwner(){`<br/>`[...];`<br/>`_;`<br/>`}` |
| Events declaration   | :heavy_check_mark: | `event myEvent(string name);`                         |
| Events emission      | :heavy_check_mark: | `emit myEvent(_name);`                                |
| Functions creation   | :heavy_check_mark: | `function myFuntion() public {...}`                   |
| Constructor creation | :heavy_check_mark: | `function constructor() public {...}`                 |
| IF/Else structures   | :heavy_check_mark: | `if(count == 1){...}else{...}`                        |
| Nested IFs           | :heavy_check_mark: | `if(){if(){...}}`                                     |
| For Loops            | :heavy_check_mark: | `for(i=0;i<count;i++){...}`                           |
| While Loops          | :heavy_check_mark: | `while(a != b){...}`                                  |
| Do/While Loops       | :heavy_check_mark: | `do{...}while(a != b);`                               |
| Inheritance          | :heavy_check_mark: | `contract Dog is Animal{...}`                         |
| Inline Assembly      |        :x:         | `assembly {...}`                                      |

## Documentation

Have a look at the [Solgen docs](https://github.com/GifflarJS-Framework/solgen/wiki).
npm package: @gifsx/gifsx
Description: Gif Rust crate bindings for Node.js.
Latest version: 1.0.15

# `gifsx`

A `gif` rust crate binding for Node.js.

## Install
```sh
yarn add @gifsx/gifsx
npm install @gifsx/gifsx
bun install @gifsx/gifsx
```

## Examples

### Encoding a GIF

```javascript
const { Encoder, Frame } = require('@gifsx/gifsx')
const { createCanvas } = require('@napi-rs/canvas')
const fs = require('fs')

// Create a canvas
const canvas = createCanvas(512, 512)
const { width, height } = canvas
const ctx = canvas.getContext('2d')

// Create a new encoder
const encoder = new Encoder(512, 512)
encoder.setRepeat(-1)

// Function to convert canvas to frame
function toFrame() {
  return Frame.fromRgba(width, height, ctx.getImageData(0, 0, width, height).data)
}

// Draw and add frames
ctx.fillStyle = '#FF0000'
ctx.fillRect(0, 0, 512, 512)
encoder.addFrame(toFrame())

ctx.fillStyle = '#00FF00'
ctx.fillRect(0, 0, 512, 512)
encoder.addFrame(toFrame())

ctx.fillStyle = '#0000FF'
ctx.fillRect(0, 0, 512, 512)
encoder.addFrame(toFrame())

// Get the encoded GIF buffer
const buffer = encoder.getBuffer()
fs.writeFileSync('./output.gif', buffer)
```

### Decoding a GIF with config

```javascript
const { DecodeOptions, ColorOutput } = require('@gifsx/gifsx')
const fs = require('fs')

// Create decode options
const options = new DecodeOptions()
options.setColorOutput(ColorOutput.Rgba)
options.setMemoryLimit(-1)

// Decode the GIF
const gif = options.readInfo(fs.readFileSync('./input.gif'))
console.log(`Width: ${gif.width}, Height: ${gif.height}, Loops: ${gif.loops}`)

// Read frames
let frame
while ((frame = gif.readNextFrame())) {
  console.log(`Frame: Width: ${frame.width}, Height: ${frame.height}, Delay: ${frame.delay}ms`)
}
```

### Decoding a GIF without config

```javascript
const { Decoder } = require('@gifsx/gifsx')
const fs = require('fs')

// Decode the GIF
const gif = new Decoder(fs.readFileSync('./input.gif'));
console.log(`Width: ${gif.width}, Height: ${gif.height}, Loops: ${gif.loops}`)

// Read frames
let frame
while ((frame = gif.readNextFrame())) {
  console.log(`Frame: Width: ${frame.width}, Height: ${frame.height}, Delay: ${frame.delay}ms`)
}
```
npm package: @gift-adv/taro-components
Description: ```bash $ git clone git@github.com:NervJS/taro.git $ cd taro ```
Latest version: 2.1.12

## Development

```bash
$ git clone git@github.com:NervJS/taro.git
$ cd taro
```

## License

MIT License

Copyright (c) O2Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

## Open Source Software Licensed Under the MIT License: 

[m-pull-to-refresh](https://github.com/react-component/m-pull-to-refresh)