Skip to content

Form.io v4→v5 + Bootstrap 5 modernization (blocks @formio/vue 6 #88, bootstrap 5 #90) #97

Description

@pmigueld

Form.io v4→v5 + Bootstrap 5 modernization

Two Dependabot majors — @formio/vue 5→6 (#88) and bootstrap 4→5 (#90) — cannot land as isolated bumps. They're entangled because the codebase currently straddles two Form.io versions: formiojs@4 (mobile custom components + CSS) and @formio/js@5 (admin, and @formio/vue@6's renderer). Both bumps compile and pass unit tests but have real functional/visual regressions that only a coordinated migration + device/visual testing can resolve.

Why the piecemeal bumps are blocked

@formio/vue 6 (#88) — mechanical work done on chore/formio-vue-6-migration:

  • Bumped @formio/vue→6.3.0 (web, mobile), @formio/js→5.5.0 (peer), fixed the mobile FormioWrapper deep import (@formio/vue/lib/index@formio/vue). Builds + type-checks + tests (mobile 193, web 74) pass.
  • Regression: @formio/vue 6 renders via @formio/js@5, but mobile registers its custom components (biometricCapture, Claim169Scanner) on the formiojs@4 registry (packages/mobile/src/formio/index.ts) — separate package, separate registry. Those components will not render in v6 forms → breaks biometric + Claim-169 capture.
  • packages/web doesn't actually use @formio/vue (renders via formiojs@4 directly in FormRenderer.vue) — the bump is dead weight there.

bootstrap 5 (#90) — mechanical work done on chore/bootstrap-5-migration:

  • Bumped bootstrap→5.3.8 (admin, web; mobile already BS5), migrated admin/src/formio/builder-theme.scss to BS5 (import order, variables-dark+maps, utilities split, global :root, dropped deleted partials). Builds + tests (admin 166, web 74) pass. No class renames needed (the ml-*/fw-* hits are Vuetify utilities, not Bootstrap).
  • Regression: Form.io's @formio/bootstrap@4.0.2 templates emit BS4 markup (input-group-append, custom-control, .close, .sr-only, …) that BS5 CSS won't style correctly → visual regressions in the admin form builder and web form renderer.

Scope of the coordinated migration

  1. Migrate mobile custom-component registration + CSS from formiojs@4@formio/js@5 (mirror admin's import { Formio } from '@formio/js' + @formio/js/dist/formio.full.min.css), adapting to the v4→v5 component lifecycle.
  2. Adopt a BS5-compatible @formio/bootstrap (or equivalent template layer) so rendered form markup matches BS5.
  3. Land @formio/vue 6 (chore(deps): bump @formio/vue from 5.0.0 to 6.3.0 #88) and bootstrap 5 (chore(deps): bump bootstrap from 4.6.2 to 5.3.8 #90) together on top of (1)+(2).
  4. Remove the unused @formio/vue from packages/web (or migrate its FormRenderer to @formio/js@5).
  5. Device-test biometric + Claim-169 capture (relates to Inji/Claim-169 work, #652).
  6. Visual review the admin Form.io builder (component palette, edit dialogs) and web form renderer under BS5.

References

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions