Skip to content

Replace ThemableTextField's vaadin-text-field backing with a faux element#24440

Draft
Artur- wants to merge 1 commit into
mainfrom
drop-themable-text-field
Draft

Replace ThemableTextField's vaadin-text-field backing with a faux element#24440
Artur- wants to merge 1 commit into
mainfrom
drop-themable-text-field

Conversation

@Artur-

@Artur- Artur- commented May 25, 2026

Copy link
Copy Markdown
Member

ThemableTextField is a test-only wrapper used by two ITs that exercise Flow's per-component CSS machinery (a CSS file at
theme/components/.css, and @CssImport(themeFor=)). Both mechanisms target a specific custom-element tag name and inject styles into its shadow DOM; the actual vaadin-text-field was incidental.

Drop the @NpmPackage("@vaadin/text-field") and back ThemableTextField with a small hand-rolled custom element ("themable-input") whose shadow DOM reproduces the structure the ITs walk (div.vaadin-field-container > vaadin-input-container[part=input-field]). Update the per-component CSS path in ComponentThemeLiveReloadIT and the themeFor value in vite-basics' MainView to match the new tag.

Net effect: identical test coverage of Flow's per-component CSS pipeline and live-reload, without depending on a Vaadin web component. Part of removing TestVersion.VAADIN usages.

@github-actions

github-actions Bot commented May 25, 2026

Copy link
Copy Markdown

Test Results

 1 438 files  ±0   1 438 suites  ±0   1h 17m 44s ⏱️ - 5m 33s
10 115 tests ±0  10 045 ✅  - 2  68 💤 ±0  2 ❌ +2 
10 587 runs  ±0  10 516 ✅  - 2  69 💤 ±0  2 ❌ +2 

For more details on these failures, see this check.

Results for commit ae53af6. ± Comparison against base commit 1ac94ad.

♻️ This comment has been updated with latest results.

…ment

ThemableTextField is a test-only wrapper used by two ITs that exercise
Flow's per-component CSS machinery (a CSS file at
theme/components/<tag>.css, and @CssImport(themeFor=<tag>)). Both
mechanisms target a specific custom-element tag name and inject styles
into its shadow DOM; the actual vaadin-text-field was incidental.

Drop the @NpmPackage("@vaadin/text-field") and back ThemableTextField
with a small hand-rolled custom element ("themable-input") whose shadow
DOM reproduces the structure the ITs walk (div.vaadin-field-container >
vaadin-input-container[part=input-field]). Update the per-component CSS
path in ComponentThemeLiveReloadIT and the themeFor value in
vite-basics' MainView to match the new tag.

Net effect: identical test coverage of Flow's per-component CSS pipeline
and live-reload, without depending on a Vaadin web component. Part of
removing TestVersion.VAADIN usages.
@Artur- Artur- force-pushed the drop-themable-text-field branch from 594650f to ae53af6 Compare June 9, 2026 11:35
@sonarqubecloud

sonarqubecloud Bot commented Jun 9, 2026

Copy link
Copy Markdown

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant