# @101media/vue3-ui

> Lightweight UI components for Vue.js based on BS5

Latest version **0.3.2** (published 2022-06-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install @101media/vue3-ui
pnpm add @101media/vue3-ui
yarn add @101media/vue3-ui
bun add @101media/vue3-ui
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.3.2 |
| Published | 2022-06-15 |
| First published | 2021-08-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 4.0.0 |
| Dependencies | 0 |
| Unpacked size | 514.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Tom Hermsen |
| Maintainers | tomhermsen |
| Keywords | ui, bootstrap5, vue, vue3, vuejs |

## Links

- npm: https://www.npmjs.com/package/@101media/vue3-ui
- Repository: https://github.com/101Media/vue3-ui
- Homepage: https://101media.nl
- Issues: https://github.com/101Media/vue3-ui/issues
- npm.io page: https://npm.io/package/@101media/vue3-ui

## Alternatives

- [@sveltejs/kit](https://npm.io/package/@sveltejs/kit.md) — 2.2M weekly downloads
- [@atlaskit/theme](https://npm.io/package/@atlaskit/theme.md) — 402.0K weekly downloads
- [@tangle-network/brand](https://npm.io/package/@tangle-network/brand.md) — 10.0K weekly downloads
- [seneca](https://npm.io/package/seneca.md) — 7.4K weekly downloads
- [@bsb/base](https://npm.io/package/@bsb/base.md) — 7.2K weekly downloads

## Recent versions

- 0.3.2 (latest) — 2022-06-15
- 0.3.1 — 2022-06-15
- 0.3.0 — 2022-06-15
- 0.1.15 — 2021-11-10
- 0.1.14 — 2021-11-10
- 0.1.13 — 2021-10-22
- 0.1.12 — 2021-09-21
- 0.1.11 — 2021-09-21
- 0.1.10 — 2021-09-14
- 0.1.9 — 2021-09-14
- 0.1.8 — 2021-09-14
- 0.1.7 — 2021-09-14
- 0.1.6 — 2021-09-14
- 0.1.5 — 2021-09-10
- 0.1.4 — 2021-08-31
- … 6 more at https://npm.io/package/@101media/vue3-ui/versions

## README

# Vue3-UI

<p>
  <a href="https://www.npmjs.com/package/@101media/vue3-ui" title="Version" target="_blank" rel="noopener noreferrer">
    <img alt="npm (tag)" src="https://img.shields.io/npm/v/@101media/vue3-ui">
  </a>
  <a href="https://www.npmjs.com/package/@101media/vue3-ui" title="License" target="_blank" rel="noopener noreferrer">
    <img src="https://img.shields.io/npm/l/@101media/vue3-ui" alt="License">
  </a>
  <a href="https://github.com/vueup/vue-quill" title="Last commit" target="_blank" rel="noopener noreferrer">
    <img src="https://img.shields.io/github/last-commit/101media/vue3-ui?logo=github" alt="Last commit">
  </a>
</p>

Vue3-UI is a package that implements some default UI elements for Bootstrap 5.

## Installation

Using npm:

```bash
$ npm install @101media/vue3-ui
```

Using bower:

```bash
$ bower install @101media/vue3-ui
```

Using yarn:

```bash
$ yarn add @101media/vue3-ui
```

## Configuration

```javascript
import Ui from "@101media/vue3-ui"

const UiConfig = {
    UInput:       {
// groupClass: "mb-3",
// class :'',
// label: '',
// error : '',
// group: '',
// type : '',
// required: false,
    },
    UCheckbox:    {
// id:        "",
// switches:  false,
// error:     "",
// checked:   false,
// value:     "",
// formClass: "",
    },
    UDragDrop:    {
// groupClass : '',
// class: '',
// accept: '',
// error : '',
    },
    UMultiSelect: {
// group: false,
// groupClass: '',
// class: '',
// accept: '',
// error: '',
    },
    URadio:       {
// class: '',
// value: '',
// label: '',
// error : '',
// button : false,
// groupClass: '',
// formClass: '',
    },
    UTextArea:    {
// autosize: true,
// minHeight: null,
// maxHeight: null,
// error : '',
// classList : '',
    },
}

app.use(UI, UiConfig)
```

## Usage

```js
import {createApp} from 'vue';
import Ui from "@101media/vue3-ui";


const app = createApp({
    //
});

app.use(Ui)
...

```

## Configuration

Default configuration can be set when initializing plugin.

```js 
import {createApp} from 'vue';
import Ui from "@101media/vue3-ui";

const UiConfig = {
    //
}

const app = createApp({
    //
});

app.use(Ui, UiConfig)
 ```

## Components

All components support default HTML attributes.

### Button

Show a button.

`String type`
The button type

`String class`
The button class

`Boolean block`
Whether the button should be displayed as block.

`Callable @click`
On button click event

```vue

<Button type="button" class="btn-secondary" :block="true" @click="test"></Button>
```

### Checkbox

Show a checkbox.

`String type`
Define the input type.

`Boolean switches`
Whether the checkbox should be a switch

`Array|Boolean checked`
whether the checkbox is checked

`Any value`
The checkbox value

`String formClass`
The class of the form group

### Input

Show an input.

`String id`
The component ID

`String error`
The error message

`Boolean group`
Whether the input should be grouped

`String groupClass`
The class for the form group

`String type`
The input type

```vue
<Input placeholder="Example input" v-model="text" id="TextInput1"></Input>
```

### MultiSelect

Show a multiselect component.

This component is a wrapper around [VueForm/Multiselect](https://github.com/vueform/multiselect).

`String error`
The error message

`Boolean group`
Whether the input should be grouped

`String mode`
The type of input, options are `single`, `multiple`, `tags`

`Array|Object options`
An array or object of the selectable options.

```vue

<MultiSelect v-model="form.multiselect" :options="{1: 'first', 2:'second', 3: 'third' }">
This is a multiselect with three options
</MultiSelect>


```

### Textarea

Show a auto resize textarea component.

`String error`
The error message

`String classList`
The class

`Number minHeight`
The minimum height of the textarea

`Number maxHeight`
The maximum height of the textarea

`String mode`
The type of input, options are `single`, `multiple`, `tags`

```vue

<MultiSelect v-model="form.multiselect" :options="{1: 'first', 2:'second', 3: 'third' }">
This is a multiselect with three options
</MultiSelect>


```

`String headerClass`
The header class

`String headerTitleClass`
The header title class

## Credits

Vue3-UI is inspired by [Buefy](https://github.com/buefy/buefy).

## License

Code released under MIT license.

---
_Source: https://npm.io/package/@101media/vue3-ui · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
