@ui5/webcomponents-fiori 2.23.0-rc.2 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/HeroBanner.d.ts +147 -0
  4. package/dist/HeroBanner.js +165 -0
  5. package/dist/HeroBanner.js.map +1 -0
  6. package/dist/HeroBannerTemplate.d.ts +2 -0
  7. package/dist/HeroBannerTemplate.js +17 -0
  8. package/dist/HeroBannerTemplate.js.map +1 -0
  9. package/dist/NotificationListItem.d.ts +0 -1
  10. package/dist/NotificationListItem.js +2 -3
  11. package/dist/NotificationListItem.js.map +1 -1
  12. package/dist/ShellBar.d.ts +0 -1
  13. package/dist/ShellBar.js +2 -11
  14. package/dist/ShellBar.js.map +1 -1
  15. package/dist/ShellBarTemplate.js +1 -1
  16. package/dist/ShellBarTemplate.js.map +1 -1
  17. package/dist/bundle.esm.js +1 -0
  18. package/dist/bundle.esm.js.map +1 -1
  19. package/dist/css/themes/HeroBanner.css +1 -0
  20. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  21. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  22. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  23. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  24. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  25. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +6 -0
  26. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +6 -0
  27. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +6 -0
  28. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +6 -0
  29. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +6 -0
  30. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +6 -0
  31. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +6 -0
  32. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +6 -0
  33. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +6 -0
  34. package/dist/custom-elements-internal.json +381 -136
  35. package/dist/custom-elements.json +269 -4
  36. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  37. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  38. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  39. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  40. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  41. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  42. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  43. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  44. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  45. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  46. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  47. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  48. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  49. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  50. package/dist/generated/themes/HeroBanner.css.d.ts +2 -0
  51. package/dist/generated/themes/HeroBanner.css.js +8 -0
  52. package/dist/generated/themes/HeroBanner.css.js.map +1 -0
  53. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  54. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  55. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  56. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  57. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  58. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  59. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  60. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  61. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  62. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  63. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  64. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  65. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  66. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  67. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  68. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  69. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +6 -0
  70. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  71. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  72. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +6 -0
  73. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  74. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  75. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +6 -0
  76. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  77. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  78. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +6 -0
  79. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  80. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  81. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +6 -0
  82. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  83. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  84. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +6 -0
  85. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  86. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  87. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +6 -0
  88. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  89. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  90. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +6 -0
  91. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  92. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  93. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +6 -0
  94. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  95. package/dist/types/HeroBannerActionsPlacement.d.ts +20 -0
  96. package/dist/types/HeroBannerActionsPlacement.js +22 -0
  97. package/dist/types/HeroBannerActionsPlacement.js.map +1 -0
  98. package/dist/types/HeroBannerColumnsRatio.d.ts +21 -0
  99. package/dist/types/HeroBannerColumnsRatio.js +23 -0
  100. package/dist/types/HeroBannerColumnsRatio.js.map +1 -0
  101. package/dist/types/HeroBannerHeaderBlockPlacement.d.ts +20 -0
  102. package/dist/types/HeroBannerHeaderBlockPlacement.js +22 -0
  103. package/dist/types/HeroBannerHeaderBlockPlacement.js.map +1 -0
  104. package/dist/vscode.html-custom-data.json +32 -0
  105. package/dist/web-types.json +104 -1
  106. package/package.json +7 -7
  107. package/src/HeroBannerTemplate.tsx +65 -0
  108. package/src/ShellBarTemplate.tsx +1 -1
  109. package/src/themes/HeroBanner.css +359 -0
  110. package/src/themes/base/HeroBanner-parameters.css +8 -0
  111. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  112. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  113. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  114. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  115. package/src/themes/sap_horizon/HeroBanner-parameters.css +4 -0
  116. package/src/themes/sap_horizon/parameters-bundle.css +2 -0
  117. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  118. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -0
  119. package/src/themes/sap_horizon_exp/parameters-bundle.css +2 -0
  120. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  121. package/src/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -0
  122. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
  123. package/src/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Available HeroBanner header text block placement options.
