The four PrimeUI Pro components hit 1.0.0 for Vue on 15 July, the first stable
release of any of them.
npm install @primeui/vue-scheduler
npm install @primeui/vue-taskboard
npm install @primeui/vue-chart
npm install @primeui/vue-texteditor
They need Vue 3.5 or newer and nothing else, with no shared runtime package to install alongside them.
How it got here
The release history explains what 1.0.0 means for these packages:
0.0.1-alpha.1 | 11 June (Scheduler), 22 June (the rest) |
1.0.0-beta.1 | 26 June |
1.0.0-rc.1 | 28 June |
1.0.0-rc.2, rc.3 | 15 July |
1.0.0 | 15 July |
Five weeks from the first alpha to stable, with three release candidates squeezed into the last two of those weeks. Scheduler went first and the other three followed, and all four have shared a version number since then.
What stable means here
The API is settled. 1.0.0 under semver is a promise that the next breaking
change gets a major version, and that promise is exactly what you do not have
during a beta. Vue got it first and Angular has it now as well, so picking
between the two is no longer a question about stability.
The surface is wide. Each package exports somewhere between twenty and forty components, because every part of every component is itself a component. In practice you use a handful of them and reach for the others when a design needs them.
How the components are assembled
Each component is a tree you put together yourself rather than one component with a large options object.
<script setup>
import { SchedulerRoot, SchedulerHeader, SchedulerNavigation, SchedulerTitle, SchedulerViewSelector, SchedulerContent, SchedulerWeek } from '@primeui/vue-scheduler';
</script>
<template>
<SchedulerRoot>
<SchedulerHeader>
<SchedulerNavigation />
<SchedulerTitle />
<SchedulerViewSelector />
</SchedulerHeader>
<SchedulerContent>
<SchedulerWeek />
</SchedulerContent>
</SchedulerRoot>
</template>
Swap SchedulerWeek for SchedulerMonth, SchedulerAgenda, SchedulerYear or
SchedulerResourceTimeline and nothing else in the tree has to change. The
resource views group events by room, person or machine, and the year view is a
heat grid of the whole calendar.
TaskBoard follows the same pattern, down to the parts that most board libraries
leave out: TaskBoardColumnEmpty for an empty column, TaskBoardDragPreview
for what follows the cursor, TaskBoardDropIndicator for where the card will
land, and TaskBoardDragConfirm for boards where a move has to be approved
before it sticks. There is also TaskBoardSwimlaneHeader, which adds a second
axis across the board.
Chart splits by renderer rather than by chart type:
<ChartSvg :height="460">
<ChartBar :data="data" category-x-field="month" value-y-field="tickets" />
<ChartXAxis />
<ChartYAxis />
</ChartSvg>
ChartSvg and ChartCanvas are both available, so a chart that needs crisp
text and a chart that needs to draw fifty thousand points use the same
components and differ only in the renderer around them. The layers are
components as well, which is why a combo chart comes out as two tags instead of
a configuration mode.
TextEditor is a block editor. You get TextEditorContent with
TextEditorBlockControls, TextEditorContextToolbar for the selection toolbar,
and separate parts for image and document upload, each of those with a dropzone
and a progress component of its own.
Composables
Composables are the one part with no Angular equivalent yet. Each package
exposes its internals through a composables entry point, so the machinery is
reusable instead of being locked inside the components:
import { useInlineEdit, useDateGridEngine } from '@primeui/vue-scheduler/composables';
Scheduler ships grid engines for the date, month and resource layouts, along
with adaptive rendering helpers and inline editing. TaskBoard exposes its drag
composables: useCardDrag, useCardDragGeometry, useColumnDrag.
These are for building a view the package does not ship. Most people will never need to, but anyone who does would otherwise be reimplementing a grid engine from nothing.
The other frameworks
Angular went through 1.0.0-beta.1 on 18 August and 1.0.0-rc.1 two days
later, reaching 1.0.0 on 26 August with the same four components and the same
composition model. React has not been published.
Vue has kept moving since this release. Scheduler and Chart are on 1.1.0 and
TaskBoard and TextEditor on 1.0.1, and all of it is additive: per-resource
business hours in Scheduler, wider custom data-label coverage in Chart, plugin
and formatter APIs on Chart’s main entry point. New things arrive in minor
versions and nothing you wrote against 1.0 needs revisiting.