@uncharted.software/jsonforms-primevue

Vue 3 renderer set for JSON Forms (jsonforms.io) using PrimeVue 4
24,651
Install
npm install @uncharted.software/jsonforms-primevue
Latest Version:1.5.0
Vue:3
License:Apache-2.0
Last Updated:Oct 20, 2026
Links: GitHub  ·  npm
Maintainer: joshuacruz

jsonforms-primevue

Motivation

The JSONForms.io packages include integrations for vanilla HTML and Vuetify, but we needed PrimeVue. In addition, we needed to support other new options such as:

  • Display-only mode: Rather than just 'disabling' the control, we want to display the control as a read-only text display
    • Allows JSONForms to be used not only to describe Input forms, but also to describe Output displays
  • Label controls as captioned images
  • Description display (always, tooltip)
  • Layout options (default, space-between)
  • Number control options (step, prefix, suffix)
  • Date/Time control options (hourFormat)

Installation

yarn add @uncharted.software/jsonforms-primevue @jsonforms/core @jsonforms/vue primevue

Usage

A runnable example playground application for live editing is available:

yarn dev

In your own app, import and add the ranked renderer configurations and supply them to the JSON Forms component. i.e.:

<script lang="ts">
import { JsonForms } from "@jsonforms/vue";
import primeVueRenderers from "@uncharted.software/jsonforms-primevue";
import "@uncharted.software/jsonforms-primevue/style.css";
import PrimeVue from 'primevue/config';
import Tooltip from 'primevue/tooltip';

// Important: Register the PrimeVue tooltip directive for description tooltips to work
app.use(PrimeVue);
app.directive('tooltip', Tooltip);

// defineComponent(...
</script>    
    
<template>
    <JsonForms
        :data="exampleData"
        :renderers="primeVueRenderers"
        :schema="dataSchema"
        :uischema="uiSchema"
        @change="onFormChanged" 
    /> 
</template>

For detailed documentation on all available components, options, and customization features, please refer to the Documentation.

Built-in UI icons use inline SVG defaults (no PrimeIcons dependency). To use another icon set (for example Phosphor), call provideJsonFormsPrimeVueIcons in app setup — see Icons in the documentation.

Roadmap / TODO

  • Basic controls for all types
    • String input
    • Number & Integer Input
      • Min/Max range support
      • Step support
      • Prefix/Suffix support
      • As-slider support
    • Enum
      • as strings
      • as dropdown
      • as oneOf (to support value vs label for each item)
      • as 'radio' option
    • Boolean (checkbox)
    • Date
    • Date-Time
    • Label placement options (float | left | right)
    • Description display & options (always | tooltip)
  • Categories/Category layout renderer
  • Group Layout renderer (with toggleable option to render as an accordion)
  • HorizontalLayout / VerticalLayout styling
    • Wrap/no-wrap or grid type support
  • Tables
  • Error / invalid state feedback
  • Rules
    • Disable
    • Visibility
  • Image display (option on Label)

2026-07-08

Related Packages

@narrative.io/jsonforms-provider-protocols

Dynamic data provider capabilities for JSONForms with Vue 3 integration

18,467
@chaoqing/jsonforms-vue-primevue

Vue PrimeVue v4 renderers for JSON Forms — community-maintained fork of @jsonfor...

1,815 0
@texaryn/vue

Schema-driven forms and display documents for Vue 3, with composables and defaul...

2,589 2
@jsonforms/vue-vuetify

Vue Vuetify renderers for JSON Forms

120,200 2,750
@jsonforms/vue

Vue 3 module of JSON Forms

1,739,837 2,752

Version History

Version Released License
1.5.0 Apache-2.0
1.4.0 Apache-2.0
1.3.4 Apache-2.0
1.3.3 Apache-2.0
1.3.0 Apache-2.0