3
+ *
4
+ * Defines the vertical placement of the header text block within the banner header area.
5
+ * @public
6
+ * @since 2.23.0
7
+ */
8
+ declare enum HeroBannerHeaderBlockPlacement {
9
+ /**
10
+ * Places the header text block at the top of the header area.
11
+ * @public
12
+ */
13
+ Top = "Top",
14
+ /**
15
+ * Places the header text block at the bottom of the header area.
16
+ * @public
17
+ */
18
+ Bottom = "Bottom"
19
+ }
20
+ export default HeroBannerHeaderBlockPlacement;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Available HeroBanner header text block placement options.
3
+ *
4
+ * Defines the vertical placement of the header text block within the banner header area.
5
+ * @public
6
+ * @since 2.23.0
7
+ */
8
+ var HeroBannerHeaderBlockPlacement;
9
+ (function (HeroBannerHeaderBlockPlacement) {
10
+ /**
11
+ * Places the header text block at the top of the header area.
12
+ * @public
13
+ */
14
+ HeroBannerHeaderBlockPlacement["Top"] = "Top";
15
+ /**
16
+ * Places the header text block at the bottom of the header area.
17
+ * @public
18
+ */
19
+ HeroBannerHeaderBlockPlacement["Bottom"] = "Bottom";
20
+ })(HeroBannerHeaderBlockPlacement || (HeroBannerHeaderBlockPlacement = {}));
21
+ export default HeroBannerHeaderBlockPlacement;
22
+ //# sourceMappingURL=HeroBannerHeaderBlockPlacement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroBannerHeaderBlockPlacement.js","sourceRoot":"","sources":["../../src/types/HeroBannerHeaderBlockPlacement.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,IAAK,8BAYJ;AAZD,WAAK,8BAA8B;IAClC;;;OAGG;IACH,6CAAW,CAAA;IAEX;;;OAGG;IACH,mDAAiB,CAAA;AAClB,CAAC,EAZI,8BAA8B,KAA9B,8BAA8B,QAYlC;AAED,eAAe,8BAA8B,CAAC","sourcesContent":["/**\n * Available HeroBanner header text block placement options.\n *\n * Defines the vertical placement of the header text block within the banner header area.\n * @public\n * @since 2.23.0\n */\nenum HeroBannerHeaderBlockPlacement {\n\t/**\n\t * Places the header text block at the top of the header area.\n\t * @public\n\t */\n\tTop = \"Top\",\n\n\t/**\n\t * Places the header text block at the bottom of the header area.\n\t * @public\n\t */\n\tBottom = \"Bottom\"\n}\n\nexport default HeroBannerHeaderBlockPlacement;\n"]}
@@ -226,6 +226,38 @@
226
226
  ],
227
227
  "references": []
228
228
  },
229
+ {
230
+ "name": "ui5-hero-banner",
231
+ "description": "### Overview\n\nThe `ui5-hero-banner` is a flexible, full-width banner designed for placement at the top of a page.\nIt provides a personalized greeting and quick access to key information or actions.\n\n### Structure\n\nThe HeroBanner consists of the following building blocks:\n\n- **Banner Canvas** - the visual base with a background color, optional background image and shadow.\n- **Overline** (optional) - contextual text at the top, e.g. the current date or a status message.\n- **Header** (optional) - the main greeting header below the overline, e.g. \"Hello, John\".\n- **Free Slots** (optional) - customizable content areas that can contain KPI cards, search components, text, buttons, etc.\n\nThe banner is not sticky — it scrolls away with the page content when the user scrolls down.\n\n### Usage\n\nPlace the `ui5-hero-banner` at the top of a page to welcome the user and surface relevant\ninformation or shortcuts at a glance.\n\nThe hero banner itself is non-interactive. However, interactive elements such as buttons, cards,\nor search fields can be placed inside the free content slots and will follow their own\ninteractive states.\n\n### Responsive Behavior\n\nThe hero banner adapts to different screen sizes:\n- On smaller screens, split layouts (Equal, FirstWider) collapse to a single stacked column.\n- The heading text wraps to multiple lines as needed.\n- Buttons in the headerAction slot will wrap.\n- On screens ≤1024px, the header text is wrapped to a maximum of 3 lines.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents-fiori/dist/HeroBanner.js\";`\n\n\n---\n\n\n\n\n### **Slots:**\n - **actions** - Defines action buttons displayed to the right of the header area.\nTypically used to display actions buttons in the top right corner.\n\nCan contain buttons, links, or other interactive elements that provide\nquick access to relevant actions directly from the hero banner header.\n- **default** - Defines the first (default) free content block of the hero banner.\n\nThis is the default slot — content placed directly inside `<ui5-hero-banner>`\nwithout a slot attribute lands here.\nCan contain KPI cards, search input fields, text, buttons, and more.\n- **endContent** - Defines the second free content block of the hero banner.\n\nUsed alongside `startContent` when `columnsRatio` is set (`Equal`, `FirstWider`).\nCan contain cards, buttons, and other interactive elements.\n\n### **CSS Parts:**\n - **canvas** - Used to style the banner canvas container\n- **content** - Used to style the content area of the banner\n- **endContent** - Used to style the end content block\n- **header** - Used to style the header area (salutation, date, header actions)\n- **startContent** - Used to style the start (default) content block",
232
+ "attributes": [
233
+ {
234
+ "name": "actions-placement",
235
+ "description": "Defines the placement of the actions slot within the hero banner header.\n\n- **TopEnd** (default) - Actions are displayed to the right of the header text, at the top of the header row.\n- **BottomStart** - Actions are displayed below the header text, left-aligned, regardless of `columnsRatio` or slot usage.",
236
+ "values": [{ "name": "TopEnd" }, { "name": "BottomStart" }]
237
+ },
238
+ {
239
+ "name": "columns-ratio",
240
+ "description": "Defines the ratio between the two content columns inside the hero banner.\n\nTakes effect only when `endContent` is provided. When no `endContent` is present, the content spans the full width (single column).\n\n- **Equal** - Two equal columns. Both content blocks share the available width equally.\n On smaller screens, both slots stack vertically.\n- **FirstWider** - Two unequal columns. The start content takes two-thirds of the width, the end content one-third.\n On smaller screens, both slots stack vertically.",
241
+ "values": [{ "name": "Equal" }, { "name": "FirstWider" }]
242
+ },
243
+ {
244
+ "name": "header-block-placement",
245
+ "description": "Defines the vertical placement of the header block within the content area.\n\n- **Top** (default) - Header block is placed at the top of the content area.\n- **Bottom** - Header block is pushed to the bottom of column 1. Only takes effect when `columnsRatio`\n is `Equal` or `FirstWider` and only `endContent` is provided (no default slot content).\n When `actionsPlacement` is also `BottomStart`, the `endContent` slot spans the full height.",
246
+ "values": [{ "name": "Top" }, { "name": "Bottom" }]
247
+ },
248
+ {
249
+ "name": "header-text",
250
+ "description": "Defines the header text displayed in the hero banner.\n\nThis is the main greeting header, typically a personalized message\nsuch as \"Hello, John\".",
251
+ "values": []
252
+ },
253
+ {
254
+ "name": "overline-text",
255
+ "description": "Defines text displayed above the heading as an overline.\nCan be used to show the current date, a status message, or any other relevant contextual information.",
256
+ "values": []
257
+ }
258
+ ],
259
+ "references": []
260
+ },
229
261
  {
230
262
  "name": "ui5-illustrated-message",
231
263
  "description": "### Overview\nAn IllustratedMessage is a recommended combination of a solution-oriented message, an engaging\nillustration, and conversational tone to better communicate an empty or a success state than just show\na message alone.\n\nEach illustration has default internationalised title and subtitle texts. Also they can be managed with\n`titleText` and `subtitleText` properties.\n\nTo display the desired illustration, use the `name` property, where you can find the list of all available illustrations.\n\n**Note:** By default the “BeforeSearch” illustration is loaded. To use other illustrations, make sure you import them in addition, for example:\n\n`import \"@ui5/webcomponents-fiori/dist/illustrations/NoData.js\"`\n\n**Note:** Illustrations starting with the “Tnt” prefix are part of another illustration set. For example to use the “TntSuccess” illustration, add the following import::\n\n`import \"@ui5/webcomponents-fiori/dist/illustrations/tnt/Success.js\"`\n\n### Structure\nThe IllustratedMessage consists of the following elements, which are displayed below each other in the following order:\n\n- Illustration\n- Title\n- Subtitle\n- Actions\n\n### Usage\n`ui5-illustrated-message` is meant to be used inside container component, for example a `ui5-card`,\na `ui5-dialog` or a `ui5-page`\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents-fiori/dist/IllustratedMessage.js\";`\n\n\n---\n\n\n\n\n### **Slots:**\n - **default** - Defines the component actions.\n\n**Note:** Not displayed when the `design` property is set to `Base`.\n- **subtitle** - Defines the subtitle of the component.\n\n**Note:** Using this slot, the default subtitle text of illustration and the value of `subtitleText` property will be overwritten.\n- **title** - Defines the title of the component.\n\n**Note:** Using this slot, the default title text of illustration and the value of `title` property will be overwritten.\n\n### **CSS Parts:**\n - **subtitle** - Used to style the subtitle wrapper of the `ui5-illustrated-message`",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@ui5/webcomponents-fiori",
4
- "version": "2.23.0-rc.2",
4
+ "version": "2.23.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -580,6 +580,89 @@
580
580
  "events": []
581
581
  }
