Skip to content

[UI Preview] Add initial set of or-vaadin-components, applied them to Assets page#2340

Merged
Ekhorn merged 38 commits into
feature/ui-previewfrom
feature/asset-attribute-input-vaadin
Dec 19, 2025
Merged

[UI Preview] Add initial set of or-vaadin-components, applied them to Assets page#2340
Ekhorn merged 38 commits into
feature/ui-previewfrom
feature/asset-attribute-input-vaadin

Conversation

@MartinaeyNL
Copy link
Copy Markdown
Member

@MartinaeyNL MartinaeyNL commented Dec 11, 2025

Description

This PR adds an integration for the Vaadin Web Components, located in the /ui/component/or-vaadin-* folders.
They have been applied to the Assets page, within the or-attribute-input component.

Changelog

Breaking changes from MWC to Vaadin

There are several breaking changes when you migrate or-mwc-input to the new or-vaadin-input.
But, preferably, you'd use the individual components like or-vaadin-textfield instead.
You should only use the new or-vaadin-input if you want to dynamically switch between input types.

List of breaking changes from or-mwc-input to or-vaadin-input, although there are many more.
See the Vaadin docs for the exact specification and options.

  • HTML attribute focused becomes web standard autofocus.
  • HTML attribute helperText becomes web standard helper-text.
  • HTML attribute outlined has been removed.
  • HTML attribute rounded has been removed.
  • HTML attribute resizeVertical has been removed, please use web standard type="textarea" instead.
  • Event @or-mwc-input-changed becomes the web standard @change.
  • In case of type="checkbox", instead of value="true" you should use the web standard checked="true".

Checklist

  • 1. Acceptance criteria of the linked issue(s) are met
  • 2. Tests are written and all tests pass
  • 3. Changes are manually tested by you and the reviewer

…nager app instead of the individual component.
…d or-mwc-input. Resolved incorrect package JSON dependency mentions. Also includes minor cleanup.
… Also added the OpenRemote theme file to Storybook.
@MartinaeyNL MartinaeyNL self-assigned this Dec 11, 2025
@MartinaeyNL MartinaeyNL added the Enhancement Improvement of an existing feature label Dec 11, 2025
@wborn wborn requested a review from Copilot December 11, 2025 10:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new Vaadin-based component library (@openremote/or-vaadin-components) alongside a new theme package (@openremote/theme) to begin migrating away from Material Design Components. Key changes include creating wrapper components around Vaadin fields, implementing an input abstraction layer, and integrating these components into the Assets page workflow.

Key Changes

  • Added new @openremote/or-vaadin-components package with wrappers for Vaadin text fields, number fields, checkboxes, text areas, and password fields
  • Added new @openremote/theme package that imports Vaadin Lumo styles
  • Migrated input provider logic from or-mwc-components to or-vaadin-components with deprecation warnings on old code
  • Updated or-attribute-input and or-asset-viewer to use the new Vaadin components
  • Updated build configurations and dependencies across multiple packages, including upgrading @rsbuild/core to ~1.6.8

Reviewed changes

Copilot reviewed 40 out of 41 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
ui/component/or-vaadin-components/src/or-vaadin-input.ts Main abstraction component that wraps Vaadin components and handles attribute forwarding
ui/component/or-vaadin-components/src/util.ts Contains logic for determining input types and creating templates based on value descriptors
ui/component/or-vaadin-components/src/or-vaadin-*.ts Simple wrapper components extending Vaadin base components
ui/component/or-mwc-components/src/or-mwc-input.ts Added deprecation warnings and removed duplicated logic moved to Vaadin components
ui/component/or-attribute-input/src/index.ts Updated to use new Vaadin input provider with simplified callback signatures
ui/component/or-asset-viewer/src/or-edit-asset-panel.ts Updated meta item editing to use new input provider
ui/component/theme/* New theme package that imports Vaadin Lumo styles
ui/app/manager/src/index.ts Applies theme CSS to manager app
yarn.lock Updated dependencies including Vaadin beta packages and Rsbuild/Rspack tooling
ui/knip.jsonc Added ignores for Vaadin styles and Rsdoctor plugin

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ui/component/or-attribute-input/src/index.ts Outdated
Comment thread ui/component/or-vaadin-components/src/util.ts
Comment thread ui/component/or-vaadin-components/src/util.ts Outdated
Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts Outdated
Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts Outdated
Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts Outdated
@MartinaeyNL MartinaeyNL linked an issue Dec 11, 2025 that may be closed by this pull request
@MartinaeyNL MartinaeyNL changed the title [UI Preview] Added initial set of or-vaadin-components, applied them to Assets page [UI Preview] Add initial set of or-vaadin-components, applied them to Assets page Dec 16, 2025
@MartinaeyNL MartinaeyNL requested a review from Ekhorn December 16, 2025 15:47
Copy link
Copy Markdown
Contributor

@Ekhorn Ekhorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initial review. I'll have another look ;)

Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts Outdated
Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts Outdated
Comment thread ui/component/or-vaadin-components/src/util.ts Outdated
MartinaeyNL and others added 3 commits December 17, 2025 11:29
Co-authored-by: Koen <44117179+Ekhorn@users.noreply.github.com>
Co-authored-by: Koen <44117179+Ekhorn@users.noreply.github.com>
Co-authored-by: Koen <44117179+Ekhorn@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@Ekhorn Ekhorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I'll approve after these remaining threads.

Comment thread ui/component/or-vaadin-components/stories/or-vaadin-textfield.stories.ts Outdated
Comment thread ui/component/or-vaadin-components/src/util.ts Outdated
Comment thread ui/component/theme/package.json Outdated
Comment thread ui/component/theme/tsconfig.json Outdated
Comment thread ui/component/theme/build.gradle
Comment thread ui/app/manager/src/index.ts Outdated
@MartinaeyNL MartinaeyNL marked this pull request as ready for review December 17, 2025 16:40
Copy link
Copy Markdown
Contributor

@Ekhorn Ekhorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the deployment up-to-date?

Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts
@MartinaeyNL
Copy link
Copy Markdown
Member Author

No I haven't updated the testing deployment yet. Will do.

Comment thread ui/component/or-vaadin-components/src/or-vaadin-input.ts
…bmit on pressing ENTER (or send button). Fix for attribute input dropdown showing send button.
Copy link
Copy Markdown
Contributor

@Ekhorn Ekhorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

@Ekhorn Ekhorn merged commit b66372e into feature/ui-preview Dec 19, 2025
2 checks passed
@Ekhorn Ekhorn deleted the feature/asset-attribute-input-vaadin branch December 19, 2025 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement Improvement of an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate assets page to Vaadin components

3 participants