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

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 +71 -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,359 @@
1
+ /* HeroBanner Component Styles */
2
+
3
+ :host(:not([hidden])) {
4
+ display: block;
5
+ width: 100%;
6
+ container-type: inline-size;
7
+ border-radius: var(--_ui5_banner_border_radius);
8
+ background-color: var(--_ui5_banner_background);
9
+ background-image: var(--_ui5_banner_background_image);
10
+ background-repeat: no-repeat;
11
+ background-position: top;
12
+ background-size: cover;
13
+ }
14
+
15
+ /* Banner Canvas */
16
+ .ui5-banner-root {
17
+ box-sizing: border-box;
18
+ min-height: 5.75rem;
19
+ max-height: 24rem;
20
+ border-radius: inherit;
21
+ background-color: inherit;
22
+ background-image: inherit;
23
+ background-size: inherit;
24
+ box-shadow: var(--_ui5_banner_box_shadow);
25
+ border: var(--_ui5_banner_border);
26
+ overflow: hidden;
27
+ position: relative;
28
+ }
29
+
30
+ /* Content area — flex column by default, header first */
31
+ .ui5-banner-content {
32
+ display: flex;
33
+ flex-direction: column;
34
+ gap: 1rem;
35
+ box-sizing: border-box;
36
+ padding: 1.5rem;
37
+ color: var(--_ui5_banner_text_color);
38
+ font-family: var(--sapFontFamily);
39
+ font-size: var(--sapFontSize);
40
+ }
41
+
42
+ /* Header row: overline + heading on the left, actions on the right */
43
+ .ui5-banner-header {
44
+ display: flex;
45
+ flex-direction: row;
46
+ flex-wrap: wrap;
47
+ align-items: center;
48
+ justify-content: space-between;
49
+ gap: 1rem;
50
+ }
51
+
52
+ .ui5-banner-header-text {
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: 0.5rem;
56
+ flex: 1 1 auto;
57
+ min-width: 0;
58
+ }
59
+
60
+ .ui5-banner-actions {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 0.5rem;
64
+ flex: 0 0 auto;
65
+ --sapButton_Lite_TextColor: var(--_ui5_banner_text_color);
66
+ --sapButton_Lite_Hover_TextColor: var(--_ui5_banner_text_color);
67
+ --sapButton_Lite_Active_TextColor: var(--_ui5_banner_text_color);
68
+ --sapButton_Lite_Hover_Background: color-mix(in srgb, var(--_ui5_banner_text_color) 15%, transparent);
69
+ --sapButton_Lite_Active_Background: color-mix(in srgb, var(--_ui5_banner_text_color) 25%, transparent);
70
+ --sapButton_IconColor: var(--_ui5_banner_text_color);
71
+ }
72
+
73
+ /* actionsPlacement="BottomStart": actions sit below header-text, left-aligned */
74
+ .ui5-banner-actions-bottom-start {
75
+ align-self: flex-start;
76
+ margin-top: 0.5rem;
77
+ }
78
+
79
+ .ui5-banner-heading {
80
+ font-family: var(--sapFontHeaderFamily);
81
+ font-size: var(--sapFontHeader3Size);
82
+ font-weight: normal;
83
+ text-align: start;
84
+ color: var(--_ui5_banner_text_color);
85
+ line-height: 1.4;
86
+ margin: 0;
87
+ padding: 0;
88
+ }
89
+
90
+ .ui5-banner-overline {
91
+ font-family: var(--sapFontFamily);
92
+ font-size: var(--sapFontSize);
93
+ text-align: start;
94
+ color: var(--_ui5_banner_text_color);
95
+ line-height: 1.4;
96
+ }
97
+
98
+ /* Free content blocks */
99
+ .ui5-banner-block {
100
+ box-sizing: border-box;
101
+ min-width: 0;
102
+ }
103
+
104
+ /* Only endContent present (no startContent) — expand to full width */
105
+ .ui5-banner-content:not(:has(.ui5-banner-block-start)) .ui5-banner-block-end {
106
+ display: flex;
107
+ flex-direction: column;
108
+ width: 100%;
109
+ }
110
+
111
+ /* ============================================================
112
+ columnsRatio="Equal" — 2-column grid, header spans full width
113
+ ============================================================ */
114
+ .ui5-banner-content.ui5-banner-columns-equal {
115
+ display: grid;
116
+ grid-template-columns: 1fr 1fr;
117
+ grid-template-rows: auto 1fr;
118
+ }
119
+
120
+ .ui5-banner-columns-equal .ui5-banner-header {
121
+ grid-column: 1 / -1;
122
+ grid-row: 1;
123
+ }
124
+
125
+ .ui5-banner-columns-equal .ui5-banner-block-start {
126
+ grid-column: 1;
127
+ grid-row: 2;
128
+ }
129
+
130
+ /* Without endContent, start content spans full width */
131
+ .ui5-banner-columns-equal:not(:has(.ui5-banner-block-end)) .ui5-banner-block-start {
132
+ grid-column: 1 / -1;
133
+ }
134
+
135
+ .ui5-banner-columns-equal .ui5-banner-block-end {
136
+ grid-column: 2;
137
+ grid-row: 2;
138
+ }
139
+
140
+ /* ============================================================
141
+ columnsRatio="FirstWider" — 2/3 + 1/3 grid
142
+ ============================================================ */
143
+ .ui5-banner-content.ui5-banner-columns-first-wider {
144
+ display: grid;
145
+ grid-template-columns: 2fr 1fr;
146
+ grid-template-rows: auto 1fr;
147
+ }
148
+
149
+ .ui5-banner-columns-first-wider .ui5-banner-header {
150
+ grid-column: 1 / -1;
151
+ grid-row: 1;
152
+ }
153
+
154
+ .ui5-banner-columns-first-wider .ui5-banner-block-start {
155
+ grid-column: 1;
156
+ grid-row: 2;
157
+ }
158
+
159
+ /* Without endContent, start content spans full width */
160
+ .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-end)) .ui5-banner-block-start {
161
+ grid-column: 1 / -1;
162
+ }
163
+
164
+ .ui5-banner-columns-first-wider .ui5-banner-block-end {
165
+ grid-column: 2;
166
+ grid-row: 2;
167
+ }
168
+
169
+ /* ============================================================
170
+ actionsPlacement="BottomStart" modifiers
171
+ (must come after base grid rules to override them)
172
+ ============================================================ */
173
+
174
+ /* BottomStart + only endContent: make root a flex column so content stretches to fill it */
175
+ :host([actions-placement="BottomStart"]) .ui5-banner-root:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)) {
176
+ display: flex;
177
+ flex-direction: column;
178
+ }
179
+
180
+ :host([actions-placement="BottomStart"]) .ui5-banner-root:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)) .ui5-banner-content {
181
+ flex: 1;
182
+ }
183
+
184
+ /* No columnsRatio + only endContent: switch to 2-col grid so endContent fills full height */
185
+ :host([actions-placement="BottomStart"]) .ui5-banner-content:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)):not(.ui5-banner-columns-equal):not(.ui5-banner-columns-first-wider) {
186
+ display: grid;
187
+ grid-template-columns: 1fr 1fr;
188
+ grid-template-rows: 1fr;
189
+ align-items: stretch;
190
+ }
191
+
192
+ :host([actions-placement="BottomStart"]) .ui5-banner-content:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)):not(.ui5-banner-columns-equal):not(.ui5-banner-columns-first-wider) .ui5-banner-header {
193
+ grid-column: 1;
194
+ grid-row: 1;
195
+ align-self: stretch;
196
+ display: flex;
197
+ flex-direction: column;
198
+ justify-content: flex-start;
199
+ align-items: flex-start;
200
+ }
201
+
202
+ :host([actions-placement="BottomStart"]) .ui5-banner-content:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)):not(.ui5-banner-columns-equal):not(.ui5-banner-columns-first-wider) .ui5-banner-block-end {
203
+ grid-column: 2;
204
+ grid-row: 1;
205
+ height: 100%;
206
+ display: flex;
207
+ flex-direction: column;
208
+ align-items: flex-end;
209
+ justify-content: center;
210
+ }
211
+
212
+ /* Split layouts + BottomStart + has startContent:
213
+ header becomes flex-column so actions flow below heading */
214
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-equal:has(.ui5-banner-block-start) .ui5-banner-header,
215
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-first-wider:has(.ui5-banner-block-start) .ui5-banner-header {
216
+ display: flex;
217
+ flex-direction: column;
218
+ align-items: flex-start;
219
+ justify-content: flex-start;
220
+ }
221
+
222
+ /* Split layouts + BottomStart + no startContent:
223
+ single-row grid, header col 1 full height, endContent col 2 full height */
224
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)),
225
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) {
226
+ grid-template-rows: 1fr;
227
+ align-items: stretch;
228
+ }
229
+
230
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)) .ui5-banner-header,
231
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) .ui5-banner-header {
232
+ grid-column: 1;
233
+ grid-row: 1;
234
+ align-self: stretch;
235
+ display: flex;
236
+ flex-direction: column;
237
+ justify-content: flex-start;
238
+ align-items: flex-start;
239
+ }
240
+
241
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)) .ui5-banner-block-end,
242
+ :host([actions-placement="BottomStart"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) .ui5-banner-block-end {
243
+ grid-column: 2;
244
+ grid-row: 1;
245
+ align-self: stretch;
246
+ height: 100%;
247
+ display: flex;
248
+ flex-direction: column;
249
+ justify-content: center;
250
+ }
251
+
252
+ /* ============================================================
253
+ headerBlockPlacement="Bottom" modifiers
254
+ Only active when columnsRatio is set and only endContent is present.
255
+ (must come after BottomStart rules to override them when both are set)
256
+ ============================================================ */
257
+
258
+ /* Flex layout (no columnsRatio): push header to bottom with margin-top auto */
259
+ :host([header-block-placement="Bottom"]) .ui5-banner-content:not(.ui5-banner-columns-equal):not(.ui5-banner-columns-first-wider) .ui5-banner-header {
260
+ margin-top: auto;
261
+ }
262
+
263
+ /* Split grid layouts + only endContent:
264
+ single-row grid, header at bottom of col 1, endContent fills col 2 */
265
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)),
266
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) {
267
+ grid-template-rows: 1fr;
268
+ align-items: stretch;
269
+ min-height: 12rem;
270
+ }
271
+
272
+ /* When TopEnd actions are present: 2-row grid so actions sit above endContent in col 2 */
273
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)):has(.ui5-banner-actions-grid-item),
274
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)):has(.ui5-banner-actions-grid-item) {
275
+ grid-template-rows: auto 1fr;
276
+ }
277
+
278
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)) .ui5-banner-header,
279
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) .ui5-banner-header {
280
+ grid-column: 1;
281
+ grid-row: 1;
282
+ align-self: end;
283
+ }
284
+
285
+ /* With actions: header still fills col 1, aligned to bottom */
286
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)):has(.ui5-banner-actions-grid-item) .ui5-banner-header,
287
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)):has(.ui5-banner-actions-grid-item) .ui5-banner-header {
288
+ grid-row: 1 / 3;
289
+ align-self: end;
290
+ }
291
+
292
+ /* TopEnd actions in col 2 row 1 — above endContent */
293
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)) .ui5-banner-actions-grid-item,
294
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) .ui5-banner-actions-grid-item {
295
+ grid-column: 2;
296
+ grid-row: 1;
297
+ align-self: start;
298
+ justify-self: end;
299
+ min-width: 0;
300
+ }
301
+
302
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)) .ui5-banner-block-end,
303
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)) .ui5-banner-block-end {
304
+ grid-column: 2;
305
+ grid-row: 1;
306
+ align-self: stretch;
307
+ height: 100%;
308
+ }
309
+
310
+ /* With actions: endContent moves to row 2 so actions occupy row 1 */
311
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-equal:not(:has(.ui5-banner-block-start)):has(.ui5-banner-actions-grid-item) .ui5-banner-block-end,
312
+ :host([header-block-placement="Bottom"]) .ui5-banner-columns-first-wider:not(:has(.ui5-banner-block-start)):has(.ui5-banner-actions-grid-item) .ui5-banner-block-end {
313
+ grid-row: 2;
314
+ }
315
+
316
+ /* L → XS (≤1024px): Heading max 3 lines */
317
+ @container (max-width: 1024px) {
318
+ .ui5-banner-heading {
319
+ display: -webkit-box;
320
+ -webkit-line-clamp: 3;
321
+ line-clamp: 3;
322
+ -webkit-box-orient: vertical;
323
+ overflow: hidden;
324
+ text-overflow: ellipsis;
325
+ }
326
+ }
327
+
328
+ /* XS (≤599px): collapse split layouts to stacked column */
329
+ @container (max-width: 599px) {
330
+ .ui5-banner-content.ui5-banner-columns-equal,
331
+ .ui5-banner-content.ui5-banner-columns-first-wider {
332
+ display: flex;
333
+ flex-direction: column;
334
+ }
335
+
336
+ .ui5-banner-block-start {
337
+ order: 1;
338
+ }
339
+
340
+ .ui5-banner-block-end {
341
+ order: 2;
342
+ }
343
+
344
+ /* BottomStart no-columnsRatio grid collapses to column */
345
+ :host([actions-placement="BottomStart"]) .ui5-banner-content:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)):not(.ui5-banner-columns-equal):not(.ui5-banner-columns-first-wider) {
346
+ display: flex;
347
+ flex-direction: column;
348
+ }
349
+
350
+ :host([actions-placement="BottomStart"]) .ui5-banner-content:has(.ui5-banner-block-end):not(:has(.ui5-banner-block-start)):not(.ui5-banner-columns-equal):not(.ui5-banner-columns-first-wider) .ui5-banner-block-end {
351
+ justify-content: center;
352
+ }
353
+
354
+ /* Only endContent present: expand to full width and center children */
355
+ .ui5-banner-content:not(:has(.ui5-banner-block-start)) .ui5-banner-block-end {
356
+ justify-content: center;
357
+ width: 100%;
358
+ }
359
+ }
@@ -0,0 +1,8 @@
1
+ :host {
2
+ --_ui5_banner_background: var(--sapShell_HeroBanner_Background);
3
+ --_ui5_banner_text_color: var(--sapShell_HeroBanner_TextColor);
4
+ --_ui5_banner_border_radius: var(--sapTile_BorderCornerRadius);
5
+ --_ui5_banner_border: 0.0625rem solid var(--sapTile_BorderColor);
6
+ --_ui5_banner_box_shadow: var(--sapContent_Shadow0);
7
+ --_ui5_banner_background_image: var(--sapShell_HeroBanner_BackgroundImage);
8
+ }
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "../base/FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "../base/MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "../base/FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "../base/MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "./FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "./MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "./FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "./MediaGallery-parameters.css";
@@ -0,0 +1,4 @@
1
+ :host {
2
+ --_ui5_banner_background: var(--sapShell_Banner_Background, var(--sapHighlightColor));
3
+ --_ui5_banner_text_color: var(--sapShell_Banner_TextColor, var(--sapContent_ContrastTextColor));
4
+ }
@@ -1,3 +1,5 @@
1
+ @import "../base/HeroBanner-parameters.css";
2
+ @import "./HeroBanner-parameters.css";
1
3
  @import "../base/rtl-parameters.css";
2
4
  @import "../base/FlexibleColumnLayout-parameters.css";
3
5
  @import "../base/IllustratedMessage-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "../base/FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "../base/MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "../base/FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "../base/MediaGallery-parameters.css";
@@ -1,3 +1,5 @@
1
+ @import "../base/HeroBanner-parameters.css";
2
+ @import "../sap_horizon/HeroBanner-parameters.css";
1
3
  @import "../base/FlexibleColumnLayout-parameters.css";
2
4
  @import "../base/IllustratedMessage-parameters.css";
3
5
  @import "../base/MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "./FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "./MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "./FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "./MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "./FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "./MediaGallery-parameters.css";
@@ -1,3 +1,4 @@
1
+ @import "../base/HeroBanner-parameters.css";
1
2
  @import "./FlexibleColumnLayout-parameters.css";
2
3
  @import "../base/IllustratedMessage-parameters.css";
3
4
  @import "./MediaGallery-parameters.css";