582
582
  },
583
+ {
584
+ "name": "ui5-hero-banner",
585
+ "description": "### Overview\n\nThe `ui5-hero-banner` is a flexible, full-width banner designed for placement at the top of a page.\nIt provides a personalized greeting and quick access to key information or actions.\n\n### Structure\n\nThe HeroBanner consists of the following building blocks:\n\n- **Banner Canvas** - the visual base with a background color, optional background image and shadow.\n- **Overline** (optional) - contextual text at the top, e.g. the current date or a status message.\n- **Header** (optional) - the main greeting header below the overline, e.g. \"Hello, John\".\n- **Free Slots** (optional) - customizable content areas that can contain KPI cards, search components, text, buttons, etc.\n\nThe banner is not sticky — it scrolls away with the page content when the user scrolls down.\n\n### Usage\n\nPlace the `ui5-hero-banner` at the top of a page to welcome the user and surface relevant\ninformation or shortcuts at a glance.\n\nThe hero banner itself is non-interactive. However, interactive elements such as buttons, cards,\nor search fields can be placed inside the free content slots and will follow their own\ninteractive states.\n\n### Responsive Behavior\n\nThe hero banner adapts to different screen sizes:\n- On smaller screens, split layouts (Equal, FirstWider) collapse to a single stacked column.\n- The heading text wraps to multiple lines as needed.\n- Buttons in the headerAction slot will wrap.\n- On screens ≤1024px, the header text is wrapped to a maximum of 3 lines.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents-fiori/dist/HeroBanner.js\";`\n---\n\n\n### **Slots:**\n - **actions** - Defines action buttons displayed to the right of the header area.\nTypically used to display actions buttons in the top right corner.\n\nCan contain buttons, links, or other interactive elements that provide\nquick access to relevant actions directly from the hero banner header.\n- **default** - Defines the first (default) free content block of the hero banner.\n\nThis is the default slot — content placed directly inside `<ui5-hero-banner>`\nwithout a slot attribute lands here.\nCan contain KPI cards, search input fields, text, buttons, and more.\n- **endContent** - Defines the second free content block of the hero banner.\n\nUsed alongside `startContent` when `columnsRatio` is set (`Equal`, `FirstWider`).\nCan contain cards, buttons, and other interactive elements.\n\n### **CSS Parts:**\n - **canvas** - Used to style the banner canvas container\n- **content** - Used to style the content area of the banner\n- **endContent** - Used to style the end content block\n- **header** - Used to style the header area (salutation, date, header actions)\n- **startContent** - Used to style the start (default) content block",
586
+ "doc-url": "",
587
+ "attributes": [
588
+ {
589
+ "name": "actions-placement",
590
+ "description": "Defines the placement of the actions slot within the hero banner header.\n\n- **TopEnd** (default) - Actions are displayed to the right of the header text, at the top of the header row.\n- **BottomStart** - Actions are displayed below the header text, left-aligned, regardless of `columnsRatio` or slot usage.",
591
+ "value": {
592
+ "type": "\"TopEnd\" | \"BottomStart\"",
593
+ "default": "\"TopEnd\""
594
+ }
595
+ },
596
+ {
597
+ "name": "columns-ratio",
598
+ "description": "Defines the ratio between the two content columns inside the hero banner.\n\nTakes effect only when `endContent` is provided. When no `endContent` is present, the content spans the full width (single column).\n\n- **Equal** - Two equal columns. Both content blocks share the available width equally.\n On smaller screens, both slots stack vertically.\n- **FirstWider** - Two unequal columns. The start content takes two-thirds of the width, the end content one-third.\n On smaller screens, both slots stack vertically.",
599
+ "value": {
600
+ "type": "\"Equal\" | \"FirstWider\"",
601
+ "default": "\"FirstWider\""
602
+ }
603
+ },
604
+ {
605
+ "name": "header-block-placement",
606
+ "description": "Defines the vertical placement of the header block within the content area.\n\n- **Top** (default) - Header block is placed at the top of the content area.\n- **Bottom** - Header block is pushed to the bottom of column 1. Only takes effect when `columnsRatio`\n is `Equal` or `FirstWider` and only `endContent` is provided (no default slot content).\n When `actionsPlacement` is also `BottomStart`, the `endContent` slot spans the full height.",
607
+ "value": { "type": "\"Top\" | \"Bottom\"", "default": "\"Top\"" }
608
+ },
609
+ {
610
+ "name": "header-text",
611
+ "description": "Defines the header text displayed in the hero banner.\n\nThis is the main greeting header, typically a personalized message\nsuch as \"Hello, John\".",
612
+ "value": { "type": "string | undefined", "default": "undefined" }
613
+ },
614
+ {
615
+ "name": "overline-text",
616
+ "description": "Defines text displayed above the heading as an overline.\nCan be used to show the current date, a status message, or any other relevant contextual information.",
617
+ "value": { "type": "string | undefined", "default": "undefined" }
618
+ }
619
+ ],
620
+ "slots": [
621
+ {
622
+ "name": "actions",
623
+ "description": "Defines action buttons displayed to the right of the header area.\nTypically used to display actions buttons in the top right corner.\n\nCan contain buttons, links, or other interactive elements that provide\nquick access to relevant actions directly from the hero banner header."
624
+ },
625
+ {
626
+ "name": "default",
627
+ "description": "Defines the first (default) free content block of the hero banner.\n\nThis is the default slot — content placed directly inside `<ui5-hero-banner>`\nwithout a slot attribute lands here.\nCan contain KPI cards, search input fields, text, buttons, and more."
628
+ },
629
+ {
630
+ "name": "endContent",
631
+ "description": "Defines the second free content block of the hero banner.\n\nUsed alongside `startContent` when `columnsRatio` is set (`Equal`, `FirstWider`).\nCan contain cards, buttons, and other interactive elements."
632
+ }
633
+ ],
634
+ "events": [],
635
+ "js": {
636
+ "properties": [
637
+ {
638
+ "name": "actions-placement",
639
+ "description": "Defines the placement of the actions slot within the hero banner header.\n\n- **TopEnd** (default) - Actions are displayed to the right of the header text, at the top of the header row.\n- **BottomStart** - Actions are displayed below the header text, left-aligned, regardless of `columnsRatio` or slot usage.",
640
+ "value": { "type": "\"TopEnd\" | \"BottomStart\"" }
641
+ },
642
+ {
643
+ "name": "columns-ratio",
644
+ "description": "Defines the ratio between the two content columns inside the hero banner.\n\nTakes effect only when `endContent` is provided. When no `endContent` is present, the content spans the full width (single column).\n\n- **Equal** - Two equal columns. Both content blocks share the available width equally.\n On smaller screens, both slots stack vertically.\n- **FirstWider** - Two unequal columns. The start content takes two-thirds of the width, the end content one-third.\n On smaller screens, both slots stack vertically.",
645
+ "value": { "type": "\"Equal\" | \"FirstWider\"" }
646
+ },
647
+ {
648
+ "name": "header-block-placement",
649
+ "description": "Defines the vertical placement of the header block within the content area.\n\n- **Top** (default) - Header block is placed at the top of the content area.\n- **Bottom** - Header block is pushed to the bottom of column 1. Only takes effect when `columnsRatio`\n is `Equal` or `FirstWider` and only `endContent` is provided (no default slot content).\n When `actionsPlacement` is also `BottomStart`, the `endContent` slot spans the full height.",
650
+ "value": { "type": "\"Top\" | \"Bottom\"" }
651
+ },
652
+ {
653
+ "name": "header-text",
654
+ "description": "Defines the header text displayed in the hero banner.\n\nThis is the main greeting header, typically a personalized message\nsuch as \"Hello, John\".",
655
+ "value": { "type": "string | undefined" }
656
+ },
657
+ {
658
+ "name": "overline-text",
659
+ "description": "Defines text displayed above the heading as an overline.\nCan be used to show the current date, a status message, or any other relevant contextual information.",
660
+ "value": { "type": "string | undefined" }
661
+ }
662
+ ],
663
+ "events": []
664
+ }
665
+ },
583
666
  {
584
667
  "name": "ui5-illustrated-message",
585
668
  "description": "### Overview\nAn IllustratedMessage is a recommended combination of a solution-oriented message, an engaging\nillustration, and conversational tone to better communicate an empty or a success state than just show\na message alone.\n\nEach illustration has default internationalised title and subtitle texts. Also they can be managed with\n`titleText` and `subtitleText` properties.\n\nTo display the desired illustration, use the `name` property, where you can find the list of all available illustrations.\n\n**Note:** By default the “BeforeSearch” illustration is loaded. To use other illustrations, make sure you import them in addition, for example:\n\n`import \"@ui5/webcomponents-fiori/dist/illustrations/NoData.js\"`\n\n**Note:** Illustrations starting with the “Tnt” prefix are part of another illustration set. For example to use the “TntSuccess” illustration, add the following import::\n\n`import \"@ui5/webcomponents-fiori/dist/illustrations/tnt/Success.js\"`\n\n### Structure\nThe IllustratedMessage consists of the following elements, which are displayed below each other in the following order:\n\n- Illustration\n- Title\n- Subtitle\n- Actions\n\n### Usage\n`ui5-illustrated-message` is meant to be used inside container component, for example a `ui5-card`,\na `ui5-dialog` or a `ui5-page`\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents-fiori/dist/IllustratedMessage.js\";`\n---\n\n\n### **Slots:**\n - **default** - Defines the component actions.\n\n**Note:** Not displayed when the `design` property is set to `Base`.\n- **subtitle** - Defines the subtitle of the component.\n\n**Note:** Using this slot, the default subtitle text of illustration and the value of `subtitleText` property will be overwritten.\n- **title** - Defines the title of the component.\n\n**Note:** Using this slot, the default title text of illustration and the value of `title` property will be overwritten.\n\n### **CSS Parts:**\n - **subtitle** - Used to style the subtitle wrapper of the `ui5-illustrated-message`",
@@ -4376,6 +4459,26 @@
4376
4459
  "name": "part(footer)",
4377
4460
  "description": "Used to style the footer of the component"
4378
4461
  },
