Modules

KVision consists of both required and optional functionality. Modules can be added as dependencies in build.gradle.kts file.

All modules which include CSS stylesheets require explicit initialization. This also applies to the core module. This initialization ensures a predictable order in which all styles will be applied. The initialization is performed by adding dedicated module objects as parameters to the startApplication() function.

fun main() {
    startApplication(
        ::App,
        js("import.meta.webpackHot").unsafeCast<Hot?>(),
        BootstrapModule,
        BootstrapCssModule,
        FontAwesomeModule,
        TomSelectModule,
        DatetimeModule,
        BootstrapUploadModule,
        CoreModule
    )
}

Some modules include more than one, optional initializers. E.g. kvision-tabulator module includes mandatory TabulatorModule but also TabulatorCssBootstrapModule , TabulatorCssBulmaModule, TabulatorCssMaterializeModule, TabulatorCssMidnightModule, TabulatorCssModernModule, TabulatorCssSemanticModule, TabulatorCssSimpleModule and TabulatorCssStandardModule for all CSS styles supported by the Tabulator component.

This is the current list of available modules.

Module

Description

kvision

Core module required for all applications.

Bootstrap based components.

Can be omitted for applications, which use only the core functionality of the framework.

See Theming chapter for more information.

kvision-tailwindcss

TailwindCSS support.

kvision-bootstrap-upload

Bootstrap based upload form component.

kvision-bootstrap-icons

kvision-datetime

Date and time picker form components.

kvision-tom-select

Select and typeahead (autocomplete) components based on Tom Select library.

Handlebars.js templates support for text components.

Internationalization support.

kvision-imask

Text input mask support powered by Imask.js

kvision-richtext

Rich text form component.

kvision-chart

Chart component.

kvision-pace

Pace automatic page loader.

kvision-ballast

Integration with Ballast state management framework

ReduxKotlin state container.

See Using Redux chapter for more information.

Support for using React components in KVision applications.

kvision-maps

A basic module with the Maps component, based on Leaflet library.

PR welcomed!

kvision-material

Material Web based components.

kvision-toastify

Toast messages.

kvision-print

Printing support with Print.js library.

kvision-routing-navigo

Routing module based on Navigo 7 library.

Routing module based on Navigo 8+ library.

kvision-routing-ballast

Routing module based on Ballast framework.

jQuery bindings, events and animations.

Configurable REST/HTTP client.

State bindings and observable data structures.

kvision-state-flow

Extensions for Kotlin coroutines Flow, StateFlow and SharedFlow.

Select form component tailored for fullstack applications.

kvision-tom-select-remote

Select and typeahead (autocomplete) form components tailored for fullstack applications

Tabulator component tailored for fullstack applications

kvision-common-types

KVision common types definitions.

kvision-common-remote

KVision common module for fullstack applications, with remote services definitions.

See: Full Stack Development Guide

Last updated