Skip to content

Commit 4ccf4e2

Browse files
Artur-claude
andcommitted
feat: add Breadcrumb component
Implements a new Breadcrumb navigation component that displays hierarchical paths through the application structure. The component integrates with the existing @vaadin/breadcrumb web component and provides full Java API support. Key features: - Container component for managing breadcrumb items - Support for text and component content in items - Navigation via href or Router navigation targets - Automatic current page detection - Theme variants (small, large) - Full accessibility with ARIA labels - TestBench elements for UI testing - Comprehensive unit test coverage 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 91c1d52 commit 4ccf4e2

File tree

13 files changed

+1598
-0
lines changed

13 files changed

+1598
-0
lines changed

flow-components-bom/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@
5252
<artifactId>vaadin-board-testbench</artifactId>
5353
<version>${project.version}</version>
5454
</dependency>
55+
<dependency>
56+
<groupId>com.vaadin</groupId>
57+
<artifactId>vaadin-breadcrumb-flow</artifactId>
58+
<version>${project.version}</version>
59+
</dependency>
60+
<dependency>
61+
<groupId>com.vaadin</groupId>
62+
<artifactId>vaadin-breadcrumb-testbench</artifactId>
63+
<version>${project.version}</version>
64+
</dependency>
5565
<dependency>
5666
<groupId>com.vaadin</groupId>
5767
<artifactId>vaadin-button-flow</artifactId>

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<module>vaadin-accordion-flow-parent</module>
2020
<module>vaadin-avatar-flow-parent</module>
2121
<module>vaadin-app-layout-flow-parent</module>
22+
<module>vaadin-breadcrumb-flow-parent</module>
2223
<module>vaadin-button-flow-parent</module>
2324
<module>vaadin-card-flow-parent</module>
2425
<module>vaadin-checkbox-flow-parent</module>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.vaadin</groupId>
6+
<artifactId>vaadin-flow-components</artifactId>
7+
<version>25.0-SNAPSHOT</version>
8+
</parent>
9+
<artifactId>vaadin-breadcrumb-flow-parent</artifactId>
10+
<packaging>pom</packaging>
11+
<name>Vaadin Breadcrumb Parent</name>
12+
<description>Vaadin Breadcrumb Parent</description>
13+
<modules>
14+
<module>vaadin-breadcrumb-flow</module>
15+
<module>vaadin-breadcrumb-testbench</module>
16+
</modules>
17+
<dependencies/>
18+
<profiles>
19+
<profile>
20+
<id>default</id>
21+
<activation>
22+
<property>
23+
<name>!release</name>
24+
</property>
25+
</activation>
26+
<modules>
27+
<module>vaadin-breadcrumb-flow-integration-tests</module>
28+
</modules>
29+
</profile>
30+
</profiles>
31+
</project>
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.vaadin</groupId>
6+
<artifactId>vaadin-breadcrumb-flow-parent</artifactId>
7+
<version>25.0-SNAPSHOT</version>
8+
</parent>
9+
<artifactId>vaadin-breadcrumb-integration-tests</artifactId>
10+
<packaging>war</packaging>
11+
<name>Vaadin Breadcrumb Integration Tests</name>
12+
<description>Vaadin Breadcrumb Integration Tests</description>
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.vaadin</groupId>
16+
<artifactId>flow-client</artifactId>
17+
<version>${flow.version}</version>
18+
</dependency>
19+
<dependency>
20+
<groupId>com.vaadin</groupId>
21+
<artifactId>flow-html-components</artifactId>
22+
<version>${flow.version}</version>
23+
</dependency>
24+
<dependency>
25+
<groupId>com.vaadin</groupId>
26+
<artifactId>flow-lit-template</artifactId>
27+
</dependency>
28+
<dependency>
29+
<groupId>com.vaadin</groupId>
30+
<artifactId>flow-polymer-template</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.vaadin</groupId>
34+
<artifactId>flow-test-generic</artifactId>
35+
<scope>test</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>com.vaadin</groupId>
39+
<artifactId>flow-test-util</artifactId>
40+
<scope>test</scope>
41+
</dependency>
42+
<dependency>
43+
<groupId>com.vaadin</groupId>
44+
<artifactId>vaadin-breadcrumb-flow</artifactId>
45+
<version>${project.version}</version>
46+
</dependency>
47+
<dependency>
48+
<groupId>com.vaadin</groupId>
49+
<artifactId>vaadin-breadcrumb-testbench</artifactId>
50+
<version>${project.version}</version>
51+
</dependency>
52+
<dependency>
53+
<groupId>com.vaadin</groupId>
54+
<artifactId>vaadin-dev-server</artifactId>
55+
</dependency>
56+
<dependency>
57+
<groupId>com.vaadin</groupId>
58+
<artifactId>vaadin-flow-components-test-util</artifactId>
59+
<version>${project.version}</version>
60+
<scope>test</scope>
61+
</dependency>
62+
<dependency>
63+
<groupId>com.vaadin</groupId>
64+
<artifactId>vaadin-lumo-theme</artifactId>
65+
<version>${project.version}</version>
66+
</dependency>
67+
<dependency>
68+
<groupId>com.vaadin</groupId>
69+
<artifactId>vaadin-ordered-layout-flow</artifactId>
70+
<version>${project.version}</version>
71+
</dependency>
72+
<dependency>
73+
<groupId>com.vaadin</groupId>
74+
<artifactId>vaadin-testbench-core</artifactId>
75+
<scope>test</scope>
76+
</dependency>
77+
<dependency>
78+
<groupId>org.slf4j</groupId>
79+
<artifactId>slf4j-simple</artifactId>
80+
<version>2.0.17</version>
81+
</dependency>
82+
</dependencies>
83+
<build>
84+
<plugins>
85+
<plugin>
86+
<artifactId>maven-clean-plugin</artifactId>
87+
<configuration>
88+
<filesets>
89+
<fileset>
90+
<directory>${project.basedir}</directory>
91+
<includes>
92+
<include>package*.json</include>
93+
<include>pnpm*</include>
94+
<include>vite.generated.ts</include>
95+
<include>types.d.ts</include>
96+
<include>tsconfig.json</include>
97+
<include>frontend/routes.tsx</include>
98+
<include>frontend/App.tsx</include>
99+
</includes>
100+
</fileset>
101+
<fileset>
102+
<directory>${project.basedir}/node_modules</directory>
103+
</fileset>
104+
<fileset>
105+
<directory>${project.basedir}/frontend</directory>
106+
<includes>
107+
<include>generated/vaadin.ts</include>
108+
<include>generated/vite-devmode.ts</include>
109+
<include>generated/jar-resources/</include>
110+
<include>generated/theme/</include>
111+
</includes>
112+
</fileset>
113+
</filesets>
114+
</configuration>
115+
</plugin>
116+
<plugin>
117+
<groupId>com.vaadin</groupId>
118+
<artifactId>flow-maven-plugin</artifactId>
119+
<version>${flow.version}</version>
120+
<executions>
121+
<execution>
122+
<goals>
123+
<goal>prepare-frontend</goal>
124+
<goal>build-frontend</goal>
125+
</goals>
126+
</execution>
127+
</executions>
128+
</plugin>
129+
<plugin>
130+
<groupId>org.eclipse.jetty</groupId>
131+
<artifactId>jetty-maven-plugin</artifactId>
132+
<version>${jetty.version}</version>
133+
<configuration>
134+
<scan>0</scan>
135+
<systemProperties>
136+
<vaadin.heartbeatInterval>5</vaadin.heartbeatInterval>
137+
</systemProperties>
138+
</configuration>
139+
</plugin>
140+
</plugins>
141+
</build>
142+
</project>
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.vaadin</groupId>
6+
<artifactId>vaadin-breadcrumb-flow-parent</artifactId>
7+
<version>25.0-SNAPSHOT</version>
8+
</parent>
9+
<artifactId>vaadin-breadcrumb-flow</artifactId>
10+
<packaging>jar</packaging>
11+
<name>Vaadin Breadcrumb</name>
12+
<description>Vaadin Breadcrumb</description>
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.vaadin</groupId>
16+
<artifactId>flow-server</artifactId>
17+
<scope>provided</scope>
18+
</dependency>
19+
<dependency>
20+
<groupId>com.vaadin</groupId>
21+
<artifactId>flow-test-generic</artifactId>
22+
<scope>test</scope>
23+
</dependency>
24+
<dependency>
25+
<groupId>com.vaadin</groupId>
26+
<artifactId>flow-test-util</artifactId>
27+
<scope>test</scope>
28+
</dependency>
29+
<dependency>
30+
<groupId>com.vaadin</groupId>
31+
<artifactId>vaadin-flow-components-base</artifactId>
32+
<version>${project.version}</version>
33+
</dependency>
34+
<dependency>
35+
<groupId>jakarta.platform</groupId>
36+
<artifactId>jakarta.jakartaee-web-api</artifactId>
37+
<scope>test</scope>
38+
</dependency>
39+
<dependency>
40+
<groupId>jakarta.servlet</groupId>
41+
<artifactId>jakarta.servlet-api</artifactId>
42+
</dependency>
43+
<dependency>
44+
<groupId>org.mockito</groupId>
45+
<artifactId>mockito-core</artifactId>
46+
<scope>test</scope>
47+
</dependency>
48+
<dependency>
49+
<groupId>org.slf4j</groupId>
50+
<artifactId>slf4j-simple</artifactId>
51+
<scope>test</scope>
52+
</dependency>
53+
</dependencies>
54+
<build>
55+
<plugins>
56+
<plugin>
57+
<groupId>biz.aQute.bnd</groupId>
58+
<artifactId>bnd-maven-plugin</artifactId>
59+
</plugin>
60+
<plugin>
61+
<groupId>org.apache.maven.plugins</groupId>
62+
<artifactId>maven-jar-plugin</artifactId>
63+
<configuration>
64+
<archive>
65+
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
66+
</archive>
67+
</configuration>
68+
</plugin>
69+
</plugins>
70+
</build>
71+
<profiles>
72+
<profile>
73+
<id>attach-docs</id>
74+
<activation>
75+
<property>
76+
<name>with-docs</name>
77+
</property>
78+
</activation>
79+
<build>
80+
<plugins>
81+
<plugin>
82+
<groupId>org.apache.maven.plugins</groupId>
83+
<artifactId>maven-source-plugin</artifactId>
84+
</plugin>
85+
<plugin>
86+
<groupId>org.apache.maven.plugins</groupId>
87+
<artifactId>maven-javadoc-plugin</artifactId>
88+
</plugin>
89+
<plugin>
90+
<groupId>org.codehaus.mojo</groupId>
91+
<artifactId>build-helper-maven-plugin</artifactId>
92+
</plugin>
93+
</plugins>
94+
</build>
95+
</profile>
96+
</profiles>
97+
</project>

0 commit comments

Comments
 (0)