4462
+ {
4463
+ "name": "part(canvas)",
4464
+ "description": "Used to style the banner canvas container"
4465
+ },
4466
+ {
4467
+ "name": "part(content)",
4468
+ "description": "Used to style the content area of the banner"
4469
+ },
4470
+ {
4471
+ "name": "part(endContent)",
4472
+ "description": "Used to style the end content block"
4473
+ },
4474
+ {
4475
+ "name": "part(header)",
4476
+ "description": "Used to style the header area (salutation, date, header actions)"
4477
+ },
4478
+ {
4479
+ "name": "part(startContent)",
4480
+ "description": "Used to style the start (default) content block"
4481
+ },
4379
4482
  {
4380
4483
  "name": "part(subtitle)",
4381
4484
  "description": "Used to style the subtitle wrapper of the `ui5-illustrated-message`"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-fiori",
3
- "version": "2.23.0-rc.2",
3
+ "version": "2.23.0",
4
4
  "description": "UI5 Web Components: webcomponents.fiori",
5
5
  "ui5": {
6
6
  "webComponentsPackage": true
@@ -54,20 +54,20 @@
54
54
  "directory": "packages/fiori"
55
55
  },
56
56
  "dependencies": {
57
- "@ui5/webcomponents": "2.23.0-rc.2",
58
- "@ui5/webcomponents-base": "2.23.0-rc.2",
59
- "@ui5/webcomponents-icons": "2.23.0-rc.2",
60
- "@ui5/webcomponents-theming": "2.23.0-rc.2",
57
+ "@ui5/webcomponents": "2.23.0",
58
+ "@ui5/webcomponents-base": "2.23.0",
59
+ "@ui5/webcomponents-icons": "2.23.0",
60
+ "@ui5/webcomponents-theming": "2.23.0",
61
61
  "@zxing/library": "^0.21.3"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@custom-elements-manifest/analyzer": "^0.10.10",
65
65
  "@ui5/cypress-internal": "0.1.0",
66
- "@ui5/webcomponents-tools": "2.23.0-rc.2",
66
+ "@ui5/webcomponents-tools": "2.23.0",
67
67
  "cypress": "15.9.0",
68
68
  "lit": "^2.0.0",
69
69
  "vite": "5.4.21",
70
70
  "yarn": "^1.22.22"
71
71
  },
72
- "gitHead": "8e2484d13f3aeac61195cd83eff7bba26df1b1bc"
72
+ "gitHead": "2b920fe2cdaba740dda6caa7bd0bd32302264e35"
73
73
  }
