Skip to content

docs: improve JavaScript interoperability documentation#5087

Draft
Artur- wants to merge 16 commits into
mainfrom
js-ts-integrate-improvements
Draft

docs: improve JavaScript interoperability documentation#5087
Artur- wants to merge 16 commits into
mainfrom
js-ts-integrate-improvements

Conversation

@Artur-

@Artur- Artur- commented Jan 26, 2026

Copy link
Copy Markdown
Member

Add TypeScript coverage, npm package wrapping guidance, and advanced Lit integration patterns to address gaps identified in forum feedback.

Add TypeScript coverage, npm package wrapping guidance, and advanced
Lit integration patterns to address gaps identified in forum feedback.
@CLAassistant

CLAassistant commented Jan 26, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Artur- and others added 15 commits January 26, 2026 09:35
Replace manual JSON string passing with setPropertyBean() and a Java
record, matching the idiomatic Vaadin pattern for complex objects.
Adapt branch content to the new structure where how-to content moved
to building-apps/components/. Accept deletion of
an-in-project-web-component.adoc, keep TypeScript and @NpmPackage
design sections in index.adoc as reference material, and update
cross-references throughout.
The @NpmPackage annotation referencing the non-existing @acme/widget
npm package caused build failures. Move it to inline code in the
adoc file so it still appears in the docs but is not compiled.
Flow 25 migrated the Element and event APIs from elemental.json to
Jackson. Refresh the inline snippets accordingly:

- setPropertyJson now takes a Jackson BaseJsonNode; show
  JacksonUtils.createObjectNode() and add setPropertyList/setPropertyMap
- @eventdata binds directly to typed values (List<Integer>) since event
  data is Jackson-deserialized
- low-level listener event data is a Jackson JsonNode, not elemental
- callJsFunction accepts all Jackson-serializable types
The project builds with experimentalDecorators/useDefineForClassFields:false,
so Lit properties must be declared without the TC39 'accessor' keyword. The
dspublisher production build (Rollup) fails to parse 'accessor', which broke
build-and-deploy even though Java compile and eslint passed.
@github-actions

Copy link
Copy Markdown

Preview Deployment

This PR has been deployed for preview.

URL: https://docs-preview-pr-5087.fly.dev

Changed pages

Added content is highlighted in green; removed content is marked in red on each page.

Built from 4e21002

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants