@sapudex/web-components 2.52.0 → 2.54.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 (276) hide show
  1. package/cypress/specs/Avatar.cy.tsx +103 -0
  2. package/cypress/specs/FilterMenu.cy.tsx +34 -0
  3. package/cypress/specs/SelectBox.cy.tsx +55 -0
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Accordion.js.map +1 -1
  6. package/dist/AccordionItem.js +1 -1
  7. package/dist/AccordionItem.js.map +1 -1
  8. package/dist/Avatar.d.ts +12 -3
  9. package/dist/Avatar.js +44 -4
  10. package/dist/Avatar.js.map +1 -1
  11. package/dist/AvatarTemplate.js +1 -1
  12. package/dist/AvatarTemplate.js.map +1 -1
  13. package/dist/Badge.js +1 -1
  14. package/dist/Badge.js.map +1 -1
  15. package/dist/Breadcrumbs.js +1 -1
  16. package/dist/Breadcrumbs.js.map +1 -1
  17. package/dist/Carousel.js +1 -1
  18. package/dist/Carousel.js.map +1 -1
  19. package/dist/Contact.js +1 -1
  20. package/dist/Contact.js.map +1 -1
  21. package/dist/ContactItem.js +1 -1
  22. package/dist/ContactItem.js.map +1 -1
  23. package/dist/Feed.d.ts +2 -1
  24. package/dist/Feed.js +1 -1
  25. package/dist/Feed.js.map +1 -1
  26. package/dist/FeedItem.d.ts +2 -1
  27. package/dist/FeedItem.js +1 -1
  28. package/dist/FeedItem.js.map +1 -1
  29. package/dist/FilterMenuGroupHeader.js +1 -1
  30. package/dist/FilterMenuGroupHeader.js.map +1 -1
  31. package/dist/Footer.d.ts +2 -1
  32. package/dist/Footer.js +1 -1
  33. package/dist/Footer.js.map +1 -1
  34. package/dist/ImageGridCloud.js +1 -1
  35. package/dist/ImageGridCloud.js.map +1 -1
  36. package/dist/ImageGridTable.js +1 -1
  37. package/dist/ImageGridTable.js.map +1 -1
  38. package/dist/ImageGridTableItem.js +1 -1
  39. package/dist/ImageGridTableItem.js.map +1 -1
  40. package/dist/ImageGridTicker.js +1 -1
  41. package/dist/ImageGridTicker.js.map +1 -1
  42. package/dist/InputGroup.js +1 -1
  43. package/dist/InputGroup.js.map +1 -1
  44. package/dist/LinkList.js +1 -1
  45. package/dist/LinkList.js.map +1 -1
  46. package/dist/List.js +1 -1
  47. package/dist/List.js.map +1 -1
  48. package/dist/ListGroupHeaderBase.js +1 -1
  49. package/dist/ListGroupHeaderBase.js.map +1 -1
  50. package/dist/ListItem.d.ts +3 -3
  51. package/dist/ListItem.js +1 -1
  52. package/dist/ListItem.js.map +1 -1
  53. package/dist/MastheadItem.d.ts +3 -3
  54. package/dist/MastheadItem.js +1 -1
  55. package/dist/MastheadItem.js.map +1 -1
  56. package/dist/MastheadMobileMenu.d.ts +3 -3
  57. package/dist/MastheadMobileMenu.js +1 -1
  58. package/dist/MastheadMobileMenu.js.map +1 -1
  59. package/dist/MastheadProfileMenu.d.ts +3 -2
  60. package/dist/MastheadProfileMenu.js +1 -1
  61. package/dist/MastheadProfileMenu.js.map +1 -1
  62. package/dist/MastheadShell.d.ts +9 -9
  63. package/dist/MastheadShell.js +1 -1
  64. package/dist/MastheadShell.js.map +1 -1
  65. package/dist/MediaPlayer.d.ts +1 -1
  66. package/dist/MediaPlayer.js +13 -3
  67. package/dist/MediaPlayer.js.map +1 -1
  68. package/dist/MediaPlayerVimeo.d.ts +6 -0
  69. package/dist/MediaPlayerVimeo.js +27 -6
  70. package/dist/MediaPlayerVimeo.js.map +1 -1
  71. package/dist/MediaPlayerYoutube.d.ts +3 -0
  72. package/dist/MediaPlayerYoutube.js +24 -5
  73. package/dist/MediaPlayerYoutube.js.map +1 -1
  74. package/dist/MessageStrip.d.ts +2 -1
  75. package/dist/MessageStrip.js +1 -1
  76. package/dist/MessageStrip.js.map +1 -1
  77. package/dist/Modal.d.ts +2 -0
  78. package/dist/Modal.js +10 -3
  79. package/dist/Modal.js.map +1 -1
  80. package/dist/PromoTile.d.ts +2 -2
  81. package/dist/PromoTile.js +1 -1
  82. package/dist/PromoTile.js.map +1 -1
  83. package/dist/Quote.d.ts +4 -4
  84. package/dist/Quote.js +1 -1
  85. package/dist/Quote.js.map +1 -1
  86. package/dist/Review.d.ts +3 -3
  87. package/dist/Review.js +1 -1
  88. package/dist/Review.js.map +1 -1
  89. package/dist/ReviewItem.d.ts +4 -3
  90. package/dist/ReviewItem.js +1 -1
  91. package/dist/ReviewItem.js.map +1 -1
  92. package/dist/Search.js +1 -1
  93. package/dist/Search.js.map +1 -1
  94. package/dist/SearchableListBase.js +5 -1
  95. package/dist/SearchableListBase.js.map +1 -1
  96. package/dist/SecondaryNavigation.d.ts +3 -3
  97. package/dist/SecondaryNavigation.js +1 -1
  98. package/dist/SecondaryNavigation.js.map +1 -1
  99. package/dist/SecondaryNavigationItem.d.ts +2 -1
  100. package/dist/SecondaryNavigationItem.js +1 -1
  101. package/dist/SecondaryNavigationItem.js.map +1 -1
  102. package/dist/SelectBase.js +1 -1
  103. package/dist/SelectBase.js.map +1 -1
  104. package/dist/SelectBox.d.ts +5 -0
  105. package/dist/SelectBox.js +9 -0
  106. package/dist/SelectBox.js.map +1 -1
  107. package/dist/SelectBoxGroupHeader.js +1 -1
  108. package/dist/SelectBoxGroupHeader.js.map +1 -1
  109. package/dist/SelectBoxItem.d.ts +3 -3
  110. package/dist/SelectBoxItem.js +1 -1
  111. package/dist/SelectBoxItem.js.map +1 -1
  112. package/dist/SideNavigationMobile.d.ts +2 -2
  113. package/dist/SideNavigationMobile.js +1 -1
  114. package/dist/SideNavigationMobile.js.map +1 -1
  115. package/dist/SocialMediaButton.js +1 -1
  116. package/dist/SocialMediaButton.js.map +1 -1
  117. package/dist/Tab.d.ts +2 -2
  118. package/dist/Tab.js +1 -1
  119. package/dist/Tab.js.map +1 -1
  120. package/dist/TabNavigation.d.ts +2 -2
  121. package/dist/TabNavigation.js +1 -1
  122. package/dist/TabNavigation.js.map +1 -1
  123. package/dist/Table.d.ts +5 -5
  124. package/dist/Table.js +1 -1
  125. package/dist/Table.js.map +1 -1
  126. package/dist/TableCellBase.js +1 -1
  127. package/dist/TableCellBase.js.map +1 -1
  128. package/dist/TableGroupRow.js +1 -1
  129. package/dist/TableGroupRow.js.map +1 -1
  130. package/dist/TableRowBase.js +1 -1
  131. package/dist/TableRowBase.js.map +1 -1
  132. package/dist/TagGroup.js +1 -1
  133. package/dist/TagGroup.js.map +1 -1
  134. package/dist/Tile.d.ts +2 -1
  135. package/dist/Tile.js +1 -1
  136. package/dist/Tile.js.map +1 -1
  137. package/dist/Tooltip.d.ts +2 -1
  138. package/dist/Tooltip.js +1 -1
  139. package/dist/Tooltip.js.map +1 -1
  140. package/dist/Wizard.js +1 -1
  141. package/dist/Wizard.js.map +1 -1
  142. package/dist/assets/{InputSuggestions-0wafO-g3.js → InputSuggestions-CqOrRXxa.js} +1 -1
  143. package/dist/assets/{ListItemStandardExpandableTextTemplate-DoOYtqI8.js → ListItemStandardExpandableTextTemplate-DKUm4L2B.js} +1 -1
  144. package/dist/assets/{bundle-CkxyEA8c.css → bundle-C7Yft7IG.css} +1 -1
  145. package/dist/assets/{bundle.esm-DwHZ3nCW.js → bundle.esm-CI60uvdr.js} +227 -227
  146. package/dist/assets/messagebundle_lv-D06tlATH.js +1 -0
  147. package/dist/css/themes/AccordionItem.css +1 -1
  148. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  149. package/dist/css/themes/Contact.css +1 -1
  150. package/dist/css/themes/FilterMenu.css +1 -1
  151. package/dist/css/themes/Footer.css +1 -1
  152. package/dist/css/themes/MessageStrip.css +1 -1
  153. package/dist/css/themes/Search.css +1 -1
  154. package/dist/css/themes/Slider.css +1 -1
  155. package/dist/css/themes/Tile.css +1 -1
  156. package/dist/css/themes/Toast.css +1 -1
  157. package/dist/css/themes/Tooltip.css +1 -1
  158. package/dist/custom-elements-internal.json +44 -11
  159. package/dist/custom-elements.json +27 -2
  160. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  161. package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
  162. package/dist/generated/themes/AccordionItem.css.js +1 -1
  163. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  164. package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
  165. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  166. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  167. package/dist/generated/themes/Contact.css.d.ts +1 -1
  168. package/dist/generated/themes/Contact.css.js +1 -1
  169. package/dist/generated/themes/Contact.css.js.map +1 -1
  170. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  171. package/dist/generated/themes/FilterMenu.css.js +1 -1
  172. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  173. package/dist/generated/themes/Footer.css.d.ts +1 -1
  174. package/dist/generated/themes/Footer.css.js +1 -1
  175. package/dist/generated/themes/Footer.css.js.map +1 -1
  176. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  177. package/dist/generated/themes/MessageStrip.css.js +1 -1
  178. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  179. package/dist/generated/themes/Search.css.d.ts +1 -1
  180. package/dist/generated/themes/Search.css.js +1 -1
  181. package/dist/generated/themes/Search.css.js.map +1 -1
  182. package/dist/generated/themes/Slider.css.d.ts +1 -1
  183. package/dist/generated/themes/Slider.css.js +1 -1
  184. package/dist/generated/themes/Slider.css.js.map +1 -1
  185. package/dist/generated/themes/Tile.css.d.ts +1 -1
  186. package/dist/generated/themes/Tile.css.js +1 -1
  187. package/dist/generated/themes/Tile.css.js.map +1 -1
  188. package/dist/generated/themes/Toast.css.d.ts +1 -1
  189. package/dist/generated/themes/Toast.css.js +1 -1
  190. package/dist/generated/themes/Toast.css.js.map +1 -1
  191. package/dist/generated/themes/Tooltip.css.d.ts +1 -1
  192. package/dist/generated/themes/Tooltip.css.js +1 -1
  193. package/dist/generated/themes/Tooltip.css.js.map +1 -1
  194. package/dist/messagebundle_lv.properties +126 -0
  195. package/dist/vscode.html-custom-data.json +3 -3
  196. package/dist/web-types.json +25 -9
  197. package/package.json +1 -1
  198. package/src/Accordion.ts +1 -1
  199. package/src/AccordionItem.ts +1 -1
  200. package/src/Avatar.ts +55 -6
  201. package/src/AvatarTemplate.tsx +2 -2
  202. package/src/Badge.ts +1 -1
  203. package/src/Breadcrumbs.ts +1 -1
  204. package/src/Carousel.ts +1 -1
  205. package/src/Contact.ts +1 -1
  206. package/src/ContactItem.ts +1 -1
  207. package/src/Feed.ts +3 -2
  208. package/src/FeedItem.ts +3 -2
  209. package/src/FilterMenuGroupHeader.ts +1 -1
  210. package/src/Footer.ts +3 -2
  211. package/src/ImageGridCloud.ts +1 -1
  212. package/src/ImageGridTable.ts +1 -1
  213. package/src/ImageGridTableItem.ts +1 -1
  214. package/src/ImageGridTicker.ts +1 -1
  215. package/src/InputGroup.ts +1 -1
  216. package/src/LinkList.ts +1 -1
  217. package/src/List.ts +1 -1
  218. package/src/ListGroupHeaderBase.ts +1 -1
  219. package/src/ListItem.ts +4 -4
  220. package/src/MastheadItem.ts +4 -4
  221. package/src/MastheadMobileMenu.ts +4 -4
  222. package/src/MastheadProfileMenu.ts +4 -3
  223. package/src/MastheadShell.ts +10 -10
  224. package/src/MediaPlayer.ts +13 -4
  225. package/src/MediaPlayerVimeo.ts +31 -6
  226. package/src/MediaPlayerYoutube.ts +24 -5
  227. package/src/MessageStrip.ts +3 -2
  228. package/src/Modal.ts +18 -3
  229. package/src/PromoTile.ts +3 -3
  230. package/src/Quote.ts +5 -5
  231. package/src/Review.ts +4 -4
  232. package/src/ReviewItem.ts +5 -4
  233. package/src/Search.ts +1 -1
  234. package/src/SearchableListBase.ts +6 -1
  235. package/src/SecondaryNavigation.ts +4 -4
  236. package/src/SecondaryNavigationItem.ts +3 -2
  237. package/src/SelectBase.ts +1 -1
  238. package/src/SelectBox.ts +10 -0
  239. package/src/SelectBoxGroupHeader.ts +1 -1
  240. package/src/SelectBoxItem.ts +4 -4
  241. package/src/SideNavigationMobile.ts +3 -3
  242. package/src/SocialMediaButton.ts +1 -1
  243. package/src/Tab.ts +3 -3
  244. package/src/TabNavigation.ts +3 -3
  245. package/src/Table.ts +6 -6
  246. package/src/TableCellBase.ts +1 -1
  247. package/src/TableGroupRow.ts +1 -1
  248. package/src/TableRowBase.ts +1 -1
  249. package/src/TagGroup.ts +1 -1
  250. package/src/Tile.ts +3 -2
  251. package/src/Tooltip.ts +3 -2
  252. package/src/Wizard.ts +1 -1
  253. package/src/generated/themes/AccordionItem.css.ts +1 -1
  254. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  255. package/src/generated/themes/Contact.css.ts +1 -1
  256. package/src/generated/themes/FilterMenu.css.ts +1 -1
  257. package/src/generated/themes/Footer.css.ts +1 -1
  258. package/src/generated/themes/MessageStrip.css.ts +1 -1
  259. package/src/generated/themes/Search.css.ts +1 -1
  260. package/src/generated/themes/Slider.css.ts +1 -1
  261. package/src/generated/themes/Tile.css.ts +1 -1
  262. package/src/generated/themes/Toast.css.ts +1 -1
  263. package/src/generated/themes/Tooltip.css.ts +1 -1
  264. package/src/i18n/messagebundle_lv.properties +126 -0
  265. package/src/themes/AccordionItem.css +2 -2
  266. package/src/themes/BreadcrumbsPopover.css +1 -1
  267. package/src/themes/Contact.css +3 -3
  268. package/src/themes/FilterMenu.css +1 -1
  269. package/src/themes/Footer.css +1 -1
  270. package/src/themes/MessageStrip.css +8 -5
  271. package/src/themes/Search.css +3 -3
  272. package/src/themes/Slider.css +1 -1
  273. package/src/themes/Tile.css +2 -2
  274. package/src/themes/Toast.css +1 -1
  275. package/src/themes/Tooltip.css +1 -1
  276. package/dist/assets/messagebundle_lv-BHId5zho.js +0 -1
