Skip to content

Client Changelog ​

Integrator-facing changes for the @arrai-innovations/vueda npm package.

Use this page for changes that affect client package consumers: public Vue components, composables, routes, stores, theme behavior, build integration, dependency expectations, and migration notes.

Unreleased ​

Breaking Changes ​

Forms and validation ​

  • Action confirmation views laid out as pages (#578):
    • ViewAction, ViewExecuteTransition, ViewActivate, ViewDeactivate, and ViewDestroy now place the confirm button in the sticky action bar under the page title and their content in the page gutter, as ViewRead and ViewUpdate do, and the confirm button names the action instead of reading "Yes, continue". ActionForm and ModelActionForm gain a page prop for this layout, and selected-record chips show formatted names without primary keys. Overrides of the removed ViewDestroy.card and ViewDestroy.body theme keys no longer apply; restyle the destroy page through the ModelActionForm and ActionForm keys instead.

Features ​

Forms and validation ​

  • Record name heading on read and update views (#574):
    • ViewRead, ViewUpdate, and DetailView now show a heading above the fields that names the record by its formatted name, and they request formatted_name when the view's field lists leave it out. The record-name slot and the recordName and recordNameSkeleton theme keys customize the heading. A serializer that shows formatted_name as a visible field now shows the name twice, and style={"hidden": True} on that field removes the field row.

History ​

  • ViewHistoryList shows workflow state changes (#527):
    • An event with relation: "state" reads "Workflow state" in the Model cell, and its changes show the old and new state. The cell carries data-relation="state" for theming.

v3.0.0-beta.1 (2026-10-21) ​

This is the first public beta of the VUEDA v3 client. It builds list, detail, form, action, and workflow screens from the metadata that the VUEDA server publishes. A project on client v2.0.4 upgrades with Upgrade from VUEDA v2, which also covers the matching server upgrade.

Installation and Requirements ​

Install the beta from the public npm registry by its beta tag:

bash
pnpm add @arrai-innovations/vueda@beta

The client requires:

  • Node 22 or later.
  • Vue 3.5, Vue Router 4.5, and Pinia 3.
  • The peer dependencies in package.json, including @arrai-innovations/reactive-helpers 25, @vueuse/core 14, and @arrai-innovations/vue-sonner 2.0.11.
  • Tailwind CSS 4 with @tailwindcss/vite for the default theme.
  • A v3 VUEDA server. The client reads metadata shapes that only the v3 server sends.

Client Plugin Prerequisites lists the setup that the application performs before it mounts.

Capabilities ​

  • Controls and theme. VUEDA ships its own controls, built on Reka UI, and a default theme of Tailwind classes and CSS tokens. You can restyle one instance, one component, a family of components, or the whole brand. Theming and Customization describes the four scopes.
  • Icons. Components resolve icons through a registry. A Font Awesome Free preset fills it. Register the Icons shows the setup.
  • Layout. The application layout owns the page title, page actions, and sticky bars, and views contribute to them. Place the Page Title and Page Actions shows the setup.
  • Lists. List views sort by several fields through chips and keep the sort in the URL. They filter through chips with typed inputs, open scoped lists, and link rows to detail views. Columns render by field type and can show server column totals. Configure list/read/create/update Views covers the options.
  • Forms. Forms confirm server warnings before a write, upload files at any depth of a nested form, and render read-only values formatted by field type. A read-only file field shows a link to the stored file, and a user can clear an optional file field. Require Confirmation Before a Write covers the confirmation step.
  • Routing. makeCRUDRoutes opens a route for each workflow transition by its code, rechecks access when the signed-in user changes, and honors the routeActions allowlist. Routing and View Resolution Model describes the guard chain.
  • Auth views. Default sign-in, forgot-password, reset-password, and reauthentication views cover two-factor sign-in and code-based reauthentication. Build Auth Views shows the routes that they expect. AuthForm keeps its reauthentication and sign-in redirects. Pass its onSubmissionErrorHandler prop to handle its other submission errors, as Build a Form for a Signed-In Operation describes.
  • User changes. Stores clear metadata, configuration, choices, and workflow data when the signed-in user changes. When the Signed-In User Changes lists what clears.
  • Build integration. vuedaViteConfig() sets up the @vueda alias and deduplicates peer packages. When you pass your src directory as its @ alias, it also finds convention-named action views.

Known Limitations ​

  • useVersion().newClientAvailable stays false unless the project defines VITE_PACKAGE_VERSION itself, because vuedaViteConfig() does not define it (#300).
  • Relation selects built on WidgetModel load only the first 200 options and have no search. List filter dropdowns have the same limit (#381). WidgetCombobox, the default relation widget, searches the list endpoint and does not have this limit.
  • A form does not report fields that failed to render. A user can submit a form with a field that they never saw (#197).
  • The client uses fixed query parameter names. A server that renames o, s, the page parameters, or ct needs a matching client change (#301).
  • A built-in theme module that loads after the application calls setClassMerger replaces the application's class merger (#467).
  • The design review of the default theme is incomplete, so default styles may change between betas (#248).

Public Baseline ​

VUEDA client versions before v3.0.0-beta.1 were private releases or prereleases. This page starts the public history at v3.0.0-beta.1.