Banquette

Write less, cleaner code and focus on building amazing apps!

Core components

Banquette comes with a large palette of framework-agnostic components, from forms, models, validation, http requests and more.

Vue Typescript

Let's you write Vue 3 components as Typescript classes. It supports component inheritance, and comes with a powerful theming system.

Vue UI

A set of ready to use Vue 3 components. It includes things like buttons, dialogs, popover, forms, all highly customizable.

Core components

The core components regroup all the framework-agnostic packages. The most notable of which are the model transformers, the form framework, the validators and the http/api utilities. Below is an overview of each of them.


Models

If you're dealing with complex relational data, or you simply like well structured code, you can create models.

A model is just a class, that we'll decorate to control its behavior through the various tools of Banquette. A model can be created from / transformed to a form, an http request, a literal object, or any other format you might add.


Forms

An object oriented form framework that offers a variety of tools to manage a tree of components and their states. This is a low level, framework-agnostic implementation on which an UI can be built.

That's the base on which the form components of Vue UI are built.


Validation

The validation component is a set utility functions that can be used to ensure any value respects a set of constraints.

They are easily extendable and fully integrated with the form framework and models.


Http / Api

The Http package offers an easy way to do Ajax requests. Requests can be deferred, and retry transparently in case of a network error.

The Api package is built on top of the Http package, and adds the notion of endpoint. It's also fully integrated with models.


In practice

Below is an quick overview of what you can do with a model.

    0 / 13

    This is only a quick overview, please read the documentation to learn more.

    Vue Typescript

    This package contains a set of decorators that allows you to write your Vue components and directives as real TypeScript classes. It supports inheritance and comes with a powerful theming system.


    Components

    Define your Vue components as real Typescript classes that you decorate to define Vue related behavior. Each component gets a separate instance of the class, that can inherit from another class (component or not) and behave just like a normal class.

    Only the parts you expose are visible by Vue, improving performance.


    Directives

    You can also create your directives as a Typescript class.

    Each usage of the directive will create a new instance of the class and will be restored each time the directive updates. Giving you a persistent context for your logic.


    Theming

    VueTypescript comes with a powerful theming system, that make it easy to override the styles and props(!) of the component.

    All of it being dynamic, you can add or modify your themes at runtime, dynamically.


    This is only a quick overview, please read the documentation to learn more.

    Vue UI

    The Vue UI package is a set of ready to use Vue 3 components built on top of the core components and Vue Typescript. It includes things like buttons, dialogs, popover, forms, etc., all highly customizable and coming with a default light and dark theme.


    Basics
    Button
    Your typical button.
    Alert
    A set of floating or in place notifications.
    Popover
    A floating component that sticks to another element. It can be used to make tooltips for example.
    Dialog
    A dialog is the most intrusive type of popover. They can be used to prompt the user for complex actions.
    Progress circular
    A circular loader to inform on the progress of a long-running task.
    Progress horizontal
    An horizontal progress bar to inform on the progress of a long-running task.
    Tabs
    Tabs allow you to divide your content into separate panels.
    Tag
    Tags can be used to highlight important keywords or status for better readability.
    Tree
    A simple tree view to display hierarchical data.
    Remote
    A component that allow you to do an ajax request and makes the result available through a slot.
    Icons
    Sets of icons made available as Vue 3 components.

    Form
    Text
    Form input for text data. Both <input/> and <textarea> are covered by this component.
    Select
    Dropdown selection of a list of choices.
    Checkbox / radio
    Component covering both checkboxes and radios.
    File
    To upload one or multiple files to a remote server.
    Tree
    Form integration of the Tree component.
    Form
    A powerful component that abstracts the repetitive parts you have to deal with when building a form.
    Hidden
    The simplest form field you can imagine. Its role is simply to hold a value without displaying anything.
    Validators
    Built-in Validators but as Vue 3 components. So you can set your validation rules directly in the HTML.

    Directives
    Collapsable
    Animate a DOM element from its natural height to 0 and vice-versa.
    Click outside
    Be notified when a click occurs outside an element.
    Stick to
    A wrapper around PopperJS for an easier integration with Vue.