@@ -1,9 +1,9 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
3
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
4
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
- import type { DefaultSlot, ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
6
+ import type { DefaultSlot, Slot, ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
7
7
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
8
8
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
9
9
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
@@ -259,7 +259,7 @@ class UDExMastheadShell extends UI5Element {
259
259
  * @public
260
260
  */
261
261
  @slot({ type: Node })
262
- countrySelector!: Array<UDExMastheadItem>;
262
+ countrySelector!: Slot<UDExMastheadItem>;
263
263
 
264
264
  /**
265
265
  * Slot for mobile menu
@@ -267,7 +267,7 @@ class UDExMastheadShell extends UI5Element {
267
267
  * @public
268
268
  */
269
269
  @slot({ type: HTMLElement })
270
- mobileMenu!: Array<Node>;
270
+ mobileMenu!: Slot<Node>;
271
271
 
272
272
  /**
273
273
  * Slot for main menu items.
@@ -285,7 +285,7 @@ class UDExMastheadShell extends UI5Element {
285
285
  * @public
286
286
  */
287
287
  @slot({ type: Node })
288
- search!: Array<Node>;
288
+ search!: Slot<Node>;
289
289
 
290
290
  /**
291
291
  * Slot for 'Explore SAP' menu
@@ -293,7 +293,7 @@ class UDExMastheadShell extends UI5Element {
293
293
  * @public
294
294
  */
295
295
  @slot({ type: HTMLElement })
296
- exploreSAP!: Array<UDExMastheadItem>;
296
+ exploreSAP!: Slot<UDExMastheadItem>;
297
297
 
298
298
  /**
299
299
  * Slot for cart menu
@@ -301,7 +301,7 @@ class UDExMastheadShell extends UI5Element {
301
301
  * @public
302
302
  */
303
303
  @slot({ type: HTMLElement })
304
- cart!: Array<UDExMastheadItem>;
304
+ cart!: Slot<UDExMastheadItem>;
305
305
 
306
306
  /**
307
307
  * Slot for joule menu
@@ -309,7 +309,7 @@ class UDExMastheadShell extends UI5Element {
309
309
  * @public
310
310
  */
311
311
  @slot({ type: HTMLElement })
312
- joule!: Array<UDExMastheadItem>;
312
+ joule!: Slot<UDExMastheadItem>;
313
313
 
314
314
  /**
315
315
  * Slot for avatar
@@ -317,7 +317,7 @@ class UDExMastheadShell extends UI5Element {
317
317
  * @public
318
318
  */
319
319
  @slot({ type: HTMLElement })
320
- profile!: Array<UDExMastheadItem>;
320
+ profile!: Slot<UDExMastheadItem>;
321
321
 
322
322
  /**
323
323
  * Slot for support
@@ -325,7 +325,7 @@ class UDExMastheadShell extends UI5Element {
325
325
  * @public
326
326
  */
327
327
  @slot({ type: HTMLElement })
328
- support!: Array<UDExMastheadItem>;
328
+ support!: Slot<UDExMastheadItem>;
329
329
 
330
330
  /**
331
331
  * Defines URL to homepage. It will be used as a link on a logo and a site label
@@ -5,7 +5,7 @@ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
5
5
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
6
6
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
7
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
8
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
8
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
9
9
  import type { VimeoPlayer } from "./MediaPlayerVimeo.js";
10
10
  import mapLangFile from "./mediaPlayerLanguageMapping.js";
11
11
  import type UDExMediaPlayerYoutube from "./MediaPlayerYoutube.js";
@@ -264,7 +264,7 @@ class UDExMediaPlayer extends UI5Element {
264
264
  video50!: boolean;
265
265
  video75!: boolean;
266
266
  videoCompleted!: boolean;
267
- videoStart!: boolean;
267
+ _embedVideoStartFired = false;
268
268
  videoReady!: boolean;
269
269
  videoProgress!: number;
270
270
  private _pendingPlugins: Array<{ name: string; plugin: (...args: any[]) => any }> = [];
@@ -338,7 +338,15 @@ class UDExMediaPlayer extends UI5Element {
338
338
 
339
339
  applyScrollIntoTheView() {
340
340
  const bigPlayButton = this.player.bigPlayButton?.el();
341
+ let mouseActivated = false;
342
+ bigPlayButton.addEventListener("mousedown", () => {
343
+ mouseActivated = true;
344
+ });
341
345
  bigPlayButton.addEventListener("focus", () => {
346
+ if (mouseActivated) {
347
+ mouseActivated = false;
348
+ return;
349
+ }
342
350
  this.player.el().scrollIntoView({
343
351
  behavior: "smooth",
344
352
  block: "center",
@@ -603,15 +611,16 @@ class UDExMediaPlayer extends UI5Element {
603
611
  }
604
612
 
605
613
  handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {
606
- if (!this.videoStart) {
614
+ if (!this._embedVideoStartFired) {
607
615
  this.fireDecoratorEvent("videoStart");
608
- this.videoStart = true;
616
+ this._embedVideoStartFired = true;
609
617
  }
610
618
  const playedTime = Math.round(embedEvent.detail.percentPlayed as number);
611
619
  this.calculateVideoProgress(playedTime);
612
620
  };
613
621
 
614
622
  handleEmbedVideoEnded() {
623
+ this._embedVideoStartFired = false;
615
624
  this.fireDecoratorEvent("videoComplete");
616
625
  }
617
626
 
@@ -39,6 +39,13 @@ type UDExMediaPlayerVimeoPlayingEventDetail = {
39
39
  styles: [MediaPlayerCss],
40
40
  template: MediaPlayerVimeoTemplate,
41
41
  })
42
+ /**
43
+ * Fires when video starts playing for the first time or is replayed after ending
44
+ *
45
+ * @allowPreventDefault
46
+ * @public
47
+ */
48
+ @event("videoStart", { bubbles: true })
42
49
  /**
43
50
  * Fires when video is ready
44
51
  *
@@ -70,6 +77,7 @@ type UDExMediaPlayerVimeoPlayingEventDetail = {
70
77
  @event("playing", { bubbles: true })
71
78
  class UDExMediaPlayerVimeo extends UI5Element {
72
79
  eventDetails!: {
80
+ "videoStart": void,
73
81
  "ready": void,
74
82
  "ended": void,
75
83
  "pause": void,
@@ -128,6 +136,25 @@ class UDExMediaPlayerVimeo extends UI5Element {
128
136
  fluidMode!: boolean;
129
137
 
130
138
  player!: Player;
139
+ private _hasStarted = false;
140
+ private _replayPending = false;
141
+
142
+ _onVimeoPlay = () => {
143
+ if (!this._hasStarted || this._replayPending) {
144
+ this.fireDecoratorEvent("videoStart");
145
+ this._hasStarted = true;
146
+ this._replayPending = false;
147
+ }
148
+ };
149
+
150
+ _onVimeoPause = () => {
151
+ this.fireDecoratorEvent("pause");
152
+ };
153
+
154
+ _onVimeoEnded = () => {
155
+ this._replayPending = true;
156
+ this.fireDecoratorEvent("ended");
157
+ };
131
158
 
132
159
  setupPlayer = () => {
133
160
  const iframe = this.shadowRoot?.querySelector("iframe");
@@ -136,17 +163,15 @@ class UDExMediaPlayerVimeo extends UI5Element {
136
163
  }
137
164
  this.player = new Player(iframe);
138
165
 
166
+ this.player.on("play", this._onVimeoPlay);
167
+
139
168
  this.player.on("timeupdate", e => {
140
169
  this.fireDecoratorEvent("playing", { percentPlayed: e.percent * 100 });
141
170
  });
142
171
 
143
- this.player.on("pause", () => {
144
- this.fireDecoratorEvent("pause");
145
- });
172
+ this.player.on("pause", this._onVimeoPause);
146
173
 
147
- this.player.on("ended", () => {
148
- this.fireDecoratorEvent("ended");
149
- });
174
+ this.player.on("ended", this._onVimeoEnded);
150
175
 
151
176
  this.player.on("loaded", () => {
152
177
  this.fireDecoratorEvent("ready");
@@ -1,3 +1,4 @@
1
+ /// <reference types="youtube" />
1
2
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
@@ -61,6 +62,13 @@ type UDExMediaPlayerYoutubeBaseEventDetails = {
61
62
  styles: [MediaPlayerCss, MediaPlayerYoutubeCss],
62
63
  template: MediaPlayerYoutubeTemplate,
63
64
  })
65
+ /**
66
+ * Fires when video starts playing for the first time or is replayed after ending
67
+ *
68
+ * @allowPreventDefault
69
+ * @public
70
+ */
71
+ @event("videoStart", { bubbles: true })
64
72
  /**
65
73
  * Fires when video is ready
66
74
  *
@@ -94,6 +102,7 @@ type UDExMediaPlayerYoutubeBaseEventDetails = {
94
102
  @event("playing", { bubbles: true })
95
103
  class UDExMediaPlayerYoutube extends UI5Element {
96
104
  eventDetails!: {
105
+ "videoStart": void,
97
106
  "ready": void,
98
107
  "ended": UDExMediaPlayerYoutubeBaseEventDetails,
99
108
  "pause": UDExMediaPlayerYoutubeBaseEventDetails,
@@ -147,6 +156,8 @@ class UDExMediaPlayerYoutube extends UI5Element {
147
156
  private youtubePlayer!: YT.Player;
148
157
  private checkInterval?: number;
149
158
  private videoDuration: number = 0;
159
+ private _hasStarted = false;
160
+ private _replayPending = false;
150
161
 
151
162
  get videoId(): string {
152
163
  if (!this.source) {
@@ -221,16 +232,24 @@ class UDExMediaPlayerYoutube extends UI5Element {
221
232
  const { data } = ytevent;
222
233
  const { PLAYING, PAUSED, ENDED } = window.YT.PlayerState;
223
234
 
224
- if (data === PLAYING && !this.checkInterval) {
225
- this.checkInterval = window.setInterval(() => {
226
- this.checkVideoProgress();
227
- }, CHECK_INTERVAL_TIME);
228
- } else if (data !== PLAYING && this.checkInterval) {
235
+ if (data === PLAYING) {
236
+ if (!this._hasStarted || this._replayPending) {
237
+ this.fireDecoratorEvent("videoStart");
238
+ this._hasStarted = true;
239
+ this._replayPending = false;
240
+ }
241
+ if (!this.checkInterval) {
242
+ this.checkInterval = window.setInterval(() => {
243
+ this.checkVideoProgress();
244
+ }, CHECK_INTERVAL_TIME);
245
+ }
246
+ } else if (this.checkInterval) {
229
247
  clearInterval(this.checkInterval);
230
248
  this.checkInterval = undefined;
231
249
  }
232
250
 
233
251
  if (data === ENDED) {
252
+ this._replayPending = true;
234
253
  this.fireDecoratorEvent("ended", { ytevent });
235
254
  }
236
255
 
@@ -1,6 +1,7 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
3
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
4
+ import type { Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
4
5
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
5
6
  import MessageStrip from "@ui5/webcomponents/dist/MessageStrip.js";
6
7
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
@@ -123,7 +124,7 @@ class UDExMessageStrip extends MessageStrip {
123
124
  * @slot
124
125
  * @public
125
126
  */
126
- @slot({ type: Node }) default!: Node;
127
+ @slot({ type: Node }) default!: Slot<Node>;
127
128
 
128
129
  @i18n("@sapudex/web-components")
129
130
  static i18nBundle: I18nBundle;
package/src/Modal.ts CHANGED
@@ -38,6 +38,7 @@ export enum UDExModalType {
38
38
  getEffectiveScrollbarStyle(),
39
39
  ],
40
40
  })
41
+
41
42
  class UDExModal extends Dialog {
42
43
  /**
43
44
  * Defines modal display type
@@ -51,12 +52,26 @@ class UDExModal extends Dialog {
51
52
  type: `${UDExModalType}` = UDExModalType.default;
52
53
 
53
54
  onAfterRendering() {
54
- const content = this.shadowRoot?.querySelector<HTMLElement>(".ui5-popup-content");
55
+ super.onAfterRendering();
56
+ const content = this._getPopupContent();
57
+
55
58
  if (content) {
56
- const gutterWidth = content.offsetWidth - content.clientWidth;
57
- this.style.setProperty("--udex-modal-scrollbar-width", `${gutterWidth}px`);
59
+ this._setScrollbarWidth(content);
58
60
  }
59
61
  }
62
+
63
+ _setScrollbarWidth(content: HTMLElement) {
64
+ const scrollbarWidth = content.offsetWidth - content.clientWidth;
65
+
66
+ this.style.setProperty(
67
+ "--udex-modal-scrollbar-width",
68
+ `${scrollbarWidth}px`,
69
+ );
70
+ }
71
+
72
+ _getPopupContent(): HTMLElement | null {
73
+ return this.shadowRoot?.querySelector<HTMLElement>(".ui5-popup-content") ?? null;
74
+ }
60
75
  }
61
76
 
62
77
  UDExModal.define();
package/src/PromoTile.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
6
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
7
7
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
8
8
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
@@ -80,7 +80,7 @@ class UDExPromoTile extends UI5Element {
80
80
  * @public
81
81
  */
82
82
  @slot({ type: HTMLElement })
83
- pictogram?: Array<HTMLElement>;
83
+ pictogram!: Slot<HTMLElement>;
84
84
 
85
85
  /**
86
86
  * Allows control over setting the CSS gradient.
package/src/Quote.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
6
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
7
7
  import QuoteTemplate from "./QuoteTemplate.js";
8
8
 
@@ -59,7 +59,7 @@ class UDExQuote extends UI5Element {
59
59
  * @public
60
60
  */
61
61
  @slot()
62
- link!: Array<HTMLElement>;
62
+ link!: Slot<HTMLElement>;
63
63
 
64
64
  /**
65
65
  * Defines author's name and company
@@ -68,7 +68,7 @@ class UDExQuote extends UI5Element {
68
68
  * @slot
69
69
  */
70
70
  @slot()
71
- author!: Array<HTMLElement>;
71
+ author!: Slot<HTMLElement>;
72
72
 
73
73
  /**
74
74
  * Defines image near quote text
@@ -77,7 +77,7 @@ class UDExQuote extends UI5Element {
77
77
  * @slot
78
78
  */
79
79
  @slot()
80
- image!: Array<HTMLElement>;
80
+ image!: Slot<HTMLElement>;
81
81
 
82
82
  /**
83
83
  * Defines image (Avatar or company logo) size
package/src/Review.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
6
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
7
7
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
8
8
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
@@ -66,7 +66,7 @@ class UDExReview extends UI5Element {
66
66
  * @public
67
67
  */
68
68
  @slot({ type: HTMLElement })
69
- reviewButton!: UDExButton;
69
+ reviewButton!: Slot<UDExButton>;
70
70
 
71
71
  /**
72
72
  * Slot for the default text when there are no reviews or rating.
@@ -75,7 +75,7 @@ class UDExReview extends UI5Element {
75
75
  * @public
76
76
  */
77
77
  @slot({ type: HTMLElement })
78
- defaultText!: HTMLElement;
78
+ defaultText!: Slot<HTMLElement>;
79
79
 
80
80
  /**
81
81
  * Slot for rating bars.
package/src/ReviewItem.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
5
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
7
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
7
8
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
9
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
@@ -104,7 +105,7 @@ class UDExReviewItem extends UI5Element {
104
105
  * @slot
105
106
  */
106
107
  @slot()
107
- author!: Array<HTMLElement>;
108
+ author!: Slot<HTMLElement>;
108
109
 
109
110
  /**
110
111
  * Defines the date of the review.
@@ -113,7 +114,7 @@ class UDExReviewItem extends UI5Element {
113
114
  * @slot
114
115
  */
115
116
  @slot()
116
- date!: Array<HTMLElement>;
117
+ date!: Slot<HTMLElement>;
117
118
 
118
119
  /**
119
120
  * Slot for custom content.
@@ -121,7 +122,7 @@ class UDExReviewItem extends UI5Element {
121
122
  * @slot
122
123
  */
123
124
  @slot()
124
- content?: Array<HTMLElement>;
125
+ content!: Slot<HTMLElement>;
125
126
 
126
127
  @i18n("@sapudex/web-components")
127
128
  static i18nBundle: I18nBundle;
package/src/Search.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { DefaultSlot, ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
4
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
5
5
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
6
6
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
7
7
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
@@ -2,7 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
6
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
7
7
  import { cleanLabel } from "./utils/listItemLabelUtils.js";
8
8
  import { UDExListMode, UDExListStyleType } from "./types/List.js";
@@ -531,6 +531,11 @@ class UDExSearchableListBase extends UI5Element {
531
531
  const item = this.items[i];
532
532
 
533
533
  if (item.isGroup) {
534
+ if (item._id === itemId) {
535
+ menuItem = item;
536
+ break;
537
+ }
538
+
534
539
  const groupItems = (item as UDExListGroupHeaderBase).getItems();
535
540
  menuItem = groupItems.find(({ _id }) => _id === itemId);
536
541
 
@@ -1,9 +1,9 @@
1
- import type { ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
1
+ import type { ChangeInfo, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
7
7
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
8
8
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
9
9
  import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
@@ -145,7 +145,7 @@ class UDExSecondaryNavigation extends UI5Element {
145
145
  * @public
146
146
  */
147
147
  @slot({ type: HTMLElement })
148
- breadcrumbs!: Array<HTMLElement>;
148
+ breadcrumbs!: Slot<HTMLElement>;
149
149
 
150
150
  /**
151
151
  * Slot for action buttons.
@@ -154,7 +154,7 @@ class UDExSecondaryNavigation extends UI5Element {
154
154
  * @public
155
155
  */
156
156
  @slot({ type: HTMLElement })
157
- buttons!: Array<HTMLElement>;
157
+ buttons!: Slot<HTMLElement>;
158
158
 
159
159
  /**
160
160
  * Defines the heading of the component.
@@ -1,6 +1,7 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
3
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
4
+ import type { Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
4
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
5
6
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
7
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
@@ -109,7 +110,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
109
110
  * @public
110
111
  */
111
112
  @slot({ type: HTMLElement })
112
- buttons!: Array<HTMLElement>;
113
+ buttons!: Slot<HTMLElement>;
113
114
 
114
115
  /**
115
116
  * List of the sub items
package/src/SelectBase.ts CHANGED
@@ -1222,7 +1222,7 @@ class UDExSelectBase extends UDExSearchableListBase {
1222
1222
  }
1223
1223
 
1224
1224
  get listboxRole(): AriaHasPopup {
1225
- return this._listBoxRole;
1225
+ return this.isTreeStructure ? "tree" : this._listBoxRole;
1226
1226
  }
1227
1227
 
1228
1228
  get listAriaControlsId(): string {
package/src/SelectBox.ts CHANGED
@@ -460,6 +460,16 @@ class UDExSelectBox extends UDExSelectBase {
460
460
  this.closeDropdown();
461
461
  }
462
462
 
463
+ /**
464
+ * Focuses the inner search input.
465
+ * @public
466
+ */
467
+ async focus(): Promise<void> {
468
+ await renderFinished();
469
+ this._search?.focus();
470
+ return Promise.resolve();
471
+ }
472
+
463
473
  get tokenizer(): Tokenizer {
464
474
  return this.tagGroup?.tokenizer;
465
475
  }
@@ -1,6 +1,6 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
3
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
4
4
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
5
  import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
6
6
  import UDExSelectBoxItem from "./SelectBoxItem.js";
@@ -1,11 +1,11 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
3
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
4
4
  import UDExListItemBase from "./ListItemBase.js";
5
5
  import property from "@ui5/webcomponents-base/decorators/property.js";
6
6
  import { UDExAdditionalTextState } from "./types/List.js";
7
7
  import UDExButton from "./Button.js";
8
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
9
9
  import type UDExStatusBadgeValueState from "./types/StatusBadgeValueState.js";
10
10
  import UDExAvatar, { UDExAvatarShape, UDExAvatarSize } from "./Avatar.js";
11
11
 
@@ -126,7 +126,7 @@ class UDExSelectBoxItem extends UDExListItemBase {
126
126
  * @public
127
127
  */
128
128
  @slot({ type: UDExButton })
129
- firstIcon!: Array<UDExButton>;
129
+ firstIcon!: Slot<UDExButton>;
130
130
 
131
131
  /**
132
132
  * Slot for second icon.
@@ -135,7 +135,7 @@ class UDExSelectBoxItem extends UDExListItemBase {
135
135
  * @public
136
136
  */
137
137
  @slot({ type: UDExButton })
138
- secondIcon!: Array<UDExButton>;
138
+ secondIcon!: Slot<UDExButton>;
139
139
 
140
140
  /**
141
141
  * Slot for item content.
@@ -1,8 +1,8 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
6
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
7
7
  import Icon from "@ui5/webcomponents/dist/Icon.js";
8
8
  import UDExSideNavigation from "./SideNavigation.js";
@@ -74,7 +74,7 @@ class UDExSideNavigationMobile extends UI5Element {
74
74
  * @public
75
75
  */
76
76
  @slot({ type: HTMLElement, invalidateOnChildChange: true })
77
- fixedItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;
77
+ fixedItems!: Slot<UDExSideNavigationItem | UDExSideNavigationGroup>;
78
78
 
79
79
  /**
80
80
  * Indicates selected item element
@@ -3,7 +3,7 @@ import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
7
7
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
8
8
  import SocialMediaButtonTemplate from "./SocialMediaButtonTemplate.js";
9
9
  import UDExSocialMediaButtonType from "./types/SocialMediaButtonType.js";
package/src/Tab.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
6
6
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
7
7
  import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
8
8
  import TabNavigation from "./TabNavigation.js";
@@ -266,7 +266,7 @@ class UDExTab extends UI5Element implements ITab {
266
266
  * @public
267
267
  */
268
268
  @slot({ type: HTMLElement })
269
- link!: Array<HTMLElement>;
269
+ link!: Slot<HTMLElement>;
270
270
 
271
271
  @i18n("@sapudex/web-components")
272
272
  static i18nBundle: I18nBundle;