Skip to content

Commit fb8890e

Browse files
Merge branch 'main' into user-settings
2 parents feb5468 + 49f5afc commit fb8890e

76 files changed

Lines changed: 4771 additions & 1956 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
# [2.21.0-rc.3](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.2...v2.21.0-rc.3) (2026-03-26)
7+
8+
9+
### Bug Fixes
10+
11+
* **ui5-combo-box:** proper first select of an item with duplicate text ([#13302](https://github.com/UI5/webcomponents/issues/13302)) ([9434684](https://github.com/UI5/webcomponents/commit/9434684e475fadac7a30d96e1ab2c464274f9e29)), closes [#13292](https://github.com/UI5/webcomponents/issues/13292)
12+
* **ui5-li:** prevent item-click for disabled nested interactive controls ([#13275](https://github.com/UI5/webcomponents/issues/13275)) ([489891c](https://github.com/UI5/webcomponents/commit/489891cb448b4850eb095e4c3e158456a21cd334)), closes [#10976](https://github.com/UI5/webcomponents/issues/10976)
13+
* **ui5-select:** nvda announcement of the selected value ([#12774](https://github.com/UI5/webcomponents/issues/12774)) ([00bb8fe](https://github.com/UI5/webcomponents/commit/00bb8fe75e340be66aa4f7531d350ec7cde2efa4))
14+
15+
16+
### Features
17+
18+
* **ui5-combobox:** add suggestion highlight of matching characters ([#13282](https://github.com/UI5/webcomponents/issues/13282)) ([05c1e08](https://github.com/UI5/webcomponents/commit/05c1e087cdf655f593101d7a549f5141cf9eb7cb))
19+
20+
21+
22+
23+
624
# [2.21.0-rc.2](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.1...v2.21.0-rc.2) (2026-03-19)
725

826

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"packages/create-package",
1515
"packages/compat"
1616
],
17-
"version": "2.21.0-rc.2",
17+
"version": "2.21.0-rc.3",
1818
"command": {
1919
"publish": {
2020
"allowBranch": "*",

packages/ai/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
# [2.21.0-rc.3](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.2...v2.21.0-rc.3) (2026-03-26)
7+
8+
**Note:** Version bump only for package @ui5/webcomponents-ai
9+
10+
11+
12+
13+
614
# [2.21.0-rc.2](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.1...v2.21.0-rc.2) (2026-03-19)
715

816

packages/ai/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ui5/webcomponents-ai",
3-
"version": "2.21.0-rc.2",
3+
"version": "2.21.0-rc.3",
44
"description": "UI5 Web Components: webcomponents.ai",
55
"ui5": {
66
"webComponentsPackage": true
@@ -48,15 +48,15 @@
4848
"directory": "packages/ai"
4949
},
5050
"dependencies": {
51-
"@ui5/webcomponents": "2.21.0-rc.2",
52-
"@ui5/webcomponents-base": "2.21.0-rc.2",
53-
"@ui5/webcomponents-icons": "2.21.0-rc.2",
54-
"@ui5/webcomponents-theming": "2.21.0-rc.2"
51+
"@ui5/webcomponents": "2.21.0-rc.3",
52+
"@ui5/webcomponents-base": "2.21.0-rc.3",
53+
"@ui5/webcomponents-icons": "2.21.0-rc.3",
54+
"@ui5/webcomponents-theming": "2.21.0-rc.3"
5555
},
5656
"devDependencies": {
5757
"@custom-elements-manifest/analyzer": "^0.10.10",
5858
"@ui5/cypress-internal": "0.1.0",
59-
"@ui5/webcomponents-tools": "2.21.0-rc.2",
59+
"@ui5/webcomponents-tools": "2.21.0-rc.3",
6060
"cypress": "15.9.0",
6161
"vite": "5.4.21"
6262
}

packages/base/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
# [2.21.0-rc.3](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.2...v2.21.0-rc.3) (2026-03-26)
7+
8+
9+
### Features
10+
11+
* **ui5-combobox:** add suggestion highlight of matching characters ([#13282](https://github.com/UI5/webcomponents/issues/13282)) ([05c1e08](https://github.com/UI5/webcomponents/commit/05c1e087cdf655f593101d7a549f5141cf9eb7cb))
12+
13+
14+
15+
16+
617
# [2.21.0-rc.2](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.1...v2.21.0-rc.2) (2026-03-19)
718

819

packages/base/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ui5/webcomponents-base",
3-
"version": "2.21.0-rc.2",
3+
"version": "2.21.0-rc.3",
44
"description": "UI5 Web Components: webcomponents.base",
55
"author": "SAP SE (https://www.sap.com)",
66
"license": "Apache-2.0",
@@ -63,10 +63,10 @@
6363
},
6464
"devDependencies": {
6565
"@custom-elements-manifest/analyzer": "^0.10.10",
66-
"@openui5/sap.ui.core": "1.120.17",
66+
"@openui5/sap.ui.core": "1.146.0",
6767
"@sap-theming/theming-base-content": "11.34.1",
6868
"@ui5/cypress-internal": "0.1.0",
69-
"@ui5/webcomponents-tools": "2.21.0-rc.2",
69+
"@ui5/webcomponents-tools": "2.21.0-rc.3",
7070
"clean-css": "^5.2.2",
7171
"cypress": "15.9.0",
7272
"mocha": "^11.7.2",

packages/base/src/asset-registries/Icons.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ type CollectionData = {
1919
path?: string,
2020
paths?: Array<string>,
2121
ltr?: boolean,
22+
viewBox?: string,
2223
acc?: I18nText,
2324
}>,
2425
};
@@ -70,6 +71,7 @@ const _fillRegistry = (bundleData: CollectionData) => {
7071
registerIcon(iconName, {
7172
pathData: (iconData.path || iconData.paths)!,
7273
ltr: iconData.ltr,
74+
viewBox: iconData.viewBox,
7375
accData: iconData.acc,
7476
collection: bundleData.collection,
7577
packageName: bundleData.packageName,
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import escapeRegex from "./escapeRegex.js";
2+
// @ts-expect-error
3+
import encodeXML from "../sap/base/security/encodeXML.js";
4+
5+
/**
6+
* Generate markup for a raw string where the first match following StartsWithPerTerm pattern is wrapped with `<b>` tag.
7+
* StartsWithPerTerm pattern: finds the first word (at start or after whitespace) that starts with the search text.
8+
* All inputs to this function are considered literal text, and special characters will always be escaped.
9+
* @param {string} text The text to add highlighting to
10+
* @param {string} textToHighlight The text which should be highlighted (case-insensitive)
11+
* @return {string} the markup HTML which contains the first match surrounded with a `<b>` tag.
12+
*/
13+
function generateHighlightedMarkupFirstMatch(text: string, textToHighlight: string): string {
14+
const normalizedText = text || "";
15+
16+
if (!normalizedText || !textToHighlight) {
17+
return encodeXML(normalizedText) as string;
18+
}
19+
20+
const filterValue = textToHighlight.toLowerCase();
21+
const lowerText = normalizedText.toLowerCase();
22+
const matchLength = textToHighlight.length;
23+
24+
// Find the first word that starts with textToHighlight (StartsWithPerTerm pattern)
25+
let matchIndex = lowerText.search(new RegExp(`(^|\\s)${escapeRegex(filterValue)}`));
26+
if (matchIndex !== -1 && lowerText[matchIndex] === " ") {
27+
matchIndex++; // Skip the space
28+
}
29+
30+
// If no match found, return encoded text
31+
if (matchIndex === -1) {
32+
return encodeXML(normalizedText) as string;
33+
}
34+
35+
// Build highlighted markup with only the first match
36+
const beforeMatch = encodeXML(normalizedText.substring(0, matchIndex)) as string;
37+
const match = encodeXML(normalizedText.substring(matchIndex, matchIndex + matchLength)) as string;
38+
const afterMatch = encodeXML(normalizedText.substring(matchIndex + matchLength)) as string;
39+
40+
return `${beforeMatch}<b>${match}</b>${afterMatch}`;
41+
}
42+
43+
export default generateHighlightedMarkupFirstMatch;

packages/compat/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
# [2.21.0-rc.3](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.2...v2.21.0-rc.3) (2026-03-26)
7+
8+
**Note:** Version bump only for package @ui5/webcomponents-compat
9+
10+
11+
12+
13+
614
# [2.21.0-rc.2](https://github.com/UI5/webcomponents/compare/v2.21.0-rc.1...v2.21.0-rc.2) (2026-03-19)
715

816

packages/compat/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ui5/webcomponents-compat",
3-
"version": "2.21.0-rc.2",
3+
"version": "2.21.0-rc.3",
44
"description": "UI5 Web Components: webcomponents.compat",
55
"ui5": {
66
"webComponentsPackage": true
@@ -48,15 +48,15 @@
4848
"directory": "packages/compat"
4949
},
5050
"dependencies": {
51-
"@ui5/webcomponents": "2.21.0-rc.2",
52-
"@ui5/webcomponents-base": "2.21.0-rc.2",
53-
"@ui5/webcomponents-icons": "2.21.0-rc.2",
54-
"@ui5/webcomponents-theming": "2.21.0-rc.2"
51+
"@ui5/webcomponents": "2.21.0-rc.3",
52+
"@ui5/webcomponents-base": "2.21.0-rc.3",
53+
"@ui5/webcomponents-icons": "2.21.0-rc.3",
54+
"@ui5/webcomponents-theming": "2.21.0-rc.3"
5555
},
5656
"devDependencies": {
5757
"@custom-elements-manifest/analyzer": "^0.10.10",
5858
"@ui5/cypress-internal": "0.1.0",
59-
"@ui5/webcomponents-tools": "2.21.0-rc.2",
59+
"@ui5/webcomponents-tools": "2.21.0-rc.3",
6060
"cypress": "15.9.0",
6161
"vite": "5.4.21"
6262
}

0 commit comments

Comments
 (0)