@@ -0,0 +1,65 @@
1
+ import type HeroBanner from "./HeroBanner.js";
2
+
3
+ export default function HeroBannerTemplate(this: HeroBanner) {
4
+ const actionsBottomStart = this.actionsPlacement === "BottomStart";
5
+
6
+ return (
7
+ <div
8
+ class="ui5-banner-root"
9
+ role="banner"
10
+ part="canvas"
11
+ >
12
+ <div class={{
13
+ "ui5-banner-content": true,
14
+ "ui5-banner-columns-equal": this.columnsRatio === "Equal" && this._hasEndContent,
15
+ "ui5-banner-columns-first-wider": this.columnsRatio === "FirstWider" && this._hasEndContent,
16
+ }} part="content">
17
+ <div class="ui5-banner-header" part="header">
18
+ <div class="ui5-banner-header-text">
19
+ {this.overlineText &&
20
+ <div class="ui5-banner-overline">
21
+ {this.overlineText}
22
+ </div>
23
+ }
24
+
25
+ {this.headerText &&
26
+ <h2 class="ui5-banner-heading">
27
+ {this.headerText}
28
+ </h2>
29
+ }
30
+
31
+ {actionsBottomStart && this._hasActions &&
32
+ <div class="ui5-banner-actions ui5-banner-actions-bottom-start">
33
+ <slot name="actions"></slot>
34
+ </div>
35
+ }
36
+ </div>
37
+
38
+ {!actionsBottomStart && !this._actionsAsGridItem && this._hasActions &&
39
+ <div class="ui5-banner-actions">
40
+ <slot name="actions"></slot>
41
+ </div>
42
+ }
43
+ </div>
44
+
45
+ {this._hasStartContent &&
46
+ <div class="ui5-banner-block ui5-banner-block-start" part="startContent">
47
+ <slot></slot>
48
+ </div>
49
+ }
50
+
51
+ {this._hasEndContent &&
52
+ <div class="ui5-banner-block ui5-banner-block-end" part="endContent">
53
+ <slot name="endContent"></slot>
54
+ </div>
55
+ }
56
+
57
+ {this._actionsAsGridItem &&
58
+ <div class="ui5-banner-actions ui5-banner-actions-grid-item">
59
+ <slot name="actions"></slot>
60
+ </div>
61
+ }
62
+ </div>
63
+ </div>
64
+ );
65
+ }
@@ -153,7 +153,7 @@ export default function ShellBarTemplate(this: ShellBar) {
153
153
  )}
154
154
 
155
155
  {/* Custom Items */}
156
- {this.sortItems(this.items).map(item => (
156
+ {this.items.map(item => (
157
157
  <div
158
158
  key={item._id}
159
159
  class={{